ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
BrachyMaterial.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file BrachyMaterial.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 // Code developed by:
27 // S.Guatelli, A. Le
28 //
29 // *******************************
30 // * *
31 // * BrachyMaterial.cc *
32 // * *
33 // *******************************
34 //
35 //
36 #include "globals.hh"
37 #include "Randomize.hh"
38 #include "G4PhysicalConstants.hh"
39 #include "G4SystemOfUnits.hh"
40 #include "G4MaterialTable.hh"
43 #include "G4RunManager.hh"
44 #include "G4Element.hh"
45 #include "G4ElementTable.hh"
46 #include "BrachyMaterial.hh"
47 
49 {;}
50 
52 {;}
53 
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 = 14.01*g/mole;
68  G4Element* elN = new G4Element("Nitrogen","N",Z = 7.,A);
69 
70  A = 16.00*g/mole;
71  G4Element* elO = new G4Element("Oxygen","O",Z = 8.,A);
72 
73  A=26.98*g/mole;
74  G4Element* elAl = new G4Element("Aluminum","Al", Z = 13.,A);
75 
76  A = 12.011*g/mole;
77  G4Element* elC = new G4Element("Carbon","C",Z = 6.,A);
78 
79  A = 22.99*g/mole;
80  G4Element* elNa = new G4Element("Sodium","Na",Z = 11.,A);
81 
82  A = 24.305*g/mole;
83  G4Element* elMg = new G4Element("Magnesium","Mg",Z = 12.,A);
84 
85  A = 30.974*g/mole;
86  G4Element* elP = new G4Element("Phosphorus","P",Z = 15.,A);
87 
88  A = 32.06*g/mole;
89  G4Element* elS = new G4Element("Sulfur","S",Z = 16.,A);
90 
91  A = 35.453*g/mole;
92  G4Element* elCl = new G4Element("Chlorine","Cl",Z = 17.,A);
93 
94  A = 39.098*g/mole;
95  G4Element* elK = new G4Element("Potassium","K",Z = 19.,A);
96 
97  A = 40.08*g/mole;
98  G4Element* elCa = new G4Element("Calcium","Ca",Z = 20.,A);
99 
100  A = 65.38*g/mole;
101  G4Element* elZn = new G4Element("Zinc","Zn",Z = 30.,A);
102 
103  A = 54.94*g/mole;
104  G4Element* elMn = new G4Element("Manganese","Mn",Z = 25.,A);
105 
106  A = 28.09*g/mole;
107  G4Element* elSi = new G4Element("Silicon","Si",Z = 14.,A);
108 
109  A = 52.00*g/mole;
110  G4Element* elCr = new G4Element("Chromium","Cr",Z = 24.,A);
111 
112  A = 58.70*g/mole;
113  G4Element* elNi = new G4Element("Nickel","Ni",Z = 28.,A);
114 
115  A = 55.85*g/mole;
116  G4Element* elFe = new G4Element("Iron","Fe",Z = 26.,A);
117 
118  A = 183.84* g/mole;
119  d = 19.3*g/cm3;
120  matW = new G4Material("Tungsten",Z = 74.,A,d);
121 
122  // Perspex, plexiglass, lucite
123  d = 1.19*g/cm3;
124  matplexiglass = new G4Material("Plexiglass",d,3);
125  matplexiglass->AddElement(elH,0.08);
126  matplexiglass->AddElement(elC,0.60);
127  matplexiglass->AddElement(elO,0.32);
128 
129  // Lead material
130  A = 207.19*g/mole;
131  Z = 82;
132  d = 11.35*g/cm3;
133  matPb = new G4Material("Lead",Z,A,d);
134 
135  // Iridium (Medical Physics, Vol 25, No 10, Oct 1998)
136  d = 22.42*g/cm3;
137  A = 191.96260*g/mole ;
138  Z = 77;
139  matir192 = new G4Material("Iridium",Z,A,d);
140 
141  //titanium
142  A = 47.88*g/mole;
143  d = 4.50*g/cm3;
144  Titanium = new G4Material("titanium" ,Z = 22.,A,d);
145 
146  //silver
147  A = 107.87*g/mole;
148  d = 10.49*g/cm3;
149  Z = 22.0;
150  matAg = new G4Material("Silver", Z, A, d);
151 
152  // Air material
153  d = 1.290*mg/cm3;
154  matAir = new G4Material("Air",d,2);
155  matAir->AddElement(elN,0.7);
156  matAir->AddElement(elO,0.3);
157 
158  // Water
159  d = 1.000*g/cm3;
160  matH2O = new G4Material("Water",d,2);
161  matH2O->AddElement(elH,2);
162  matH2O->AddElement(elO,1);
164 
165  //soft tissue(http://www.nist.gov)
166  d = 1.0*g/cm3;
167  soft = new G4Material("tissue",d,13);
168  soft->AddElement(elH,0.104472);
169  soft->AddElement(elC,0.23219);
170  soft->AddElement(elN,0.02488);
171  soft->AddElement(elO,0.630238);
172  soft->AddElement(elNa,0.00113);
173  soft->AddElement(elMg,0.00013);
174  soft->AddElement(elP,0.00133);
175  soft->AddElement(elS,0.00199);
176  soft->AddElement(elCl,0.00134);
177  soft->AddElement(elK,0.00199);
178  soft->AddElement(elCa,0.00023);
179  soft->AddElement(elFe,0.00005);
180  soft->AddElement(elZn,0.00003);
181 
182  // Stainless steel (Medical Physics, Vol 25, No 10, Oct 1998)
183  d = 8.02*g/cm3 ;
184  matsteel = new G4Material("Stainless steel",d,5);
185  matsteel->AddElement(elMn, 0.02);
186  matsteel->AddElement(elSi, 0.01);
187  matsteel->AddElement(elCr, 0.19);
188  matsteel->AddElement(elNi, 0.10);
189  matsteel->AddElement(elFe, 0.68);
190 
191  //Define Stainless-steel-304 - Flexi source
192  d = 7.999*g/cm3 ;
193  mat304steel = new G4Material("Stainless steel 304",d,6);
194  mat304steel->AddElement(elMn, 0.02);
195  mat304steel->AddElement(elSi, 0.01);
196  mat304steel->AddElement(elCr, 0.19);
197  mat304steel->AddElement(elNi, 0.10);
198  mat304steel->AddElement(elFe, 0.6792);
199  mat304steel->AddElement(elC, 0.0008);
200 
201  //gold
202  A = 196.97*g/mole;
203  d = 19.32*g/cm3;
204  gold = new G4Material("gold",Z = 79.,A,d);
205 
206  //Iodine Core
207  A = 124.9*g/mole;
208  d = 4.862*g/cm3;
209  matI = new G4Material("Iodine",Z = 53.,A,d);
210 
211  //ceramic(Medical Physics, May 2000)
212  d = 2.88*g/cm3;
213  ceramic = new G4Material("allumina",d,2);
214  ceramic->AddElement(elAl,2);
215  ceramic->AddElement(elO,3);
216 
218  G4double pressure = 3.e-18*pascal;
219  G4double temperature = 2.73*kelvin;
220  A=1.01*g/mole;
221  Vacuum = new G4Material("Galactic", Z = 1., A,density,kStateGas,temperature,pressure);
222 
223  //compact bone (http://www.NIST.gov)
224  d = 1.85*g/cm3;
225  bone = new G4Material("bone",d,8);
226  bone->AddElement(elH,0.063984);
227  bone->AddElement(elC,0.278);
228  bone->AddElement(elN,0.027);
229  bone->AddElement(elO,0.410016);
230  bone->AddElement(elMg,0.002);
231  bone->AddElement(elP,0.07);
232  bone->AddElement(elS,0.002);
233  bone->AddElement(elCa,0.147);
234 
235  //muscle(http://www.NIST.gov)
236  muscle = new G4Material("muscle",d,9);
237  muscle->AddElement(elH,0.101997);
238  muscle->AddElement(elC,0.123);
239  muscle->AddElement(elN,0.035);
240  muscle->AddElement(elNa,0.0008);
241  muscle->AddElement(elO,0.729);
242  muscle->AddElement(elMg,0.0002);
243  muscle->AddElement(elP,0.002);
244  muscle->AddElement(elS,0.005);
245  muscle->AddElement(elK,0.003);
246 }
247 
249 {
250  // Returns a material
251  G4Material* pttoMaterial = G4Material::GetMaterial(material);
252  return pttoMaterial;
253 }