Geant4  10.02.p03
G4Material Class Reference

#include <G4Material.hh>

Collaboration diagram for G4Material:

Public Member Functions

 G4Material (const G4String &name, G4double z, G4double a, G4double density, G4State state=kStateUndefined, G4double temp=NTP_Temperature, G4double pressure=CLHEP::STP_Pressure)
 
 G4Material (const G4String &name, G4double density, G4int nComponents, G4State state=kStateUndefined, G4double temp=NTP_Temperature, G4double pressure=CLHEP::STP_Pressure)
 
 G4Material (const G4String &name, G4double density, const G4Material *baseMaterial, G4State state=kStateUndefined, G4double temp=NTP_Temperature, G4double pressure=CLHEP::STP_Pressure)
 
void AddElement (G4Element *element, G4int nAtoms)
 
void AddElement (G4Element *element, G4double fraction)
 
void AddMaterial (G4Material *material, G4double fraction)
 
virtual ~G4Material ()
 
void SetChemicalFormula (const G4String &chF)
 
const G4StringGetName () const
 
const G4StringGetChemicalFormula () const
 
G4double GetDensity () const
 
G4State GetState () const
 
G4double GetTemperature () const
 
G4double GetPressure () const
 
size_t GetNumberOfElements () const
 
const G4ElementVectorGetElementVector () const
 
const G4doubleGetFractionVector () const
 
const G4intGetAtomsVector () const
 
const G4ElementGetElement (G4int iel) const
 
const G4doubleGetVecNbOfAtomsPerVolume () const
 
G4double GetTotNbOfAtomsPerVolume () const
 
G4double GetTotNbOfElectPerVolume () const
 
const G4doubleGetAtomicNumDensityVector () const
 
G4double GetElectronDensity () const
 
G4double GetRadlen () const
 
G4double GetNuclearInterLength () const
 
G4IonisParamMatGetIonisation () const
 
G4SandiaTableGetSandiaTable () const
 
const G4MaterialGetBaseMaterial () const
 
const std::map< G4Material *, G4double > & GetMatComponents () const
 
G4double GetMassOfMolecule () const
 
G4double GetZ () const
 
G4double GetA () const
 
void SetMaterialPropertiesTable (G4MaterialPropertiesTable *anMPT)
 
G4MaterialPropertiesTableGetMaterialPropertiesTable () const
 
size_t GetIndex () const
 
G4int operator== (const G4Material &) const
 
G4int operator!= (const G4Material &) const
 
 G4Material (__void__ &)
 
void SetName (const G4String &name)
 

Static Public Member Functions

static G4MaterialTableGetMaterialTable ()
 
static size_t GetNumberOfMaterials ()
 
static G4MaterialGetMaterial (const G4String &name, G4bool warning=true)
 

Private Member Functions

 G4Material (const G4Material &)
 
const G4Materialoperator= (const G4Material &)
 
void InitializePointers ()
 
void ComputeDerivedQuantities ()
 
void ComputeRadiationLength ()
 
void ComputeNuclearInterLength ()
 
void CopyPointersOfBaseMaterial ()
 

Private Attributes

G4String fName
 
G4String fChemicalFormula
 
G4double fDensity
 
G4State fState
 
G4double fTemp
 
G4double fPressure
 
G4int maxNbComponents
 
G4int fArrayLength
 
G4int fNumberOfComponents
 
G4int fNumberOfElements
 
G4ElementVectortheElementVector
 
G4doublefMassFractionVector
 
G4intfAtomsVector
 
G4MaterialPropertiesTablefMaterialPropertiesTable
 
size_t fIndexInTable
 
G4doubleVecNbOfAtomsPerVolume
 
G4double TotNbOfAtomsPerVolume
 
G4double TotNbOfElectPerVolume
 
G4double fRadlen
 
G4double fNuclInterLen
 
G4IonisParamMatfIonisation
 
G4SandiaTablefSandiaTable
 
const G4MaterialfBaseMaterial
 
G4double fMassOfMolecule
 
std::map< G4Material *, G4doublefMatComponents
 

Static Private Attributes

static G4MaterialTable theMaterialTable
 

Friends

std::ostream & operator<< (std::ostream &, const G4Material *)
 
std::ostream & operator<< (std::ostream &, const G4Material &)
 
std::ostream & operator<< (std::ostream &, G4MaterialTable)
 

Detailed Description

Definition at line 120 of file G4Material.hh.

Constructor & Destructor Documentation

◆ G4Material() [1/5]

G4Material::G4Material ( const G4String name,
G4double  z,
G4double  a,
G4double  density,
G4State  state = kStateUndefined,
G4double  temp = NTP_Temperature,
G4double  pressure = CLHEP::STP_Pressure 
)

Definition at line 90 of file G4Material.cc.

93  : fName(name)
94 {
96 
98  {
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)
103  << "g/cm3" << G4endl;
105  }
106 
107  fDensity = density;
108  fState = state;
109  fTemp = temp;
110  fPressure = pressure;
111 
112  // Initialize theElementVector allocating one
113  // element corresponding to this material
117 
118  const std::vector<G4String> elmnames =
120  G4String enam, snam;
121  G4int iz = G4lrint(z);
122  if(iz < (G4int)elmnames.size()) {
123  snam = elmnames[iz];
124  enam = snam;
125  } else {
126  enam = "ELM_" + name;
127  snam = name;
128  }
129  theElementVector->push_back(new G4Element(enam, snam, z, a));
130 
131  fMassFractionVector = new G4double[1];
132  fMassFractionVector[0] = 1. ;
134 
135  if (fState == kStateUndefined)
136  {
138  else { fState = kStateGas; }
139  }
140 
142 }
void InitializePointers()
Definition: G4Material.cc:260
std::vector< G4Element * > G4ElementVector
G4int fNumberOfElements
Definition: G4Material.hh:322
int kGasThreshold
Definition: hepunit.py:304
int universe_mean_density
Definition: hepunit.py:307
G4double fMassOfMolecule
Definition: G4Material.hh:350
G4String name
Definition: TRTMaterials.hh:40
G4ElementVector * theElementVector
Definition: G4Material.hh:323
G4int fNumberOfComponents
Definition: G4Material.hh:320
G4double fDensity
Definition: G4Material.hh:311
void ComputeDerivedQuantities()
Definition: G4Material.cc:302
G4double * fMassFractionVector
Definition: G4Material.hh:324
int G4int
Definition: G4Types.hh:78
static G4NistManager * Instance()
float Avogadro
Definition: hepunit.py:253
G4int maxNbComponents
Definition: G4Material.hh:318
G4double density
Definition: TRTMaterials.hh:39
function g(Y1, Y2, PT2)
Definition: hijing1.383.f:5206
G4GLOB_DLL std::ostream G4cout
G4double iz
Definition: TRTMaterials.hh:39
static const double cm3
Definition: G4SIunits.hh:120
G4int fArrayLength
Definition: G4Material.hh:319
int G4lrint(double ad)
Definition: templates.hh:163
G4State fState
Definition: G4Material.hh:313
const std::vector< G4String > & GetNistElementNames() const
#define G4endl
Definition: G4ios.hh:61
G4double fTemp
Definition: G4Material.hh:315
double G4double
Definition: G4Types.hh:76
G4double fPressure
Definition: G4Material.hh:316
G4String fName
Definition: G4Material.hh:309
Here is the call graph for this function:
Here is the caller graph for this function:

◆ G4Material() [2/5]

G4Material::G4Material ( const G4String name,
G4double  density,
G4int  nComponents,
G4State  state = kStateUndefined,
G4double  temp = NTP_Temperature,
G4double  pressure = CLHEP::STP_Pressure 
)

Definition at line 149 of file G4Material.cc.

152  : fName(name)
153 {
155 
157  {
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)
162  << "g/cm3" << G4endl;
164  }
165 
166  fDensity = density;
167  fState = state;
168  fTemp = temp;
169  fPressure = pressure;
170 
176 
177  if (fState == kStateUndefined)
178  {
180  else { fState = kStateGas; }
181  }
182 }
void InitializePointers()
Definition: G4Material.cc:260
std::vector< G4Element * > G4ElementVector
G4int fNumberOfElements
Definition: G4Material.hh:322
int kGasThreshold
Definition: hepunit.py:304
int universe_mean_density
Definition: hepunit.py:307
G4ElementVector * theElementVector
Definition: G4Material.hh:323
G4int fNumberOfComponents
Definition: G4Material.hh:320
G4double fDensity
Definition: G4Material.hh:311
G4int nComponents
Definition: TRTMaterials.hh:41
G4int maxNbComponents
Definition: G4Material.hh:318
G4double density
Definition: TRTMaterials.hh:39
function g(Y1, Y2, PT2)
Definition: hijing1.383.f:5206
G4GLOB_DLL std::ostream G4cout
static const double cm3
Definition: G4SIunits.hh:120
G4int fArrayLength
Definition: G4Material.hh:319
G4State fState
Definition: G4Material.hh:313
#define G4endl
Definition: G4ios.hh:61
G4double fTemp
Definition: G4Material.hh:315
G4double fPressure
Definition: G4Material.hh:316
G4String fName
Definition: G4Material.hh:309
Here is the call graph for this function:

◆ G4Material() [3/5]

G4Material::G4Material ( const G4String name,
G4double  density,
const G4Material baseMaterial,
G4State  state = kStateUndefined,
G4double  temp = NTP_Temperature,
G4double  pressure = CLHEP::STP_Pressure 
)

Definition at line 188 of file G4Material.cc.

191  : fName(name)
192 {
194 
196  {
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)
201  << "g/cm3" << G4endl;
203  }
204 
205  fDensity = density;
206  fState = state;
207  fTemp = temp;
208  fPressure = pressure;
209 
210  fBaseMaterial = bmat;
213 
217 
219 
221 }
void InitializePointers()
Definition: G4Material.cc:260
void CopyPointersOfBaseMaterial()
Definition: G4Material.cc:332
G4int fNumberOfElements
Definition: G4Material.hh:322
const G4Material * fBaseMaterial
Definition: G4Material.hh:349
int universe_mean_density
Definition: hepunit.py:307
G4double fMassOfMolecule
Definition: G4Material.hh:350
G4MaterialPropertiesTable * GetMaterialPropertiesTable() const
Definition: G4Material.hh:252
G4int fNumberOfComponents
Definition: G4Material.hh:320
G4double fDensity
Definition: G4Material.hh:311
G4int maxNbComponents
Definition: G4Material.hh:318
G4double density
Definition: TRTMaterials.hh:39
const G4String & GetChemicalFormula() const
Definition: G4Material.hh:179
function g(Y1, Y2, PT2)
Definition: hijing1.383.f:5206
G4double GetMassOfMolecule() const
Definition: G4Material.hh:242
G4GLOB_DLL std::ostream G4cout
G4MaterialPropertiesTable * fMaterialPropertiesTable
Definition: G4Material.hh:327
static const double cm3
Definition: G4SIunits.hh:120
G4String fChemicalFormula
Definition: G4Material.hh:310
size_t GetNumberOfElements() const
Definition: G4Material.hh:186
G4State fState
Definition: G4Material.hh:313
#define G4endl
Definition: G4ios.hh:61
G4double fTemp
Definition: G4Material.hh:315
G4double fPressure
Definition: G4Material.hh:316
G4String fName
Definition: G4Material.hh:309
Here is the call graph for this function:

◆ ~G4Material()

G4Material::~G4Material ( )
virtual

Definition at line 241 of file G4Material.cc.

242 {
243  // G4cout << "### Destruction of material " << fName << " started" <<G4endl;
244  if(!fBaseMaterial) {
245  if (theElementVector) { delete theElementVector; }
246  if (fMassFractionVector) { delete [] fMassFractionVector; }
247  if (fAtomsVector) { delete [] fAtomsVector; }
248  if (fSandiaTable) { delete fSandiaTable; }
249  }
250  if (fIonisation) { delete fIonisation; }
251  if (VecNbOfAtomsPerVolume) { delete [] VecNbOfAtomsPerVolume; }
252 
253  // Remove this material from theMaterialTable.
254  //
256 }
static G4MaterialTable theMaterialTable
Definition: G4Material.hh:330
const G4Material * fBaseMaterial
Definition: G4Material.hh:349
G4ElementVector * theElementVector
Definition: G4Material.hh:323
size_t fIndexInTable
Definition: G4Material.hh:331
G4IonisParamMat * fIonisation
Definition: G4Material.hh:344
G4double * fMassFractionVector
Definition: G4Material.hh:324
G4SandiaTable * fSandiaTable
Definition: G4Material.hh:345
G4int * fAtomsVector
Definition: G4Material.hh:325
G4double * VecNbOfAtomsPerVolume
Definition: G4Material.hh:338

◆ G4Material() [4/5]

G4Material::G4Material ( __void__ &  )

Definition at line 228 of file G4Material.cc.

230  fPressure(0.0), maxNbComponents(0), fArrayLength(0),
236 {
237 }
G4int fNumberOfElements
Definition: G4Material.hh:322
const G4Material * fBaseMaterial
Definition: G4Material.hh:349
G4double fMassOfMolecule
Definition: G4Material.hh:350
G4ElementVector * theElementVector
Definition: G4Material.hh:323
size_t fIndexInTable
Definition: G4Material.hh:331
G4int fNumberOfComponents
Definition: G4Material.hh:320
G4double fDensity
Definition: G4Material.hh:311
G4IonisParamMat * fIonisation
Definition: G4Material.hh:344
G4double * fMassFractionVector
Definition: G4Material.hh:324
G4int maxNbComponents
Definition: G4Material.hh:318
G4SandiaTable * fSandiaTable
Definition: G4Material.hh:345
G4double TotNbOfAtomsPerVolume
Definition: G4Material.hh:339
G4MaterialPropertiesTable * fMaterialPropertiesTable
Definition: G4Material.hh:327
G4int * fAtomsVector
Definition: G4Material.hh:325
G4double fRadlen
Definition: G4Material.hh:341
G4double fNuclInterLen
Definition: G4Material.hh:342
G4int fArrayLength
Definition: G4Material.hh:319
G4String fChemicalFormula
Definition: G4Material.hh:310
G4double TotNbOfElectPerVolume
Definition: G4Material.hh:340
G4State fState
Definition: G4Material.hh:313
G4double fTemp
Definition: G4Material.hh:315
G4double fPressure
Definition: G4Material.hh:316
G4double * VecNbOfAtomsPerVolume
Definition: G4Material.hh:338

◆ G4Material() [5/5]

G4Material::G4Material ( const G4Material )
private

Member Function Documentation

◆ AddElement() [1/2]

void G4Material::AddElement ( G4Element element,
G4int  nAtoms 
)

Definition at line 364 of file G4Material.cc.

365 {
366  // initialization
367  if ( fNumberOfElements == 0 ) {
370  }
371 
372  // filling ...
374  theElementVector->push_back(element);
377  } else {
378  G4cout << "G4Material::AddElement ERROR for " << fName << " nElement= "
380  G4Exception ("G4Material::AddElement()", "mat031", FatalException,
381  "Attempt to add more than the declared number of elements.");
382  }
383  // filled.
385  // compute proportion by mass
386  G4int i=0;
387  G4double Amol = 0.;
388  for (i=0; i<fNumberOfElements; ++i) {
389  G4double w = fAtomsVector[i]*(*theElementVector)[i]->GetA();
390  Amol += w;
391  fMassFractionVector[i] = w;
392  }
393  for (i=0; i<fNumberOfElements; ++i) {
394  fMassFractionVector[i] /= Amol;
395  }
396 
397  fMassOfMolecule = Amol/Avogadro;
399  }
400 }
G4int fNumberOfElements
Definition: G4Material.hh:322
G4double fMassOfMolecule
Definition: G4Material.hh:350
G4ElementVector * theElementVector
Definition: G4Material.hh:323
G4int fNumberOfComponents
Definition: G4Material.hh:320
void ComputeDerivedQuantities()
Definition: G4Material.cc:302
G4double * fMassFractionVector
Definition: G4Material.hh:324
int G4int
Definition: G4Types.hh:78
float Avogadro
Definition: hepunit.py:253
G4int maxNbComponents
Definition: G4Material.hh:318
G4GLOB_DLL std::ostream G4cout
G4int * fAtomsVector
Definition: G4Material.hh:325
G4int fArrayLength
Definition: G4Material.hh:319
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
G4String fName
Definition: G4Material.hh:309
Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddElement() [2/2]

void G4Material::AddElement ( G4Element element,
G4double  fraction 
)

Definition at line 406 of file G4Material.cc.

407 {
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;
412  G4Exception ("G4Material::AddElement()", "mat032", FatalException,
413  "Attempt to add element with wrong mass fraction");
414  }
415  // initialization
416  if (fNumberOfComponents == 0) {
419  }
420  // filling ...
422  G4int el = 0;
423  // Loop checking, 07-Aug-2015, Vladimir Ivanchenko
424  while ((el<fNumberOfElements)&&(element!=(*theElementVector)[el])) { ++el; }
425  if (el<fNumberOfElements) fMassFractionVector[el] += fraction;
426  else {
427  theElementVector->push_back(element);
428  fMassFractionVector[el] = fraction;
430  }
432  } else {
433  G4cout << "G4Material::AddElement ERROR for " << fName << " nElement= "
435  G4Exception ("G4Material::AddElement()", "mat033", FatalException,
436  "Attempt to add more than the declared number of elements.");
437  }
438 
439  // filled.
441 
442  G4int i=0;
443  G4double Zmol(0.), Amol(0.);
444  // check sum of weights -- OK?
445  G4double wtSum(0.0);
446  for (i=0; i<fNumberOfElements; ++i) {
447  wtSum += fMassFractionVector[i];
448  Zmol += fMassFractionVector[i]*(*theElementVector)[i]->GetZ();
449  Amol += fMassFractionVector[i]*(*theElementVector)[i]->GetA();
450  }
451  if (std::fabs(1.-wtSum) > perThousand) {
452  G4cerr << "WARNING !! for " << fName << " sum of fractional masses "
453  << wtSum << " is not 1 - results may be wrong"
454  << G4endl;
455  }
456  for (i=0; i<fNumberOfElements; ++i) {
457  fAtomsVector[i] =
459  }
460 
462  }
463 }
G4int fNumberOfElements
Definition: G4Material.hh:322
G4ElementVector * theElementVector
Definition: G4Material.hh:323
G4int fNumberOfComponents
Definition: G4Material.hh:320
static const double perThousand
Definition: G4SIunits.hh:330
void ComputeDerivedQuantities()
Definition: G4Material.cc:302
G4double * fMassFractionVector
Definition: G4Material.hh:324
int G4int
Definition: G4Types.hh:78
G4int maxNbComponents
Definition: G4Material.hh:318
G4GLOB_DLL std::ostream G4cout
G4int * fAtomsVector
Definition: G4Material.hh:325
G4double GetA() const
Definition: G4Material.cc:638
G4int fArrayLength
Definition: G4Material.hh:319
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
const G4String & GetName() const
Definition: G4Element.hh:127
int G4lrint(double ad)
Definition: templates.hh:163
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
G4String fName
Definition: G4Material.hh:309
G4GLOB_DLL std::ostream G4cerr
Here is the call graph for this function:

◆ AddMaterial()

void G4Material::AddMaterial ( G4Material material,
G4double  fraction 
)

store massFraction of material component

Definition at line 469 of file G4Material.cc.

470 {
471  if(fraction < 0.0 || fraction > 1.0) {
472  G4cout << "G4Material::AddMaterial ERROR for " << fName << " and "
473  << material->GetName() << " mass fraction= " << fraction
474  << " is wrong ";
475  G4Exception ("G4Material::AddMaterial()", "mat034", FatalException,
476  "Attempt to add material with wrong mass fraction");
477  }
478  // initialization
479  if (fNumberOfComponents == 0) {
482  }
483 
484  G4int nelm = material->GetNumberOfElements();
485 
486  // arrays should be extended
487  if(nelm > 1) {
488  G4int nold = fArrayLength;
489  fArrayLength += nelm - 1;
490  G4double* v1 = new G4double[fArrayLength];
491  G4int* i1 = new G4int[fArrayLength];
492  for(G4int i=0; i<nold; ++i) {
493  v1[i] = fMassFractionVector[i];
494  i1[i] = fAtomsVector[i];
495  }
496  delete [] fAtomsVector;
497  delete [] fMassFractionVector;
498  fMassFractionVector = v1;
499  fAtomsVector = i1;
500  }
501 
502  // filling ...
504  for (G4int elm=0; elm<nelm; ++elm)
505  {
506  G4Element* element = (*(material->GetElementVector()))[elm];
507  G4int el = 0;
508  // Loop checking, 07-Aug-2015, Vladimir Ivanchenko
509  while ((el<fNumberOfElements)&&(element!=(*theElementVector)[el])) el++;
510  if (el < fNumberOfElements) fMassFractionVector[el] += fraction
511  *(material->GetFractionVector())[elm];
512  else {
513  theElementVector->push_back(element);
514  fMassFractionVector[el] = fraction
515  *(material->GetFractionVector())[elm];
517  }
518  }
521  fMatComponents[material] = fraction;
522 
523  } else {
524  G4cout << "G4Material::AddMaterial ERROR for " << fName << " nElement= "
526  G4Exception ("G4Material::AddMaterial()", "mat035", FatalException,
527  "Attempt to add more than the declared number of components.");
528  }
529 
530  // filled.
532  G4int i=0;
533  G4double Zmol(0.), Amol(0.);
534  // check sum of weights -- OK?
535  G4double wtSum(0.0);
536  for (i=0; i<fNumberOfElements; ++i) {
537  wtSum += fMassFractionVector[i];
538  Zmol += fMassFractionVector[i]*(*theElementVector)[i]->GetZ();
539  Amol += fMassFractionVector[i]*(*theElementVector)[i]->GetA();
540  }
541  if (std::fabs(1.-wtSum) > perThousand) {
542  G4cout << "G4Material::AddMaterial WARNING !! for " << fName
543  << " sum of fractional masses "
544  << wtSum << " is not 1 - results may be wrong"
545  << G4endl;
546  }
547  for (i=0; i<fNumberOfElements; ++i) {
548  fAtomsVector[i] =
550  }
551 
553  }
554 }
G4int fNumberOfElements
Definition: G4Material.hh:322
G4ElementVector * theElementVector
Definition: G4Material.hh:323
const G4double * GetFractionVector() const
Definition: G4Material.hh:194
G4int fNumberOfComponents
Definition: G4Material.hh:320
static const double perThousand
Definition: G4SIunits.hh:330
void ComputeDerivedQuantities()
Definition: G4Material.cc:302
G4double * fMassFractionVector
Definition: G4Material.hh:324
int G4int
Definition: G4Types.hh:78
G4int maxNbComponents
Definition: G4Material.hh:318
string material
Definition: eplot.py:19
G4GLOB_DLL std::ostream G4cout
G4int * fAtomsVector
Definition: G4Material.hh:325
G4double GetA() const
Definition: G4Material.cc:638
G4int fArrayLength
Definition: G4Material.hh:319
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
int G4lrint(double ad)
Definition: templates.hh:163
size_t GetNumberOfElements() const
Definition: G4Material.hh:186
#define G4endl
Definition: G4ios.hh:61
const G4ElementVector * GetElementVector() const
Definition: G4Material.hh:190
double G4double
Definition: G4Types.hh:76
const G4String & GetName() const
Definition: G4Material.hh:178
std::map< G4Material *, G4double > fMatComponents
Definition: G4Material.hh:351
G4String fName
Definition: G4Material.hh:309
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeDerivedQuantities()

void G4Material::ComputeDerivedQuantities ( )
private

Definition at line 302 of file G4Material.cc.

303 {
304  // Header routine to compute various properties of material.
305  //
306 
307  // Number of atoms per volume (per element), total nb of electrons per volume
308  G4double Zi, Ai;
310  if (VecNbOfAtomsPerVolume) { delete [] VecNbOfAtomsPerVolume; }
313  for (G4int i=0; i<fNumberOfElements; ++i) {
314  Zi = (*theElementVector)[i]->GetZ();
315  Ai = (*theElementVector)[i]->GetA();
319  }
320 
323 
324  if (fIonisation) { delete fIonisation; }
325  fIonisation = new G4IonisParamMat(this);
326  if (fSandiaTable) { delete fSandiaTable; }
327  fSandiaTable = new G4SandiaTable(this);
328 }
G4int fNumberOfElements
Definition: G4Material.hh:322
G4double fDensity
Definition: G4Material.hh:311
G4IonisParamMat * fIonisation
Definition: G4Material.hh:344
G4double * fMassFractionVector
Definition: G4Material.hh:324
int G4int
Definition: G4Types.hh:78
float Avogadro
Definition: hepunit.py:253
G4SandiaTable * fSandiaTable
Definition: G4Material.hh:345
G4double TotNbOfAtomsPerVolume
Definition: G4Material.hh:339
void ComputeNuclearInterLength()
Definition: G4Material.cc:569
G4double TotNbOfElectPerVolume
Definition: G4Material.hh:340
void ComputeRadiationLength()
Definition: G4Material.cc:558
double G4double
Definition: G4Types.hh:76
G4double * VecNbOfAtomsPerVolume
Definition: G4Material.hh:338
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeNuclearInterLength()

void G4Material::ComputeNuclearInterLength ( )
private

Definition at line 569 of file G4Material.cc.

570 {
571  static const G4double lambda0 = 35*CLHEP::g/CLHEP::cm2;
572  static const G4double twothird = 2.0/3.0;
573  G4double NILinv = 0.0;
574  for (G4int i=0; i<fNumberOfElements; ++i) {
575  G4int Z = G4lrint( (*theElementVector)[i]->GetZ());
576  G4double A = (*theElementVector)[i]->GetN();
577  if(1 == Z) {
578  NILinv += VecNbOfAtomsPerVolume[i]*A;
579  } else {
580  NILinv += VecNbOfAtomsPerVolume[i]*G4Exp(twothird*G4Log(A));
581  }
582  }
583  NILinv *= amu/lambda0;
584  fNuclInterLen = (NILinv <= 0.0 ? DBL_MAX : 1./NILinv);
585 }
G4double GetZ() const
Definition: G4Material.cc:625
G4int fNumberOfElements
Definition: G4Material.hh:322
G4ElementVector * theElementVector
Definition: G4Material.hh:323
int G4int
Definition: G4Types.hh:78
double A(double temperature)
Float_t Z
static const double g
static const double cm2
Definition: SystemOfUnits.h:99
G4double fNuclInterLen
Definition: G4Material.hh:342
G4double G4Log(G4double x)
Definition: G4Log.hh:230
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183
int G4lrint(double ad)
Definition: templates.hh:163
double G4double
Definition: G4Types.hh:76
#define DBL_MAX
Definition: templates.hh:83
G4double * VecNbOfAtomsPerVolume
Definition: G4Material.hh:338
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeRadiationLength()

void G4Material::ComputeRadiationLength ( )
private

Definition at line 558 of file G4Material.cc.

559 {
560  G4double radinv = 0.0 ;
561  for (G4int i=0;i<fNumberOfElements;++i) {
562  radinv += VecNbOfAtomsPerVolume[i]*((*theElementVector)[i]->GetfRadTsai());
563  }
564  fRadlen = (radinv <= 0.0 ? DBL_MAX : 1./radinv);
565 }
G4int fNumberOfElements
Definition: G4Material.hh:322
int G4int
Definition: G4Types.hh:78
G4double fRadlen
Definition: G4Material.hh:341
double G4double
Definition: G4Types.hh:76
#define DBL_MAX
Definition: templates.hh:83
G4double * VecNbOfAtomsPerVolume
Definition: G4Material.hh:338
Here is the caller graph for this function:

◆ CopyPointersOfBaseMaterial()

void G4Material::CopyPointersOfBaseMaterial ( )
private

Definition at line 332 of file G4Material.cc.

333 {
337 
341  const_cast<G4double*>(fBaseMaterial->GetFractionVector());
342  fAtomsVector = const_cast<G4int*>(fBaseMaterial->GetAtomsVector());
343 
345  if (VecNbOfAtomsPerVolume) { delete [] VecNbOfAtomsPerVolume; }
347  for (G4int i=0; i<fNumberOfElements; ++i) {
348  VecNbOfAtomsPerVolume[i] = factor*v[i];
349  }
352 
353  if (fIonisation) { delete fIonisation; }
354  fIonisation = new G4IonisParamMat(this);
355 
358 }
G4IonisParamMat * GetIonisation() const
Definition: G4Material.hh:226
std::vector< G4Element * > G4ElementVector
G4int fNumberOfElements
Definition: G4Material.hh:322
const G4Material * fBaseMaterial
Definition: G4Material.hh:349
void SetMeanExcitationEnergy(G4double value)
G4double GetTotNbOfAtomsPerVolume() const
Definition: G4Material.hh:209
G4ElementVector * theElementVector
Definition: G4Material.hh:323
const G4double * GetFractionVector() const
Definition: G4Material.hh:194
G4double GetDensity() const
Definition: G4Material.hh:180
G4double fDensity
Definition: G4Material.hh:311
G4IonisParamMat * fIonisation
Definition: G4Material.hh:344
G4double * fMassFractionVector
Definition: G4Material.hh:324
int G4int
Definition: G4Types.hh:78
G4SandiaTable * fSandiaTable
Definition: G4Material.hh:345
G4double GetMeanExcitationEnergy() const
G4double TotNbOfAtomsPerVolume
Definition: G4Material.hh:339
const G4double * GetVecNbOfAtomsPerVolume() const
Definition: G4Material.hh:206
G4int * fAtomsVector
Definition: G4Material.hh:325
G4double fRadlen
Definition: G4Material.hh:341
const G4int * GetAtomsVector() const
Definition: G4Material.hh:198
G4double fNuclInterLen
Definition: G4Material.hh:342
G4double GetNuclearInterLength() const
Definition: G4Material.hh:223
static const G4double factor
G4double TotNbOfElectPerVolume
Definition: G4Material.hh:340
G4SandiaTable * GetSandiaTable() const
Definition: G4Material.hh:229
const G4ElementVector * GetElementVector() const
Definition: G4Material.hh:190
double G4double
Definition: G4Types.hh:76
G4double GetTotNbOfElectPerVolume() const
Definition: G4Material.hh:212
G4double GetRadlen() const
Definition: G4Material.hh:220
G4double * VecNbOfAtomsPerVolume
Definition: G4Material.hh:338
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetA()

G4double G4Material::GetA ( ) const

Definition at line 638 of file G4Material.cc.

639 {
640  if (fNumberOfElements > 1) {
641  G4cout << "G4Material ERROR in GetA. The material: " << fName
642  << " is a mixture.";
643  G4Exception ("G4Material::GetA()", "mat037", FatalException,
644  "the Atomic mass is not well defined." );
645  }
646  return (*theElementVector)[0]->GetA();
647 }
G4int fNumberOfElements
Definition: G4Material.hh:322
G4ElementVector * theElementVector
Definition: G4Material.hh:323
G4GLOB_DLL std::ostream G4cout
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
G4String fName
Definition: G4Material.hh:309
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetAtomicNumDensityVector()

const G4double* G4Material::GetAtomicNumDensityVector ( ) const
inline

Definition at line 216 of file G4Material.hh.

216 {return VecNbOfAtomsPerVolume;}
G4double * VecNbOfAtomsPerVolume
Definition: G4Material.hh:338
Here is the caller graph for this function:

◆ GetAtomsVector()

const G4int* G4Material::GetAtomsVector ( ) const
inline

Definition at line 198 of file G4Material.hh.

198 {return fAtomsVector;}
G4int * fAtomsVector
Definition: G4Material.hh:325
Here is the caller graph for this function:

◆ GetBaseMaterial()

const G4Material* G4Material::GetBaseMaterial ( ) const
inline

Definition at line 233 of file G4Material.hh.

233 {return fBaseMaterial;}
const G4Material * fBaseMaterial
Definition: G4Material.hh:349
Here is the caller graph for this function:

◆ GetChemicalFormula()

const G4String& G4Material::GetChemicalFormula ( ) const
inline

Definition at line 179 of file G4Material.hh.

179 {return fChemicalFormula;}
G4String fChemicalFormula
Definition: G4Material.hh:310
Here is the caller graph for this function:

◆ GetDensity()

G4double G4Material::GetDensity ( ) const
inline

Definition at line 180 of file G4Material.hh.

180 {return fDensity;}
G4double fDensity
Definition: G4Material.hh:311

◆ GetElectronDensity()

G4double G4Material::GetElectronDensity ( ) const
inline

Definition at line 217 of file G4Material.hh.

217 {return TotNbOfElectPerVolume;}
G4double TotNbOfElectPerVolume
Definition: G4Material.hh:340

◆ GetElement()

const G4Element* G4Material::GetElement ( G4int  iel) const
inline

Definition at line 202 of file G4Material.hh.

202 {return (*theElementVector)[iel];}
G4ElementVector * theElementVector
Definition: G4Material.hh:323
Here is the caller graph for this function:

◆ GetElementVector()

const G4ElementVector* G4Material::GetElementVector ( ) const
inline

Definition at line 190 of file G4Material.hh.

190 {return theElementVector;}
G4ElementVector * theElementVector
Definition: G4Material.hh:323

◆ GetFractionVector()

const G4double* G4Material::GetFractionVector ( ) const
inline

Definition at line 194 of file G4Material.hh.

194 {return fMassFractionVector;}
G4double * fMassFractionVector
Definition: G4Material.hh:324
Here is the caller graph for this function:

◆ GetIndex()

size_t G4Material::GetIndex ( ) const
inline

Definition at line 262 of file G4Material.hh.

262 {return fIndexInTable;}
size_t fIndexInTable
Definition: G4Material.hh:331
Here is the call graph for this function:

◆ GetIonisation()

G4IonisParamMat* G4Material::GetIonisation ( ) const
inline

Definition at line 226 of file G4Material.hh.

226 {return fIonisation;}
G4IonisParamMat * fIonisation
Definition: G4Material.hh:344
Here is the caller graph for this function:

◆ GetMassOfMolecule()

G4double G4Material::GetMassOfMolecule ( ) const
inline

Definition at line 242 of file G4Material.hh.

242 {return fMassOfMolecule;}
G4double fMassOfMolecule
Definition: G4Material.hh:350
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetMatComponents()

const std::map<G4Material*,G4double>& G4Material::GetMatComponents ( ) const
inline

Definition at line 237 of file G4Material.hh.

238  {return fMatComponents;}
std::map< G4Material *, G4double > fMatComponents
Definition: G4Material.hh:351
Here is the caller graph for this function:

◆ GetMaterial()

G4Material * G4Material::GetMaterial ( const G4String name,
G4bool  warning = true 
)
static

Definition at line 604 of file G4Material.cc.

605 {
606  // search the material by its name
607  for (size_t J=0 ; J<theMaterialTable.size() ; ++J)
608  {
609  if (theMaterialTable[J]->GetName() == materialName)
610  { return theMaterialTable[J]; }
611  }
612 
613  // the material does not exist in the table
614  if (warning) {
615  G4cout << "G4Material::GetMaterial() WARNING: The material: "
616  << materialName
617  << " does not exist in the table. Return NULL pointer."
618  << G4endl;
619  }
620  return 0;
621 }
static G4MaterialTable theMaterialTable
Definition: G4Material.hh:330
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
const G4String & GetName() const
Definition: G4Material.hh:178
Here is the call graph for this function:

◆ GetMaterialPropertiesTable()

G4MaterialPropertiesTable* G4Material::GetMaterialPropertiesTable ( ) const
inline

Definition at line 252 of file G4Material.hh.

253  {return fMaterialPropertiesTable;}
G4MaterialPropertiesTable * fMaterialPropertiesTable
Definition: G4Material.hh:327
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetMaterialTable()

G4MaterialTable * G4Material::GetMaterialTable ( )
static

Definition at line 589 of file G4Material.cc.

590 {
591  return &theMaterialTable;
592 }
static G4MaterialTable theMaterialTable
Definition: G4Material.hh:330

◆ GetName()

const G4String& G4Material::GetName ( void  ) const
inline

Definition at line 178 of file G4Material.hh.

178 {return fName;}
G4String fName
Definition: G4Material.hh:309

◆ GetNuclearInterLength()

G4double G4Material::GetNuclearInterLength ( ) const
inline

Definition at line 223 of file G4Material.hh.

223 {return fNuclInterLen;}
G4double fNuclInterLen
Definition: G4Material.hh:342
Here is the caller graph for this function:

◆ GetNumberOfElements()

size_t G4Material::GetNumberOfElements ( ) const
inline

Definition at line 186 of file G4Material.hh.

186 {return fNumberOfElements;}
G4int fNumberOfElements
Definition: G4Material.hh:322

◆ GetNumberOfMaterials()

size_t G4Material::GetNumberOfMaterials ( )
static

Definition at line 596 of file G4Material.cc.

597 {
598  return theMaterialTable.size();
599 }
static G4MaterialTable theMaterialTable
Definition: G4Material.hh:330
Here is the caller graph for this function:

◆ GetPressure()

G4double G4Material::GetPressure ( ) const
inline

Definition at line 183 of file G4Material.hh.

183 {return fPressure;}
G4double fPressure
Definition: G4Material.hh:316
Here is the caller graph for this function:

◆ GetRadlen()

G4double G4Material::GetRadlen ( ) const
inline

Definition at line 220 of file G4Material.hh.

220 {return fRadlen;}
G4double fRadlen
Definition: G4Material.hh:341
Here is the caller graph for this function:

◆ GetSandiaTable()

G4SandiaTable* G4Material::GetSandiaTable ( ) const
inline

Definition at line 229 of file G4Material.hh.

229 {return fSandiaTable;}
G4SandiaTable * fSandiaTable
Definition: G4Material.hh:345
Here is the caller graph for this function:

◆ GetState()

G4State G4Material::GetState ( ) const
inline

Definition at line 181 of file G4Material.hh.

181 {return fState;}
G4State fState
Definition: G4Material.hh:313
Here is the caller graph for this function:

◆ GetTemperature()

G4double G4Material::GetTemperature ( ) const
inline

Definition at line 182 of file G4Material.hh.

182 {return fTemp;}
G4double fTemp
Definition: G4Material.hh:315
Here is the caller graph for this function:

◆ GetTotNbOfAtomsPerVolume()

G4double G4Material::GetTotNbOfAtomsPerVolume ( ) const
inline

Definition at line 209 of file G4Material.hh.

209 {return TotNbOfAtomsPerVolume;}
G4double TotNbOfAtomsPerVolume
Definition: G4Material.hh:339
Here is the caller graph for this function:

◆ GetTotNbOfElectPerVolume()

G4double G4Material::GetTotNbOfElectPerVolume ( ) const
inline

Definition at line 212 of file G4Material.hh.

212 {return TotNbOfElectPerVolume;}
G4double TotNbOfElectPerVolume
Definition: G4Material.hh:340
Here is the caller graph for this function:

◆ GetVecNbOfAtomsPerVolume()

const G4double* G4Material::GetVecNbOfAtomsPerVolume ( ) const
inline

Definition at line 206 of file G4Material.hh.

206 {return VecNbOfAtomsPerVolume;}
G4double * VecNbOfAtomsPerVolume
Definition: G4Material.hh:338
Here is the caller graph for this function:

◆ GetZ()

G4double G4Material::GetZ ( ) const

Definition at line 625 of file G4Material.cc.

626 {
627  if (fNumberOfElements > 1) {
628  G4cout << "G4Material ERROR in GetZ. The material: " << fName
629  << " is a mixture.";
630  G4Exception ("G4Material::GetZ()", "mat036", FatalException,
631  "the Atomic number is not well defined." );
632  }
633  return (*theElementVector)[0]->GetZ();
634 }
G4int fNumberOfElements
Definition: G4Material.hh:322
G4ElementVector * theElementVector
Definition: G4Material.hh:323
G4GLOB_DLL std::ostream G4cout
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
G4String fName
Definition: G4Material.hh:309
Here is the call graph for this function:
Here is the caller graph for this function:

◆ InitializePointers()

void G4Material::InitializePointers ( )
private

Definition at line 260 of file G4Material.cc.

261 {
262  theElementVector = 0;
264  fAtomsVector = 0;
266 
268  fBaseMaterial = 0;
269 
270  fChemicalFormula = "";
271 
272  // initilized data members
273  fDensity = 0.0;
275  fTemp = 0.0;
276  fPressure = 0.0;
277  maxNbComponents = 0;
278  fArrayLength = 0;
281  fRadlen = 0.0;
282  fNuclInterLen = 0.0;
283  fMassOfMolecule = 0.0;
284 
285  fIonisation = 0;
286  fSandiaTable = 0;
287 
288  // Store in the static Table of Materials
290  for(size_t i=0; i<fIndexInTable; ++i) {
291  if(theMaterialTable[i]->GetName() == fName) {
292  G4cout << "G4Material WARNING: duplicate name of material "
293  << fName << G4endl;
294  break;
295  }
296  }
297  theMaterialTable.push_back(this);
298 }
static G4MaterialTable theMaterialTable
Definition: G4Material.hh:330
const G4Material * fBaseMaterial
Definition: G4Material.hh:349
G4double fMassOfMolecule
Definition: G4Material.hh:350
G4ElementVector * theElementVector
Definition: G4Material.hh:323
size_t fIndexInTable
Definition: G4Material.hh:331
G4double fDensity
Definition: G4Material.hh:311
G4IonisParamMat * fIonisation
Definition: G4Material.hh:344
G4double * fMassFractionVector
Definition: G4Material.hh:324
G4int maxNbComponents
Definition: G4Material.hh:318
G4SandiaTable * fSandiaTable
Definition: G4Material.hh:345
G4GLOB_DLL std::ostream G4cout
G4double TotNbOfAtomsPerVolume
Definition: G4Material.hh:339
G4MaterialPropertiesTable * fMaterialPropertiesTable
Definition: G4Material.hh:327
G4int * fAtomsVector
Definition: G4Material.hh:325
G4double fRadlen
Definition: G4Material.hh:341
G4double fNuclInterLen
Definition: G4Material.hh:342
G4int fArrayLength
Definition: G4Material.hh:319
G4String fChemicalFormula
Definition: G4Material.hh:310
G4double TotNbOfElectPerVolume
Definition: G4Material.hh:340
G4State fState
Definition: G4Material.hh:313
#define G4endl
Definition: G4ios.hh:61
G4double fTemp
Definition: G4Material.hh:315
G4double fPressure
Definition: G4Material.hh:316
const G4String & GetName() const
Definition: G4Material.hh:178
G4double * VecNbOfAtomsPerVolume
Definition: G4Material.hh:338
G4String fName
Definition: G4Material.hh:309
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator!=()

G4int G4Material::operator!= ( const G4Material right) const

Definition at line 658 of file G4Material.cc.

659 {
660  return (this != (G4Material *) &right);
661 }
Here is the caller graph for this function:

◆ operator=()

const G4Material& G4Material::operator= ( const G4Material )
private
Here is the caller graph for this function:

◆ operator==()

G4int G4Material::operator== ( const G4Material right) const

Definition at line 651 of file G4Material.cc.

652 {
653  return (this == (G4Material *) &right);
654 }
Here is the caller graph for this function:

◆ SetChemicalFormula()

void G4Material::SetChemicalFormula ( const G4String chF)
inline

Definition at line 173 of file G4Material.hh.

173 {fChemicalFormula=chF;}
G4String fChemicalFormula
Definition: G4Material.hh:310
Here is the caller graph for this function:

◆ SetMaterialPropertiesTable()

void G4Material::SetMaterialPropertiesTable ( G4MaterialPropertiesTable anMPT)
inline

Definition at line 249 of file G4Material.hh.

250  {fMaterialPropertiesTable = anMPT;}
G4MaterialPropertiesTable * fMaterialPropertiesTable
Definition: G4Material.hh:327
Here is the caller graph for this function:

◆ SetName()

void G4Material::SetName ( const G4String name)
inline

Definition at line 283 of file G4Material.hh.

283 {fName=name;}
G4String name
Definition: TRTMaterials.hh:40
G4String fName
Definition: G4Material.hh:309
Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ operator<< [1/3]

std::ostream& operator<< ( std::ostream &  flux,
const G4Material material 
)
friend

Definition at line 665 of file G4Material.cc.

666 {
667  std::ios::fmtflags mode = flux.flags();
668  flux.setf(std::ios::fixed,std::ios::floatfield);
669  G4long prec = flux.precision(3);
670 
671  flux
672  << " Material: " << std::setw(8) << material->fName
673  << " " << material->fChemicalFormula << " "
674  << " density: " << std::setw(6) << std::setprecision(3)
675  << G4BestUnit(material->fDensity,"Volumic Mass")
676  << " RadL: " << std::setw(7) << std::setprecision(3)
677  << G4BestUnit(material->fRadlen,"Length")
678  << " Nucl.Int.Length: " << std::setw(7) << std::setprecision(3)
679  << G4BestUnit(material->fNuclInterLen,"Length")
680  << "\n" << std::setw(30)
681  << " Imean: " << std::setw(7) << std::setprecision(3)
683  "Energy");
684 
685  if(material->fState == kStateGas) {
686  flux
687  << " temperature: " << std::setw(6) << std::setprecision(2)
688  << (material->fTemp)/kelvin << " K"
689  << " pressure: " << std::setw(6) << std::setprecision(2)
690  << (material->fPressure)/atmosphere << " atm";
691  }
692  flux << "\n";
693 
694  for (G4int i=0; i<material->fNumberOfElements; i++) {
695  flux
696  << "\n ---> " << (*(material->theElementVector))[i]
697  << "\n ElmMassFraction: "
698  << std::setw(6)<< std::setprecision(2)
699  << (material->fMassFractionVector[i])/perCent << " %"
700  << " ElmAbundance " << std::setw(6)<< std::setprecision(2)
701  << 100*(material->VecNbOfAtomsPerVolume[i])
702  /(material->TotNbOfAtomsPerVolume)
703  << " % \n";
704  }
705  flux.precision(prec);
706  flux.setf(mode,std::ios::floatfield);
707 
708  return flux;
709 }
G4IonisParamMat * GetIonisation() const
Definition: G4Material.hh:226
G4int fNumberOfElements
Definition: G4Material.hh:322
G4ElementVector * theElementVector
Definition: G4Material.hh:323
long G4long
Definition: G4Types.hh:80
G4double fDensity
Definition: G4Material.hh:311
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
G4double * fMassFractionVector
Definition: G4Material.hh:324
int G4int
Definition: G4Types.hh:78
static const double prec
Definition: RanecuEngine.cc:58
G4double GetMeanExcitationEnergy() const
G4double TotNbOfAtomsPerVolume
Definition: G4Material.hh:339
G4double fRadlen
Definition: G4Material.hh:341
static const double perCent
Definition: G4SIunits.hh:329
G4double fNuclInterLen
Definition: G4Material.hh:342
static const double kelvin
Definition: G4SIunits.hh:278
G4String fChemicalFormula
Definition: G4Material.hh:310
static const double atmosphere
Definition: G4SIunits.hh:234
G4State fState
Definition: G4Material.hh:313
G4double fTemp
Definition: G4Material.hh:315
G4double fPressure
Definition: G4Material.hh:316
G4double * VecNbOfAtomsPerVolume
Definition: G4Material.hh:338
G4String fName
Definition: G4Material.hh:309

◆ operator<< [2/3]

std::ostream& operator<< ( std::ostream &  flux,
const G4Material material 
)
friend

Definition at line 713 of file G4Material.cc.

714 {
715  flux << &material;
716  return flux;
717 }
string material
Definition: eplot.py:19

◆ operator<< [3/3]

std::ostream& operator<< ( std::ostream &  flux,
G4MaterialTable  MaterialTable 
)
friend

Definition at line 721 of file G4Material.cc.

722 {
723  //Dump info for all known materials
724  flux << "\n***** Table : Nb of materials = " << MaterialTable.size()
725  << " *****\n" << G4endl;
726 
727  for (size_t i=0; i<MaterialTable.size(); ++i) {
728  flux << MaterialTable[i] << G4endl << G4endl;
729  }
730 
731  return flux;
732 }
#define G4endl
Definition: G4ios.hh:61

Member Data Documentation

◆ fArrayLength

G4int G4Material::fArrayLength
private

Definition at line 319 of file G4Material.hh.

◆ fAtomsVector

G4int* G4Material::fAtomsVector
private

Definition at line 325 of file G4Material.hh.

◆ fBaseMaterial

const G4Material* G4Material::fBaseMaterial
private

Definition at line 349 of file G4Material.hh.

◆ fChemicalFormula

G4String G4Material::fChemicalFormula
private

Definition at line 310 of file G4Material.hh.

◆ fDensity

G4double G4Material::fDensity
private

Definition at line 311 of file G4Material.hh.

◆ fIndexInTable

size_t G4Material::fIndexInTable
private

Definition at line 331 of file G4Material.hh.

◆ fIonisation

G4IonisParamMat* G4Material::fIonisation
private

Definition at line 344 of file G4Material.hh.

◆ fMassFractionVector

G4double* G4Material::fMassFractionVector
private

Definition at line 324 of file G4Material.hh.

◆ fMassOfMolecule

G4double G4Material::fMassOfMolecule
private

Definition at line 350 of file G4Material.hh.

◆ fMatComponents

std::map<G4Material*,G4double> G4Material::fMatComponents
private

Definition at line 351 of file G4Material.hh.

◆ fMaterialPropertiesTable

G4MaterialPropertiesTable* G4Material::fMaterialPropertiesTable
private

Definition at line 327 of file G4Material.hh.

◆ fName

G4String G4Material::fName
private

Definition at line 309 of file G4Material.hh.

◆ fNuclInterLen

G4double G4Material::fNuclInterLen
private

Definition at line 342 of file G4Material.hh.

◆ fNumberOfComponents

G4int G4Material::fNumberOfComponents
private

Definition at line 320 of file G4Material.hh.

◆ fNumberOfElements

G4int G4Material::fNumberOfElements
private

Definition at line 322 of file G4Material.hh.

◆ fPressure

G4double G4Material::fPressure
private

Definition at line 316 of file G4Material.hh.

◆ fRadlen

G4double G4Material::fRadlen
private

Definition at line 341 of file G4Material.hh.

◆ fSandiaTable

G4SandiaTable* G4Material::fSandiaTable
private

Definition at line 345 of file G4Material.hh.

◆ fState

G4State G4Material::fState
private

Definition at line 313 of file G4Material.hh.

◆ fTemp

G4double G4Material::fTemp
private

Definition at line 315 of file G4Material.hh.

◆ maxNbComponents

G4int G4Material::maxNbComponents
private

Definition at line 318 of file G4Material.hh.

◆ theElementVector

G4ElementVector* G4Material::theElementVector
private

Definition at line 323 of file G4Material.hh.

◆ theMaterialTable

G4MaterialTable G4Material::theMaterialTable
staticprivate

Definition at line 330 of file G4Material.hh.

◆ TotNbOfAtomsPerVolume

G4double G4Material::TotNbOfAtomsPerVolume
private

Definition at line 339 of file G4Material.hh.

◆ TotNbOfElectPerVolume

G4double G4Material::TotNbOfElectPerVolume
private

Definition at line 340 of file G4Material.hh.

◆ VecNbOfAtomsPerVolume

G4double* G4Material::VecNbOfAtomsPerVolume
private

Definition at line 338 of file G4Material.hh.


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