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 Damage.hh 29 /// \brief Definition of the Damage class 30 31 #ifndef DAMAGE_HH 32 #define DAMAGE_HH 33 34 struct Position 35 { 36 Position(double v1,double v2,double v3): x(v1), y(v2), z(v3) {} 37 double x=0; 38 double y=0; 39 double z=0; 40 void setX(double v) {x=v;} 41 void setY(double v) {y=v;} 42 void setZ(double v) {z=v;} 43 }; 44 45 /// \brief defines a DNA damage 46 class Damage 47 { 48 public: 49 50 /** DNA Damage type 51 * Defines the molecule type of damaged DNA following SDD formalism 52 */ 53 enum DamageType{ 54 fOther = -1, 55 fBackbone = 0, 56 fBase = 1 57 }; 58 59 /** DNA Damage cause 60 * Defines the cause of DNA damage following SDD formalism 61 */ 62 enum DamageCause{ 63 fUnknown = -1, 64 fDirect = 0, 65 fIndirect = 1 66 }; 67 68 /** Damaged DNA 69 * Defines the damaged DNA structure following SDD formalism 70 */ 71 enum DamageChromatin{ 72 fUnspecified = 0, 73 fHeterochromatin = 1, 74 fEuchromatin = 2, 75 fFreeDNA = 3, 76 fOtherDNA = 4 77 }; 78 79 /// \brief constructor 80 Damage(DamageType,unsigned int,unsigned int,unsigned int,unsigned long int,Position,DamageCause,DamageChromatin); 81 /// \brief destructor 82 ~Damage() = default; 83 84 // Getters and setters 85 86 void SetDamageType(DamageType pVal){fType=pVal;}; 87 DamageType GetDamageType(){return fType;}; 88 89 void SetChromo(unsigned int pVal){fChromo=pVal;}; 90 unsigned int GetChromo() const{return fChromo;}; 91 92 void SetEvt(unsigned int pVal){fEvt=pVal;}; 93 unsigned int GetEvt() const{return fEvt;}; 94 95 void SetStrand(unsigned int pVal){fStrand=pVal;}; 96 unsigned int GetStrand() const{return fStrand;}; 97 98 void SetCopyNb(unsigned long int pVal){fCopyNb=pVal;}; 99 unsigned long int GetCopyNb() const{return fCopyNb;}; 100 101 void SetCause(DamageCause pVal){fCause=pVal;}; 102 DamageCause GetCause() const{return fCause;}; 103 104 void SetDamageChromatin(DamageChromatin pVal){fChromatin=pVal;}; 105 DamageChromatin GetDamageChromatin(){return fChromatin;}; 106 107 bool operator != (const Damage& ) const; 108 bool operator == (const Damage& ) const; 109 110 private: 111 112 DamageType fType; // SB or BD? 113 unsigned int fChromo; // chromosome ID 114 unsigned int fEvt; // event number 115 unsigned int fStrand; // Strand 116 unsigned long int fCopyNb; // Copy number 117 Position fPosition;// Position 118 DamageCause fCause; // Direct or indirect damage? 119 DamageChromatin fChromatin; // hetero or euchromatin? 120 }; 121 122 #endif // DAMAGE_HH