Geant4.10
 All Data Structures 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 73124 2013-08-19 07:53:33Z gcosmo $
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 *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  oxygen= new G4DNAIons(
89  "oxygen", 15.0074*GeV, 0.0*MeV, +8.0*eplus,
90  0, +1, 0,
91  0, 0, 0,
92  "DNAion", +8, +16, 0,
93  true, -1.0, 0,
94  false, "", 0,
95  0.0);
96 
97 
98  nitrogen= new G4DNAIons(
99  "nitrogen", 13.132*GeV, 0.0*MeV, +7.0*eplus,
100  0, +1, 0,
101  0, 0, 0,
102  "DNAion", +7, +14, 0,
103  true, -1.0, 0,
104  false, "", 0,
105  0.0);
106 
107  carbon= new G4DNAIons(
108  "carbon", 11.267025440*GeV, 0.0*MeV, +6.0*eplus,
109  0, +1, 0,
110  0, 0, 0,
111  "DNAion", +6, +12, 0,
112  true, -1.0, 0,
113  false, "", 0,
114  0.0);
115 
116  helium= new G4DNAIons(
117  "helium", 3.727417*GeV, 0.0*MeV, +0.0*eplus,
118  0, +1, 0,
119  0, 0, 0,
120  "DNAion", +2, +4, 0,
121  true, -1.0, 0,
122  false, "", 0,
123  0.0);
124 
125  alphaPlus= new G4DNAIons("alpha+", 3.727417*GeV, 0.0*MeV, +1.0*eplus,
126  1, +1, 0,
127  0, 0, 0,
128  "DNAion", +1, +4, 0,
129  true, -1.0, 0, false,
130  "", 0, 0.0);
131 
132  hydrogen= new G4DNAIons("hydrogen", 0.9382723*GeV, 0.0*MeV, +0.0*eplus,
133  0, +1, 0,
134  0, 0, 0,
135  "DNAion", +1, +1, 0,
136  true, -1.0, 0, false,
137  "", 0, 0.0);
138 
139  positronium1s= new G4DNAIons("Ps-1s", 2*electron_mass_c2, 0.0*MeV, +0.0*eplus,
140  0, 0, 0,
141  0, 0, 0,
142  "DNAion", 0, 0, 0,
143  true, -1.0, 0, false,
144  "", 0, 0.0);
145 
146  positronium2s= new G4DNAIons("Ps-2s", 2*electron_mass_c2, 0.0*MeV, +0.0*eplus,
147  0, 0, 0,
148  0, 0, 0,
149  "DNAion", 0, 0, 0,
150  true, -1.0, 0, false,
151  "", 0, 0.0);
152 
153 
154  map["helium" ]=helium;
155  map["hydrogen"]=hydrogen;
156  map["alpha+" ]=alphaPlus;
157  map["alpha++" ]=G4Alpha::Alpha();
158  map["Ps-1s" ]=positronium1s;
159  map["Ps-2s" ]=positronium2s;
160  map["carbon" ]=carbon;
161  map["nitrogen"]=nitrogen;
162  map["oxygen" ]=oxygen;
163  map["iron" ]=iron;
164 
165 
166 }
167 
168 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
169 
170 G4DNAGenericIonsManager * G4DNAGenericIonsManager::theInstance(0);
171 
const XML_Char * name
float electron_mass_c2
Definition: hepunit.py:274
static G4DNAGenericIonsManager * Instance(void)
static G4Alpha * Alpha()
Definition: G4Alpha.cc:89
G4ParticleDefinition * GetIon(const G4String &name)