Geant4 Cross Reference |
1 // 2 // ******************************************************************** 3 // * License and Disclaimer * 4 // * * 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. * 10 // * * 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitation of liability. * 17 // * * 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************************************** 25 // 26 // 27 // 28 /// \file ClassifiedDamage.hh 29 /// \brief Definition of the ClassifiedDamage class 30 31 #ifndef CLASSIFIEDDAMAGE_HH 32 #define CLASSIFIEDDAMAGE_HH 33 34 #include "Damage.hh" 35 36 #include <vector> 37 38 /// \brief defines a classified DNA damage 39 class ClassifiedDamage 40 { 41 public: 42 43 // DNA Classified Damage type 44 // Defines the type of damage ollowing SDD formalism 45 enum ClassifiedDamageType{ 46 fNA = -1, 47 fSSB = 0, 48 fDSB = 1 49 }; 50 51 /// \brief constructor 52 ClassifiedDamage(); 53 /// \brief destructor 54 ~ClassifiedDamage() = default; 55 56 // Compute the type of classified damage i.e. SSB or DSB 57 void ComputeType(); 58 ClassifiedDamageType GetClassifiedDamageType() const {return fType;}; 59 60 const int GetNumDamage() const {return fDamage.size();}; 61 // Add a damage to the lst of damage 62 void AddDamage(Damage); 63 64 // Compute the position in terms of bp of the classified damage 65 void ComputeBp(); 66 unsigned long int GetBpBegin() const{return fBp_begin;}; 67 unsigned long int GetBpEnd() const{return fBp_end;}; 68 unsigned long int GetBpBarycenter() const{return fBp_barycenter;}; 69 70 // TODO 71 // Compute the coordinates of the classified damage 72 void ComputePosition(); 73 /* 74 Point GetPosBegin(){return fPos_begin;}; 75 Point GetPosEnd(){return fPos_end;}; 76 Point GetPosBarycenter(){return fPos_barycenter;}; 77 */ 78 79 // Compute the complexity of the classified damage 80 void ComputeComplexity(); 81 int GetComplexity() const{return fComplexity;}; 82 83 // Reset the classified damage 84 void Reset(); 85 86 // Tell if base damages have to be taken into account 87 void SetIncludeBase(bool pVal) {fIncludeBase = pVal;}; 88 bool GetIncludeBase() const {return fIncludeBase;}; 89 90 // Le Tuan Anh: 91 bool GetIsThereDirectComponentContribution() const 92 {return fIsThereDirectContribution;} // Return true if there is at least 1 direct SB in this cluster 93 bool GetIsThereIndirectComponentContribution() const 94 {return fIsThereIndirectContribution;} // Return true if there is at least 1 indirect SB in this cluster 95 96 private: 97 98 // CLASSIFIED DAMAGE MEMBERS 99 100 std::vector<Damage> fDamage; // List of damage 101 ClassifiedDamageType fType; // SSB or DSB or other? 102 unsigned long int fBp_begin{0}; // Position 103 unsigned long int fBp_end{0}; 104 unsigned long int fBp_barycenter{0}; 105 int fComplexity{0}; // Complexity 106 bool fIncludeBase{false}; // Base inclusion in the complexity 107 bool fIsThereDirectContribution = false; // check if Direct damage appears in cluster a not? 108 bool fIsThereIndirectContribution = false; // check if Indirect damage appears in cluster a not? 109 110 }; 111 112 #endif // CLASSIFIEDDAMAGE_HH