GGS(GenericGEANT4Simulation)Software  2.7.0
 All Data Structures Namespaces Files Functions Variables Typedefs Macros
GGSMaterials.cpp
Go to the documentation of this file.
1 /*
2  * GGSMaterials.cpp
3  *
4  * Created on: 2010-10-06
5  * Authors: Emiliano Mocchiutti & Cecilia Pizzolotto (mitici, eh?)
6  */
7 
10 #include "geometry/GGSMaterials.h"
11 
12 #include "G4SystemOfUnits.hh"
13 
20 
21  G4String name, symbol;
22  G4double a, z, density;
23 
24  G4int ncomponents, natoms;
25  G4double fractionmass;
26  G4double temperature, pressure;
27 
28  //
29  // define Elements
30  //
31 
32  a = 1.01 * g / mole;
33  _H = new G4Element(name = "Hydrogen", symbol = "H", z = 1., a);
34 
35  a = 4.003 * g / mole;
36  _He = new G4Element(name = "Helium", symbol = "He", z = 2., a);
37 
38  a = 12.01 * g / mole;
39  _C = new G4Element(name = "Carbon", symbol = "C", z = 6., a);
40 
41  a = 14.006 * g / mole;
42  _N = new G4Element(name = "Nitrogen", symbol = "N", z = 7., a);
43 
44  a = 15.99 * g / mole;
45  _O = new G4Element(name = "Oxygen", symbol = "O", z = 8., a);
46 
47  a = 26.98 * g / mole;
48  _Al = new G4Element(name = "Aluminum", symbol = "Al", z = 13., a);
49 
50  a = 28.09 * g / mole;
51  _Si = new G4Element(name = "Silicon", symbol = "Si", z = 14., a);
52 
53  a = 55.845 * g / mole;
54  _Fe = new G4Element(name = "Iron", symbol = "Fe", z = 26., a);
55 
56  a = 58.69334 * g / mole;
57  _Ni = new G4Element(name = "Nickel", symbol = "Ni", z = 28., a);
58 
59  a = 63.546 * g / mole;
60  _Cu = new G4Element(name = "Copper", symbol = "Cu", z = 29., a);
61 
62  a = 72.64 * g / mole;
63  _Ge = new G4Element(name = "Germanium", symbol = "Ge", z = 32., a);
64 
65  a = 126.904 * g / mole;
66  _I = new G4Element(name = "Iodine", symbol = "I", z = 53., a);
67 
68  a = 132.905 * g / mole;
69  _Cs = new G4Element(name = "Cesium", symbol = "Cs", z = 55., a);
70 
71  a = 183.84 * g / mole;
72  _W = new G4Element(name = "Tungsten", symbol = "W", z = 74., a);
73 
74  a = 207.19 * g / mole;
75  _Pb = new G4Element(name = "Lead", symbol = "Pb", z = 82., a);
76 
77  a = 208.98 * g / mole;
78  _Bi = new G4Element(name = "Bismuth", symbol = "Bi", z = 83., a);
79 
80  //
81  // define simple materials
82  //
83 
84  density = 19.3 * g / cm3;
85  a = 183.84 * g / mole;
86  _Tungsten = new G4Material(name = "TungstenMaterial", z = 74., a, density);
87 
88  density = 0.1246e-2 * g / cm3; // from pamela ND
89  a = 3. * g / mole;
90  _He3 = new G4Material(name = "He3Material", z = 2., a, density);
91 
92  //
93  // define a material from elements. case 1: chemical molecule
94  //
95 
96  density = 4.53 * g / cm3;
97  _CsI = new G4Material(name = "CesiumIodideMaterial", density, ncomponents = 2);
98  _CsI->AddElement(_Cs, natoms = 5);
99  _CsI->AddElement(_I, natoms = 5);
100 
101  //
102  // define a material from elements. case 2: mixture by fractional mass
103  //
104 
105  density = 1.290 * mg / cm3;
106  _Air = new G4Material(name = "AirMaterial", density, ncomponents = 2);
107  _Air->AddElement(_N, fractionmass = 0.7);
108  _Air->AddElement(_O, fractionmass = 0.3);
109 
110  density = 2.700 * g / cm3;
111  _Aluminium = new G4Material(name = "AluminumMaterial", density, ncomponents = 1);
112  _Aluminium->AddElement(_Al, fractionmass = 1.);
113 
114  density = 2.333 * g / cm3;
115  _Silicon = new G4Material(name = "SiliconMaterial", density, ncomponents = 1);
116  _Silicon->AddElement(_Si, fractionmass = 1.);
117 
118  density = 7.87 * g / cm3;
119  _Iron = new G4Material(name = "IronMaterial", density, ncomponents = 1);
120  _Iron->AddElement(_Fe, fractionmass = 1.);
121 
122  density = 11.35 * g / cm3;
123  _Lead = new G4Material(name = "LeadMaterial", density, ncomponents = 1);
124  _Lead->AddElement(_Pb, fractionmass = 1.);
125 
126  density = 7.100 * g / cm3; // Bismuth Germanate
127  _BGO = new G4Material(name = "BGOMaterial", density, ncomponents = 3);
128  _BGO->AddElement(_Bi, natoms = 4);
129  _BGO->AddElement(_Ge, natoms = 3);
130  _BGO->AddElement(_O, natoms = 12);
131 
132  density = 8.3 * g / cm3; // Lead tungstate
133  _PWO = new G4Material(name = "PWOMaterial", density, ncomponents = 3);
134  _PWO->AddElement(_Pb, natoms = 1);
135  _PWO->AddElement(_W, natoms = 1);
136  _PWO->AddElement(_O, natoms = 4);
137 
138  density = 1.70000 * g / cm3; // PCB
139  _PCB = new G4Material(name = "PCBMaterial", density, ncomponents = 4);
140  _PCB->AddElement(_Si, fractionmass = 0.53);
141  _PCB->AddElement(_O, fractionmass = 0.3);
142  _PCB->AddElement(_C, fractionmass = 0.15);
143  _PCB->AddElement(_H, fractionmass = 0.2000000E-01);
144 
145  density = 1.032 * g / cm3; // PVT
146  _PVT = new G4Material(name = "PVTMaterial", density, ncomponents = 2);
147  _PVT->AddElement(_C, natoms = 9);
148  _PVT->AddElement(_H, natoms = 10);
149 
150  density = 1.035 * g / cm3; // PS This is an old value used for consistency with other simulations (Fluka). Newer value
151  // is (PDG 2010): 1.06 g / cm3
152  _PS = new G4Material(name = "PSMaterial", density, ncomponents = 2);
153  _PS->AddElement(_C, natoms = 8);
154  _PS->AddElement(_H, natoms = 8);
155 
156  density = 1.390 * g / cm3; // Mylar
157  _Mylar = new G4Material(name = "MylarMaterial", density, ncomponents = 3);
158  _Mylar->AddElement(_C, fractionmass = 0.6250159);
159  _Mylar->AddElement(_H, fractionmass = 0.4196011E-01);
160  _Mylar->AddElement(_O, fractionmass = 0.3330241);
161 
162  //
163  // examples of vacuum
164  //
165  density = CLHEP::universe_mean_density; // from PhysicalConstants.h
166  pressure = 3.e-18 * pascal;
167  temperature = 2.73 * kelvin;
168  _Vacuum =
169  new G4Material(name = "GalacticMaterial", z = 1., a = 1.01 * g / mole, density, kStateGas, temperature, pressure);
170 }
171 
178 
179  // Elements
180  delete _H;
181  delete _He;
182  delete _C;
183  delete _N;
184  delete _O;
185  delete _Al;
186  delete _Si;
187  delete _Fe;
188  delete _Ni;
189  delete _Cu;
190  delete _I;
191  delete _Cs;
192  delete _W;
193  delete _Pb;
194  delete _Ge;
195  delete _Bi;
196 
197  // Materials
198  delete _Tungsten;
199  delete _He3;
200  delete _CsI;
201  delete _Air;
202  delete _Aluminium;
203  delete _Silicon;
204  delete _Iron;
205  delete _Lead;
206  delete _BGO;
207  delete _PWO;
208  delete _PVT;
209  delete _PS;
210  delete _PCB;
211  delete _Mylar;
212  delete _Vacuum;
213 }
GGSMaterials()
Constructor.
~GGSMaterials()
Destructor.