Geant4  10.02.p03
G4NistMaterialBuilder Class Reference

#include <G4NistMaterialBuilder.hh>

Collaboration diagram for G4NistMaterialBuilder:

Public Member Functions

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

Private Member Functions

void Initialise ()
 
void NistSimpleMaterials ()
 
void NistCompoundMaterials ()
 
void NistCompoundMaterials2 ()
 
void HepAndNuclearMaterials ()
 
void SpaceMaterials ()
 
void BioChemicalMaterials ()
 
void AddMaterial (const G4String &nameMat, G4double dens, G4int Z=0, G4double pot=0.0, G4int ncomp=1, G4State=kStateSolid, G4bool stp=true)
 
void AddGas (const G4String &nameMat, G4double t=NTP_Temperature, G4double p=CLHEP::STP_Pressure)
 
void AddElementByWeightFraction (G4int Z, G4double)
 
void AddElementByAtomCount (G4int Z, G4int)
 
void AddElementByWeightFraction (const G4String &name, G4double)
 
void AddElementByAtomCount (const G4String &name, G4int)
 
G4MaterialBuildMaterial (G4int idx)
 
void DumpElm (G4int) const
 
void DumpMix (G4int) const
 

Private Attributes

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

Detailed Description

Definition at line 70 of file G4NistMaterialBuilder.hh.

Constructor & Destructor Documentation

◆ G4NistMaterialBuilder()

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

Definition at line 86 of file G4NistMaterialBuilder.cc.

Here is the call graph for this function:

◆ ~G4NistMaterialBuilder()

G4NistMaterialBuilder::~G4NistMaterialBuilder ( )

Definition at line 99 of file G4NistMaterialBuilder.cc.

100 {}

Member Function Documentation

◆ AddElementByAtomCount() [1/2]

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

Definition at line 694 of file G4NistMaterialBuilder.cc.

695 {
696  atomCount[nMaterials-1] = true;
697  G4double w = (G4double)nb;
699 }
Float_t Z
void AddElementByWeightFraction(G4int Z, G4double)
std::vector< G4bool > atomCount
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddElementByAtomCount() [2/2]

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

Definition at line 703 of file G4NistMaterialBuilder.cc.

705 {
706  atomCount[nMaterials-1] = true;
707  G4int Z = elmBuilder->GetZ(name);
708  G4double w = (G4double)nb;
710 }
G4NistElementBuilder * elmBuilder
int G4int
Definition: G4Types.hh:78
Float_t Z
void AddElementByWeightFraction(G4int Z, G4double)
std::vector< G4bool > atomCount
double G4double
Definition: G4Types.hh:76
G4int GetZ(const G4String &symb) const
Here is the call graph for this function:

◆ AddElementByWeightFraction() [1/2]

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

Definition at line 664 of file G4NistMaterialBuilder.cc.

665 {
666  elements.push_back(Z);
667  fractions.push_back(w);
668  --nCurrent;
669  ++nComponents;
670  if (nCurrent == 0) {
671  G4int n = nMaterials - 1;
672  G4double sum = 0.0;
673  G4int imin = indexes[n];
674  G4int imax = imin + components[n];
675 
676  if(!atomCount[n]) {
677  for(G4int i=imin; i<imax; ++i) {sum += fractions[i];}
678  if (sum > 0.0) for (G4int i=imin; i<imax; ++i) {fractions[i] /= sum;}
679  }
680  }
681 }
int G4int
Definition: G4Types.hh:78
Char_t n[5]
Float_t Z
std::vector< G4int > indexes
std::vector< G4bool > atomCount
std::vector< G4int > elements
std::vector< G4int > components
static const G4int imax
double G4double
Definition: G4Types.hh:76
std::vector< G4double > fractions
Here is the caller graph for this function:

◆ AddElementByWeightFraction() [2/2]

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

Definition at line 685 of file G4NistMaterialBuilder.cc.

687 {
688  G4int Z = elmBuilder->GetZ(name);
690 }
G4NistElementBuilder * elmBuilder
int G4int
Definition: G4Types.hh:78
Float_t Z
void AddElementByWeightFraction(G4int Z, G4double)
G4int GetZ(const G4String &symb) const
Here is the call graph for this function:

◆ AddGas()

void G4NistMaterialBuilder::AddGas ( const G4String nameMat,
G4double  t = NTP_Temperature,
G4double  p = CLHEP::STP_Pressure 
)
private

Definition at line 647 of file G4NistMaterialBuilder.cc.

648 {
649  for(G4int i=0; i<nMaterials; ++i) {
650  if(nameMat == names[i]) {
651  idxGas.push_back(i);
652  gasTemperature.push_back(t);
653  gasPressure.push_back(p);
654  return;
655  }
656  }
657  G4cout << "WARNING: G4NistMaterialBuilder::AddGas problem: there is no "
658  << nameMat << " in the list of materials;"
659  << G4endl;
660 }
std::vector< G4double > gasPressure
std::vector< G4String > names
int G4int
Definition: G4Types.hh:78
std::vector< G4int > idxGas
G4GLOB_DLL std::ostream G4cout
std::vector< G4double > gasTemperature
#define G4endl
Definition: G4ios.hh:61
Here is the caller graph for this function:

◆ 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 465 of file G4NistMaterialBuilder.cc.

469 {
470  // add parameters of material into internal vectors
471  // density in g/cm3, mean ionisation potential in eV
472 
473  // if ncomp == 1 then Z should be defined and
474  // AddElement should not be applied
475 
476  if (nCurrent != 0) {
477  G4cout << "G4NistMaterialBuilder::AddMaterial WARNING: previous "
478  << "mixture " << nMaterials << " " << names[nMaterials]
479  << " is not yet complete!"
480  << G4endl;
481  G4cout << " New material " << nameMat << " will not be added"
482  << G4endl;
483  return;
484  }
485 
486  // density in g/cm3, mean ionisation potential in eV
487 
488  names.push_back(nameMat);
489  chFormulas.push_back("");
490  densities.push_back(dens*g/cm3);
491  ionPotentials.push_back(pot*eV);
492  states.push_back(state);
493  components.push_back(ncomp);
494  indexes.push_back(nComponents);
495  STP.push_back(stp);
496  matIndex.push_back(-1);
497  atomCount.push_back(false);
498 
499  if (1 == ncomp && Z > 0) {
500  elements.push_back(Z);
501  fractions.push_back(1.0);
502  atomCount[nMaterials] = true;
503  ++nComponents;
504  nCurrent = 0;
505  } else {
506  nCurrent = ncomp;
507  }
508 
509  ++nMaterials;
510 
511  if(verbose > 1) {
512  G4cout << "New material " << nameMat << " is prepeared; "
513  << " nMaterials= " << nMaterials
514  << " nComponents= " << nComponents
515  << " nCurrent= " << nCurrent
516  << G4endl;
517  }
518 }
std::vector< G4String > names
std::vector< G4double > densities
function g(Y1, Y2, PT2)
Definition: hijing1.383.f:5206
G4GLOB_DLL std::ostream G4cout
Float_t Z
std::vector< G4int > indexes
static const double cm3
Definition: G4SIunits.hh:120
std::vector< G4bool > atomCount
std::vector< G4int > elements
static const double eV
Definition: G4SIunits.hh:212
std::vector< G4State > states
std::vector< G4bool > STP
std::vector< G4double > ionPotentials
std::vector< G4int > matIndex
std::vector< G4String > chFormulas
#define G4endl
Definition: G4ios.hh:61
std::vector< G4int > components
std::vector< G4double > fractions
Here is the call graph for this function:
Here is the caller graph for this function:

◆ BioChemicalMaterials()

void G4NistMaterialBuilder::BioChemicalMaterials ( )
private

Definition at line 1938 of file G4NistMaterialBuilder.cc.

1939 {
1940  AddMaterial("G4_CYTOSINE", 1.55, 0, 72., 4);
1941  AddElementByAtomCount("H", 5);
1942  AddElementByAtomCount("C", 4);
1943  AddElementByAtomCount("N", 3);
1944  AddElementByAtomCount("O", 1);
1945 
1946  AddMaterial("G4_THYMINE", 1.23, 0, 72., 4);
1947  AddElementByAtomCount("H", 6);
1948  AddElementByAtomCount("C", 5);
1949  AddElementByAtomCount("N", 2);
1950  AddElementByAtomCount("O", 2);
1951 
1952  AddMaterial("G4_URACIL", 1.32, 0, 72., 4);
1953  AddElementByAtomCount("H", 4);
1954  AddElementByAtomCount("C", 4);
1955  AddElementByAtomCount("N", 2);
1956  AddElementByAtomCount("O", 2);
1957 
1958  // DNA_Nucleobase (Nucleobase-1H)
1959  AddMaterial("G4_DNA_ADENINE", 1, 0, 72., 3);
1960  AddElementByAtomCount("H",4 );
1961  AddElementByAtomCount("C",5 );
1962  AddElementByAtomCount("N",5 );
1963 
1964  AddMaterial("G4_DNA_GUANINE", 1, 0, 72. ,4);
1965  AddElementByAtomCount("H",4 );
1966  AddElementByAtomCount("C",5 );
1967  AddElementByAtomCount("N",5 );
1968  AddElementByAtomCount("O",1 );
1969 
1970  AddMaterial("G4_DNA_CYTOSINE", 1, 0, 72., 4);
1971  AddElementByAtomCount("H", 4);
1972  AddElementByAtomCount("C", 4);
1973  AddElementByAtomCount("N", 3);
1974  AddElementByAtomCount("O", 1);
1975 
1976  AddMaterial("G4_DNA_THYMINE", 1, 0, 72., 4);
1977  AddElementByAtomCount("H", 5);
1978  AddElementByAtomCount("C", 5);
1979  AddElementByAtomCount("N", 2);
1980  AddElementByAtomCount("O", 2);
1981 
1982  AddMaterial("G4_DNA_URACIL", 1, 0, 72., 4);
1983  AddElementByAtomCount("H", 3);
1984  AddElementByAtomCount("C", 4);
1985  AddElementByAtomCount("N", 2);
1986  AddElementByAtomCount("O", 2);
1987 
1988  // DNA_Nucleoside (Nucleoside-3H)
1989  AddMaterial("G4_DNA_ADENOSINE", 1, 0, 72., 4);
1990  AddElementByAtomCount("H", 10);
1991  AddElementByAtomCount("C", 10);
1992  AddElementByAtomCount("N", 5);
1993  AddElementByAtomCount("O", 4);
1994 
1995  AddMaterial("G4_DNA_GUANOSINE", 1, 0, 72. ,4);
1996  AddElementByAtomCount("H", 10);
1997  AddElementByAtomCount("C", 10);
1998  AddElementByAtomCount("N", 5);
1999  AddElementByAtomCount("O", 5);
2000 
2001  AddMaterial("G4_DNA_CYTIDINE", 1, 0, 72., 4);
2002  AddElementByAtomCount("H", 10);
2003  AddElementByAtomCount("C", 9);
2004  AddElementByAtomCount("N", 3);
2005  AddElementByAtomCount("O", 5);
2006 
2007  AddMaterial("G4_DNA_URIDINE", 1, 0, 72., 4);
2008  AddElementByAtomCount("H", 9);
2009  AddElementByAtomCount("C", 9);
2010  AddElementByAtomCount("N", 2);
2011  AddElementByAtomCount("O", 6);
2012 
2013  AddMaterial("G4_DNA_METHYLURIDINE", 1, 0, 72., 4);
2014  AddElementByAtomCount("H", 11);
2015  AddElementByAtomCount("C", 10);
2016  AddElementByAtomCount("N", 2);
2017  AddElementByAtomCount("O", 6);
2018 
2019  AddMaterial("G4_DNA_MONOPHOSPHATE", 1, 0, 72., 2);
2020  AddElementByAtomCount("P", 1);
2021  AddElementByAtomCount("O", 3);
2022 
2023  AddMaterial("G4_DNA_A", 1, 0, 72., 5); //Adenine base
2024  AddElementByAtomCount("H", 10);
2025  AddElementByAtomCount("C", 10);
2026  AddElementByAtomCount("N", 5);
2027  AddElementByAtomCount("O", 7);
2028  AddElementByAtomCount("P", 1);
2029 
2030  AddMaterial("G4_DNA_G", 1, 0, 72. ,5); //Guanine base
2031  AddElementByAtomCount("H", 10);
2032  AddElementByAtomCount("C", 10);
2033  AddElementByAtomCount("N", 5);
2034  AddElementByAtomCount("O", 8);
2035  AddElementByAtomCount("P", 1);
2036 
2037  AddMaterial("G4_DNA_C", 1, 0, 72., 5); // Cytosine base
2038  AddElementByAtomCount("H", 10);
2039  AddElementByAtomCount("C", 9);
2040  AddElementByAtomCount("N", 3);
2041  AddElementByAtomCount("O", 8);
2042  AddElementByAtomCount("P", 1);
2043 
2044  AddMaterial("G4_DNA_U", 1, 0, 72., 5); // Uracil base
2045  AddElementByAtomCount("H", 9);
2046  AddElementByAtomCount("C", 9);
2047  AddElementByAtomCount("N", 2);
2048  AddElementByAtomCount("O", 9);
2049  AddElementByAtomCount("P", 1);
2050 
2051  AddMaterial("G4_DNA_MU", 1, 0, 72., 5); // MethaUracil base
2052  AddElementByAtomCount("H", 11);
2053  AddElementByAtomCount("C", 10);
2054  AddElementByAtomCount("N", 2);
2055  AddElementByAtomCount("O", 9);
2056  AddElementByAtomCount("P", 1);
2057  /*
2058  // Complete 70 kg body of adult men from en.wikipedia.org/ see References there
2059  AddMaterial("G4_BODY", 1.8, 0, 78, 12);
2060  AddElementByWeightFraction( 8, 0.650);
2061  AddElementByWeightFraction( 6, 0.180);
2062  AddElementByWeightFraction( 1, 0.100);
2063  AddElementByWeightFraction( 7, 0.030);
2064  AddElementByWeightFraction(20, 0.015);
2065  AddElementByWeightFraction(15, 0.010);
2066  AddElementByWeightFraction(19, 0.0025);
2067  AddElementByWeightFraction(16, 0.0025);
2068  AddElementByWeightFraction(11, 0.0015);
2069  AddElementByWeightFraction(17, 0.0015);
2070  AddElementByWeightFraction(12, 0.0005);
2071  AddElementByWeightFraction(26, 0.00006);
2072  */
2073 }
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)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ BuildMaterial()

G4Material * G4NistMaterialBuilder::BuildMaterial ( G4int  idx)
private

Definition at line 183 of file G4NistMaterialBuilder.cc.

184 {
185  if (verbose > 1) {
186  G4cout << "G4NistMaterialBuilder: BuildMaterial #" << i
187  << G4endl;
188  }
189  G4Material* mat = 0;
190  if(i >= nMaterials) { return mat; }
191 
192  G4int nc = components[i];
193 
194  // Check gas parameters:
195  // defaults may be changed via AddGas() method
198  if(kStateGas == states[i]) {
199  size_t nn = idxGas.size();
200  if(nn > 0) {
201  for(size_t j=0; j<nn; ++j) {
202  if(i == idxGas[j]) {
203  t = gasTemperature[j];
204  p = gasPressure[j];
205  break;
206  }
207  }
208  }
209  // liquids
210  } else if( !STP[i] ) { t = 0.0; }
211 
212  mat = new G4Material(names[i],densities[i],nc,states[i],t,p);
213 
214  if (verbose>1) { G4cout << "New material nComponents= " << nc << G4endl; }
215  if (nc > 0) {
216  G4int idx = indexes[i];
217  for (G4int j=0; j<nc; ++j) {
218  G4int Z = elements[idx+j];
220  if(!el) {
221  G4cout << "G4NistMaterialBuilder::BuildMaterial:"
222  << " ERROR: elements Z= " << Z << " is not found "
223  << " for material " << names[i]
224  << G4endl;
225  G4Exception("G4NistMaterialBuilder::BuildMaterial()", "mat103",
226  FatalException, "Fail to construct material");
227  return 0;
228  }
229  if(atomCount[i]) {
230  mat->AddElement(el,G4lrint(fractions[idx+j]));
231  } else {
232  mat->AddElement(el,fractions[idx+j]);
233  }
234  }
235  }
236 
237  // Ionisation potential can be defined via NIST DB or
238  // Chemical Formula (ICRU37 Report data)
240  G4double exc0 = ion->GetMeanExcitationEnergy();
241  G4double exc1 = exc0;
242  if(chFormulas[i] != "") {
244  exc1 = ion->FindMeanExcitationEnergy(chFormulas[i]);
245  }
246  if(ionPotentials[i] > 0.0) { exc1 = ionPotentials[i]; }
247  if(exc0 != exc1) { ion->SetMeanExcitationEnergy(exc1); }
248 
249  // Index in Material Table
250  matIndex[i] = mat->GetIndex();
251  return mat;
252 }
G4IonisParamMat * GetIonisation() const
Definition: G4Material.hh:226
std::vector< G4double > gasPressure
void SetChemicalFormula(const G4String &chF)
Definition: G4Material.hh:173
G4NistElementBuilder * elmBuilder
std::vector< G4String > names
G4double FindMeanExcitationEnergy(const G4String &chFormula)
void SetMeanExcitationEnergy(G4double value)
std::vector< G4double > densities
size_t GetIndex() const
Definition: G4Material.hh:262
int G4int
Definition: G4Types.hh:78
Float_t mat
std::vector< G4int > idxGas
G4GLOB_DLL std::ostream G4cout
G4double GetMeanExcitationEnergy() const
Float_t Z
std::vector< G4int > indexes
std::vector< G4double > gasTemperature
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
std::vector< G4bool > atomCount
std::vector< G4int > elements
std::vector< G4State > states
int G4lrint(double ad)
Definition: templates.hh:163
std::vector< G4bool > STP
std::vector< G4double > ionPotentials
std::vector< G4int > matIndex
std::vector< G4String > chFormulas
static const G4double NTP_Temperature
Definition: G4Material.hh:116
G4Element * FindOrBuildElement(G4int Z, G4bool buildIsotopes=true)
#define G4endl
Definition: G4ios.hh:61
std::vector< G4int > components
void AddElement(G4Element *element, G4int nAtoms)
Definition: G4Material.cc:364
double G4double
Definition: G4Types.hh:76
std::vector< G4double > fractions
int STP_Pressure
Definition: hepunit.py:303
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConstructNewGasMaterial()

G4Material * G4NistMaterialBuilder::ConstructNewGasMaterial ( const G4String name,
const G4String nameDB,
G4double  temp,
G4double  pres,
G4bool  isotopes = true 
)

Definition at line 355 of file G4NistMaterialBuilder.cc.

361 {
362  // Material name is in DB
364  if(mat) {
365  G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial:"
366  << " WARNING: the material <" << name
367  << "> is already exist" << G4endl;
368  G4cout << " New material will NOT be built!"
369  << G4endl;
370  return mat;
371  }
372 
373  G4Material* bmat = FindOrBuildMaterial(nameDB);
374  if(!bmat) {
375  G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial:"
376  << " WARNING: the Name <" << nameDB
377  << "> is NOT in the DB: no new gas will be constructed"
378  << G4endl;
379  return 0;
380  }
381  if(bmat->GetState() != kStateGas) {
382  G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial:"
383  << " WARNING: <" << nameDB
384  << "> is NOT a gas - no new gas will be constructed"
385  << G4endl;
386  return 0;
387  }
388 
389  G4double dens = bmat->GetDensity()*pres*bmat->GetTemperature()
390  /(temp*bmat->GetPressure());
391  mat = new G4Material(name,dens,bmat,kStateGas,temp,pres);
392 
393  if (verbose>1) {
394  G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial: done" << G4endl;
395  G4cout << &mat << G4endl;
396  }
397  return mat;
398 }
G4State GetState() const
Definition: G4Material.hh:181
G4double GetDensity() const
Definition: G4Material.hh:180
Float_t mat
G4GLOB_DLL std::ostream G4cout
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=true)
G4double GetPressure() const
Definition: G4Material.hh:183
G4double GetTemperature() const
Definition: G4Material.hh:182
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConstructNewIdealGasMaterial()

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

Definition at line 402 of file G4NistMaterialBuilder.cc.

409 {
410  G4State state = kStateGas;
411 
412  // Material is in DB
414  if(mat) {
415  G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
416  << " WARNING: the material <" << name
417  << "> is already exist" << G4endl;
418  G4cout << " New material will NOT be built!"
419  << G4endl;
420  return mat;
421  }
422 
423  // Material not in DB
424  G4int els = elm.size();
425  if(els == 0) {
426  G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
427  << " WARNING: empty list of elements for " << name
428  << G4endl;
429  G4cout << " New material will NOT be built!"
430  << G4endl;
431  return 0;
432  }
433 
434  // add parameters of material into internal vectors
435  // density in g/cm3, mean ionisation potential is not defined
436  G4bool stp = true;
437  if(temp != NTP_Temperature && pres != STP_Pressure)
438  { stp = false; }
439 
440  G4double massPerMole = 0;
441 
442  G4int Z = 0;
443  for (G4int i=0; i<els; ++i) {
444  Z = elmBuilder->GetZ(elm[i]);
445  massPerMole += nbAtoms[i] * elmBuilder->GetAtomicMassAmu(Z) * amu_c2;
446  }
447 
448  G4double dens = massPerMole / (Avogadro*k_Boltzmann*temp/pres);
449 
450  if (els == 1) { AddMaterial(name,dens,Z,0.,els,state,stp); }
451  else {
452  AddMaterial(name,dens,0,0.,els,state,stp);
453  for (G4int i=0; i<els; ++i) {
454  AddElementByAtomCount(elmBuilder->GetZ(elm[i]), nbAtoms[i]);
455  }
456  }
457 
458  if(!stp) { AddGas(name,temp,pres); }
459 
460  return BuildMaterial(nMaterials-1);
461 }
G4NistElementBuilder * elmBuilder
G4State
Definition: G4Material.hh:114
int G4int
Definition: G4Types.hh:78
float Avogadro
Definition: hepunit.py:253
void AddMaterial(const G4String &nameMat, G4double dens, G4int Z=0, G4double pot=0.0, G4int ncomp=1, G4State=kStateSolid, G4bool stp=true)
G4double GetAtomicMassAmu(const G4String &symb) const
Float_t mat
G4GLOB_DLL std::ostream G4cout
float k_Boltzmann
Definition: hepunit.py:299
Float_t Z
bool G4bool
Definition: G4Types.hh:79
G4Material * BuildMaterial(G4int idx)
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=true)
void AddGas(const G4String &nameMat, G4double t=NTP_Temperature, G4double p=CLHEP::STP_Pressure)
static const G4double NTP_Temperature
Definition: G4Material.hh:116
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
float amu_c2
Definition: hepunit.py:277
void AddElementByAtomCount(G4int Z, G4int)
G4int GetZ(const G4String &symb) const
int STP_Pressure
Definition: hepunit.py:303
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConstructNewMaterial() [1/2]

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

Definition at line 256 of file G4NistMaterialBuilder.cc.

265 {
266  // Material is in DB
268  if(mat) {
269  G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
270  << " WARNING: the material <" << name
271  << "> is already exist" << G4endl;
272  G4cout << " New material will NOT be built!"
273  << G4endl;
274  return mat;
275  }
276 
277  // Material not in DB
278  G4int els = elm.size();
279  if(els == 0) {
280  G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
281  << " WARNING: empty list of elements for " << name
282  << G4endl;
283  G4cout << " New material will NOT be built!"
284  << G4endl;
285  return 0;
286  }
287 
288  // add parameters of material into internal vectors
289  // density in g/cm3, mean ionisation potential is not defined
290  G4bool stp = true;
291  if(state == kStateGas && (temp != NTP_Temperature || pres != STP_Pressure))
292  { stp = false; }
293 
294  AddMaterial(name,dens*cm3/g,0,0.,els,state,stp);
295  if(!stp) { AddGas(name,temp,pres); }
296 
297  for (G4int i=0; i<els; ++i) {
298  AddElementByAtomCount(elmBuilder->GetZ(elm[i]), nbAtoms[i]);
299  }
300 
301  return BuildMaterial(nMaterials-1);
302 }
G4NistElementBuilder * elmBuilder
int G4int
Definition: G4Types.hh:78
void AddMaterial(const G4String &nameMat, G4double dens, G4int Z=0, G4double pot=0.0, G4int ncomp=1, G4State=kStateSolid, G4bool stp=true)
Float_t mat
function g(Y1, Y2, PT2)
Definition: hijing1.383.f:5206
G4GLOB_DLL std::ostream G4cout
bool G4bool
Definition: G4Types.hh:79
G4Material * BuildMaterial(G4int idx)
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=true)
static const double cm3
Definition: G4SIunits.hh:120
void AddGas(const G4String &nameMat, G4double t=NTP_Temperature, G4double p=CLHEP::STP_Pressure)
static const G4double NTP_Temperature
Definition: G4Material.hh:116
#define G4endl
Definition: G4ios.hh:61
void AddElementByAtomCount(G4int Z, G4int)
G4int GetZ(const G4String &symb) const
int STP_Pressure
Definition: hepunit.py:303
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConstructNewMaterial() [2/2]

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

Definition at line 306 of file G4NistMaterialBuilder.cc.

315 {
316  // Material is in DB
318  if(mat) {
319  G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
320  << " WARNING: the material <" << name
321  << "> is already exist" << G4endl;
322  G4cout << " New material will NOT be built!"
323  << G4endl;
324  return mat;
325  }
326 
327  // Material not in DB
328  G4int els = elm.size();
329  if(els == 0) {
330  G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
331  << " WARNING: empty list of elements for " << name
332  << G4endl;
333  G4cout << " New material will NOT be built!"
334  << G4endl;
335  return 0;
336  }
337 
338  // add parameters of material into internal vectors
339  // density in g/cm3, mean ionisation potential is not defined
340  G4bool stp = true;
341  if(state == kStateGas && (temp != NTP_Temperature || pres != STP_Pressure))
342  { stp = false; }
343  AddMaterial(name,dens*cm3/g,0,0.,els,state,stp);
344  if(!stp) { AddGas(name,temp,pres); }
345 
346  for (G4int i=0; i<els; ++i) {
348  }
349 
350  return BuildMaterial(nMaterials-1);
351 }
G4NistElementBuilder * elmBuilder
int G4int
Definition: G4Types.hh:78
void AddMaterial(const G4String &nameMat, G4double dens, G4int Z=0, G4double pot=0.0, G4int ncomp=1, G4State=kStateSolid, G4bool stp=true)
Float_t mat
function g(Y1, Y2, PT2)
Definition: hijing1.383.f:5206
G4GLOB_DLL std::ostream G4cout
bool G4bool
Definition: G4Types.hh:79
G4Material * BuildMaterial(G4int idx)
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=true)
static const double cm3
Definition: G4SIunits.hh:120
void AddElementByWeightFraction(G4int Z, G4double)
void AddGas(const G4String &nameMat, G4double t=NTP_Temperature, G4double p=CLHEP::STP_Pressure)
static const G4double NTP_Temperature
Definition: G4Material.hh:116
#define G4endl
Definition: G4ios.hh:61
G4int GetZ(const G4String &symb) const
int STP_Pressure
Definition: hepunit.py:303
Here is the call graph for this function:

◆ DumpElm()

void G4NistMaterialBuilder::DumpElm ( G4int  i) const
private

Definition at line 614 of file G4NistMaterialBuilder.cc.

615 {
616  G4cout << std::setw(2) << i+1 << " "
617  << std::setw(6) << names[i]
618  << std::setw(14) << densities[i]*cm3/g
619  << std::setw(11) << ionPotentials[i]/eV
620  << G4endl;
621 }
std::vector< G4String > names
std::vector< G4double > densities
function g(Y1, Y2, PT2)
Definition: hijing1.383.f:5206
G4GLOB_DLL std::ostream G4cout
static const double cm3
Definition: G4SIunits.hh:120
static const double eV
Definition: G4SIunits.hh:212
std::vector< G4double > ionPotentials
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:
Here is the caller graph for this function:

◆ DumpMix()

void G4NistMaterialBuilder::DumpMix ( G4int  i) const
private

Definition at line 625 of file G4NistMaterialBuilder.cc.

626 {
627  G4int nc = components[i];
628  G4cout << std::setw(2) << nc << " "
629  << std::setw(26) << names[i] << " "
630  << std::setw(10) << densities[i]*cm3/g
631  << std::setw(10) << ionPotentials[i]/eV
632  << " " << chFormulas[i]
633  << G4endl;
634  if (nc > 1) {
635  G4int imin = indexes[i];
636  G4int imax = imin + nc;
637  for (G4int j=imin; j<imax; ++j) {
638  G4cout << std::setw(10) << elements[j] << std::setw(14) << fractions[j]
639  << G4endl;
640  }
641  }
642 }
std::vector< G4String > names
std::vector< G4double > densities
int G4int
Definition: G4Types.hh:78
function g(Y1, Y2, PT2)
Definition: hijing1.383.f:5206
G4GLOB_DLL std::ostream G4cout
std::vector< G4int > indexes
static const double cm3
Definition: G4SIunits.hh:120
std::vector< G4int > elements
static const double eV
Definition: G4SIunits.hh:212
std::vector< G4double > ionPotentials
std::vector< G4String > chFormulas
#define G4endl
Definition: G4ios.hh:61
std::vector< G4int > components
static const G4int imax
std::vector< G4double > fractions
Here is the call graph for this function:
Here is the caller graph for this function:

◆ FindOrBuildMaterial()

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

Definition at line 104 of file G4NistMaterialBuilder.cc.

107 {
108  if(first) {
109  if(verbose > 0) {
110  G4cout << "### NIST DataBase for Materials is used" << G4endl;
111  }
112  first = false;
113  }
114 
115  G4String name = matname;
116  if("G4_NYLON-6/6" == matname) { name = "G4_NYLON-6-6"; }
117  if("G4_NYLON-6/10" == matname) { name = "G4_NYLON-6-10";}
118 
119  if(verbose > 1) {
120  G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial " << name << G4endl;
121  }
122  const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
123  G4int nmat = theMaterialTable->size();
124 
125  // Check if name inside DB
126  G4Material* mat = 0;
127 
128  // Check the list of all materials
129  if (nmat > 0) {
130  for (G4int i=0; i<nmat; ++i) {
131  if(name == ((*theMaterialTable)[i])->GetName()) {
132  mat = (*theMaterialTable)[i];
133  return mat;
134  }
135  }
136  }
137 
138  for (G4int i=0; i<nMaterials; ++i) {
139 
140  if (name == names[i]) {
141 #ifdef G4MULTITHREADED
142  G4MUTEXLOCK(&G4NistMaterialBuilder::nistMaterialMutex);
143 #endif
144  if(matIndex[i] == -1) {
145  // Build new Nist material
146  if(!iso && (warning || verbose > 0)) {
147  G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial warning for "
148  << name
149  << " - since Geant4 9.6 isotopes are always built" << G4endl;
150  }
151  mat = BuildMaterial(i);
152  } else {
153  // Nist material was already built
154  mat = (*theMaterialTable)[matIndex[i]];
155  }
156 #ifdef G4MULTITHREADED
157  G4MUTEXUNLOCK(&G4NistMaterialBuilder::nistMaterialMutex);
158 #endif
159  return mat;
160  }
161  }
162 
163  if( (verbose == 1 && warning) || verbose > 1) {
164  G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial WARNING:"
165  << " material <" << name
166  << "> is not found out" << G4endl;
167  }
168  return mat;
169 }
#define G4MUTEXUNLOCK
Definition: G4Threading.hh:180
std::vector< G4String > names
static G4MaterialTable * GetMaterialTable()
Definition: G4Material.cc:589
std::vector< G4Material * > G4MaterialTable
int G4int
Definition: G4Types.hh:78
Float_t mat
G4GLOB_DLL std::ostream G4cout
G4Material * BuildMaterial(G4int idx)
#define G4MUTEXLOCK
Definition: G4Threading.hh:179
std::vector< G4int > matIndex
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:
Here is the caller graph for this function:

◆ FindOrBuildSimpleMaterial()

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

Definition at line 174 of file G4NistMaterialBuilder.cc.

175 {
176  G4Material* mat = 0;
177  if(Z >= 1 && Z <= 98) { mat = FindOrBuildMaterial(names[Z-1], true, warn); }
178  return mat;
179 }
std::vector< G4String > names
Float_t mat
Float_t Z
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=true)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetMaterialNames()

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

Definition at line 229 of file G4NistMaterialBuilder.hh.

230 {
231  return names;
232 }
std::vector< G4String > names
Here is the caller graph for this function:

◆ GetMeanIonisationEnergy()

G4double G4NistMaterialBuilder::GetMeanIonisationEnergy ( G4int  index) const
inline

Definition at line 235 of file G4NistMaterialBuilder.hh.

236 {
237  G4double res = 10*index;
238  if(index >= 0 && index < nMaterials) { res = ionPotentials[index]; }
239  return res;
240 }
Int_t index
std::vector< G4double > ionPotentials
double G4double
Definition: G4Types.hh:76
Here is the caller graph for this function:

◆ GetNominalDensity()

G4double G4NistMaterialBuilder::GetNominalDensity ( G4int  index) const
inline

Definition at line 243 of file G4NistMaterialBuilder.hh.

244 {
245  G4double res = 0.0;
246  if(index >= 0 && index < nMaterials) { res = densities[index]; }
247  return res;
248 }
Int_t index
std::vector< G4double > densities
double G4double
Definition: G4Types.hh:76
Here is the caller graph for this function:

◆ HepAndNuclearMaterials()

void G4NistMaterialBuilder::HepAndNuclearMaterials ( )
private

Definition at line 1853 of file G4NistMaterialBuilder.cc.

1854 {
1855  AddMaterial("G4_lH2", 0.0708, 1, 21.8, 1, kStateLiquid, false);
1856  AddMaterial("G4_lN2", 0.807, 7, 82., 1, kStateLiquid, false);
1857  AddMaterial("G4_lO2", 1.141, 8, 95., 1, kStateLiquid, false);
1858  AddMaterial("G4_lAr", 1.396 , 18, 188. , 1, kStateLiquid, false);
1859  AddMaterial("G4_lBr", 3.1028, 35, 343. , 1, kStateLiquid, false);
1860  AddMaterial("G4_lKr", 2.418 , 36, 352. , 1, kStateLiquid, false);
1861  AddMaterial("G4_lXe", 2.953 , 54, 482. , 1, kStateLiquid, false);
1862 
1863  AddMaterial("G4_PbWO4", 8.28, 0, 0.0, 3);
1864  AddElementByAtomCount("O" , 4);
1865  AddElementByAtomCount("Pb", 1);
1866  AddElementByAtomCount("W" , 1);
1867 
1869  AddMaterial("G4_Galactic", density, 1, 21.8, 1, kStateGas);
1870  AddGas("G4_Galactic",2.73*kelvin, 3.e-18*hep_pascal);
1871 
1872  AddMaterial("G4_GRAPHITE_POROUS", 1.7, 6, 78.);
1873  chFormulas[nMaterials-1] = "Graphite";
1874 
1875  // LUCITE is equal to plustiglass
1876  AddMaterial("G4_LUCITE", 1.19, 0, 74., 3);
1877  AddElementByWeightFraction( 1, 0.080538);
1878  AddElementByWeightFraction( 6, 0.599848);
1879  AddElementByWeightFraction( 8, 0.319614);
1880 
1881  // SRIM-2008 materials
1882  AddMaterial("G4_BRASS", 8.52, 0, 0.0, 3);
1883  AddElementByAtomCount("Cu", 62);
1884  AddElementByAtomCount("Zn", 35);
1885  AddElementByAtomCount("Pb" , 3);
1886 
1887  AddMaterial("G4_BRONZE", 8.82, 0, 0.0, 3);
1888  AddElementByAtomCount("Cu", 89);
1889  AddElementByAtomCount("Zn", 9);
1890  AddElementByAtomCount("Pb" , 2);
1891 
1892  // parameters are taken from
1893  // http://www.azom.com/article.aspx?ArticleID=965
1894  AddMaterial("G4_STAINLESS-STEEL", 8.00, 0, 0.0, 3);
1895  AddElementByAtomCount("Fe", 74);
1896  AddElementByAtomCount("Cr", 18);
1897  AddElementByAtomCount("Ni" , 8);
1898 
1899  AddMaterial("G4_CR39", 1.32, 0, 0.0, 3);
1900  AddElementByAtomCount("H", 18);
1901  AddElementByAtomCount("C", 12);
1902  AddElementByAtomCount("O", 7);
1903 
1904  AddMaterial("G4_OCTADECANOL", 0.812, 0, 0.0, 3);
1905  AddElementByAtomCount("H", 38);
1906  AddElementByAtomCount("C", 18);
1907  AddElementByAtomCount("O", 1);
1908 
1909  nHEP = nMaterials;
1910 }
int universe_mean_density
Definition: hepunit.py:307
static const double hep_pascal
Definition: G4SIunits.hh:232
void AddMaterial(const G4String &nameMat, G4double dens, G4int Z=0, G4double pot=0.0, G4int ncomp=1, G4State=kStateSolid, G4bool stp=true)
G4double density
Definition: TRTMaterials.hh:39
function g(Y1, Y2, PT2)
Definition: hijing1.383.f:5206
static const double cm3
Definition: G4SIunits.hh:120
void AddElementByWeightFraction(G4int Z, G4double)
static const double kelvin
Definition: G4SIunits.hh:278
void AddGas(const G4String &nameMat, G4double t=NTP_Temperature, G4double p=CLHEP::STP_Pressure)
std::vector< G4String > chFormulas
double G4double
Definition: G4Types.hh:76
void AddElementByAtomCount(G4int Z, G4int)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Initialise()

void G4NistMaterialBuilder::Initialise ( )
private

Definition at line 715 of file G4NistMaterialBuilder.cc.

716 {
717  if (verbose > 0) {
718  G4cout << "### G4NistMaterialBuilder::Initialise()" << G4endl;
719  }
724  SpaceMaterials();
726 
727  if (verbose > 1) { ListMaterials("all"); }
728 }
G4GLOB_DLL std::ostream G4cout
void ListMaterials(const G4String &) const
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ListBioChemicalMaterials()

void G4NistMaterialBuilder::ListBioChemicalMaterials ( ) const

Definition at line 601 of file G4NistMaterialBuilder.cc.

602 {
603  G4cout << "=============================================================" << G4endl;
604  G4cout << "### Bio-Chemical Materials ##" << G4endl;
605  G4cout << "=============================================================" << G4endl;
606  G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl;
607  G4cout << "=============================================================" << G4endl;
608  for (G4int i=nSpace; i<nMaterials; ++i) {DumpMix(i);}
609  G4cout << "=============================================================" << G4endl;
610 }
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ListHepMaterials()

void G4NistMaterialBuilder::ListHepMaterials ( ) const

Definition at line 577 of file G4NistMaterialBuilder.cc.

578 {
579  G4cout << "=============================================================" << G4endl;
580  G4cout << "### HEP & Nuclear Materials ##" << G4endl;
581  G4cout << "=============================================================" << G4endl;
582  G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl;
583  G4cout << "=============================================================" << G4endl;
584  for (G4int i=nNIST; i<nHEP; ++i) {DumpMix(i);}
585 }
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ListMaterials()

void G4NistMaterialBuilder::ListMaterials ( const G4String mnam) const

Definition at line 530 of file G4NistMaterialBuilder.cc.

531 {
532  if (mnam == "simple") { ListNistSimpleMaterials(); }
533  else if (mnam == "compound") { ListNistCompoundMaterials(); }
534  else if (mnam == "hep") { ListHepMaterials(); }
535  else if (mnam == "space") { ListSpaceMaterials(); }
536  else if (mnam == "bio") { ListBioChemicalMaterials(); }
537 
538  else if (mnam == "all") {
544 
545  } else {
546  G4cout << "### G4NistMaterialBuilder::ListMaterials: Warning "
547  << mnam << " list is not known" << G4endl;
548  }
549 }
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ListNistCompoundMaterials()

void G4NistMaterialBuilder::ListNistCompoundMaterials ( ) const

Definition at line 565 of file G4NistMaterialBuilder.cc.

566 {
567  G4cout << "=============================================================" << G4endl;
568  G4cout << "### Compound Materials from the NIST Data Base ##" << G4endl;
569  G4cout << "=============================================================" << G4endl;
570  G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl;
571  G4cout << "=============================================================" << G4endl;
572  for (G4int i=nElementary; i<nNIST; ++i) {DumpMix(i);}
573 }
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ListNistSimpleMaterials()

void G4NistMaterialBuilder::ListNistSimpleMaterials ( ) const

Definition at line 553 of file G4NistMaterialBuilder.cc.

554 {
555  G4cout << "=======================================================" << G4endl;
556  G4cout << "### Simple Materials from the NIST Data Base ###" << G4endl;
557  G4cout << "=======================================================" << G4endl;
558  G4cout << " Z Name density(g/cm^3) I(eV) " << G4endl;
559  G4cout << "=======================================================" << G4endl;
560  for (G4int i=0; i<nElementary; ++i) {DumpElm(i);}
561 }
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ListSpaceMaterials()

void G4NistMaterialBuilder::ListSpaceMaterials ( ) const

Definition at line 589 of file G4NistMaterialBuilder.cc.

590 {
591  G4cout << "=============================================================" << G4endl;
592  G4cout << "### Space ISS Materials ##" << G4endl;
593  G4cout << "=============================================================" << G4endl;
594  G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl;
595  G4cout << "=============================================================" << G4endl;
596  for (G4int i=nHEP; i<nSpace; ++i) {DumpMix(i);}
597 }
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:
Here is the caller graph for this function:

◆ NistCompoundMaterials()

void G4NistMaterialBuilder::NistCompoundMaterials ( )
private

Definition at line 840 of file G4NistMaterialBuilder.cc.

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

◆ NistCompoundMaterials2()

void G4NistMaterialBuilder::NistCompoundMaterials2 ( )
private

Definition at line 1345 of file G4NistMaterialBuilder.cc.

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

◆ NistSimpleMaterials()

void G4NistMaterialBuilder::NistSimpleMaterials ( )
private

Definition at line 732 of file G4NistMaterialBuilder.cc.

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

◆ SetVerbose()

void G4NistMaterialBuilder::SetVerbose ( G4int  val)

Definition at line 522 of file G4NistMaterialBuilder.cc.

523 {
524  verbose = val;
526 }
G4NistElementBuilder * elmBuilder
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SpaceMaterials()

void G4NistMaterialBuilder::SpaceMaterials ( )
private

Definition at line 1914 of file G4NistMaterialBuilder.cc.

1915 {
1916  // density in g/cm3
1917  AddMaterial("G4_KEVLAR" , 1.44, 0, 0.0, 4);
1918  AddElementByAtomCount("C", 14);
1919  AddElementByAtomCount("H", 10);
1920  AddElementByAtomCount("O", 2);
1921  AddElementByAtomCount("N", 2);
1922 
1923  AddMaterial("G4_DACRON" , 1.40, 0, 0.0, 3); // G4_POLYETHYLENE_TEREPHTALATE
1924  AddElementByAtomCount("C", 10);
1925  AddElementByAtomCount("H", 8);
1926  AddElementByAtomCount("O", 4);
1927 
1928  AddMaterial("G4_NEOPRENE" , 1.23, 0, 0.0, 3); // POLYCLOROPRENE
1929  AddElementByAtomCount("C", 4);
1930  AddElementByAtomCount("H", 5);
1931  AddElementByAtomCount("Cl", 1);
1932 
1933  nSpace = nMaterials;
1934 }
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)
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ atomCount

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

Definition at line 210 of file G4NistMaterialBuilder.hh.

◆ chFormulas

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

Definition at line 204 of file G4NistMaterialBuilder.hh.

◆ components

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

Definition at line 211 of file G4NistMaterialBuilder.hh.

◆ densities

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

Definition at line 206 of file G4NistMaterialBuilder.hh.

◆ elements

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

Definition at line 213 of file G4NistMaterialBuilder.hh.

◆ elmBuilder

G4NistElementBuilder* G4NistMaterialBuilder::elmBuilder
private

Definition at line 192 of file G4NistMaterialBuilder.hh.

◆ first

G4bool G4NistMaterialBuilder::first
private

Definition at line 221 of file G4NistMaterialBuilder.hh.

◆ fractions

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

Definition at line 209 of file G4NistMaterialBuilder.hh.

◆ gasPressure

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

Definition at line 219 of file G4NistMaterialBuilder.hh.

◆ gasTemperature

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

Definition at line 218 of file G4NistMaterialBuilder.hh.

◆ idxGas

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

Definition at line 217 of file G4NistMaterialBuilder.hh.

◆ indexes

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

Definition at line 212 of file G4NistMaterialBuilder.hh.

◆ ionPotentials

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

Definition at line 207 of file G4NistMaterialBuilder.hh.

◆ matIndex

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

Definition at line 214 of file G4NistMaterialBuilder.hh.

◆ names

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

Definition at line 203 of file G4NistMaterialBuilder.hh.

◆ nComponents

G4int G4NistMaterialBuilder::nComponents
private

Definition at line 196 of file G4NistMaterialBuilder.hh.

◆ nCurrent

G4int G4NistMaterialBuilder::nCurrent
private

Definition at line 197 of file G4NistMaterialBuilder.hh.

◆ nElementary

G4int G4NistMaterialBuilder::nElementary
private

Definition at line 198 of file G4NistMaterialBuilder.hh.

◆ nHEP

G4int G4NistMaterialBuilder::nHEP
private

Definition at line 200 of file G4NistMaterialBuilder.hh.

◆ nMaterials

G4int G4NistMaterialBuilder::nMaterials
private

Definition at line 195 of file G4NistMaterialBuilder.hh.

◆ nNIST

G4int G4NistMaterialBuilder::nNIST
private

Definition at line 199 of file G4NistMaterialBuilder.hh.

◆ nSpace

G4int G4NistMaterialBuilder::nSpace
private

Definition at line 201 of file G4NistMaterialBuilder.hh.

◆ states

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

Definition at line 208 of file G4NistMaterialBuilder.hh.

◆ STP

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

Definition at line 215 of file G4NistMaterialBuilder.hh.

◆ verbose

G4int G4NistMaterialBuilder::verbose
private

Definition at line 194 of file G4NistMaterialBuilder.hh.


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