Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4Material Class Reference

#include <G4Material.hh>

+ Inheritance 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 AddElementByNumberOfAtoms (G4Element *elm, G4int nAtoms)
 
void AddElement (G4Element *element, G4double fraction)
 
void AddElementByMassFraction (G4Element *elm, G4double frac)
 
void AddMaterial (G4Material *material, G4double fraction)
 
virtual ~G4Material ()
 
const G4StringGetName () const
 
const G4StringGetChemicalFormula () const
 
G4double GetFreeElectronDensity () 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
 
void SetChemicalFormula (const G4String &chF)
 
void SetFreeElectronDensity (G4double)
 
void ComputeDensityEffectOnFly (G4bool)
 
G4double GetZ () const
 
G4double GetA () const
 
void SetMaterialPropertiesTable (G4MaterialPropertiesTable *anMPT)
 
G4MaterialPropertiesTableGetMaterialPropertiesTable () const
 
size_t GetIndex () const
 
 G4Material (__void__ &)
 
void SetName (const G4String &name)
 
virtual G4bool IsExtended () const
 

Static Public Member Functions

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

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 117 of file G4Material.hh.

Constructor & Destructor Documentation

◆ G4Material() [1/4]

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{
100 InitializePointers();
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
119 maxNbComponents = fNumberOfComponents = fNumberOfElements = 1;
120 fArrayLength = maxNbComponents;
121 theElementVector = new G4ElementVector();
122
123 // take element from DB
125 G4int iz = G4lrint(z);
126 auto elm = nist->FindOrBuildElement(iz);
127 if(!elm) { elm = new G4Element("ELM_" + name, name, z, a); }
128 theElementVector->push_back(elm);
129
130 fMassFractionVector = new G4double[1];
131 fMassFractionVector[0] = 1.;
132 fMassOfMolecule = a/CLHEP::Avogadro;
133
134 if (fState == kStateUndefined)
135 {
136 if (fDensity > kGasThreshold) { fState = kStateSolid; }
137 else { fState = kStateGas; }
138 }
139
140 ComputeDerivedQuantities();
141}
std::vector< G4Element * > G4ElementVector
@ kStateSolid
Definition: G4Material.hh:111
@ kStateGas
Definition: G4Material.hh:111
@ kStateUndefined
Definition: G4Material.hh:111
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
static G4NistManager * Instance()
G4Element * FindOrBuildElement(G4int Z, G4bool isotopes=true)
const char * name(G4int ptype)
int G4lrint(double ad)
Definition: templates.hh:134

◆ G4Material() [2/4]

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

Definition at line 148 of file G4Material.cc.

151 : fName(name)
152{
153 InitializePointers();
154
155 if (density < universe_mean_density)
156 {
157 G4cout << "--- Warning from G4Material::G4Material()"
158 << " define a material with density=0 is not allowed. \n"
159 << " The material " << name << " will be constructed with the"
160 << " default minimal density: " << universe_mean_density/(g/cm3)
161 << "g/cm3" << G4endl;
162 density = universe_mean_density;
163 }
164
165 fDensity = density;
166 fState = state;
167 fTemp = temp;
168 fPressure = pressure;
169
170 maxNbComponents = nComponents;
171 fArrayLength = maxNbComponents;
172 fNumberOfComponents = fNumberOfElements = 0;
173 theElementVector = new G4ElementVector();
174 theElementVector->reserve(maxNbComponents);
175
176 if (fState == kStateUndefined)
177 {
178 if (fDensity > kGasThreshold) { fState = kStateSolid; }
179 else { fState = kStateGas; }
180 }
181}

◆ G4Material() [3/4]

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

190 : fName(name)
191{
192 InitializePointers();
193
194 if (density < universe_mean_density)
195 {
196 G4cout << "--- Warning from G4Material::G4Material()"
197 << " define a material with density=0 is not allowed. \n"
198 << " The material " << name << " will be constructed with the"
199 << " default minimal density: " << universe_mean_density/(g/cm3)
200 << "g/cm3" << G4endl;
201 density = universe_mean_density;
202 }
203
204 fDensity = density;
205 fState = state;
206 fTemp = temp;
207 fPressure = pressure;
208
209 fBaseMaterial = bmat;
210 fChemicalFormula = fBaseMaterial->GetChemicalFormula();
211 fMassOfMolecule = fBaseMaterial->GetMassOfMolecule();
212
213 fNumberOfElements = fBaseMaterial->GetNumberOfElements();
214 maxNbComponents = fNumberOfElements;
215 fNumberOfComponents = fNumberOfElements;
216
217 CopyPointersOfBaseMaterial();
218}
const G4String & GetChemicalFormula() const
Definition: G4Material.hh:176
size_t GetNumberOfElements() const
Definition: G4Material.hh:184
G4double GetMassOfMolecule() const
Definition: G4Material.hh:239

◆ ~G4Material()

G4Material::~G4Material ( )
virtual

Definition at line 233 of file G4Material.cc.

234{
235 // G4cout << "### Destruction of material " << fName << " started" <<G4endl;
236 if(fBaseMaterial == nullptr) {
237 delete theElementVector;
238 delete fSandiaTable;
239 //delete fMaterialPropertiesTable;
240 delete [] fMassFractionVector;
241 delete [] fAtomsVector;
242 }
243 delete fIonisation;
244 delete [] fVecNbOfAtomsPerVolume;
245
246 // Remove this material from theMaterialTable.
247 //
248 theMaterialTable[fIndexInTable] = nullptr;
249}

◆ G4Material() [4/4]

G4Material::G4Material ( __void__ &  )

Definition at line 225 of file G4Material.cc.

226 : fName("")
227{
228 InitializePointers();
229}

Member Function Documentation

◆ AddElement() [1/2]

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

Definition at line 411 of file G4Material.cc.

412{
413 if(fraction < 0.0 || fraction > 1.0) {
414 G4cout << "G4Material::AddElement ERROR for " << fName << " and "
415 << element->GetName() << " mass fraction= " << fraction
416 << " is wrong " << G4endl;
417 G4Exception ("G4Material::AddElement()", "mat032", FatalException,
418 "Attempt to add element with wrong mass fraction");
419 }
420 // initialization
421 if (fNumberOfComponents == 0) {
422 fMassFractionVector = new G4double[fArrayLength];
423 fAtomsVector = new G4int [fArrayLength];
424 }
425 // filling ...
426 if (fNumberOfComponents < maxNbComponents) {
427 G4int el = 0;
428 // Loop checking, 07-Aug-2015, Vladimir Ivanchenko
429 while ((el<fNumberOfElements)&&(element!=(*theElementVector)[el])) { ++el; }
430 if (el<fNumberOfElements) fMassFractionVector[el] += fraction;
431 else {
432 theElementVector->push_back(element);
433 fMassFractionVector[el] = fraction;
434 ++fNumberOfElements;
435 }
436 ++fNumberOfComponents;
437 } else {
438 G4cout << "G4Material::AddElement ERROR for " << fName << " nElement= "
439 << fNumberOfElements << G4endl;
440 G4Exception ("G4Material::AddElement()", "mat033", FatalException,
441 "Attempt to add more than the declared number of elements.");
442 }
443
444 // filled.
445 if (fNumberOfComponents == maxNbComponents) {
446
447 G4int i=0;
448 G4double Zmol(0.), Amol(0.);
449 // check sum of weights -- OK?
450 G4double wtSum(0.0);
451 for (i=0; i<fNumberOfElements; ++i) {
452 wtSum += fMassFractionVector[i];
453 Zmol += fMassFractionVector[i]*(*theElementVector)[i]->GetZ();
454 Amol += fMassFractionVector[i]*(*theElementVector)[i]->GetA();
455 }
456 if (std::abs(1.-wtSum) > perThousand) {
457 G4cout << "WARNING !! for " << fName << " sum of fractional masses "
458 << wtSum << " is not 1 - results may be wrong" << G4endl;
459 G4Exception ("G4Material::AddElement()", "mat033", JustWarning,
460 "Fractional masses are incorrect.");
461 }
462 for (i=0; i<fNumberOfElements; ++i) {
463 fAtomsVector[i] =
464 G4lrint(fMassFractionVector[i]*Amol/(*theElementVector)[i]->GetA());
465 }
466
467 ComputeDerivedQuantities();
468 }
469}
@ JustWarning
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
const G4String & GetName() const
Definition: G4Element.hh:126
G4double GetA() const
Definition: G4Material.cc:714

◆ AddElement() [2/2]

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

Definition at line 369 of file G4Material.cc.

370{
371 // initialization
372 if ( fNumberOfElements == 0 ) {
373 fAtomsVector = new G4int [fArrayLength];
374 fMassFractionVector = new G4double[fArrayLength];
375 }
376
377 // filling ...
378 if ( fNumberOfElements < maxNbComponents ) {
379 theElementVector->push_back(element);
380 fAtomsVector[fNumberOfElements] = nAtoms;
381 fNumberOfComponents = ++fNumberOfElements;
382 } else {
383 G4cout << "G4Material::AddElement ERROR for " << fName << " nElement= "
384 << fNumberOfElements << G4endl;
385 G4Exception ("G4Material::AddElement()", "mat031", FatalException,
386 "Attempt to add more than the declared number of elements.");
387 }
388 // filled.
389 if ( fNumberOfElements == maxNbComponents ) {
390 // compute proportion by mass
391 G4int i=0;
392 G4double Amol = 0.;
393 for (i=0; i<fNumberOfElements; ++i) {
394 G4double w = fAtomsVector[i]*(*theElementVector)[i]->GetA();
395 Amol += w;
396 fMassFractionVector[i] = w;
397 }
398 for (i=0; i<fNumberOfElements; ++i) {
399 fMassFractionVector[i] /= Amol;
400 }
401
402 fMassOfMolecule = Amol/Avogadro;
403 ComputeDerivedQuantities();
404 }
405}

Referenced by AddElementByMassFraction(), AddElementByNumberOfAtoms(), G4tgbMaterialMixtureByNoAtoms::BuildG4Material(), G4tgbMaterialMixtureByWeight::BuildG4Material(), G4gsmate(), G4gsmixt(), and G4GDMLReadMaterials::MixtureRead().

◆ AddElementByMassFraction()

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

Definition at line 166 of file G4Material.hh.

166{AddElement(elm, frac);}
void AddElement(G4Element *element, G4int nAtoms)
Definition: G4Material.cc:369

◆ AddElementByNumberOfAtoms()

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

Definition at line 158 of file G4Material.hh.

158{AddElement(elm, nAtoms);}

◆ AddMaterial()

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

store massFraction of material component

Definition at line 475 of file G4Material.cc.

476{
477 if(fraction < 0.0 || fraction > 1.0) {
478 G4cout << "G4Material::AddMaterial ERROR for " << fName << " and "
479 << material->GetName() << " mass fraction= " << fraction
480 << " is wrong ";
481 G4Exception ("G4Material::AddMaterial()", "mat034", FatalException,
482 "Attempt to add material with wrong mass fraction");
483 }
484 // initialization
485 if (fNumberOfComponents == 0) {
486 fMassFractionVector = new G4double[fArrayLength];
487 fAtomsVector = new G4int [fArrayLength];
488 }
489
490 G4int nelm = material->GetNumberOfElements();
491
492 // arrays should be extended
493 if(nelm > 1) {
494 G4int nold = fArrayLength;
495 fArrayLength += nelm - 1;
496 G4double* v1 = new G4double[fArrayLength];
497 G4int* i1 = new G4int[fArrayLength];
498 for(G4int i=0; i<nold; ++i) {
499 v1[i] = fMassFractionVector[i];
500 i1[i] = fAtomsVector[i];
501 }
502 delete [] fAtomsVector;
503 delete [] fMassFractionVector;
504 fMassFractionVector = v1;
505 fAtomsVector = i1;
506 }
507
508 // filling ...
509 if (fNumberOfComponents < maxNbComponents) {
510 for (G4int elm=0; elm<nelm; ++elm)
511 {
512 G4Element* element = (*(material->GetElementVector()))[elm];
513 G4int el = 0;
514 // Loop checking, 07-Aug-2015, Vladimir Ivanchenko
515 while ((el<fNumberOfElements)&&(element!=(*theElementVector)[el])) el++;
516 if (el < fNumberOfElements) fMassFractionVector[el] += fraction
517 *(material->GetFractionVector())[elm];
518 else {
519 theElementVector->push_back(element);
520 fMassFractionVector[el] = fraction
521 *(material->GetFractionVector())[elm];
522 ++fNumberOfElements;
523 }
524 }
525 ++fNumberOfComponents;
526 ///store massFraction of material component
527 fMatComponents[material] = fraction;
528
529 } else {
530 G4cout << "G4Material::AddMaterial ERROR for " << fName << " nElement= "
531 << fNumberOfElements << G4endl;
532 G4Exception ("G4Material::AddMaterial()", "mat035", FatalException,
533 "Attempt to add more than the declared number of components.");
534 }
535
536 // filled.
537 if (fNumberOfComponents == maxNbComponents) {
538 G4int i=0;
539 G4double Zmol(0.), Amol(0.);
540 // check sum of weights -- OK?
541 G4double wtSum(0.0);
542 for (i=0; i<fNumberOfElements; ++i) {
543 wtSum += fMassFractionVector[i];
544 Zmol += fMassFractionVector[i]*(*theElementVector)[i]->GetZ();
545 Amol += fMassFractionVector[i]*(*theElementVector)[i]->GetA();
546 }
547 if (std::abs(1.-wtSum) > perThousand) {
548 G4cout << "G4Material::AddMaterial WARNING !! for " << fName
549 << " sum of fractional masses "
550 << wtSum << " is not 1 - results may be wrong"
551 << G4endl;
552 G4Exception ("G4Material::AddMaterial()", "mat033", JustWarning,
553 "Fractional masses are incorrect.");
554 }
555 for (i=0; i<fNumberOfElements; ++i) {
556 fAtomsVector[i] =
557 G4lrint(fMassFractionVector[i]*Amol/(*theElementVector)[i]->GetA());
558 }
559
560 ComputeDerivedQuantities();
561 }
562}
const G4ElementVector * GetElementVector() const
Definition: G4Material.hh:188
const G4double * GetFractionVector() const
Definition: G4Material.hh:192
const G4String & GetName() const
Definition: G4Material.hh:175

Referenced by G4tgbMaterialMixtureByVolume::BuildG4Material(), G4tgbMaterialMixtureByWeight::BuildG4Material(), and G4GDMLReadMaterials::MixtureRead().

◆ ComputeDensityEffectOnFly()

void G4Material::ComputeDensityEffectOnFly ( G4bool  val)

Definition at line 623 of file G4Material.cc.

624{
625#ifdef G4MULTITHREADED
626 G4MUTEXLOCK(&materialMutex);
627#endif
628 if (!fIonisation) { fIonisation = new G4IonisParamMat(this); }
629 fIonisation->ComputeDensityEffectOnFly(val);
630#ifdef G4MULTITHREADED
631 G4MUTEXUNLOCK(&materialMutex);
632#endif
633}
#define G4MUTEXLOCK(mutex)
Definition: G4Threading.hh:251
#define G4MUTEXUNLOCK(mutex)
Definition: G4Threading.hh:254
void ComputeDensityEffectOnFly(G4bool)

Referenced by G4NistManager::SetDensityEffectCalculatorFlag().

◆ GetA()

G4double G4Material::GetA ( ) const

Definition at line 714 of file G4Material.cc.

715{
716 if (fNumberOfElements > 1) {
717 G4cout << "G4Material ERROR in GetA. The material: " << fName
718 << " is a mixture.";
719 G4Exception ("G4Material::GetA()", "mat037", FatalException,
720 "the Atomic mass is not well defined." );
721 }
722 return (*theElementVector)[0]->GetA();
723}

Referenced by AddElement(), AddMaterial(), G4tgbGeometryDumper::DumpMaterial(), GVFlashShowerParameterisation::GetEffA(), GetMaterial(), and G4GDMLWriteMaterials::MaterialWrite().

◆ GetAtomicNumDensityVector()

◆ GetAtomsVector()

const G4int * G4Material::GetAtomsVector ( ) const
inline

Definition at line 196 of file G4Material.hh.

196{return fAtomsVector;}

Referenced by G4VLEPTSModel::ReadParam().

◆ GetBaseMaterial()

◆ GetChemicalFormula()

const G4String & G4Material::GetChemicalFormula ( ) const
inline

◆ GetDensity()

G4double G4Material::GetDensity ( ) const
inline

Definition at line 178 of file G4Material.hh.

178{return fDensity;}

Referenced by G4GMocrenFileSceneHandler::AddSolid(), G4NistManager::BuildMaterialWithNewDensity(), G4VLEPTSModel::BuildMeanFreePathTable(), G4ProductionCutsTable::CheckMaterialInfo(), G4AdjointPrimaryGenerator::ComputeAccumulatedDepthVectorAlongBackRay(), G4EmCalculator::ComputeDEDX(), G4BetheBlochModel::ComputeDEDXPerVolume(), G4AtimaEnergyLossModel::ComputeDEDXPerVolume(), G4EmCalculator::ComputeNuclearDEDX(), G4NistMaterialBuilder::ConstructNewGasMaterial(), G4VRangeToEnergyConverter::Convert(), G4PhysicalVolumeModel::CreateCurrentAttValues(), G4LivermorePhotoElectricModel::CrossSectionPerVolume(), G4LivermorePolarizedPhotoElectricModel::CrossSectionPerVolume(), G4PhysicalVolumeModel::DescribeAndDescend(), G4AtimaFluctuations::Dispersion(), G4EmSaturation::DumpBirksCoefficients(), G4tgbGeometryDumper::DumpMaterial(), G4InitXscPAI::G4InitXscPAI(), G4PAIxSection::G4PAIxSection(), G4EmCalculator::GetDEDX(), G4VMscModel::GetEnergy(), G4LogicalVolume::GetMass(), GetMaterial(), G4VMscModel::GetRange(), G4PAIxSection::Initialize(), G4PAIySection::Initialize(), G4DNAMolecularMaterial::InitializeDensity(), G4GDMLWriteMaterials::MaterialWrite(), G4PSDoseDeposit::ProcessHits(), G4ASCIITreeSceneHandler::RequestPrimitives(), G4IonisParamMat::SetDensityEffectParameters(), GFlashHomoShowerParameterisation::SetMaterial(), GFlashSamplingShowerParameterisation::SetMaterial(), and G4tgbMaterialMixtureByVolume::TransformToFractionsByWeight().

◆ GetElectronDensity()

G4double G4Material::GetElectronDensity ( ) const
inline

Definition at line 215 of file G4Material.hh.

215{return fTotNbOfElectPerVolume;}

Referenced by G4AdjointComptonModel::AdjointCrossSection(), G4AdjointhIonisationModel::AdjointCrossSection(), G4ForwardXrayTR::BuildXrayTRtables(), G4MuBetheBlochModel::ComputeDEDXPerVolume(), G4BetheBlochModel::ComputeDEDXPerVolume(), G4BraggIonModel::ComputeDEDXPerVolume(), G4BraggModel::ComputeDEDXPerVolume(), G4LindhardSorensenIonModel::ComputeDEDXPerVolume(), G4MollerBhabhaModel::ComputeDEDXPerVolume(), G4ICRU73QOModel::ComputeDEDXPerVolume(), G4EmCorrections::ComputeIonCorrections(), G4LindhardSorensenIonModel::CorrectionsAlongStep(), G4eeToHadronsModel::CrossSectionPerVolume(), G4eeToHadronsMultiModel::CrossSectionPerVolume(), G4MuBetheBlochModel::CrossSectionPerVolume(), G4AtimaEnergyLossModel::CrossSectionPerVolume(), G4BetheBlochModel::CrossSectionPerVolume(), G4BraggIonModel::CrossSectionPerVolume(), G4BraggModel::CrossSectionPerVolume(), G4ICRU73QOModel::CrossSectionPerVolume(), G4LindhardSorensenIonModel::CrossSectionPerVolume(), G4MollerBhabhaModel::CrossSectionPerVolume(), G4eplusTo2GammaOKVIModel::CrossSectionPerVolume(), G4eplusTo3GammaOKVIModel::CrossSectionPerVolume(), G4eeToTwoGammaModel::CrossSectionPerVolume(), G4mplIonisationModel::Dispersion(), G4mplIonisationWithDeltaModel::Dispersion(), G4IonFluctuations::Dispersion(), G4PAIModel::Dispersion(), G4PAIPhotModel::Dispersion(), G4BohrFluctuations::Dispersion(), G4UniversalFluctuation::Dispersion(), G4InitXscPAI::G4InitXscPAI(), G4StrawTubeXTRadiator::G4StrawTubeXTRadiator(), G4VXTRenergyLoss::G4VXTRenergyLoss(), G4EmCorrections::HighOrderCorrections(), G4mplIonisationModel::Initialise(), G4mplIonisationWithDeltaModel::Initialise(), G4PAIxSection::Initialize(), G4PAIySection::Initialize(), G4EmCorrections::IonBarkasCorrection(), G4AdjointComptonModel::RapidSampleSecondaries(), G4AdjointhIonisationModel::RapidSampleSecondaries(), G4UniversalFluctuation::SampleFluctuations(), G4eBremParametrizedModel::SetupForMaterial(), G4eBremsstrahlungRelModel::SetupForMaterial(), and G4SeltzerBergerModel::SetupForMaterial().

◆ GetElement()

◆ GetElementVector()

const G4ElementVector * G4Material::GetElementVector ( ) const
inline

Definition at line 188 of file G4Material.hh.

188{return theElementVector;}

Referenced by G4VCrossSectionHandler::ActiveElements(), AddMaterial(), G4AdjointPhotoElectricModel::AdjointCrossSection(), G4VAtomDeexcitation::AlongStepDeexcitation(), G4AntiNeutronAnnihilationAtRest::AtRestDoIt(), G4RToEConvForGamma::BuildAbsorptionLengthVector(), G4AugerData::BuildAugerTransitionTable(), G4BremsstrahlungCrossSectionHandler::BuildCrossSectionsForMaterials(), G4eIonisationCrossSectionHandler::BuildCrossSectionsForMaterials(), G4CrossSectionHandler::BuildCrossSectionsForMaterials(), G4VRangeToEnergyConverter::BuildRangeVector(), G4PenelopeBremsstrahlungFS::BuildScaledXSTable(), G4Nucleus::ChooseParameters(), G4eBremsstrahlungRelModel::ComputeDEDXPerVolume(), G4LivermoreIonisationModel::ComputeDEDXPerVolume(), G4MuBremsstrahlungModel::ComputeDEDXPerVolume(), G4MuPairProductionModel::ComputeDEDXPerVolume(), G4eBremParametrizedModel::ComputeDEDXPerVolume(), G4ICRU49NuclearStoppingModel::ComputeDEDXPerVolume(), G4GammaConversionToMuons::ComputeMeanFreePath(), G4CrystalExtension::ComputeStructureFactor(), G4CrystalExtension::ComputeStructureFactorGeometrical(), G4WentzelVIModel::ComputeTransportXSectionPerVolume(), G4PenelopeRayleighModelMI::CrossSectionPerVolume(), G4AnnihiToMuPair::CrossSectionPerVolume(), G4AdjointBremsstrahlungModel::DiffCrossSectionPerVolumePrimToSecondApproximated2(), G4tgbGeometryDumper::DumpMaterial(), G4EmElementSelector::G4EmElementSelector(), G4HadElementSelector::G4HadElementSelector(), G4CrystalExtension::GetAtomPos(), G4HadronicProcessStore::GetCaptureCrossSectionPerVolume(), G4HadronicProcessStore::GetChargeExchangeCrossSectionPerVolume(), G4HadronicProcessStore::GetElasticCrossSectionPerVolume(), G4MuNeutrinoNucleusTotXsc::GetElementCrossSection(), G4HadronicProcessStore::GetFissionCrossSectionPerVolume(), G4HadronicProcessStore::GetInelasticCrossSectionPerVolume(), G4BoldyshevTripletModel::Initialise(), G4JAEAElasticScatteringModel::Initialise(), G4JAEAPolarizedElasticScatteringModel::Initialise(), G4LivermoreComptonModel::Initialise(), G4LivermoreGammaConversionModelRC::Initialise(), G4LivermoreNuclearGammaConversionModel::Initialise(), G4LivermorePhotoElectricModel::Initialise(), G4LivermorePolarizedComptonModel::Initialise(), G4LivermorePolarizedGammaConversionModel::Initialise(), G4LivermorePolarizedPhotoElectricGDModel::Initialise(), G4LivermorePolarizedPhotoElectricModel::Initialise(), G4LivermorePolarizedRayleighModel::Initialise(), G4LivermoreRayleighModel::Initialise(), G4LowEPComptonModel::Initialise(), G4LowEPPolarizedComptonModel::Initialise(), G4PenelopeGammaConversionModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4PenelopeRayleighModel::Initialise(), G4LivermoreGammaConversion5DModel::Initialise(), G4LivermoreGammaConversionModel::Initialise(), G4PenelopeRayleighModelMI::Initialise(), G4eDPWACoulombScatteringModel::Initialise(), G4ElasticHadrNucleusHE::InitialiseModel(), G4eCoulombScatteringModel::MinPrimaryEnergy(), G4hCoulombScatteringModel::MinPrimaryEnergy(), G4WentzelVIModel::SampleScattering(), G4AdjointPhotoElectricModel::SampleSecondaries(), G4PenelopeRayleighModel::SampleSecondaries(), G4PenelopeRayleighModelMI::SampleSecondaries(), G4PixeCrossSectionHandler::SelectRandomAtom(), G4VCrossSectionHandler::SelectRandomAtom(), G4VCrossSectionHandler::SelectRandomElement(), G4ElementSelector::SelectZandA(), G4VCrossSectionHandler::ValueForMaterial(), and G4PixeCrossSectionHandler::ValueForMaterial().

◆ GetFractionVector()

◆ GetFreeElectronDensity()

G4double G4Material::GetFreeElectronDensity ( ) const
inline

Definition at line 177 of file G4Material.hh.

177{return fFreeElecDensity;}

Referenced by G4DensityEffectCalculator::G4DensityEffectCalculator().

◆ GetIndex()

size_t G4Material::GetIndex ( ) const
inline

Definition at line 258 of file G4Material.hh.

258{return fIndexInTable;}

Referenced by G4VLEPTSModel::BuildMeanFreePathTable(), G4VLEPTSModel::BuildPhysicsTable(), G4AdjointCSManager::ComputeAdjointCS(), G4GoudsmitSaundersonMscModel::ComputeTruePathLengthLimit(), G4VRangeToEnergyConverter::Convert(), G4PEEffectFluoModel::CrossSectionPerVolume(), G4GoudsmitSaundersonMscModel::CrossSectionPerVolume(), G4DNABornExcitationModel1::CrossSectionPerVolume(), G4DNABornExcitationModel2::CrossSectionPerVolume(), G4DNABornIonisationModel1::CrossSectionPerVolume(), G4DNABornIonisationModel2::CrossSectionPerVolume(), G4DNAChampionElasticModel::CrossSectionPerVolume(), G4DNACPA100ElasticModel::CrossSectionPerVolume(), G4DNACPA100ExcitationModel::CrossSectionPerVolume(), G4DNACPA100IonisationModel::CrossSectionPerVolume(), G4DNADingfelderChargeDecreaseModel::CrossSectionPerVolume(), G4DNADingfelderChargeIncreaseModel::CrossSectionPerVolume(), G4DNAELSEPAElasticModel::CrossSectionPerVolume(), G4DNAEmfietzoglouExcitationModel::CrossSectionPerVolume(), G4DNAEmfietzoglouIonisationModel::CrossSectionPerVolume(), G4DNAIonElasticModel::CrossSectionPerVolume(), G4DNAMeltonAttachmentModel::CrossSectionPerVolume(), G4DNAMillerGreenExcitationModel::CrossSectionPerVolume(), G4TDNAOneStepThermalizationModel< MODEL >::CrossSectionPerVolume(), G4DNARuddIonisationExtendedModel::CrossSectionPerVolume(), G4DNARuddIonisationModel::CrossSectionPerVolume(), G4DNASancheExcitationModel::CrossSectionPerVolume(), G4DNAScreenedRutherfordElasticModel::CrossSectionPerVolume(), G4DNATransformElectronModel::CrossSectionPerVolume(), G4DNAUeharaScreenedRutherfordElasticModel::CrossSectionPerVolume(), G4VEmAdjointModel::DefineCurrentMaterial(), G4DNABrownianTransportation::Diffusion(), G4InitXscPAI::G4InitXscPAI(), G4PAIxSection::G4PAIxSection(), G4StrawTubeXTRadiator::G4StrawTubeXTRadiator(), G4VXTRenergyLoss::G4VXTRenergyLoss(), G4EnergyLossTables::GetDEDX(), G4EnergyLossTables::GetDeltaLabTime(), G4EnergyLossTables::GetDeltaProperTime(), G4EnergyLossTables::GetLabTime(), G4VLEPTSModel::GetMeanFreePath(), G4OpRayleigh::GetMeanFreePath(), G4DNAMolecularMaterial::GetMolecularConfiguration(), G4EnergyLossTables::GetPreciseDEDX(), G4EnergyLossTables::GetPreciseEnergyFromRange(), G4EnergyLossTables::GetPreciseRangeFromEnergy(), G4EnergyLossTables::GetProperTime(), G4EnergyLossTables::GetRange(), G4GoudsmitSaundersonMscModel::GetTransportMeanFreePath(), G4GoudsmitSaundersonTable::InitSCPCorrection(), G4Scintillation::PostStepDoIt(), G4OpWLS::PostStepDoIt(), G4OpWLS2::PostStepDoIt(), G4Cerenkov::PostStepGetPhysicalInteractionLength(), G4DNASecondOrderReaction::PostStepGetPhysicalInteractionLength(), G4DNAMolecularMaterial::RecordMolecularMaterial(), G4PixeCrossSectionHandler::SelectRandomAtom(), G4DNAMolecularMaterial::SetMolecularConfiguration(), and G4EmSaturation::VisibleEnergyDeposition().

◆ GetIonisation()

G4IonisParamMat * G4Material::GetIonisation ( ) const
inline

Definition at line 224 of file G4Material.hh.

224{return fIonisation;}

Referenced by G4EmCorrections::Bethe(), G4hImpactIonisation::BuildPhysicsTable(), G4MuBetheBlochModel::ComputeDEDXPerVolume(), G4BetheBlochModel::ComputeDEDXPerVolume(), G4LindhardSorensenIonModel::ComputeDEDXPerVolume(), G4MollerBhabhaModel::ComputeDEDXPerVolume(), G4AtimaEnergyLossModel::ComputeDEDXPerVolume(), G4DensityEffectCalculator::ComputeDensityCorrection(), G4GoudsmitSaundersonMscModel::ComputeTruePathLengthLimit(), G4UrbanAdjointMscModel::ComputeTruePathLengthLimit(), G4EmCorrections::DensityCorrection(), G4AtimaFluctuations::Dispersion(), G4IonFluctuations::Dispersion(), G4EmSaturation::DumpBirksCoefficients(), G4tgbGeometryDumper::DumpMaterial(), G4ElectronIonPair::DumpMeanEnergyPerIonPair(), G4ionEffectiveCharge::EffectiveCharge(), G4ElectronIonPair::FindG4MeanEnergyPerIonPair(), G4tgbMaterialMgr::FindOrBuildG4Material(), G4DensityEffectCalculator::G4DensityEffectCalculator(), G4GoudsmitSaundersonTable::InitSCPCorrection(), G4eDPWAElasticDCS::InitSCPCorrection(), G4hBetheBlochModel::LowEnergyLimit(), G4GDMLReadMaterials::MaterialRead(), G4GDMLWriteMaterials::MaterialWrite(), G4ElectronIonPair::MeanNumberOfIonsAlongStep(), G4IonParametrisedLossModel::MinEnergyCut(), G4MuBetheBlochModel::MinEnergyCut(), G4mplIonisationWithDeltaModel::MinEnergyCut(), G4AtimaEnergyLossModel::MinEnergyCut(), G4BetheBlochModel::MinEnergyCut(), G4BraggIonModel::MinEnergyCut(), G4LindhardSorensenIonModel::MinEnergyCut(), G4CoulombScattering::MinPrimaryEnergy(), G4hImpactIonisation::PrintInfoDefinition(), G4UniversalFluctuation::SampleFluctuations(), G4eeToTwoGammaModel::SampleSecondaries(), 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 651 of file G4Material.cc.

652{
653 // search the material by its name
654 for (size_t j=0; j<theMaterialTable.size(); ++j) {
655 if (theMaterialTable[j]->GetName() == materialName) {
656 return theMaterialTable[j];
657 }
658 }
659
660 // the material does not exist in the table
661 if (warn) {
662 G4cout << "G4Material::GetMaterial() WARNING: The material: "
663 << materialName
664 << " does not exist in the table. Return NULL pointer."
665 << G4endl;
666 }
667 return nullptr;
668}

Referenced by G4DNABrownianTransportation::BuildPhysicsTable(), G4LossTableBuilder::BuildTableForModel(), G4ProductionCutsTable::CheckMaterialInfo(), G4DNADummyModel::CrossSectionPerVolume(), G4EmCalculator::FindMaterial(), G4GDMLReadMaterials::GetMaterial(), G4DNAChampionElasticModel::Initialise(), G4DNACPA100ElasticModel::Initialise(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4DNAELSEPAElasticModel::Initialise(), G4DNAMeltonAttachmentModel::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4TDNAOneStepThermalizationModel< MODEL >::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), G4DNARuddIonisationModel::Initialise(), G4DNASancheExcitationModel::Initialise(), G4DNAScreenedRutherfordElasticModel::Initialise(), G4DNATransformElectronModel::Initialise(), G4DNAUeharaScreenedRutherfordElasticModel::Initialise(), G4LivermorePhotoElectricModel::Initialise(), G4LivermorePolarizedPhotoElectricGDModel::Initialise(), G4LivermorePolarizedPhotoElectricModel::Initialise(), G4DNABornExcitationModel1::Initialise(), G4DNABornExcitationModel2::Initialise(), G4DNABornIonisationModel1::Initialise(), G4DNABornIonisationModel2::Initialise(), G4DNACPA100ExcitationModel::Initialise(), G4DNACPA100IonisationModel::Initialise(), G4DNAEmfietzoglouExcitationModel::Initialise(), G4DNAEmfietzoglouIonisationModel::Initialise(), G4DNADummyModel::Initialise(), G4DNAIonElasticModel::Initialise(), G4DNAMolecularMaterial::SetMolecularConfiguration(), and G4ProductionCutsTable::UpdateCoupleTable().

◆ GetMaterial() [2/3]

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

Definition at line 672 of file G4Material.cc.

673{
674 // search the material by its name
675 for (size_t j=0; j<theMaterialTable.size(); ++j) {
676 G4Material* mat = theMaterialTable[j];
677 if (1 == mat->GetNumberOfElements() &&
678 z == mat->GetZ() && a == mat->GetA() && dens == mat->GetDensity()) {
679 return mat;
680 }
681 }
682 return nullptr;
683}
G4double GetDensity() const
Definition: G4Material.hh:178
G4double GetZ() const
Definition: G4Material.cc:701

◆ GetMaterial() [3/3]

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

Definition at line 687 of file G4Material.cc.

688{
689 // search the material by its name
690 for (size_t j=0; j<theMaterialTable.size(); ++j) {
691 G4Material* mat = theMaterialTable[j];
692 if (nComp == mat->GetNumberOfElements() && dens == mat->GetDensity()) {
693 return mat;
694 }
695 }
696 return nullptr;
697}

◆ GetMaterialPropertiesTable()

◆ GetMaterialTable()

G4MaterialTable * G4Material::GetMaterialTable ( )
static

Definition at line 637 of file G4Material.cc.

638{
639 return &theMaterialTable;
640}

Referenced by G4VCrossSectionHandler::ActiveElements(), G4AugerData::BuildAugerTransitionTable(), G4AdjointCSManager::BuildCrossSectionMatrices(), G4ParticleHPThermalScatteringData::BuildPhysicsTable(), G4VLEPTSModel::BuildPhysicsTable(), G4Cerenkov::BuildPhysicsTable(), G4Scintillation::BuildPhysicsTable(), G4OpRayleigh::BuildPhysicsTable(), G4OpWLS::BuildPhysicsTable(), G4OpWLS2::BuildPhysicsTable(), G4VXTRenergyLoss::ComputeGasPhotoAbsCof(), G4PAIxSection::ComputeLowEnergyCof(), G4StrawTubeXTRadiator::ComputeMediumPhotoAbsCof(), G4VXTRenergyLoss::ComputePlatePhotoAbsCof(), G4VRangeToEnergyConverter::Convert(), G4EmSaturation::DumpBirksCoefficients(), G4ElectronIonPair::DumpMeanEnergyPerIonPair(), G4NistMaterialBuilder::FindMaterial(), G4PAIxSection::G4PAIxSection(), G4SandiaTable::G4SandiaTable(), G4DNAMolecularMaterial::GetDensityTableFor(), G4VXTRenergyLoss::GetGasCompton(), G4NistManager::GetMaterial(), 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(), G4VDNAModel::IsMaterialDefine(), G4NistManager::PrintG4Material(), G4ProductionCutsTable::StoreMaterialInfo(), G4GDMLRead::StripNames(), and G4NistManager::~G4NistManager().

◆ GetName()

const G4String & G4Material::GetName ( ) const
inline

Definition at line 175 of file G4Material.hh.

175{return fName;}

Referenced by G4CrossSectionDataStore::ActivateFastPath(), AddMaterial(), G4GMocrenFileSceneHandler::AddSolid(), G4ErrorEnergyLoss::AlongStepDoIt(), G4VContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4VContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4ParticleHPInelastic::ApplyYourself(), G4RPGAntiKZeroInelastic::ApplyYourself(), G4RPGAntiLambdaInelastic::ApplyYourself(), G4RPGAntiNeutronInelastic::ApplyYourself(), G4RPGAntiOmegaMinusInelastic::ApplyYourself(), G4RPGAntiProtonInelastic::ApplyYourself(), G4RPGAntiSigmaMinusInelastic::ApplyYourself(), G4RPGAntiSigmaPlusInelastic::ApplyYourself(), G4RPGAntiXiMinusInelastic::ApplyYourself(), G4RPGAntiXiZeroInelastic::ApplyYourself(), G4RPGKMinusInelastic::ApplyYourself(), G4RPGKPlusInelastic::ApplyYourself(), G4RPGKZeroInelastic::ApplyYourself(), G4RPGLambdaInelastic::ApplyYourself(), G4RPGOmegaMinusInelastic::ApplyYourself(), G4RPGSigmaMinusInelastic::ApplyYourself(), G4RPGSigmaPlusInelastic::ApplyYourself(), G4RPGXiMinusInelastic::ApplyYourself(), G4RPGXiZeroInelastic::ApplyYourself(), G4AntiNeutronAnnihilationAtRest::AtRestGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousProcess::AtRestGetPhysicalInteractionLength(), G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestProcess::AtRestGetPhysicalInteractionLength(), G4VRestProcess::AtRestGetPhysicalInteractionLength(), G4EmCorrections::BarkasCorrection(), G4eIonisationCrossSectionHandler::BuildCrossSectionsForMaterials(), G4ParticleHPThermalScatteringData::BuildPhysicsTable(), G4GammaGeneralProcess::BuildPhysicsTable(), G4MicroElecSurface::BuildPhysicsTable(), G4VLEPTSModel::BuildPhysicsTable(), G4PenelopeBremsstrahlungFS::BuildScaledXSTable(), G4PenelopeIonisationXSHandler::BuildXSTable(), G4ProductionCutsTable::CheckMaterialCutsCoupleInfo(), G4EmCalculator::ComputeCrossSectionPerVolume(), G4PenelopeIonisationModel::ComputeDEDXPerVolume(), G4DensityEffectCalculator::ComputeDensityCorrection(), G4EmCalculator::ComputeMeanFreePath(), G4tgbVolume::ConstructG4LogVol(), G4tgbVolume::ConstructG4PhysVol(), G4VRangeToEnergyConverter::Convert(), G4PhysicalVolumeModel::CreateCurrentAttValues(), G4PenelopeIonisationCrossSection::CrossSection(), G4PenelopeRayleighModelMI::CrossSectionPerVolume(), G4PenelopeComptonModel::CrossSectionPerVolume(), G4DNAModelInterface::CrossSectionPerVolume(), G4MicroElecElasticModel_new::CrossSectionPerVolume(), G4MicroElecInelasticModel_new::CrossSectionPerVolume(), G4MicroElecLOPhononModel::CrossSectionPerVolume(), G4PenelopeBremsstrahlungModel::CrossSectionPerVolume(), G4PenelopeIonisationModel::CrossSectionPerVolume(), G4PenelopeOscillatorManager::Dump(), G4EmElementSelector::Dump(), G4EmSaturation::DumpBirksCoefficients(), G4ProductionCutsTable::DumpCouples(), G4CrossSectionDataStore::DumpFastPath(), G4PenelopeRayleighModel::DumpFormFactorTable(), G4PenelopeRayleighModelMI::DumpFormFactorTable(), G4ElectronIonPair::DumpMeanEnergyPerIonPair(), G4HadronicProcess::DumpState(), G4EmCorrections::EffectiveChargeCorrection(), G4EmModelManager::FillDEDXVector(), G4EmModelManager::FillLambdaVector(), G4EmSaturation::FindG4BirksCoefficient(), G4ElectronIonPair::FindG4MeanEnergyPerIonPair(), G4IonisParamMat::FindMeanExcitationEnergy(), G4tgbMaterialMgr::FindOrBuildG4Material(), G4ForwardXrayTR::G4ForwardXrayTR(), G4StrawTubeXTRadiator::G4StrawTubeXTRadiator(), G4VXTRenergyLoss::G4VXTRenergyLoss(), G4PenelopeOscillatorManager::GetAtomsPerMolecule(), G4CrossSectionDataStore::GetCrossSection(), G4EmCalculator::GetCrossSectionPerVolume(), G4EmCalculator::GetCSDARange(), G4EmCalculator::GetDEDX(), G4PenelopeIonisationXSHandler::GetDensityCorrection(), G4PenelopeBremsstrahlungFS::GetEffectiveZSquared(), G4VCrossSectionDataSet::GetElementCrossSection(), G4ESTARStopping::GetIndex(), G4VCrossSectionDataSet::GetIsoCrossSection(), G4EmCalculator::GetKinEnergy(), G4LatticeManager::GetLattice(), GetMaterial(), G4PenelopeOscillatorManager::GetMeanExcitationEnergy(), G4EmCalculator::GetMeanFreePath(), G4PenelopeOscillatorManager::GetNumberOfZAtomsPerMolecule(), G4PenelopeOscillatorManager::GetOscillatorCompton(), G4PenelopeOscillatorManager::GetOscillatorIonisation(), G4PenelopeOscillatorManager::GetOscillatorTableCompton(), G4PenelopeOscillatorManager::GetOscillatorTableIonisation(), G4PenelopeOscillatorManager::GetPlasmaEnergySquared(), G4EmCalculator::GetRangeFromRestricteDEDX(), G4PenelopeOscillatorManager::GetTotalA(), G4PenelopeOscillatorManager::GetTotalZ(), G4EmCorrections::HighOrderCorrections(), G4ICRU90StoppingData::Initialise(), G4ASTARStopping::Initialise(), G4PSTARStopping::Initialise(), G4LEPTSElasticModel::Initialise(), G4PAIModel::Initialise(), G4PAIPhotModel::Initialise(), G4MicroElecElasticModel_new::Initialise(), G4MicroElecInelasticModel_new::Initialise(), G4PenelopeRayleighModelMI::Initialise(), G4EmModelManager::Initialise(), G4LatticeManager::LoadLattice(), G4GDMLWriteMaterials::MaterialWrite(), operator<<(), G4DNASecondOrderReaction::PostStepDoIt(), G4NeutrinoElectronProcess::PostStepDoIt(), G4MicroElecSurface::PostStepDoIt(), G4VXTRenergyLoss::PostStepDoIt(), G4ElNeutrinoNucleusProcess::PostStepDoIt(), G4HadronElasticProcess::PostStepDoIt(), G4MuNeutrinoNucleusProcess::PostStepDoIt(), G4VITDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4DNASecondOrderReaction::PostStepGetPhysicalInteractionLength(), G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4Decay::PostStepGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength(), G4NistManager::PrintG4Material(), G4hImpactIonisation::PrintInfoDefinition(), GVFlashShowerParameterisation::PrintMaterial(), G4DNAMolecularMaterial::PrintNotAMolecularMaterial(), G4GDMLWriteMaterials::PropertyWrite(), G4ExtendedMaterial::RegisterExtension(), G4PropagatorInField::ReportLoopingParticle(), G4TransportationLogger::ReportLoopingTrack(), G4ASCIITreeSceneHandler::RequestPrimitives(), G4ExtendedMaterial::RetrieveExtension(), G4PenelopeBremsstrahlungAngular::SampleDirection(), G4VLEPTSModel::SampleEnergyLoss(), G4PenelopeBremsstrahlungFS::SampleGammaEnergy(), G4LivermoreComptonModel::SampleSecondaries(), G4LivermoreComptonModifiedModel::SampleSecondaries(), G4LowEPComptonModel::SampleSecondaries(), G4LowEPPolarizedComptonModel::SampleSecondaries(), G4PenelopeBremsstrahlungModel::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(), G4FastPathHadronicCrossSection::cycleCountEntry::~cycleCountEntry(), and G4FastPathHadronicCrossSection::fastPathEntry::~fastPathEntry().

◆ GetNuclearInterLength()

G4double G4Material::GetNuclearInterLength ( ) const
inline

Definition at line 221 of file G4Material.hh.

221{return fNuclInterLen;}

Referenced by G4MSSteppingAction::UserSteppingAction().

◆ GetNumberOfElements()

size_t G4Material::GetNumberOfElements ( ) const
inline

Definition at line 184 of file G4Material.hh.

184{return fNumberOfElements;}

Referenced by G4VCrossSectionHandler::ActiveElements(), AddMaterial(), G4AdjointPhotoElectricModel::AdjointCrossSection(), G4VAtomDeexcitation::AlongStepDeexcitation(), G4FissLib::ApplyYourself(), G4ParticleHPCapture::ApplyYourself(), G4ParticleHPElastic::ApplyYourself(), G4ParticleHPFission::ApplyYourself(), G4ParticleHPInelastic::ApplyYourself(), G4ParticleHPThermalScattering::ApplyYourself(), G4AntiNeutronAnnihilationAtRest::AtRestDoIt(), G4RToEConvForGamma::BuildAbsorptionLengthVector(), G4AugerData::BuildAugerTransitionTable(), G4BremsstrahlungCrossSectionHandler::BuildCrossSectionsForMaterials(), G4eIonisationCrossSectionHandler::BuildCrossSectionsForMaterials(), G4CrossSectionHandler::BuildCrossSectionsForMaterials(), G4ParticleHPThermalScatteringData::BuildPhysicsTable(), G4VRangeToEnergyConverter::BuildRangeVector(), G4PenelopeBremsstrahlungFS::BuildScaledXSTable(), G4Nucleus::ChooseParameters(), G4AdjointCSManager::ComputeAdjointCS(), G4CrossSectionDataStore::ComputeCrossSection(), G4LivermoreIonisationModel::ComputeDEDXPerVolume(), G4MuBremsstrahlungModel::ComputeDEDXPerVolume(), G4MuPairProductionModel::ComputeDEDXPerVolume(), G4eBremParametrizedModel::ComputeDEDXPerVolume(), G4ICRU49NuclearStoppingModel::ComputeDEDXPerVolume(), G4IonisParamMat::ComputeDensityEffectOnFly(), G4PAIxSection::ComputeLowEnergyCof(), G4PAIySection::ComputeLowEnergyCof(), G4GammaConversionToMuons::ComputeMeanFreePath(), G4WentzelVIModel::ComputeTransportXSectionPerVolume(), G4PenelopeRayleighModelMI::CrossSectionPerVolume(), G4VEmModel::CrossSectionPerVolume(), G4AnnihiToMuPair::CrossSectionPerVolume(), G4AdjointBremsstrahlungModel::DiffCrossSectionPerVolumePrimToSecondApproximated2(), G4tgbGeometryDumper::DumpMaterial(), G4DensityEffectCalculator::G4DensityEffectCalculator(), G4EmElementSelector::G4EmElementSelector(), G4HadElementSelector::G4HadElementSelector(), G4Material(), G4ShellVacancy::GenerateNumberOfIonisations(), G4HadronicProcessStore::GetCaptureCrossSectionPerVolume(), G4HadronicProcessStore::GetChargeExchangeCrossSectionPerVolume(), GVFlashShowerParameterisation::GetEffA(), GVFlashShowerParameterisation::GetEffZ(), G4HadronicProcessStore::GetElasticCrossSectionPerVolume(), G4HadronicProcessStore::GetFissionCrossSectionPerVolume(), G4HadronicProcessStore::GetInelasticCrossSectionPerVolume(), GetMaterial(), G4hICRU49He::HasMaterial(), G4hICRU49p::HasMaterial(), G4hSRIM2000p::HasMaterial(), G4hZiegler1985p::HasMaterial(), G4BoldyshevTripletModel::Initialise(), G4JAEAElasticScatteringModel::Initialise(), G4JAEAPolarizedElasticScatteringModel::Initialise(), G4LivermoreComptonModel::Initialise(), G4LivermoreGammaConversionModelRC::Initialise(), G4LivermoreNuclearGammaConversionModel::Initialise(), G4LivermorePhotoElectricModel::Initialise(), G4LivermorePolarizedComptonModel::Initialise(), G4LivermorePolarizedGammaConversionModel::Initialise(), G4LivermorePolarizedPhotoElectricGDModel::Initialise(), G4LivermorePolarizedPhotoElectricModel::Initialise(), G4LivermorePolarizedRayleighModel::Initialise(), G4LivermoreRayleighModel::Initialise(), G4LowEPComptonModel::Initialise(), G4LowEPPolarizedComptonModel::Initialise(), G4PenelopeGammaConversionModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4PenelopeRayleighModel::Initialise(), G4LivermoreGammaConversion5DModel::Initialise(), G4LivermoreGammaConversionModel::Initialise(), G4PenelopeRayleighModelMI::Initialise(), G4eDPWACoulombScatteringModel::Initialise(), G4HadronXSDataTable::Initialise(), G4VEmModel::InitialiseForMaterial(), G4QAOLowEnergyLoss::IsInCharge(), G4GDMLWriteMaterials::MaterialWrite(), G4eCoulombScatteringModel::MinPrimaryEnergy(), G4hCoulombScatteringModel::MinPrimaryEnergy(), G4VLEPTSModel::ReadParam(), G4WentzelVIModel::SampleScattering(), G4AdjointPhotoElectricModel::SampleSecondaries(), G4PenelopeRayleighModel::SampleSecondaries(), G4PenelopeRayleighModelMI::SampleSecondaries(), G4CrossSectionDataStore::SampleZandA(), G4VEmModel::SelectRandomAtom(), G4PixeCrossSectionHandler::SelectRandomAtom(), G4VCrossSectionHandler::SelectRandomAtom(), G4VEmModel::SelectRandomAtomNumber(), G4VCrossSectionHandler::SelectRandomElement(), G4ElementSelector::SelectZandA(), G4hICRU49He::StoppingPower(), G4hICRU49p::StoppingPower(), G4hSRIM2000p::StoppingPower(), G4hZiegler1985p::StoppingPower(), G4VCrossSectionHandler::ValueForMaterial(), and G4PixeCrossSectionHandler::ValueForMaterial().

◆ GetNumberOfMaterials()

◆ GetPressure()

◆ GetRadlen()

◆ GetSandiaTable()

◆ GetState()

◆ GetTemperature()

G4double G4Material::GetTemperature ( ) const
inline

Definition at line 180 of file G4Material.hh.

180{return fTemp;}

Referenced by G4ParticleHPChannelList::ApplyYourself(), G4FissLib::ApplyYourself(), G4LENDCapture::ApplyYourself(), G4LENDElastic::ApplyYourself(), G4LENDFission::ApplyYourself(), G4LENDInelastic::ApplyYourself(), G4LENDModel::ApplyYourself(), G4ParticleHPCapture::ApplyYourself(), G4ParticleHPElastic::ApplyYourself(), G4ParticleHPFission::ApplyYourself(), G4ParticleHPInelastic::ApplyYourself(), G4ParticleHPThermalScattering::ApplyYourself(), G4FissionLibrary::ApplyYourself(), G4ParticleHPCaptureFS::ApplyYourself(), G4ParticleHPElasticFS::ApplyYourself(), G4ParticleHPFissionFS::ApplyYourself(), G4ParticleHPChannel::ApplyYourself(), G4ParticleHPInelasticBaseFS::BaseApply(), G4tgbMaterialMixtureByWeight::BuildG4Material(), G4NistManager::BuildMaterialWithNewDensity(), G4ParticleHPInelasticCompFS::CompositeApply(), G4DNABrownianTransportation::ComputeStep(), G4NistMaterialBuilder::ConstructNewGasMaterial(), G4tgbGeometryDumper::DumpMaterial(), G4Nucleus::G4Nucleus(), G4ParticleHPThermalScatteringData::GetCoherentCrossSection(), G4ParticleHPThermalScatteringData::GetCrossSection(), G4ParticleHPThermalScatteringData::GetIncoherentCrossSection(), G4ParticleHPThermalScatteringData::GetInelasticCrossSection(), G4LENDCrossSection::GetIsoCrossSection(), G4ParticleHPCaptureData::GetIsoCrossSection(), G4ParticleHPElasticData::GetIsoCrossSection(), G4ParticleHPFissionData::GetIsoCrossSection(), G4ParticleHPInelasticData::GetIsoCrossSection(), and G4GDMLWriteMaterials::MaterialWrite().

◆ GetTotNbOfAtomsPerVolume()

◆ GetTotNbOfElectPerVolume()

G4double G4Material::GetTotNbOfElectPerVolume ( ) const
inline

Definition at line 210 of file G4Material.hh.

210{return fTotNbOfElectPerVolume;}

Referenced by G4hICRU49He::StoppingPower().

◆ GetVecNbOfAtomsPerVolume()

◆ GetZ()

G4double G4Material::GetZ ( ) const

Definition at line 701 of file G4Material.cc.

702{
703 if (fNumberOfElements > 1) {
704 G4cout << "G4Material ERROR in GetZ. The material: " << fName
705 << " is a mixture.";
706 G4Exception ("G4Material::GetZ()", "mat036", FatalException,
707 "the Atomic number is not well defined." );
708 }
709 return (*theElementVector)[0]->GetZ();
710}

Referenced by G4tgbGeometryDumper::DumpMaterial(), GVFlashShowerParameterisation::GetEffZ(), GetMaterial(), G4GDMLWriteMaterials::MaterialWrite(), G4PixeCrossSectionHandler::SelectRandomAtom(), G4VCrossSectionHandler::SelectRandomAtom(), G4hICRU49He::StoppingPower(), G4hICRU49p::StoppingPower(), G4hSRIM2000p::StoppingPower(), and G4hZiegler1985p::StoppingPower().

◆ IsExtended()

G4bool G4Material::IsExtended ( ) const
virtual

Reimplemented in G4ExtendedMaterial.

Definition at line 795 of file G4Material.cc.

796{
797 return false;
798}

Referenced by G4PenelopeRayleighModelMI::CrossSectionPerVolume().

◆ SetChemicalFormula()

void G4Material::SetChemicalFormula ( const G4String chF)

Definition at line 597 of file G4Material.cc.

598{
599#ifdef G4MULTITHREADED
600 G4MUTEXLOCK(&materialMutex);
601#endif
602 fChemicalFormula = chF;
603#ifdef G4MULTITHREADED
604 G4MUTEXUNLOCK(&materialMutex);
605#endif
606}

◆ SetFreeElectronDensity()

void G4Material::SetFreeElectronDensity ( G4double  val)

Definition at line 610 of file G4Material.cc.

611{
612#ifdef G4MULTITHREADED
613 G4MUTEXLOCK(&materialMutex);
614#endif
615 if(val >= 0.) { fFreeElecDensity = val; }
616#ifdef G4MULTITHREADED
617 G4MUTEXUNLOCK(&materialMutex);
618#endif
619}

◆ SetMaterialPropertiesTable()

void G4Material::SetMaterialPropertiesTable ( G4MaterialPropertiesTable anMPT)

Definition at line 802 of file G4Material.cc.

803{
804 if(anMPT && fMaterialPropertiesTable != anMPT) {
805#ifdef G4MULTITHREADED
806 G4MUTEXLOCK(&materialMutex);
807 if(fMaterialPropertiesTable != anMPT) {
808#endif
809 delete fMaterialPropertiesTable;
810 fMaterialPropertiesTable = anMPT;
811#ifdef G4MULTITHREADED
812 }
813 G4MUTEXUNLOCK(&materialMutex);
814#endif
815 }
816}

Referenced by G4GDMLReadMaterials::PropertyRead().

◆ SetName()

void G4Material::SetName ( const G4String name)
inline

Definition at line 287 of file G4Material.hh.

287{fName=name;}

Referenced by G4GDMLRead::StripNames().

Friends And Related Function Documentation

◆ operator<< [1/3]

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

Definition at line 772 of file G4Material.cc.

773{
774 flux << &material;
775 return flux;
776}

◆ operator<< [2/3]

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

Definition at line 727 of file G4Material.cc.

728{
729 std::ios::fmtflags mode = flux.flags();
730 flux.setf(std::ios::fixed,std::ios::floatfield);
731 G4long prec = flux.precision(3);
732
733 flux
734 << " Material: " << std::setw(8) << material->fName
735 << " " << material->fChemicalFormula << " "
736 << " density: " << std::setw(6) << std::setprecision(3)
737 << G4BestUnit(material->fDensity,"Volumic Mass")
738 << " RadL: " << std::setw(7) << std::setprecision(3)
739 << G4BestUnit(material->fRadlen,"Length")
740 << " Nucl.Int.Length: " << std::setw(7) << std::setprecision(3)
741 << G4BestUnit(material->fNuclInterLen,"Length")
742 << "\n" << std::setw(30)
743 << " Imean: " << std::setw(7) << std::setprecision(3)
744 << G4BestUnit(material->GetIonisation()->GetMeanExcitationEnergy(),"Energy")
745 << " temperature: " << std::setw(6) << std::setprecision(2)
746 << (material->fTemp)/CLHEP::kelvin << " K"
747 << " pressure: " << std::setw(6) << std::setprecision(2)
748 << (material->fPressure)/CLHEP::atmosphere << " atm" << "\n";
749
750 for (G4int i=0; i<material->fNumberOfElements; i++) {
751 flux
752 << "\n ---> " << (*(material->theElementVector))[i]
753 << "\n ElmMassFraction: "
754 << std::setw(6)<< std::setprecision(2)
755 << (material->fMassFractionVector[i])/perCent << " %"
756 << " ElmAbundance " << std::setw(6)<< std::setprecision(2)
757 << 100*(material->fVecNbOfAtomsPerVolume[i])
758 /(material->fTotNbOfAtomsPerVolume)
759 << " % \n";
760 }
761 flux.precision(prec);
762 flux.setf(mode,std::ios::floatfield);
763
764 if(material->IsExtended())
765 { static_cast<const G4ExtendedMaterial*>(material)->Print(flux); }
766
767 return flux;
768}
#define G4BestUnit(a, b)
long G4long
Definition: G4Types.hh:87
G4double GetMeanExcitationEnergy() const
virtual G4bool IsExtended() const
Definition: G4Material.cc:795
G4IonisParamMat * GetIonisation() const
Definition: G4Material.hh:224

◆ operator<< [3/3]

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

Definition at line 780 of file G4Material.cc.

781{
782 //Dump info for all known materials
783 flux << "\n***** Table : Nb of materials = " << MaterialTable.size()
784 << " *****\n" << G4endl;
785
786 for (size_t i=0; i<MaterialTable.size(); ++i) {
787 flux << MaterialTable[i] << G4endl << G4endl;
788 }
789
790 return flux;
791}

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