Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Em10Materials.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 // $Id: Em10Materials.cc 66587 2012-12-21 11:06:44Z ihrivnac $
27 //
28 /// \file electromagnetic/TestEm10/src/Em10Materials.cc
29 /// \brief Implementation of the Em10Materials class
30 //
31 //
32 //
33 // GEANT 4 class
34 //
35 // History: based on object model of
36 // Em10Materials
37 // Originally Created in Test30 by Vladimir Ivanchenko, 12 March 2002
38 //
39 // Modified for TestEm10 by V. Grichine, 29 Jan 2006
40 // is filled with XTR related materials, plastics, gas mixtures, etc
41 
42 
43 #include "Em10Materials.hh"
44 
45 #include "G4UnitsTable.hh"
46 #include "G4Material.hh"
47 #include "G4MaterialTable.hh"
48 #include "G4SystemOfUnits.hh"
49 
51 {
52  Initialise();
53 }
54 
56 {}
57 
58 void Em10Materials::Initialise()
59 {
61  G4double a, z;
62  G4double density, fractionmass;
63  G4int nel, ncomponents;
64 
65  // define Elements
66 
67  a = 1.01*g/mole;
68  G4Element* elH = new G4Element(name="Hydrogen",symbol="H" , z= 1., a);
69 
70  a = 6.94*g/mole;
71  G4Element* elLi = new G4Element(name="Lithium",symbol="Li" , z= 3., a);
72 
73  a = 9.01*g/mole;
74  G4Element* elBe = new G4Element(name="Berillium",symbol="Be" , z= 4., a);
75 
76  a = 12.01*g/mole;
77  G4Element* elC = new G4Element(name="Carbon", symbol="C", z=6., a);
78 
79  a = 14.01*g/mole;
80  G4Element* elN = new G4Element(name="Nitrogen",symbol="N" , z= 7., a);
81 
82  a = 16.00*g/mole;
83  G4Element* elO = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a);
84 
85  a = 39.948*g/mole;
86  G4Element* elAr = new G4Element(name="Argon", symbol="Ar", z=18., a);
87 
88  /*
89  a = 131.29*g/mole;
90  G4Element* elXe = new G4Element(name="Xenon", symbol="Xe", z=54., a);
91 
92  a = 19.00*g/mole;
93  G4Element* elF = new G4Element(name="Fluorine", symbol="F", z=9., a);
94  */
95 
96  //////////////
97  //
98  // Detector windows, electrodes
99  // Al for electrodes
100 
101  density = 2.700*g/cm3;
102  a = 26.98*g/mole;
103  new G4Material(name="Al", z=13., a, density);
104 
105 
106  /////////
107  //
108  // Materials for popular X-ray TR radiators
109  //
110 
111  // TRT_CH2
112 
113  density = 0.935*g/cm3;
114  G4Material* TRT_CH2 = new G4Material(name="TRT_CH2",density, nel=2);
115  TRT_CH2->AddElement(elC,1);
116  TRT_CH2->AddElement(elH,2);
117 
118  // Radiator
119 
120  density = 0.059*g/cm3;
121  G4Material* Radiator = new G4Material(name="Radiator",density, nel=2);
122  Radiator->AddElement(elC,1);
123  Radiator->AddElement(elH,2);
124 
125  // Carbon Fiber
126 
127  density = 0.145*g/cm3;
128  G4Material* CarbonFiber = new G4Material(name="CarbonFiber",density, nel=1);
129  CarbonFiber->AddElement(elC,1);
130 
131  // Lithium
132 
133  density = 0.534*g/cm3;
134  G4Material* Li = new G4Material(name="Li",density, nel=1);
135  Li->AddElement(elLi,1);
136 
137  // Beryllium
138 
139  density = 1.848*g/cm3;
140  G4Material* Be = new G4Material(name="Be",density, nel=1);
141  Be->AddElement(elBe,1);
142 
143 
144  // Mylar
145 
146  density = 1.39*g/cm3;
147  G4Material* Mylar = new G4Material(name="Mylar", density, nel=3);
148  Mylar->AddElement(elO,2);
149  Mylar->AddElement(elC,5);
150  Mylar->AddElement(elH,4);
151 
152  // Kapton Dupont de Nemur (density: 1.396-1.430, get middle )
153 
154  density = 1.413*g/cm3;
155  G4Material* Kapton = new G4Material(name="Kapton", density, nel=4);
156  Kapton->AddElement(elO,5);
157  Kapton->AddElement(elC,22);
158  Kapton->AddElement(elN,2);
159  Kapton->AddElement(elH,10);
160 
161  // Kapton (polyimide) ??? since = Mylar C5H4O2
162 
163  // density = 1.39*g/cm3;
164  // G4Material* kapton = new G4Material(name="kapton", density, nel=3);
165  // Kapton->AddElement(elO,2);
166  // Kapton->AddElement(elC,5);
167  // Kapton->AddElement(elH,4);
168 
169  // Polypropelene
170 
171  G4Material* CH2 = new G4Material ("CH2" , 0.91*g/cm3, 2);
172  CH2->AddElement(elH,2);
173  CH2->AddElement(elC,1);
174 
175  ////////////////////////////
176  //
177  // Noble gases , STP conditions
178 
179  // Helium as detector gas, STP
180 
181  density = 0.178*mg/cm3;
182  a = 4.0026*g/mole;
183  G4Material* He = new G4Material(name="He",z=2., a, density );
184 
185  // Neon as detector gas, STP
186 
187  density = 0.900*mg/cm3;
188  a = 20.179*g/mole;
189  new G4Material(name="Ne",z=10., a, density );
190 
191  // Argon as detector gas, STP
192 
193  density = 1.7836*mg/cm3; // STP
194  G4Material* Argon = new G4Material(name="Argon" , density, ncomponents=1);
195  Argon->AddElement(elAr, 1);
196 
197  // Krypton as detector gas, STP
198 
199  density = 3.700*mg/cm3;
200  a = 83.80*g/mole;
201  G4Material* Kr = new G4Material(name="Kr",z=36., a, density );
202 
203  // Xenon as detector gas, STP
204 
205  density = 5.858*mg/cm3;
206  a = 131.29*g/mole;
207  G4Material* Xe = new G4Material(name="Xenon",z=54., a, density );
208 
209 /////////////////////////////////
210 //
211 // Hydrocarbones, metane and others
212 
213  // Metane, STP
214 
215  density = 0.7174*mg/cm3;
216  G4Material* metane = new G4Material(name="CH4",density,nel=2);
217  metane->AddElement(elC,1);
218  metane->AddElement(elH,4);
219 
220  // Propane, STP
221 
222  density = 2.005*mg/cm3 ;
223  G4Material* propane = new G4Material(name="C3H8",density,nel=2);
224  propane->AddElement(elC,3);
225  propane->AddElement(elH,8);
226 
227  // iso-Butane (methylpropane), STP
228 
229  density = 2.67*mg/cm3;
230  G4Material* isobutane = new G4Material(name="isoC4H10",density,nel=2);
231  isobutane->AddElement(elC,4);
232  isobutane->AddElement(elH,10);
233 
234  /////////////////////////
235  //
236  // Molecular gases
237 
238  // Carbon dioxide, STP
239 
240  density = 1.977*mg/cm3;
241  G4Material* CO2 = new G4Material(name="CO2", density, nel=2,
242  kStateGas,273.15*kelvin,1.*atmosphere);
243  CO2->AddElement(elC,1);
244  CO2->AddElement(elO,2);
245 
246  // Carbon dioxide, STP
247 
248  density = 1.977*273.*mg/cm3/293.;
249  G4Material* CarbonDioxide = new G4Material(name="CO2", density, nel=2);
250  CarbonDioxide->AddElement(elC,1);
251  CarbonDioxide->AddElement(elO,2);
252 
253  // Nitrogen, STP
254 
255  density = 1.25053*mg/cm3; // STP
256  G4Material* Nitrogen = new G4Material(name="N2" , density, ncomponents=1);
257  Nitrogen->AddElement(elN, 2);
258 
259  // Oxygen, STP
260 
261  density = 1.4289*mg/cm3; // STP
262  G4Material* Oxygen = new G4Material(name="O2" , density, ncomponents=1);
263  Oxygen->AddElement(elO, 2);
264 
265  /* *****************************
266  density = 1.25053*mg/cm3; // STP
267  a = 14.01*g/mole ; // get atomic weight !!!
268  // a = 28.016*g/mole;
269  G4Material* N2 = new G4Material(name="Nitrogen", z= 7.,a,density) ;
270 
271  density = 1.25053*mg/cm3; // STP
272  G4Material* anotherN2 = new G4Material(name="anotherN2", density,ncomponents=2);
273  anotherN2->AddElement(elN, 1);
274  anotherN2->AddElement(elN, 1);
275 
276  // air made from oxigen and nitrogen only
277 
278  density = 1.290*mg/cm3; // old air from elements
279  G4Material* air = new G4Material(name="air" , density, ncomponents=2);
280  air->AddElement(elN, fractionmass=0.7);
281  air->AddElement(elO, fractionmass=0.3);
282  ******************************************** */
283 
284  // Dry Air (average composition with Ar), STP
285 
286  density = 1.2928*mg/cm3 ; // STP
287  G4Material* Air = new G4Material(name="Air" , density, ncomponents=3);
288  Air->AddMaterial( Nitrogen, fractionmass = 0.7557 );
289  Air->AddMaterial( Oxygen, fractionmass = 0.2315 );
290  Air->AddMaterial( Argon, fractionmass = 0.0128 );
291 
292  ////////////////////////////////////////////////////////////////////////////
293  //
294  // MWPC mixtures
295 
296  // 85% Xe + 15% CO2, STP
297 
298  density = 4.9*mg/cm3;
299  G4Material* Xe15CO2 = new G4Material(name="Xe15CO2" , density, ncomponents=2);
300  Xe15CO2->AddMaterial( Xe, fractionmass = 0.979);
301  Xe15CO2->AddMaterial( CarbonDioxide, fractionmass = 0.021);
302 
303  // 80% Xe + 20% CO2, STP
304 
305  density = 5.0818*mg/cm3;
306  G4Material* Xe20CO2 = new G4Material(name="Xe20CO2" , density, ncomponents=2);
307  Xe20CO2->AddMaterial( Xe, fractionmass = 0.922 );
308  Xe20CO2->AddMaterial( CarbonDioxide, fractionmass = 0.078 );
309 
310  // 70% Xe + 27% CO2 + 3% O2, 20 1 atm ATLAS straw tube mixture
311 
312  density = 4.358*mg/cm3;
313  G4Material* Xe27CO23O2 = new G4Material(name="Xe27CO23O2" , density, ncomponents=3);
314  Xe27CO23O2->AddMaterial( Xe, fractionmass = 0.87671);
315  Xe27CO23O2->AddMaterial( CarbonDioxide, fractionmass = 0.11412);
316  Xe27CO23O2->AddMaterial( Oxygen, fractionmass = 0.00917);
317 
318  // 80% Kr + 20% CO2, STP
319 
320  density = 3.601*mg/cm3;
321  G4Material* Kr20CO2 = new G4Material(name="Kr20CO2", density,
322  ncomponents=2);
323  Kr20CO2->AddMaterial( Kr, fractionmass = 0.89 );
324  Kr20CO2->AddMaterial( CarbonDioxide, fractionmass = 0.11 );
325 
326  // Xe + 55% He + 15% CH4 ; NIM A294 (1990) 465-472; STP
327 
328  density = 1.963*273.*mg/cm3/293.;
329  G4Material* Xe55He15CH4 = new G4Material(name="Xe55He15CH4",density,
330  ncomponents=3);
331  Xe55He15CH4->AddMaterial(Xe, 0.895);
332  Xe55He15CH4->AddMaterial(He, 0.050);
333  Xe55He15CH4->AddMaterial(metane,0.055);
334 
335  // 90% Xe + 10% CH4, STP ; NIM A248 (1986) 379-388
336 
337  density = 5.344*mg/cm3;
338  G4Material* Xe10CH4 = new G4Material(name="Xe10CH4" , density,
339  ncomponents=2);
340  Xe10CH4->AddMaterial( Xe, fractionmass = 0.987 ) ;
341  Xe10CH4->AddMaterial( metane, fractionmass = 0.013 ) ;
342 
343  // 95% Xe + 5% CH4, STP ; NIM A214 (1983) 261-268
344 
345  density = 5.601*mg/cm3;
346  G4Material* Xe5CH4 = new G4Material(name="Xe5CH4" , density,
347  ncomponents=2);
348  Xe5CH4->AddMaterial( Xe, fractionmass = 0.994 );
349  Xe5CH4->AddMaterial( metane, fractionmass = 0.006 );
350 
351  // 80% Xe + 20% CH4, STP ; NIM A253 (1987) 235-244
352 
353  density = 4.83*mg/cm3;
354  G4Material* Xe20CH4 = new G4Material(name="Xe20CH4" , density,
355  ncomponents=2);
356  Xe20CH4->AddMaterial( Xe, fractionmass = 0.97 );
357  Xe20CH4->AddMaterial( metane, fractionmass = 0.03 );
358 
359  // 93% Ar + 7% CH4, STP ; NIM 107 (1973) 413-422
360 
361  density = 1.709*mg/cm3;
362  G4Material* Ar7CH4 = new G4Material(name="Ar7CH4" , density,
363  ncomponents=2);
364  Ar7CH4->AddMaterial( Argon, fractionmass = 0.971 );
365  Ar7CH4->AddMaterial( metane, fractionmass = 0.029 );
366 
367  // 93% Kr + 7% CH4, STP ; NIM 107 (1973) 413-422
368 
369  density = 3.491*mg/cm3;
370  G4Material* Kr7CH4 = new G4Material(name="Kr7CH4" , density,
371  ncomponents=2);
372  Kr7CH4->AddMaterial( Kr, fractionmass = 0.986 );
373  Kr7CH4->AddMaterial( metane, fractionmass = 0.014 );
374 
375  // 0.5*(95% Xe + 5% CH4)+0.5*(93% Ar + 7% CH4), STP ; NIM A214 (1983) 261-268
376 
377  density = 3.655*mg/cm3;
378  G4Material* XeArCH4 = new G4Material(name="XeArCH4" , density,
379  ncomponents=2);
380  XeArCH4->AddMaterial( Xe5CH4, fractionmass = 0.766 );
381  XeArCH4->AddMaterial( Ar7CH4, fractionmass = 0.234 );
382 
383  // Silicon as detector material
384 
385  density = 2.330*g/cm3;
386  a = 28.09*g/mole;
387  new G4Material(name="Si", z=14., a, density);
388 
389 
390 
391 
392  /*
393  G4Material* ma;
394  ma = new G4Material("H", 1., 1.0*g/mole, 1.*g/cm3);
395  ma = new G4Material("D", 1., 2.0*g/mole, 1.*g/cm3);
396  ma = new G4Material("Li", 3., 6.941*g/mole, 1.*g/cm3);
397  ma = new G4Material("Be", 4., 9.01*g/mole, 1.848*g/cm3);
398  ma = new G4Material("C", 6., 12.00*g/mole, 2.0*g/cm3);
399  ma = new G4Material("Graphite",6., 12.00*g/mole, 2.265*g/cm3 );
400  ma->SetChemicalFormula("Graphite");
401  ma = new G4Material("Al", 13., 26.98*g/mole, 2.7 *g/cm3);
402  ma = new G4Material("Si", 14., 29.055*g/mole, 2.33*g/cm3);
403  ma = new G4Material("LAr", 18., 39.95*g/mole, 1.393*g/cm3);
404  ma = new G4Material("Zr", 40., 91.224*g/mole, 4.0*g/cm3);
405  ma = new G4Material("LXe", 54., 131.29*g/mole, 3.02*g/cm3);
406  ma = new G4Material("Fe", 26., 55.85*g/mole, 7.87*g/cm3);
407  ma = new G4Material("Ni", 29., 58.6934*g/mole, 8.00*g/cm3);
408  ma = new G4Material("Cu", 29., 63.55*g/mole, 8.96*g/cm3);
409  ma = new G4Material("Au", 79., 196.97*g/mole, 19.32*g/cm3);
410  ma = new G4Material("Ta", 73., 180.9479*g/mole, 16.67*g/cm3);
411  ma = new G4Material("W", 74., 183.85*g/mole, 19.30*g/cm3);
412  ma = new G4Material("Pb", 82., 207.19*g/mole, 11.35*g/cm3);
413  ma = new G4Material("Bi", 83., 208.98*g/mole, 12.*g/cm3);
414  ma = new G4Material("U", 92., 238.03*g/mole, 18.95*g/cm3);
415 
416  G4Element* H = new G4Element ("Hydrogen", "H", 1. , 1.01*g/mole);
417  G4Element* N = new G4Element ("Nitrigen", "N", 7. , 14.00*g/mole);
418  G4Element* O = new G4Element ("Oxygen" , "O", 8. , 16.00*g/mole);
419  G4Element* C = new G4Element ("Carbon" , "C", 6. , 12.00*g/mole);
420  G4Element* Cs = new G4Element ("Cesium" , "Cs", 55. , 132.905*g/mole);
421  G4Element* I = new G4Element ("Iodide" , "I", 53. , 126.9044*g/mole);
422 
423  ma = new G4Material("O2", 8., 16.00*g/mole, 1.1*g/cm3);
424  ma->SetChemicalFormula("O_2");
425  ma = new G4Material ("Water" , 1.*g/cm3, 2);
426  ma->AddElement(H,2);
427  ma->AddElement(O,1);
428  ma->SetChemicalFormula("H_2O");
429  ma = new G4Material ("Ethane" , 0.4241*g/cm3, 2);
430  ma->AddElement(H,6);
431  ma->AddElement(C,2);
432  ma->SetChemicalFormula("C_2H_6");
433  ma = new G4Material ("CsI" , 4.53*g/cm3, 2);
434  ma->AddElement(Cs,1);
435  ma->AddElement(I,1);
436  ma->SetChemicalFormula("CsI");
437  ma = new G4Material("Air" , 1.290*mg/cm3, 2);
438  // use fraction in mass
439  ma->AddElement(N, 0.7);
440  ma->AddElement(O, 0.3);
441  */
442 
443 
444 
445 }
446 
447 
449 {
450 
451  // const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
452 
454 
455  G4cout << "Material is selected: " << ma->GetName() << G4endl;
456  return ma;
457 }
458 
459 
460 
461 
462 
463 
464 
465 
G4String symbol
Definition: TRTMaterials.hh:40
G4Material * Air
Definition: TRTMaterials.hh:57
void AddMaterial(G4Material *material, G4double fraction)
Definition: G4Material.cc:450
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
Definition: G4Material.cc:578
G4double z
Definition: TRTMaterials.hh:39
const G4String & GetName() const
Definition: G4Material.hh:176
G4Material * Radiator
G4Element * elC
Definition: TRTMaterials.hh:48
int atmosphere
Definition: hepunit.py:151
const XML_Char * name
int G4int
Definition: G4Types.hh:78
Definition of the Em10Materials class.
G4Element * elN
Definition: TRTMaterials.hh:44
G4Element * elH
Definition: TRTMaterials.hh:50
G4double density
Definition: TRTMaterials.hh:39
function g(Y1, Y2, PT2)
Definition: hijing1.383.f:5205
G4GLOB_DLL std::ostream G4cout
G4Element * elO
Definition: TRTMaterials.hh:46
G4Material * GetMaterial(const G4String &)
G4Material * TRT_CH2
G4Material * CarbonFiber
#define G4endl
Definition: G4ios.hh:61
void AddElement(G4Element *element, G4int nAtoms)
Definition: G4Material.cc:345
double G4double
Definition: G4Types.hh:76
G4Material * Kapton
Definition: TRTMaterials.hh:63
G4Material * CO2
Definition: TRTMaterials.hh:81
G4int nel
Definition: TRTMaterials.hh:41