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

Static Public Member Functions

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

Friends

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

Detailed Description

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

90 : fName(name)
91{
92 InitializePointers();
93
94 if (density < universe_mean_density) {
95 G4cout << " G4Material WARNING:"
96 << " define a material with density=0 is not allowed. \n"
97 << " The material " << name << " will be constructed with the"
98 << " default minimal density: " << universe_mean_density / (g / cm3) << "g/cm3"
99 << G4endl;
100 density = universe_mean_density;
101 }
102
103 fDensity = density;
104 fState = state;
105 fTemp = temp;
106 fPressure = pressure;
107
108 // Initialize theElementVector allocating one
109 // element corresponding to this material
110 fNbComponents = fNumberOfElements = 1;
111 theElementVector = new G4ElementVector();
112
113 // take element from DB
115 G4int iz = G4lrint(z);
116 auto elm = nist->FindOrBuildElement(iz);
117 if (elm == nullptr) {
118 elm = new G4Element("ELM_" + name, name, z, a);
119 }
120 theElementVector->push_back(elm);
121
122 fMassFractionVector = new G4double[1];
123 fMassFractionVector[0] = 1.;
124 fMassOfMolecule = a / CLHEP::Avogadro;
125
126 if (fState == kStateUndefined) {
127 if (fDensity > kGasThreshold) {
128 fState = kStateSolid;
129 }
130 else {
131 fState = kStateGas;
132 }
133 }
134
135 ComputeDerivedQuantities();
136}
std::vector< const G4Element * > G4ElementVector
@ kStateSolid
@ kStateGas
@ kStateUndefined
double G4double
Definition G4Types.hh:83
int G4int
Definition G4Types.hh:85
#define G4endl
Definition G4ios.hh:67
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 143 of file G4Material.cc.

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

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

182 : fName(name)
183{
184 InitializePointers();
185
186 if (density < universe_mean_density) {
187 G4cout << "--- Warning from G4Material::G4Material()"
188 << " define a material with density=0 is not allowed. \n"
189 << " The material " << name << " will be constructed with the"
190 << " default minimal density: " << universe_mean_density / (g / cm3) << "g/cm3"
191 << G4endl;
192 density = universe_mean_density;
193 }
194
195 fDensity = density;
196 fState = state;
197 fTemp = temp;
198 fPressure = pressure;
199
200 fBaseMaterial = bmat;
201 auto ptr = bmat;
202 if (nullptr != ptr) {
203 while (true) {
204 ptr = ptr->GetBaseMaterial();
205 if (nullptr == ptr) {
206 break;
207 }
208 fBaseMaterial = ptr;
209 }
210 }
211
212 fChemicalFormula = fBaseMaterial->GetChemicalFormula();
213 fMassOfMolecule = fBaseMaterial->GetMassOfMolecule();
214
215 fNumberOfElements = (G4int)fBaseMaterial->GetNumberOfElements();
216 fNbComponents = fNumberOfElements;
217
218 CopyPointersOfBaseMaterial();
219}
const G4String & GetChemicalFormula() const
G4double GetMassOfMolecule() const
std::size_t GetNumberOfElements() const

◆ ~G4Material()

G4Material::~G4Material ( )
virtual

Definition at line 223 of file G4Material.cc.

224{
225 if (fBaseMaterial == nullptr) {
226 delete theElementVector;
227 delete fSandiaTable;
228 delete[] fMassFractionVector;
229 delete[] fAtomsVector;
230 }
231 delete fIonisation;
232 delete[] fVecNbOfAtomsPerVolume;
233
234 // Remove this material from theMaterialTable.
235 //
236 theMaterialTable[fIndexInTable] = nullptr;
237}

◆ G4Material() [4/4]

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.

164{ AddElementByMassFraction(elm, frac); }
void AddElementByMassFraction(const G4Element *elm, G4double fraction)

◆ AddElement() [2/2]

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

◆ AddElementByMassFraction()

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

Definition at line 426 of file G4Material.cc.

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

Referenced by AddElement().

◆ AddElementByNumberOfAtoms()

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

Definition at line 351 of file G4Material.cc.

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

Referenced by AddElement().

◆ AddMaterial()

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

Definition at line 483 of file G4Material.cc.

484{
485 if (fraction < 0.0 || fraction > 1.0) {
487 ed << "For material " << fName << " and added material " << material->GetName()
488 << ", massFraction= " << fraction << " is wrong ";
489 G4Exception("G4Material::AddMaterial()", "mat031", FatalException, ed, "");
490 }
491 if (! fMassFraction) {
493 ed << "For material " << fName << " and added material " << material->GetName()
494 << ", massFraction= " << fraction << ", fIdxComponent=" << fIdxComponent
495 << " problem: cannot add by mass fraction after "
496 << "addition of elements by number of atoms";
497 G4Exception("G4Material::AddMaterial()", "mat031", FatalException, ed, "");
498 }
499 if (fIdxComponent >= fNbComponents) {
501 ed << "For material " << fName << " and added material " << material->GetName()
502 << ", massFraction= " << fraction
503 << "; attempt to add more than the declared number of components " << fIdxComponent
504 << " >= " << fNbComponents;
505 G4Exception("G4Material::AddMaterial()", "mat031", FatalException, ed, "");
506 }
507 if (0 == fIdxComponent) {
508 fElmFrac = new std::vector<G4double>;
509 fElm = new std::vector<const G4Element*>;
510 }
511
512 // filling
513 auto nelm = (G4int)material->GetNumberOfElements();
514 for (G4int j = 0; j < nelm; ++j) {
515 auto elm = material->GetElement(j);
516 auto frac = material->GetFractionVector();
517 G4bool isAdded = false;
518 if (! fElm->empty()) {
519 for (G4int i = 0; i < fNumberOfElements; ++i) {
520 if (elm == (*fElm)[i]) {
521 (*fElmFrac)[i] += fraction * frac[j];
522 isAdded = true;
523 break;
524 }
525 }
526 }
527 if (! isAdded) {
528 fElm->push_back(elm);
529 fElmFrac->push_back(fraction * frac[j]);
530 ++fNumberOfElements;
531 }
532 }
533
534 fMatComponents[material] = fraction;
535 ++fIdxComponent;
536
537 // is filled
538 if (fIdxComponent == fNbComponents) {
539 FillVectors();
540 }
541}
const G4Element * GetElement(G4int iel) const
const G4double * GetFractionVector() const
const G4String & GetName() const

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

◆ ComputeDensityEffectOnFly()

void G4Material::ComputeDensityEffectOnFly ( G4bool val)

Definition at line 633 of file G4Material.cc.

634{
635 if (! IsLocked()) {
636 if (nullptr == fIonisation) {
637 fIonisation = new G4IonisParamMat(this);
638 }
639 fIonisation->ComputeDensityEffectOnFly(val);
640 }
641}
void ComputeDensityEffectOnFly(G4bool)

Referenced by G4NistManager::SetDensityEffectCalculatorFlag().

◆ GetA()

G4double G4Material::GetA ( ) const

Definition at line 713 of file G4Material.cc.

714{
715 if (fNumberOfElements > 1) {
717 ed << "For material " << fName << " ERROR in GetA() - Nelm=" << fNumberOfElements
718 << " > 1, which is not allowed";
719 G4Exception("G4Material::GetA()", "mat036", FatalException, ed, "");
720 }
721 return (*theElementVector)[0]->GetA();
722}

Referenced by G4tgbGeometryDumper::DumpMaterial(), G4DNAQuinnPlasmonExcitationModel::GetCrossSection(), GVFlashShowerParameterisation::GetEffA(), G4GDMLWriteMaterials::MaterialWrite(), and G4DNAQuinnPlasmonExcitationModel::SampleSecondaries().

◆ GetAtomicNumDensityVector()

◆ GetAtomsVector()

const G4int * G4Material::GetAtomsVector ( ) const
inline

Definition at line 189 of file G4Material.hh.

189{ return fAtomsVector; }

Referenced by G4VLEPTSModel::ReadParam().

◆ GetBaseMaterial()

◆ GetChemicalFormula()

const G4String & G4Material::GetChemicalFormula ( ) const
inline

◆ GetDensity()

G4double G4Material::GetDensity ( ) const
inline

Definition at line 174 of file G4Material.hh.

174{ return fDensity; }

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

◆ GetElectronDensity()

G4double G4Material::GetElectronDensity ( ) const
inline

Definition at line 203 of file G4Material.hh.

203{ return fTotNbOfElectPerVolume; }

Referenced by G4AdjointComptonModel::AdjointCrossSection(), G4AdjointhIonisationModel::AdjointCrossSection(), G4ForwardXrayTR::BuildXrayTRtables(), G4BetheBlochModel::ComputeDEDXPerVolume(), G4BraggIonModel::ComputeDEDXPerVolume(), G4BraggModel::ComputeDEDXPerVolume(), G4ICRU73QOModel::ComputeDEDXPerVolume(), G4MollerBhabhaModel::ComputeDEDXPerVolume(), G4MuBetheBlochModel::ComputeDEDXPerVolume(), G4EmCorrections::ComputeIonCorrections(), G4LindhardSorensenIonModel::CorrectionsAlongStep(), G4AtimaEnergyLossModel::CrossSectionPerVolume(), G4BetheBlochModel::CrossSectionPerVolume(), G4BraggIonModel::CrossSectionPerVolume(), G4BraggModel::CrossSectionPerVolume(), G4eeToHadronsModel::CrossSectionPerVolume(), G4eeToHadronsMultiModel::CrossSectionPerVolume(), G4eeToTwoGammaModel::CrossSectionPerVolume(), G4eplusTo2GammaOKVIModel::CrossSectionPerVolume(), G4eplusTo3GammaOKVIModel::CrossSectionPerVolume(), G4ICRU73QOModel::CrossSectionPerVolume(), G4LindhardSorensenIonModel::CrossSectionPerVolume(), G4MollerBhabhaModel::CrossSectionPerVolume(), G4MuBetheBlochModel::CrossSectionPerVolume(), G4IonFluctuations::Dispersion(), G4mplIonisationModel::Dispersion(), G4mplIonisationWithDeltaModel::Dispersion(), G4PAIModel::Dispersion(), G4PAIPhotModel::Dispersion(), G4UniversalFluctuation::Dispersion(), 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 183 of file G4Material.hh.

183{ return theElementVector; }

Referenced by G4VCrossSectionHandler::ActiveElements(), G4AdjointPhotoElectricModel::AdjointCrossSection(), G4VAtomDeexcitation::AlongStepDeexcitation(), G4CrossSectionHandler::BuildCrossSectionsForMaterials(), G4eIonisationCrossSectionHandler::BuildCrossSectionsForMaterials(), G4PenelopeBremsstrahlungFS::BuildScaledXSTable(), G4Nucleus::ChooseParameters(), G4eBremParametrizedModel::ComputeDEDXPerVolume(), G4eBremsstrahlungRelModel::ComputeDEDXPerVolume(), G4ICRU49NuclearStoppingModel::ComputeDEDXPerVolume(), G4LivermoreIonisationModel::ComputeDEDXPerVolume(), G4MuBremsstrahlungModel::ComputeDEDXPerVolume(), G4MuPairProductionModel::ComputeDEDXPerVolume(), G4SeltzerBergerModel::ComputeDEDXPerVolume(), G4GammaConversionToMuons::ComputeMeanFreePath(), G4CrystalExtension::ComputeStructureFactor(), G4CrystalExtension::ComputeStructureFactorGeometrical(), G4WentzelVIModel::ComputeTransportXSectionPerVolume(), G4DNAELSEPAElasticModel::CrossSectionPerVolume(), G4PenelopeRayleighModelMI::CrossSectionPerVolume(), G4tgbGeometryDumper::DumpMaterial(), G4DNAELSEPAElasticModel::G4DNAELSEPAElasticModel(), G4EmElementSelector::G4EmElementSelector(), G4HadElementSelector::G4HadElementSelector(), G4CrystalExtension::GetAtomPos(), G4HadronicProcessStore::GetCaptureCrossSectionPerVolume(), G4HadronicProcessStore::GetChargeExchangeCrossSectionPerVolume(), G4IonICRU73Data::GetDEDX(), G4HadronicProcessStore::GetElasticCrossSectionPerVolume(), G4ElNeutrinoNucleusTotXsc::GetElementCrossSection(), G4MuNeutrinoNucleusTotXsc::GetElementCrossSection(), G4TauNeutrinoNucleusTotXsc::GetElementCrossSection(), G4HadronicProcessStore::GetFissionCrossSectionPerVolume(), G4HadronicProcessStore::GetInelasticCrossSectionPerVolume(), G4BoldyshevTripletModel::Initialise(), G4DNAELSEPAElasticModel::Initialise(), G4DNAQuinnPlasmonExcitationModel::Initialise(), G4eDPWACoulombScatteringModel::Initialise(), G4IonICRU73Data::Initialise(), G4JAEAElasticScatteringModel::Initialise(), G4JAEAPolarizedElasticScatteringModel::Initialise(), G4LivermoreNuclearGammaConversionModel::Initialise(), G4LivermorePolarizedComptonModel::Initialise(), G4LivermorePolarizedGammaConversionModel::Initialise(), G4LowEPComptonModel::Initialise(), G4LowEPPolarizedComptonModel::Initialise(), G4PenelopeGammaConversionModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4PenelopeRayleighModel::Initialise(), G4PenelopeRayleighModelMI::Initialise(), G4ElasticHadrNucleusHE::InitialiseModel(), G4eCoulombScatteringModel::MinPrimaryEnergy(), G4hCoulombScatteringModel::MinPrimaryEnergy(), G4WentzelVIModel::SampleScattering(), G4AdjointPhotoElectricModel::SampleSecondaries(), G4DNAELSEPAElasticModel::SampleSecondaries(), G4PenelopeRayleighModel::SampleSecondaries(), G4PenelopeRayleighModelMI::SampleSecondaries(), G4PixeCrossSectionHandler::SelectRandomAtom(), G4VCrossSectionHandler::SelectRandomAtom(), G4VCrossSectionHandler::SelectRandomElement(), G4ElementSelector::SelectZandA(), G4PixeCrossSectionHandler::ValueForMaterial(), and G4VCrossSectionHandler::ValueForMaterial().

◆ GetFractionVector()

◆ GetFreeElectronDensity()

G4double G4Material::GetFreeElectronDensity ( ) const
inline

Definition at line 173 of file G4Material.hh.

173{ return fFreeElecDensity; }

Referenced by G4DensityEffectCalculator::G4DensityEffectCalculator().

◆ GetIndex()

std::size_t G4Material::GetIndex ( ) const
inline

Definition at line 239 of file G4Material.hh.

239{ return fIndexInTable; }

Referenced by G4VLEPTSModel::BuildMeanFreePathTable(), G4VLEPTSModel::BuildPhysicsTable(), G4AdjointCSManager::ComputeAdjointCS(), G4EnergyLossForExtrapolator::ComputeDEDX(), G4EnergyLossForExtrapolator::ComputeEnergy(), G4EnergyLossForExtrapolator::ComputeRange(), G4GoudsmitSaundersonMscModel::ComputeTruePathLengthLimit(), 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(), G4DNAModelInterface::CrossSectionPerVolume(), G4DNAPTBElasticModel::CrossSectionPerVolume(), G4DNAPTBExcitationModel::CrossSectionPerVolume(), G4DNAPTBIonisationModel::CrossSectionPerVolume(), G4DNARPWBAExcitationModel::CrossSectionPerVolume(), G4DNARPWBAIonisationModel::CrossSectionPerVolume(), G4DNARuddIonisationExtendedModel::CrossSectionPerVolume(), G4DNARuddIonisationModel::CrossSectionPerVolume(), G4DNASancheExcitationModel::CrossSectionPerVolume(), G4DNAScreenedRutherfordElasticModel::CrossSectionPerVolume(), G4DNATransformElectronModel::CrossSectionPerVolume(), G4DNAUeharaScreenedRutherfordElasticModel::CrossSectionPerVolume(), G4GoudsmitSaundersonMscModel::CrossSectionPerVolume(), G4PEEffectFluoModel::CrossSectionPerVolume(), G4TDNAOneStepThermalizationModel< MODEL >::CrossSectionPerVolume(), G4DNABrownianTransportation::Diffusion(), G4DNAPTBExcitationModel::G4DNAPTBExcitationModel(), G4DNAPTBExcitationStructure::G4DNAPTBExcitationStructure(), G4DNAPTBIonisationStructure::G4DNAPTBIonisationStructure(), G4PAIxSection::G4PAIxSection(), G4StrawTubeXTRadiator::G4StrawTubeXTRadiator(), G4VXTRenergyLoss::G4VXTRenergyLoss(), G4EnergyLossTables::GetDEDX(), G4IonICRU73Data::GetDEDX(), G4EnergyLossTables::GetDeltaLabTime(), G4EnergyLossTables::GetDeltaProperTime(), G4EnergyLossTables::GetLabTime(), G4VLEPTSModel::GetMeanFreePath(), G4DNAMolecularMaterial::GetMolecularConfiguration(), G4EnergyLossTables::GetPreciseDEDX(), G4EnergyLossTables::GetPreciseEnergyFromRange(), G4EnergyLossTables::GetPreciseRangeFromEnergy(), G4EnergyLossTables::GetProperTime(), G4EnergyLossTables::GetRange(), G4GoudsmitSaundersonMscModel::GetTransportMeanFreePath(), G4DNACPA100ElasticModel::Initialise(), G4DNACPA100ExcitationModel::Initialise(), G4DNACPA100IonisationModel::Initialise(), G4DNAPTBElasticModel::Initialise(), G4DNAPTBExcitationModel::Initialise(), G4DNAPTBIonisationModel::Initialise(), G4DNAVacuumModel::Initialise(), G4IonICRU73Data::Initialise(), G4GoudsmitSaundersonTable::InitSCPCorrection(), G4OpWLS2::PostStepDoIt(), G4OpWLS::PostStepDoIt(), G4Scintillation::PostStepDoIt(), G4Cerenkov::PostStepGetPhysicalInteractionLength(), G4DNASecondOrderReaction::PostStepGetPhysicalInteractionLength(), G4HadronicProcess::PostStepGetPhysicalInteractionLength(), G4DNAMolecularMaterial::RecordMolecularMaterial(), G4DNACPA100ElasticModel::SampleSecondaries(), G4DNACPA100ExcitationModel::SampleSecondaries(), G4DNACPA100IonisationModel::SampleSecondaries(), G4DNAModelInterface::SampleSecondaries(), G4DNAPTBExcitationModel::SampleSecondaries(), G4DNAPTBIonisationModel::SampleSecondaries(), G4VEmAdjointModel::SelectCSMatrix(), G4PixeCrossSectionHandler::SelectRandomAtom(), G4DNAMolecularMaterial::SetMolecularConfiguration(), G4DNAMolecularMaterial::SetMolecularConfiguration(), G4EnergyLossForExtrapolator::TrueStepLength(), and G4EmSaturation::VisibleEnergyDeposition().

◆ GetIonisation()

G4IonisParamMat * G4Material::GetIonisation ( ) const
inline

Definition at line 212 of file G4Material.hh.

212{ return fIonisation; }

Referenced by G4EmCorrections::Bethe(), G4hImpactIonisation::BuildPhysicsTable(), G4AtimaEnergyLossModel::ComputeDEDXPerVolume(), G4BetheBlochModel::ComputeDEDXPerVolume(), G4MollerBhabhaModel::ComputeDEDXPerVolume(), G4MuBetheBlochModel::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(), G4eDPWAElasticDCS::InitSCPCorrection(), G4GoudsmitSaundersonTable::InitSCPCorrection(), G4hBetheBlochModel::LowEnergyLimit(), G4GDMLReadMaterials::MaterialRead(), G4GDMLWriteMaterials::MaterialWrite(), G4ElectronIonPair::MeanNumberOfIonsAlongStep(), G4AtimaEnergyLossModel::MinEnergyCut(), G4BetheBlochModel::MinEnergyCut(), G4BraggModel::MinEnergyCut(), G4IonParametrisedLossModel::MinEnergyCut(), G4LindhardSorensenIonModel::MinEnergyCut(), G4mplIonisationWithDeltaModel::MinEnergyCut(), G4MuBetheBlochModel::MinEnergyCut(), G4CoulombScattering::MinPrimaryEnergy(), G4hImpactIonisation::PrintInfoDefinition(), G4UniversalFluctuation::SampleFluctuations(), G4UrbanFluctuation::SampleGlandz(), G4eeToTwoGammaModel::SampleSecondaries(), G4IonisParamMat::SetDensityEffectParameters(), G4WentzelOKandVIxSection::SetupKinematic(), G4WentzelVIRelXSection::SetupKinematic(), G4EmCorrections::ShellCorrectionSTD(), and G4EmSaturation::VisibleEnergyDeposition().

◆ GetMassOfMolecule()

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

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

Referenced by G4DNABrownianTransportation::BuildPhysicsTable(), G4LossTableBuilder::BuildTableForModel(), G4ProductionCutsTable::CheckMaterialInfo(), G4DNAELSEPAElasticModel::CrossSectionPerVolume(), G4DNAMolecularDissociation::DecayIt(), G4EmCalculator::FindMaterial(), G4DNACPA100ElasticModel::G4DNACPA100ElasticModel(), G4DNACPA100ExcitationModel::G4DNACPA100ExcitationModel(), G4DNACPA100ExcitationStructure::G4DNACPA100ExcitationStructure(), G4DNACPA100IonisationModel::G4DNACPA100IonisationModel(), G4DNACPA100IonisationStructure::G4DNACPA100IonisationStructure(), G4DNAPTBElasticModel::G4DNAPTBElasticModel(), G4DNAPTBExcitationModel::G4DNAPTBExcitationModel(), G4DNAPTBExcitationStructure::G4DNAPTBExcitationStructure(), G4DNAPTBIonisationModel::G4DNAPTBIonisationModel(), G4DNAPTBIonisationStructure::G4DNAPTBIonisationStructure(), G4GDMLReadMaterials::GetMaterial(), G4DNABornExcitationModel1::Initialise(), G4DNABornExcitationModel2::Initialise(), G4DNABornIonisationModel1::Initialise(), G4DNABornIonisationModel2::Initialise(), G4DNAChampionElasticModel::Initialise(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4DNAEmfietzoglouExcitationModel::Initialise(), G4DNAEmfietzoglouIonisationModel::Initialise(), G4DNAIonElasticModel::Initialise(), G4DNAMeltonAttachmentModel::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4DNAModelInterface::Initialise(), G4DNARelativisticIonisationModel::Initialise(), G4DNARPWBAExcitationModel::Initialise(), G4DNARPWBAIonisationModel::Initialise(), G4DNARuddIonisationModel::Initialise(), G4DNASancheExcitationModel::Initialise(), G4DNAScreenedRutherfordElasticModel::Initialise(), G4DNATransformElectronModel::Initialise(), G4DNAUeharaScreenedRutherfordElasticModel::Initialise(), G4DNAVacuumModel::Initialise(), G4LivermorePhotoElectricModel::Initialise(), G4TDNAOneStepThermalizationModel< MODEL >::Initialise(), G4VDNAModel::LoadCrossSectionData(), G4DNACPA100IonisationModel::SampleSecondaries(), 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 (auto const & mat : theMaterialTable) {
676 if (1 == mat->GetNumberOfElements() && z == mat->GetZ() && a == mat->GetA() &&
677 dens == mat->GetDensity())
678 {
679 return mat;
680 }
681 }
682 return nullptr;
683}

◆ GetMaterial() [3/3]

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

Definition at line 687 of file G4Material.cc.

688{
689 // search the material by its name
690 for (auto const & mat : theMaterialTable) {
691 if (nComp == mat->GetNumberOfElements() && dens == mat->GetDensity()) {
692 return mat;
693 }
694 }
695 return nullptr;
696}

◆ GetMaterialPropertiesTable()

◆ GetMaterialTable()

G4MaterialTable * G4Material::GetMaterialTable ( )
static

Definition at line 645 of file G4Material.cc.

645{ return &theMaterialTable; }

Referenced by G4VCrossSectionHandler::ActiveElements(), G4AdjointCSManager::BuildCrossSectionMatrices(), G4Cerenkov::BuildPhysicsTable(), G4CrossSectionDataStore::BuildPhysicsTable(), G4CrossSectionHP::BuildPhysicsTable(), G4GammaConversionToMuons::BuildPhysicsTable(), G4NeutronGeneralProcess::BuildPhysicsTable(), G4OpRayleigh::BuildPhysicsTable(), G4OpWLS2::BuildPhysicsTable(), G4OpWLS::BuildPhysicsTable(), G4ParticleHPThermalScatteringData::BuildPhysicsTable(), G4Scintillation::BuildPhysicsTable(), G4VLEPTSModel::BuildPhysicsTable(), G4VXTRenergyLoss::ComputeGasPhotoAbsCof(), G4PAIxSection::ComputeLowEnergyCof(), G4StrawTubeXTRadiator::ComputeMediumPhotoAbsCof(), G4VXTRenergyLoss::ComputePlatePhotoAbsCof(), G4DNACPA100ElasticModel::CrossSectionPerVolume(), G4DNACPA100ExcitationModel::CrossSectionPerVolume(), G4DNACPA100IonisationModel::CrossSectionPerVolume(), G4EmSaturation::DumpBirksCoefficients(), G4ElectronIonPair::DumpMeanEnergyPerIonPair(), G4HadXSHelper::FillPeaksStructure(), G4HadXSHelper::FindCrossSectionMax(), G4NistMaterialBuilder::FindMaterial(), G4PAIxSection::G4PAIxSection(), G4PAIxSection::G4PAIxSection(), G4PAIxSection::G4PAIxSection(), G4PAIxSection::G4PAIxSection(), G4SandiaTable::G4SandiaTable(), G4DNAMolecularMaterial::GetDensityTableFor(), G4VXTRenergyLoss::GetGasCompton(), G4NistManager::GetMaterial(), G4DNAMolecularMaterial::GetNumMolPerVolTableFor(), G4VXTRenergyLoss::GetPlateCompton(), G4TablesForExtrapolator::Initialisation(), G4ASTARStopping::Initialise(), G4eeToTwoGammaModel::Initialise(), G4HadronXSDataTable::Initialise(), G4ICRU73QOModel::Initialise(), G4ICRU90StoppingData::Initialise(), G4IonICRU73Data::Initialise(), G4LEPTSElasticModel::Initialise(), G4PAIModel::Initialise(), G4PAIPhotModel::Initialise(), G4PEEffectFluoModel::Initialise(), G4PSTARStopping::Initialise(), G4EmSaturation::InitialiseG4Saturation(), G4DNAMolecularMaterial::Initialize(), G4DNAMolecularMaterial::InitializeDensity(), G4VDNAModel::IsMaterialDefine(), G4NeutronGeneralProcess::PreparePhysicsTable(), G4NistManager::PrintG4Material(), G4VDNAModel::RandomSelectShell(), G4DNACPA100ExcitationModel::SampleSecondaries(), G4XrayReflection::SaveHenkeDataAsMaterialProperty(), G4ProductionCutsTable::StoreMaterialInfo(), G4DNAModelInterface::StreamInfo(), G4GDMLRead::StripNames(), and G4NistManager::~G4NistManager().

◆ GetName()

const G4String & G4Material::GetName ( ) const
inline

Definition at line 171 of file G4Material.hh.

171{ return fName; }

Referenced by AddMaterial(), G4GMocrenFileSceneHandler::AddSolid(), G4GMocrenFileSceneHandler::AddSolid(), G4ErrorEnergyLoss::AlongStepDoIt(), G4VContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4VContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4ParticleHPInelastic::ApplyYourself(), G4VITRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousProcess::AtRestGetPhysicalInteractionLength(), G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestProcess::AtRestGetPhysicalInteractionLength(), G4EmCorrections::BarkasCorrection(), G4eIonisationCrossSectionHandler::BuildCrossSectionsForMaterials(), G4GammaGeneralProcess::BuildPhysicsTable(), G4MicroElecSurface::BuildPhysicsTable(), G4NeutronGeneralProcess::BuildPhysicsTable(), G4ParticleHPThermalScatteringData::BuildPhysicsTable(), G4VLEPTSModel::BuildPhysicsTable(), G4PenelopeBremsstrahlungFS::BuildScaledXSTable(), G4PenelopeIonisationXSHandler::BuildXSTable(), G4ProductionCutsTable::CheckMaterialCutsCoupleInfo(), G4EmCalculator::ComputeCrossSectionPerVolume(), G4PenelopeIonisationModel::ComputeDEDXPerVolume(), G4DensityEffectCalculator::ComputeDensityCorrection(), G4VCrossSectionDataSet::ComputeIsoCrossSection(), G4EmCalculator::ComputeMeanFreePath(), G4tgbVolume::ConstructG4LogVol(), G4tgbVolume::ConstructG4PhysVol(), G4VRangeToEnergyConverter::Convert(), G4PhysicalVolumeModel::CreateCurrentAttValues(), G4PenelopeIonisationCrossSection::CrossSection(), G4DNAModelInterface::CrossSectionPerVolume(), G4MicroElecElasticModel_new::CrossSectionPerVolume(), G4MicroElecInelasticModel_new::CrossSectionPerVolume(), G4MicroElecLOPhononModel::CrossSectionPerVolume(), G4PenelopeBremsstrahlungModel::CrossSectionPerVolume(), G4PenelopeComptonModel::CrossSectionPerVolume(), G4PenelopeIonisationModel::CrossSectionPerVolume(), G4PenelopeRayleighModelMI::CrossSectionPerVolume(), G4EmElementSelector::Dump(), G4PenelopeOscillatorManager::Dump(), G4EmSaturation::DumpBirksCoefficients(), G4ProductionCutsTable::DumpCouples(), G4PenelopeRayleighModel::DumpFormFactorTable(), G4PenelopeRayleighModelMI::DumpFormFactorTable(), G4VParticleChange::DumpInfo(), G4ElectronIonPair::DumpMeanEnergyPerIonPair(), G4HadronicProcess::DumpState(), G4EmCorrections::EffectiveChargeCorrection(), G4EmModelManager::FillDEDXVector(), G4EmModelManager::FillLambdaVector(), G4EmSaturation::FindG4BirksCoefficient(), G4ElectronIonPair::FindG4MeanEnergyPerIonPair(), G4IonisParamMat::FindMeanExcitationEnergy(), G4tgbMaterialMgr::FindOrBuildG4Material(), G4DNAELSEPAElasticModel::G4DNAELSEPAElasticModel(), 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(), G4PenelopeOscillatorManager::GetMeanExcitationEnergy(), G4EmCalculator::GetMeanFreePath(), G4MicroElecCapture::GetMeanFreePath(), G4XrayReflection::GetMeanFreePath(), G4PenelopeOscillatorManager::GetNumberOfZAtomsPerMolecule(), G4PenelopeOscillatorManager::GetOscillatorCompton(), G4PenelopeOscillatorManager::GetOscillatorIonisation(), G4PenelopeOscillatorManager::GetOscillatorTableCompton(), G4PenelopeOscillatorManager::GetOscillatorTableIonisation(), G4PenelopeOscillatorManager::GetPlasmaEnergySquared(), G4EmCalculator::GetRangeFromRestricteDEDX(), G4PenelopeOscillatorManager::GetTotalA(), G4PenelopeOscillatorManager::GetTotalZ(), G4EmCorrections::HighOrderCorrections(), G4ASTARStopping::Initialise(), G4DNAELSEPAElasticModel::Initialise(), G4EmModelManager::Initialise(), G4ICRU90StoppingData::Initialise(), G4IonICRU73Data::Initialise(), G4LEPTSElasticModel::Initialise(), G4MicroElecCapture::Initialise(), G4MicroElecElasticModel_new::Initialise(), G4MicroElecInelasticModel_new::Initialise(), G4MicroElecSurface::Initialise(), G4PAIModel::Initialise(), G4PAIPhotModel::Initialise(), G4PenelopeRayleighModelMI::Initialise(), G4PSTARStopping::Initialise(), G4LatticeManager::LoadLattice(), G4GDMLWriteMaterials::MaterialWrite(), G4DNASecondOrderReaction::PostStepDoIt(), G4ElNeutrinoNucleusProcess::PostStepDoIt(), G4MicroElecCapture::PostStepDoIt(), G4MicroElecSurface::PostStepDoIt(), G4MuNeutrinoNucleusProcess::PostStepDoIt(), G4NeutrinoElectronProcess::PostStepDoIt(), G4TauNeutrinoNucleusProcess::PostStepDoIt(), G4VXTRenergyLoss::PostStepDoIt(), G4Decay::PostStepGetPhysicalInteractionLength(), G4DNASecondOrderReaction::PostStepGetPhysicalInteractionLength(), G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength(), G4VITDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4hImpactIonisation::PrintInfoDefinition(), GVFlashShowerParameterisation::PrintMaterial(), G4DNAMolecularMaterial::PrintNotAMolecularMaterial(), G4ExtendedMaterial::RegisterExtension(), G4TransportationLogger::ReportLoopingTrack(), G4ASCIITreeSceneHandler::RequestPrimitives(), G4ExtendedMaterial::RetrieveExtension(), G4PenelopeBremsstrahlungAngular::SampleDirection(), G4VLEPTSModel::SampleEnergyLoss(), G4PenelopeBremsstrahlungFS::SampleGammaEnergy(), G4DNAELSEPAElasticModel::SampleSecondaries(), G4DNAPTBExcitationModel::SampleSecondaries(), G4DNAPTBIonisationModel::SampleSecondaries(), G4LivermoreComptonModel::SampleSecondaries(), G4LowEPComptonModel::SampleSecondaries(), G4LowEPPolarizedComptonModel::SampleSecondaries(), G4PenelopeBremsstrahlungModel::SampleSecondaries(), G4PenelopeGammaConversionModel::SampleSecondaries(), G4PenelopePhotoElectricModel::SampleSecondaries(), G4PenelopeRayleighModel::SampleSecondaries(), G4PenelopeRayleighModelMI::SampleSecondaries(), G4ChannelingFastSimCrystalData::SetMaterialProperties(), G4IonisParamMat::SetMeanExcitationEnergy(), G4EmCalculator::SetupMaterial(), G4EnergySplitter::SplitEnergyInVolumes(), G4ProductionCutsTable::StoreMaterialCutsCoupleInfo(), G4GDMLRead::StripNames(), G4ParallelWorldProcess::SwitchMaterial(), G4tgbMaterialMixtureByVolume::TransformToFractionsByWeight(), and G4GDMLWriteStructure::TraverseVolumeTree().

◆ GetNuclearInterLength()

G4double G4Material::GetNuclearInterLength ( ) const
inline

Definition at line 209 of file G4Material.hh.

209{ return fNuclInterLen; }

Referenced by G4MSSteppingAction::UserSteppingAction().

◆ GetNumberOfElements()

std::size_t G4Material::GetNumberOfElements ( ) const
inline

Definition at line 180 of file G4Material.hh.

180{ return fNumberOfElements; }

Referenced by G4VCrossSectionHandler::ActiveElements(), AddMaterial(), G4AdjointPhotoElectricModel::AdjointCrossSection(), G4VAtomDeexcitation::AlongStepDeexcitation(), G4FissLib::ApplyYourself(), G4NeutronHPCapture::ApplyYourself(), G4ParticleHPElastic::ApplyYourself(), G4ParticleHPFission::ApplyYourself(), G4ParticleHPInelastic::ApplyYourself(), G4ParticleHPThermalScattering::ApplyYourself(), G4CrossSectionHandler::BuildCrossSectionsForMaterials(), G4eIonisationCrossSectionHandler::BuildCrossSectionsForMaterials(), G4CrossSectionDataStore::BuildPhysicsTable(), G4ParticleHPThermalScatteringData::BuildPhysicsTable(), G4PenelopeBremsstrahlungFS::BuildScaledXSTable(), G4Nucleus::ChooseParameters(), G4AdjointCSManager::ComputeAdjointCS(), G4CrossSectionDataStore::ComputeCrossSection(), G4eBremParametrizedModel::ComputeDEDXPerVolume(), G4ICRU49NuclearStoppingModel::ComputeDEDXPerVolume(), G4LivermoreIonisationModel::ComputeDEDXPerVolume(), G4MuBremsstrahlungModel::ComputeDEDXPerVolume(), G4MuPairProductionModel::ComputeDEDXPerVolume(), G4IonisParamMat::ComputeDensityEffectOnFly(), G4PAIxSection::ComputeLowEnergyCof(), G4PAIySection::ComputeLowEnergyCof(), G4GammaConversionToMuons::ComputeMeanFreePath(), G4WentzelVIModel::ComputeTransportXSectionPerVolume(), G4DNADiracRMatrixExcitationModel::CrossSectionPerVolume(), G4DNAELSEPAElasticModel::CrossSectionPerVolume(), G4DNAQuinnPlasmonExcitationModel::CrossSectionPerVolume(), G4DNARelativisticIonisationModel::CrossSectionPerVolume(), G4PenelopeRayleighModelMI::CrossSectionPerVolume(), G4VEmModel::CrossSectionPerVolume(), G4tgbGeometryDumper::DumpMaterial(), G4DensityEffectCalculator::G4DensityEffectCalculator(), G4DNAELSEPAElasticModel::G4DNAELSEPAElasticModel(), G4EmElementSelector::G4EmElementSelector(), G4HadElementSelector::G4HadElementSelector(), G4Material(), G4ShellVacancy::GenerateNumberOfIonisations(), G4HadronicProcessStore::GetCaptureCrossSectionPerVolume(), G4HadronicProcessStore::GetChargeExchangeCrossSectionPerVolume(), G4IonICRU73Data::GetDEDX(), GVFlashShowerParameterisation::GetEffA(), GVFlashShowerParameterisation::GetEffZ(), G4HadronicProcessStore::GetElasticCrossSectionPerVolume(), G4HadronicProcessStore::GetFissionCrossSectionPerVolume(), G4HadronicProcessStore::GetInelasticCrossSectionPerVolume(), G4hICRU49He::HasMaterial(), G4hICRU49p::HasMaterial(), G4hZiegler1985p::HasMaterial(), G4BoldyshevTripletModel::Initialise(), G4DNAELSEPAElasticModel::Initialise(), G4DNAQuinnPlasmonExcitationModel::Initialise(), G4DNARelativisticIonisationModel::Initialise(), G4eDPWACoulombScatteringModel::Initialise(), G4HadronXSDataTable::Initialise(), G4IonICRU73Data::Initialise(), G4JAEAElasticScatteringModel::Initialise(), G4JAEAPolarizedElasticScatteringModel::Initialise(), G4LivermoreNuclearGammaConversionModel::Initialise(), G4LivermorePolarizedComptonModel::Initialise(), G4LivermorePolarizedGammaConversionModel::Initialise(), G4LowEPComptonModel::Initialise(), G4LowEPPolarizedComptonModel::Initialise(), G4PenelopeGammaConversionModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4PenelopeRayleighModel::Initialise(), G4PenelopeRayleighModelMI::Initialise(), G4WentzelVIModel::Initialise(), G4VEmModel::InitialiseForMaterial(), G4QAOLowEnergyLoss::IsInCharge(), G4QAOLowEnergyLoss::IsInCharge(), G4GDMLWriteMaterials::MaterialWrite(), G4eCoulombScatteringModel::MinPrimaryEnergy(), G4hCoulombScatteringModel::MinPrimaryEnergy(), G4MicroElecCapture::PostStepDoIt(), G4NeutronGeneralProcess::PostStepDoIt(), G4VLEPTSModel::ReadParam(), G4EmUtility::SampleRandomElement(), G4WentzelVIModel::SampleScattering(), G4AdjointPhotoElectricModel::SampleSecondaries(), G4DNAELSEPAElasticModel::SampleSecondaries(), G4PenelopeRayleighModel::SampleSecondaries(), G4PenelopeRayleighModelMI::SampleSecondaries(), G4CrossSectionDataStore::SampleZandA(), G4PixeCrossSectionHandler::SelectRandomAtom(), G4VCrossSectionHandler::SelectRandomAtom(), G4VEmModel::SelectRandomAtom(), G4VCrossSectionHandler::SelectRandomElement(), G4ElementSelector::SelectZandA(), G4ChannelingFastSimCrystalData::SetMaterialProperties(), G4hICRU49He::StoppingPower(), G4hICRU49p::StoppingPower(), G4hZiegler1985p::StoppingPower(), G4PixeCrossSectionHandler::ValueForMaterial(), and G4VCrossSectionHandler::ValueForMaterial().

◆ GetNumberOfMaterials()

◆ GetPressure()

◆ GetRadlen()

◆ GetSandiaTable()

◆ GetState()

◆ GetTemperature()

G4double G4Material::GetTemperature ( ) const
inline

Definition at line 176 of file G4Material.hh.

176{ return fTemp; }

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

◆ GetTotNbOfAtomsPerVolume()

◆ GetTotNbOfElectPerVolume()

G4double G4Material::GetTotNbOfElectPerVolume ( ) const
inline

◆ GetVecNbOfAtomsPerVolume()

◆ GetZ()

◆ IsExtended()

G4bool G4Material::IsExtended ( ) const
virtual

Reimplemented in G4ExtendedMaterial.

Definition at line 789 of file G4Material.cc.

789{ return false; }

Referenced by G4PenelopeRayleighModelMI::CrossSectionPerVolume().

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

616{
617 if (! IsLocked()) {
618 fChemicalFormula = chF;
619 }
620}

◆ SetFreeElectronDensity()

void G4Material::SetFreeElectronDensity ( G4double val)

Definition at line 624 of file G4Material.cc.

625{
626 if (val >= 0. && ! IsLocked()) {
627 fFreeElecDensity = val;
628 }
629}

◆ SetMaterialPropertiesTable()

void G4Material::SetMaterialPropertiesTable ( G4MaterialPropertiesTable * anMPT)

Definition at line 793 of file G4Material.cc.

794{
795 if (fMaterialPropertiesTable != anMPT && ! IsLocked()) {
796 delete fMaterialPropertiesTable;
797 fMaterialPropertiesTable = anMPT;
798 }
799}

Referenced by G4GDMLReadMaterials::PropertyRead().

◆ SetName()

void G4Material::SetName ( const G4String & name)
inline

Definition at line 260 of file G4Material.hh.

260{ fName = name; }

Referenced by G4GDMLRead::StripNames().

Friends And Related Symbol Documentation

◆ operator<< [1/3]

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

Definition at line 767 of file G4Material.cc.

768{
769 flux << &material;
770 return flux;
771}

◆ operator<< [2/3]

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

Definition at line 726 of file G4Material.cc.

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

◆ operator<< [3/3]

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

Definition at line 775 of file G4Material.cc.

776{
777 // Dump info for all known materials
778 flux << "\n***** Table : Nb of materials = " << MaterialTable.size() << " *****\n" << G4endl;
779
780 for (auto i : MaterialTable) {
781 flux << i << G4endl << G4endl;
782 }
783
784 return flux;
785}

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