Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/advanced/dna/dsbandrepair/analysis/dnadamage/include/Damage.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  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