source: trunk/examples/extended/electromagnetic/TestEm10/src/Em10Materials.cc@ 1036

Last change on this file since 1036 was 807, checked in by garnier, 17 years ago

update

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