Geant4-11
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | Friends
G4Material Class Reference

#include <G4Material.hh>

Inheritance diagram for G4Material:
G4ExtendedMaterial

Public Member Functions

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

Static Public Member Functions

static G4MaterialGetMaterial (const G4String &name, G4bool warning=true)
 
static G4MaterialGetMaterial (G4double z, G4double a, G4double dens)
 
static G4MaterialGetMaterial (size_t nComp, G4double dens)
 
static G4MaterialTableGetMaterialTable ()
 
static size_t GetNumberOfMaterials ()
 

Private Member Functions

void ComputeDerivedQuantities ()
 
void ComputeNuclearInterLength ()
 
void ComputeRadiationLength ()
 
void CopyPointersOfBaseMaterial ()
 
void FillVectors ()
 
void InitializePointers ()
 

Private Attributes

std::vector< G4int > * fAtoms
 
G4intfAtomsVector
 
const G4MaterialfBaseMaterial
 
G4String fChemicalFormula
 
G4double fDensity
 
std::vector< const G4Element * > * fElm
 
std::vector< G4double > * fElmFrac
 
G4double fFreeElecDensity
 
G4int fIdxComponent
 
size_t fIndexInTable
 
G4IonisParamMatfIonisation
 
G4bool fMassFraction
 
G4doublefMassFractionVector
 
G4double fMassOfMolecule
 
std::map< G4Material *, G4doublefMatComponents
 
G4MaterialPropertiesTablefMaterialPropertiesTable
 
G4String fName
 
G4int fNbComponents
 
G4double fNuclInterLen
 
G4int fNumberOfElements
 
G4double fPressure
 
G4double fRadlen
 
G4SandiaTablefSandiaTable
 
G4State fState
 
G4double fTemp
 
G4double fTotNbOfAtomsPerVolume
 
G4double fTotNbOfElectPerVolume
 
G4doublefVecNbOfAtomsPerVolume
 
G4ElementVectortheElementVector
 

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 &, const G4MaterialTable &)
 

Detailed Description

Definition at line 117 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 95 of file G4Material.cc.

98 : fName(name)
99{
101
102 if (density < universe_mean_density)
103 {
104 G4cout << " G4Material WARNING:"
105 << " define a material with density=0 is not allowed. \n"
106 << " The material " << name << " will be constructed with the"
107 << " default minimal density: " << universe_mean_density/(g/cm3)
108 << "g/cm3" << G4endl;
109 density = universe_mean_density;
110 }
111
112 fDensity = density;
113 fState = state;
114 fTemp = temp;
115 fPressure = pressure;
116
117 // Initialize theElementVector allocating one
118 // element corresponding to this material
121
122 // take element from DB
124 G4int iz = G4lrint(z);
125 auto elm = nist->FindOrBuildElement(iz);
126 if(!elm) { elm = new G4Element("ELM_" + name, name, z, a); }
127 theElementVector->push_back(elm);
128
130 fMassFractionVector[0] = 1.;
132
133 if (fState == kStateUndefined)
134 {
136 else { fState = kStateGas; }
137 }
138
140}
std::vector< const G4Element * > G4ElementVector
@ kStateSolid
Definition: G4Material.hh:111
@ kStateGas
Definition: G4Material.hh:111
@ kStateUndefined
Definition: G4Material.hh:111
static constexpr double cm3
Definition: G4SIunits.hh:101
static constexpr double g
Definition: G4SIunits.hh:168
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
G4State fState
Definition: G4Material.hh:345
void ComputeDerivedQuantities()
Definition: G4Material.cc:288
G4double fDensity
Definition: G4Material.hh:334
G4double fPressure
Definition: G4Material.hh:337
void InitializePointers()
Definition: G4Material.cc:247
G4int fNbComponents
Definition: G4Material.hh:350
G4double fTemp
Definition: G4Material.hh:336
G4int fNumberOfElements
Definition: G4Material.hh:347
G4double * fMassFractionVector
Definition: G4Material.hh:328
G4ElementVector * theElementVector
Definition: G4Material.hh:326
G4double fMassOfMolecule
Definition: G4Material.hh:343
G4String fName
Definition: G4Material.hh:362
static G4NistManager * Instance()
G4Element * FindOrBuildElement(G4int Z, G4bool isotopes=true)
static constexpr double Avogadro
const char * name(G4int ptype)
int kGasThreshold
Definition: hepunit.py:303
int universe_mean_density
Definition: hepunit.py:306
int G4lrint(double ad)
Definition: templates.hh:134

References CLHEP::Avogadro, cm3, ComputeDerivedQuantities(), fDensity, G4NistManager::FindOrBuildElement(), fMassFractionVector, fMassOfMolecule, fNbComponents, fNumberOfElements, fPressure, fState, fTemp, g, G4cout, G4endl, G4lrint(), InitializePointers(), G4NistManager::Instance(), source.hepunit::kGasThreshold, kStateGas, kStateSolid, kStateUndefined, G4InuclParticleNames::name(), theElementVector, and source.hepunit::universe_mean_density.

◆ 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 147 of file G4Material.cc.

150 : fName(name)
151{
153
154 if (density < universe_mean_density)
155 {
156 G4cout << "--- Warning from G4Material::G4Material()"
157 << " define a material with density=0 is not allowed. \n"
158 << " The material " << name << " will be constructed with the"
159 << " default minimal density: " << universe_mean_density/(g/cm3)
160 << "g/cm3" << G4endl;
161 density = universe_mean_density;
162 }
163
164 fDensity = density;
165 fState = state;
166 fTemp = temp;
167 fPressure = pressure;
168
169 fNbComponents = nComponents;
170 fMassFraction = true;
171
172 if (fState == kStateUndefined)
173 {
175 else { fState = kStateGas; }
176 }
177}
G4bool fMassFraction
Definition: G4Material.hh:352

References cm3, fDensity, fMassFraction, fNbComponents, fPressure, fState, fTemp, g, G4cout, G4endl, InitializePointers(), source.hepunit::kGasThreshold, kStateGas, kStateSolid, kStateUndefined, G4InuclParticleNames::name(), and source.hepunit::universe_mean_density.

◆ 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 183 of file G4Material.cc.

186 : fName(name)
187{
189
190 if (density < universe_mean_density)
191 {
192 G4cout << "--- Warning from G4Material::G4Material()"
193 << " define a material with density=0 is not allowed. \n"
194 << " The material " << name << " will be constructed with the"
195 << " default minimal density: " << universe_mean_density/(g/cm3)
196 << "g/cm3" << G4endl;
197 density = universe_mean_density;
198 }
199
200 fDensity = density;
201 fState = state;
202 fTemp = temp;
203 fPressure = pressure;
204
205 fBaseMaterial = bmat;
208
211
213}
const G4String & GetChemicalFormula() const
Definition: G4Material.hh:174
const G4Material * fBaseMaterial
Definition: G4Material.hh:318
G4String fChemicalFormula
Definition: G4Material.hh:363
void CopyPointersOfBaseMaterial()
Definition: G4Material.cc:321
size_t GetNumberOfElements() const
Definition: G4Material.hh:182
G4double GetMassOfMolecule() const
Definition: G4Material.hh:237

References cm3, CopyPointersOfBaseMaterial(), fBaseMaterial, fChemicalFormula, fDensity, fMassOfMolecule, fNbComponents, fNumberOfElements, fPressure, fState, fTemp, g, G4cout, G4endl, GetChemicalFormula(), GetMassOfMolecule(), GetNumberOfElements(), InitializePointers(), G4InuclParticleNames::name(), and source.hepunit::universe_mean_density.

◆ ~G4Material()

G4Material::~G4Material ( )
virtual

Definition at line 228 of file G4Material.cc.

229{
230 // G4cout << "### Destruction of material " << fName << " started" <<G4endl;
231 if(fBaseMaterial == nullptr) {
232 delete theElementVector;
233 delete fSandiaTable;
234 delete [] fMassFractionVector;
235 delete [] fAtomsVector;
236 }
237 delete fIonisation;
238 delete [] fVecNbOfAtomsPerVolume;
239
240 // Remove this material from theMaterialTable.
241 //
243}
static G4MaterialTable theMaterialTable
Definition: G4Material.hh:316
G4SandiaTable * fSandiaTable
Definition: G4Material.hh:332
G4double * fVecNbOfAtomsPerVolume
Definition: G4Material.hh:329
size_t fIndexInTable
Definition: G4Material.hh:346
G4int * fAtomsVector
Definition: G4Material.hh:327
G4IonisParamMat * fIonisation
Definition: G4Material.hh:331

References fAtomsVector, fBaseMaterial, fIndexInTable, fIonisation, fMassFractionVector, fSandiaTable, fVecNbOfAtomsPerVolume, theElementVector, and theMaterialTable.

◆ G4Material() [4/5]

G4Material::G4Material ( __void__ &  )

Definition at line 220 of file G4Material.cc.

221 : fName("")
222{
224}

References InitializePointers().

◆ G4Material() [5/5]

G4Material::G4Material ( const G4Material )
delete

Member Function Documentation

◆ AddElement() [1/2]

void G4Material::AddElement ( G4Element elm,
G4double  frac 
)
inline

Definition at line 164 of file G4Material.hh.

165 { AddElementByMassFraction(elm, frac); }
void AddElementByMassFraction(const G4Element *elm, G4double fraction)
Definition: G4Material.cc:434

References AddElementByMassFraction().

◆ AddElement() [2/2]

void G4Material::AddElement ( G4Element elm,
G4int  nAtoms 
)
inline

◆ AddElementByMassFraction()

void G4Material::AddElementByMassFraction ( const G4Element elm,
G4double  fraction 
)

Definition at line 434 of file G4Material.cc.

435{
436 // perform checks consistency
437 if(fraction < 0.0 || fraction > 1.0) {
439 ed << "For material " << fName << " and added element "
440 << elm->GetName() << " massFraction= " << fraction
441 << " is wrong ";
442 G4Exception ("G4Material::AddElementByMassFraction()", "mat031",
443 FatalException, ed, "");
444 }
445 if(!fMassFraction) {
447 ed << "For material " << fName << " and added element "
448 << elm->GetName() << ", massFraction= " << fraction
449 << ", fIdxComponent=" << fIdxComponent
450 << " problem: cannot add by mass fraction after "
451 << "addition of elements by number of atoms";
452 G4Exception ("G4Material::AddElementByMassFraction()", "mat031",
453 FatalException, ed, "");
454 }
457 ed << "For material " << fName << " and added element "
458 << elm->GetName() << ", massFraction= " << fraction
459 << ", fIdxComponent=" << fIdxComponent
460 << "; attempt to add more than the declared number of components "
461 << fIdxComponent << " >= " << fNbComponents;
462 G4Exception ("G4Material::AddElementByMassFraction()", "mat031",
463 FatalException, ed, "");
464 }
465 if(0 == fIdxComponent) {
466 fElmFrac = new std::vector<G4double>;
467 fElm = new std::vector<const G4Element*>;
468 }
469
470 // filling
471 G4bool isAdded = false;
472 if(!fElm->empty()) {
473 for (G4int i=0; i<fNumberOfElements; ++i) {
474 if ( elm == (*fElm)[i] ) {
475 (*fElmFrac)[i] += fraction;
476 isAdded = true;
477 break;
478 }
479 }
480 }
481 if(!isAdded) {
482 fElm->push_back(elm);
483 fElmFrac->push_back(fraction);
485 }
487
488 // is filled
490}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
bool G4bool
Definition: G4Types.hh:86
const G4String & GetName() const
Definition: G4Element.hh:127
G4int fIdxComponent
Definition: G4Material.hh:351
void FillVectors()
Definition: G4Material.cc:562
std::vector< G4double > * fElmFrac
Definition: G4Material.hh:356
std::vector< const G4Element * > * fElm
Definition: G4Material.hh:357

References FatalException, fElm, fElmFrac, fIdxComponent, FillVectors(), fMassFraction, fName, fNbComponents, fNumberOfElements, G4Exception(), and G4Element::GetName().

Referenced by AddElement().

◆ AddElementByNumberOfAtoms()

void G4Material::AddElementByNumberOfAtoms ( const G4Element elm,
G4int  nAtoms 
)

Definition at line 360 of file G4Material.cc.

361{
362 // perform checks consistency
363 if(0 == fIdxComponent) {
364 fMassFraction = false;
365 fAtoms = new std::vector<G4int>;
366 fElm = new std::vector<const G4Element*>;
367 }
370 ed << "For material " << fName << " and added element "
371 << elm->GetName() << " with Natoms=" << nAtoms
372 << " wrong attempt to add more than the declared number of elements "
373 << fIdxComponent << " >= " << fNbComponents;
374 G4Exception ("G4Material::AddElementByNumberOfAtoms()", "mat031",
375 FatalException, ed, "");
376 }
377 if(fMassFraction) {
379 ed << "For material " << fName << " and added element "
380 << elm->GetName() << " with Natoms=" << nAtoms
381 << " problem: cannot add by number of atoms after "
382 << "addition of elements by mass fraction";
383 G4Exception ("G4Material::AddElementByNumberOfAtoms()", "mat031",
384 FatalException, ed, "");
385 }
386 // filling
387 G4bool isAdded = false;
388 if(!fElm->empty()) {
389 for (G4int i=0; i<fNumberOfElements; ++i) {
390 if ( elm == (*fElm)[i] ) {
391 (*fAtoms)[i] += nAtoms;
392 isAdded = true;
393 break;
394 }
395 }
396 }
397 if(!isAdded) {
398 fElm->push_back(elm);
399 fAtoms->push_back(nAtoms);
401 }
403
404 // is filled - complete composition of atoms
410
411 G4double Amol = 0.;
412 for (G4int i=0; i<fNumberOfElements; ++i) {
413 theElementVector->push_back((*fElm)[i]);
414 fAtomsVector[i] = (*fAtoms)[i];
415 G4double w = fAtomsVector[i]*(*fElm)[i]->GetA();
416 Amol += w;
417 fMassFractionVector[i] = w;
418 }
419 for (G4int i=0; i<fNumberOfElements; ++i) {
420 fMassFractionVector[i] /= Amol;
421 }
422 delete fAtoms;
423 delete fElm;
426 }
427}
std::vector< G4int > * fAtoms
Definition: G4Material.hh:355
float Avogadro
Definition: hepunit.py:252

References source.hepunit::Avogadro, ComputeDerivedQuantities(), FatalException, fAtoms, fAtomsVector, fElm, fIdxComponent, fMassFraction, fMassFractionVector, fMassOfMolecule, fName, fNbComponents, fNumberOfElements, G4Exception(), G4Element::GetName(), and theElementVector.

Referenced by AddElement().

◆ AddMaterial()

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

Definition at line 496 of file G4Material.cc.

497{
498 if(fraction < 0.0 || fraction > 1.0) {
500 ed << "For material " << fName << " and added material "
501 << material->GetName() << ", massFraction= " << fraction
502 << " is wrong ";
503 G4Exception ("G4Material::AddMaterial()", "mat031", FatalException,
504 ed, "");
505 }
506 if(!fMassFraction) {
508 ed << "For material " << fName << " and added material "
509 << material->GetName() << ", massFraction= " << fraction
510 << ", fIdxComponent=" << fIdxComponent
511 << " problem: cannot add by mass fraction after "
512 << "addition of elements by number of atoms";
513 G4Exception ("G4Material::AddMaterial()", "mat031", FatalException,
514 ed, "");
515 }
518 ed << "For material " << fName << " and added material "
519 << material->GetName() << ", massFraction= " << fraction
520 << "; attempt to add more than the declared number of components "
521 << fIdxComponent << " >= " << fNbComponents;
522 G4Exception ("G4Material::AddMaterial()", "mat031", FatalException,
523 ed, "");
524 }
525
526 if(0 == fIdxComponent) {
527 fElmFrac = new std::vector<G4double>;
528 fElm = new std::vector<const G4Element*>;
529 }
530
531 // filling
532 G4int nelm = material->GetNumberOfElements();
533 for(G4int j=0; j<nelm; ++j) {
534 auto elm = material->GetElement(j);
535 auto frac = material->GetFractionVector();
536 G4bool isAdded = false;
537 if(!fElm->empty()) {
538 for (G4int i=0; i<fNumberOfElements; ++i) {
539 if ( elm == (*fElm)[i] ) {
540 (*fElmFrac)[i] += fraction*frac[j];
541 isAdded = true;
542 break;
543 }
544 }
545 }
546 if(!isAdded) {
547 fElm->push_back(elm);
548 fElmFrac->push_back(fraction*frac[j]);
550 }
551 }
552
553 fMatComponents[material] = fraction;
555
556 // is filled
558}
std::map< G4Material *, G4double > fMatComponents
Definition: G4Material.hh:360
string material
Definition: eplot.py:19

References FatalException, fElm, fElmFrac, fIdxComponent, FillVectors(), fMassFraction, fMatComponents, fName, fNbComponents, fNumberOfElements, G4Exception(), and eplot::material.

Referenced by G4tgbMaterialMixtureByVolume::BuildG4Material(), G4tgbMaterialMixtureByWeight::BuildG4Material(), DetectorConstruction::DefineMaterials(), ExN03DetectorConstruction::DefineMaterials(), and export_G4Material().

◆ ComputeDensityEffectOnFly()

void G4Material::ComputeDensityEffectOnFly ( G4bool  val)

Definition at line 658 of file G4Material.cc.

659{
660#ifdef G4MULTITHREADED
661 G4MUTEXLOCK(&materialMutex);
662#endif
663 if (nullptr == fIonisation) { fIonisation = new G4IonisParamMat(this); }
665#ifdef G4MULTITHREADED
666 G4MUTEXUNLOCK(&materialMutex);
667#endif
668}
#define G4MUTEXLOCK(mutex)
Definition: G4Threading.hh:251
#define G4MUTEXUNLOCK(mutex)
Definition: G4Threading.hh:254
void ComputeDensityEffectOnFly(G4bool)

References G4IonisParamMat::ComputeDensityEffectOnFly(), fIonisation, G4MUTEXLOCK, and G4MUTEXUNLOCK.

Referenced by CopyPointersOfBaseMaterial(), and G4NistManager::SetDensityEffectCalculatorFlag().

◆ ComputeDerivedQuantities()

void G4Material::ComputeDerivedQuantities ( )
private

Definition at line 288 of file G4Material.cc.

289{
290 // Header routine to compute various properties of material.
291 //
292 // Number of atoms per volume (per element), total nb of electrons per volume
293 G4double Zi, Ai;
295 delete [] fVecNbOfAtomsPerVolume;
298 fFreeElecDensity = 0.;
299 const G4double elecTh = 15.*CLHEP::eV; // threshold for conductivity e-
300 for (G4int i=0; i<fNumberOfElements; ++i) {
301 Zi = (*theElementVector)[i]->GetZ();
302 Ai = (*theElementVector)[i]->GetA();
306 if(fState != kStateGas) {
309 }
310 }
311
314
315 if (!fIonisation) { fIonisation = new G4IonisParamMat(this); }
316 if (!fSandiaTable){ fSandiaTable = new G4SandiaTable(this); }
317}
static G4int GetNumberOfFreeElectrons(G4int Z, G4double th)
G4double fTotNbOfElectPerVolume
Definition: G4Material.hh:340
G4double fFreeElecDensity
Definition: G4Material.hh:335
G4double fTotNbOfAtomsPerVolume
Definition: G4Material.hh:339
void ComputeNuclearInterLength()
Definition: G4Material.cc:612
void ComputeRadiationLength()
Definition: G4Material.cc:601
static constexpr double eV

References source.hepunit::Avogadro, ComputeNuclearInterLength(), ComputeRadiationLength(), CLHEP::eV, fDensity, fFreeElecDensity, fIonisation, fMassFractionVector, fNumberOfElements, fSandiaTable, fState, fTotNbOfAtomsPerVolume, fTotNbOfElectPerVolume, fVecNbOfAtomsPerVolume, G4AtomicShells::GetNumberOfFreeElectrons(), and kStateGas.

Referenced by AddElementByNumberOfAtoms(), FillVectors(), and G4Material().

◆ ComputeNuclearInterLength()

void G4Material::ComputeNuclearInterLength ( )
private

Definition at line 612 of file G4Material.cc.

613{
614 const G4double lambda0 = 35*CLHEP::g/CLHEP::cm2;
615 const G4double twothird = 2.0/3.0;
616 G4double NILinv = 0.0;
617 for (G4int i=0; i<fNumberOfElements; ++i) {
618 G4int Z = (*theElementVector)[i]->GetZasInt();
619 G4double A = (*theElementVector)[i]->GetN();
620 if(1 == Z) {
621 NILinv += fVecNbOfAtomsPerVolume[i]*A;
622 } else {
623 NILinv += fVecNbOfAtomsPerVolume[i]*G4Exp(twothird*G4Log(A));
624 }
625 }
626 NILinv *= amu/lambda0;
627 fNuclInterLen = (NILinv <= 0.0 ? DBL_MAX : 1./NILinv);
628}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:179
G4double G4Log(G4double x)
Definition: G4Log.hh:226
const G4int Z[17]
const G4double A[17]
G4double fNuclInterLen
Definition: G4Material.hh:342
static constexpr double g
static constexpr double cm2
#define DBL_MAX
Definition: templates.hh:62

References A, source.hepunit::amu, CLHEP::cm2, DBL_MAX, fNuclInterLen, fNumberOfElements, fVecNbOfAtomsPerVolume, CLHEP::g, G4Exp(), G4Log(), and Z.

Referenced by ComputeDerivedQuantities().

◆ ComputeRadiationLength()

void G4Material::ComputeRadiationLength ( )
private

Definition at line 601 of file G4Material.cc.

602{
603 G4double radinv = 0.0 ;
604 for (G4int i=0; i<fNumberOfElements; ++i) {
605 radinv += fVecNbOfAtomsPerVolume[i]*((*theElementVector)[i]->GetfRadTsai());
606 }
607 fRadlen = (radinv <= 0.0 ? DBL_MAX : 1./radinv);
608}
G4double fRadlen
Definition: G4Material.hh:341

References DBL_MAX, fNumberOfElements, fRadlen, and fVecNbOfAtomsPerVolume.

Referenced by ComputeDerivedQuantities().

◆ CopyPointersOfBaseMaterial()

void G4Material::CopyPointersOfBaseMaterial ( )
private

Definition at line 321 of file G4Material.cc.

322{
327
329
335
339 for (G4int i=0; i<fNumberOfElements; ++i) {
340 fVecNbOfAtomsPerVolume[i] = factor*v[i];
341 }
342 fRadlen = fBaseMaterial->GetRadlen()/factor;
344
345 if(!fIonisation) { fIonisation = new G4IonisParamMat(this); }
349 }
350
353}
G4double GetMeanExcitationEnergy() const
void SetMeanExcitationEnergy(G4double value)
G4DensityEffectCalculator * GetDensityEffectCalculator()
G4double GetDensity() const
Definition: G4Material.hh:176
const G4ElementVector * GetElementVector() const
Definition: G4Material.hh:186
G4MaterialPropertiesTable * GetMaterialPropertiesTable() const
Definition: G4Material.hh:252
G4double GetTotNbOfAtomsPerVolume() const
Definition: G4Material.hh:205
G4State GetState() const
Definition: G4Material.hh:177
const G4double * GetFractionVector() const
Definition: G4Material.hh:190
G4double GetTotNbOfElectPerVolume() const
Definition: G4Material.hh:208
G4IonisParamMat * GetIonisation() const
Definition: G4Material.hh:222
G4double GetFreeElectronDensity() const
Definition: G4Material.hh:175
const G4int * GetAtomsVector() const
Definition: G4Material.hh:194
G4SandiaTable * GetSandiaTable() const
Definition: G4Material.hh:225
G4double GetRadlen() const
Definition: G4Material.hh:216
const G4double * GetVecNbOfAtomsPerVolume() const
Definition: G4Material.hh:202
void ComputeDensityEffectOnFly(G4bool)
Definition: G4Material.cc:658
G4double GetNuclearInterLength() const
Definition: G4Material.hh:219
G4MaterialPropertiesTable * fMaterialPropertiesTable
Definition: G4Material.hh:319

References ComputeDensityEffectOnFly(), fAtomsVector, fBaseMaterial, fDensity, fFreeElecDensity, fIonisation, fMassFractionVector, fMaterialPropertiesTable, fNuclInterLen, fNumberOfElements, fRadlen, fSandiaTable, fState, fTotNbOfAtomsPerVolume, fTotNbOfElectPerVolume, fVecNbOfAtomsPerVolume, GetAtomsVector(), GetDensity(), G4IonisParamMat::GetDensityEffectCalculator(), GetElementVector(), GetFractionVector(), GetFreeElectronDensity(), GetIonisation(), GetMaterialPropertiesTable(), G4IonisParamMat::GetMeanExcitationEnergy(), GetNuclearInterLength(), GetRadlen(), GetSandiaTable(), GetState(), GetTotNbOfAtomsPerVolume(), GetTotNbOfElectPerVolume(), GetVecNbOfAtomsPerVolume(), kStateUndefined, G4IonisParamMat::SetMeanExcitationEnergy(), and theElementVector.

Referenced by G4Material().

◆ FillVectors()

void G4Material::FillVectors ( )
private

Definition at line 562 of file G4Material.cc.

563{
564 // there are material components
569 G4double wtSum(0.0);
570 for (G4int i=0; i<fNumberOfElements; ++i) {
571 theElementVector->push_back((*fElm)[i]);
572 fMassFractionVector[i] = (*fElmFrac)[i];
573 wtSum += fMassFractionVector[i];
574 }
575 delete fElmFrac;
576 delete fElm;
577
578 // check sum of weights -- OK?
579 if (std::abs(1.-wtSum) > perThousand) {
581 ed << "For material " << fName << " sum of fractional masses "
582 << wtSum << " is not 1 - results may be wrong";
583 G4Exception ("G4Material::FillVectors()", "mat031", JustWarning,
584 ed, "");
585 }
586 G4double coeff = (wtSum > 0.0) ? 1./wtSum : 1.0;
587 G4double Amol(0.);
588 for (G4int i=0; i<fNumberOfElements; ++i) {
589 fMassFractionVector[i] *= coeff;
590 Amol += fMassFractionVector[i]*(*theElementVector)[i]->GetA();
591 }
592 for (G4int i=0; i<fNumberOfElements; ++i) {
593 fAtomsVector[i] =
595 }
597}
@ JustWarning
static constexpr double perThousand
Definition: G4SIunits.hh:326
G4double GetA() const
Definition: G4Material.cc:750

References ComputeDerivedQuantities(), fAtomsVector, fElm, fElmFrac, fMassFractionVector, fName, fNumberOfElements, G4Exception(), G4lrint(), GetA(), JustWarning, perThousand, and theElementVector.

Referenced by AddElementByMassFraction(), and AddMaterial().

◆ GetA()

G4double G4Material::GetA ( ) const

Definition at line 750 of file G4Material.cc.

751{
752 if (fNumberOfElements > 1) {
754 ed << "For material " << fName << " ERROR in GetA() - Nelm="
755 << fNumberOfElements << " > 1, which is not allowed";
756 G4Exception ("G4Material::GetA()", "mat036", FatalException,
757 ed, "");
758 }
759 return (*theElementVector)[0]->GetA();
760}

References FatalException, fName, fNumberOfElements, G4Exception(), and theElementVector.

Referenced by G4tgbGeometryDumper::DumpMaterial(), export_G4Material(), FillVectors(), GVFlashShowerParameterisation::GetEffA(), GetMaterial(), and G4GDMLWriteMaterials::MaterialWrite().

◆ GetAtomicNumDensityVector()

const G4double * G4Material::GetAtomicNumDensityVector ( ) const
inline

◆ GetAtomsVector()

const G4int * G4Material::GetAtomsVector ( ) const
inline

Definition at line 194 of file G4Material.hh.

194{return fAtomsVector;}

References fAtomsVector.

Referenced by CopyPointersOfBaseMaterial(), and G4VLEPTSModel::ReadParam().

◆ GetBaseMaterial()

const G4Material * G4Material::GetBaseMaterial ( ) const
inline

◆ GetChemicalFormula()

const G4String & G4Material::GetChemicalFormula ( ) const
inline

◆ GetDensity()

G4double G4Material::GetDensity ( ) const
inline

Definition at line 176 of file G4Material.hh.

176{return fDensity;}

References fDensity.

Referenced by G4GMocrenFileSceneHandler::AddSolid(), G4VtkSceneHandler::AddSolid(), G4NistManager::BuildMaterialWithNewDensity(), G4VLEPTSModel::BuildMeanFreePathTable(), G4ProductionCutsTable::CheckMaterialInfo(), G4AdjointPrimaryGenerator::ComputeAccumulatedDepthVectorAlongBackRay(), G4EmCalculator::ComputeDEDX(), G4IonisParamMat::ComputeDensityEffectParameters(), G4TablesForExtrapolator::ComputeElectronDEDX(), G4SandiaTable::ComputeMatSandiaMatrixPAI(), G4eDPWAElasticDCS::ComputeMParams(), G4TablesForExtrapolator::ComputeMuonDEDX(), G4EmCalculator::ComputeNuclearDEDX(), G4TablesForExtrapolator::ComputeProtonDEDX(), G4NistMaterialBuilder::ConstructNewGasMaterial(), CopyPointersOfBaseMaterial(), G4PhysicalVolumeModel::CreateCurrentAttValues(), G4PhysicalVolumeModel::DescribeAndDescend(), G4AtimaFluctuations::Dispersion(), G4EmSaturation::DumpBirksCoefficients(), G4tgbGeometryDumper::DumpMaterial(), export_G4Material(), G4InitXscPAI::G4InitXscPAI(), G4PAIxSection::G4PAIxSection(), G4EmCalculator::GetDEDX(), G4VMscModel::GetEnergy(), G4LogicalVolume::GetMass(), GetMaterial(), G4VMscModel::GetRange(), G4GSPWACorrections::InitDataMaterial(), G4DNAMolecularMaterial::InitializeDensity(), G4GSMottCorrection::InitMCDataMaterial(), G4GoudsmitSaundersonTable::InitMoliereMSCParams(), G4GDMLWriteMaterials::MaterialWrite(), G4PSDoseDeposit::ProcessHits(), G4PhysicalVolumeMassScene::ProcessVolume(), G4ErrorFreeTrajState::PropagateErrorIoni(), G4ErrorFreeTrajState::PropagateErrorMSC(), G4ASCIITreeSceneHandler::RequestPrimitives(), G4IonisParamMat::SetDensityEffectParameters(), GFlashHomoShowerParameterisation::SetMaterial(), GFlashSamplingShowerParameterisation::SetMaterial(), and G4tgbMaterialMixtureByVolume::TransformToFractionsByWeight().

◆ GetElectronDensity()

G4double G4Material::GetElectronDensity ( ) const
inline

◆ GetElement()

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

◆ GetElementVector()

const G4ElementVector * G4Material::GetElementVector ( ) const
inline

Definition at line 186 of file G4Material.hh.

186{return theElementVector;}

References theElementVector.

Referenced by G4AdjointPhotoElectricModel::AdjointCrossSection(), G4SBBremTable::BuildSamplingTables(), G4Nucleus::ChooseParameters(), G4ICRU49NuclearStoppingModel::ComputeDEDXPerVolume(), G4IonisParamMat::ComputeDensityEffectParameters(), G4WentzelVIRelModel::ComputeEffectiveMass(), G4IonisParamMat::ComputeFluctModel(), G4IonisParamMat::ComputeIonParameters(), G4SandiaTable::ComputeMatSandiaMatrix(), G4SandiaTable::ComputeMatSandiaMatrixPAI(), G4SandiaTable::ComputeMatTable(), G4GammaConversionToMuons::ComputeMeanFreePath(), G4IonisParamMat::ComputeMeanParameters(), G4eDPWAElasticDCS::ComputeMParams(), G4WentzelVIModel::ComputeSecondMoment(), G4CrystalExtension::ComputeStructureFactor(), G4CrystalExtension::ComputeStructureFactorGeometrical(), G4WentzelVIModel::ComputeTransportXSectionPerVolume(), CopyPointersOfBaseMaterial(), G4tgbGeometryDumper::DumpMaterial(), export_G4Material(), G4EmElementSelector::G4EmElementSelector(), G4HadElementSelector::G4HadElementSelector(), G4CrystalExtension::GetAtomPos(), G4CrossSectionDataStore::GetCrossSection(), G4IonICRU73Data::GetDEDX(), G4MuNeutrinoNucleusTotXsc::GetElementCrossSection(), G4GSPWACorrections::InitDataMaterial(), G4GSPWACorrections::InitDataPerElement(), G4LivermoreGammaConversion5DModel::Initialise(), G4eDPWACoulombScatteringModel::Initialise(), G4EmSaturation::InitialiseBirksCoefficient(), G4ElasticHadrNucleusHE::InitialiseModel(), G4GSMottCorrection::InitMCDataMaterial(), G4GSMottCorrection::InitMCDataPerElement(), G4GoudsmitSaundersonTable::InitMoliereMSCParams(), G4IonICRU73Data::ReadElementData(), G4WentzelVIModel::SampleScattering(), G4AdjointPhotoElectricModel::SampleSecondaries(), G4PenelopeRayleighModel::SampleSecondaries(), G4PenelopeRayleighModelMI::SampleSecondaries(), G4GammaConversionToMuons::SelectRandomAtom(), G4ElementSelector::SelectZandA(), and G4EmCorrections::SetupKinematics().

◆ GetFractionVector()

const G4double * G4Material::GetFractionVector ( ) const
inline

◆ GetFreeElectronDensity()

G4double G4Material::GetFreeElectronDensity ( ) const
inline

◆ GetIndex()

size_t G4Material::GetIndex ( ) const
inline

Definition at line 256 of file G4Material.hh.

256{return fIndexInTable;}

References fIndexInTable.

Referenced by G4NistMaterialBuilder::BuildMaterial(), G4VLEPTSModel::BuildMeanFreePathTable(), G4VLEPTSModel::BuildPhysicsTable(), G4AdjointCSManager::ComputeAdjointCS(), G4EnergyLossForExtrapolator::ComputeDEDX(), G4EnergyLossForExtrapolator::ComputeEnergy(), G4EnergyLossForExtrapolator::ComputeRange(), G4GoudsmitSaundersonMscModel::ComputeTruePathLengthLimit(), G4GoudsmitSaundersonMscModel::CrossSectionPerVolume(), export_G4Material(), G4DNAElectronHoleRecombination::FindReactant(), G4InitXscPAI::G4InitXscPAI(), G4PAIxSection::G4PAIxSection(), G4StrawTubeXTRadiator::G4StrawTubeXTRadiator(), G4VXTRenergyLoss::G4VXTRenergyLoss(), G4IonICRU73Data::GetDEDX(), G4EnergyLossTables::GetDEDX(), G4EnergyLossTables::GetDeltaLabTime(), G4EnergyLossTables::GetDeltaProperTime(), G4EnergyLossTables::GetLabTime(), G4VLEPTSModel::GetMeanFreePath(), G4OpRayleigh::GetMeanFreePath(), G4DNADummyModel::GetNumMoleculePerVolumeUnitForMaterial(), G4DNAModelInterface::GetNumMoleculePerVolumeUnitForMaterial(), G4DNAModelInterface::GetNumMolPerVolUnitForComponentInComposite(), G4EnergyLossTables::GetPreciseDEDX(), G4EnergyLossTables::GetPreciseEnergyFromRange(), G4EnergyLossTables::GetPreciseRangeFromEnergy(), G4EnergyLossTables::GetProperTime(), G4EnergyLossTables::GetRange(), G4GoudsmitSaundersonMscModel::GetTransportMeanFreePath(), G4GoudsmitSaundersonMscModel::GetTransportMeanFreePathOnly(), G4GSPWACorrections::InitDataMaterial(), G4GSPWACorrections::InitDataPerMaterials(), G4IonICRU73Data::Initialise(), G4EmSaturation::InitialiseBirksCoefficient(), G4GSMottCorrection::InitMCDataMaterial(), G4GSMottCorrection::InitMCDataPerMaterials(), G4GoudsmitSaundersonTable::InitMoliereMSCParams(), G4GoudsmitSaundersonTable::InitSCPCorrection(), G4Scintillation::PostStepDoIt(), G4OpWLS::PostStepDoIt(), G4OpWLS2::PostStepDoIt(), G4Cerenkov::PostStepGetPhysicalInteractionLength(), G4DNAMolecularMaterial::RecordMolecularMaterial(), G4VEmAdjointModel::SelectCSMatrix(), G4EnergyLossForExtrapolator::SetupKinematics(), G4EnergyLossForExtrapolator::TrueStepLength(), and G4EmSaturation::VisibleEnergyDeposition().

◆ GetIonisation()

G4IonisParamMat * G4Material::GetIonisation ( ) const
inline

Definition at line 222 of file G4Material.hh.

222{return fIonisation;}

References fIonisation.

Referenced by G4EmCorrections::Bethe(), G4NistMaterialBuilder::BuildMaterial(), G4DensityEffectCalculator::ComputeDensityCorrection(), G4UrbanAdjointMscModel::ComputeTruePathLengthLimit(), G4GoudsmitSaundersonMscModel::ComputeTruePathLengthLimit(), CopyPointersOfBaseMaterial(), DetectorConstruction::DefineMaterials(), ExN03DetectorConstruction::DefineMaterials(), G4EmCorrections::DensityCorrection(), G4AtimaFluctuations::Dispersion(), G4EmSaturation::DumpBirksCoefficients(), G4tgbGeometryDumper::DumpMaterial(), G4ElectronIonPair::DumpMeanEnergyPerIonPair(), export_G4Material(), G4ElectronIonPair::FindG4MeanEnergyPerIonPair(), G4tgbMaterialMgr::FindOrBuildG4Material(), G4DensityEffectCalculator::G4DensityEffectCalculator(), G4EmSaturation::InitialiseBirksCoefficient(), G4GoudsmitSaundersonTable::InitSCPCorrection(), G4eDPWAElasticDCS::InitSCPCorrection(), G4GDMLWriteMaterials::MaterialWrite(), G4IonParametrisedLossModel::MinEnergyCut(), G4MuBetheBlochModel::MinEnergyCut(), G4mplIonisationWithDeltaModel::MinEnergyCut(), G4AtimaEnergyLossModel::MinEnergyCut(), G4BetheBlochModel::MinEnergyCut(), G4BraggIonModel::MinEnergyCut(), G4BraggModel::MinEnergyCut(), G4LindhardSorensenIonModel::MinEnergyCut(), G4CoulombScattering::MinPrimaryEnergy(), G4IonFluctuations::RelativisticFactor(), G4IonisParamMat::SetDensityEffectParameters(), G4WentzelOKandVIxSection::SetupKinematic(), G4WentzelVIRelXSection::SetupKinematic(), G4EmCorrections::ShellCorrectionSTD(), and G4EmSaturation::VisibleEnergyDeposition().

◆ GetMassOfMolecule()

G4double G4Material::GetMassOfMolecule ( ) const
inline

◆ GetMatComponents()

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

◆ GetMaterial() [1/3]

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

Definition at line 686 of file G4Material.cc.

687{
688 // search the material by its name
689 for (size_t j=0; j<theMaterialTable.size(); ++j) {
690 if (theMaterialTable[j]->GetName() == materialName) {
691 return theMaterialTable[j];
692 }
693 }
694
695 // the material does not exist in the table
696 if (warn) {
697 G4cout << "G4Material::GetMaterial() WARNING: The material: "
698 << materialName
699 << " does not exist in the table. Return NULL pointer."
700 << G4endl;
701 }
702 return nullptr;
703}
const G4String & GetName() const
Definition: G4Material.hh:173

References G4cout, G4endl, GetName(), and theMaterialTable.

Referenced by G4DNABrownianTransportation::BuildPhysicsTable(), G4LossTableBuilder::BuildTableForModel(), G4ProductionCutsTable::CheckMaterialInfo(), MyDetectorConstruction::Construct(), QDetectorConstruction::Construct(), demo::ConstructGeom(), Lesson1::ConstructGeom(), run::ConstructGeom(), test::ConstructGeom(), test_voxel::ConstructGeom(), G4EzWorld::CreateWorld(), G4DNAELSEPAElasticModel::CrossSectionPerVolume(), G4DNADummyModel::CrossSectionPerVolume(), G4EmCalculator::FindMaterial(), G4GDMLReadMaterials::GetMaterial(), G4DNAChampionElasticModel::Initialise(), G4DNACPA100ElasticModel::Initialise(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4DNAMeltonAttachmentModel::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4TDNAOneStepThermalizationModel< MODEL >::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), G4DNARuddIonisationModel::Initialise(), G4DNASancheExcitationModel::Initialise(), G4DNAScreenedRutherfordElasticModel::Initialise(), G4DNATransformElectronModel::Initialise(), G4DNAUeharaScreenedRutherfordElasticModel::Initialise(), G4LivermorePhotoElectricModel::Initialise(), G4DNABornExcitationModel1::Initialise(), G4DNABornExcitationModel2::Initialise(), G4DNABornIonisationModel1::Initialise(), G4DNABornIonisationModel2::Initialise(), G4DNACPA100ExcitationModel::Initialise(), G4DNACPA100IonisationModel::Initialise(), G4DNAEmfietzoglouExcitationModel::Initialise(), G4DNAEmfietzoglouIonisationModel::Initialise(), G4DNARelativisticIonisationModel::Initialise(), G4DNADummyModel::Initialise(), G4DNAIonElasticModel::Initialise(), ExN03DetectorConstruction::SetAbsorberMaterial(), ExN03DetectorConstruction::SetGapMaterial(), G4DNAMolecularMaterial::SetMolecularConfiguration(), and G4ProductionCutsTable::UpdateCoupleTable().

◆ GetMaterial() [2/3]

G4Material * G4Material::GetMaterial ( G4double  z,
G4double  a,
G4double  dens 
)
static

Definition at line 707 of file G4Material.cc.

708{
709 // search the material by its name
710 for (size_t j=0; j<theMaterialTable.size(); ++j) {
711 G4Material* mat = theMaterialTable[j];
712 if (1 == mat->GetNumberOfElements() &&
713 z == mat->GetZ() && a == mat->GetA() && dens == mat->GetDensity()) {
714 return mat;
715 }
716 }
717 return nullptr;
718}
G4double GetZ() const
Definition: G4Material.cc:736

References GetA(), GetDensity(), GetNumberOfElements(), GetZ(), and theMaterialTable.

◆ GetMaterial() [3/3]

G4Material * G4Material::GetMaterial ( size_t  nComp,
G4double  dens 
)
static

Definition at line 722 of file G4Material.cc.

723{
724 // search the material by its name
725 for (size_t j=0; j<theMaterialTable.size(); ++j) {
726 G4Material* mat = theMaterialTable[j];
727 if (nComp == mat->GetNumberOfElements() && dens == mat->GetDensity()) {
728 return mat;
729 }
730 }
731 return nullptr;
732}

References GetDensity(), GetNumberOfElements(), and theMaterialTable.

◆ GetMaterialPropertiesTable()

G4MaterialPropertiesTable * G4Material::GetMaterialPropertiesTable ( ) const
inline

◆ GetMaterialTable()

G4MaterialTable * G4Material::GetMaterialTable ( )
static

Definition at line 672 of file G4Material.cc.

673{
674 return &theMaterialTable;
675}

References theMaterialTable.

Referenced by G4VCrossSectionHandler::ActiveElements(), G4PixeCrossSectionHandler::ActiveElements(), G4AdjointCSManager::BuildCrossSectionMatrices(), G4PixeCrossSectionHandler::BuildCrossSectionsForMaterials(), G4DNAModelInterface::BuildMaterialMolPerVolTable(), G4DNAModelInterface::BuildMaterialParticleModelTable(), G4NistMaterialBuilder::BuildNistMaterial(), G4ParticleHPThermalScattering::buildPhysicsTable(), G4ParticleHPThermalScatteringData::BuildPhysicsTable(), G4VLEPTSModel::BuildPhysicsTable(), G4Cerenkov::BuildPhysicsTable(), G4Scintillation::BuildPhysicsTable(), G4OpRayleigh::BuildPhysicsTable(), G4OpWLS::BuildPhysicsTable(), G4OpWLS2::BuildPhysicsTable(), G4TablesForExtrapolator::ComputeElectronDEDX(), G4VXTRenergyLoss::ComputeGasPhotoAbsCof(), G4PAIxSection::ComputeLowEnergyCof(), G4StrawTubeXTRadiator::ComputeMediumPhotoAbsCof(), G4TablesForExtrapolator::ComputeMuonDEDX(), G4VXTRenergyLoss::ComputePlatePhotoAbsCof(), G4TablesForExtrapolator::ComputeProtonDEDX(), G4TablesForExtrapolator::ComputeTrasportXS(), DetectorConstruction::DefineMaterials(), ExN03DetectorConstruction::DefineMaterials(), G4EmSaturation::DumpBirksCoefficients(), G4ElectronIonPair::DumpMeanEnergyPerIonPair(), export_G4Material(), G4NistMaterialBuilder::FindMaterial(), G4PAIxSection::G4PAIxSection(), G4SandiaTable::G4SandiaTable(), G4DNAMolecularMaterial::GetDensityTableFor(), G4VXTRenergyLoss::GetGasCompton(), G4NistManager::GetMaterial(), getMaterialTable(), G4DNAMolecularMaterial::GetNumMolPerVolTableFor(), G4VXTRenergyLoss::GetPlateCompton(), G4TablesForExtrapolator::Initialisation(), G4ICRU90StoppingData::Initialise(), G4ASTARStopping::Initialise(), G4PSTARStopping::Initialise(), G4LEPTSElasticModel::Initialise(), G4PAIModel::Initialise(), G4PAIPhotModel::Initialise(), G4eeToTwoGammaModel::Initialise(), G4ICRU73QOModel::Initialise(), G4PEEffectFluoModel::Initialise(), G4HadronXSDataTable::Initialise(), G4EmSaturation::InitialiseG4Saturation(), G4DNAMolecularMaterial::Initialize(), G4DNAMolecularMaterial::InitializeDensity(), G4GoudsmitSaundersonTable::InitMoliereMSCParams(), G4VDNAModel::IsMaterialDefine(), G4eIonisationParameters::LoadData(), G4NistManager::PrintG4Material(), G4ProductionCutsTable::StoreMaterialInfo(), G4GDMLRead::StripNames(), and G4NistManager::~G4NistManager().

◆ GetName()

const G4String & G4Material::GetName ( ) const
inline

Definition at line 173 of file G4Material.hh.

173{return fName;}

References fName.

Referenced by G4GMocrenFileSceneHandler::AddSolid(), G4VtkSceneHandler::AddSolid(), G4ErrorEnergyLoss::AlongStepDoIt(), G4VContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4VContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4ParticleHPInelastic::ApplyYourself(), G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousProcess::AtRestGetPhysicalInteractionLength(), G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestProcess::AtRestGetPhysicalInteractionLength(), G4VRestProcess::AtRestGetPhysicalInteractionLength(), G4EmCorrections::BarkasCorrection(), G4DNAModelInterface::BuildMaterialMolPerVolTable(), G4DNAModelInterface::BuildMaterialParticleModelTable(), G4VLEPTSModel::BuildPhysicsTable(), G4PenelopeIonisationXSHandler::BuildXSTable(), G4PenelopeBremsstrahlungModel::BuildXSTable(), G4ProductionCutsTable::CheckMaterialCutsCoupleInfo(), G4EmCalculator::ComputeCrossSectionPerVolume(), G4DensityEffectCalculator::ComputeDensityCorrection(), G4IonisParamMat::ComputeDensityEffectParameters(), G4TablesForExtrapolator::ComputeElectronDEDX(), G4SandiaTable::ComputeMatSandiaMatrix(), G4SandiaTable::ComputeMatSandiaMatrixPAI(), G4SandiaTable::ComputeMatTable(), G4EmCalculator::ComputeMeanFreePath(), G4TablesForExtrapolator::ComputeMuonDEDX(), G4TablesForExtrapolator::ComputeProtonDEDX(), G4TablesForExtrapolator::ComputeTrasportXS(), ExN03DetectorConstruction::ConstructCalorimeter(), G4tgbVolume::ConstructG4LogVol(), G4tgbVolume::ConstructG4PhysVol(), DetectorConstruction::ConstructVolumes(), G4PhysicalVolumeModel::CreateCurrentAttValues(), G4DNAModelInterface::CrossSectionPerVolume(), G4EmElementSelector::Dump(), G4EmSaturation::DumpBirksCoefficients(), G4ProductionCutsTable::DumpCouples(), G4PenelopeRayleighModel::DumpFormFactorTable(), G4PenelopeRayleighModelMI::DumpFormFactorTable(), G4ElectronIonPair::DumpMeanEnergyPerIonPair(), G4HadronicProcess::DumpState(), G4MuonicAtomDecay::DumpState(), G4ExceptionHandler::DumpTrackInfo(), G4EmCorrections::EffectiveChargeCorrection(), export_G4Material(), G4DensityEffectCalculator::FermiDeltaCalculation(), G4EmModelManager::FillDEDXVector(), G4EmModelManager::FillLambdaVector(), G4EmSaturation::FindG4BirksCoefficient(), G4ElectronIonPair::FindG4MeanEnergyPerIonPair(), G4VEmProcess::FindLambdaMax(), G4IonisParamMat::FindMeanExcitationEnergy(), G4tgbMaterialMgr::FindOrBuildG4Material(), G4PenelopeIonisationCrossSection::FindShellIDIndex(), G4ForwardXrayTR::G4ForwardXrayTR(), G4StrawTubeXTRadiator::G4StrawTubeXTRadiator(), G4VXTRenergyLoss::G4VXTRenergyLoss(), G4PenelopeOscillatorManager::GetAtomsPerMolecule(), G4CrossSectionDataStore::GetCrossSection(), G4EmCalculator::GetCrossSectionPerVolume(), G4PenelopeBremsstrahlungModel::GetCrossSectionTableForCouple(), G4EmCalculator::GetCSDARange(), G4EmCalculator::GetDEDX(), G4PenelopeIonisationXSHandler::GetDensityCorrection(), G4VCrossSectionDataSet::GetElementCrossSection(), G4PenelopeRayleighModel::GetFSquared(), G4PenelopeRayleighModelMI::GetFSquared(), G4ESTARStopping::GetIndex(), G4CrossSectionDataStore::GetIsoCrossSection(), G4VCrossSectionDataSet::GetIsoCrossSection(), G4EmCalculator::GetKinEnergy(), G4LatticeManager::GetLattice(), GetMaterial(), G4PenelopeOscillatorManager::GetMeanExcitationEnergy(), G4EmCalculator::GetMeanFreePath(), G4PenelopeOscillatorManager::GetNumberOfZAtomsPerMolecule(), G4DNAModelInterface::GetNumMoleculePerVolumeUnitForMaterial(), G4DNAModelInterface::GetNumMolPerVolUnitForComponentInComposite(), G4PenelopeOscillatorManager::GetOscillatorTableCompton(), G4PenelopeOscillatorManager::GetOscillatorTableIonisation(), G4PenelopeOscillatorManager::GetPlasmaEnergySquared(), G4PenelopeRayleighModel::GetPMaxTable(), G4PenelopeRayleighModelMI::GetPMaxTable(), G4EmCalculator::GetRangeFromRestricteDEDX(), G4PenelopeOscillatorManager::GetTotalA(), G4PenelopeOscillatorManager::GetTotalZ(), G4EmCorrections::HighOrderCorrections(), G4ICRU90StoppingData::Initialise(), G4ASTARStopping::Initialise(), G4IonICRU73Data::Initialise(), G4PSTARStopping::Initialise(), G4LEPTSElasticModel::Initialise(), G4PAIModel::Initialise(), G4PAIPhotModel::Initialise(), G4EmSaturation::InitialiseBirksCoefficient(), InitializePointers(), G4PenelopeRayleighModel::InitializeSamplingAlgorithm(), G4PenelopeRayleighModelMI::InitializeSamplingAlgorithm(), G4LatticeManager::LoadLattice(), G4GDMLWriteMaterials::MaterialWrite(), G4DNASecondOrderReaction::PostStepDoIt(), G4MicroElecSurface::PostStepDoIt(), G4VXTRenergyLoss::PostStepDoIt(), G4VITDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4DNASecondOrderReaction::PostStepGetPhysicalInteractionLength(), G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4Decay::PostStepGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength(), ExN03DetectorConstruction::PrintCalorParameters(), G4NistManager::PrintG4Material(), GVFlashShowerParameterisation::PrintMaterial(), G4DNAMolecularMaterial::PrintNotAMolecularMaterial(), DetectorConstruction::PrintParameters(), G4ErrorFreeTrajState::PropagateErrorMSC(), G4ExtendedMaterial::RegisterExtension(), G4ASCIITreeSceneHandler::RequestPrimitives(), G4ExtendedMaterial::RetrieveExtension(), G4VLEPTSModel::SampleEnergyLoss(), G4PenelopeBremsstrahlungFS::SampleGammaEnergy(), G4LivermoreComptonModel::SampleSecondaries(), G4LowEPComptonModel::SampleSecondaries(), G4LowEPPolarizedComptonModel::SampleSecondaries(), G4PenelopeGammaConversionModel::SampleSecondaries(), G4PenelopePhotoElectricModel::SampleSecondaries(), G4PenelopeRayleighModel::SampleSecondaries(), G4PenelopeRayleighModelMI::SampleSecondaries(), G4DNAModelInterface::SampleSecondaries(), G4IonisParamMat::SetMeanExcitationEnergy(), G4EmCalculator::SetupMaterial(), G4EnergySplitter::SplitEnergyInVolumes(), G4ProductionCutsTable::StoreMaterialCutsCoupleInfo(), G4GDMLRead::StripNames(), G4ParallelWorldProcess::SwitchMaterial(), G4tgbMaterialMixtureByVolume::TransformToFractionsByWeight(), G4GDMLWriteStructure::TraverseVolumeTree(), and G4EmCalculator::UpdateParticle().

◆ GetNuclearInterLength()

G4double G4Material::GetNuclearInterLength ( ) const
inline

◆ GetNumberOfElements()

size_t G4Material::GetNumberOfElements ( ) const
inline

Definition at line 182 of file G4Material.hh.

182{return fNumberOfElements;}

References fNumberOfElements.

Referenced by G4AdjointPhotoElectricModel::AdjointCrossSection(), G4FissLib::ApplyYourself(), G4ParticleHPCapture::ApplyYourself(), G4ParticleHPFission::ApplyYourself(), G4ParticleHPInelastic::ApplyYourself(), G4ParticleHPThermalScattering::ApplyYourself(), G4ParticleHPElastic::ApplyYourself(), G4ErrorFreeTrajState::CalculateEffectiveZandA(), G4EmCalculator::CheckMaterial(), G4Nucleus::ChooseParameters(), G4AdjointCSManager::ComputeAdjointCS(), G4CrossSectionDataStore::ComputeCrossSection(), G4ICRU49NuclearStoppingModel::ComputeDEDXPerVolume(), G4IonisParamMat::ComputeDensityEffectOnFly(), G4IonisParamMat::ComputeDensityEffectParameters(), G4WentzelVIRelModel::ComputeEffectiveMass(), G4IonisParamMat::ComputeFluctModel(), G4IonisParamMat::ComputeIonParameters(), G4SandiaTable::ComputeMatSandiaMatrix(), G4SandiaTable::ComputeMatSandiaMatrixPAI(), G4SandiaTable::ComputeMatTable(), G4GammaConversionToMuons::ComputeMeanFreePath(), G4IonisParamMat::ComputeMeanParameters(), G4eDPWAElasticDCS::ComputeMParams(), G4WentzelVIModel::ComputeSecondMoment(), G4WentzelVIModel::ComputeTransportXSectionPerVolume(), G4VEmModel::CrossSectionPerVolume(), G4tgbGeometryDumper::DumpMaterial(), G4DensityEffectCalculator::G4DensityEffectCalculator(), G4EmElementSelector::G4EmElementSelector(), G4HadElementSelector::G4HadElementSelector(), G4Material(), G4CrossSectionDataStore::GetCrossSection(), G4IonICRU73Data::GetDEDX(), GVFlashShowerParameterisation::GetEffA(), GVFlashShowerParameterisation::GetEffZ(), GetMaterial(), G4GSPWACorrections::InitDataMaterial(), G4IonICRU73Data::Initialise(), G4LivermoreGammaConversion5DModel::Initialise(), G4eDPWACoulombScatteringModel::Initialise(), G4WentzelVIModel::Initialise(), G4HadronXSDataTable::Initialise(), G4EmSaturation::InitialiseBirksCoefficient(), G4GSMottCorrection::InitMCDataMaterial(), G4GoudsmitSaundersonTable::InitMoliereMSCParams(), G4GDMLWriteMaterials::MaterialWrite(), G4IonICRU73Data::ReadElementData(), G4VLEPTSModel::ReadParam(), G4WentzelVIModel::SampleScattering(), G4AdjointPhotoElectricModel::SampleSecondaries(), G4PenelopeRayleighModel::SampleSecondaries(), G4PenelopeRayleighModelMI::SampleSecondaries(), G4CrossSectionDataStore::SampleZandA(), G4GammaConversionToMuons::SelectRandomAtom(), G4VEmModel::SelectRandomAtom(), G4VEmModel::SelectRandomAtomNumber(), G4ElementSelector::SelectZandA(), and G4EmCorrections::SetupKinematics().

◆ GetNumberOfMaterials()

size_t G4Material::GetNumberOfMaterials ( )
static

◆ GetPressure()

G4double G4Material::GetPressure ( ) const
inline

◆ GetRadlen()

G4double G4Material::GetRadlen ( ) const
inline

◆ GetSandiaTable()

G4SandiaTable * G4Material::GetSandiaTable ( ) const
inline

◆ GetState()

G4State G4Material::GetState ( ) const
inline

◆ GetTemperature()

G4double G4Material::GetTemperature ( ) const
inline

◆ GetTotNbOfAtomsPerVolume()

G4double G4Material::GetTotNbOfAtomsPerVolume ( ) const
inline

◆ GetTotNbOfElectPerVolume()

G4double G4Material::GetTotNbOfElectPerVolume ( ) const
inline

◆ GetVecNbOfAtomsPerVolume()

const G4double * G4Material::GetVecNbOfAtomsPerVolume ( ) const
inline

◆ GetZ()

G4double G4Material::GetZ ( ) const

Definition at line 736 of file G4Material.cc.

737{
738 if (fNumberOfElements > 1) {
740 ed << "For material " << fName << " ERROR in GetZ() - Nelm="
741 << fNumberOfElements << " > 1, which is not allowed";
742 G4Exception ("G4Material::GetZ()", "mat036", FatalException,
743 ed, "");
744 }
745 return (*theElementVector)[0]->GetZ();
746}

References FatalException, fName, fNumberOfElements, G4Exception(), and theElementVector.

Referenced by G4tgbGeometryDumper::DumpMaterial(), export_G4Material(), GVFlashShowerParameterisation::GetEffZ(), GetMaterial(), and G4GDMLWriteMaterials::MaterialWrite().

◆ InitializePointers()

void G4Material::InitializePointers ( )
private

Definition at line 247 of file G4Material.cc.

248{
249 fBaseMaterial = nullptr;
250 fMaterialPropertiesTable = nullptr;
251 theElementVector = nullptr;
252 fAtomsVector = nullptr;
253 fMassFractionVector = nullptr;
254 fVecNbOfAtomsPerVolume = nullptr;
255
256 fIonisation = nullptr;
257 fSandiaTable = nullptr;
258
263
265
267
268 fMassFraction = true;
269
270 fChemicalFormula = "";
271
272 // initilized data members
273
274 // Store in the static Table of Materials
276 for(size_t i=0; i<fIndexInTable; ++i) {
277 if(theMaterialTable[i]->GetName() == fName) {
278 G4cout << "G4Material WARNING: duplicate name of material "
279 << fName << G4endl;
280 break;
281 }
282 }
283 theMaterialTable.push_back(this);
284}

References fAtomsVector, fBaseMaterial, fChemicalFormula, fDensity, fFreeElecDensity, fIdxComponent, fIndexInTable, fIonisation, fMassFraction, fMassFractionVector, fMassOfMolecule, fMaterialPropertiesTable, fName, fNbComponents, fNuclInterLen, fNumberOfElements, fPressure, fRadlen, fSandiaTable, fState, fTemp, fTotNbOfAtomsPerVolume, fTotNbOfElectPerVolume, fVecNbOfAtomsPerVolume, G4cout, G4endl, GetName(), kStateUndefined, theElementVector, and theMaterialTable.

Referenced by G4Material().

◆ IsExtended()

G4bool G4Material::IsExtended ( ) const
virtual

Reimplemented in G4ExtendedMaterial.

Definition at line 832 of file G4Material.cc.

833{
834 return false;
835}

◆ operator!=()

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

◆ operator=()

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

◆ operator==()

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

◆ SetChemicalFormula()

void G4Material::SetChemicalFormula ( const G4String chF)

Definition at line 632 of file G4Material.cc.

633{
634#ifdef G4MULTITHREADED
635 G4MUTEXLOCK(&materialMutex);
636#endif
637 fChemicalFormula = chF;
638#ifdef G4MULTITHREADED
639 G4MUTEXUNLOCK(&materialMutex);
640#endif
641}

References fChemicalFormula, G4MUTEXLOCK, and G4MUTEXUNLOCK.

Referenced by G4NistMaterialBuilder::BuildMaterial(), and export_G4Material().

◆ SetFreeElectronDensity()

void G4Material::SetFreeElectronDensity ( G4double  val)

Definition at line 645 of file G4Material.cc.

646{
647#ifdef G4MULTITHREADED
648 G4MUTEXLOCK(&materialMutex);
649#endif
650 if(val >= 0.) { fFreeElecDensity = val; }
651#ifdef G4MULTITHREADED
652 G4MUTEXUNLOCK(&materialMutex);
653#endif
654}

References fFreeElecDensity, G4MUTEXLOCK, and G4MUTEXUNLOCK.

◆ SetMaterialPropertiesTable()

void G4Material::SetMaterialPropertiesTable ( G4MaterialPropertiesTable anMPT)

Definition at line 839 of file G4Material.cc.

840{
841 if(nullptr != anMPT && fMaterialPropertiesTable != anMPT) {
842#ifdef G4MULTITHREADED
843 G4MUTEXLOCK(&materialMutex);
844 if(fMaterialPropertiesTable != anMPT) {
845#endif
848#ifdef G4MULTITHREADED
849 }
850 G4MUTEXUNLOCK(&materialMutex);
851#endif
852 }
853}

References fMaterialPropertiesTable, G4MUTEXLOCK, and G4MUTEXUNLOCK.

Referenced by export_G4Material().

◆ SetName()

void G4Material::SetName ( const G4String name)
inline

Definition at line 285 of file G4Material.hh.

285{fName=name;}

References fName, and G4InuclParticleNames::name().

Referenced by export_G4Material(), and G4GDMLRead::StripNames().

Friends And Related Function Documentation

◆ operator<< [1/3]

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

Definition at line 809 of file G4Material.cc.

810{
811 flux << &material;
812 return flux;
813}

◆ operator<< [2/3]

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

Definition at line 764 of file G4Material.cc.

765{
766 std::ios::fmtflags mode = flux.flags();
767 flux.setf(std::ios::fixed,std::ios::floatfield);
768 G4long prec = flux.precision(3);
769
770 flux
771 << " Material: " << std::setw(8) << material->fName
772 << " " << material->fChemicalFormula << " "
773 << " density: " << std::setw(6) << std::setprecision(3)
774 << G4BestUnit(material->fDensity,"Volumic Mass")
775 << " RadL: " << std::setw(7) << std::setprecision(3)
776 << G4BestUnit(material->fRadlen,"Length")
777 << " Nucl.Int.Length: " << std::setw(7) << std::setprecision(3)
778 << G4BestUnit(material->fNuclInterLen,"Length")
779 << "\n" << std::setw(30)
780 << " Imean: " << std::setw(7) << std::setprecision(3)
781 << G4BestUnit(material->GetIonisation()->GetMeanExcitationEnergy(),"Energy")
782 << " temperature: " << std::setw(6) << std::setprecision(2)
783 << (material->fTemp)/CLHEP::kelvin << " K"
784 << " pressure: " << std::setw(6) << std::setprecision(2)
785 << (material->fPressure)/CLHEP::atmosphere << " atm" << "\n";
786
787 for (G4int i=0; i<material->fNumberOfElements; i++) {
788 flux
789 << "\n ---> " << (*(material->theElementVector))[i]
790 << "\n ElmMassFraction: "
791 << std::setw(6)<< std::setprecision(2)
792 << (material->fMassFractionVector[i])/perCent << " %"
793 << " ElmAbundance " << std::setw(6)<< std::setprecision(2)
794 << 100*(material->fVecNbOfAtomsPerVolume[i])
795 /(material->fTotNbOfAtomsPerVolume)
796 << " % \n";
797 }
798 flux.precision(prec);
799 flux.setf(mode,std::ios::floatfield);
800
801 if(material->IsExtended())
802 { static_cast<const G4ExtendedMaterial*>(material)->Print(flux); }
803
804 return flux;
805}
static constexpr double perCent
Definition: G4SIunits.hh:325
#define G4BestUnit(a, b)
long G4long
Definition: G4Types.hh:87
static const double prec
Definition: RanecuEngine.cc:61
static constexpr double kelvin
static constexpr double atmosphere
void Print(G4Element &ele)
Definition: pyG4Element.cc:55

◆ operator<< [3/3]

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

Definition at line 817 of file G4Material.cc.

818{
819 //Dump info for all known materials
820 flux << "\n***** Table : Nb of materials = " << MaterialTable.size()
821 << " *****\n" << G4endl;
822
823 for (size_t i=0; i<MaterialTable.size(); ++i) {
824 flux << MaterialTable[i] << G4endl << G4endl;
825 }
826
827 return flux;
828}

Field Documentation

◆ fAtoms

std::vector<G4int>* G4Material::fAtoms
private

Definition at line 355 of file G4Material.hh.

Referenced by AddElementByNumberOfAtoms().

◆ fAtomsVector

G4int* G4Material::fAtomsVector
private

◆ fBaseMaterial

const G4Material* G4Material::fBaseMaterial
private

◆ fChemicalFormula

G4String G4Material::fChemicalFormula
private

◆ fDensity

G4double G4Material::fDensity
private

◆ fElm

std::vector<const G4Element*>* G4Material::fElm
private

◆ fElmFrac

std::vector<G4double>* G4Material::fElmFrac
private

Definition at line 356 of file G4Material.hh.

Referenced by AddElementByMassFraction(), AddMaterial(), and FillVectors().

◆ fFreeElecDensity

G4double G4Material::fFreeElecDensity
private

◆ fIdxComponent

G4int G4Material::fIdxComponent
private

◆ fIndexInTable

size_t G4Material::fIndexInTable
private

Definition at line 346 of file G4Material.hh.

Referenced by GetIndex(), InitializePointers(), and ~G4Material().

◆ fIonisation

G4IonisParamMat* G4Material::fIonisation
private

◆ fMassFraction

G4bool G4Material::fMassFraction
private

◆ fMassFractionVector

G4double* G4Material::fMassFractionVector
private

◆ fMassOfMolecule

G4double G4Material::fMassOfMolecule
private

◆ fMatComponents

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

Definition at line 360 of file G4Material.hh.

Referenced by AddMaterial(), and GetMatComponents().

◆ fMaterialPropertiesTable

G4MaterialPropertiesTable* G4Material::fMaterialPropertiesTable
private

◆ fName

G4String G4Material::fName
private

◆ fNbComponents

G4int G4Material::fNbComponents
private

◆ fNuclInterLen

G4double G4Material::fNuclInterLen
private

◆ fNumberOfElements

G4int G4Material::fNumberOfElements
private

◆ fPressure

G4double G4Material::fPressure
private

Definition at line 337 of file G4Material.hh.

Referenced by G4Material(), GetPressure(), and InitializePointers().

◆ fRadlen

G4double G4Material::fRadlen
private

◆ fSandiaTable

G4SandiaTable* G4Material::fSandiaTable
private

◆ fState

G4State G4Material::fState
private

◆ fTemp

G4double G4Material::fTemp
private

Definition at line 336 of file G4Material.hh.

Referenced by G4Material(), GetTemperature(), and InitializePointers().

◆ fTotNbOfAtomsPerVolume

G4double G4Material::fTotNbOfAtomsPerVolume
private

◆ fTotNbOfElectPerVolume

G4double G4Material::fTotNbOfElectPerVolume
private

◆ fVecNbOfAtomsPerVolume

G4double* G4Material::fVecNbOfAtomsPerVolume
private

◆ theElementVector

G4ElementVector* G4Material::theElementVector
private

◆ theMaterialTable

G4MaterialTable G4Material::theMaterialTable
staticprivate

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