Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros 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
29#include "G4SystemOfUnits.hh"
30#include "G4Alpha.hh"
31#include "G4DNAIons.hh"
32
33//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
34
35G4DNAGenericIonsManager * G4DNAGenericIonsManager :: Instance(void)
36{
37 if (!theInstance)
38 theInstance=new G4DNAGenericIonsManager;
39
40 return theInstance;
41}
42
43//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
44
45G4ParticleDefinition * G4DNAGenericIonsManager :: GetIon(const G4String & name)
46{
47 IonsMap::const_iterator i(map.find(name));
48
49 if (i==map.end())
50 return 0;
51
52 return i->second;
53}
54
55//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
56
57G4DNAGenericIonsManager :: 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, 0,
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, 0,
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, 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
182G4DNAGenericIonsManager * G4DNAGenericIonsManager::theInstance(0);
183
static G4Alpha * Alpha()
Definition: G4Alpha.cc:88