source: trunk/source/processes/electromagnetic/lowenergy/src/G4DNAGenericIonsManager.cc@ 1199

Last change on this file since 1199 was 1196, checked in by garnier, 16 years ago

update CVS release candidate geant4.9.3.01

File size: 7.4 KB
Line 
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,v 1.6 2009/06/10 13:32:36 mantero Exp $
27// GEANT4 tag $Name: geant4-09-03-cand-01 $
28
29#include "G4DNAGenericIonsManager.hh"
30#include "G4Alpha.hh"
31#include "G4Ions.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 G4Ions *helium;
68 G4Ions *hydrogen;
69 G4Ions *alphaPlus;
70 G4Ions *positronium1s;
71 G4Ions *positronium2s;
72
73
74 helium= new G4Ions(
75 "helium", 3.727417*GeV, 0.0*MeV, +0.0*eplus,
76 0, +1, 0,
77 0, 0, 0,
78 "nucleus", +2, +4, 0,
79 true, -1.0, 0,
80 false, "", 0,
81 0.0);
82
83 alphaPlus= new G4Ions("alpha+", 3.727417*GeV, 0.0*MeV, +1.0*eplus,
84 1, +1, 0,
85 0, 0, 0,
86 "nucleus", +1, +4, 0,
87 true, -1.0, 0, false,
88 "", 0, 0.0);
89
90 hydrogen= new G4Ions("hydrogen", 0.9382723*GeV, 0.0*MeV, +0.0*eplus,
91 0, +1, 0,
92 0, 0, 0,
93 "nucleus", +1, +1, 0,
94 true, -1.0, 0, false,
95 "", 0, 0.0);
96
97 positronium1s= new G4Ions("Ps-1s", 2*electron_mass_c2, 0.0*MeV, +0.0*eplus,
98 0, 0, 0,
99 0, 0, 0,
100 "nucleus", 0, 0, 0,
101 true, -1.0, 0, false,
102 "", 0, 0.0);
103
104 positronium2s= new G4Ions("Ps-2s", 2*electron_mass_c2, 0.0*MeV, +0.0*eplus,
105 0, 0, 0,
106 0, 0, 0,
107 "nucleus", 0, 0, 0,
108 true, -1.0, 0, false,
109 "", 0, 0.0);
110
111
112 /*
113 // molechules construction
114
115 G4Ions* oxonium; // H3O -- it will become H3O+
116 G4Ions* hydroxyl; // OH -- it will produce OH- too
117 G4Ions* molHydrogen; // H2
118 //G4Ions* hydroxide; // OH-
119 G4Ions* hydroPeroxide; // H2O2
120 G4Ions* water; // H2O -- it will become also H2O+
121
122
123 G4double mass = 19.02*g/Avogadro - 11*electron_mass_c2;
124
125 oxonium = new G4Ions("H3O", mass, 0, +11.0*eplus,
126 0, 0, 0,
127 0, 0, 0,
128 "molecule", 0, 0, 0,
129 true, -1.0, 0,
130 false, "", 0,
131 0.0);
132
133 mass = 17.00734*g/Avogadro - 9*electron_mass_c2;
134
135 hydroxyl = new G4Ions("OH", mass, 0, +9.0*eplus,
136 0, 0, 0,
137 0, 0, 0,
138 "molecule", 0, 0, 0,
139 true, -1.0, 0,
140 false, "", 0,
141 0.0);
142
143 mass = 2.01588*g/Avogadro - 2*electron_mass_c2;
144
145 molHydrogen = new G4Ions("H2", mass, 0, +2.0*eplus,
146 0, 0, 0,
147 0, 0, 0,
148 "molecule", 0, 0, 0,
149 true, -1.0, 0,
150 false, "", 0,
151 0.0);
152
153 mass = 34.01468*g/Avogadro - 18*electron_mass_c2;
154
155 hydroPeroxide = new G4Ions("H2O2", mass, 0, +18.0*eplus,
156 0, 0, 0,
157 0, 0, 0,
158 "molecule", 0, 0, 0,
159 true, -1.0, 0,
160 false, "", 0,
161 0.0);
162
163 mass = 18.015*g/Avogadro - 10*electron_mass_c2;
164
165 water = new G4Ions("H2O", mass, 0, +10.0*eplus,
166 0, 0, 0,
167 0, 0, 0,
168 "molecule", 0, 0, 0,
169 true, -1.0, 0,
170 false, "", 0,
171 0.0);
172
173 map["H3O" ] =oxonium;
174 map["OH" ] =hydroxyl;
175 map["H2" ] =molHydrogen;
176 map["H2O2"] =hydroPeroxide;
177 map["H2O" ] =water;
178 */
179
180
181 map["helium" ]=helium;
182 map["hydrogen"]=hydrogen;
183 map["alpha+" ]=alphaPlus;
184 map["alpha++" ]=G4Alpha::Alpha();
185 map["Ps-1s" ]=positronium1s;
186 map["Ps-2s" ]=positronium2s;
187
188}
189
190//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
191
192G4DNAGenericIonsManager * G4DNAGenericIonsManager::theInstance(0);
193
Note: See TracBrowser for help on using the repository browser.