Geant4
9.6.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4_9_6_p02
examples
advanced
human_phantom
src
G4HumanPhantomMaterial.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
// Authors: S. Guatelli and M. G. Pia, INFN Genova, Italy
27
//
28
// Based on code developed by the undergraduate student G. Guerrieri
29
// Note: this is a preliminary beta-version of the code; an improved
30
// version will be distributed in the next Geant4 public release, compliant
31
// with the design in a forthcoming publication, and subject to a
32
// design and code review.
33
//
34
35
#include "
G4HumanPhantomMaterial.hh
"
36
#include "
globals.hh
"
37
#include "
G4SystemOfUnits.hh
"
38
#include "
G4MaterialPropertiesTable.hh
"
39
#include "
G4MaterialPropertyVector.hh
"
40
#include "
G4MaterialTable.hh
"
41
#include "
Randomize.hh
"
42
#include "
G4RunManager.hh
"
43
#include "
G4Element.hh
"
44
#include "
G4ElementTable.hh
"
45
46
G4HumanPhantomMaterial::G4HumanPhantomMaterial
():
47
soft(0), skeleton(0),lung(0), adipose(0), glandular(0),
48
adipose_glandular(0)
49
{;}
50
51
G4HumanPhantomMaterial::~G4HumanPhantomMaterial
()
52
{;}
53
54
void
G4HumanPhantomMaterial::DefineMaterials
()
55
{
56
// Define required materials
57
58
G4double
A;
// atomic mass
59
G4double
Z
;
// atomic number
60
G4double
d
;
// density
61
62
// General elements
63
64
A = 1.01*
g
/
mole
;
65
G4Element
*
elH
=
new
G4Element
(
"Hydrogen"
,
"H"
,Z = 1.,A);
66
67
A = 12.011*
g
/
mole
;
68
G4Element
*
elC
=
new
G4Element
(
"Carbon"
,
"C"
,Z = 6.,A);
69
70
A = 14.01*
g
/
mole
;
71
G4Element
*
elN
=
new
G4Element
(
"Nitrogen"
,
"N"
,Z = 7.,A);
72
73
A = 16.00*
g
/
mole
;
74
G4Element
*
elO
=
new
G4Element
(
"Oxygen"
,
"O"
,Z = 8.,A);
75
76
A = 22.99*
g
/
mole
;
77
G4Element
* elNa =
new
G4Element
(
"Sodium"
,
"Na"
,Z = 11.,A);
78
79
A = 24.305*
g
/
mole
;
80
G4Element
* elMg =
new
G4Element
(
"Magnesium"
,
"Mg"
,Z = 12.,A);
81
82
A = 30.974*
g
/
mole
;
83
G4Element
* elP =
new
G4Element
(
"Phosphorus"
,
"P"
,Z = 15.,A);
84
85
A = 32.064*
g
/
mole
;
86
G4Element
* elS =
new
G4Element
(
"Sulfur"
,
"S"
,Z = 16.,A);
87
88
A = 35.453*
g
/
mole
;
89
G4Element
* elCl =
new
G4Element
(
"Chlorine"
,
"Cl"
,Z = 17.,A);
90
91
A = 39.098*
g
/
mole
;
92
G4Element
* elK =
new
G4Element
(
"Potassium"
,
"K"
,Z = 19.,A);
93
94
A = 40.08*
g
/
mole
;
95
G4Element
* elCa =
new
G4Element
(
"Calcium"
,
"Ca"
,Z = 20.,A);
96
97
A = 55.85*
g
/
mole
;
98
G4Element
* elFe =
new
G4Element
(
"Iron"
,
"Fe"
,Z = 26.,A);
99
100
A = 65.38*
g
/
mole
;
101
G4Element
* elZn =
new
G4Element
(
"Zinc"
,
"Zn"
,Z = 30.,A);
102
103
A = 85.47 *
g
/
mole
;
104
G4Element
* elRb =
new
G4Element
(
"Rb"
,
"Rb"
,Z = 37.,A);
105
106
A = 87.62 *
g
/
mole
;
107
G4Element
* elSr =
new
G4Element
(
"Sr"
,
"Sr"
,Z = 38.,A);
108
109
A = 91.22 *
g
/
mole
;
110
G4Element
* elZr =
new
G4Element
(
"Zr"
,
"Zr"
,Z = 40.,A);
111
112
A = 207.19 *
g
/
mole
;
113
G4Element
* elPb =
new
G4Element
(
"Lead"
,
"Pb"
, Z = 82.,A);
114
115
// Water
116
d = 1.000*
g
/
cm3
;
117
matH2O =
new
G4Material
(
"Water"
,d,2);
118
matH2O->
AddElement
(elH,2);
119
matH2O->
AddElement
(elO,1);
120
matH2O->
GetIonisation
()->
SetMeanExcitationEnergy
(75.0*
eV
);
121
122
// MIRD soft tissue
123
d = 0.9869 *
g
/
cm3
;
124
soft =
new
G4Material
(
"soft_tissue"
,d,16);
125
soft->
AddElement
(elH,0.1047);
126
soft->
AddElement
(elC,0.2302);
127
soft->
AddElement
(elN,0.0234);
128
soft->
AddElement
(elO,0.6321);
129
soft->
AddElement
(elNa,0.0013);
130
soft->
AddElement
(elMg,0.00015);
131
soft->
AddElement
(elP,0.0024);
132
soft->
AddElement
(elS,0.0022);
133
soft->
AddElement
(elCl,0.0014);
134
soft->
AddElement
(elK,0.0021);
135
soft->
AddElement
(elFe,0.000063);
136
soft->
AddElement
(elZn,0.000032);
137
soft->
AddElement
(elRb,0.0000057);
138
soft->
AddElement
(elSr,0.00000034);
139
soft->
AddElement
(elZr,0.000008);
140
soft->
AddElement
(elPb,0.00000016);
141
142
// MIRD Skeleton
143
144
d = 1.4862*
g
/
cm3
;
145
skeleton =
new
G4Material
(
"skeleton"
,d,15);
146
skeleton ->
AddElement
(elH,0.0704);
147
skeleton ->
AddElement
(elC,0.2279);
148
skeleton ->
AddElement
(elN,0.0387);
149
skeleton ->
AddElement
(elO,0.4856);
150
skeleton ->
AddElement
(elNa,0.0032);
151
skeleton ->
AddElement
(elMg,0.0011);
152
skeleton ->
AddElement
(elP,0.0694);
153
skeleton ->
AddElement
(elS,0.0017);
154
skeleton ->
AddElement
(elCl,0.0014);
155
skeleton ->
AddElement
(elK,0.0015);
156
skeleton ->
AddElement
(elCa,0.0991);
157
skeleton ->
AddElement
(elFe,0.00008);
158
skeleton ->
AddElement
(elZn,0.000048);
159
skeleton ->
AddElement
(elSr,0.000032);
160
skeleton ->
AddElement
(elPb,0.000011);
161
162
// MIRD lung material
163
d = 0.2958 *
g
/
cm3
;
164
lung =
new
G4Material
(
"lung_material"
, d,16);
165
lung ->
AddElement
(elH, 0.1021);
166
lung ->
AddElement
(elC, 0.1001);
167
lung ->
AddElement
(elN,0.028);
168
lung ->
AddElement
(elO,0.7596);
169
lung ->
AddElement
(elNa,0.0019);
170
lung ->
AddElement
(elMg,0.000074);
171
lung ->
AddElement
(elP,0.00081);
172
lung ->
AddElement
(elS,0.0023);
173
lung ->
AddElement
(elCl,0.0027);
174
lung ->
AddElement
(elK,0.0020);
175
lung ->
AddElement
(elCa,0.00007);
176
lung ->
AddElement
(elFe,0.00037);
177
lung ->
AddElement
(elZn,0.000011);
178
lung ->
AddElement
(elRb,0.0000037);
179
lung ->
AddElement
(elSr,0.000000059);
180
lung ->
AddElement
(elPb,0.00000041);
181
182
G4double
density_adipose = 0.93 *
g
/
cm3
;
183
adipose =
new
G4Material
(
"adipose"
, density_adipose,8);
184
adipose ->
AddElement
(elH, 0.112);
185
adipose ->
AddElement
(elC, 0.619);
186
adipose ->
AddElement
(elN, 0.017);
187
adipose ->
AddElement
(elO, 0.251);
188
adipose ->
AddElement
(elS, 0.00025);
189
adipose ->
AddElement
(elP, 0.00025);
190
adipose ->
AddElement
(elK, 0.00025);
191
adipose ->
AddElement
(elCa,0.00025);
192
193
G4double
density_glandular = 1.04 *
g
/
cm3
;
194
glandular =
new
G4Material
(
"glandular"
, density_glandular,8);
195
glandular ->
AddElement
(elH, 0.1);
196
glandular ->
AddElement
(elC,0.184);
197
glandular ->
AddElement
(elN, 0.032);
198
glandular ->
AddElement
(elO, 0.679);
199
glandular ->
AddElement
(elS, 0.00125);
200
glandular ->
AddElement
(elP, 0.00125);
201
glandular ->
AddElement
(elK, 0.00125);
202
glandular ->
AddElement
(elCa,0.00125);
203
204
205
d = (density_adipose * 0.5) + (density_glandular * 0.5);
206
adipose_glandular =
new
G4Material
(
"adipose_glandular"
, d, 2);
207
adipose_glandular ->
AddMaterial
(adipose, 0.5);
208
adipose_glandular ->
AddMaterial
(glandular, 0.5);
209
210
// Air
211
d = 1.290*
mg
/
cm3
;
212
G4Material
* matAir =
new
G4Material
(
"Air"
,d,2);
213
matAir->
AddElement
(elN,0.7);
214
matAir->
AddElement
(elO,0.3);
215
}
216
217
G4Material
*
G4HumanPhantomMaterial::GetMaterial
(
G4String
material
)
218
{
219
// Returns a material
220
G4Material
* pttoMaterial =
G4Material::GetMaterial
(material);
221
return
pttoMaterial;
222
}
Generated on Sat May 25 2013 14:32:11 for Geant4 by
1.8.4