Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/extended/medical/dna/dnadamage1/molecule.C

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 ]

Diff markup

Differences between /examples/extended/medical/dna/dnadamage1/molecule.C (Version 11.3.0) and /examples/extended/medical/dna/dnadamage1/molecule.C (Version 10.7.p2)


  1 // -------------------------------------------      1 // -------------------------------------------------------------------
  2 // $Id: plot.C 70323 2013-05-29 07:57:44Z gcos      2 // $Id: plot.C 70323 2013-05-29 07:57:44Z gcosmo $
  3 // -------------------------------------------      3 // -------------------------------------------------------------------
  4 //                                                  4 //
  5 // *******************************************      5 // *********************************************************************
  6 // To execute this macro under ROOT after your      6 // To execute this macro under ROOT after your simulation ended, 
  7 //   1 - launch ROOT (usually type 'root' at y      7 //   1 - launch ROOT (usually type 'root' at your machine's prompt)
  8 //   2 - type '.X plot.C' at the ROOT session       8 //   2 - type '.X plot.C' at the ROOT session prompt
  9 // *******************************************      9 // *********************************************************************
 10                                                    10 
 11 #include <iostream>                                11 #include <iostream>
 12 #include "TROOT.h"                                 12 #include "TROOT.h"
 13 #include "DNAVolumeType.hh"                    <<  13 #include ""
 14 using namespace std;                               14 using namespace std;
 15                                                    15 
 16 template<typename T>                               16 template<typename T>  
 17 class ThreeVector                                  17 class ThreeVector
 18 {                                                  18 {
 19 private:                                           19 private:
 20     T _x, _y, _z;                                  20     T _x, _y, _z;
 21 public:                                            21 public:
 22     ThreeVector():_x(0),_y(0),_z(0){}              22     ThreeVector():_x(0),_y(0),_z(0){}
 23     ThreeVector(T x, T y, T z)                     23     ThreeVector(T x, T y, T z)
 24         :_x(x),_y(y),_z(z){}                       24         :_x(x),_y(y),_z(z){}
 25     ~ThreeVector(){}                               25     ~ThreeVector(){}
 26     T x() const                                    26     T x() const
 27     {                                              27     {
 28         return _x;                                 28         return _x;
 29     }                                              29     }
 30     T y() const                                    30     T y() const
 31     {                                              31     {
 32         return _y;                                 32         return _y;
 33     }                                              33     }
 34     T z() const                                    34     T z() const
 35     {                                              35     {
 36     return _z;                                     36     return _z;
 37     }                                              37     }
 38                                                    38     
 39     bool operator ==(const ThreeVector<T>& rig     39     bool operator ==(const ThreeVector<T>& right) const
 40     {                                              40     {
 41         return (_x == right._x) &&                 41         return (_x == right._x) && 
 42                (_y == right._y) &&                 42                (_y == right._y) &&
 43                (_z == right._z);                   43                (_z == right._z);
 44     }                                              44     }
 45                                                    45             
 46     ThreeVector<T>& operator =(const ThreeVect     46     ThreeVector<T>& operator =(const ThreeVector<T>& right) = default;
 47                                                    47 
 48 ClassDef(ThreeVector,1)                            48 ClassDef(ThreeVector,1)
 49 };                                                 49 };
 50                                                    50 
 51 #if !defined(__CLING__)                            51 #if !defined(__CLING__)
 52 ClassImp(ThreeVector);                             52 ClassImp(ThreeVector);
 53 #endif                                             53 #endif
 54                                                    54 
 55 class Molecule                                     55 class Molecule
 56 {                                                  56 {
 57 public:                                            57 public:
 58     Molecule(){}                                   58     Molecule(){}
 59     Molecule(string name,                          59     Molecule(string name, 
 60              int copyNumber,                       60              int copyNumber, 
 61              const ThreeVector<double>& positi     61              const ThreeVector<double>& position, 
 62              int strand)                           62              int strand)
 63              : fName(name)                         63              : fName(name)
 64              , fCopyNumber(copyNumber)             64              , fCopyNumber(copyNumber)
 65              , fPosition(position)                 65              , fPosition(position)
 66              , fStrand(strand)                     66              , fStrand(strand)
 67             {}                                     67             {}
 68     ~Molecule(){}                                  68     ~Molecule(){}
 69 public:                                            69 public:
 70     string fName;                                  70     string fName;
 71     string fMaterial;                              71     string fMaterial;
 72     int fCopyNumber;                               72     int fCopyNumber;
 73     int fStrand;                                   73     int fStrand;
 74                                                    74 
 75     ThreeVector<double> fPosition;                 75     ThreeVector<double> fPosition;
 76                                                    76 
 77     double fRadius;                                77     double fRadius;
 78     double fRadiusWater;                           78     double fRadiusWater;
 79                                                    79 
 80     ClassDef(Molecule,1)                           80     ClassDef(Molecule,1)
 81 };                                                 81 };
 82                                                    82 
 83 #if !defined(__CLING__)                            83 #if !defined(__CLING__)
 84 ClassImp(Molecule);                                84 ClassImp(Molecule);
 85 #endif                                             85 #endif
 86                                                    86 
 87 std::vector<Molecule> molecule()                   87 std::vector<Molecule> molecule()
 88 {                                                  88 {
 89     std::vector<Molecule> fMolecules;              89     std::vector<Molecule> fMolecules;
 90     double size;                                   90     double size;
 91     string name;                                   91     string name;
 92     ifstream file("VoxelStraight.fab2g4dna");      92     ifstream file("VoxelStraight.fab2g4dna");
 93     if(!file.is_open())                            93     if(!file.is_open())
 94     {                                              94     {
 95         string msg ="VoxelStraight.fab2g4dna c     95         string msg ="VoxelStraight.fab2g4dna could not be opened";
 96         throw std::invalid_argument(msg);          96         throw std::invalid_argument(msg);
 97     }                                              97     }
 98                                                    98 
 99    string line;                                    99    string line;
100     while(getline(file, line) )                   100     while(getline(file, line) )
101     {                                             101     {
102         if(line.empty())                          102         if(line.empty()) 
103         {                                         103         {
104             continue;                             104             continue;
105         }                                         105         }
106                                                   106          
107         istringstream issLine(line);              107         istringstream issLine(line);
108         string firstItem;                         108         string firstItem;
109         issLine >> firstItem;                     109         issLine >> firstItem;
110         if("_Size" == firstItem)                  110         if("_Size" == firstItem)
111         {                                         111         {
112             issLine >> size;                      112             issLine >> size;
113         }                                         113         }
114         else if("_pl" == firstItem)               114         else if("_pl" == firstItem)
115         {                                         115         {
116             string name;                          116             string name;
117             issLine >> name;                      117             issLine >> name;
118                                                   118 
119             string material;                      119             string material;
120             issLine >> material;                  120             issLine >> material;
121                                                   121 
122             int strand;                           122             int strand;
123             issLine >> strand;                    123             issLine >> strand;
124                                                   124 
125             int copyNumber;                       125             int copyNumber;
126             issLine >> copyNumber;                126             issLine >> copyNumber;
127                                                   127 
128             double x;                             128             double x;
129             issLine >> x;                         129             issLine >> x;
130                                                   130 
131             double y;                             131             double y;
132             issLine >> y;                         132             issLine >> y;
133                                                   133 
134             double z;                             134             double z;
135             issLine >> z;                         135             issLine >> z;
136                                                   136 
137             Molecule molecule(name,               137             Molecule molecule(name, 
138                               copyNumber,         138                               copyNumber, 
139                               ThreeVector<doub    139                               ThreeVector<double>(x, y, z), 
140                               strand);            140                               strand);
141             fMolecules.push_back(molecule);       141             fMolecules.push_back(molecule);
142         }                                         142         }
143     }                                             143     }
144     file.close();                                 144     file.close();
145                                                   145     
146     return fMolecules;                            146     return fMolecules;
147 }                                                 147 }
148                                                   148