Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4DNAGenericIonsManager.cc
Go to the documentation of this file.
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 // $Id: G4DNAGenericIonsManager.cc 87449 2014-12-04 14:13:06Z gunter $
27 
29 #include "G4PhysicalConstants.hh"
30 #include "G4SystemOfUnits.hh"
31 #include "G4Alpha.hh"
32 #include "G4DNAIons.hh"
33 
34 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
35 
37 {
38  if (!theInstance)
39  theInstance=new G4DNAGenericIonsManager;
40 
41  return theInstance;
42 }
43 
44 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
45 
47 {
48  IonsMap::const_iterator i(map.find(name));
49 
50  if (i==map.end())
51  return 0;
52 
53  return i->second;
54 }
55 
56 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
57 
58 G4DNAGenericIonsManager :: G4DNAGenericIonsManager()
59 {
60  // name mass width charge
61  // 2*spin parity C-conjugation
62  // 2*Isospin 2*Isospin3 G-parity
63  // type lepton number baryon number PDG encoding
64  // stable lifetime decay table
65  // shortlived subType anti_encoding
66  // excitation
67 
68  G4DNAIons *helium;
69  G4DNAIons *hydrogen;
70  G4DNAIons *alphaPlus;
71  G4DNAIons *positronium1s;
72  G4DNAIons *positronium2s;
73 
74  G4DNAIons *carbon;
75  G4DNAIons *nitrogen;
76  G4DNAIons *oxygen;
77  G4DNAIons *silicon;
78  G4DNAIons *iron;
79 
80  iron= new G4DNAIons(
81  "iron", 52.5672*GeV, 0.0*MeV, +26.0*eplus,
82  0, +1, 0,
83  0, 0, 0,
84  "DNAion", +26, +56, 0,
85  true, -1.0, 0,
86  false, "", 0,
87  0.0);
88 
89  silicon= new G4DNAIons(
90  "silicon", 28.085*GeV, 0.0*MeV, +14.0*eplus,
91  0, +1, 0,
92  0, 0, 0,
93  "DNAion", +14, +28, 0,
94  true, -1.0, 0,
95  false, "", 0,
96  0.0);
97 
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, 0,
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, 0,
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, 0,
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, 0,
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, 0, 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, 0, 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, 0, 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, 0, 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(0);
183 
const XML_Char * name
Definition: expat.h:151
static constexpr double eplus
Definition: G4SIunits.hh:199
float electron_mass_c2
Definition: hepunit.py:274
static G4DNAGenericIonsManager * Instance(void)
static constexpr double GeV
Definition: G4SIunits.hh:217
static constexpr double MeV
Definition: G4SIunits.hh:214
static G4Alpha * Alpha()
Definition: G4Alpha.cc:89
G4ParticleDefinition * GetIon(const G4String &name)