Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4NistMaterialBuilder.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//
27// -------------------------------------------------------------------
28//
29// GEANT4 Class file
30//
31// File name: G4NistMaterialBuilder
32//
33// Author: Vladimir Ivanchenko
34//
35// Creation date: 23.12.2004
36//
37// Modifications:
38// 31-10-05 Add chemical effect and gas properties (V.Ivanchenko)
39// 27.02.06 V.Ivanchenko add ConstructNewGasMaterial
40// 11.05.06 V.Ivanchenko add warning flag to FindMaterial method
41// 27.06.06 V.Ivanchenko fix graphite description
42// 27.07.07 V.Ivanchenko remove dependence on NistManager
43// 30.10.09 V.Ivanchenko update density of G4_GRAFITE from PDG'2008
44// added G4_GRAPHITE_POROUS
45// 03.11.09 A.Lechner changed following material names:
46// From G4_NYLON-6/6 to G4_NYLON-6-6
47// From G4_NYLON-6/10 to G4_NYLON-6-10
48// 12.12.10 A.Ivantchenko added following materials methodes:
49// BioChemicalMaterials() and SpaceMaterials(),
50// where new materials are introduced
51// 14.06.11 A.Ivantchenko updated body materials (G4_....ICRP)
52// according ICRU Report 46 (1992) instead of 1975
53// data from ICRU Report 37 used previously
54// 26.10.11 new scheme for G4Exception (mma)
55// 09.02.12 P.Gumplinger add ConstructNewIdealGasMaterial
56// 30.04.13 M.Trocme & S.Seltzer:
57// - Replace AddElementByWeightFraction() by AddElementByAtomCount()
58// as much as possible
59// - Comment out ill-defined material GLUCOSE
60// - Fixed density and atom composition of POLYCHLOROSTYRENE,
61// POLYVINYL_BUTYRAL, TERPHENYL
62// -------------------------------------------------------------------
63//
64// Class Description:
65//
66// Element data from the NIST DB on Atomic Weights and Isotope Compositions
67// http://physics.nist.gov/PhysRefData/Compositions/index.html
68//
69//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
70//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
71
74#include "G4Element.hh"
76#include "G4SystemOfUnits.hh"
77#include <iomanip>
78
79#ifdef G4MULTITHREADED
80G4Mutex G4NistMaterialBuilder::nistMaterialMutex = G4MUTEX_INITIALIZER;
81#endif
82
83//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
84
86: elmBuilder(eb),
87 verbose(vb),
88 nMaterials(0),
89 nComponents(0),
90 nCurrent(0)
91{
92 Initialise();
93}
94
95//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
96
98{}
99
100//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
101
103 G4bool, G4bool warning)
104{
105 if(verbose > 1) {
106 G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial "
107 << matname << G4endl;
108 }
109 G4Material* mat = FindMaterial(matname);
110 if(mat != nullptr) { return mat; }
111 G4String name = matname;
112 if(name == "G4_NYLON-6/6" || name == "G4_NYLON-6/10") {
113 if("G4_NYLON-6/6" == matname) { name = "G4_NYLON-6-6"; }
114 else { name = "G4_NYLON-6-10";}
115 mat = FindMaterial(name);
116 }
117 return (mat == nullptr) ? BuildNistMaterial(name, warning) : mat;
118}
119
120//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
121
122G4Material* G4NistMaterialBuilder::BuildNistMaterial(const G4String& name,
123 G4bool warning)
124{
125 G4Material* mat = nullptr;
126 // Check if name inside DB
127 for (G4int i=0; i<nMaterials; ++i) {
128
129 if (name == names[i]) {
130#ifdef G4MULTITHREADED
131 G4MUTEXLOCK(&nistMaterialMutex);
132#endif
133 if(matIndex[i] == -1) {
134 // Build new Nist material
135 mat = BuildMaterial(i);
136 } else {
137 // Nist material was already built
138 const G4MaterialTable* theMaterialTable =
140 mat = (*theMaterialTable)[matIndex[i]];
141 }
142#ifdef G4MULTITHREADED
143 G4MUTEXUNLOCK(&nistMaterialMutex);
144#endif
145 return mat;
146 }
147 }
148
149 if( (verbose == 1 && warning) || verbose > 1) {
150 G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial WARNING:"
151 << " material <" << name
152 << "> is not found." << G4endl;
153 }
154 return mat;
155}
156
157//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
158
161{
163 if(mat == nullptr) {
164 mat = BuildNistMaterial(names[Z], warn);
165 }
166 return mat;
167}
168
169//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
170
171G4Material* G4NistMaterialBuilder::BuildMaterial(G4int i)
172{
173 if (verbose > 1) {
174 G4cout << "G4NistMaterialBuilder: BuildMaterial #" << i
175 << G4endl;
176 }
177 G4Material* mat = 0;
178 if(i >= nMaterials) { return mat; }
179
180 G4int nc = components[i];
181
182 // Check gas parameters:
183 // defaults may be changed via AddGas() method
184 G4double t = NTP_Temperature;
185 G4double p = STP_Pressure;
186 if(kStateGas == states[i]) {
187 size_t nn = idxGas.size();
188 if(nn > 0) {
189 for(size_t j=0; j<nn; ++j) {
190 if(i == idxGas[j]) {
191 t = gasTemperature[j];
192 p = gasPressure[j];
193 break;
194 }
195 }
196 }
197 }
198 // liquids
199 // } else if( !STP[i] ) { t = 0.0; }
200
201 mat = new G4Material(names[i],densities[i],nc,states[i],t,p);
202
203 if (verbose>1) { G4cout << "New material nComponents= " << nc << G4endl; }
204 if (nc > 0) {
205 G4int idx = indexes[i];
206 for (G4int j=0; j<nc; ++j) {
207 G4int Z = elements[idx+j];
208 G4Element* el = elmBuilder->FindOrBuildElement(Z);
209 if(!el) {
210 G4cout << "G4NistMaterialBuilder::BuildMaterial:"
211 << " ERROR: elements Z= " << Z << " is not found"
212 << " for material " << names[i]
213 << G4endl;
214 G4Exception("G4NistMaterialBuilder::BuildMaterial()", "mat103",
215 FatalException, "Failed to construct material");
216 return 0;
217 }
218 if(atomCount[i]) {
219 mat->AddElement(el,G4lrint(fractions[idx+j]));
220 } else {
221 mat->AddElement(el,fractions[idx+j]);
222 }
223 }
224 }
225
226 // Ionisation potential can be defined via NIST DB or
227 // Chemical Formula (ICRU37 Report data)
228 G4IonisParamMat* ion = mat->GetIonisation();
229 G4double exc0 = ion->GetMeanExcitationEnergy();
230 G4double exc1 = exc0;
231 if(chFormulas[i] != "") {
232 mat->SetChemicalFormula(chFormulas[i]);
233 exc1 = ion->FindMeanExcitationEnergy(mat);
234 }
235 // If exists, NIST DB data always overwrites other data
236 if(ionPotentials[i] > 0.0) { exc1 = ionPotentials[i]; }
237 if(exc0 != exc1) { ion->SetMeanExcitationEnergy(exc1); }
238
239 // Index in Material Table
240 matIndex[i] = mat->GetIndex();
241 return mat;
242}
243
244//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
245
247 const G4String& name,
248 const std::vector<G4String>& elm,
249 const std::vector<G4int>& nbAtoms,
250 G4double dens,
251 G4bool,
252 G4State state,
253 G4double temp,
254 G4double pres)
255{
256 // Material is in DB
257 G4Material* mat = FindOrBuildMaterial(name);
258 if(mat) {
259 G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
260 << " WARNING: the material <" << name
261 << "> already exists." << G4endl;
262 G4cout << " New material will NOT be built!"
263 << G4endl;
264 return mat;
265 }
266
267 // Material not in DB
268 G4int els = elm.size();
269 if(els == 0) {
270 G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
271 << " WARNING: empty list of elements for " << name
272 << G4endl;
273 G4cout << " New material will NOT be built!"
274 << G4endl;
275 return 0;
276 }
277
278 // add parameters of material into internal vectors
279 // density in g/cm3, mean ionisation potential is not defined
280 G4bool stp = true;
281 if(state == kStateGas &&
282 (temp != NTP_Temperature || pres != CLHEP::STP_Pressure))
283 { stp = false; }
284
285 AddMaterial(name,dens*CLHEP::cm3/CLHEP::g,0,0.,els,state,stp);
286 if(!stp) { AddGas(name,temp,pres); }
287
288 for (G4int i=0; i<els; ++i) {
289 AddElementByAtomCount(elmBuilder->GetZ(elm[i]), nbAtoms[i]);
290 }
291
292 return BuildMaterial(nMaterials-1);
293}
294
295//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
296
298 const G4String& name,
299 const std::vector<G4String>& elm,
300 const std::vector<G4double>& w,
301 G4double dens,
302 G4bool,
303 G4State state,
304 G4double temp,
305 G4double pres)
306{
307 // Material is in DB
308 G4Material* mat = FindOrBuildMaterial(name);
309 if(mat) {
310 G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
311 << " WARNING: the material <" << name
312 << "> already exists." << G4endl;
313 G4cout << " New material will NOT be built!"
314 << G4endl;
315 return mat;
316 }
317
318 // Material not in DB
319 G4int els = elm.size();
320 if(els == 0) {
321 G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
322 << " WARNING: empty list of elements for " << name
323 << G4endl;
324 G4cout << " New material will NOT be built!"
325 << G4endl;
326 return 0;
327 }
328
329 // add parameters of material into internal vectors
330 // density in g/cm3, mean ionisation potential is not defined
331 G4bool stp = true;
332 if(state == kStateGas &&
333 (temp != NTP_Temperature || pres != CLHEP::STP_Pressure))
334 { stp = false; }
335 AddMaterial(name,dens*CLHEP::cm3/CLHEP::g,0,0.,els,state,stp);
336 if(!stp) { AddGas(name,temp,pres); }
337
338 for (G4int i=0; i<els; ++i) {
339 AddElementByWeightFraction(elmBuilder->GetZ(elm[i]), w[i]);
340 }
341
342 return BuildMaterial(nMaterials-1);
343}
344
345//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
346
348 const G4String& name,
349 const G4String& nameDB,
350 G4double temp,
351 G4double pres,
352 G4bool)
353{
354 // Material name is in DB
355 G4Material* mat = FindOrBuildMaterial(name);
356 if(mat) {
357 G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial:"
358 << " WARNING: the material <" << name
359 << "> already exists." << G4endl;
360 G4cout << " New material will NOT be built!"
361 << G4endl;
362 return mat;
363 }
364
365 G4Material* bmat = FindOrBuildMaterial(nameDB);
366 if(!bmat) {
367 G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial:"
368 << " WARNING: the Name <" << nameDB
369 << "> is NOT in the database: no new gas will be constructed."
370 << G4endl;
371 return 0;
372 }
373 if(bmat->GetState() != kStateGas) {
374 G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial:"
375 << " WARNING: <" << nameDB
376 << "> is NOT a gas - no new gas will be constructed."
377 << G4endl;
378 return 0;
379 }
380
381 G4double dens = bmat->GetDensity()*pres*bmat->GetTemperature()
382 /(temp*bmat->GetPressure());
383 mat = new G4Material(name,dens,bmat,kStateGas,temp,pres);
384
385 if (verbose>1) {
386 G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial: done" << G4endl;
387 G4cout << &mat << G4endl;
388 }
389 return mat;
390}
391
392//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
393
395 const G4String& name,
396 const std::vector<G4String>& elm,
397 const std::vector<G4int>& nbAtoms,
398 G4bool,
399 G4double temp,
400 G4double pres)
401{
402 G4State state = kStateGas;
403
404 // Material is in DB
405 G4Material* mat = FindOrBuildMaterial(name);
406 if(mat) {
407 G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
408 << " WARNING: the material <" << name
409 << "> already exists." << G4endl;
410 G4cout << " New material will NOT be built!"
411 << G4endl;
412 return mat;
413 }
414
415 // Material not in DB
416 G4int els = elm.size();
417 if(els == 0) {
418 G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
419 << " WARNING: empty list of elements for " << name
420 << G4endl;
421 G4cout << " New material will NOT be built!"
422 << G4endl;
423 return 0;
424 }
425
426 // add parameters of material into internal vectors
427 // density in g/cm3, mean ionisation potential is not defined
428 G4bool stp = true;
429 if(temp != NTP_Temperature || pres != CLHEP::STP_Pressure)
430 { stp = false; }
431
432 G4double massPerMole = 0.;
433
434 G4int Z = 0;
435 for (G4int i=0; i<els; ++i) {
436 Z = elmBuilder->GetZ(elm[i]);
437 massPerMole += nbAtoms[i]*elmBuilder->GetAtomicMassAmu(Z)*CLHEP::amu_c2;
438 }
439
440 G4double dens = massPerMole/(CLHEP::Avogadro*CLHEP::k_Boltzmann*temp/pres);
441
442 if (els == 1) { AddMaterial(name,dens,Z,0.,els,state,stp); }
443 else {
444 AddMaterial(name,dens,0,0.,els,state,stp);
445 for (G4int i=0; i<els; ++i) {
446 AddElementByAtomCount(elmBuilder->GetZ(elm[i]), nbAtoms[i]);
447 }
448 }
449
450 if(!stp) { AddGas(name,temp,pres); }
451
452 return BuildMaterial(nMaterials-1);
453}
454
455//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
456
457void G4NistMaterialBuilder::AddMaterial(const G4String& nameMat, G4double dens,
458 G4int Z, G4double pot,
459 G4int ncomp, G4State state,
460 G4bool stp)
461{
462 // add parameters of material into internal vectors
463 // density in g/cm3, mean ionisation potential in eV
464
465 // if ncomp == 1 then Z should be defined and
466 // AddElement should not be applied
467
468 if (nCurrent != 0) {
469 G4cout << "G4NistMaterialBuilder::AddMaterial WARNING: previous "
470 << "mixture " << nMaterials << " " << names[nMaterials]
471 << " is not yet complete!"
472 << G4endl;
473 G4cout << " New material " << nameMat << " will not be added."
474 << G4endl;
475 return;
476 }
477
478 // density in g/cm3, mean ionisation potential in eV
479
480 names.push_back(nameMat);
481 chFormulas.push_back("");
482 densities.push_back(dens*CLHEP::g/CLHEP::cm3);
483 ionPotentials.push_back(pot*CLHEP::eV);
484 states.push_back(state);
485 components.push_back(ncomp);
486 indexes.push_back(nComponents);
487 STP.push_back(stp);
488 matIndex.push_back(-1);
489 atomCount.push_back(false);
490
491 if (1 == ncomp && Z > 0) {
492 elements.push_back(Z);
493 fractions.push_back(1.0);
494 atomCount[nMaterials] = true;
495 ++nComponents;
496 nCurrent = 0;
497 } else {
498 nCurrent = ncomp;
499 }
500
501 ++nMaterials;
502
503 if(verbose > 1) {
504 G4cout << "New material " << nameMat << " is prepared; "
505 << " nMaterials= " << nMaterials
506 << " nComponents= " << nComponents
507 << " nCurrent= " << nCurrent
508 << G4endl;
509 }
510}
511
512//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
513
515{
516 verbose = val;
517 elmBuilder->SetVerbose(verbose);
518}
519
520//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
521
523{
524 if (mnam == "simple") { ListNistSimpleMaterials(); }
525 else if (mnam == "compound") { ListNistCompoundMaterials(); }
526 else if (mnam == "hep") { ListHepMaterials(); }
527 else if (mnam == "space") { ListSpaceMaterials(); }
528 else if (mnam == "bio") { ListBioChemicalMaterials(); }
529
530 else if (mnam == "all") {
536
537 } else {
538 G4cout << "### G4NistMaterialBuilder::ListMaterials: Warning "
539 << mnam << " list is not known." << G4endl;
540 }
541}
542
543//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
544
546{
547 G4cout << "=======================================================" << G4endl;
548 G4cout << "### Simple Materials from the NIST Data Base ###" << G4endl;
549 G4cout << "=======================================================" << G4endl;
550 G4cout << " Z Name density(g/cm^3) I(eV) " << G4endl;
551 G4cout << "=======================================================" << G4endl;
552 for (G4int i=1; i<nElementary; ++i) {DumpElm(i);}
553}
554
555//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
556
558{
559 G4cout << "=============================================================" << G4endl;
560 G4cout << "### Compound Materials from the NIST Data Base ##" << G4endl;
561 G4cout << "=============================================================" << G4endl;
562 G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl;
563 G4cout << "=============================================================" << G4endl;
564 for (G4int i=nElementary; i<nNIST; ++i) {DumpMix(i);}
565 DumpMix(0);
566}
567
568//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
569
571{
572 G4cout << "=============================================================" << G4endl;
573 G4cout << "### HEP & Nuclear Materials ##" << G4endl;
574 G4cout << "=============================================================" << G4endl;
575 G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl;
576 G4cout << "=============================================================" << G4endl;
577 for (G4int i=nNIST; i<nHEP; ++i) {DumpMix(i);}
578}
579
580//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
581
583{
584 G4cout << "=============================================================" << G4endl;
585 G4cout << "### Space ISS Materials ##" << G4endl;
586 G4cout << "=============================================================" << G4endl;
587 G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl;
588 G4cout << "=============================================================" << G4endl;
589 for (G4int i=nHEP; i<nSpace; ++i) {DumpMix(i);}
590}
591
592//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
593
595{
596 G4cout << "=============================================================" << G4endl;
597 G4cout << "### Bio-Chemical Materials ##" << G4endl;
598 G4cout << "=============================================================" << G4endl;
599 G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl;
600 G4cout << "=============================================================" << G4endl;
601 for (G4int i=nSpace; i<nMaterials; ++i) {DumpMix(i);}
602 G4cout << "=============================================================" << G4endl;
603}
604
605//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
606
607void G4NistMaterialBuilder::DumpElm(G4int i) const
608{
609 G4cout << std::setw(2) << i << " "
610 << std::setw(6) << names[i]
611 << std::setw(14) << densities[i]*cm3/g
612 << std::setw(11) << ionPotentials[i]/eV
613 << G4endl;
614}
615
616//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
617
618void G4NistMaterialBuilder::DumpMix(G4int i) const
619{
620 G4int nc = components[i];
621 G4cout << std::setw(2) << nc << " "
622 << std::setw(26) << names[i] << " "
623 << std::setw(10) << densities[i]*cm3/g
624 << std::setw(10) << ionPotentials[i]/eV
625 << " " << chFormulas[i]
626 << G4endl;
627 if (nc > 1) {
628 G4int imin = indexes[i];
629 G4int imax = imin + nc;
630 for (G4int j=imin; j<imax; ++j) {
631 G4cout << std::setw(10) << elements[j] << std::setw(14) << fractions[j]
632 << G4endl;
633 }
634 }
635}
636
637//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
638
639void
640G4NistMaterialBuilder::AddGas(const G4String& nameMat, G4double t, G4double p)
641{
642 for(G4int i=0; i<nMaterials; ++i) {
643 if(nameMat == names[i]) {
644 idxGas.push_back(i);
645 gasTemperature.push_back(t);
646 gasPressure.push_back(p);
647 return;
648 }
649 }
650 G4cout << "WARNING: G4NistMaterialBuilder::AddGas problem: there is no "
651 << nameMat << " in the list of materials."
652 << G4endl;
653}
654
655//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
656
657void G4NistMaterialBuilder::AddElementByWeightFraction(G4int Z, G4double w)
658{
659 elements.push_back(Z);
660 fractions.push_back(w);
661 --nCurrent;
662 ++nComponents;
663 if (nCurrent == 0) {
664 G4int n = nMaterials - 1;
665 G4double sum = 0.0;
666 G4int imin = indexes[n];
667 G4int imax = imin + components[n];
668
669 if(!atomCount[n]) {
670 for(G4int i=imin; i<imax; ++i) {sum += fractions[i];}
671 if (sum > 0.0) for (G4int i=imin; i<imax; ++i) {fractions[i] /= sum;}
672 }
673 }
674}
675
676//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
677
678void G4NistMaterialBuilder::AddElementByWeightFraction(const G4String& name,
679 G4double w)
680{
681 G4int Z = elmBuilder->GetZ(name);
682 AddElementByWeightFraction(Z, w);
683}
684
685//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
686
687void G4NistMaterialBuilder::AddElementByAtomCount(G4int Z, G4int nb)
688{
689 atomCount[nMaterials-1] = true;
690 G4double w = (G4double)nb;
691 AddElementByWeightFraction(Z, w);
692}
693
694//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
695
696void G4NistMaterialBuilder::AddElementByAtomCount(const G4String& name,
697 G4int nb)
698{
699 atomCount[nMaterials-1] = true;
700 G4int Z = elmBuilder->GetZ(name);
701 G4double w = (G4double)nb;
702 AddElementByWeightFraction(Z, w);
703}
704
705
706//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
707
708void G4NistMaterialBuilder::Initialise()
709{
710 if (verbose > 0) {
711 G4cout << "### G4NistMaterialBuilder::Initialise()" << G4endl;
712 }
713 NistSimpleMaterials();
714 NistCompoundMaterials();
715 NistCompoundMaterials2();
716 HepAndNuclearMaterials();
717 SpaceMaterials();
718 BioChemicalMaterials();
719
720 if (verbose > 1) { ListMaterials("all"); }
721}
722
723//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
724
725void G4NistMaterialBuilder::NistSimpleMaterials()
726{
727 // density in g/cm3, mean ionisation potential in eV
728
729 AddMaterial("G4_WATER", 1.0,0, 78., 2);
730 AddElementByAtomCount("H" , 2);
731 AddElementByAtomCount("O" , 1);
732 chFormulas[nMaterials-1] = "H_2O";
733
734 AddMaterial("G4_H" , 8.37480e-5, 1, 19.2, 1, kStateGas);
735 AddMaterial("G4_He", 1.66322e-4, 2, 41.8, 1, kStateGas);
736 AddMaterial("G4_Li", 0.534 , 3, 40. );
737 AddMaterial("G4_Be", 1.848 , 4, 63.7);
738 AddMaterial("G4_B" , 2.37 , 5, 76. );
739 AddMaterial("G4_C" , 2. , 6, 81. );
740 AddMaterial("G4_N" , 1.16520e-3, 7, 82. , 1, kStateGas);
741 AddMaterial("G4_O" , 1.33151e-3, 8, 95. , 1, kStateGas);
742 AddMaterial("G4_F" , 1.58029e-3, 9, 115. , 1, kStateGas);
743 AddMaterial("G4_Ne", 8.38505e-4, 10, 137. , 1, kStateGas);
744 AddMaterial("G4_Na", 0.971 , 11, 149. );
745 AddMaterial("G4_Mg", 1.74 , 12, 156. );
746 AddMaterial("G4_Al", 2.699 , 13, 166. );
747 AddMaterial("G4_Si", 2.33 , 14, 173. );
748 AddMaterial("G4_P" , 2.2 , 15, 173. );
749 AddMaterial("G4_S" , 2.0 , 16, 180. );
750 AddMaterial("G4_Cl", 2.99473e-3, 17, 174. , 1, kStateGas);
751 AddMaterial("G4_Ar", 1.66201e-3, 18, 188.0, 1, kStateGas);
752 AddMaterial("G4_K" , 0.862 , 19, 190. );
753 AddMaterial("G4_Ca", 1.55 , 20, 191. );
754 AddMaterial("G4_Sc", 2.989 , 21, 216. );
755 AddMaterial("G4_Ti", 4.54 , 22, 233. );
756 AddMaterial("G4_V" , 6.11 , 23, 245. );
757 AddMaterial("G4_Cr", 7.18 , 24, 257. );
758 AddMaterial("G4_Mn", 7.44 , 25, 272. );
759 AddMaterial("G4_Fe", 7.874 , 26, 286. );
760 AddMaterial("G4_Co", 8.9 , 27, 297. );
761 AddMaterial("G4_Ni", 8.902 , 28, 311. );
762 AddMaterial("G4_Cu", 8.96 , 29, 322. );
763 AddMaterial("G4_Zn", 7.133 , 30, 330. );
764 AddMaterial("G4_Ga", 5.904 , 31, 334. );
765 AddMaterial("G4_Ge", 5.323 , 32, 350. );
766 AddMaterial("G4_As", 5.73 , 33, 347. );
767 AddMaterial("G4_Se", 4.5 , 34, 348. );
768 AddMaterial("G4_Br", 7.07210e-3, 35, 343. , 1, kStateGas);
769 AddMaterial("G4_Kr", 3.47832e-3, 36, 352. , 1, kStateGas);
770 AddMaterial("G4_Rb", 1.532 , 37, 363. );
771 AddMaterial("G4_Sr", 2.54 , 38, 366. );
772 AddMaterial("G4_Y" , 4.469 , 39, 379. );
773 AddMaterial("G4_Zr", 6.506 , 40, 393. );
774 AddMaterial("G4_Nb", 8.57 , 41, 417. );
775 AddMaterial("G4_Mo", 10.22 , 42, 424. );
776 AddMaterial("G4_Tc", 11.50 , 43, 428. );
777 AddMaterial("G4_Ru", 12.41 , 44, 441. );
778 AddMaterial("G4_Rh", 12.41 , 45, 449. );
779 AddMaterial("G4_Pd", 12.02 , 46, 470. );
780 AddMaterial("G4_Ag", 10.5 , 47, 470. );
781 AddMaterial("G4_Cd", 8.65 , 48, 469. );
782 AddMaterial("G4_In", 7.31 , 49, 488. );
783 AddMaterial("G4_Sn", 7.31 , 50, 488. );
784 AddMaterial("G4_Sb", 6.691 , 51, 487. );
785 AddMaterial("G4_Te", 6.24 , 52, 485. );
786 AddMaterial("G4_I" , 4.93 , 53, 491. );
787 AddMaterial("G4_Xe", 5.48536e-3, 54, 482. , 1, kStateGas);
788 AddMaterial("G4_Cs", 1.873 , 55, 488. );
789 AddMaterial("G4_Ba", 3.5 , 56, 491. );
790 AddMaterial("G4_La", 6.154 , 57, 501. );
791 AddMaterial("G4_Ce", 6.657 , 58, 523. );
792 AddMaterial("G4_Pr", 6.71 , 59, 535. );
793 AddMaterial("G4_Nd", 6.9 , 60, 546. );
794 AddMaterial("G4_Pm", 7.22 , 61, 560. );
795 AddMaterial("G4_Sm", 7.46 , 62, 574. );
796 AddMaterial("G4_Eu", 5.243 , 63, 580. );
797 AddMaterial("G4_Gd", 7.9004 , 64, 591. );
798 AddMaterial("G4_Tb", 8.229 , 65, 614. );
799 AddMaterial("G4_Dy", 8.55 , 66, 628. );
800 AddMaterial("G4_Ho", 8.795 , 67, 650. );
801 AddMaterial("G4_Er", 9.066 , 68, 658. );
802 AddMaterial("G4_Tm", 9.321 , 69, 674. );
803 AddMaterial("G4_Yb", 6.73 , 70, 684. );
804 AddMaterial("G4_Lu", 9.84 , 71, 694. );
805 AddMaterial("G4_Hf", 13.31 , 72, 705. );
806 AddMaterial("G4_Ta", 16.654 , 73, 718. );
807 AddMaterial("G4_W" , 19.30 , 74, 727. );
808 AddMaterial("G4_Re", 21.02 , 75, 736. );
809 AddMaterial("G4_Os", 22.57 , 76, 746. );
810 AddMaterial("G4_Ir", 22.42 , 77, 757. );
811 AddMaterial("G4_Pt", 21.45 , 78, 790. );
812 AddMaterial("G4_Au", 19.32 , 79, 790. );
813 AddMaterial("G4_Hg", 13.546 , 80, 800. );
814 AddMaterial("G4_Tl", 11.72 , 81, 810. );
815 AddMaterial("G4_Pb", 11.35 , 82, 823. );
816 AddMaterial("G4_Bi", 9.747 , 83, 823. );
817 AddMaterial("G4_Po", 9.32 , 84, 830. );
818 AddMaterial("G4_At", 9.32 , 85, 825. );
819 AddMaterial("G4_Rn", 9.00662e-3, 86, 794. , 1, kStateGas);
820 AddMaterial("G4_Fr", 1.00 , 87, 827. );
821 AddMaterial("G4_Ra", 5.00 , 88, 826. );
822 AddMaterial("G4_Ac", 10.07 , 89, 841. );
823 AddMaterial("G4_Th", 11.72 , 90, 847. );
824 AddMaterial("G4_Pa", 15.37 , 91, 878. );
825 AddMaterial("G4_U" , 18.95 , 92, 890. );
826 AddMaterial("G4_Np", 20.25 , 93, 902. );
827 AddMaterial("G4_Pu", 19.84 , 94, 921. );
828 AddMaterial("G4_Am", 13.67 , 95, 934. );
829 AddMaterial("G4_Cm", 13.51 , 96, 939. );
830 AddMaterial("G4_Bk", 14.00 , 97, 952. );
831 AddMaterial("G4_Cf", 10.00 , 98, 966. );
832
833 nElementary = nMaterials;
834}
835
836//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
837
838void G4NistMaterialBuilder::NistCompoundMaterials()
839{
840 AddMaterial("G4_A-150_TISSUE", 1.127, 0, 65.1, 6);
841 AddElementByWeightFraction( 1, 0.101327);
842 AddElementByWeightFraction( 6, 0.775501);
843 AddElementByWeightFraction( 7, 0.035057);
844 AddElementByWeightFraction( 8, 0.052316);
845 AddElementByWeightFraction( 9, 0.017422);
846 AddElementByWeightFraction(20, 0.018378);
847
848 AddMaterial("G4_ACETONE", 0.7899, 0, 64.2, 3);
849 AddElementByAtomCount("C" , 3);
850 AddElementByAtomCount("H" , 6);
851 AddElementByAtomCount("O" , 1);
852
853 AddMaterial("G4_ACETYLENE", 0.0010967, 0, 58.2, 2, kStateGas);
854 AddElementByAtomCount("C" , 2);
855 AddElementByAtomCount("H" , 2);
856
857 AddMaterial("G4_ADENINE", 1.6/*1.35*/, 0, 71.4, 3);
858 AddElementByAtomCount("C" , 5);
859 AddElementByAtomCount("H" , 5);
860 AddElementByAtomCount("N" , 5);
861
862 AddMaterial("G4_ADIPOSE_TISSUE_ICRP", 0.95, 0, 63.2, 7);
863 AddElementByWeightFraction( 1, 0.114);
864 AddElementByWeightFraction( 6, 0.598);
865 AddElementByWeightFraction( 7, 0.007);
866 AddElementByWeightFraction( 8, 0.278);
867 AddElementByWeightFraction(11, 0.001);
868 AddElementByWeightFraction(16, 0.001);
869 AddElementByWeightFraction(17, 0.001);
870
871 AddMaterial("G4_AIR", 0.00120479, 0, 85.7, 4, kStateGas);
872 AddElementByWeightFraction( 6, 0.000124);
873 AddElementByWeightFraction( 7, 0.755267);
874 AddElementByWeightFraction( 8, 0.231781);
875 AddElementByWeightFraction(18, 0.012827);
876
877 AddMaterial("G4_ALANINE", 1.42, 0, 71.9, 4);
878 AddElementByAtomCount("C" , 3);
879 AddElementByAtomCount("H" , 7);
880 AddElementByAtomCount("N" , 1);
881 AddElementByAtomCount("O" , 2);
882
883 AddMaterial("G4_ALUMINUM_OXIDE", 3.97, 0, 145.2, 2);
884 AddElementByAtomCount("Al", 2);
885 AddElementByAtomCount("O" , 3);
886 chFormulas[nMaterials-1] = "Al_2O_3";
887
888 AddMaterial("G4_AMBER", 1.1, 0, 63.2, 3);
889 AddElementByWeightFraction( 1, 0.10593 );
890 AddElementByWeightFraction( 6, 0.788973);
891 AddElementByWeightFraction( 8, 0.105096);
892
893 AddMaterial("G4_AMMONIA", 0.000826019, 0, 53.7, 2, kStateGas);
894 AddElementByAtomCount("N" , 1);
895 AddElementByAtomCount("H" , 3);
896
897 AddMaterial("G4_ANILINE", 1.0235, 0, 66.2, 3);
898 AddElementByAtomCount("C" , 6);
899 AddElementByAtomCount("H" , 7);
900 AddElementByAtomCount("N" , 1);
901
902 AddMaterial("G4_ANTHRACENE", 1.283, 0, 69.5, 2);
903 AddElementByAtomCount("C" , 14);
904 AddElementByAtomCount("H" , 10);
905
906 AddMaterial("G4_B-100_BONE", 1.45, 0, 85.9, 6);
907 AddElementByWeightFraction( 1, 0.065471);
908 AddElementByWeightFraction( 6, 0.536945);
909 AddElementByWeightFraction( 7, 0.0215 );
910 AddElementByWeightFraction( 8, 0.032085);
911 AddElementByWeightFraction( 9, 0.167411);
912 AddElementByWeightFraction(20, 0.176589);
913
914 AddMaterial("G4_BAKELITE", 1.25, 0, 72.4, 3);
915 AddElementByWeightFraction( 1, 0.057441);
916 AddElementByWeightFraction( 6, 0.774591);
917 AddElementByWeightFraction( 8, 0.167968);
918
919 AddMaterial("G4_BARIUM_FLUORIDE", 4.89 ,0, 375.9, 2);
920 AddElementByAtomCount("Ba", 1);
921 AddElementByAtomCount("F" , 2);
922
923 AddMaterial("G4_BARIUM_SULFATE", 4.5, 0, 285.7, 3);
924 AddElementByAtomCount("Ba", 1);
925 AddElementByAtomCount("S" , 1);
926 AddElementByAtomCount("O" , 4);
927
928 AddMaterial("G4_BENZENE", 0.87865, 0, 63.4, 2);
929 AddElementByAtomCount("C" , 6);
930 AddElementByAtomCount("H" , 6);
931
932 AddMaterial("G4_BERYLLIUM_OXIDE", 3.01, 0, 93.2, 2);
933 AddElementByAtomCount("Be", 1);
934 AddElementByAtomCount("O" , 1);
935
936 AddMaterial("G4_BGO", 7.13, 0, 534.1, 3);
937 AddElementByAtomCount("Bi", 4);
938 AddElementByAtomCount("Ge", 3);
939 AddElementByAtomCount("O" , 12);
940
941 AddMaterial("G4_BLOOD_ICRP", 1.06, 0, 75.2, 10);
942 AddElementByWeightFraction( 1, 0.102);
943 AddElementByWeightFraction( 6, 0.110);
944 AddElementByWeightFraction( 7, 0.033);
945 AddElementByWeightFraction( 8, 0.745);
946 AddElementByWeightFraction(11, 0.001);
947 AddElementByWeightFraction(15, 0.001);
948 AddElementByWeightFraction(16, 0.002);
949 AddElementByWeightFraction(17, 0.003);
950 AddElementByWeightFraction(19, 0.002);
951 AddElementByWeightFraction(26, 0.001);
952
953 AddMaterial("G4_BONE_COMPACT_ICRU", 1.85, 0, 91.9, 8);
954 AddElementByWeightFraction( 1, 0.064);
955 AddElementByWeightFraction( 6, 0.278);
956 AddElementByWeightFraction( 7, 0.027);
957 AddElementByWeightFraction( 8, 0.410);
958 AddElementByWeightFraction(12, 0.002);
959 AddElementByWeightFraction(15, 0.07 );
960 AddElementByWeightFraction(16, 0.002);
961 AddElementByWeightFraction(20, 0.147);
962
963 // Sceleton Cortical bone for Adult ICRU 46
964 AddMaterial("G4_BONE_CORTICAL_ICRP", 1.92, 0, 110, 9);
965 AddElementByWeightFraction( 1, 0.034);
966 AddElementByWeightFraction( 6, 0.155);
967 AddElementByWeightFraction( 7, 0.042);
968 AddElementByWeightFraction( 8, 0.435);
969 AddElementByWeightFraction(11, 0.001);
970 AddElementByWeightFraction(12, 0.002);
971 AddElementByWeightFraction(15, 0.103);
972 AddElementByWeightFraction(16, 0.003);
973 AddElementByWeightFraction(20, 0.225);
974
975 AddMaterial("G4_BORON_CARBIDE", 2.52, 0, 84.7, 2);
976 AddElementByAtomCount("B" , 4);
977 AddElementByAtomCount("C" , 1);
978
979 AddMaterial("G4_BORON_OXIDE", 1.812, 0, 99.6, 2);
980 AddElementByAtomCount("B" , 2);
981 AddElementByAtomCount("O" , 3);
982
983 AddMaterial("G4_BRAIN_ICRP", 1.04, 0, 73.3, 9);
984 AddElementByWeightFraction( 1, 0.107);
985 AddElementByWeightFraction( 6, 0.145);
986 AddElementByWeightFraction( 7, 0.022);
987 AddElementByWeightFraction( 8, 0.712);
988 AddElementByWeightFraction(11, 0.002);
989 AddElementByWeightFraction(15, 0.004);
990 AddElementByWeightFraction(16, 0.002);
991 AddElementByWeightFraction(17, 0.003);
992 AddElementByWeightFraction(19, 0.003);
993
994 AddMaterial("G4_BUTANE", 0.00249343, 0, 48.3, 2, kStateGas);
995 AddElementByAtomCount("C" , 4);
996 AddElementByAtomCount("H" , 10);
997
998 AddMaterial("G4_N-BUTYL_ALCOHOL", 0.8098, 0, 59.9, 3);
999 AddElementByAtomCount("C" , 4);
1000 AddElementByAtomCount("H" , 10);
1001 AddElementByAtomCount("O" , 1);
1002
1003 AddMaterial("G4_C-552", 1.76, 0, 86.8, 5);
1004 AddElementByWeightFraction( 1, 0.02468 );
1005 AddElementByWeightFraction( 6, 0.50161 );
1006 AddElementByWeightFraction( 8, 0.004527);
1007 AddElementByWeightFraction( 9, 0.465209);
1008 AddElementByWeightFraction(14, 0.003973);
1009
1010 AddMaterial("G4_CADMIUM_TELLURIDE", 6.2, 0, 539.3, 2);
1011 AddElementByAtomCount("Cd", 1);
1012 AddElementByAtomCount("Te", 1);
1013
1014 AddMaterial("G4_CADMIUM_TUNGSTATE", 7.9, 0, 468.3, 3);
1015 AddElementByAtomCount("Cd", 1);
1016 AddElementByAtomCount("W" , 1);
1017 AddElementByAtomCount("O" , 4);
1018
1019 AddMaterial("G4_CALCIUM_CARBONATE", 2.8, 0, 136.4, 3);
1020 AddElementByAtomCount("Ca", 1);
1021 AddElementByAtomCount("C" , 1);
1022 AddElementByAtomCount("O" , 3);
1023
1024 AddMaterial("G4_CALCIUM_FLUORIDE", 3.18, 0, 166., 2);
1025 AddElementByAtomCount("Ca", 1);
1026 AddElementByAtomCount("F" , 2);
1027
1028 AddMaterial("G4_CALCIUM_OXIDE", 3.3, 0, 176.1, 2);
1029 AddElementByAtomCount("Ca", 1);
1030 AddElementByAtomCount("O" , 1);
1031
1032 AddMaterial("G4_CALCIUM_SULFATE", 2.96, 0, 152.3, 3);
1033 AddElementByAtomCount("Ca", 1);
1034 AddElementByAtomCount("S" , 1);
1035 AddElementByAtomCount("O" , 4);
1036
1037 AddMaterial("G4_CALCIUM_TUNGSTATE", 6.062, 0, 395., 3);
1038 AddElementByAtomCount("Ca", 1);
1039 AddElementByAtomCount("W" , 1);
1040 AddElementByAtomCount("O" , 4);
1041
1042 AddMaterial("G4_CARBON_DIOXIDE", 0.00184212, 0, 85., 2, kStateGas);
1043 AddElementByAtomCount("C" , 1);
1044 AddElementByAtomCount("O" , 2);
1045 chFormulas[nMaterials-1] = "CO_2";
1046
1047 AddMaterial("G4_CARBON_TETRACHLORIDE", 1.594, 0, 166.3, 2);
1048 AddElementByAtomCount("C" , 1);
1049 AddElementByAtomCount("Cl", 4);
1050
1051 AddMaterial("G4_CELLULOSE_CELLOPHANE", 1.42, 0, 77.6, 3);
1052 AddElementByAtomCount("C" , 6);
1053 AddElementByAtomCount("H" , 10);
1054 AddElementByAtomCount("O" , 5);
1055
1056 AddMaterial("G4_CELLULOSE_BUTYRATE", 1.2, 0, 74.6, 3);
1057 AddElementByWeightFraction( 1, 0.067125);
1058 AddElementByWeightFraction( 6, 0.545403);
1059 AddElementByWeightFraction( 8, 0.387472);
1060
1061 AddMaterial("G4_CELLULOSE_NITRATE", 1.49, 0, 87., 4);
1062 AddElementByWeightFraction( 1, 0.029216);
1063 AddElementByWeightFraction( 6, 0.271296);
1064 AddElementByWeightFraction( 7, 0.121276);
1065 AddElementByWeightFraction( 8, 0.578212);
1066
1067 AddMaterial("G4_CERIC_SULFATE", 1.03, 0, 76.7, 5);
1068 AddElementByWeightFraction( 1, 0.107596);
1069 AddElementByWeightFraction( 7, 0.0008 );
1070 AddElementByWeightFraction( 8, 0.874976);
1071 AddElementByWeightFraction(16, 0.014627);
1072 AddElementByWeightFraction(58, 0.002001);
1073
1074 AddMaterial("G4_CESIUM_FLUORIDE", 4.115, 0, 440.7, 2);
1075 AddElementByAtomCount("Cs", 1);
1076 AddElementByAtomCount("F" , 1);
1077
1078 AddMaterial("G4_CESIUM_IODIDE", 4.51, 0, 553.1, 2);
1079 AddElementByAtomCount("Cs", 1);
1080 AddElementByAtomCount("I" , 1);
1081
1082 AddMaterial("G4_CHLOROBENZENE", 1.1058, 0, 89.1, 3);
1083 AddElementByAtomCount("C" , 6);
1084 AddElementByAtomCount("H" , 5);
1085 AddElementByAtomCount("Cl", 1);
1086
1087 AddMaterial("G4_CHLOROFORM", 1.4832, 0, 156., 3);
1088 AddElementByAtomCount("C" , 1);
1089 AddElementByAtomCount("H" , 1);
1090 AddElementByAtomCount("Cl", 3);
1091
1092 AddMaterial("G4_CONCRETE", 2.3, 0, 135.2, 10);
1093 AddElementByWeightFraction( 1, 0.01 );
1094 AddElementByWeightFraction( 6, 0.001 );
1095 AddElementByWeightFraction( 8, 0.529107);
1096 AddElementByWeightFraction(11, 0.016 );
1097 AddElementByWeightFraction(12, 0.002 );
1098 AddElementByWeightFraction(13, 0.033872);
1099 AddElementByWeightFraction(14, 0.337021);
1100 AddElementByWeightFraction(19, 0.013 );
1101 AddElementByWeightFraction(20, 0.044 );
1102 AddElementByWeightFraction(26, 0.014 );
1103
1104 AddMaterial("G4_CYCLOHEXANE", 0.779, 0, 56.4, 2);
1105 AddElementByAtomCount("C" , 6);
1106 AddElementByAtomCount("H" , 12);
1107
1108 AddMaterial("G4_1,2-DICHLOROBENZENE", 1.3048, 0, 106.5, 3);
1109 AddElementByAtomCount("C" , 6);
1110 AddElementByAtomCount("H" , 4);
1111 AddElementByAtomCount("Cl", 2);
1112
1113 AddMaterial("G4_DICHLORODIETHYL_ETHER", 1.2199, 0, 103.3, 4);
1114 AddElementByAtomCount("C" , 4);
1115 AddElementByAtomCount("H" , 8);
1116 AddElementByAtomCount("O" , 1);
1117 AddElementByAtomCount("Cl", 2);
1118
1119 AddMaterial("G4_1,2-DICHLOROETHANE", 1.2351, 0, 111.9, 3);
1120 AddElementByAtomCount("C" , 2);
1121 AddElementByAtomCount("H" , 4);
1122 AddElementByAtomCount("Cl", 2);
1123
1124 AddMaterial("G4_DIETHYL_ETHER", 0.71378, 0, 60., 3);
1125 AddElementByAtomCount("C" , 4);
1126 AddElementByAtomCount("H" , 10);
1127 AddElementByAtomCount("O" , 1);
1128
1129 AddMaterial("G4_N,N-DIMETHYL_FORMAMIDE", 0.9487, 0, 66.6, 4);
1130 AddElementByAtomCount("C" , 3);
1131 AddElementByAtomCount("H" , 7);
1132 AddElementByAtomCount("N" , 1);
1133 AddElementByAtomCount("O" , 1);
1134
1135 AddMaterial("G4_DIMETHYL_SULFOXIDE", 1.1014, 0, 98.6, 4);
1136 AddElementByAtomCount("C" , 2);
1137 AddElementByAtomCount("H" , 6);
1138 AddElementByAtomCount("O" , 1);
1139 AddElementByAtomCount("S" , 1);
1140
1141 AddMaterial("G4_ETHANE", 0.00125324, 0, 45.4, 2, kStateGas);
1142 AddElementByAtomCount("C" , 2);
1143 AddElementByAtomCount("H" , 6);
1144
1145 AddMaterial("G4_ETHYL_ALCOHOL", 0.7893, 0, 62.9, 3);
1146 AddElementByAtomCount("C" , 2);
1147 AddElementByAtomCount("H" , 6);
1148 AddElementByAtomCount("O" , 1);
1149
1150 AddMaterial("G4_ETHYL_CELLULOSE", 1.13, 0, 69.3, 3);
1151 AddElementByWeightFraction( 1, 0.090027);
1152 AddElementByWeightFraction( 6, 0.585182);
1153 AddElementByWeightFraction( 8, 0.324791);
1154
1155 AddMaterial("G4_ETHYLENE", 0.00117497, 0, 50.7, 2, kStateGas);
1156 AddElementByAtomCount("C" , 2);
1157 AddElementByAtomCount("H" , 4);
1158
1159 AddMaterial("G4_EYE_LENS_ICRP", 1.07, 0, 73.3, 8);
1160 AddElementByWeightFraction( 1, 0.096);
1161 AddElementByWeightFraction( 6, 0.195);
1162 AddElementByWeightFraction( 7, 0.057);
1163 AddElementByWeightFraction( 8, 0.646);
1164 AddElementByWeightFraction(11, 0.001);
1165 AddElementByWeightFraction(15, 0.001);
1166 AddElementByWeightFraction(16, 0.003);
1167 AddElementByWeightFraction(17, 0.001);
1168
1169 AddMaterial("G4_FERRIC_OXIDE", 5.2, 0, 227.3, 2);
1170 AddElementByAtomCount("Fe", 2);
1171 AddElementByAtomCount("O" , 3);
1172
1173 AddMaterial("G4_FERROBORIDE", 7.15, 0, 261., 2);
1174 AddElementByAtomCount("Fe", 1);
1175 AddElementByAtomCount("B" , 1);
1176
1177 AddMaterial("G4_FERROUS_OXIDE", 5.7, 0, 248.6, 2);
1178 AddElementByAtomCount("Fe", 1);
1179 AddElementByAtomCount("O" , 1);
1180
1181 AddMaterial("G4_FERROUS_SULFATE", 1.024, 0, 76.4, 7);
1182 AddElementByWeightFraction( 1, 0.108259);
1183 AddElementByWeightFraction( 7, 2.7e-05 );
1184 AddElementByWeightFraction( 8, 0.878636);
1185 AddElementByWeightFraction(11, 2.2e-05 );
1186 AddElementByWeightFraction(16, 0.012968);
1187 AddElementByWeightFraction(17, 3.4e-05 );
1188 AddElementByWeightFraction(26, 5.4e-05 );
1189
1190 AddMaterial("G4_FREON-12", 1.12, 0, 143., 3);
1191 AddElementByWeightFraction( 6, 0.099335);
1192 AddElementByWeightFraction( 9, 0.314247);
1193 AddElementByWeightFraction(17, 0.586418);
1194
1195 AddMaterial("G4_FREON-12B2", 1.8, 0, 284.9, 3);
1196 AddElementByWeightFraction( 6, 0.057245);
1197 AddElementByWeightFraction( 9, 0.181096);
1198 AddElementByWeightFraction(35, 0.761659);
1199
1200 AddMaterial("G4_FREON-13", 0.95, 0, 126.6, 3);
1201 AddElementByWeightFraction( 6, 0.114983);
1202 AddElementByWeightFraction( 9, 0.545622);
1203 AddElementByWeightFraction(17, 0.339396);
1204
1205 AddMaterial("G4_FREON-13B1", 1.5, 0, 210.5, 3);
1206 AddElementByAtomCount("C" , 1);
1207 AddElementByAtomCount("F" , 3);
1208 AddElementByAtomCount("Br", 1);
1209
1210 AddMaterial("G4_FREON-13I1", 1.8, 0, 293.5, 3);
1211 AddElementByWeightFraction( 6, 0.061309);
1212 AddElementByWeightFraction( 9, 0.290924);
1213 AddElementByWeightFraction(53, 0.647767);
1214
1215 AddMaterial("G4_GADOLINIUM_OXYSULFIDE", 7.44, 0, 493.3, 3);
1216 AddElementByAtomCount("Gd", 2);
1217 AddElementByAtomCount("O" , 2);
1218 AddElementByAtomCount("S" , 1);
1219
1220 AddMaterial("G4_GALLIUM_ARSENIDE", 5.31, 0, 384.9, 2);
1221 AddElementByAtomCount("Ga", 1);
1222 AddElementByAtomCount("As", 1);
1223
1224 AddMaterial("G4_GEL_PHOTO_EMULSION", 1.2914, 0, 74.8, 5);
1225 AddElementByWeightFraction( 1, 0.08118);
1226 AddElementByWeightFraction( 6, 0.41606);
1227 AddElementByWeightFraction( 7, 0.11124);
1228 AddElementByWeightFraction( 8, 0.38064);
1229 AddElementByWeightFraction(16, 0.01088);
1230
1231 AddMaterial("G4_Pyrex_Glass", 2.23, 0, 134., 6);
1232 AddElementByWeightFraction( 5, 0.040064);
1233 AddElementByWeightFraction( 8, 0.539562);
1234 AddElementByWeightFraction(11, 0.028191);
1235 AddElementByWeightFraction(13, 0.011644);
1236 AddElementByWeightFraction(14, 0.37722 );
1237 AddElementByWeightFraction(19, 0.003321);
1238
1239 AddMaterial("G4_GLASS_LEAD", 6.22, 0, 526.4, 5);
1240 AddElementByWeightFraction( 8, 0.156453);
1241 AddElementByWeightFraction(14, 0.080866);
1242 AddElementByWeightFraction(22, 0.008092);
1243 AddElementByWeightFraction(33, 0.002651);
1244 AddElementByWeightFraction(82, 0.751938);
1245
1246 AddMaterial("G4_GLASS_PLATE", 2.4, 0, 145.4, 4);
1247 AddElementByWeightFraction( 8, 0.4598 );
1248 AddElementByWeightFraction(11, 0.096441);
1249 AddElementByWeightFraction(14, 0.336553);
1250 AddElementByWeightFraction(20, 0.107205);
1251
1252 // AddMaterial("G4_GLUCOSE", 1.54, 0, 77.2, 3);
1253 // AddElementByWeightFraction( 1, 0.071204);
1254 // AddElementByWeightFraction( 6, 0.363652);
1255 // AddElementByWeightFraction( 8, 0.565144);
1256 // These weight fractions correspond to 0.90909 glucose + 0.09091 water
1257 // (in mass), not pure glucose. The density used is that of pure glucose!
1258 // M.Trocme & S.Seltzer
1259
1260 AddMaterial("G4_GLUTAMINE", 1.46, 0, 73.3, 4);
1261 AddElementByAtomCount("C" , 5);
1262 AddElementByAtomCount("H" , 10);
1263 AddElementByAtomCount("N" , 2);
1264 AddElementByAtomCount("O" , 3);
1265
1266 AddMaterial("G4_GLYCEROL", 1.2613, 0, 72.6, 3);
1267 AddElementByAtomCount("C" , 3);
1268 AddElementByAtomCount("H" , 8);
1269 AddElementByAtomCount("O" , 3);
1270
1271 AddMaterial("G4_GUANINE", 2.2/*1.58*/, 0, 75. ,4);
1272 AddElementByAtomCount("C" , 5);
1273 AddElementByAtomCount("H" , 5);
1274 AddElementByAtomCount("N" , 5);
1275 AddElementByAtomCount("O" , 1);
1276
1277 AddMaterial("G4_GYPSUM", 2.32, 0, 129.7, 4);
1278 AddElementByAtomCount("Ca", 1);
1279 AddElementByAtomCount("S" , 1);
1280 AddElementByAtomCount("O" , 6);
1281 AddElementByAtomCount("H" , 4);
1282
1283 AddMaterial("G4_N-HEPTANE", 0.68376, 0, 54.4, 2);
1284 AddElementByAtomCount("C" , 7);
1285 AddElementByAtomCount("H" , 16);
1286
1287 AddMaterial("G4_N-HEXANE", 0.6603, 0, 54., 2);
1288 AddElementByAtomCount("C" , 6);
1289 AddElementByAtomCount("H" , 14);
1290
1291 AddMaterial("G4_KAPTON", 1.42, 0, 79.6, 4);
1292 AddElementByAtomCount("C" , 22);
1293 AddElementByAtomCount("H" , 10);
1294 AddElementByAtomCount("N" , 2);
1295 AddElementByAtomCount("O" , 5);
1296
1297 AddMaterial("G4_LANTHANUM_OXYBROMIDE", 6.28, 0, 439.7, 3);
1298 AddElementByAtomCount("La", 1);
1299 AddElementByAtomCount("Br", 1);
1300 AddElementByAtomCount("O" , 1);
1301
1302 AddMaterial("G4_LANTHANUM_OXYSULFIDE", 5.86, 0, 421.2, 3);
1303 AddElementByAtomCount("La", 2);
1304 AddElementByAtomCount("O" , 2);
1305 AddElementByAtomCount("S" , 1);
1306
1307 AddMaterial("G4_LEAD_OXIDE", 9.53, 0, 766.7, 2);
1308 AddElementByWeightFraction( 8, 0.071682);
1309 AddElementByWeightFraction(82, 0.928318);
1310
1311 AddMaterial("G4_LITHIUM_AMIDE", 1.178, 0, 55.5, 3);
1312 AddElementByAtomCount("Li", 1);
1313 AddElementByAtomCount("N" , 1);
1314 AddElementByAtomCount("H" , 2);
1315
1316 AddMaterial("G4_LITHIUM_CARBONATE", 2.11, 0, 87.9, 3);
1317 AddElementByAtomCount("Li", 2);
1318 AddElementByAtomCount("C" , 1);
1319 AddElementByAtomCount("O" , 3);
1320
1321 AddMaterial("G4_LITHIUM_FLUORIDE", 2.635, 0, 94., 2);
1322 AddElementByAtomCount("Li", 1);
1323 AddElementByAtomCount("F" , 1);
1324
1325 AddMaterial("G4_LITHIUM_HYDRIDE", 0.82, 0, 36.5, 2);
1326 AddElementByAtomCount("Li", 1);
1327 AddElementByAtomCount("H" , 1);
1328
1329 AddMaterial("G4_LITHIUM_IODIDE", 3.494, 0, 485.1, 2);
1330 AddElementByAtomCount("Li", 1);
1331 AddElementByAtomCount("I" , 1);
1332
1333 AddMaterial("G4_LITHIUM_OXIDE", 2.013, 0, 73.6, 2);
1334 AddElementByAtomCount("Li", 2);
1335 AddElementByAtomCount("O" , 1);
1336
1337 AddMaterial("G4_LITHIUM_TETRABORATE", 2.44, 0, 94.6, 3);
1338 AddElementByAtomCount("Li", 2);
1339 AddElementByAtomCount("B" , 4);
1340 AddElementByAtomCount("O" , 7);
1341}
1342
1343void G4NistMaterialBuilder::NistCompoundMaterials2()
1344{
1345 //Adult Lung congested
1346 AddMaterial("G4_LUNG_ICRP", 1.04, 0, 75.3, 9);
1347 AddElementByWeightFraction( 1, 0.105);
1348 AddElementByWeightFraction( 6, 0.083);
1349 AddElementByWeightFraction( 7, 0.023);
1350 AddElementByWeightFraction( 8, 0.779);
1351 AddElementByWeightFraction(11, 0.002);
1352 AddElementByWeightFraction(15, 0.001);
1353 AddElementByWeightFraction(16, 0.002);
1354 AddElementByWeightFraction(17, 0.003);
1355 AddElementByWeightFraction(19, 0.002);
1356
1357 AddMaterial("G4_M3_WAX", 1.05, 0, 67.9, 5);
1358 AddElementByWeightFraction( 1, 0.114318);
1359 AddElementByWeightFraction( 6, 0.655823);
1360 AddElementByWeightFraction( 8, 0.092183);
1361 AddElementByWeightFraction(12, 0.134792);
1362 AddElementByWeightFraction(20, 0.002883);
1363
1364 AddMaterial("G4_MAGNESIUM_CARBONATE", 2.958, 0, 118., 3);
1365 AddElementByAtomCount("Mg", 1);
1366 AddElementByAtomCount("C" , 1);
1367 AddElementByAtomCount("O" , 3);
1368
1369 AddMaterial("G4_MAGNESIUM_FLUORIDE", 3.0, 0, 134.3, 2);
1370 AddElementByAtomCount("Mg", 1);
1371 AddElementByAtomCount("F" , 2);
1372
1373 AddMaterial("G4_MAGNESIUM_OXIDE", 3.58, 0, 143.8, 2);
1374 AddElementByAtomCount("Mg", 1);
1375 AddElementByAtomCount("O" , 1);
1376
1377 AddMaterial("G4_MAGNESIUM_TETRABORATE", 2.53, 0, 108.3, 3);
1378 AddElementByAtomCount("Mg", 1);
1379 AddElementByAtomCount("B" , 4);
1380 AddElementByAtomCount("O" , 7);
1381
1382 AddMaterial("G4_MERCURIC_IODIDE", 6.36, 0, 684.5, 2);
1383 AddElementByAtomCount("Hg", 1);
1384 AddElementByAtomCount("I" , 2);
1385
1386 AddMaterial("G4_METHANE", 0.000667151, 0, 41.7, 2, kStateGas);
1387 AddElementByAtomCount("C" , 1);
1388 AddElementByAtomCount("H" , 4);
1389
1390 AddMaterial("G4_METHANOL", 0.7914, 0, 67.6, 3);
1391 AddElementByAtomCount("C" , 1);
1392 AddElementByAtomCount("H" , 4);
1393 AddElementByAtomCount("O" , 1);
1394
1395 AddMaterial("G4_MIX_D_WAX", 0.99, 0, 60.9, 5);
1396 AddElementByWeightFraction( 1, 0.13404 );
1397 AddElementByWeightFraction( 6, 0.77796 );
1398 AddElementByWeightFraction( 8, 0.03502 );
1399 AddElementByWeightFraction(12, 0.038594);
1400 AddElementByWeightFraction(22, 0.014386);
1401
1402 AddMaterial("G4_MS20_TISSUE", 1.0, 0, 75.1, 6);
1403 AddElementByWeightFraction( 1, 0.081192);
1404 AddElementByWeightFraction( 6, 0.583442);
1405 AddElementByWeightFraction( 7, 0.017798);
1406 AddElementByWeightFraction( 8, 0.186381);
1407 AddElementByWeightFraction(12, 0.130287);
1408 AddElementByWeightFraction(17, 0.0009 );
1409
1410 AddMaterial("G4_MUSCLE_SKELETAL_ICRP", 1.05, 0, 75.3, 9);
1411 AddElementByWeightFraction( 1, 0.102);
1412 AddElementByWeightFraction( 6, 0.143);
1413 AddElementByWeightFraction( 7, 0.034);
1414 AddElementByWeightFraction( 8, 0.710);
1415 AddElementByWeightFraction(11, 0.001);
1416 AddElementByWeightFraction(15, 0.002);
1417 AddElementByWeightFraction(16, 0.003);
1418 AddElementByWeightFraction(17, 0.001);
1419 AddElementByWeightFraction(19, 0.004);
1420
1421 // from old ICRU report
1422 AddMaterial("G4_MUSCLE_STRIATED_ICRU", 1.04, 0, 74.7, 8);
1423 AddElementByWeightFraction( 1, 0.102);
1424 AddElementByWeightFraction( 6, 0.123);
1425 AddElementByWeightFraction( 7, 0.035);
1426 AddElementByWeightFraction( 8, 0.729);
1427 AddElementByWeightFraction(11, 0.001);
1428 AddElementByWeightFraction(15, 0.002);
1429 AddElementByWeightFraction(16, 0.004);
1430 AddElementByWeightFraction(19, 0.003);
1431
1432 AddMaterial("G4_MUSCLE_WITH_SUCROSE", 1.11, 0, 74.3, 4);
1433 AddElementByWeightFraction( 1, 0.098234);
1434 AddElementByWeightFraction( 6, 0.156214);
1435 AddElementByWeightFraction( 7, 0.035451);
1436 AddElementByWeightFraction( 8, 0.7101 );
1437
1438 AddMaterial("G4_MUSCLE_WITHOUT_SUCROSE", 1.07, 0, 74.2, 4);
1439 AddElementByWeightFraction( 1, 0.101969);
1440 AddElementByWeightFraction( 6, 0.120058);
1441 AddElementByWeightFraction( 7, 0.035451);
1442 AddElementByWeightFraction( 8, 0.742522);
1443
1444 AddMaterial("G4_NAPHTHALENE", 1.145, 0, 68.4, 2);
1445 AddElementByAtomCount("C" , 10);
1446 AddElementByAtomCount("H" , 8);
1447
1448 AddMaterial("G4_NITROBENZENE", 1.19867, 0, 75.8, 4);
1449 AddElementByAtomCount("C" , 6);
1450 AddElementByAtomCount("H" , 5);
1451 AddElementByAtomCount("N" , 1);
1452 AddElementByAtomCount("O" , 2);
1453
1454 AddMaterial("G4_NITROUS_OXIDE", 0.00183094, 0, 84.9, 2, kStateGas);
1455 AddElementByAtomCount("N" , 2);
1456 AddElementByAtomCount("O" , 1);
1457
1458 AddMaterial("G4_NYLON-8062", 1.08, 0, 64.3, 4);
1459 AddElementByWeightFraction( 1, 0.103509);
1460 AddElementByWeightFraction( 6, 0.648415);
1461 AddElementByWeightFraction( 7, 0.099536);
1462 AddElementByWeightFraction( 8, 0.148539);
1463
1464 AddMaterial("G4_NYLON-6-6", 1.14, 0, 63.9, 4);
1465 AddElementByAtomCount("C" , 6);
1466 AddElementByAtomCount("H" , 11);
1467 AddElementByAtomCount("N" , 1);
1468 AddElementByAtomCount("O" , 1);
1469
1470 AddMaterial("G4_NYLON-6-10", 1.14, 0, 63.2, 4);
1471 AddElementByWeightFraction( 1, 0.107062);
1472 AddElementByWeightFraction( 6, 0.680449);
1473 AddElementByWeightFraction( 7, 0.099189);
1474 AddElementByWeightFraction( 8, 0.1133 );
1475
1476 AddMaterial("G4_NYLON-11_RILSAN", 1.425, 0, 61.6, 4);
1477 AddElementByWeightFraction( 1, 0.115476);
1478 AddElementByWeightFraction( 6, 0.720819);
1479 AddElementByWeightFraction( 7, 0.076417);
1480 AddElementByWeightFraction( 8, 0.087289);
1481
1482 AddMaterial("G4_OCTANE", 0.7026, 0, 54.7, 2);
1483 AddElementByAtomCount("C" , 8);
1484 AddElementByAtomCount("H" , 18);
1485
1486 AddMaterial("G4_PARAFFIN", 0.93, 0, 55.9, 2);
1487 AddElementByAtomCount("C" , 25);
1488 AddElementByAtomCount("H" , 52);
1489
1490 AddMaterial("G4_N-PENTANE", 0.6262, 0, 53.6, 2);
1491 AddElementByAtomCount("C" , 5);
1492 AddElementByAtomCount("H" , 12);
1493
1494 AddMaterial("G4_PHOTO_EMULSION", 3.815, 0, 331., 8);
1495 AddElementByWeightFraction( 1, 0.0141 );
1496 AddElementByWeightFraction( 6, 0.072261);
1497 AddElementByWeightFraction( 7, 0.01932 );
1498 AddElementByWeightFraction( 8, 0.066101);
1499 AddElementByWeightFraction(16, 0.00189 );
1500 AddElementByWeightFraction(35, 0.349103);
1501 AddElementByWeightFraction(47, 0.474105);
1502 AddElementByWeightFraction(53, 0.00312 );
1503
1504 AddMaterial("G4_PLASTIC_SC_VINYLTOLUENE", 1.032, 0, 64.7, 2);
1505 // AddElementByWeightFraction( 1, 0.085);
1506 // AddElementByWeightFraction( 6, 0.915);
1507 // Watch out! These weight fractions do not correspond to pure PVT
1508 // (PolyVinylToluene, C_9H_10) but to an unknown mixture...
1509 // M.Trocme & S.Seltzer
1510 AddElementByAtomCount("C" , 9);
1511 AddElementByAtomCount("H" , 10);
1512
1513 AddMaterial("G4_PLUTONIUM_DIOXIDE", 11.46, 0, 746.5, 2);
1514 AddElementByAtomCount("Pu", 1);
1515 AddElementByAtomCount("O" , 2);
1516
1517 AddMaterial("G4_POLYACRYLONITRILE", 1.17, 0, 69.6, 3);
1518 AddElementByAtomCount("C" , 3);
1519 AddElementByAtomCount("H" , 3);
1520 AddElementByAtomCount("N" , 1);
1521
1522 AddMaterial("G4_POLYCARBONATE", 1.2, 0, 73.1, 3);
1523 AddElementByAtomCount("C" , 16);
1524 AddElementByAtomCount("H" , 14);
1525 AddElementByAtomCount("O" , 3);
1526
1527 AddMaterial("G4_POLYCHLOROSTYRENE", 1.3, 0, 81.7, 3);
1528 // AddElementByWeightFraction( 1, 0.061869);
1529 // AddElementByWeightFraction( 6, 0.696325);
1530 // AddElementByWeightFraction(17, 0.241806);
1531 // These weight fractions correspond to C_17H_18Cl_2 which is not
1532 // POLYCHLOROSTYRENE. POLYCHLOROSTYRENE is C_8H_7Cl!
1533 // M.Trocme & S.Seltzer
1534 AddElementByAtomCount("C" , 8);
1535 AddElementByAtomCount("H" , 7);
1536 AddElementByAtomCount("Cl", 1);
1537
1538 AddMaterial("G4_POLYETHYLENE", 0.94, 0, 57.4, 2);
1539 AddElementByAtomCount("C" , 1);
1540 AddElementByAtomCount("H" , 2);
1541 chFormulas[nMaterials-1] = "(C_2H_4)_N-Polyethylene";
1542
1543 AddMaterial("G4_MYLAR", 1.4, 0, 78.7, 3);
1544 AddElementByAtomCount("C" , 10);
1545 AddElementByAtomCount("H" , 8);
1546 AddElementByAtomCount("O" , 4);
1547
1548 AddMaterial("G4_PLEXIGLASS", 1.19, 0, 74., 3);
1549 AddElementByAtomCount("C" , 5);
1550 AddElementByAtomCount("H" , 8);
1551 AddElementByAtomCount("O" , 2);
1552
1553 AddMaterial("G4_POLYOXYMETHYLENE", 1.425 ,0, 77.4, 3);
1554 AddElementByAtomCount("C" , 1);
1555 AddElementByAtomCount("H" , 2);
1556 AddElementByAtomCount("O" , 1);
1557
1558 AddMaterial("G4_POLYPROPYLENE", 0.9, 0, 56.5, 2);
1559 AddElementByAtomCount("C" , 2);
1560 AddElementByAtomCount("H" , 4);
1561 chFormulas[nMaterials-1] = "(C_2H_4)_N-Polypropylene";
1562
1563 AddMaterial("G4_POLYSTYRENE", 1.06, 0, 68.7, 2);
1564 AddElementByAtomCount("C" , 8);
1565 AddElementByAtomCount("H" , 8);
1566
1567 AddMaterial("G4_TEFLON", 2.2, 0, 99.1, 2);
1568 AddElementByAtomCount("C" , 2);
1569 AddElementByAtomCount("F" , 4);
1570
1571 AddMaterial("G4_POLYTRIFLUOROCHLOROETHYLENE", 2.1, 0, 120.7, 3);
1572 // correct chemical name Polychlorotrifluoroethylene [CF2CClF]n, IvantchenkoA.
1573 AddElementByAtomCount("C" , 2);
1574 AddElementByAtomCount("F" , 3);
1575 AddElementByAtomCount("Cl", 1);
1576
1577 AddMaterial("G4_POLYVINYL_ACETATE", 1.19, 0, 73.7, 3);
1578 AddElementByAtomCount("C" , 4);
1579 AddElementByAtomCount("H" , 6);
1580 AddElementByAtomCount("O" , 2);
1581
1582 AddMaterial("G4_POLYVINYL_ALCOHOL", 1.3, 0, 69.7, 3);
1583 AddElementByAtomCount("C" , 2);
1584 AddElementByAtomCount("H" , 4);
1585 AddElementByAtomCount("O" , 1);
1586
1587 AddMaterial("G4_POLYVINYL_BUTYRAL", 1.12, 0, 67.2, 3);
1588 // AddElementByWeightFraction( 1, 0.092802);
1589 // AddElementByWeightFraction( 6, 0.680561);
1590 // AddElementByWeightFraction( 8, 0.226637);
1591 // These weight fractions correspond to C_8H_13O_2 which is not
1592 // POLYVINYL_BUTYRAL. POLYVINYL_BUTYRAL is C_8H_14O_2!
1593 // M.Trocme & S.Seltzer
1594 AddElementByAtomCount("C" , 8);
1595 AddElementByAtomCount("H" , 14);
1596 AddElementByAtomCount("O" , 2);
1597
1598 AddMaterial("G4_POLYVINYL_CHLORIDE", 1.3, 0, 108.2, 3);
1599 AddElementByAtomCount("C" , 2);
1600 AddElementByAtomCount("H" , 3);
1601 AddElementByAtomCount("Cl", 1);
1602
1603 AddMaterial("G4_POLYVINYLIDENE_CHLORIDE", 1.7, 0, 134.3, 3);
1604 AddElementByAtomCount("C" , 2);
1605 AddElementByAtomCount("H" , 2);
1606 AddElementByAtomCount("Cl", 2);
1607
1608 AddMaterial("G4_POLYVINYLIDENE_FLUORIDE", 1.76, 0, 88.8, 3);
1609 AddElementByAtomCount("C" , 2);
1610 AddElementByAtomCount("H" , 2);
1611 AddElementByAtomCount("F" , 2);
1612
1613 AddMaterial("G4_POLYVINYL_PYRROLIDONE", 1.25, 0, 67.7, 4);
1614 AddElementByAtomCount("C" , 6);
1615 AddElementByAtomCount("H" , 9);
1616 AddElementByAtomCount("N" , 1);
1617 AddElementByAtomCount("O" , 1);
1618
1619 AddMaterial("G4_POTASSIUM_IODIDE", 3.13, 0, 431.9, 2);
1620 AddElementByAtomCount("K" , 1);
1621 AddElementByAtomCount("I" , 1);
1622
1623 AddMaterial("G4_POTASSIUM_OXIDE", 2.32, 0, 189.9, 2);
1624 AddElementByAtomCount("K" , 2);
1625 AddElementByAtomCount("O" , 1);
1626
1627 AddMaterial("G4_PROPANE", 0.00187939, 0, 47.1, 2, kStateGas);
1628 AddElementByAtomCount("C" , 3);
1629 AddElementByAtomCount("H" , 8);
1630
1631 AddMaterial("G4_lPROPANE", 0.43, 0, 52., 2);
1632 AddElementByAtomCount("C" , 3);
1633 AddElementByAtomCount("H" , 8);
1634
1635 AddMaterial("G4_N-PROPYL_ALCOHOL", 0.8035, 0, 61.1, 3);
1636 AddElementByAtomCount("C" , 3);
1637 AddElementByAtomCount("H" , 8);
1638 AddElementByAtomCount("O" , 1);
1639
1640 AddMaterial("G4_PYRIDINE", 0.9819, 0, 66.2, 3);
1641 AddElementByAtomCount("C" , 5);
1642 AddElementByAtomCount("H" , 5);
1643 AddElementByAtomCount("N" , 1);
1644
1645 AddMaterial("G4_RUBBER_BUTYL", 0.92, 0, 56.5, 2);
1646 AddElementByWeightFraction( 1, 0.143711);
1647 AddElementByWeightFraction( 6, 0.856289);
1648
1649 AddMaterial("G4_RUBBER_NATURAL", 0.92, 0, 59.8, 2);
1650 AddElementByWeightFraction( 1, 0.118371);
1651 AddElementByWeightFraction( 6, 0.881629);
1652
1653 AddMaterial("G4_RUBBER_NEOPRENE", 1.23, 0, 93., 3);
1654 AddElementByWeightFraction( 1, 0.05692 );
1655 AddElementByWeightFraction( 6, 0.542646);
1656 AddElementByWeightFraction(17, 0.400434);
1657
1658 AddMaterial("G4_SILICON_DIOXIDE", 2.32, 0, 139.2, 2);
1659 AddElementByAtomCount("Si", 1);
1660 AddElementByAtomCount("O" , 2);
1661 chFormulas[nMaterials-1] = "SiO_2";
1662
1663 AddMaterial("G4_SILVER_BROMIDE", 6.473, 0, 486.6, 2);
1664 AddElementByAtomCount("Ag", 1);
1665 AddElementByAtomCount("Br", 1);
1666
1667 AddMaterial("G4_SILVER_CHLORIDE", 5.56, 0, 398.4, 2);
1668 AddElementByAtomCount("Ag", 1);
1669 AddElementByAtomCount("Cl", 1);
1670
1671 AddMaterial("G4_SILVER_HALIDES", 6.47, 0, 487.1, 3);
1672 AddElementByWeightFraction(35, 0.422895);
1673 AddElementByWeightFraction(47, 0.573748);
1674 AddElementByWeightFraction(53, 0.003357);
1675
1676 AddMaterial("G4_SILVER_IODIDE", 6.01, 0, 543.5, 2);
1677 AddElementByAtomCount("Ag", 1);
1678 AddElementByAtomCount("I" , 1);
1679
1680 AddMaterial("G4_SKIN_ICRP", 1.09, 0, 72.7, 9);
1681 AddElementByWeightFraction( 1, 0.100);
1682 AddElementByWeightFraction( 6, 0.204);
1683 AddElementByWeightFraction( 7, 0.042);
1684 AddElementByWeightFraction( 8, 0.645);
1685 AddElementByWeightFraction(11, 0.002);
1686 AddElementByWeightFraction(15, 0.001);
1687 AddElementByWeightFraction(16, 0.002);
1688 AddElementByWeightFraction(17, 0.003);
1689 AddElementByWeightFraction(19, 0.001);
1690
1691 AddMaterial("G4_SODIUM_CARBONATE", 2.532, 0, 125., 3);
1692 AddElementByAtomCount("Na", 2);
1693 AddElementByAtomCount("C" , 1);
1694 AddElementByAtomCount("O" , 3);
1695
1696 AddMaterial("G4_SODIUM_IODIDE", 3.667, 0, 452., 2);
1697 AddElementByAtomCount("Na", 1);
1698 AddElementByAtomCount("I" , 1);
1699
1700 AddMaterial("G4_SODIUM_MONOXIDE", 2.27, 0, 148.8, 2);
1701 AddElementByAtomCount("Na", 2);
1702 AddElementByAtomCount("O" , 1);
1703
1704 AddMaterial("G4_SODIUM_NITRATE", 2.261, 0, 114.6, 3);
1705 AddElementByAtomCount("Na", 1);
1706 AddElementByAtomCount("N" , 1);
1707 AddElementByAtomCount("O" , 3);
1708
1709 AddMaterial("G4_STILBENE", 0.9707, 0, 67.7, 2);
1710 AddElementByAtomCount("C" , 14);
1711 AddElementByAtomCount("H" , 12);
1712
1713 AddMaterial("G4_SUCROSE", 1.5805, 0, 77.5, 3);
1714 AddElementByAtomCount("C" , 12);
1715 AddElementByAtomCount("H" , 22);
1716 AddElementByAtomCount("O" , 11);
1717
1718 AddMaterial("G4_TERPHENYL", 1.24 /*1.234*/, 0, 71.7, 2);
1719 // AddElementByWeightFraction( 1, 0.044543);
1720 // AddElementByWeightFraction( 6, 0.955457);
1721 // These weight fractions correspond to C_18H_10 which is not TERPHENYL.
1722 // TERPHENYL is C_18H_14! The current density is 1.24 g/cm3
1723 // M.Trocme & S.Seltzer
1724 AddElementByAtomCount("C" , 18);
1725 AddElementByAtomCount("H" , 14);
1726
1727 AddMaterial("G4_TESTIS_ICRP", 1.04, 0, 75., 9);
1728 AddElementByWeightFraction( 1, 0.106);
1729 AddElementByWeightFraction( 6, 0.099);
1730 AddElementByWeightFraction( 7, 0.020);
1731 AddElementByWeightFraction( 8, 0.766);
1732 AddElementByWeightFraction(11, 0.002);
1733 AddElementByWeightFraction(15, 0.001);
1734 AddElementByWeightFraction(16, 0.002);
1735 AddElementByWeightFraction(17, 0.002);
1736 AddElementByWeightFraction(19, 0.002);
1737
1738 AddMaterial("G4_TETRACHLOROETHYLENE", 1.625, 0, 159.2, 2);
1739 AddElementByAtomCount("C" , 2);
1740 AddElementByAtomCount("Cl", 4);
1741
1742 AddMaterial("G4_THALLIUM_CHLORIDE", 7.004, 0, 690.3, 2);
1743 AddElementByAtomCount("Tl", 1);
1744 AddElementByAtomCount("Cl", 1);
1745
1746 // TISSUE_SOFT_MALE ICRU-44/46 (1989)
1747 AddMaterial("G4_TISSUE_SOFT_ICRP", 1.03, 0, 72.3, 9);
1748 AddElementByWeightFraction( 1, 0.105);
1749 AddElementByWeightFraction( 6, 0.256);
1750 AddElementByWeightFraction( 7, 0.027);
1751 AddElementByWeightFraction( 8, 0.602);
1752 AddElementByWeightFraction(11, 0.001);
1753 AddElementByWeightFraction(15, 0.002);
1754 AddElementByWeightFraction(16, 0.003);
1755 AddElementByWeightFraction(17, 0.002);
1756 AddElementByWeightFraction(19, 0.002);
1757
1758 // Tissue soft adult ICRU-33 (1980)
1759 AddMaterial("G4_TISSUE_SOFT_ICRU-4", 1.0, 0, 74.9, 4);
1760 AddElementByWeightFraction( 1, 0.101);
1761 AddElementByWeightFraction( 6, 0.111);
1762 AddElementByWeightFraction( 7, 0.026);
1763 AddElementByWeightFraction( 8, 0.762);
1764
1765 AddMaterial("G4_TISSUE-METHANE", 0.00106409, 0, 61.2, 4, kStateGas);
1766 AddElementByWeightFraction( 1, 0.101869);
1767 AddElementByWeightFraction( 6, 0.456179);
1768 AddElementByWeightFraction( 7, 0.035172);
1769 AddElementByWeightFraction( 8, 0.40678 );
1770
1771 AddMaterial("G4_TISSUE-PROPANE", 0.00182628, 0, 59.5, 4, kStateGas);
1772 AddElementByWeightFraction( 1, 0.102672);
1773 AddElementByWeightFraction( 6, 0.56894 );
1774 AddElementByWeightFraction( 7, 0.035022);
1775 AddElementByWeightFraction( 8, 0.293366);
1776
1777 AddMaterial("G4_TITANIUM_DIOXIDE", 4.26, 0, 179.5, 2);
1778 AddElementByAtomCount("Ti", 1);
1779 AddElementByAtomCount("O" , 2);
1780
1781 AddMaterial("G4_TOLUENE", 0.8669, 0, 62.5, 2);
1782 AddElementByAtomCount("C" , 7);
1783 AddElementByAtomCount("H" , 8);
1784
1785 AddMaterial("G4_TRICHLOROETHYLENE", 1.46, 0, 148.1, 3);
1786 AddElementByAtomCount("C" , 2);
1787 AddElementByAtomCount("H" , 1);
1788 AddElementByAtomCount("Cl", 3);
1789
1790 AddMaterial("G4_TRIETHYL_PHOSPHATE", 1.07, 0, 81.2, 4);
1791 AddElementByAtomCount("C" , 6);
1792 AddElementByAtomCount("H" , 15);
1793 AddElementByAtomCount("O" , 4);
1794 AddElementByAtomCount("P" , 1);
1795
1796 AddMaterial("G4_TUNGSTEN_HEXAFLUORIDE", 2.4, 0, 354.4, 2);
1797 AddElementByAtomCount("W" , 1);
1798 AddElementByAtomCount("F" , 6);
1799
1800 AddMaterial("G4_URANIUM_DICARBIDE", 11.28, 0, 752., 2);
1801 AddElementByAtomCount("U" , 1);
1802 AddElementByAtomCount("C" , 2);
1803
1804 AddMaterial("G4_URANIUM_MONOCARBIDE", 13.63, 0, 862., 2);
1805 AddElementByAtomCount("U" , 1);
1806 AddElementByAtomCount("C" , 1);
1807
1808 AddMaterial("G4_URANIUM_OXIDE", 10.96, 0, 720.6, 2);
1809 AddElementByAtomCount("U" , 1);
1810 AddElementByAtomCount("O" , 2);
1811
1812 AddMaterial("G4_UREA", 1.323, 0, 72.8, 4);
1813 AddElementByAtomCount("C" , 1);
1814 AddElementByAtomCount("H" , 4);
1815 AddElementByAtomCount("N" , 2);
1816 AddElementByAtomCount("O" , 1);
1817
1818 AddMaterial("G4_VALINE", 1.23, 0, 67.7, 4);
1819 AddElementByAtomCount("C" , 5);
1820 AddElementByAtomCount("H" , 11);
1821 AddElementByAtomCount("N" , 1);
1822 AddElementByAtomCount("O" , 2);
1823
1824 AddMaterial("G4_VITON", 1.8, 0, 98.6, 3);
1825 AddElementByWeightFraction( 1, 0.009417);
1826 AddElementByWeightFraction( 6, 0.280555);
1827 AddElementByWeightFraction( 9, 0.710028);
1828
1829 AddMaterial("G4_WATER_VAPOR", 0.000756182, 0, 71.6, 2, kStateGas);
1830 AddElementByAtomCount("H" , 2);
1831 AddElementByAtomCount("O" , 1);
1832 chFormulas[nMaterials-1] = "H_2O-Gas";
1833
1834 AddMaterial("G4_XYLENE", 0.87, 0, 61.8, 2);
1835 AddElementByAtomCount("C" , 8);
1836 AddElementByAtomCount("H" , 10);
1837
1838 AddMaterial("G4_GRAPHITE", 2.21, 6, 78.);
1839 chFormulas[nMaterials-1] = "Graphite";
1840
1841 nNIST = nMaterials;
1842}
1843
1844//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1845
1846void G4NistMaterialBuilder::HepAndNuclearMaterials()
1847{
1848 AddMaterial("G4_lH2", 0.0708, 1, 21.8, 1, kStateLiquid, false);
1849 AddMaterial("G4_lN2", 0.807, 7, 82., 1, kStateLiquid, false);
1850 AddMaterial("G4_lO2", 1.141, 8, 95., 1, kStateLiquid, false);
1851 AddMaterial("G4_lAr", 1.396 , 18, 188. , 1, kStateLiquid, false);
1852 AddMaterial("G4_lBr", 3.1028, 35, 343. , 1, kStateLiquid, false);
1853 AddMaterial("G4_lKr", 2.418 , 36, 352. , 1, kStateLiquid, false);
1854 AddMaterial("G4_lXe", 2.953 , 54, 482. , 1, kStateLiquid, false);
1855
1856 AddMaterial("G4_PbWO4", 8.28, 0, 0.0, 3);
1857 AddElementByAtomCount("O" , 4);
1858 AddElementByAtomCount("Pb", 1);
1859 AddElementByAtomCount("W" , 1);
1860
1861 G4double density = universe_mean_density*cm3/g;
1862 AddMaterial("G4_Galactic", density, 1, 21.8, 1, kStateGas);
1863 AddGas("G4_Galactic",2.73*kelvin, 3.e-18*hep_pascal);
1864
1865 AddMaterial("G4_GRAPHITE_POROUS", 1.7, 6, 78.);
1866 chFormulas[nMaterials-1] = "Graphite";
1867
1868 // LUCITE is equal to plustiglass
1869 AddMaterial("G4_LUCITE", 1.19, 0, 74., 3);
1870 AddElementByWeightFraction( 1, 0.080538);
1871 AddElementByWeightFraction( 6, 0.599848);
1872 AddElementByWeightFraction( 8, 0.319614);
1873
1874 // SRIM-2008 materials
1875 AddMaterial("G4_BRASS", 8.52, 0, 0.0, 3);
1876 AddElementByAtomCount("Cu", 62);
1877 AddElementByAtomCount("Zn", 35);
1878 AddElementByAtomCount("Pb" , 3);
1879
1880 AddMaterial("G4_BRONZE", 8.82, 0, 0.0, 3);
1881 AddElementByAtomCount("Cu", 89);
1882 AddElementByAtomCount("Zn", 9);
1883 AddElementByAtomCount("Pb" , 2);
1884
1885 // parameters are taken from
1886 // http://www.azom.com/article.aspx?ArticleID=965
1887 AddMaterial("G4_STAINLESS-STEEL", 8.00, 0, 0.0, 3);
1888 AddElementByAtomCount("Fe", 74);
1889 AddElementByAtomCount("Cr", 18);
1890 AddElementByAtomCount("Ni" , 8);
1891
1892 AddMaterial("G4_CR39", 1.32, 0, 0.0, 3);
1893 AddElementByAtomCount("H", 18);
1894 AddElementByAtomCount("C", 12);
1895 AddElementByAtomCount("O", 7);
1896
1897 AddMaterial("G4_OCTADECANOL", 0.812, 0, 0.0, 3);
1898 AddElementByAtomCount("H", 38);
1899 AddElementByAtomCount("C", 18);
1900 AddElementByAtomCount("O", 1);
1901
1902 nHEP = nMaterials;
1903}
1904
1905//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1906
1907void G4NistMaterialBuilder::SpaceMaterials()
1908{
1909 // density in g/cm3
1910 AddMaterial("G4_KEVLAR" , 1.44, 0, 0.0, 4);
1911 AddElementByAtomCount("C", 14);
1912 AddElementByAtomCount("H", 10);
1913 AddElementByAtomCount("O", 2);
1914 AddElementByAtomCount("N", 2);
1915
1916 AddMaterial("G4_DACRON" , 1.40, 0, 0.0, 3); // G4_POLYETHYLENE_TEREPHTALATE
1917 AddElementByAtomCount("C", 10);
1918 AddElementByAtomCount("H", 8);
1919 AddElementByAtomCount("O", 4);
1920
1921 AddMaterial("G4_NEOPRENE" , 1.23, 0, 0.0, 3); // POLYCLOROPRENE
1922 AddElementByAtomCount("C", 4);
1923 AddElementByAtomCount("H", 5);
1924 AddElementByAtomCount("Cl",1);
1925
1926 nSpace = nMaterials;
1927}
1928
1929//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1930
1931/**
1932 Build biochemical materials used in G4DNA Applications.
1933 Materials are defined in bonded and unbonded forms according to the
1934 following schema:
1935 G4_MATERIAL: Molecule in its free state
1936 G4_DNA_MATERIAL: Molecule, considering atoms lost in bonding
1937*/
1938
1939void G4NistMaterialBuilder::BioChemicalMaterials()
1940{
1941 // BEGIN MATERIALS IN THEIR UNBONDED FORM
1942
1943 // G4_ADENINE, G4_GUANINE are defined in
1944 // G4NistMaterialBuilder::NistCompoundMaterials()
1945
1946 AddMaterial("G4_CYTOSINE", 1.55, 0, 72., 4);
1947 AddElementByAtomCount("H", 5);
1948 AddElementByAtomCount("C", 4);
1949 AddElementByAtomCount("N", 3);
1950 AddElementByAtomCount("O", 1);
1951
1952 AddMaterial("G4_THYMINE", 1.23, 0, 72., 4);
1953 AddElementByAtomCount("H", 6);
1954 AddElementByAtomCount("C", 5);
1955 AddElementByAtomCount("N", 2);
1956 AddElementByAtomCount("O", 2);
1957
1958 AddMaterial("G4_URACIL", 1.32, 0, 72., 4);
1959 AddElementByAtomCount("H", 4);
1960 AddElementByAtomCount("C", 4);
1961 AddElementByAtomCount("N", 2);
1962 AddElementByAtomCount("O", 2);
1963
1964 AddMaterial("G4_DEOXYRIBOSE", 1, 0, 72, 3);
1965 AddElementByAtomCount("H", 10);
1966 AddElementByAtomCount("C", 5);
1967 AddElementByAtomCount("O", 3);
1968
1969 // END UNBONDED MATERIALS / BEGIN BONDED MATERIALS
1970
1971 // Deoxyribose loses 3 OH groups in bonding to bond with PO4 and a base pair
1972 AddMaterial("G4_DNA_DEOXYRIBOSE", 1, 0, 72., 3);
1973 AddElementByAtomCount("H", 7);
1974 AddElementByAtomCount("C", 5);
1975 AddElementByAtomCount("O", 1);
1976
1977 // Typically there are no H atoms considered in the Phosphate group
1978 AddMaterial("G4_DNA_PHOSPHATE", 1, 0, 72., 2);
1979 AddElementByAtomCount("P", 1);
1980 AddElementByAtomCount("O", 4);
1981
1982 // GATCU bases bonded to a deoxyribose (they drop one H)
1983 AddMaterial("G4_DNA_ADENINE", 1, 0, 72., 3);
1984 AddElementByAtomCount("H",4 );
1985 AddElementByAtomCount("C",5 );
1986 AddElementByAtomCount("N",5 );
1987
1988 AddMaterial("G4_DNA_GUANINE", 1, 0, 72., 4);
1989 AddElementByAtomCount("H",4 );
1990 AddElementByAtomCount("C",5 );
1991 AddElementByAtomCount("N",5 );
1992 AddElementByAtomCount("O",1 );
1993
1994 AddMaterial("G4_DNA_CYTOSINE", 1, 0, 72., 4);
1995 AddElementByAtomCount("H", 4);
1996 AddElementByAtomCount("C", 4);
1997 AddElementByAtomCount("N", 3);
1998 AddElementByAtomCount("O", 1);
1999
2000 AddMaterial("G4_DNA_THYMINE", 1, 0, 72., 4);
2001 AddElementByAtomCount("H", 5);
2002 AddElementByAtomCount("C", 5);
2003 AddElementByAtomCount("N", 2);
2004 AddElementByAtomCount("O", 2);
2005
2006 AddMaterial("G4_DNA_URACIL", 1, 0, 72., 4);
2007 AddElementByAtomCount("H", 3);
2008 AddElementByAtomCount("C", 4);
2009 AddElementByAtomCount("N", 2);
2010 AddElementByAtomCount("O", 2);
2011
2012 // END BONDED MATERIALS
2013
2014 /*
2015 // Complete 70 kg body of adult men from en.wikipedia.org/ see References there
2016 AddMaterial("G4_BODY", 1.8, 0, 78, 12);
2017 AddElementByWeightFraction( 8, 0.650);
2018 AddElementByWeightFraction( 6, 0.180);
2019 AddElementByWeightFraction( 1, 0.100);
2020 AddElementByWeightFraction( 7, 0.030);
2021 AddElementByWeightFraction(20, 0.015);
2022 AddElementByWeightFraction(15, 0.010);
2023 AddElementByWeightFraction(19, 0.0025);
2024 AddElementByWeightFraction(16, 0.0025);
2025 AddElementByWeightFraction(11, 0.0015);
2026 AddElementByWeightFraction(17, 0.0015);
2027 AddElementByWeightFraction(12, 0.0005);
2028 AddElementByWeightFraction(26, 0.00006);
2029 */
2030}
2031
2032
2033
2034
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::vector< G4Material * > G4MaterialTable
G4State
Definition: G4Material.hh:111
@ kStateLiquid
Definition: G4Material.hh:111
@ kStateGas
Definition: G4Material.hh:111
#define G4MUTEX_INITIALIZER
Definition: G4Threading.hh:85
#define G4MUTEXLOCK(mutex)
Definition: G4Threading.hh:251
#define G4MUTEXUNLOCK(mutex)
Definition: G4Threading.hh:254
std::mutex G4Mutex
Definition: G4Threading.hh:81
double G4double
Definition: G4Types.hh:83
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
G4double GetMeanExcitationEnergy() const
G4double FindMeanExcitationEnergy(const G4Material *) const
void SetMeanExcitationEnergy(G4double value)
G4double GetPressure() const
Definition: G4Material.hh:181
G4double GetDensity() const
Definition: G4Material.hh:178
G4State GetState() const
Definition: G4Material.hh:179
G4double GetTemperature() const
Definition: G4Material.hh:180
G4IonisParamMat * GetIonisation() const
Definition: G4Material.hh:224
void AddElement(G4Element *element, G4int nAtoms)
Definition: G4Material.cc:369
void SetChemicalFormula(const G4String &chF)
Definition: G4Material.cc:597
static G4MaterialTable * GetMaterialTable()
Definition: G4Material.cc:637
size_t GetIndex() const
Definition: G4Material.hh:258
G4double GetAtomicMassAmu(const G4String &symb) const
G4Element * FindOrBuildElement(G4int Z, G4bool buildIsotopes=true)
G4int GetZ(const G4String &symb) const
void ListMaterials(const G4String &) const
G4NistMaterialBuilder(G4NistElementBuilder *, G4int verb=0)
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=true)
G4Material * FindSimpleMaterial(G4int Z) const
G4Material * FindOrBuildSimpleMaterial(G4int Z, G4bool warning)
G4Material * FindMaterial(const G4String &name) const
G4Material * ConstructNewGasMaterial(const G4String &name, const G4String &nameDB, G4double temp, G4double pres, G4bool isotopes=true)
G4Material * ConstructNewMaterial(const G4String &name, const std::vector< G4String > &elm, const std::vector< G4int > &nbAtoms, G4double dens, G4bool isotopes=true, G4State state=kStateSolid, G4double temp=NTP_Temperature, G4double pressure=CLHEP::STP_Pressure)
G4Material * ConstructNewIdealGasMaterial(const G4String &name, const std::vector< G4String > &elm, const std::vector< G4int > &nbAtoms, G4bool isotopes=true, G4double temp=NTP_Temperature, G4double pressure=CLHEP::STP_Pressure)
const char * name(G4int ptype)
int G4lrint(double ad)
Definition: templates.hh:134