Geant4-11
Public Member Functions | Private Member Functions | Private Attributes
G4NistMaterialBuilder Class Reference

#include <G4NistMaterialBuilder.hh>

Public Member Functions

G4MaterialConstructNewGasMaterial (const G4String &name, const G4String &nameDB, G4double temp, G4double pres)
 
G4MaterialConstructNewIdealGasMaterial (const G4String &name, const std::vector< G4String > &elm, const std::vector< G4int > &nbAtoms, G4double temp=NTP_Temperature, G4double pressure=CLHEP::STP_Pressure)
 
G4MaterialConstructNewMaterial (const G4String &name, const std::vector< G4String > &elm, const std::vector< G4double > &weight, G4double dens, G4State state=kStateSolid, G4double temp=NTP_Temperature, G4double pressure=CLHEP::STP_Pressure)
 
G4MaterialConstructNewMaterial (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)
 
G4MaterialFindMaterial (const G4String &name) const
 
G4MaterialFindOrBuildMaterial (const G4String &name, G4bool warning=true)
 
G4MaterialFindOrBuildSimpleMaterial (G4int Z, G4bool warning)
 
G4MaterialFindSimpleMaterial (G4int Z) const
 
 G4NistMaterialBuilder (const G4NistMaterialBuilder &)=delete
 
 G4NistMaterialBuilder (G4NistElementBuilder *, G4int verb=0)
 
const std::vector< G4String > & GetMaterialNames () const
 
G4double GetMeanIonisationEnergy (G4int index) const
 
G4double GetNominalDensity (G4int index) const
 
void ListBioChemicalMaterials () const
 
void ListHepMaterials () const
 
void ListMaterials (const G4String &) const
 
void ListNistCompoundMaterials () const
 
void ListNistSimpleMaterials () const
 
void ListSpaceMaterials () const
 
G4bool operator!= (const G4NistMaterialBuilder &) const =delete
 
const G4NistMaterialBuilderoperator= (const G4NistMaterialBuilder &)=delete
 
G4bool operator== (const G4NistMaterialBuilder &) const =delete
 
void SetVerbose (G4int val)
 
 ~G4NistMaterialBuilder ()
 

Private Member Functions

void AddElementByAtomCount (const G4String &name, G4int)
 
void AddElementByAtomCount (G4int Z, G4int)
 
void AddElementByWeightFraction (const G4String &name, G4double)
 
void AddElementByWeightFraction (G4int Z, G4double)
 
void AddGas (const G4String &nameMat, G4double T, G4double P)
 
void AddMaterial (const G4String &nameMat, G4double dens, G4int Z=0, G4double pot=0.0, G4int ncomp=1, G4State=kStateSolid, G4bool stp=true)
 
void BioChemicalMaterials ()
 
G4MaterialBuildMaterial (G4int idx)
 
G4MaterialBuildNistMaterial (const G4String &matname, G4bool warning)
 
void DumpElm (G4int) const
 
void DumpMix (G4int) const
 
void HepAndNuclearMaterials ()
 
void Initialise ()
 
void NistCompoundMaterials ()
 
void NistCompoundMaterials2 ()
 
void NistSimpleMaterials ()
 
void SpaceMaterials ()
 

Private Attributes

std::vector< G4boolatomCount
 
std::vector< G4StringchFormulas
 
std::vector< G4intcomponents
 
std::vector< G4doubledensities
 
std::vector< G4intelements
 
G4NistElementBuilderelmBuilder
 
std::vector< G4doublefractions
 
std::vector< G4doublegasPressure
 
std::vector< G4doublegasTemperature
 
std::vector< G4intidxGas
 
std::vector< G4intindexes
 
std::vector< G4doubleionPotentials
 
std::vector< G4intmatIndex
 
std::vector< G4Stringnames
 
G4int nComponents
 
G4int nCurrent
 
G4int nElementary
 
G4int nHEP
 
G4int nMaterials
 
G4int nNIST
 
G4int nSpace
 
std::vector< G4Statestates
 
std::vector< G4boolSTP
 
G4int verbose
 

Detailed Description

Definition at line 69 of file G4NistMaterialBuilder.hh.

Constructor & Destructor Documentation

◆ G4NistMaterialBuilder() [1/2]

G4NistMaterialBuilder::G4NistMaterialBuilder ( G4NistElementBuilder eb,
G4int  verb = 0 
)

◆ ~G4NistMaterialBuilder()

G4NistMaterialBuilder::~G4NistMaterialBuilder ( )

Definition at line 99 of file G4NistMaterialBuilder.cc.

100{}

◆ G4NistMaterialBuilder() [2/2]

G4NistMaterialBuilder::G4NistMaterialBuilder ( const G4NistMaterialBuilder )
delete

Member Function Documentation

◆ AddElementByAtomCount() [1/2]

void G4NistMaterialBuilder::AddElementByAtomCount ( const G4String name,
G4int  nb 
)
private

Definition at line 694 of file G4NistMaterialBuilder.cc.

696{
697 atomCount[nMaterials-1] = true;
699 G4double w = (G4double)nb;
701}
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
const G4int Z[17]
G4int GetZ(const G4String &symb) const
void AddElementByWeightFraction(G4int Z, G4double)
std::vector< G4bool > atomCount
const char * name(G4int ptype)

References AddElementByWeightFraction(), atomCount, elmBuilder, G4NistElementBuilder::GetZ(), G4InuclParticleNames::name(), nMaterials, and Z.

◆ AddElementByAtomCount() [2/2]

void G4NistMaterialBuilder::AddElementByAtomCount ( G4int  Z,
G4int  nb 
)
private

◆ AddElementByWeightFraction() [1/2]

void G4NistMaterialBuilder::AddElementByWeightFraction ( const G4String name,
G4double  w 
)
private

◆ AddElementByWeightFraction() [2/2]

void G4NistMaterialBuilder::AddElementByWeightFraction ( G4int  Z,
G4double  w 
)
private

Definition at line 655 of file G4NistMaterialBuilder.cc.

656{
657 elements.push_back(Z);
658 fractions.push_back(w);
659 --nCurrent;
660 ++nComponents;
661 if (nCurrent == 0) {
662 G4int n = nMaterials - 1;
663 G4double sum = 0.0;
664 G4int imin = indexes[n];
665 G4int imax = imin + components[n];
666
667 if(!atomCount[n]) {
668 for(G4int i=imin; i<imax; ++i) {sum += fractions[i];}
669 if (sum > 0.0) for (G4int i=imin; i<imax; ++i) {fractions[i] /= sum;}
670 }
671 }
672}
static const G4int imax
std::vector< G4int > components
std::vector< G4int > indexes
std::vector< G4int > elements
std::vector< G4double > fractions

References atomCount, components, elements, fractions, imax, indexes, CLHEP::detail::n, nComponents, nCurrent, nMaterials, and Z.

Referenced by AddElementByAtomCount(), AddElementByWeightFraction(), ConstructNewMaterial(), HepAndNuclearMaterials(), NistCompoundMaterials(), and NistCompoundMaterials2().

◆ AddGas()

void G4NistMaterialBuilder::AddGas ( const G4String nameMat,
G4double  T,
G4double  P 
)
private

Definition at line 638 of file G4NistMaterialBuilder.cc.

639{
640 for(G4int i=0; i<nMaterials; ++i) {
641 if(nameMat == names[i]) {
642 idxGas.push_back(i);
643 gasTemperature.push_back(t);
644 gasPressure.push_back(p);
645 return;
646 }
647 }
648 G4cout << "WARNING: G4NistMaterialBuilder::AddGas problem: there is no "
649 << nameMat << " in the list of materials."
650 << G4endl;
651}
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
std::vector< G4String > names
std::vector< G4double > gasTemperature
std::vector< G4int > idxGas
std::vector< G4double > gasPressure

References G4cout, G4endl, gasPressure, gasTemperature, idxGas, names, and nMaterials.

Referenced by ConstructNewIdealGasMaterial(), ConstructNewMaterial(), and HepAndNuclearMaterials().

◆ AddMaterial()

void G4NistMaterialBuilder::AddMaterial ( const G4String nameMat,
G4double  dens,
G4int  Z = 0,
G4double  pot = 0.0,
G4int  ncomp = 1,
G4State  state = kStateSolid,
G4bool  stp = true 
)
private

Definition at line 455 of file G4NistMaterialBuilder.cc.

459{
460 // add parameters of material into internal vectors
461 // density in g/cm3, mean ionisation potential in eV
462
463 // if ncomp == 1 then Z should be defined and
464 // AddElement should not be applied
465
466 if (nCurrent != 0) {
467 G4cout << "G4NistMaterialBuilder::AddMaterial WARNING: previous "
468 << "mixture " << nMaterials << " " << names[nMaterials]
469 << " is not yet complete!"
470 << G4endl;
471 G4cout << " New material " << nameMat << " will not be added."
472 << G4endl;
473 return;
474 }
475
476 // density in g/cm3, mean ionisation potential in eV
477
478 names.push_back(nameMat);
479 chFormulas.push_back("");
480 densities.push_back(dens*CLHEP::g/CLHEP::cm3);
481 ionPotentials.push_back(pot*CLHEP::eV);
482 states.push_back(state);
483 components.push_back(ncomp);
484 indexes.push_back(nComponents);
485 STP.push_back(stp);
486 matIndex.push_back(-1);
487 atomCount.push_back(false);
488
489 if (1 == ncomp && Z > 0) {
490 elements.push_back(Z);
491 fractions.push_back(1.0);
492 atomCount[nMaterials] = true;
493 ++nComponents;
494 nCurrent = 0;
495 } else {
496 nCurrent = ncomp;
497 }
498
499 ++nMaterials;
500
501 if(verbose > 1) {
502 G4cout << "New material " << nameMat << " is prepared; "
503 << " nMaterials= " << nMaterials
504 << " nComponents= " << nComponents
505 << " nCurrent= " << nCurrent
506 << G4endl;
507 }
508}
std::vector< G4State > states
std::vector< G4String > chFormulas
std::vector< G4bool > STP
std::vector< G4double > densities
std::vector< G4int > matIndex
std::vector< G4double > ionPotentials
static constexpr double cm3
static constexpr double g
static constexpr double eV

References atomCount, chFormulas, CLHEP::cm3, components, densities, elements, CLHEP::eV, fractions, CLHEP::g, G4cout, G4endl, indexes, ionPotentials, matIndex, names, nComponents, nCurrent, nMaterials, states, STP, verbose, and Z.

Referenced by BioChemicalMaterials(), ConstructNewIdealGasMaterial(), ConstructNewMaterial(), HepAndNuclearMaterials(), NistCompoundMaterials(), NistCompoundMaterials2(), NistSimpleMaterials(), and SpaceMaterials().

◆ BioChemicalMaterials()

void G4NistMaterialBuilder::BioChemicalMaterials ( )
private

Build biochemical materials used in G4DNA Applications. Materials are defined in bonded and unbonded forms according to the following schema: G4_MATERIAL: Molecule in its free state G4_DNA_MATERIAL: Molecule, considering atoms lost in bonding

Definition at line 1937 of file G4NistMaterialBuilder.cc.

1938{
1939 // BEGIN MATERIALS IN THEIR UNBONDED FORM
1940
1941 // G4_ADENINE, G4_GUANINE are defined in
1942 // G4NistMaterialBuilder::NistCompoundMaterials()
1943
1944 AddMaterial("G4_CYTOSINE", 1.55, 0, 72., 4);
1945 AddElementByAtomCount("H", 5);
1946 AddElementByAtomCount("C", 4);
1947 AddElementByAtomCount("N", 3);
1948 AddElementByAtomCount("O", 1);
1949
1950 AddMaterial("G4_THYMINE", 1.23, 0, 72., 4);
1951 AddElementByAtomCount("H", 6);
1952 AddElementByAtomCount("C", 5);
1953 AddElementByAtomCount("N", 2);
1954 AddElementByAtomCount("O", 2);
1955
1956 AddMaterial("G4_URACIL", 1.32, 0, 72., 4);
1957 AddElementByAtomCount("H", 4);
1958 AddElementByAtomCount("C", 4);
1959 AddElementByAtomCount("N", 2);
1960 AddElementByAtomCount("O", 2);
1961
1962 AddMaterial("G4_DEOXYRIBOSE", 1, 0, 72, 3);
1963 AddElementByAtomCount("H", 10);
1964 AddElementByAtomCount("C", 5);
1965 AddElementByAtomCount("O", 3);
1966
1967 // END UNBONDED MATERIALS / BEGIN BONDED MATERIALS
1968
1969 // Deoxyribose loses 3 OH groups in bonding to bond with PO4 and a base pair
1970 AddMaterial("G4_DNA_DEOXYRIBOSE", 1, 0, 72., 3);
1971 AddElementByAtomCount("H", 7);
1972 AddElementByAtomCount("C", 5);
1973 AddElementByAtomCount("O", 1);
1974
1975 // Typically there are no H atoms considered in the Phosphate group
1976 AddMaterial("G4_DNA_PHOSPHATE", 1, 0, 72., 2);
1977 AddElementByAtomCount("P", 1);
1978 AddElementByAtomCount("O", 4);
1979
1980 // GATCU bases bonded to a deoxyribose (they drop one H)
1981 AddMaterial("G4_DNA_ADENINE", 1, 0, 72., 3);
1982 AddElementByAtomCount("H",4 );
1983 AddElementByAtomCount("C",5 );
1984 AddElementByAtomCount("N",5 );
1985
1986 AddMaterial("G4_DNA_GUANINE", 1, 0, 72., 4);
1987 AddElementByAtomCount("H",4 );
1988 AddElementByAtomCount("C",5 );
1989 AddElementByAtomCount("N",5 );
1990 AddElementByAtomCount("O",1 );
1991
1992 AddMaterial("G4_DNA_CYTOSINE", 1, 0, 72., 4);
1993 AddElementByAtomCount("H", 4);
1994 AddElementByAtomCount("C", 4);
1995 AddElementByAtomCount("N", 3);
1996 AddElementByAtomCount("O", 1);
1997
1998 AddMaterial("G4_DNA_THYMINE", 1, 0, 72., 4);
1999 AddElementByAtomCount("H", 5);
2000 AddElementByAtomCount("C", 5);
2001 AddElementByAtomCount("N", 2);
2002 AddElementByAtomCount("O", 2);
2003
2004 AddMaterial("G4_DNA_URACIL", 1, 0, 72., 4);
2005 AddElementByAtomCount("H", 3);
2006 AddElementByAtomCount("C", 4);
2007 AddElementByAtomCount("N", 2);
2008 AddElementByAtomCount("O", 2);
2009
2010 // END BONDED MATERIALS
2011
2012 /*
2013 // Complete 70 kg body of adult men from en.wikipedia.org/ see References there
2014 AddMaterial("G4_BODY", 1.8, 0, 78, 12);
2015 AddElementByWeightFraction( 8, 0.650);
2016 AddElementByWeightFraction( 6, 0.180);
2017 AddElementByWeightFraction( 1, 0.100);
2018 AddElementByWeightFraction( 7, 0.030);
2019 AddElementByWeightFraction(20, 0.015);
2020 AddElementByWeightFraction(15, 0.010);
2021 AddElementByWeightFraction(19, 0.0025);
2022 AddElementByWeightFraction(16, 0.0025);
2023 AddElementByWeightFraction(11, 0.0015);
2024 AddElementByWeightFraction(17, 0.0015);
2025 AddElementByWeightFraction(12, 0.0005);
2026 AddElementByWeightFraction(26, 0.00006);
2027 */
2028}
void AddMaterial(const G4String &nameMat, G4double dens, G4int Z=0, G4double pot=0.0, G4int ncomp=1, G4State=kStateSolid, G4bool stp=true)
void AddElementByAtomCount(G4int Z, G4int)

References AddElementByAtomCount(), and AddMaterial().

Referenced by Initialise().

◆ BuildMaterial()

G4Material * G4NistMaterialBuilder::BuildMaterial ( G4int  idx)
private

Definition at line 173 of file G4NistMaterialBuilder.cc.

174{
175 if (verbose > 1) {
176 G4cout << "G4NistMaterialBuilder: BuildMaterial #" << i
177 << G4endl;
178 }
179 G4Material* mat = 0;
180 if(i >= nMaterials) { return mat; }
181
182 G4int nc = components[i];
183
184 // Check gas parameters:
185 // defaults may be changed via AddGas() method
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 // liquids
201 // } else if( !STP[i] ) { t = 0.0; }
202
203 mat = new G4Material(names[i],densities[i],nc,states[i],t,p);
204
205 if (verbose>1) { G4cout << "New material nComponents= " << nc << G4endl; }
206 if (nc > 0) {
207 G4int idx = indexes[i];
208 for (G4int j=0; j<nc; ++j) {
209 G4int Z = elements[idx+j];
211 if(!el) {
212 G4cout << "G4NistMaterialBuilder::BuildMaterial:"
213 << " ERROR: elements Z= " << Z << " is not found"
214 << " for material " << names[i]
215 << G4endl;
216 G4Exception("G4NistMaterialBuilder::BuildMaterial()", "mat103",
217 FatalException, "Failed to construct material");
218 return 0;
219 }
220 if(atomCount[i]) {
221 mat->AddElement(el,G4lrint(fractions[idx+j]));
222 } else {
223 mat->AddElement(el,fractions[idx+j]);
224 }
225 }
226 }
227
228 // Ionisation potential can be defined via NIST DB or
229 // Chemical Formula (ICRU37 Report data)
230 G4IonisParamMat* ion = mat->GetIonisation();
231 G4double exc0 = ion->GetMeanExcitationEnergy();
232 G4double exc1 = exc0;
233 if(chFormulas[i] != "") {
235 exc1 = ion->FindMeanExcitationEnergy(mat);
236 }
237 // If exists, NIST DB data always overwrites other data
238 if(ionPotentials[i] > 0.0) { exc1 = ionPotentials[i]; }
239 if(exc0 != exc1) { ion->SetMeanExcitationEnergy(exc1); }
240
241 // Index in Material Table
242 matIndex[i] = mat->GetIndex();
243 return mat;
244}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
@ kStateGas
Definition: G4Material.hh:111
static const G4double NTP_Temperature
Definition: G4Material.hh:113
G4double GetMeanExcitationEnergy() const
G4double FindMeanExcitationEnergy(const G4Material *) const
void SetMeanExcitationEnergy(G4double value)
G4IonisParamMat * GetIonisation() const
Definition: G4Material.hh:222
void AddElement(G4Element *elm, G4int nAtoms)
Definition: G4Material.hh:157
void SetChemicalFormula(const G4String &chF)
Definition: G4Material.cc:632
size_t GetIndex() const
Definition: G4Material.hh:256
G4Element * FindOrBuildElement(G4int Z, G4bool buildIsotopes=true)
int STP_Pressure
Definition: hepunit.py:302
int G4lrint(double ad)
Definition: templates.hh:134

References G4Material::AddElement(), atomCount, chFormulas, components, densities, elements, elmBuilder, FatalException, G4IonisParamMat::FindMeanExcitationEnergy(), G4NistElementBuilder::FindOrBuildElement(), fractions, G4cout, G4endl, G4Exception(), G4lrint(), gasPressure, gasTemperature, G4Material::GetIndex(), G4Material::GetIonisation(), G4IonisParamMat::GetMeanExcitationEnergy(), idxGas, indexes, ionPotentials, kStateGas, matIndex, names, nMaterials, G4InuclParticleNames::nn, NTP_Temperature, G4Material::SetChemicalFormula(), G4IonisParamMat::SetMeanExcitationEnergy(), states, source.hepunit::STP_Pressure, verbose, and Z.

Referenced by BuildNistMaterial(), ConstructNewIdealGasMaterial(), and ConstructNewMaterial().

◆ BuildNistMaterial()

G4Material * G4NistMaterialBuilder::BuildNistMaterial ( const G4String matname,
G4bool  warning 
)
private

Definition at line 124 of file G4NistMaterialBuilder.cc.

126{
127 G4Material* mat = nullptr;
128 // Check if name inside DB
129 for (G4int i=0; i<nMaterials; ++i) {
130
131 if (name == names[i]) {
132#ifdef G4MULTITHREADED
133 G4MUTEXLOCK(&nistMaterialMutex);
134#endif
135 if(matIndex[i] == -1) {
136 // Build new Nist material
137 mat = BuildMaterial(i);
138 } else {
139 // Nist material was already built
140 const G4MaterialTable* theMaterialTable =
142 mat = (*theMaterialTable)[matIndex[i]];
143 }
144#ifdef G4MULTITHREADED
145 G4MUTEXUNLOCK(&nistMaterialMutex);
146#endif
147 return mat;
148 }
149 }
150
151 if( (verbose == 1 && warning) || verbose > 1) {
152 G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial WARNING:"
153 << " material <" << name
154 << "> is not found." << G4endl;
155 }
156 return mat;
157}
std::vector< G4Material * > G4MaterialTable
#define G4MUTEXLOCK(mutex)
Definition: G4Threading.hh:251
#define G4MUTEXUNLOCK(mutex)
Definition: G4Threading.hh:254
static G4MaterialTable * GetMaterialTable()
Definition: G4Material.cc:672
G4Material * BuildMaterial(G4int idx)

References BuildMaterial(), G4cout, G4endl, G4MUTEXLOCK, G4MUTEXUNLOCK, G4Material::GetMaterialTable(), matIndex, G4InuclParticleNames::name(), names, nMaterials, and verbose.

Referenced by FindOrBuildMaterial(), and FindOrBuildSimpleMaterial().

◆ ConstructNewGasMaterial()

G4Material * G4NistMaterialBuilder::ConstructNewGasMaterial ( const G4String name,
const G4String nameDB,
G4double  temp,
G4double  pres 
)

Definition at line 347 of file G4NistMaterialBuilder.cc.

352{
353 // Material name is in DB
355 if(mat) {
356 G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial:"
357 << " WARNING: the material <" << name
358 << "> already exists." << G4endl;
359 G4cout << " New material will NOT be built!"
360 << G4endl;
361 return mat;
362 }
363
364 G4Material* bmat = FindOrBuildMaterial(nameDB);
365 if(!bmat) {
366 G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial:"
367 << " WARNING: the Name <" << nameDB
368 << "> is NOT in the database: no new gas will be constructed."
369 << G4endl;
370 return 0;
371 }
372 if(bmat->GetState() != kStateGas) {
373 G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial:"
374 << " WARNING: <" << nameDB
375 << "> is NOT a gas - no new gas will be constructed."
376 << G4endl;
377 return 0;
378 }
379
380 G4double dens = bmat->GetDensity()*pres*bmat->GetTemperature()
381 /(temp*bmat->GetPressure());
382 mat = new G4Material(name,dens,bmat,kStateGas,temp,pres);
383
384 if (verbose>1) {
385 G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial: done" << G4endl;
386 G4cout << &mat << G4endl;
387 }
388 return mat;
389}
G4double GetPressure() const
Definition: G4Material.hh:179
G4double GetDensity() const
Definition: G4Material.hh:176
G4State GetState() const
Definition: G4Material.hh:177
G4double GetTemperature() const
Definition: G4Material.hh:178
G4Material * FindOrBuildMaterial(const G4String &name, G4bool warning=true)

References FindOrBuildMaterial(), G4cout, G4endl, G4Material::GetDensity(), G4Material::GetPressure(), G4Material::GetState(), G4Material::GetTemperature(), kStateGas, G4InuclParticleNames::name(), and verbose.

Referenced by G4NistManager::ConstructNewGasMaterial().

◆ ConstructNewIdealGasMaterial()

G4Material * G4NistMaterialBuilder::ConstructNewIdealGasMaterial ( const G4String name,
const std::vector< G4String > &  elm,
const std::vector< G4int > &  nbAtoms,
G4double  temp = NTP_Temperature,
G4double  pressure = CLHEP::STP_Pressure 
)

Definition at line 393 of file G4NistMaterialBuilder.cc.

399{
400 G4State state = kStateGas;
401
402 // Material is in DB
404 if(mat) {
405 G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
406 << " WARNING: the material <" << name
407 << "> already exists." << G4endl;
408 G4cout << " New material will NOT be built!"
409 << G4endl;
410 return mat;
411 }
412
413 // Material not in DB
414 G4int els = elm.size();
415 if(els == 0) {
416 G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
417 << " WARNING: empty list of elements for " << name
418 << G4endl;
419 G4cout << " New material will NOT be built!"
420 << G4endl;
421 return 0;
422 }
423
424 // add parameters of material into internal vectors
425 // density in g/cm3, mean ionisation potential is not defined
426 G4bool stp = true;
427 if(temp != NTP_Temperature || pres != CLHEP::STP_Pressure)
428 { stp = false; }
429
430 G4double massPerMole = 0.;
431
432 G4int Z = 0;
433 for (G4int i=0; i<els; ++i) {
434 Z = elmBuilder->GetZ(elm[i]);
435 massPerMole += nbAtoms[i]*elmBuilder->GetAtomicMassAmu(Z)*CLHEP::amu_c2;
436 }
437
438 G4double dens = massPerMole/(CLHEP::Avogadro*CLHEP::k_Boltzmann*temp/pres);
439
440 if (els == 1) { AddMaterial(name,dens,Z,0.,els,state,stp); }
441 else {
442 AddMaterial(name,dens,0,0.,els,state,stp);
443 for (G4int i=0; i<els; ++i) {
444 AddElementByAtomCount(elmBuilder->GetZ(elm[i]), nbAtoms[i]);
445 }
446 }
447
448 if(!stp) { AddGas(name,temp,pres); }
449
450 return BuildMaterial(nMaterials-1);
451}
G4State
Definition: G4Material.hh:111
bool G4bool
Definition: G4Types.hh:86
G4double GetAtomicMassAmu(const G4String &symb) const
void AddGas(const G4String &nameMat, G4double T, G4double P)
static constexpr double amu_c2
static constexpr double STP_Pressure
static constexpr double k_Boltzmann
static constexpr double Avogadro

References AddElementByAtomCount(), AddGas(), AddMaterial(), CLHEP::amu_c2, CLHEP::Avogadro, BuildMaterial(), elmBuilder, FindOrBuildMaterial(), G4cout, G4endl, G4NistElementBuilder::GetAtomicMassAmu(), G4NistElementBuilder::GetZ(), CLHEP::k_Boltzmann, kStateGas, G4InuclParticleNames::name(), nMaterials, NTP_Temperature, CLHEP::STP_Pressure, and Z.

Referenced by G4NistManager::ConstructNewIdealGasMaterial().

◆ ConstructNewMaterial() [1/2]

G4Material * G4NistMaterialBuilder::ConstructNewMaterial ( const G4String name,
const std::vector< G4String > &  elm,
const std::vector< G4double > &  weight,
G4double  dens,
G4State  state = kStateSolid,
G4double  temp = NTP_Temperature,
G4double  pressure = CLHEP::STP_Pressure 
)

Definition at line 298 of file G4NistMaterialBuilder.cc.

306{
307 // Material is in DB
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) {
340 }
341
342 return BuildMaterial(nMaterials-1);
343}

References AddElementByWeightFraction(), AddGas(), AddMaterial(), BuildMaterial(), CLHEP::cm3, elmBuilder, FindOrBuildMaterial(), CLHEP::g, G4cout, G4endl, G4NistElementBuilder::GetZ(), kStateGas, G4InuclParticleNames::name(), nMaterials, NTP_Temperature, and CLHEP::STP_Pressure.

◆ ConstructNewMaterial() [2/2]

G4Material * G4NistMaterialBuilder::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 
)

Definition at line 248 of file G4NistMaterialBuilder.cc.

256{
257 // Material is in DB
259 if(mat) {
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 = 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 0;
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}

References AddElementByAtomCount(), AddGas(), AddMaterial(), BuildMaterial(), CLHEP::cm3, elmBuilder, FindOrBuildMaterial(), CLHEP::g, G4cout, G4endl, G4NistElementBuilder::GetZ(), kStateGas, G4InuclParticleNames::name(), nMaterials, NTP_Temperature, and CLHEP::STP_Pressure.

Referenced by G4NistManager::ConstructNewMaterial().

◆ DumpElm()

void G4NistMaterialBuilder::DumpElm ( G4int  i) const
private

Definition at line 605 of file G4NistMaterialBuilder.cc.

606{
607 G4cout << std::setw(2) << i << " "
608 << std::setw(6) << names[i]
609 << std::setw(14) << densities[i]*cm3/g
610 << std::setw(11) << ionPotentials[i]/eV
611 << G4endl;
612}
static constexpr double cm3
Definition: G4SIunits.hh:101
static constexpr double eV
Definition: G4SIunits.hh:201
static constexpr double g
Definition: G4SIunits.hh:168

References cm3, densities, eV, g, G4cout, G4endl, ionPotentials, and names.

Referenced by ListNistSimpleMaterials().

◆ DumpMix()

void G4NistMaterialBuilder::DumpMix ( G4int  i) const
private

Definition at line 616 of file G4NistMaterialBuilder.cc.

617{
618 G4int nc = components[i];
619 G4cout << std::setw(2) << nc << " "
620 << std::setw(26) << names[i] << " "
621 << std::setw(10) << densities[i]*cm3/g
622 << std::setw(10) << ionPotentials[i]/eV
623 << " " << chFormulas[i]
624 << G4endl;
625 if (nc > 1) {
626 G4int imin = indexes[i];
627 G4int imax = imin + nc;
628 for (G4int j=imin; j<imax; ++j) {
629 G4cout << std::setw(10) << elements[j] << std::setw(14) << fractions[j]
630 << G4endl;
631 }
632 }
633}

References chFormulas, cm3, components, densities, elements, eV, fractions, g, G4cout, G4endl, imax, indexes, ionPotentials, and names.

Referenced by ListBioChemicalMaterials(), ListHepMaterials(), ListNistCompoundMaterials(), and ListSpaceMaterials().

◆ FindMaterial()

G4Material * G4NistMaterialBuilder::FindMaterial ( const G4String name) const
inline

Definition at line 246 of file G4NistMaterialBuilder.hh.

247{
248 const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
249 G4Material* ptr = nullptr;
250 for(auto & mat : *theMaterialTable) {
251 if(name == mat->GetName()) {
252 ptr = mat;
253 break;
254 }
255 }
256 return ptr;
257}

References G4Material::GetMaterialTable(), and G4InuclParticleNames::name().

Referenced by G4NistManager::FindMaterial(), FindOrBuildMaterial(), and FindSimpleMaterial().

◆ FindOrBuildMaterial()

G4Material * G4NistMaterialBuilder::FindOrBuildMaterial ( const G4String name,
G4bool  warning = true 
)

Definition at line 104 of file G4NistMaterialBuilder.cc.

106{
107 if(verbose > 1) {
108 G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial "
109 << matname << G4endl;
110 }
111 G4String name = matname;
112 if("G4_NYLON-6/6" == matname) { name = "G4_NYLON-6-6"; }
113 else if(name == "G4_NYLON-6/10") { name = "G4_NYLON-6-10"; }
114
116 if(mat != nullptr) { return mat; }
117
118 mat = BuildNistMaterial(name, warning);
119 return mat;
120}
G4Material * BuildNistMaterial(const G4String &matname, G4bool warning)
G4Material * FindMaterial(const G4String &name) const

References BuildNistMaterial(), FindMaterial(), G4cout, G4endl, G4InuclParticleNames::name(), and verbose.

Referenced by ConstructNewGasMaterial(), ConstructNewIdealGasMaterial(), ConstructNewMaterial(), and G4NistManager::FindOrBuildMaterial().

◆ FindOrBuildSimpleMaterial()

G4Material * G4NistMaterialBuilder::FindOrBuildSimpleMaterial ( G4int  Z,
G4bool  warning 
)

Definition at line 162 of file G4NistMaterialBuilder.cc.

163{
165 if(mat == nullptr) {
166 mat = BuildNistMaterial(names[Z], warn);
167 }
168 return mat;
169}
G4Material * FindSimpleMaterial(G4int Z) const

References BuildNistMaterial(), FindSimpleMaterial(), names, and Z.

Referenced by G4NistManager::FindOrBuildSimpleMaterial().

◆ FindSimpleMaterial()

G4Material * G4NistMaterialBuilder::FindSimpleMaterial ( G4int  Z) const
inline

Definition at line 260 of file G4NistMaterialBuilder.hh.

261{
262 return (Z>0 && Z<nElementary) ? FindMaterial(names[Z]) : nullptr;
263}

References FindMaterial(), names, nElementary, and Z.

Referenced by FindOrBuildSimpleMaterial(), and G4NistManager::FindSimpleMaterial().

◆ GetMaterialNames()

const std::vector< G4String > & G4NistMaterialBuilder::GetMaterialNames ( ) const
inline

Definition at line 228 of file G4NistMaterialBuilder.hh.

229{
230 return names;
231}

References names.

Referenced by G4NistManager::GetNistMaterialNames().

◆ GetMeanIonisationEnergy()

G4double G4NistMaterialBuilder::GetMeanIonisationEnergy ( G4int  index) const
inline

Definition at line 234 of file G4NistMaterialBuilder.hh.

235{
236 return (index >= 0 && index < nMaterials) ? ionPotentials[index] : 10.0*index;
237}

References ionPotentials, and nMaterials.

Referenced by G4NistManager::GetMeanIonisationEnergy().

◆ GetNominalDensity()

G4double G4NistMaterialBuilder::GetNominalDensity ( G4int  index) const
inline

Definition at line 240 of file G4NistMaterialBuilder.hh.

241{
242 return (index >= 0 && index < nMaterials) ? densities[index] : 0.0;
243}

References densities, and nMaterials.

Referenced by G4NistManager::GetNominalDensity().

◆ HepAndNuclearMaterials()

void G4NistMaterialBuilder::HepAndNuclearMaterials ( )
private

Definition at line 1844 of file G4NistMaterialBuilder.cc.

1845{
1846 AddMaterial("G4_lH2", 0.0708, 1, 21.8, 1, kStateLiquid, false);
1847 AddMaterial("G4_lN2", 0.807, 7, 82., 1, kStateLiquid, false);
1848 AddMaterial("G4_lO2", 1.141, 8, 95., 1, kStateLiquid, false);
1849 AddMaterial("G4_lAr", 1.396 , 18, 188. , 1, kStateLiquid, false);
1850 AddMaterial("G4_lBr", 3.1028, 35, 343. , 1, kStateLiquid, false);
1851 AddMaterial("G4_lKr", 2.418 , 36, 352. , 1, kStateLiquid, false);
1852 AddMaterial("G4_lXe", 2.953 , 54, 482. , 1, kStateLiquid, false);
1853
1854 AddMaterial("G4_PbWO4", 8.28, 0, 0.0, 3);
1855 AddElementByAtomCount("O" , 4);
1856 AddElementByAtomCount("Pb", 1);
1857 AddElementByAtomCount("W" , 1);
1858
1860 AddMaterial("G4_Galactic", density, 1, 21.8, 1, kStateGas);
1861 AddGas("G4_Galactic",2.73*kelvin, 3.e-18*hep_pascal);
1862
1863 AddMaterial("G4_GRAPHITE_POROUS", 1.7, 6, 78.);
1864 chFormulas[nMaterials-1] = "Graphite";
1865
1866 // LUCITE is equal to plustiglass
1867 AddMaterial("G4_LUCITE", 1.19, 0, 74., 3);
1868 AddElementByWeightFraction( 1, 0.080538);
1869 AddElementByWeightFraction( 6, 0.599848);
1870 AddElementByWeightFraction( 8, 0.319614);
1871
1872 // SRIM-2008 materials
1873 AddMaterial("G4_BRASS", 8.52, 0, 0.0, 3);
1874 AddElementByAtomCount("Cu", 62);
1875 AddElementByAtomCount("Zn", 35);
1876 AddElementByAtomCount("Pb" , 3);
1877
1878 AddMaterial("G4_BRONZE", 8.82, 0, 0.0, 3);
1879 AddElementByAtomCount("Cu", 89);
1880 AddElementByAtomCount("Zn", 9);
1881 AddElementByAtomCount("Pb" , 2);
1882
1883 // parameters are taken from
1884 // http://www.azom.com/article.aspx?ArticleID=965
1885 AddMaterial("G4_STAINLESS-STEEL", 8.00, 0, 0.0, 3);
1886 AddElementByAtomCount("Fe", 74);
1887 AddElementByAtomCount("Cr", 18);
1888 AddElementByAtomCount("Ni" , 8);
1889
1890 AddMaterial("G4_CR39", 1.32, 0, 0.0, 3);
1891 AddElementByAtomCount("H", 18);
1892 AddElementByAtomCount("C", 12);
1893 AddElementByAtomCount("O", 7);
1894
1895 AddMaterial("G4_OCTADECANOL", 0.812, 0, 0.0, 3);
1896 AddElementByAtomCount("H", 38);
1897 AddElementByAtomCount("C", 18);
1898 AddElementByAtomCount("O", 1);
1899
1900 nHEP = nMaterials;
1901}
@ kStateLiquid
Definition: G4Material.hh:111
static constexpr double kelvin
Definition: G4SIunits.hh:274
static constexpr double hep_pascal
Definition: G4SIunits.hh:222
int universe_mean_density
Definition: hepunit.py:306

References AddElementByAtomCount(), AddElementByWeightFraction(), AddGas(), AddMaterial(), chFormulas, cm3, g, hep_pascal, kelvin, kStateGas, kStateLiquid, nHEP, nMaterials, and source.hepunit::universe_mean_density.

Referenced by Initialise().

◆ Initialise()

void G4NistMaterialBuilder::Initialise ( )
private

◆ ListBioChemicalMaterials()

void G4NistMaterialBuilder::ListBioChemicalMaterials ( ) const

Definition at line 592 of file G4NistMaterialBuilder.cc.

593{
594 G4cout << "=============================================================" << G4endl;
595 G4cout << "### Bio-Chemical Materials ##" << G4endl;
596 G4cout << "=============================================================" << G4endl;
597 G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl;
598 G4cout << "=============================================================" << G4endl;
599 for (G4int i=nSpace; i<nMaterials; ++i) {DumpMix(i);}
600 G4cout << "=============================================================" << G4endl;
601}

References DumpMix(), G4cout, G4endl, nMaterials, and nSpace.

Referenced by ListMaterials().

◆ ListHepMaterials()

void G4NistMaterialBuilder::ListHepMaterials ( ) const

Definition at line 568 of file G4NistMaterialBuilder.cc.

569{
570 G4cout << "=============================================================" << G4endl;
571 G4cout << "### HEP & Nuclear Materials ##" << G4endl;
572 G4cout << "=============================================================" << G4endl;
573 G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl;
574 G4cout << "=============================================================" << G4endl;
575 for (G4int i=nNIST; i<nHEP; ++i) {DumpMix(i);}
576}

References DumpMix(), G4cout, G4endl, nHEP, and nNIST.

Referenced by ListMaterials().

◆ ListMaterials()

void G4NistMaterialBuilder::ListMaterials ( const G4String mnam) const

Definition at line 520 of file G4NistMaterialBuilder.cc.

521{
522 if (mnam == "simple") { ListNistSimpleMaterials(); }
523 else if (mnam == "compound") { ListNistCompoundMaterials(); }
524 else if (mnam == "hep") { ListHepMaterials(); }
525 else if (mnam == "space") { ListSpaceMaterials(); }
526 else if (mnam == "bio") { ListBioChemicalMaterials(); }
527
528 else if (mnam == "all") {
534
535 } else {
536 G4cout << "### G4NistMaterialBuilder::ListMaterials: Warning "
537 << mnam << " list is not known." << G4endl;
538 }
539}

References G4cout, G4endl, ListBioChemicalMaterials(), ListHepMaterials(), ListNistCompoundMaterials(), ListNistSimpleMaterials(), and ListSpaceMaterials().

Referenced by Initialise(), and G4NistManager::ListMaterials().

◆ ListNistCompoundMaterials()

void G4NistMaterialBuilder::ListNistCompoundMaterials ( ) const

Definition at line 555 of file G4NistMaterialBuilder.cc.

556{
557 G4cout << "=============================================================" << G4endl;
558 G4cout << "### Compound Materials from the NIST Data Base ##" << G4endl;
559 G4cout << "=============================================================" << G4endl;
560 G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl;
561 G4cout << "=============================================================" << G4endl;
562 for (G4int i=nElementary; i<nNIST; ++i) {DumpMix(i);}
563 DumpMix(0);
564}

References DumpMix(), G4cout, G4endl, nElementary, and nNIST.

Referenced by ListMaterials().

◆ ListNistSimpleMaterials()

void G4NistMaterialBuilder::ListNistSimpleMaterials ( ) const

Definition at line 543 of file G4NistMaterialBuilder.cc.

544{
545 G4cout << "=======================================================" << G4endl;
546 G4cout << "### Simple Materials from the NIST Data Base ###" << G4endl;
547 G4cout << "=======================================================" << G4endl;
548 G4cout << " Z Name density(g/cm^3) I(eV) " << G4endl;
549 G4cout << "=======================================================" << G4endl;
550 for (G4int i=1; i<nElementary; ++i) {DumpElm(i);}
551}

References DumpElm(), G4cout, G4endl, and nElementary.

Referenced by ListMaterials().

◆ ListSpaceMaterials()

void G4NistMaterialBuilder::ListSpaceMaterials ( ) const

Definition at line 580 of file G4NistMaterialBuilder.cc.

581{
582 G4cout << "=============================================================" << G4endl;
583 G4cout << "### Space ISS Materials ##" << G4endl;
584 G4cout << "=============================================================" << G4endl;
585 G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl;
586 G4cout << "=============================================================" << G4endl;
587 for (G4int i=nHEP; i<nSpace; ++i) {DumpMix(i);}
588}

References DumpMix(), G4cout, G4endl, nHEP, and nSpace.

Referenced by ListMaterials().

◆ NistCompoundMaterials()

void G4NistMaterialBuilder::NistCompoundMaterials ( )
private

Definition at line 836 of file G4NistMaterialBuilder.cc.

837{
838 AddMaterial("G4_A-150_TISSUE", 1.127, 0, 65.1, 6);
839 AddElementByWeightFraction( 1, 0.101327);
840 AddElementByWeightFraction( 6, 0.775501);
841 AddElementByWeightFraction( 7, 0.035057);
842 AddElementByWeightFraction( 8, 0.052316);
843 AddElementByWeightFraction( 9, 0.017422);
844 AddElementByWeightFraction(20, 0.018378);
845
846 AddMaterial("G4_ACETONE", 0.7899, 0, 64.2, 3);
847 AddElementByAtomCount("C" , 3);
848 AddElementByAtomCount("H" , 6);
849 AddElementByAtomCount("O" , 1);
850
851 AddMaterial("G4_ACETYLENE", 0.0010967, 0, 58.2, 2, kStateGas);
852 AddElementByAtomCount("C" , 2);
853 AddElementByAtomCount("H" , 2);
854
855 AddMaterial("G4_ADENINE", 1.6/*1.35*/, 0, 71.4, 3);
856 AddElementByAtomCount("C" , 5);
857 AddElementByAtomCount("H" , 5);
858 AddElementByAtomCount("N" , 5);
859
860 AddMaterial("G4_ADIPOSE_TISSUE_ICRP", 0.95, 0, 63.2, 7);
868
869 AddMaterial("G4_AIR", 0.00120479, 0, 85.7, 4, kStateGas);
870 AddElementByWeightFraction( 6, 0.000124);
871 AddElementByWeightFraction( 7, 0.755267);
872 AddElementByWeightFraction( 8, 0.231781);
873 AddElementByWeightFraction(18, 0.012827);
874
875 AddMaterial("G4_ALANINE", 1.42, 0, 71.9, 4);
876 AddElementByAtomCount("C" , 3);
877 AddElementByAtomCount("H" , 7);
878 AddElementByAtomCount("N" , 1);
879 AddElementByAtomCount("O" , 2);
880
881 AddMaterial("G4_ALUMINUM_OXIDE", 3.97, 0, 145.2, 2);
882 AddElementByAtomCount("Al", 2);
883 AddElementByAtomCount("O" , 3);
884 chFormulas[nMaterials-1] = "Al_2O_3";
885
886 AddMaterial("G4_AMBER", 1.1, 0, 63.2, 3);
887 AddElementByWeightFraction( 1, 0.10593 );
888 AddElementByWeightFraction( 6, 0.788973);
889 AddElementByWeightFraction( 8, 0.105096);
890
891 AddMaterial("G4_AMMONIA", 0.000826019, 0, 53.7, 2, kStateGas);
892 AddElementByAtomCount("N" , 1);
893 AddElementByAtomCount("H" , 3);
894
895 AddMaterial("G4_ANILINE", 1.0235, 0, 66.2, 3);
896 AddElementByAtomCount("C" , 6);
897 AddElementByAtomCount("H" , 7);
898 AddElementByAtomCount("N" , 1);
899
900 AddMaterial("G4_ANTHRACENE", 1.283, 0, 69.5, 2);
901 AddElementByAtomCount("C" , 14);
902 AddElementByAtomCount("H" , 10);
903
904 AddMaterial("G4_B-100_BONE", 1.45, 0, 85.9, 6);
905 AddElementByWeightFraction( 1, 0.065471);
906 AddElementByWeightFraction( 6, 0.536945);
907 AddElementByWeightFraction( 7, 0.0215 );
908 AddElementByWeightFraction( 8, 0.032085);
909 AddElementByWeightFraction( 9, 0.167411);
910 AddElementByWeightFraction(20, 0.176589);
911
912 AddMaterial("G4_BAKELITE", 1.25, 0, 72.4, 3);
913 AddElementByWeightFraction( 1, 0.057441);
914 AddElementByWeightFraction( 6, 0.774591);
915 AddElementByWeightFraction( 8, 0.167968);
916
917 AddMaterial("G4_BARIUM_FLUORIDE", 4.89 ,0, 375.9, 2);
918 AddElementByAtomCount("Ba", 1);
919 AddElementByAtomCount("F" , 2);
920
921 AddMaterial("G4_BARIUM_SULFATE", 4.5, 0, 285.7, 3);
922 AddElementByAtomCount("Ba", 1);
923 AddElementByAtomCount("S" , 1);
924 AddElementByAtomCount("O" , 4);
925
926 AddMaterial("G4_BENZENE", 0.87865, 0, 63.4, 2);
927 AddElementByAtomCount("C" , 6);
928 AddElementByAtomCount("H" , 6);
929
930 AddMaterial("G4_BERYLLIUM_OXIDE", 3.01, 0, 93.2, 2);
931 AddElementByAtomCount("Be", 1);
932 AddElementByAtomCount("O" , 1);
933
934 AddMaterial("G4_BGO", 7.13, 0, 534.1, 3);
935 AddElementByAtomCount("Bi", 4);
936 AddElementByAtomCount("Ge", 3);
937 AddElementByAtomCount("O" , 12);
938
939 AddMaterial("G4_BLOOD_ICRP", 1.06, 0, 75.2, 10);
950
951 AddMaterial("G4_BONE_COMPACT_ICRU", 1.85, 0, 91.9, 8);
960
961 // Sceleton Cortical bone for Adult ICRU 46
962 AddMaterial("G4_BONE_CORTICAL_ICRP", 1.92, 0, 110, 9);
972
973 AddMaterial("G4_BORON_CARBIDE", 2.52, 0, 84.7, 2);
974 AddElementByAtomCount("B" , 4);
975 AddElementByAtomCount("C" , 1);
976
977 AddMaterial("G4_BORON_OXIDE", 1.812, 0, 99.6, 2);
978 AddElementByAtomCount("B" , 2);
979 AddElementByAtomCount("O" , 3);
980
981 AddMaterial("G4_BRAIN_ICRP", 1.04, 0, 73.3, 9);
991
992 AddMaterial("G4_BUTANE", 0.00249343, 0, 48.3, 2, kStateGas);
993 AddElementByAtomCount("C" , 4);
994 AddElementByAtomCount("H" , 10);
995
996 AddMaterial("G4_N-BUTYL_ALCOHOL", 0.8098, 0, 59.9, 3);
997 AddElementByAtomCount("C" , 4);
998 AddElementByAtomCount("H" , 10);
999 AddElementByAtomCount("O" , 1);
1000
1001 AddMaterial("G4_C-552", 1.76, 0, 86.8, 5);
1002 AddElementByWeightFraction( 1, 0.02468 );
1003 AddElementByWeightFraction( 6, 0.50161 );
1004 AddElementByWeightFraction( 8, 0.004527);
1005 AddElementByWeightFraction( 9, 0.465209);
1006 AddElementByWeightFraction(14, 0.003973);
1007
1008 AddMaterial("G4_CADMIUM_TELLURIDE", 6.2, 0, 539.3, 2);
1009 AddElementByAtomCount("Cd", 1);
1010 AddElementByAtomCount("Te", 1);
1011
1012 AddMaterial("G4_CADMIUM_TUNGSTATE", 7.9, 0, 468.3, 3);
1013 AddElementByAtomCount("Cd", 1);
1014 AddElementByAtomCount("W" , 1);
1015 AddElementByAtomCount("O" , 4);
1016
1017 AddMaterial("G4_CALCIUM_CARBONATE", 2.8, 0, 136.4, 3);
1018 AddElementByAtomCount("Ca", 1);
1019 AddElementByAtomCount("C" , 1);
1020 AddElementByAtomCount("O" , 3);
1021
1022 AddMaterial("G4_CALCIUM_FLUORIDE", 3.18, 0, 166., 2);
1023 AddElementByAtomCount("Ca", 1);
1024 AddElementByAtomCount("F" , 2);
1025
1026 AddMaterial("G4_CALCIUM_OXIDE", 3.3, 0, 176.1, 2);
1027 AddElementByAtomCount("Ca", 1);
1028 AddElementByAtomCount("O" , 1);
1029
1030 AddMaterial("G4_CALCIUM_SULFATE", 2.96, 0, 152.3, 3);
1031 AddElementByAtomCount("Ca", 1);
1032 AddElementByAtomCount("S" , 1);
1033 AddElementByAtomCount("O" , 4);
1034
1035 AddMaterial("G4_CALCIUM_TUNGSTATE", 6.062, 0, 395., 3);
1036 AddElementByAtomCount("Ca", 1);
1037 AddElementByAtomCount("W" , 1);
1038 AddElementByAtomCount("O" , 4);
1039
1040 AddMaterial("G4_CARBON_DIOXIDE", 0.00184212, 0, 85., 2, kStateGas);
1041 AddElementByAtomCount("C" , 1);
1042 AddElementByAtomCount("O" , 2);
1043 chFormulas[nMaterials-1] = "CO_2";
1044
1045 AddMaterial("G4_CARBON_TETRACHLORIDE", 1.594, 0, 166.3, 2);
1046 AddElementByAtomCount("C" , 1);
1047 AddElementByAtomCount("Cl", 4);
1048
1049 AddMaterial("G4_CELLULOSE_CELLOPHANE", 1.42, 0, 77.6, 3);
1050 AddElementByAtomCount("C" , 6);
1051 AddElementByAtomCount("H" , 10);
1052 AddElementByAtomCount("O" , 5);
1053
1054 AddMaterial("G4_CELLULOSE_BUTYRATE", 1.2, 0, 74.6, 3);
1055 AddElementByWeightFraction( 1, 0.067125);
1056 AddElementByWeightFraction( 6, 0.545403);
1057 AddElementByWeightFraction( 8, 0.387472);
1058
1059 AddMaterial("G4_CELLULOSE_NITRATE", 1.49, 0, 87., 4);
1060 AddElementByWeightFraction( 1, 0.029216);
1061 AddElementByWeightFraction( 6, 0.271296);
1062 AddElementByWeightFraction( 7, 0.121276);
1063 AddElementByWeightFraction( 8, 0.578212);
1064
1065 AddMaterial("G4_CERIC_SULFATE", 1.03, 0, 76.7, 5);
1066 AddElementByWeightFraction( 1, 0.107596);
1067 AddElementByWeightFraction( 7, 0.0008 );
1068 AddElementByWeightFraction( 8, 0.874976);
1069 AddElementByWeightFraction(16, 0.014627);
1070 AddElementByWeightFraction(58, 0.002001);
1071
1072 AddMaterial("G4_CESIUM_FLUORIDE", 4.115, 0, 440.7, 2);
1073 AddElementByAtomCount("Cs", 1);
1074 AddElementByAtomCount("F" , 1);
1075
1076 AddMaterial("G4_CESIUM_IODIDE", 4.51, 0, 553.1, 2);
1077 AddElementByAtomCount("Cs", 1);
1078 AddElementByAtomCount("I" , 1);
1079
1080 AddMaterial("G4_CHLOROBENZENE", 1.1058, 0, 89.1, 3);
1081 AddElementByAtomCount("C" , 6);
1082 AddElementByAtomCount("H" , 5);
1083 AddElementByAtomCount("Cl", 1);
1084
1085 AddMaterial("G4_CHLOROFORM", 1.4832, 0, 156., 3);
1086 AddElementByAtomCount("C" , 1);
1087 AddElementByAtomCount("H" , 1);
1088 AddElementByAtomCount("Cl", 3);
1089
1090 AddMaterial("G4_CONCRETE", 2.3, 0, 135.2, 10);
1091 AddElementByWeightFraction( 1, 0.01 );
1092 AddElementByWeightFraction( 6, 0.001 );
1093 AddElementByWeightFraction( 8, 0.529107);
1094 AddElementByWeightFraction(11, 0.016 );
1095 AddElementByWeightFraction(12, 0.002 );
1096 AddElementByWeightFraction(13, 0.033872);
1097 AddElementByWeightFraction(14, 0.337021);
1098 AddElementByWeightFraction(19, 0.013 );
1099 AddElementByWeightFraction(20, 0.044 );
1100 AddElementByWeightFraction(26, 0.014 );
1101
1102 AddMaterial("G4_CYCLOHEXANE", 0.779, 0, 56.4, 2);
1103 AddElementByAtomCount("C" , 6);
1104 AddElementByAtomCount("H" , 12);
1105
1106 AddMaterial("G4_1,2-DICHLOROBENZENE", 1.3048, 0, 106.5, 3);
1107 AddElementByAtomCount("C" , 6);
1108 AddElementByAtomCount("H" , 4);
1109 AddElementByAtomCount("Cl", 2);
1110
1111 AddMaterial("G4_DICHLORODIETHYL_ETHER", 1.2199, 0, 103.3, 4);
1112 AddElementByAtomCount("C" , 4);
1113 AddElementByAtomCount("H" , 8);
1114 AddElementByAtomCount("O" , 1);
1115 AddElementByAtomCount("Cl", 2);
1116
1117 AddMaterial("G4_1,2-DICHLOROETHANE", 1.2351, 0, 111.9, 3);
1118 AddElementByAtomCount("C" , 2);
1119 AddElementByAtomCount("H" , 4);
1120 AddElementByAtomCount("Cl", 2);
1121
1122 AddMaterial("G4_DIETHYL_ETHER", 0.71378, 0, 60., 3);
1123 AddElementByAtomCount("C" , 4);
1124 AddElementByAtomCount("H" , 10);
1125 AddElementByAtomCount("O" , 1);
1126
1127 AddMaterial("G4_N,N-DIMETHYL_FORMAMIDE", 0.9487, 0, 66.6, 4);
1128 AddElementByAtomCount("C" , 3);
1129 AddElementByAtomCount("H" , 7);
1130 AddElementByAtomCount("N" , 1);
1131 AddElementByAtomCount("O" , 1);
1132
1133 AddMaterial("G4_DIMETHYL_SULFOXIDE", 1.1014, 0, 98.6, 4);
1134 AddElementByAtomCount("C" , 2);
1135 AddElementByAtomCount("H" , 6);
1136 AddElementByAtomCount("O" , 1);
1137 AddElementByAtomCount("S" , 1);
1138
1139 AddMaterial("G4_ETHANE", 0.00125324, 0, 45.4, 2, kStateGas);
1140 AddElementByAtomCount("C" , 2);
1141 AddElementByAtomCount("H" , 6);
1142
1143 AddMaterial("G4_ETHYL_ALCOHOL", 0.7893, 0, 62.9, 3);
1144 AddElementByAtomCount("C" , 2);
1145 AddElementByAtomCount("H" , 6);
1146 AddElementByAtomCount("O" , 1);
1147
1148 AddMaterial("G4_ETHYL_CELLULOSE", 1.13, 0, 69.3, 3);
1149 AddElementByWeightFraction( 1, 0.090027);
1150 AddElementByWeightFraction( 6, 0.585182);
1151 AddElementByWeightFraction( 8, 0.324791);
1152
1153 AddMaterial("G4_ETHYLENE", 0.00117497, 0, 50.7, 2, kStateGas);
1154 AddElementByAtomCount("C" , 2);
1155 AddElementByAtomCount("H" , 4);
1156
1157 AddMaterial("G4_EYE_LENS_ICRP", 1.07, 0, 73.3, 8);
1158 AddElementByWeightFraction( 1, 0.096);
1159 AddElementByWeightFraction( 6, 0.195);
1160 AddElementByWeightFraction( 7, 0.057);
1161 AddElementByWeightFraction( 8, 0.646);
1162 AddElementByWeightFraction(11, 0.001);
1163 AddElementByWeightFraction(15, 0.001);
1164 AddElementByWeightFraction(16, 0.003);
1165 AddElementByWeightFraction(17, 0.001);
1166
1167 AddMaterial("G4_FERRIC_OXIDE", 5.2, 0, 227.3, 2);
1168 AddElementByAtomCount("Fe", 2);
1169 AddElementByAtomCount("O" , 3);
1170
1171 AddMaterial("G4_FERROBORIDE", 7.15, 0, 261., 2);
1172 AddElementByAtomCount("Fe", 1);
1173 AddElementByAtomCount("B" , 1);
1174
1175 AddMaterial("G4_FERROUS_OXIDE", 5.7, 0, 248.6, 2);
1176 AddElementByAtomCount("Fe", 1);
1177 AddElementByAtomCount("O" , 1);
1178
1179 AddMaterial("G4_FERROUS_SULFATE", 1.024, 0, 76.4, 7);
1180 AddElementByWeightFraction( 1, 0.108259);
1181 AddElementByWeightFraction( 7, 2.7e-05 );
1182 AddElementByWeightFraction( 8, 0.878636);
1183 AddElementByWeightFraction(11, 2.2e-05 );
1184 AddElementByWeightFraction(16, 0.012968);
1185 AddElementByWeightFraction(17, 3.4e-05 );
1186 AddElementByWeightFraction(26, 5.4e-05 );
1187
1188 AddMaterial("G4_FREON-12", 1.12, 0, 143., 3);
1189 AddElementByWeightFraction( 6, 0.099335);
1190 AddElementByWeightFraction( 9, 0.314247);
1191 AddElementByWeightFraction(17, 0.586418);
1192
1193 AddMaterial("G4_FREON-12B2", 1.8, 0, 284.9, 3);
1194 AddElementByWeightFraction( 6, 0.057245);
1195 AddElementByWeightFraction( 9, 0.181096);
1196 AddElementByWeightFraction(35, 0.761659);
1197
1198 AddMaterial("G4_FREON-13", 0.95, 0, 126.6, 3);
1199 AddElementByWeightFraction( 6, 0.114983);
1200 AddElementByWeightFraction( 9, 0.545622);
1201 AddElementByWeightFraction(17, 0.339396);
1202
1203 AddMaterial("G4_FREON-13B1", 1.5, 0, 210.5, 3);
1204 AddElementByAtomCount("C" , 1);
1205 AddElementByAtomCount("F" , 3);
1206 AddElementByAtomCount("Br", 1);
1207
1208 AddMaterial("G4_FREON-13I1", 1.8, 0, 293.5, 3);
1209 AddElementByWeightFraction( 6, 0.061309);
1210 AddElementByWeightFraction( 9, 0.290924);
1211 AddElementByWeightFraction(53, 0.647767);
1212
1213 AddMaterial("G4_GADOLINIUM_OXYSULFIDE", 7.44, 0, 493.3, 3);
1214 AddElementByAtomCount("Gd", 2);
1215 AddElementByAtomCount("O" , 2);
1216 AddElementByAtomCount("S" , 1);
1217
1218 AddMaterial("G4_GALLIUM_ARSENIDE", 5.31, 0, 384.9, 2);
1219 AddElementByAtomCount("Ga", 1);
1220 AddElementByAtomCount("As", 1);
1221
1222 AddMaterial("G4_GEL_PHOTO_EMULSION", 1.2914, 0, 74.8, 5);
1223 AddElementByWeightFraction( 1, 0.08118);
1224 AddElementByWeightFraction( 6, 0.41606);
1225 AddElementByWeightFraction( 7, 0.11124);
1226 AddElementByWeightFraction( 8, 0.38064);
1227 AddElementByWeightFraction(16, 0.01088);
1228
1229 AddMaterial("G4_Pyrex_Glass", 2.23, 0, 134., 6);
1230 AddElementByWeightFraction( 5, 0.040064);
1231 AddElementByWeightFraction( 8, 0.539562);
1232 AddElementByWeightFraction(11, 0.028191);
1233 AddElementByWeightFraction(13, 0.011644);
1234 AddElementByWeightFraction(14, 0.37722 );
1235 AddElementByWeightFraction(19, 0.003321);
1236
1237 AddMaterial("G4_GLASS_LEAD", 6.22, 0, 526.4, 5);
1238 AddElementByWeightFraction( 8, 0.156453);
1239 AddElementByWeightFraction(14, 0.080866);
1240 AddElementByWeightFraction(22, 0.008092);
1241 AddElementByWeightFraction(33, 0.002651);
1242 AddElementByWeightFraction(82, 0.751938);
1243
1244 AddMaterial("G4_GLASS_PLATE", 2.4, 0, 145.4, 4);
1245 AddElementByWeightFraction( 8, 0.4598 );
1246 AddElementByWeightFraction(11, 0.096441);
1247 AddElementByWeightFraction(14, 0.336553);
1248 AddElementByWeightFraction(20, 0.107205);
1249
1250 // AddMaterial("G4_GLUCOSE", 1.54, 0, 77.2, 3);
1251 // AddElementByWeightFraction( 1, 0.071204);
1252 // AddElementByWeightFraction( 6, 0.363652);
1253 // AddElementByWeightFraction( 8, 0.565144);
1254 // These weight fractions correspond to 0.90909 glucose + 0.09091 water
1255 // (in mass), not pure glucose. The density used is that of pure glucose!
1256 // M.Trocme & S.Seltzer
1257
1258 AddMaterial("G4_GLUTAMINE", 1.46, 0, 73.3, 4);
1259 AddElementByAtomCount("C" , 5);
1260 AddElementByAtomCount("H" , 10);
1261 AddElementByAtomCount("N" , 2);
1262 AddElementByAtomCount("O" , 3);
1263
1264 AddMaterial("G4_GLYCEROL", 1.2613, 0, 72.6, 3);
1265 AddElementByAtomCount("C" , 3);
1266 AddElementByAtomCount("H" , 8);
1267 AddElementByAtomCount("O" , 3);
1268
1269 AddMaterial("G4_GUANINE", 2.2/*1.58*/, 0, 75. ,4);
1270 AddElementByAtomCount("C" , 5);
1271 AddElementByAtomCount("H" , 5);
1272 AddElementByAtomCount("N" , 5);
1273 AddElementByAtomCount("O" , 1);
1274
1275 AddMaterial("G4_GYPSUM", 2.32, 0, 129.7, 4);
1276 AddElementByAtomCount("Ca", 1);
1277 AddElementByAtomCount("S" , 1);
1278 AddElementByAtomCount("O" , 6);
1279 AddElementByAtomCount("H" , 4);
1280
1281 AddMaterial("G4_N-HEPTANE", 0.68376, 0, 54.4, 2);
1282 AddElementByAtomCount("C" , 7);
1283 AddElementByAtomCount("H" , 16);
1284
1285 AddMaterial("G4_N-HEXANE", 0.6603, 0, 54., 2);
1286 AddElementByAtomCount("C" , 6);
1287 AddElementByAtomCount("H" , 14);
1288
1289 AddMaterial("G4_KAPTON", 1.42, 0, 79.6, 4);
1290 AddElementByAtomCount("C" , 22);
1291 AddElementByAtomCount("H" , 10);
1292 AddElementByAtomCount("N" , 2);
1293 AddElementByAtomCount("O" , 5);
1294
1295 AddMaterial("G4_LANTHANUM_OXYBROMIDE", 6.28, 0, 439.7, 3);
1296 AddElementByAtomCount("La", 1);
1297 AddElementByAtomCount("Br", 1);
1298 AddElementByAtomCount("O" , 1);
1299
1300 AddMaterial("G4_LANTHANUM_OXYSULFIDE", 5.86, 0, 421.2, 3);
1301 AddElementByAtomCount("La", 2);
1302 AddElementByAtomCount("O" , 2);
1303 AddElementByAtomCount("S" , 1);
1304
1305 AddMaterial("G4_LEAD_OXIDE", 9.53, 0, 766.7, 2);
1306 AddElementByWeightFraction( 8, 0.071682);
1307 AddElementByWeightFraction(82, 0.928318);
1308
1309 AddMaterial("G4_LITHIUM_AMIDE", 1.178, 0, 55.5, 3);
1310 AddElementByAtomCount("Li", 1);
1311 AddElementByAtomCount("N" , 1);
1312 AddElementByAtomCount("H" , 2);
1313
1314 AddMaterial("G4_LITHIUM_CARBONATE", 2.11, 0, 87.9, 3);
1315 AddElementByAtomCount("Li", 2);
1316 AddElementByAtomCount("C" , 1);
1317 AddElementByAtomCount("O" , 3);
1318
1319 AddMaterial("G4_LITHIUM_FLUORIDE", 2.635, 0, 94., 2);
1320 AddElementByAtomCount("Li", 1);
1321 AddElementByAtomCount("F" , 1);
1322
1323 AddMaterial("G4_LITHIUM_HYDRIDE", 0.82, 0, 36.5, 2);
1324 AddElementByAtomCount("Li", 1);
1325 AddElementByAtomCount("H" , 1);
1326
1327 AddMaterial("G4_LITHIUM_IODIDE", 3.494, 0, 485.1, 2);
1328 AddElementByAtomCount("Li", 1);
1329 AddElementByAtomCount("I" , 1);
1330
1331 AddMaterial("G4_LITHIUM_OXIDE", 2.013, 0, 73.6, 2);
1332 AddElementByAtomCount("Li", 2);
1333 AddElementByAtomCount("O" , 1);
1334
1335 AddMaterial("G4_LITHIUM_TETRABORATE", 2.44, 0, 94.6, 3);
1336 AddElementByAtomCount("Li", 2);
1337 AddElementByAtomCount("B" , 4);
1338 AddElementByAtomCount("O" , 7);
1339}

References AddElementByAtomCount(), AddElementByWeightFraction(), AddMaterial(), chFormulas, kStateGas, and nMaterials.

Referenced by Initialise().

◆ NistCompoundMaterials2()

void G4NistMaterialBuilder::NistCompoundMaterials2 ( )
private

Definition at line 1341 of file G4NistMaterialBuilder.cc.

1342{
1343 //Adult Lung congested
1344 AddMaterial("G4_LUNG_ICRP", 1.04, 0, 75.3, 9);
1345 AddElementByWeightFraction( 1, 0.105);
1346 AddElementByWeightFraction( 6, 0.083);
1347 AddElementByWeightFraction( 7, 0.023);
1348 AddElementByWeightFraction( 8, 0.779);
1349 AddElementByWeightFraction(11, 0.002);
1350 AddElementByWeightFraction(15, 0.001);
1351 AddElementByWeightFraction(16, 0.002);
1352 AddElementByWeightFraction(17, 0.003);
1353 AddElementByWeightFraction(19, 0.002);
1354
1355 AddMaterial("G4_M3_WAX", 1.05, 0, 67.9, 5);
1356 AddElementByWeightFraction( 1, 0.114318);
1357 AddElementByWeightFraction( 6, 0.655823);
1358 AddElementByWeightFraction( 8, 0.092183);
1359 AddElementByWeightFraction(12, 0.134792);
1360 AddElementByWeightFraction(20, 0.002883);
1361
1362 AddMaterial("G4_MAGNESIUM_CARBONATE", 2.958, 0, 118., 3);
1363 AddElementByAtomCount("Mg", 1);
1364 AddElementByAtomCount("C" , 1);
1365 AddElementByAtomCount("O" , 3);
1366
1367 AddMaterial("G4_MAGNESIUM_FLUORIDE", 3.0, 0, 134.3, 2);
1368 AddElementByAtomCount("Mg", 1);
1369 AddElementByAtomCount("F" , 2);
1370
1371 AddMaterial("G4_MAGNESIUM_OXIDE", 3.58, 0, 143.8, 2);
1372 AddElementByAtomCount("Mg", 1);
1373 AddElementByAtomCount("O" , 1);
1374
1375 AddMaterial("G4_MAGNESIUM_TETRABORATE", 2.53, 0, 108.3, 3);
1376 AddElementByAtomCount("Mg", 1);
1377 AddElementByAtomCount("B" , 4);
1378 AddElementByAtomCount("O" , 7);
1379
1380 AddMaterial("G4_MERCURIC_IODIDE", 6.36, 0, 684.5, 2);
1381 AddElementByAtomCount("Hg", 1);
1382 AddElementByAtomCount("I" , 2);
1383
1384 AddMaterial("G4_METHANE", 0.000667151, 0, 41.7, 2, kStateGas);
1385 AddElementByAtomCount("C" , 1);
1386 AddElementByAtomCount("H" , 4);
1387
1388 AddMaterial("G4_METHANOL", 0.7914, 0, 67.6, 3);
1389 AddElementByAtomCount("C" , 1);
1390 AddElementByAtomCount("H" , 4);
1391 AddElementByAtomCount("O" , 1);
1392
1393 AddMaterial("G4_MIX_D_WAX", 0.99, 0, 60.9, 5);
1394 AddElementByWeightFraction( 1, 0.13404 );
1395 AddElementByWeightFraction( 6, 0.77796 );
1396 AddElementByWeightFraction( 8, 0.03502 );
1397 AddElementByWeightFraction(12, 0.038594);
1398 AddElementByWeightFraction(22, 0.014386);
1399
1400 AddMaterial("G4_MS20_TISSUE", 1.0, 0, 75.1, 6);
1401 AddElementByWeightFraction( 1, 0.081192);
1402 AddElementByWeightFraction( 6, 0.583442);
1403 AddElementByWeightFraction( 7, 0.017798);
1404 AddElementByWeightFraction( 8, 0.186381);
1405 AddElementByWeightFraction(12, 0.130287);
1406 AddElementByWeightFraction(17, 0.0009 );
1407
1408 AddMaterial("G4_MUSCLE_SKELETAL_ICRP", 1.05, 0, 75.3, 9);
1409 AddElementByWeightFraction( 1, 0.102);
1410 AddElementByWeightFraction( 6, 0.143);
1411 AddElementByWeightFraction( 7, 0.034);
1412 AddElementByWeightFraction( 8, 0.710);
1413 AddElementByWeightFraction(11, 0.001);
1414 AddElementByWeightFraction(15, 0.002);
1415 AddElementByWeightFraction(16, 0.003);
1416 AddElementByWeightFraction(17, 0.001);
1417 AddElementByWeightFraction(19, 0.004);
1418
1419 // from old ICRU report
1420 AddMaterial("G4_MUSCLE_STRIATED_ICRU", 1.04, 0, 74.7, 8);
1421 AddElementByWeightFraction( 1, 0.102);
1422 AddElementByWeightFraction( 6, 0.123);
1423 AddElementByWeightFraction( 7, 0.035);
1424 AddElementByWeightFraction( 8, 0.729);
1425 AddElementByWeightFraction(11, 0.001);
1426 AddElementByWeightFraction(15, 0.002);
1427 AddElementByWeightFraction(16, 0.004);
1428 AddElementByWeightFraction(19, 0.003);
1429
1430 AddMaterial("G4_MUSCLE_WITH_SUCROSE", 1.11, 0, 74.3, 4);
1431 AddElementByWeightFraction( 1, 0.098234);
1432 AddElementByWeightFraction( 6, 0.156214);
1433 AddElementByWeightFraction( 7, 0.035451);
1434 AddElementByWeightFraction( 8, 0.7101 );
1435
1436 AddMaterial("G4_MUSCLE_WITHOUT_SUCROSE", 1.07, 0, 74.2, 4);
1437 AddElementByWeightFraction( 1, 0.101969);
1438 AddElementByWeightFraction( 6, 0.120058);
1439 AddElementByWeightFraction( 7, 0.035451);
1440 AddElementByWeightFraction( 8, 0.742522);
1441
1442 AddMaterial("G4_NAPHTHALENE", 1.145, 0, 68.4, 2);
1443 AddElementByAtomCount("C" , 10);
1444 AddElementByAtomCount("H" , 8);
1445
1446 AddMaterial("G4_NITROBENZENE", 1.19867, 0, 75.8, 4);
1447 AddElementByAtomCount("C" , 6);
1448 AddElementByAtomCount("H" , 5);
1449 AddElementByAtomCount("N" , 1);
1450 AddElementByAtomCount("O" , 2);
1451
1452 AddMaterial("G4_NITROUS_OXIDE", 0.00183094, 0, 84.9, 2, kStateGas);
1453 AddElementByAtomCount("N" , 2);
1454 AddElementByAtomCount("O" , 1);
1455
1456 AddMaterial("G4_NYLON-8062", 1.08, 0, 64.3, 4);
1457 AddElementByWeightFraction( 1, 0.103509);
1458 AddElementByWeightFraction( 6, 0.648415);
1459 AddElementByWeightFraction( 7, 0.099536);
1460 AddElementByWeightFraction( 8, 0.148539);
1461
1462 AddMaterial("G4_NYLON-6-6", 1.14, 0, 63.9, 4);
1463 AddElementByAtomCount("C" , 6);
1464 AddElementByAtomCount("H" , 11);
1465 AddElementByAtomCount("N" , 1);
1466 AddElementByAtomCount("O" , 1);
1467
1468 AddMaterial("G4_NYLON-6-10", 1.14, 0, 63.2, 4);
1469 AddElementByWeightFraction( 1, 0.107062);
1470 AddElementByWeightFraction( 6, 0.680449);
1471 AddElementByWeightFraction( 7, 0.099189);
1472 AddElementByWeightFraction( 8, 0.1133 );
1473
1474 AddMaterial("G4_NYLON-11_RILSAN", 1.425, 0, 61.6, 4);
1475 AddElementByWeightFraction( 1, 0.115476);
1476 AddElementByWeightFraction( 6, 0.720819);
1477 AddElementByWeightFraction( 7, 0.076417);
1478 AddElementByWeightFraction( 8, 0.087289);
1479
1480 AddMaterial("G4_OCTANE", 0.7026, 0, 54.7, 2);
1481 AddElementByAtomCount("C" , 8);
1482 AddElementByAtomCount("H" , 18);
1483
1484 AddMaterial("G4_PARAFFIN", 0.93, 0, 55.9, 2);
1485 AddElementByAtomCount("C" , 25);
1486 AddElementByAtomCount("H" , 52);
1487
1488 AddMaterial("G4_N-PENTANE", 0.6262, 0, 53.6, 2);
1489 AddElementByAtomCount("C" , 5);
1490 AddElementByAtomCount("H" , 12);
1491
1492 AddMaterial("G4_PHOTO_EMULSION", 3.815, 0, 331., 8);
1493 AddElementByWeightFraction( 1, 0.0141 );
1494 AddElementByWeightFraction( 6, 0.072261);
1495 AddElementByWeightFraction( 7, 0.01932 );
1496 AddElementByWeightFraction( 8, 0.066101);
1497 AddElementByWeightFraction(16, 0.00189 );
1498 AddElementByWeightFraction(35, 0.349103);
1499 AddElementByWeightFraction(47, 0.474105);
1500 AddElementByWeightFraction(53, 0.00312 );
1501
1502 AddMaterial("G4_PLASTIC_SC_VINYLTOLUENE", 1.032, 0, 64.7, 2);
1503 // AddElementByWeightFraction( 1, 0.085);
1504 // AddElementByWeightFraction( 6, 0.915);
1505 // Watch out! These weight fractions do not correspond to pure PVT
1506 // (PolyVinylToluene, C_9H_10) but to an unknown mixture...
1507 // M.Trocme & S.Seltzer
1508 AddElementByAtomCount("C" , 9);
1509 AddElementByAtomCount("H" , 10);
1510
1511 AddMaterial("G4_PLUTONIUM_DIOXIDE", 11.46, 0, 746.5, 2);
1512 AddElementByAtomCount("Pu", 1);
1513 AddElementByAtomCount("O" , 2);
1514
1515 AddMaterial("G4_POLYACRYLONITRILE", 1.17, 0, 69.6, 3);
1516 AddElementByAtomCount("C" , 3);
1517 AddElementByAtomCount("H" , 3);
1518 AddElementByAtomCount("N" , 1);
1519
1520 AddMaterial("G4_POLYCARBONATE", 1.2, 0, 73.1, 3);
1521 AddElementByAtomCount("C" , 16);
1522 AddElementByAtomCount("H" , 14);
1523 AddElementByAtomCount("O" , 3);
1524
1525 AddMaterial("G4_POLYCHLOROSTYRENE", 1.3, 0, 81.7, 3);
1526 // AddElementByWeightFraction( 1, 0.061869);
1527 // AddElementByWeightFraction( 6, 0.696325);
1528 // AddElementByWeightFraction(17, 0.241806);
1529 // These weight fractions correspond to C_17H_18Cl_2 which is not
1530 // POLYCHLOROSTYRENE. POLYCHLOROSTYRENE is C_8H_7Cl!
1531 // M.Trocme & S.Seltzer
1532 AddElementByAtomCount("C" , 8);
1533 AddElementByAtomCount("H" , 7);
1534 AddElementByAtomCount("Cl", 1);
1535
1536 AddMaterial("G4_POLYETHYLENE", 0.94, 0, 57.4, 2);
1537 AddElementByAtomCount("C" , 1);
1538 AddElementByAtomCount("H" , 2);
1539 chFormulas[nMaterials-1] = "(C_2H_4)_N-Polyethylene";
1540
1541 AddMaterial("G4_MYLAR", 1.4, 0, 78.7, 3);
1542 AddElementByAtomCount("C" , 10);
1543 AddElementByAtomCount("H" , 8);
1544 AddElementByAtomCount("O" , 4);
1545
1546 AddMaterial("G4_PLEXIGLASS", 1.19, 0, 74., 3);
1547 AddElementByAtomCount("C" , 5);
1548 AddElementByAtomCount("H" , 8);
1549 AddElementByAtomCount("O" , 2);
1550
1551 AddMaterial("G4_POLYOXYMETHYLENE", 1.425 ,0, 77.4, 3);
1552 AddElementByAtomCount("C" , 1);
1553 AddElementByAtomCount("H" , 2);
1554 AddElementByAtomCount("O" , 1);
1555
1556 AddMaterial("G4_POLYPROPYLENE", 0.9, 0, 56.5, 2);
1557 AddElementByAtomCount("C" , 2);
1558 AddElementByAtomCount("H" , 4);
1559 chFormulas[nMaterials-1] = "(C_2H_4)_N-Polypropylene";
1560
1561 AddMaterial("G4_POLYSTYRENE", 1.06, 0, 68.7, 2);
1562 AddElementByAtomCount("C" , 8);
1563 AddElementByAtomCount("H" , 8);
1564
1565 AddMaterial("G4_TEFLON", 2.2, 0, 99.1, 2);
1566 AddElementByAtomCount("C" , 2);
1567 AddElementByAtomCount("F" , 4);
1568
1569 AddMaterial("G4_POLYTRIFLUOROCHLOROETHYLENE", 2.1, 0, 120.7, 3);
1570 // correct chemical name Polychlorotrifluoroethylene [CF2CClF]n, IvantchenkoA.
1571 AddElementByAtomCount("C" , 2);
1572 AddElementByAtomCount("F" , 3);
1573 AddElementByAtomCount("Cl", 1);
1574
1575 AddMaterial("G4_POLYVINYL_ACETATE", 1.19, 0, 73.7, 3);
1576 AddElementByAtomCount("C" , 4);
1577 AddElementByAtomCount("H" , 6);
1578 AddElementByAtomCount("O" , 2);
1579
1580 AddMaterial("G4_POLYVINYL_ALCOHOL", 1.3, 0, 69.7, 3);
1581 AddElementByAtomCount("C" , 2);
1582 AddElementByAtomCount("H" , 4);
1583 AddElementByAtomCount("O" , 1);
1584
1585 AddMaterial("G4_POLYVINYL_BUTYRAL", 1.12, 0, 67.2, 3);
1586 // AddElementByWeightFraction( 1, 0.092802);
1587 // AddElementByWeightFraction( 6, 0.680561);
1588 // AddElementByWeightFraction( 8, 0.226637);
1589 // These weight fractions correspond to C_8H_13O_2 which is not
1590 // POLYVINYL_BUTYRAL. POLYVINYL_BUTYRAL is C_8H_14O_2!
1591 // M.Trocme & S.Seltzer
1592 AddElementByAtomCount("C" , 8);
1593 AddElementByAtomCount("H" , 14);
1594 AddElementByAtomCount("O" , 2);
1595
1596 AddMaterial("G4_POLYVINYL_CHLORIDE", 1.3, 0, 108.2, 3);
1597 AddElementByAtomCount("C" , 2);
1598 AddElementByAtomCount("H" , 3);
1599 AddElementByAtomCount("Cl", 1);
1600
1601 AddMaterial("G4_POLYVINYLIDENE_CHLORIDE", 1.7, 0, 134.3, 3);
1602 AddElementByAtomCount("C" , 2);
1603 AddElementByAtomCount("H" , 2);
1604 AddElementByAtomCount("Cl", 2);
1605
1606 AddMaterial("G4_POLYVINYLIDENE_FLUORIDE", 1.76, 0, 88.8, 3);
1607 AddElementByAtomCount("C" , 2);
1608 AddElementByAtomCount("H" , 2);
1609 AddElementByAtomCount("F" , 2);
1610
1611 AddMaterial("G4_POLYVINYL_PYRROLIDONE", 1.25, 0, 67.7, 4);
1612 AddElementByAtomCount("C" , 6);
1613 AddElementByAtomCount("H" , 9);
1614 AddElementByAtomCount("N" , 1);
1615 AddElementByAtomCount("O" , 1);
1616
1617 AddMaterial("G4_POTASSIUM_IODIDE", 3.13, 0, 431.9, 2);
1618 AddElementByAtomCount("K" , 1);
1619 AddElementByAtomCount("I" , 1);
1620
1621 AddMaterial("G4_POTASSIUM_OXIDE", 2.32, 0, 189.9, 2);
1622 AddElementByAtomCount("K" , 2);
1623 AddElementByAtomCount("O" , 1);
1624
1625 AddMaterial("G4_PROPANE", 0.00187939, 0, 47.1, 2, kStateGas);
1626 AddElementByAtomCount("C" , 3);
1627 AddElementByAtomCount("H" , 8);
1628
1629 AddMaterial("G4_lPROPANE", 0.43, 0, 52., 2);
1630 AddElementByAtomCount("C" , 3);
1631 AddElementByAtomCount("H" , 8);
1632
1633 AddMaterial("G4_N-PROPYL_ALCOHOL", 0.8035, 0, 61.1, 3);
1634 AddElementByAtomCount("C" , 3);
1635 AddElementByAtomCount("H" , 8);
1636 AddElementByAtomCount("O" , 1);
1637
1638 AddMaterial("G4_PYRIDINE", 0.9819, 0, 66.2, 3);
1639 AddElementByAtomCount("C" , 5);
1640 AddElementByAtomCount("H" , 5);
1641 AddElementByAtomCount("N" , 1);
1642
1643 AddMaterial("G4_RUBBER_BUTYL", 0.92, 0, 56.5, 2);
1644 AddElementByWeightFraction( 1, 0.143711);
1645 AddElementByWeightFraction( 6, 0.856289);
1646
1647 AddMaterial("G4_RUBBER_NATURAL", 0.92, 0, 59.8, 2);
1648 AddElementByWeightFraction( 1, 0.118371);
1649 AddElementByWeightFraction( 6, 0.881629);
1650
1651 AddMaterial("G4_RUBBER_NEOPRENE", 1.23, 0, 93., 3);
1652 AddElementByWeightFraction( 1, 0.05692 );
1653 AddElementByWeightFraction( 6, 0.542646);
1654 AddElementByWeightFraction(17, 0.400434);
1655
1656 AddMaterial("G4_SILICON_DIOXIDE", 2.32, 0, 139.2, 2);
1657 AddElementByAtomCount("Si", 1);
1658 AddElementByAtomCount("O" , 2);
1659 chFormulas[nMaterials-1] = "SiO_2";
1660
1661 AddMaterial("G4_SILVER_BROMIDE", 6.473, 0, 486.6, 2);
1662 AddElementByAtomCount("Ag", 1);
1663 AddElementByAtomCount("Br", 1);
1664
1665 AddMaterial("G4_SILVER_CHLORIDE", 5.56, 0, 398.4, 2);
1666 AddElementByAtomCount("Ag", 1);
1667 AddElementByAtomCount("Cl", 1);
1668
1669 AddMaterial("G4_SILVER_HALIDES", 6.47, 0, 487.1, 3);
1670 AddElementByWeightFraction(35, 0.422895);
1671 AddElementByWeightFraction(47, 0.573748);
1672 AddElementByWeightFraction(53, 0.003357);
1673
1674 AddMaterial("G4_SILVER_IODIDE", 6.01, 0, 543.5, 2);
1675 AddElementByAtomCount("Ag", 1);
1676 AddElementByAtomCount("I" , 1);
1677
1678 AddMaterial("G4_SKIN_ICRP", 1.09, 0, 72.7, 9);
1679 AddElementByWeightFraction( 1, 0.100);
1680 AddElementByWeightFraction( 6, 0.204);
1681 AddElementByWeightFraction( 7, 0.042);
1682 AddElementByWeightFraction( 8, 0.645);
1683 AddElementByWeightFraction(11, 0.002);
1684 AddElementByWeightFraction(15, 0.001);
1685 AddElementByWeightFraction(16, 0.002);
1686 AddElementByWeightFraction(17, 0.003);
1687 AddElementByWeightFraction(19, 0.001);
1688
1689 AddMaterial("G4_SODIUM_CARBONATE", 2.532, 0, 125., 3);
1690 AddElementByAtomCount("Na", 2);
1691 AddElementByAtomCount("C" , 1);
1692 AddElementByAtomCount("O" , 3);
1693
1694 AddMaterial("G4_SODIUM_IODIDE", 3.667, 0, 452., 2);
1695 AddElementByAtomCount("Na", 1);
1696 AddElementByAtomCount("I" , 1);
1697
1698 AddMaterial("G4_SODIUM_MONOXIDE", 2.27, 0, 148.8, 2);
1699 AddElementByAtomCount("Na", 2);
1700 AddElementByAtomCount("O" , 1);
1701
1702 AddMaterial("G4_SODIUM_NITRATE", 2.261, 0, 114.6, 3);
1703 AddElementByAtomCount("Na", 1);
1704 AddElementByAtomCount("N" , 1);
1705 AddElementByAtomCount("O" , 3);
1706
1707 AddMaterial("G4_STILBENE", 0.9707, 0, 67.7, 2);
1708 AddElementByAtomCount("C" , 14);
1709 AddElementByAtomCount("H" , 12);
1710
1711 AddMaterial("G4_SUCROSE", 1.5805, 0, 77.5, 3);
1712 AddElementByAtomCount("C" , 12);
1713 AddElementByAtomCount("H" , 22);
1714 AddElementByAtomCount("O" , 11);
1715
1716 AddMaterial("G4_TERPHENYL", 1.24 /*1.234*/, 0, 71.7, 2);
1717 // AddElementByWeightFraction( 1, 0.044543);
1718 // AddElementByWeightFraction( 6, 0.955457);
1719 // These weight fractions correspond to C_18H_10 which is not TERPHENYL.
1720 // TERPHENYL is C_18H_14! The current density is 1.24 g/cm3
1721 // M.Trocme & S.Seltzer
1722 AddElementByAtomCount("C" , 18);
1723 AddElementByAtomCount("H" , 14);
1724
1725 AddMaterial("G4_TESTIS_ICRP", 1.04, 0, 75., 9);
1726 AddElementByWeightFraction( 1, 0.106);
1727 AddElementByWeightFraction( 6, 0.099);
1728 AddElementByWeightFraction( 7, 0.020);
1729 AddElementByWeightFraction( 8, 0.766);
1730 AddElementByWeightFraction(11, 0.002);
1731 AddElementByWeightFraction(15, 0.001);
1732 AddElementByWeightFraction(16, 0.002);
1733 AddElementByWeightFraction(17, 0.002);
1734 AddElementByWeightFraction(19, 0.002);
1735
1736 AddMaterial("G4_TETRACHLOROETHYLENE", 1.625, 0, 159.2, 2);
1737 AddElementByAtomCount("C" , 2);
1738 AddElementByAtomCount("Cl", 4);
1739
1740 AddMaterial("G4_THALLIUM_CHLORIDE", 7.004, 0, 690.3, 2);
1741 AddElementByAtomCount("Tl", 1);
1742 AddElementByAtomCount("Cl", 1);
1743
1744 // TISSUE_SOFT_MALE ICRU-44/46 (1989)
1745 AddMaterial("G4_TISSUE_SOFT_ICRP", 1.03, 0, 72.3, 9);
1746 AddElementByWeightFraction( 1, 0.105);
1747 AddElementByWeightFraction( 6, 0.256);
1748 AddElementByWeightFraction( 7, 0.027);
1749 AddElementByWeightFraction( 8, 0.602);
1750 AddElementByWeightFraction(11, 0.001);
1751 AddElementByWeightFraction(15, 0.002);
1752 AddElementByWeightFraction(16, 0.003);
1753 AddElementByWeightFraction(17, 0.002);
1754 AddElementByWeightFraction(19, 0.002);
1755
1756 // Tissue soft adult ICRU-33 (1980)
1757 AddMaterial("G4_TISSUE_SOFT_ICRU-4", 1.0, 0, 74.9, 4);
1758 AddElementByWeightFraction( 1, 0.101);
1759 AddElementByWeightFraction( 6, 0.111);
1760 AddElementByWeightFraction( 7, 0.026);
1761 AddElementByWeightFraction( 8, 0.762);
1762
1763 AddMaterial("G4_TISSUE-METHANE", 0.00106409, 0, 61.2, 4, kStateGas);
1764 AddElementByWeightFraction( 1, 0.101869);
1765 AddElementByWeightFraction( 6, 0.456179);
1766 AddElementByWeightFraction( 7, 0.035172);
1767 AddElementByWeightFraction( 8, 0.40678 );
1768
1769 AddMaterial("G4_TISSUE-PROPANE", 0.00182628, 0, 59.5, 4, kStateGas);
1770 AddElementByWeightFraction( 1, 0.102672);
1771 AddElementByWeightFraction( 6, 0.56894 );
1772 AddElementByWeightFraction( 7, 0.035022);
1773 AddElementByWeightFraction( 8, 0.293366);
1774
1775 AddMaterial("G4_TITANIUM_DIOXIDE", 4.26, 0, 179.5, 2);
1776 AddElementByAtomCount("Ti", 1);
1777 AddElementByAtomCount("O" , 2);
1778
1779 AddMaterial("G4_TOLUENE", 0.8669, 0, 62.5, 2);
1780 AddElementByAtomCount("C" , 7);
1781 AddElementByAtomCount("H" , 8);
1782
1783 AddMaterial("G4_TRICHLOROETHYLENE", 1.46, 0, 148.1, 3);
1784 AddElementByAtomCount("C" , 2);
1785 AddElementByAtomCount("H" , 1);
1786 AddElementByAtomCount("Cl", 3);
1787
1788 AddMaterial("G4_TRIETHYL_PHOSPHATE", 1.07, 0, 81.2, 4);
1789 AddElementByAtomCount("C" , 6);
1790 AddElementByAtomCount("H" , 15);
1791 AddElementByAtomCount("O" , 4);
1792 AddElementByAtomCount("P" , 1);
1793
1794 AddMaterial("G4_TUNGSTEN_HEXAFLUORIDE", 2.4, 0, 354.4, 2);
1795 AddElementByAtomCount("W" , 1);
1796 AddElementByAtomCount("F" , 6);
1797
1798 AddMaterial("G4_URANIUM_DICARBIDE", 11.28, 0, 752., 2);
1799 AddElementByAtomCount("U" , 1);
1800 AddElementByAtomCount("C" , 2);
1801
1802 AddMaterial("G4_URANIUM_MONOCARBIDE", 13.63, 0, 862., 2);
1803 AddElementByAtomCount("U" , 1);
1804 AddElementByAtomCount("C" , 1);
1805
1806 AddMaterial("G4_URANIUM_OXIDE", 10.96, 0, 720.6, 2);
1807 AddElementByAtomCount("U" , 1);
1808 AddElementByAtomCount("O" , 2);
1809
1810 AddMaterial("G4_UREA", 1.323, 0, 72.8, 4);
1811 AddElementByAtomCount("C" , 1);
1812 AddElementByAtomCount("H" , 4);
1813 AddElementByAtomCount("N" , 2);
1814 AddElementByAtomCount("O" , 1);
1815
1816 AddMaterial("G4_VALINE", 1.23, 0, 67.7, 4);
1817 AddElementByAtomCount("C" , 5);
1818 AddElementByAtomCount("H" , 11);
1819 AddElementByAtomCount("N" , 1);
1820 AddElementByAtomCount("O" , 2);
1821
1822 AddMaterial("G4_VITON", 1.8, 0, 98.6, 3);
1823 AddElementByWeightFraction( 1, 0.009417);
1824 AddElementByWeightFraction( 6, 0.280555);
1825 AddElementByWeightFraction( 9, 0.710028);
1826
1827 AddMaterial("G4_WATER_VAPOR", 0.000756182, 0, 71.6, 2, kStateGas);
1828 AddElementByAtomCount("H" , 2);
1829 AddElementByAtomCount("O" , 1);
1830 chFormulas[nMaterials-1] = "H_2O-Gas";
1831
1832 AddMaterial("G4_XYLENE", 0.87, 0, 61.8, 2);
1833 AddElementByAtomCount("C" , 8);
1834 AddElementByAtomCount("H" , 10);
1835
1836 AddMaterial("G4_GRAPHITE", 2.21, 6, 78.);
1837 chFormulas[nMaterials-1] = "Graphite";
1838
1839 nNIST = nMaterials;
1840}

References AddElementByAtomCount(), AddElementByWeightFraction(), AddMaterial(), chFormulas, kStateGas, nMaterials, and nNIST.

Referenced by Initialise().

◆ NistSimpleMaterials()

void G4NistMaterialBuilder::NistSimpleMaterials ( )
private

Definition at line 723 of file G4NistMaterialBuilder.cc.

724{
725 // density in g/cm3, mean ionisation potential in eV
726
727 AddMaterial("G4_WATER", 1.0,0, 78., 2);
728 AddElementByAtomCount("H" , 2);
729 AddElementByAtomCount("O" , 1);
730 chFormulas[nMaterials-1] = "H_2O";
731
732 AddMaterial("G4_H" , 8.37480e-5, 1, 19.2, 1, kStateGas);
733 AddMaterial("G4_He", 1.66322e-4, 2, 41.8, 1, kStateGas);
734 AddMaterial("G4_Li", 0.534 , 3, 40. );
735 AddMaterial("G4_Be", 1.848 , 4, 63.7);
736 AddMaterial("G4_B" , 2.37 , 5, 76. );
737 AddMaterial("G4_C" , 2. , 6, 78. );
738 AddMaterial("G4_N" , 1.16520e-3, 7, 82. , 1, kStateGas);
739 AddMaterial("G4_O" , 1.33151e-3, 8, 95. , 1, kStateGas);
740 AddMaterial("G4_F" , 1.58029e-3, 9, 115. , 1, kStateGas);
741 AddMaterial("G4_Ne", 8.38505e-4, 10, 137. , 1, kStateGas);
742 AddMaterial("G4_Na", 0.971 , 11, 149. );
743 AddMaterial("G4_Mg", 1.74 , 12, 156. );
744 AddMaterial("G4_Al", 2.699 , 13, 166. );
745 AddMaterial("G4_Si", 2.33 , 14, 173. );
746 AddMaterial("G4_P" , 2.2 , 15, 173. );
747 AddMaterial("G4_S" , 2.0 , 16, 180. );
748 AddMaterial("G4_Cl", 2.99473e-3, 17, 174. , 1, kStateGas);
749 AddMaterial("G4_Ar", 1.66201e-3, 18, 188.0, 1, kStateGas);
750 AddMaterial("G4_K" , 0.862 , 19, 190. );
751 AddMaterial("G4_Ca", 1.55 , 20, 191. );
752 AddMaterial("G4_Sc", 2.989 , 21, 216. );
753 AddMaterial("G4_Ti", 4.54 , 22, 233. );
754 AddMaterial("G4_V" , 6.11 , 23, 245. );
755 AddMaterial("G4_Cr", 7.18 , 24, 257. );
756 AddMaterial("G4_Mn", 7.44 , 25, 272. );
757 AddMaterial("G4_Fe", 7.874 , 26, 286. );
758 AddMaterial("G4_Co", 8.9 , 27, 297. );
759 AddMaterial("G4_Ni", 8.902 , 28, 311. );
760 AddMaterial("G4_Cu", 8.96 , 29, 322. );
761 AddMaterial("G4_Zn", 7.133 , 30, 330. );
762 AddMaterial("G4_Ga", 5.904 , 31, 334. );
763 AddMaterial("G4_Ge", 5.323 , 32, 350. );
764 AddMaterial("G4_As", 5.73 , 33, 347. );
765 AddMaterial("G4_Se", 4.5 , 34, 348. );
766 AddMaterial("G4_Br", 7.07210e-3, 35, 343. , 1, kStateGas);
767 AddMaterial("G4_Kr", 3.47832e-3, 36, 352. , 1, kStateGas);
768 AddMaterial("G4_Rb", 1.532 , 37, 363. );
769 AddMaterial("G4_Sr", 2.54 , 38, 366. );
770 AddMaterial("G4_Y" , 4.469 , 39, 379. );
771 AddMaterial("G4_Zr", 6.506 , 40, 393. );
772 AddMaterial("G4_Nb", 8.57 , 41, 417. );
773 AddMaterial("G4_Mo", 10.22 , 42, 424. );
774 AddMaterial("G4_Tc", 11.50 , 43, 428. );
775 AddMaterial("G4_Ru", 12.41 , 44, 441. );
776 AddMaterial("G4_Rh", 12.41 , 45, 449. );
777 AddMaterial("G4_Pd", 12.02 , 46, 470. );
778 AddMaterial("G4_Ag", 10.5 , 47, 470. );
779 AddMaterial("G4_Cd", 8.65 , 48, 469. );
780 AddMaterial("G4_In", 7.31 , 49, 488. );
781 AddMaterial("G4_Sn", 7.31 , 50, 488. );
782 AddMaterial("G4_Sb", 6.691 , 51, 487. );
783 AddMaterial("G4_Te", 6.24 , 52, 485. );
784 AddMaterial("G4_I" , 4.93 , 53, 491. );
785 AddMaterial("G4_Xe", 5.48536e-3, 54, 482. , 1, kStateGas);
786 AddMaterial("G4_Cs", 1.873 , 55, 488. );
787 AddMaterial("G4_Ba", 3.5 , 56, 491. );
788 AddMaterial("G4_La", 6.154 , 57, 501. );
789 AddMaterial("G4_Ce", 6.657 , 58, 523. );
790 AddMaterial("G4_Pr", 6.71 , 59, 535. );
791 AddMaterial("G4_Nd", 6.9 , 60, 546. );
792 AddMaterial("G4_Pm", 7.22 , 61, 560. );
793 AddMaterial("G4_Sm", 7.46 , 62, 574. );
794 AddMaterial("G4_Eu", 5.243 , 63, 580. );
795 AddMaterial("G4_Gd", 7.9004 , 64, 591. );
796 AddMaterial("G4_Tb", 8.229 , 65, 614. );
797 AddMaterial("G4_Dy", 8.55 , 66, 628. );
798 AddMaterial("G4_Ho", 8.795 , 67, 650. );
799 AddMaterial("G4_Er", 9.066 , 68, 658. );
800 AddMaterial("G4_Tm", 9.321 , 69, 674. );
801 AddMaterial("G4_Yb", 6.73 , 70, 684. );
802 AddMaterial("G4_Lu", 9.84 , 71, 694. );
803 AddMaterial("G4_Hf", 13.31 , 72, 705. );
804 AddMaterial("G4_Ta", 16.654 , 73, 718. );
805 AddMaterial("G4_W" , 19.30 , 74, 727. );
806 AddMaterial("G4_Re", 21.02 , 75, 736. );
807 AddMaterial("G4_Os", 22.57 , 76, 746. );
808 AddMaterial("G4_Ir", 22.42 , 77, 757. );
809 AddMaterial("G4_Pt", 21.45 , 78, 790. );
810 AddMaterial("G4_Au", 19.32 , 79, 790. );
811 AddMaterial("G4_Hg", 13.546 , 80, 800. );
812 AddMaterial("G4_Tl", 11.72 , 81, 810. );
813 AddMaterial("G4_Pb", 11.35 , 82, 823. );
814 AddMaterial("G4_Bi", 9.747 , 83, 823. );
815 AddMaterial("G4_Po", 9.32 , 84, 830. );
816 AddMaterial("G4_At", 9.32 , 85, 825. );
817 AddMaterial("G4_Rn", 9.00662e-3, 86, 794. , 1, kStateGas);
818 AddMaterial("G4_Fr", 1.00 , 87, 827. );
819 AddMaterial("G4_Ra", 5.00 , 88, 826. );
820 AddMaterial("G4_Ac", 10.07 , 89, 841. );
821 AddMaterial("G4_Th", 11.72 , 90, 847. );
822 AddMaterial("G4_Pa", 15.37 , 91, 878. );
823 AddMaterial("G4_U" , 18.95 , 92, 890. );
824 AddMaterial("G4_Np", 20.25 , 93, 902. );
825 AddMaterial("G4_Pu", 19.84 , 94, 921. );
826 AddMaterial("G4_Am", 13.67 , 95, 934. );
827 AddMaterial("G4_Cm", 13.51 , 96, 939. );
828 AddMaterial("G4_Bk", 14.00 , 97, 952. );
829 AddMaterial("G4_Cf", 10.00 , 98, 966. );
830
832}

References AddElementByAtomCount(), AddMaterial(), chFormulas, kStateGas, nElementary, and nMaterials.

Referenced by Initialise().

◆ operator!=()

G4bool G4NistMaterialBuilder::operator!= ( const G4NistMaterialBuilder ) const
delete

◆ operator=()

const G4NistMaterialBuilder & G4NistMaterialBuilder::operator= ( const G4NistMaterialBuilder )
delete

◆ operator==()

G4bool G4NistMaterialBuilder::operator== ( const G4NistMaterialBuilder ) const
delete

◆ SetVerbose()

void G4NistMaterialBuilder::SetVerbose ( G4int  val)

Definition at line 512 of file G4NistMaterialBuilder.cc.

513{
514 verbose = val;
516}

References elmBuilder, G4NistElementBuilder::SetVerbose(), and verbose.

Referenced by G4NistManager::SetVerbose().

◆ SpaceMaterials()

void G4NistMaterialBuilder::SpaceMaterials ( )
private

Definition at line 1905 of file G4NistMaterialBuilder.cc.

1906{
1907 // density in g/cm3
1908 AddMaterial("G4_KEVLAR" , 1.44, 0, 0.0, 4);
1909 AddElementByAtomCount("C", 14);
1910 AddElementByAtomCount("H", 10);
1911 AddElementByAtomCount("O", 2);
1912 AddElementByAtomCount("N", 2);
1913
1914 AddMaterial("G4_DACRON" , 1.40, 0, 0.0, 3); // G4_POLYETHYLENE_TEREPHTALATE
1915 AddElementByAtomCount("C", 10);
1916 AddElementByAtomCount("H", 8);
1917 AddElementByAtomCount("O", 4);
1918
1919 AddMaterial("G4_NEOPRENE" , 1.23, 0, 0.0, 3); // POLYCLOROPRENE
1920 AddElementByAtomCount("C", 4);
1921 AddElementByAtomCount("H", 5);
1922 AddElementByAtomCount("Cl",1);
1923
1925}

References AddElementByAtomCount(), AddMaterial(), nMaterials, and nSpace.

Referenced by Initialise().

Field Documentation

◆ atomCount

std::vector<G4bool> G4NistMaterialBuilder::atomCount
private

◆ chFormulas

std::vector<G4String> G4NistMaterialBuilder::chFormulas
private

◆ components

std::vector<G4int> G4NistMaterialBuilder::components
private

◆ densities

std::vector<G4double> G4NistMaterialBuilder::densities
private

◆ elements

std::vector<G4int> G4NistMaterialBuilder::elements
private

◆ elmBuilder

G4NistElementBuilder* G4NistMaterialBuilder::elmBuilder
private

◆ fractions

std::vector<G4double> G4NistMaterialBuilder::fractions
private

◆ gasPressure

std::vector<G4double> G4NistMaterialBuilder::gasPressure
private

Definition at line 219 of file G4NistMaterialBuilder.hh.

Referenced by AddGas(), and BuildMaterial().

◆ gasTemperature

std::vector<G4double> G4NistMaterialBuilder::gasTemperature
private

Definition at line 218 of file G4NistMaterialBuilder.hh.

Referenced by AddGas(), and BuildMaterial().

◆ idxGas

std::vector<G4int> G4NistMaterialBuilder::idxGas
private

Definition at line 217 of file G4NistMaterialBuilder.hh.

Referenced by AddGas(), and BuildMaterial().

◆ indexes

std::vector<G4int> G4NistMaterialBuilder::indexes
private

◆ ionPotentials

std::vector<G4double> G4NistMaterialBuilder::ionPotentials
private

◆ matIndex

std::vector<G4int> G4NistMaterialBuilder::matIndex
private

Definition at line 214 of file G4NistMaterialBuilder.hh.

Referenced by AddMaterial(), BuildMaterial(), and BuildNistMaterial().

◆ names

std::vector<G4String> G4NistMaterialBuilder::names
private

◆ nComponents

G4int G4NistMaterialBuilder::nComponents
private

Definition at line 196 of file G4NistMaterialBuilder.hh.

Referenced by AddElementByWeightFraction(), and AddMaterial().

◆ nCurrent

G4int G4NistMaterialBuilder::nCurrent
private

Definition at line 197 of file G4NistMaterialBuilder.hh.

Referenced by AddElementByWeightFraction(), and AddMaterial().

◆ nElementary

G4int G4NistMaterialBuilder::nElementary
private

◆ nHEP

G4int G4NistMaterialBuilder::nHEP
private

◆ nMaterials

G4int G4NistMaterialBuilder::nMaterials
private

◆ nNIST

G4int G4NistMaterialBuilder::nNIST
private

◆ nSpace

G4int G4NistMaterialBuilder::nSpace
private

◆ states

std::vector<G4State> G4NistMaterialBuilder::states
private

Definition at line 208 of file G4NistMaterialBuilder.hh.

Referenced by AddMaterial(), and BuildMaterial().

◆ STP

std::vector<G4bool> G4NistMaterialBuilder::STP
private

Definition at line 215 of file G4NistMaterialBuilder.hh.

Referenced by AddMaterial().

◆ verbose

G4int G4NistMaterialBuilder::verbose
private

The documentation for this class was generated from the following files: