Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
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()
36{
37 if (theInstance == nullptr)
38 theInstance=new G4DNAGenericIonsManager;
39
40 return theInstance;
41}
42
43//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
44
45G4ParticleDefinition * 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
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, 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
182G4DNAGenericIonsManager * G4DNAGenericIonsManager::theInstance(nullptr);
183
static G4Alpha * Alpha()
Definition G4Alpha.cc:83