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