Geant4.10
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4.10.00.p01
source
g3tog4
src
G3EleTable.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
//
27
// $Id: G3EleTable.cc 67982 2013-03-13 10:36:03Z gcosmo $
28
//
29
30
#include <sstream>
31
32
#include "
G3EleTable.hh
"
33
34
#include "
G4Types.hh
"
35
#include "
G4PhysicalConstants.hh
"
36
#include "
G4SystemOfUnits.hh
"
37
#include "
G4ios.hh
"
38
39
G3EleTable::G3EleTable
() :_MaxEle(109){
40
_EleNames =
new
char
*[_MaxEle];
41
// create an array of pointers to elements
42
_Ele =
new
G4Element
*[_MaxEle];
43
LoadUp();
44
}
45
46
G3EleTable::~G3EleTable
(){
47
delete
[] _EleNames;
48
delete
[] _Ele;
49
}
50
51
G4Element
*
52
G3EleTable::GetEle
(
G4double
Z){
53
G4double
A;
54
char
name
[20], sym[3];
55
G4int
index = (
G4int
) Z-1;
56
if
(!parse(Z, name, sym, A)) {
57
G4String
na(name);
58
G4String
sy(sym);
59
if
(_Ele[index] == 0) {
60
// add an element to the element table here
61
_Ele[index] =
new
G4Element
(na, sy, Z, A*
g
/
mole
);
62
}
63
}
64
return
_Ele[index];
65
}
66
67
G4int
68
G3EleTable::parse(
G4double
& Z,
char
*
name
,
char
* sym,
G4double
& A){
69
G4int
rc = 0;
70
if
(Z>0 && Z <=_MaxEle){
71
G4int
z
= (
G4int
) Z-1;
72
std::istringstream in(_EleNames[z]);
73
in >> name >> sym >> A;
74
}
else
{
75
rc = -1;
76
}
77
return
rc;
78
}
79
80
void
81
G3EleTable::LoadUp(){
82
G4int
i=0;
83
_EleNames[i]=(
char
*)
"Hydrogen H 1.00794"
; i++;
84
_EleNames[i]=(
char
*)
"Helium He 4.0026"
; i++;
85
_EleNames[i]=(
char
*)
"Lithium Li 6.941"
; i++;
86
_EleNames[i]=(
char
*)
"Beryllium Be 9.012182"
; i++;
87
_EleNames[i]=(
char
*)
"Boron B 10.811"
; i++;
88
_EleNames[i]=(
char
*)
"Carbon C 12.011"
; i++;
89
_EleNames[i]=(
char
*)
"Nitrogen N 14.00674"
; i++;
90
_EleNames[i]=(
char
*)
"Oxygen O 15.9994"
; i++;
91
_EleNames[i]=(
char
*)
"Fluorine F 18.9984032"
; i++;
92
_EleNames[i]=(
char
*)
"Neon Ne 20.1797"
; i++;
93
94
_EleNames[i]=(
char
*)
"Sodium Na 22.989768"
; i++;
95
_EleNames[i]=(
char
*)
"Magnesium Mg 24.3050"
; i++;
96
_EleNames[i]=(
char
*)
"Aluminum Al 26.981539"
; i++;
97
_EleNames[i]=(
char
*)
"Silicon Si 28.0855"
; i++;
98
_EleNames[i]=(
char
*)
"Phosphorus P 30.973762"
; i++;
99
_EleNames[i]=(
char
*)
"Sulfur S 32.066"
; i++;
100
_EleNames[i]=(
char
*)
"Chlorine Cl 35.4527"
; i++;
101
_EleNames[i]=(
char
*)
"Argon Ar 39.948"
; i++;
102
_EleNames[i]=(
char
*)
"Potassium K 39.0983"
; i++;
103
_EleNames[i]=(
char
*)
"Calcium Ca 40.078"
; i++;
104
105
_EleNames[i]=(
char
*)
"Scandium Sc 44.955910"
; i++;
106
_EleNames[i]=(
char
*)
"Titanium Ti 47.867"
; i++;
107
_EleNames[i]=(
char
*)
"Vanadium V 50.9415"
; i++;
108
_EleNames[i]=(
char
*)
"Chromium Cr 51.9961"
; i++;
109
_EleNames[i]=(
char
*)
"Manganese Mn 54.93805"
; i++;
110
_EleNames[i]=(
char
*)
"Iron Fe 55.845"
; i++;
111
_EleNames[i]=(
char
*)
"Cobalt Co 58.93320"
; i++;
112
_EleNames[i]=(
char
*)
"Nickel Ni 58.6934"
; i++;
113
_EleNames[i]=(
char
*)
"Copper Cu 63.546"
; i++;
114
_EleNames[i]=(
char
*)
"Zinc Zn 65.39"
; i++;
115
116
_EleNames[i]=(
char
*)
"Gallium Ga 69.723"
; i++;
117
_EleNames[i]=(
char
*)
"Germanium Ge 72.61"
; i++;
118
_EleNames[i]=(
char
*)
"Arsenic As 74.92159"
; i++;
119
_EleNames[i]=(
char
*)
"Selenium Se 78.96"
; i++;
120
_EleNames[i]=(
char
*)
"Bromine Br 79.904"
; i++;
121
_EleNames[i]=(
char
*)
"Krypton Kr 83.80"
; i++;
122
_EleNames[i]=(
char
*)
"Rubidium Rb 85.4678"
; i++;
123
_EleNames[i]=(
char
*)
"Strontium Sr 87.62"
; i++;
124
_EleNames[i]=(
char
*)
"Yttrium Y 88.90585"
; i++;
125
_EleNames[i]=(
char
*)
"Zirconium Zr 91.224"
; i++;
126
127
_EleNames[i]=(
char
*)
"Niobium Nb 92.90638"
; i++;
128
_EleNames[i]=(
char
*)
"Molybdenum Mo 95.94"
; i++;
129
_EleNames[i]=(
char
*)
"Technetium Tc 97.907215"
; i++;
130
_EleNames[i]=(
char
*)
"Ruthenium Ru 101.07"
; i++;
131
_EleNames[i]=(
char
*)
"Rhodium Rh 102.90550"
; i++;
132
_EleNames[i]=(
char
*)
"Palladium Pd 106.42"
; i++;
133
_EleNames[i]=(
char
*)
"Silver Ag 107.8682"
; i++;
134
_EleNames[i]=(
char
*)
"Cadmium Cd 112.41"
; i++;
135
_EleNames[i]=(
char
*)
"Indium In 114.818"
; i++;
136
_EleNames[i]=(
char
*)
"Tin Sn 118.710"
; i++;
137
138
_EleNames[i]=(
char
*)
"Antimony Sb 121.760"
; i++;
139
_EleNames[i]=(
char
*)
"Tellurium Te 127.60"
; i++;
140
_EleNames[i]=(
char
*)
"Iodine I 126.90447"
; i++;
141
_EleNames[i]=(
char
*)
"Xenon Xe 131.29"
; i++;
142
_EleNames[i]=(
char
*)
"Cesium Cs 132.90543"
; i++;
143
_EleNames[i]=(
char
*)
"Barium Ba 137.27"
; i++;
144
_EleNames[i]=(
char
*)
"Lanthanum La 138.9055"
; i++;
145
_EleNames[i]=(
char
*)
"Cerium Ce 140.115"
; i++;
146
_EleNames[i]=(
char
*)
"Praeseodymium Pr 140.90765"
; i++;
147
_EleNames[i]=(
char
*)
"NeoDymium Nd 144.24"
; i++;
148
149
_EleNames[i]=(
char
*)
"Promethium Pm 144.912745"
; i++;
150
_EleNames[i]=(
char
*)
"Samarium Sm 150.36"
; i++;
151
_EleNames[i]=(
char
*)
"Europium Eu 151.965"
; i++;
152
_EleNames[i]=(
char
*)
"Gadolinium Gd 157.25"
; i++;
153
_EleNames[i]=(
char
*)
"Terbium Tb 158.92534"
; i++;
154
_EleNames[i]=(
char
*)
"Dysprosium Dy 162.50"
; i++;
155
_EleNames[i]=(
char
*)
"Holmium Ho 164.93032"
; i++;
156
_EleNames[i]=(
char
*)
"Erbium Er 167.26"
; i++;
157
_EleNames[i]=(
char
*)
"Thulium Tm 168.93421"
; i++;
158
_EleNames[i]=(
char
*)
"Ytterbium Yb 173.04"
; i++;
159
160
_EleNames[i]=(
char
*)
"Lutetium Lu 174.967"
; i++;
161
_EleNames[i]=(
char
*)
"Hafnium Hf 178.49"
; i++;
162
_EleNames[i]=(
char
*)
"Tantalum Ta 180.9479"
; i++;
163
_EleNames[i]=(
char
*)
"Tungsten W 183.84"
; i++;
164
_EleNames[i]=(
char
*)
"Rhenium Re 186.207"
; i++;
165
_EleNames[i]=(
char
*)
"Osmium Os 190.23"
; i++;
166
_EleNames[i]=(
char
*)
"Iridium Ir 192.217"
; i++;
167
_EleNames[i]=(
char
*)
"Platinum Pt 195.08"
; i++;
168
_EleNames[i]=(
char
*)
"Gold Au 196.96654"
; i++;
169
_EleNames[i]=(
char
*)
"Mercury Hg 200.59"
; i++;
170
171
_EleNames[i]=(
char
*)
"Thallium Tl 204.3833"
; i++;
172
_EleNames[i]=(
char
*)
"Lead Pb 207.2"
; i++;
173
_EleNames[i]=(
char
*)
"Bismuth Bi 208.98037"
; i++;
174
_EleNames[i]=(
char
*)
"Polonium Po 208.982415"
; i++;
175
_EleNames[i]=(
char
*)
"Astatine At 209.987131"
; i++;
176
_EleNames[i]=(
char
*)
"Radon Rn 222.017570"
; i++;
177
_EleNames[i]=(
char
*)
"Francium Fr 223.019731"
; i++;
178
_EleNames[i]=(
char
*)
"Radium Ra 226.025402"
; i++;
179
_EleNames[i]=(
char
*)
"Actinium Ac 227.027747"
; i++;
180
_EleNames[i]=(
char
*)
"Thorium Th 232.0381"
; i++;
181
182
_EleNames[i]=(
char
*)
"Protactinium Pa 231.03588"
; i++;
183
_EleNames[i]=(
char
*)
"Uranium U 238.0289"
; i++;
184
_EleNames[i]=(
char
*)
"Neptunium Np 237.048166"
; i++;
185
_EleNames[i]=(
char
*)
"Plutonium Pu 244.064197"
; i++;
186
_EleNames[i]=(
char
*)
"Americium Am 243.061372"
; i++;
187
_EleNames[i]=(
char
*)
"Curium Cm 247.070346"
; i++;
188
_EleNames[i]=(
char
*)
"Berkelium Bk 247.070298"
; i++;
189
_EleNames[i]=(
char
*)
"Californium Cf 251.079579"
; i++;
190
_EleNames[i]=(
char
*)
"Einsteinium Es 252.08297"
; i++;
191
_EleNames[i]=(
char
*)
"Fermium Fm 257.095096"
; i++;
192
193
_EleNames[i]=(
char
*)
"Mendelevium Md 258.098427"
; i++;
194
_EleNames[i]=(
char
*)
"Nobelium No 259.1011"
; i++;
195
_EleNames[i]=(
char
*)
"Lawrencium Lr 262.1098"
; i++;
196
_EleNames[i]=(
char
*)
"Rutherfordium Rf 261.1089"
; i++;
197
_EleNames[i]=(
char
*)
"Hahnium Ha 262.1144"
; i++;
198
_EleNames[i]=(
char
*)
"Seaborgium Sg 263.1186"
; i++;
199
_EleNames[i]=(
char
*)
"Nielsborium Ns 262.1231"
; i++;
200
_EleNames[i]=(
char
*)
"Hassium Hs 265.1306"
; i++;
201
_EleNames[i]=(
char
*)
"Meitnerium Mt 266.1378"
; i++;
202
203
// initialize element pointers to 0
204
for
(
G4int
j=0; j<i; j++) {
205
_Ele[j]=0;
206
}
207
}
208
209
G3EleTable::GetEle
G4Element * GetEle(G4double Z)
Definition:
G3EleTable.cc:52
G3EleTable::~G3EleTable
virtual ~G3EleTable()
Definition:
G3EleTable.cc:46
G4Types.hh
z
G4double z
Definition:
TRTMaterials.hh:39
G4Element
Definition:
G4Element.hh:97
name
const XML_Char * name
Definition:
include/expat.h:151
G4int
int G4int
Definition:
G4Types.hh:78
g
function g(Y1, Y2, PT2)
Definition:
hijing1.383.f:5205
G3EleTable.hh
G4PhysicalConstants.hh
G3EleTable::G3EleTable
G3EleTable()
Definition:
G3EleTable.cc:39
G4ios.hh
G4double
double G4double
Definition:
G4Types.hh:76
G4SystemOfUnits.hh
python.hepunit.mole
int mole
Definition:
hepunit.py:208
G4String
Definition:
examples/extended/parallel/TopC/ParN02/AnnotatedFiles/G4String.hh:45
Generated on Wed Apr 30 2014 15:54:35 for Geant4.10 by
1.8.7