97   if (density < universe_mean_density)
 
   99       G4cout << 
" G4Material WARNING:" 
  100              << 
" define a material with density=0 is not allowed. \n" 
  101              << 
" The material " << name << 
" will be constructed with the" 
  102              << 
" default minimal density: " << universe_mean_density/(
g/
cm3) 
 
  104       density = universe_mean_density;
 
  118   const std::vector<G4String> elmnames = 
 
  122   if(iz < (
G4int)elmnames.size()) { 
 
  126     enam = 
"ELM_" + 
name; 
 
  156   if (density < universe_mean_density)
 
  158       G4cout << 
"--- Warning from G4Material::G4Material()" 
  159              << 
" define a material with density=0 is not allowed. \n" 
  160              << 
" The material " << name << 
" will be constructed with the" 
  161              << 
" default minimal density: " << universe_mean_density/(
g/
cm3) 
 
  163       density = universe_mean_density;
 
  195   if (density < universe_mean_density)
 
  197       G4cout << 
"--- Warning from G4Material::G4Material()" 
  198              << 
" define a material with density=0 is not allowed. \n" 
  199              << 
" The material " << name << 
" will be constructed with the" 
  200              << 
" default minimal density: " << universe_mean_density/(
g/
cm3) 
 
  202       density = universe_mean_density;
 
  229   : fChemicalFormula(
""), fDensity(0.0), fState(
kStateUndefined), fTemp(0.0), 
 
  230     fPressure(0.0), maxNbComponents(0), fArrayLength(0), 
 
  231     fNumberOfComponents(0), fNumberOfElements(0), theElementVector(0), 
 
  232     fMassFractionVector(0), fAtomsVector(0), fMaterialPropertiesTable(0), 
 
  233     fIndexInTable(0), VecNbOfAtomsPerVolume(0), TotNbOfAtomsPerVolume(0), 
 
  234     TotNbOfElectPerVolume(0), fRadlen(0.0), fNuclInterLen(0.0), 
fIonisation(0), 
 
  235     fSandiaTable(0), fBaseMaterial(0), fMassOfMolecule(0.0)
 
  292       G4cout << 
"G4Material WARNING: duplicate name of material " 
  314      Zi = (*theElementVector)[i]->GetZ();
 
  315      Ai = (*theElementVector)[i]->GetA();
 
  378     G4cout << 
"G4Material::AddElement ERROR for " << 
fName << 
" nElement= "  
  381            "Attempt to add more than the declared number of elements.");
 
  408   if(fraction < 0.0 || fraction > 1.0) {
 
  409     G4cout << 
"G4Material::AddElement ERROR for " << 
fName << 
" and "  
  410            << element->
GetName() << 
"  mass fraction= " << fraction 
 
  411            << 
" is wrong " << 
G4endl;
 
  413                  "Attempt to add element with wrong mass fraction");
 
  433     G4cout << 
"G4Material::AddElement ERROR for " << 
fName << 
" nElement= "  
  436            "Attempt to add more than the declared number of elements.");
 
  452       G4cerr << 
"WARNING !! for " << 
fName << 
" sum of fractional masses " 
  453              <<  wtSum << 
" is not 1 - results may be wrong"  
  471   if(fraction < 0.0 || fraction > 1.0) {
 
  472     G4cout << 
"G4Material::AddMaterial ERROR for " << 
fName << 
" and "  
  473            << material->
GetName() << 
"  mass fraction= " << fraction 
 
  476                  "Attempt to add material with wrong mass fraction");      
 
  492     for(
G4int i=0; i<nold; ++i) {
 
  504     for (
G4int elm=0; elm<nelm; ++elm)
 
  524     G4cout << 
"G4Material::AddMaterial ERROR for " << 
fName << 
" nElement= "  
  527            "Attempt to add more than the declared number of components.");
 
  542       G4cout << 
"G4Material::AddMaterial WARNING !! for " << 
fName  
  543              << 
" sum of fractional masses " 
  544              <<  wtSum << 
" is not 1 - results may be wrong"  
  572   static const G4double twothird = 2.0/3.0;
 
  576     G4double A = (*theElementVector)[i]->GetN();
 
  583   NILinv *= amu/lambda0; 
 
  615     G4cout << 
"G4Material::GetMaterial() WARNING: The material: " 
  617            << 
" does not exist in the table. Return NULL pointer." 
  628      G4cout << 
"G4Material ERROR in GetZ. The material: " << 
fName  
  631                   "the Atomic number is not well defined." );
 
  641     G4cout << 
"G4Material ERROR in GetA. The material: " << 
fName  
  644                  "the Atomic mass is not well defined." );
 
  667   std::ios::fmtflags mode = flux.flags();
 
  668   flux.setf(std::ios::fixed,std::ios::floatfield);
 
  672     << 
" Material: "         << std::setw(8) <<  material->
fName 
  674     << 
"  density: "         << std::setw(6) << std::setprecision(3)  
 
  676     << 
"  RadL: "            << std::setw(7)  << std::setprecision(3)  
 
  678     << 
"  Nucl.Int.Length: " << std::setw(7)  << std::setprecision(3)  
 
  680     << 
"\n" << std::setw(30)   
 
  681     << 
"  Imean: "           << std::setw(7)  << std::setprecision(3)  
 
  687       << 
"  temperature: " << std::setw(6) << std::setprecision(2)  
 
  689       << 
"  pressure: "    << std::setw(6) << std::setprecision(2)   
 
  697       << 
"\n          ElmMassFraction: "  
  698       << std::setw(6)<< std::setprecision(2) 
 
  700       << 
"  ElmAbundance "     << std::setw(6)<< std::setprecision(2) 
 
  705   flux.precision(prec);    
 
  706   flux.setf(mode,std::ios::floatfield);
 
  724   flux << 
"\n***** Table : Nb of materials = " << MaterialTable.size() 
 
  727   for (
size_t i=0; i<MaterialTable.size(); ++i) { 
 
static G4MaterialTable theMaterialTable
G4IonisParamMat * GetIonisation() const 
void InitializePointers()
G4int operator==(const G4Material &) const 
G4double GetTotNbOfElectPerVolume() const 
std::vector< G4Element * > G4ElementVector
void CopyPointersOfBaseMaterial()
const G4Material * fBaseMaterial
void AddMaterial(G4Material *material, G4double fraction)
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
const G4String & GetChemicalFormula() const 
void SetMeanExcitationEnergy(G4double value)
const G4String & GetName() const 
G4ElementVector * theElementVector
const std::vector< G4String > & GetNistElementNames() const 
static G4MaterialTable * GetMaterialTable()
std::vector< G4Material * > G4MaterialTable
G4double GetDensity() const 
const G4double w[NPOINTSGL]
G4int fNumberOfComponents
static const double perThousand
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1 
G4IonisParamMat * fIonisation
void ComputeDerivedQuantities()
G4double * fMassFractionVector
const G4ElementVector * GetElementVector() const 
static G4NistManager * Instance()
G4SandiaTable * GetSandiaTable() const 
G4SandiaTable * fSandiaTable
const G4double * GetVecNbOfAtomsPerVolume() const 
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
G4double TotNbOfAtomsPerVolume
G4MaterialPropertiesTable * fMaterialPropertiesTable
static const double perCent
static size_t GetNumberOfMaterials()
G4double GetRadlen() const 
G4Material(const G4String &name, G4double z, G4double a, G4double density, G4State state=kStateUndefined, G4double temp=NTP_Temperature, G4double pressure=CLHEP::STP_Pressure)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static const double kelvin
G4double G4Log(G4double x)
G4double G4Exp(G4double initial_x)
Exponential Function double precision. 
G4String fChemicalFormula
G4double GetTotNbOfAtomsPerVolume() const 
std::ostream & operator<<(std::ostream &flux, const G4Material *material)
static const G4double factor
G4int operator!=(const G4Material &) const 
void ComputeNuclearInterLength()
G4MaterialPropertiesTable * GetMaterialPropertiesTable() const 
G4double GetMassOfMolecule() const 
G4double TotNbOfElectPerVolume
static const double atmosphere
const G4int * GetAtomsVector() const 
G4double GetMeanExcitationEnergy() const 
void AddElement(G4Element *element, G4int nAtoms)
size_t GetNumberOfElements() const 
void ComputeRadiationLength()
const G4String & GetName() const 
std::map< G4Material *, G4double > fMatComponents
const G4double * GetFractionVector() const 
G4double * VecNbOfAtomsPerVolume
G4double GetNuclearInterLength() const 
G4GLOB_DLL std::ostream G4cerr