Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/electromagnetic/dna/utils/src/G4DNAGenericIonsManager.cc

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 #include "G4DNAGenericIonsManager.hh"
 28 #include "G4PhysicalConstants.hh"
 29 #include "G4SystemOfUnits.hh"
 30 #include "G4Alpha.hh"
 31 #include "G4DNAIons.hh"
 32 
 33 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 34 
 35 G4DNAGenericIonsManager * G4DNAGenericIonsManager :: Instance()
 36 {
 37  if (theInstance == nullptr)
 38   theInstance=new G4DNAGenericIonsManager;
 39  
 40  return theInstance;
 41 }
 42 
 43 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 44 
 45 G4ParticleDefinition * G4DNAGenericIonsManager :: GetIon(const G4String & name)
 46 {
 47  auto i = map.find(name);
 48  
 49  if (i==map.end())
 50   return nullptr;
 51   
 52  return i->second;
 53 }
 54 
 55 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 56 
 57 G4DNAGenericIonsManager :: G4DNAGenericIonsManager()
 58 {
 59   //               name             mass          width         charge
 60   //             2*spin           parity  C-conjugation
 61   //          2*Isospin       2*Isospin3       G-parity
 62   //               type    lepton number  baryon number   PDG encoding
 63   //             stable         lifetime    decay table
 64   //         shortlived          subType  anti_encoding
 65   //         excitation   
 66   
 67  G4DNAIons *helium;
 68  G4DNAIons *hydrogen;
 69  G4DNAIons *alphaPlus;
 70  G4DNAIons *positronium1s;
 71  G4DNAIons *positronium2s;
 72  
 73  G4DNAIons *carbon;
 74  G4DNAIons *nitrogen;
 75  G4DNAIons *oxygen;
 76  G4DNAIons *silicon;
 77  G4DNAIons *iron;
 78 
 79  iron=     new G4DNAIons(
 80       "iron",    52.5672*GeV,       0.0*MeV,  +26.0*eplus,
 81       0,              +1,             0,
 82       0,               0,             0,
 83       "DNAion",              +26,            +56,           0,
 84       true,                -1.0,             nullptr,       
 85       false,          "",               0,             
 86       0.0);
 87 
 88  silicon=  new G4DNAIons(
 89             "silicon",    26.161011669*GeV,       0.0*MeV,  +14.0*eplus,
 90             0,              +1,             0,
 91             0,               0,             0,
 92             "DNAion",              +14,            +28,           0,
 93             true,                -1.0,             nullptr,
 94             false,          "",               0,
 95             0.0);
 96 
 97   // mass is average for all Si isotopes
 98 
 99  oxygen=   new G4DNAIons(
100       "oxygen",    15.0074*GeV,       0.0*MeV,  +8.0*eplus,
101       0,              +1,             0,
102       0,               0,             0,
103       "DNAion",              +8,            +16,           0,
104       true,                -1.0,             nullptr,       
105       false,          "",               0,             
106       0.0);
107 
108 
109  nitrogen= new G4DNAIons(
110       "nitrogen",    13.132*GeV,       0.0*MeV,  +7.0*eplus,
111       0,              +1,             0,
112       0,               0,             0,
113       "DNAion",              +7,            +14,           0,
114       true,                -1.0,             nullptr,       
115       false,          "",               0,             
116       0.0);
117 
118  carbon=   new G4DNAIons(
119       "carbon",    11.267025440*GeV,       0.0*MeV,  +6.0*eplus,
120       0,              +1,             0,
121       0,               0,             0,
122       "DNAion",              +6,            +12,           0,
123       true,                -1.0,             nullptr,       
124       false,          "",               0,             
125       0.0);
126  
127  helium=   new G4DNAIons(
128       "helium",    3.727417*GeV,       0.0*MeV,  +0.0*eplus,
129       0,              +1,             0,
130       0,               0,             0,
131       "DNAion",   +2,        +4,       0,
132       true,                -1.0,             nullptr,       
133       false,          "",               0,             
134       0.0);
135 
136  alphaPlus= new G4DNAIons("alpha+",    3.727417*GeV,       0.0*MeV,  +1.0*eplus,
137                                1,              +1,             0,
138                                0,               0,             0,
139                        "DNAion",              +1,            +4,           0,
140       true,            -1.0,             nullptr, false,
141             "",               0,             0.0);
142 
143  hydrogen= new G4DNAIons("hydrogen",   0.9382723*GeV,       0.0*MeV,  +0.0*eplus,
144                                0,              +1,             0,
145                                0,               0,             0,
146                        "DNAion",              +1,            +1,           0,
147             true,            -1.0,             nullptr, false,
148             "",               0,             0.0);
149 
150  positronium1s= new G4DNAIons("Ps-1s",   2*electron_mass_c2,      0.0*MeV,  +0.0*eplus,
151                                0,               0,             0,
152                                0,               0,             0,
153                        "DNAion",               0,             0,           0,
154                 true,            -1.0,             nullptr, false,
155             "",               0,             0.0);
156 
157  positronium2s= new G4DNAIons("Ps-2s",   2*electron_mass_c2,      0.0*MeV,  +0.0*eplus,
158                                0,               0,             0,
159                                0,               0,             0,
160                        "DNAion",               0,             0,           0,
161                 true,            -1.0,             nullptr, false,
162             "",               0,             0.0);
163 
164 
165  map["helium"  ]=helium;
166  map["hydrogen"]=hydrogen;
167  map["alpha+"  ]=alphaPlus;
168  map["alpha++" ]=G4Alpha::Alpha();
169  map["Ps-1s"   ]=positronium1s;
170  map["Ps-2s"   ]=positronium2s;
171  map["carbon"  ]=carbon;
172  map["nitrogen"]=nitrogen;
173  map["oxygen"  ]=oxygen;
174  map["silicon" ]=silicon;
175  map["iron"    ]=iron;
176 
177 
178 }
179 
180 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
181 
182 G4DNAGenericIonsManager * G4DNAGenericIonsManager::theInstance(nullptr);
183    
184