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