Geant4 11.1.1
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 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)
 
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 val)
 
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
 
G4bool operator== (const G4Material &) const =delete
 
G4bool operator!= (const G4Material &) const =delete
 
 G4Material (const G4Material &)=delete
 
const G4Materialoperator= (const G4Material &)=delete
 

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

Detailed Description

Definition at line 116 of file G4Material.hh.

Constructor & Destructor Documentation

◆ G4Material() [1/5]

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

Definition at line 93 of file G4Material.cc.

96 : fName(name)
97{
98 InitializePointers();
99
100 if (density < universe_mean_density)
101 {
102 G4cout << " G4Material WARNING:"
103 << " define a material with density=0 is not allowed. \n"
104 << " The material " << name << " will be constructed with the"
105 << " default minimal density: " << universe_mean_density/(g/cm3)
106 << "g/cm3" << G4endl;
107 density = universe_mean_density;
108 }
109
110 fDensity = density;
111 fState = state;
112 fTemp = temp;
113 fPressure = pressure;
114
115 // Initialize theElementVector allocating one
116 // element corresponding to this material
117 fNbComponents = fNumberOfElements = 1;
118 theElementVector = new G4ElementVector();
119
120 // take element from DB
122 G4int iz = G4lrint(z);
123 auto elm = nist->FindOrBuildElement(iz);
124 if(elm == nullptr)
125 {
126 elm = new G4Element("ELM_" + name, name, z, a);
127 }
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< const G4Element * > G4ElementVector
@ kStateSolid
Definition: G4Material.hh:110
@ kStateGas
Definition: G4Material.hh:110
@ kStateUndefined
Definition: G4Material.hh:110
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/5]

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

Definition at line 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 fNbComponents = nComponents;
171 fMassFraction = true;
172
173 if (fState == kStateUndefined)
174 {
175 if (fDensity > kGasThreshold) { fState = kStateSolid; }
176 else { fState = kStateGas; }
177 }
178}

◆ G4Material() [3/5]

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

Definition at line 184 of file G4Material.cc.

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

◆ ~G4Material()

G4Material::~G4Material ( )
virtual

Definition at line 238 of file G4Material.cc.

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

◆ G4Material() [4/5]

G4Material::G4Material ( __void__ &  )

Definition at line 230 of file G4Material.cc.

231 : fName("")
232{
233 InitializePointers();
234}

◆ G4Material() [5/5]

G4Material::G4Material ( const G4Material )
delete

Member Function Documentation

◆ AddElement() [1/2]

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

Definition at line 163 of file G4Material.hh.

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

◆ AddElement() [2/2]

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

◆ AddElementByMassFraction()

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

Definition at line 454 of file G4Material.cc.

455{
456 // perform checks consistency
457 if(fraction < 0.0 || fraction > 1.0) {
459 ed << "For material " << fName << " and added element "
460 << elm->GetName() << " massFraction= " << fraction
461 << " is wrong ";
462 G4Exception ("G4Material::AddElementByMassFraction()", "mat031",
463 FatalException, ed, "");
464 }
465 if(!fMassFraction) {
467 ed << "For material " << fName << " and added element "
468 << elm->GetName() << ", massFraction= " << fraction
469 << ", fIdxComponent=" << fIdxComponent
470 << " problem: cannot add by mass fraction after "
471 << "addition of elements by number of atoms";
472 G4Exception ("G4Material::AddElementByMassFraction()", "mat031",
473 FatalException, ed, "");
474 }
475 if(fIdxComponent >= fNbComponents) {
477 ed << "For material " << fName << " and added element "
478 << elm->GetName() << ", massFraction= " << fraction
479 << ", fIdxComponent=" << fIdxComponent
480 << "; attempt to add more than the declared number of components "
481 << fIdxComponent << " >= " << fNbComponents;
482 G4Exception ("G4Material::AddElementByMassFraction()", "mat031",
483 FatalException, ed, "");
484 }
485 if(0 == fIdxComponent) {
486 fElmFrac = new std::vector<G4double>;
487 fElm = new std::vector<const G4Element*>;
488 }
489
490 // filling
491 G4bool isAdded = false;
492 if(!fElm->empty()) {
493 for (G4int i=0; i<fNumberOfElements; ++i) {
494 if ( elm == (*fElm)[i] ) {
495 (*fElmFrac)[i] += fraction;
496 isAdded = true;
497 break;
498 }
499 }
500 }
501 if(!isAdded) {
502 fElm->push_back(elm);
503 fElmFrac->push_back(fraction);
504 ++fNumberOfElements;
505 }
506 ++fIdxComponent;
507
508 // is filled
509 if(fIdxComponent == fNbComponents) { FillVectors(); }
510}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:59
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
bool G4bool
Definition: G4Types.hh:86
const G4String & GetName() const
Definition: G4Element.hh:127

Referenced by AddElement().

◆ AddElementByNumberOfAtoms()

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

Definition at line 373 of file G4Material.cc.

374{
375 // perform checks consistency
376 if(0 == fIdxComponent) {
377 fMassFraction = false;
378 fAtoms = new std::vector<G4int>;
379 fElm = new std::vector<const G4Element*>;
380 }
381 if(fIdxComponent >= fNbComponents) {
383 ed << "For material " << fName << " and added element "
384 << elm->GetName() << " with Natoms=" << nAtoms
385 << " wrong attempt to add more than the declared number of elements "
386 << fIdxComponent << " >= " << fNbComponents;
387 G4Exception ("G4Material::AddElementByNumberOfAtoms()", "mat031",
388 FatalException, ed, "");
389 }
390 if(fMassFraction) {
392 ed << "For material " << fName << " and added element "
393 << elm->GetName() << " with Natoms=" << nAtoms
394 << " problem: cannot add by number of atoms after "
395 << "addition of elements by mass fraction";
396 G4Exception ("G4Material::AddElementByNumberOfAtoms()", "mat031",
397 FatalException, ed, "");
398 }
399 if(0 >= nAtoms) {
401 ed << "For material " << fName << " and added element "
402 << elm->GetName() << " with Natoms=" << nAtoms
403 << " problem: number of atoms should be above zero";
404 G4Exception ("G4Material::AddElementByNumberOfAtoms()", "mat031",
405 FatalException, ed, "");
406 }
407
408 // filling
409 G4bool isAdded = false;
410 if(!fElm->empty()) {
411 for (G4int i=0; i<fNumberOfElements; ++i) {
412 if ( elm == (*fElm)[i] ) {
413 (*fAtoms)[i] += nAtoms;
414 isAdded = true;
415 break;
416 }
417 }
418 }
419 if(!isAdded) {
420 fElm->push_back(elm);
421 fAtoms->push_back(nAtoms);
422 ++fNumberOfElements;
423 }
424 ++fIdxComponent;
425
426 // is filled - complete composition of atoms
427 if (fIdxComponent == fNbComponents) {
428 theElementVector = new G4ElementVector();
429 theElementVector->reserve(fNumberOfElements);
430 fAtomsVector = new G4int[fNumberOfElements];
431 fMassFractionVector = new G4double[fNumberOfElements];
432
433 G4double Amol = 0.;
434 for (G4int i=0; i<fNumberOfElements; ++i) {
435 theElementVector->push_back((*fElm)[i]);
436 fAtomsVector[i] = (*fAtoms)[i];
437 G4double w = fAtomsVector[i]*(*fElm)[i]->GetA();
438 Amol += w;
439 fMassFractionVector[i] = w;
440 }
441 for (G4int i=0; i<fNumberOfElements; ++i) {
442 fMassFractionVector[i] /= Amol;
443 }
444 delete fAtoms;
445 delete fElm;
446 fMassOfMolecule = Amol/CLHEP::Avogadro;
447 ComputeDerivedQuantities();
448 }
449}

Referenced by AddElement().

◆ AddMaterial()

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

Definition at line 515 of file G4Material.cc.

516{
517 if(fraction < 0.0 || fraction > 1.0) {
519 ed << "For material " << fName << " and added material "
520 << material->GetName() << ", massFraction= " << fraction
521 << " is wrong ";
522 G4Exception ("G4Material::AddMaterial()", "mat031", FatalException,
523 ed, "");
524 }
525 if(!fMassFraction) {
527 ed << "For material " << fName << " and added material "
528 << material->GetName() << ", massFraction= " << fraction
529 << ", fIdxComponent=" << fIdxComponent
530 << " problem: cannot add by mass fraction after "
531 << "addition of elements by number of atoms";
532 G4Exception ("G4Material::AddMaterial()", "mat031", FatalException,
533 ed, "");
534 }
535 if(fIdxComponent >= fNbComponents) {
537 ed << "For material " << fName << " and added material "
538 << material->GetName() << ", massFraction= " << fraction
539 << "; attempt to add more than the declared number of components "
540 << fIdxComponent << " >= " << fNbComponents;
541 G4Exception ("G4Material::AddMaterial()", "mat031", FatalException,
542 ed, "");
543 }
544 if(0 == fIdxComponent) {
545 fElmFrac = new std::vector<G4double>;
546 fElm = new std::vector<const G4Element*>;
547 }
548
549 // filling
550 G4int nelm = (G4int)material->GetNumberOfElements();
551 for(G4int j=0; j<nelm; ++j) {
552 auto elm = material->GetElement(j);
553 auto frac = material->GetFractionVector();
554 G4bool isAdded = false;
555 if(!fElm->empty()) {
556 for (G4int i=0; i<fNumberOfElements; ++i) {
557 if ( elm == (*fElm)[i] ) {
558 (*fElmFrac)[i] += fraction*frac[j];
559 isAdded = true;
560 break;
561 }
562 }
563 }
564 if(!isAdded) {
565 fElm->push_back(elm);
566 fElmFrac->push_back(fraction*frac[j]);
567 ++fNumberOfElements;
568 }
569 }
570
571 fMatComponents[material] = fraction;
572 ++fIdxComponent;
573
574 // is filled
575 if(fIdxComponent == fNbComponents) { FillVectors(); }
576}
const G4Element * GetElement(G4int iel) const
Definition: G4Material.hh:197
const G4double * GetFractionVector() const
Definition: G4Material.hh:189
const G4String & GetName() const
Definition: G4Material.hh:172

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

◆ ComputeDensityEffectOnFly()

void G4Material::ComputeDensityEffectOnFly ( G4bool  val)

Definition at line 665 of file G4Material.cc.

666{
667 if(!IsLocked()) {
668 if (nullptr == fIonisation) {
669 fIonisation = new G4IonisParamMat(this);
670 }
671 fIonisation->ComputeDensityEffectOnFly(val);
672 }
673}
void ComputeDensityEffectOnFly(G4bool)

Referenced by G4NistManager::SetDensityEffectCalculatorFlag().

◆ GetA()

G4double G4Material::GetA ( ) const

Definition at line 759 of file G4Material.cc.

760{
761 if (fNumberOfElements > 1) {
763 ed << "For material " << fName << " ERROR in GetA() - Nelm="
764 << fNumberOfElements << " > 1, which is not allowed";
765 G4Exception ("G4Material::GetA()", "mat036", FatalException,
766 ed, "");
767 }
768 return (*theElementVector)[0]->GetA();
769}

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

◆ GetAtomicNumDensityVector()

◆ GetAtomsVector()

const G4int * G4Material::GetAtomsVector ( ) const
inline

Definition at line 193 of file G4Material.hh.

193{return fAtomsVector;}

Referenced by G4VLEPTSModel::ReadParam().

◆ GetBaseMaterial()

◆ GetChemicalFormula()

const G4String & G4Material::GetChemicalFormula ( ) const
inline

◆ GetDensity()

G4double G4Material::GetDensity ( ) const
inline

Definition at line 175 of file G4Material.hh.

175{return fDensity;}

Referenced by G4GMocrenFileSceneHandler::AddSolid(), G4VtkSceneHandler::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(), G4PhysicalVolumeModel::DescribeAndDescend(), G4AtimaFluctuations::Dispersion(), G4EmSaturation::DumpBirksCoefficients(), G4tgbGeometryDumper::DumpMaterial(), G4InitXscPAI::G4InitXscPAI(), G4PAIxSection::G4PAIxSection(), G4DNAQuinnPlasmonExcitationModel::GetCrossSection(), G4EmCalculator::GetDEDX(), G4VMscModel::GetEnergy(), G4LogicalVolume::GetMass(), G4VMscModel::GetRange(), 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 212 of file G4Material.hh.

212{return fTotNbOfElectPerVolume;}

Referenced by G4AdjointComptonModel::AdjointCrossSection(), G4AdjointhIonisationModel::AdjointCrossSection(), G4ForwardXrayTR::BuildXrayTRtables(), G4MuBetheBlochModel::ComputeDEDXPerVolume(), G4BetheBlochModel::ComputeDEDXPerVolume(), G4BraggIonModel::ComputeDEDXPerVolume(), G4BraggModel::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(), 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 185 of file G4Material.hh.

185{return theElementVector;}

Referenced by G4VCrossSectionHandler::ActiveElements(), G4AdjointPhotoElectricModel::AdjointCrossSection(), G4VAtomDeexcitation::AlongStepDeexcitation(), G4eIonisationCrossSectionHandler::BuildCrossSectionsForMaterials(), G4CrossSectionHandler::BuildCrossSectionsForMaterials(), 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(), G4DNAELSEPAElasticModel::CrossSectionPerVolume(), G4tgbGeometryDumper::DumpMaterial(), G4DNAELSEPAElasticModel::G4DNAELSEPAElasticModel(), G4EmElementSelector::G4EmElementSelector(), G4HadElementSelector::G4HadElementSelector(), G4CrystalExtension::GetAtomPos(), G4HadronicProcessStore::GetCaptureCrossSectionPerVolume(), G4HadronicProcessStore::GetChargeExchangeCrossSectionPerVolume(), G4IonICRU73Data::GetDEDX(), G4HadronicProcessStore::GetElasticCrossSectionPerVolume(), G4MuNeutrinoNucleusTotXsc::GetElementCrossSection(), G4TauNeutrinoNucleusTotXsc::GetElementCrossSection(), G4HadronicProcessStore::GetFissionCrossSectionPerVolume(), G4HadronicProcessStore::GetInelasticCrossSectionPerVolume(), G4BoldyshevTripletModel::Initialise(), G4JAEAElasticScatteringModel::Initialise(), G4JAEAPolarizedElasticScatteringModel::Initialise(), G4LivermoreGammaConversion5DModel::Initialise(), G4LivermoreNuclearGammaConversionModel::Initialise(), G4LivermorePolarizedComptonModel::Initialise(), G4LivermorePolarizedGammaConversionModel::Initialise(), G4LowEPComptonModel::Initialise(), G4LowEPPolarizedComptonModel::Initialise(), G4PenelopeGammaConversionModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4PenelopeRayleighModel::Initialise(), G4PenelopeRayleighModelMI::Initialise(), G4eDPWACoulombScatteringModel::Initialise(), G4DNAQuinnPlasmonExcitationModel::Initialise(), G4DNAELSEPAElasticModel::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(), G4VCrossSectionHandler::ValueForMaterial(), and G4PixeCrossSectionHandler::ValueForMaterial().

◆ GetFractionVector()

◆ GetFreeElectronDensity()

G4double G4Material::GetFreeElectronDensity ( ) const
inline

Definition at line 174 of file G4Material.hh.

174{return fFreeElecDensity;}

Referenced by G4DensityEffectCalculator::G4DensityEffectCalculator().

◆ GetIndex()

size_t G4Material::GetIndex ( ) const
inline

Definition at line 255 of file G4Material.hh.

255{return fIndexInTable;}

Referenced by G4VLEPTSModel::BuildMeanFreePathTable(), G4VLEPTSModel::BuildPhysicsTable(), G4AdjointCSManager::ComputeAdjointCS(), G4EnergyLossForExtrapolator::ComputeDEDX(), G4EnergyLossForExtrapolator::ComputeEnergy(), G4EnergyLossForExtrapolator::ComputeRange(), G4GoudsmitSaundersonMscModel::ComputeTruePathLengthLimit(), G4PEEffectFluoModel::CrossSectionPerVolume(), G4GoudsmitSaundersonMscModel::CrossSectionPerVolume(), G4DNABornExcitationModel1::CrossSectionPerVolume(), G4DNABornExcitationModel2::CrossSectionPerVolume(), G4DNABornIonisationModel1::CrossSectionPerVolume(), G4DNABornIonisationModel2::CrossSectionPerVolume(), G4DNAChampionElasticModel::CrossSectionPerVolume(), G4DNACPA100ElasticModel::CrossSectionPerVolume(), G4DNACPA100ExcitationModel::CrossSectionPerVolume(), G4DNACPA100IonisationModel::CrossSectionPerVolume(), G4DNADingfelderChargeIncreaseModel::CrossSectionPerVolume(), G4DNAEmfietzoglouExcitationModel::CrossSectionPerVolume(), G4DNAEmfietzoglouIonisationModel::CrossSectionPerVolume(), G4DNAIonElasticModel::CrossSectionPerVolume(), G4DNAMeltonAttachmentModel::CrossSectionPerVolume(), G4DNAMillerGreenExcitationModel::CrossSectionPerVolume(), G4TDNAOneStepThermalizationModel< MODEL >::CrossSectionPerVolume(), G4DNARuddIonisationExtendedModel::CrossSectionPerVolume(), G4DNARuddIonisationModel::CrossSectionPerVolume(), G4DNASancheExcitationModel::CrossSectionPerVolume(), G4DNAScreenedRutherfordElasticModel::CrossSectionPerVolume(), G4DNATransformElectronModel::CrossSectionPerVolume(), G4DNADingfelderChargeDecreaseModel::CrossSectionPerVolume(), G4DNARPWBAExcitationModel::CrossSectionPerVolume(), G4DNARPWBAIonisationModel::CrossSectionPerVolume(), G4DNAUeharaScreenedRutherfordElasticModel::CrossSectionPerVolume(), G4DNAELSEPAElasticModel::CrossSectionPerVolume(), G4DNABrownianTransportation::Diffusion(), G4InitXscPAI::G4InitXscPAI(), G4PAIxSection::G4PAIxSection(), G4StrawTubeXTRadiator::G4StrawTubeXTRadiator(), G4VXTRenergyLoss::G4VXTRenergyLoss(), G4IonICRU73Data::GetDEDX(), 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(), G4IonICRU73Data::Initialise(), G4GoudsmitSaundersonTable::InitSCPCorrection(), G4Scintillation::PostStepDoIt(), G4OpWLS::PostStepDoIt(), G4OpWLS2::PostStepDoIt(), G4Cerenkov::PostStepGetPhysicalInteractionLength(), G4DNASecondOrderReaction::PostStepGetPhysicalInteractionLength(), G4HadronicProcess::PostStepGetPhysicalInteractionLength(), G4DNAMolecularMaterial::RecordMolecularMaterial(), G4VEmAdjointModel::SelectCSMatrix(), G4PixeCrossSectionHandler::SelectRandomAtom(), G4DNAMolecularMaterial::SetMolecularConfiguration(), G4EnergyLossForExtrapolator::TrueStepLength(), and G4EmSaturation::VisibleEnergyDeposition().

◆ GetIonisation()

G4IonisParamMat * G4Material::GetIonisation ( ) const
inline

Definition at line 221 of file G4Material.hh.

221{return fIonisation;}

Referenced by G4EmCorrections::Bethe(), G4hImpactIonisation::BuildPhysicsTable(), G4MuBetheBlochModel::ComputeDEDXPerVolume(), G4BetheBlochModel::ComputeDEDXPerVolume(), G4MollerBhabhaModel::ComputeDEDXPerVolume(), G4AtimaEnergyLossModel::ComputeDEDXPerVolume(), G4DensityEffectCalculator::ComputeDensityCorrection(), G4UrbanAdjointMscModel::ComputeTruePathLengthLimit(), G4GoudsmitSaundersonMscModel::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(), G4BraggModel::MinEnergyCut(), G4LindhardSorensenIonModel::MinEnergyCut(), G4CoulombScattering::MinPrimaryEnergy(), G4hImpactIonisation::PrintInfoDefinition(), G4UniversalFluctuation::SampleFluctuations(), G4UrbanFluctuation::SampleGlandz(), 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 691 of file G4Material.cc.

692{
693 // search the material by its name
694 for(auto& j : theMaterialTable)
695 {
696 if(j->GetName() == materialName)
697 {
698 return j;
699 }
700 }
701
702 // the material does not exist in the table
703 if (warn) {
704 G4cout << "G4Material::GetMaterial() WARNING: The material: "
705 << materialName
706 << " does not exist in the table. Return NULL pointer."
707 << G4endl;
708 }
709 return nullptr;
710}

Referenced by G4DNABrownianTransportation::BuildPhysicsTable(), G4LossTableBuilder::BuildTableForModel(), G4ProductionCutsTable::CheckMaterialInfo(), G4DNAELSEPAElasticModel::CrossSectionPerVolume(), G4DNADummyModel::CrossSectionPerVolume(), G4DNAMolecularDissociation::DecayIt(), G4EmCalculator::FindMaterial(), G4GDMLReadMaterials::GetMaterial(), G4DNAChampionElasticModel::Initialise(), G4DNACPA100ElasticModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4DNAMeltonAttachmentModel::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4TDNAOneStepThermalizationModel< MODEL >::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), G4DNARuddIonisationModel::Initialise(), G4DNASancheExcitationModel::Initialise(), G4DNAScreenedRutherfordElasticModel::Initialise(), G4DNATransformElectronModel::Initialise(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4DNAUeharaScreenedRutherfordElasticModel::Initialise(), G4LivermorePhotoElectricModel::Initialise(), G4DNABornExcitationModel1::Initialise(), G4DNABornExcitationModel2::Initialise(), G4DNABornIonisationModel1::Initialise(), G4DNABornIonisationModel2::Initialise(), G4DNACPA100ExcitationModel::Initialise(), G4DNACPA100IonisationModel::Initialise(), G4DNAEmfietzoglouExcitationModel::Initialise(), G4DNAEmfietzoglouIonisationModel::Initialise(), G4DNARelativisticIonisationModel::Initialise(), G4DNARPWBAExcitationModel::Initialise(), G4DNARPWBAIonisationModel::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 714 of file G4Material.cc.

715{
716 // search the material by its name
717 for(auto mat : theMaterialTable)
718 {
719 if(1 == mat->GetNumberOfElements() && z == mat->GetZ() &&
720 a == mat->GetA() && dens == mat->GetDensity())
721 {
722 return mat;
723 }
724 }
725 return nullptr;
726}

◆ GetMaterial() [3/3]

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

Definition at line 730 of file G4Material.cc.

731{
732 // search the material by its name
733 for(auto mat : theMaterialTable)
734 {
735 if(nComp == mat->GetNumberOfElements() && dens == mat->GetDensity())
736 {
737 return mat;
738 }
739 }
740 return nullptr;
741}

◆ GetMaterialPropertiesTable()

◆ GetMaterialTable()

G4MaterialTable * G4Material::GetMaterialTable ( )
static

Definition at line 677 of file G4Material.cc.

678{
679 return &theMaterialTable;
680}

Referenced by G4VCrossSectionHandler::ActiveElements(), G4AdjointCSManager::BuildCrossSectionMatrices(), G4CrossSectionDataStore::BuildPhysicsTable(), G4ParticleHPThermalScatteringData::BuildPhysicsTable(), G4NeutronGeneralProcess::BuildPhysicsTable(), G4VLEPTSModel::BuildPhysicsTable(), G4Cerenkov::BuildPhysicsTable(), G4Scintillation::BuildPhysicsTable(), G4OpRayleigh::BuildPhysicsTable(), G4OpWLS::BuildPhysicsTable(), G4OpWLS2::BuildPhysicsTable(), G4VXTRenergyLoss::ComputeGasPhotoAbsCof(), G4PAIxSection::ComputeLowEnergyCof(), G4StrawTubeXTRadiator::ComputeMediumPhotoAbsCof(), G4VXTRenergyLoss::ComputePlatePhotoAbsCof(), G4EmSaturation::DumpBirksCoefficients(), G4ElectronIonPair::DumpMeanEnergyPerIonPair(), G4HadXSHelper::FillPeaksStructure(), G4HadXSHelper::FindCrossSectionMax(), G4NistMaterialBuilder::FindMaterial(), G4PAIxSection::G4PAIxSection(), G4SandiaTable::G4SandiaTable(), G4DNAMolecularMaterial::GetDensityTableFor(), G4VXTRenergyLoss::GetGasCompton(), G4NistManager::GetMaterial(), G4DNAMolecularMaterial::GetNumMolPerVolTableFor(), G4VXTRenergyLoss::GetPlateCompton(), G4TablesForExtrapolator::Initialisation(), G4ICRU90StoppingData::Initialise(), G4ASTARStopping::Initialise(), G4IonICRU73Data::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(), G4NeutronGeneralProcess::PreparePhysicsTable(), G4NistManager::PrintG4Material(), G4ProductionCutsTable::StoreMaterialInfo(), G4GDMLRead::StripNames(), and G4NistManager::~G4NistManager().

◆ GetName()

const G4String & G4Material::GetName ( ) const
inline

Definition at line 172 of file G4Material.hh.

172{return fName;}

Referenced by AddMaterial(), G4GMocrenFileSceneHandler::AddSolid(), G4VtkSceneHandler::AddSolid(), G4ErrorEnergyLoss::AlongStepDoIt(), G4VContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4VContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4ParticleHPInelastic::ApplyYourself(), G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousProcess::AtRestGetPhysicalInteractionLength(), G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestProcess::AtRestGetPhysicalInteractionLength(), G4VRestProcess::AtRestGetPhysicalInteractionLength(), G4EmCorrections::BarkasCorrection(), G4eIonisationCrossSectionHandler::BuildCrossSectionsForMaterials(), G4ParticleHPThermalScatteringData::BuildPhysicsTable(), G4GammaGeneralProcess::BuildPhysicsTable(), G4MicroElecSurface::BuildPhysicsTable(), G4NeutronGeneralProcess::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(), 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(), 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(), G4PenelopeOscillatorManager::GetNumberOfZAtomsPerMolecule(), G4PenelopeOscillatorManager::GetOscillatorCompton(), G4PenelopeOscillatorManager::GetOscillatorIonisation(), G4PenelopeOscillatorManager::GetOscillatorTableCompton(), G4PenelopeOscillatorManager::GetOscillatorTableIonisation(), G4PenelopeOscillatorManager::GetPlasmaEnergySquared(), G4EmCalculator::GetRangeFromRestricteDEDX(), G4PenelopeOscillatorManager::GetTotalA(), G4PenelopeOscillatorManager::GetTotalZ(), G4EmCorrections::HighOrderCorrections(), G4ICRU90StoppingData::Initialise(), G4ASTARStopping::Initialise(), G4IonICRU73Data::Initialise(), G4PSTARStopping::Initialise(), G4LEPTSElasticModel::Initialise(), G4PAIModel::Initialise(), G4PAIPhotModel::Initialise(), G4MicroElecElasticModel_new::Initialise(), G4MicroElecInelasticModel_new::Initialise(), G4PenelopeRayleighModelMI::Initialise(), G4EmModelManager::Initialise(), G4DNAELSEPAElasticModel::Initialise(), G4LatticeManager::LoadLattice(), G4GDMLWriteMaterials::MaterialWrite(), G4DNASecondOrderReaction::PostStepDoIt(), G4NeutrinoElectronProcess::PostStepDoIt(), G4MicroElecSurface::PostStepDoIt(), G4VXTRenergyLoss::PostStepDoIt(), G4ElNeutrinoNucleusProcess::PostStepDoIt(), G4MuNeutrinoNucleusProcess::PostStepDoIt(), G4TauNeutrinoNucleusProcess::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(), G4ExtendedMaterial::RegisterExtension(), G4PropagatorInField::ReportLoopingParticle(), G4TransportationLogger::ReportLoopingTrack(), G4ASCIITreeSceneHandler::RequestPrimitives(), G4ExtendedMaterial::RetrieveExtension(), G4PenelopeBremsstrahlungAngular::SampleDirection(), G4VLEPTSModel::SampleEnergyLoss(), G4PenelopeBremsstrahlungFS::SampleGammaEnergy(), G4DNAELSEPAElasticModel::SampleSecondaries(), G4LivermoreComptonModel::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(), and G4GDMLWriteStructure::TraverseVolumeTree().

◆ GetNuclearInterLength()

G4double G4Material::GetNuclearInterLength ( ) const
inline

Definition at line 218 of file G4Material.hh.

218{return fNuclInterLen;}

Referenced by G4MSSteppingAction::UserSteppingAction().

◆ GetNumberOfElements()

size_t G4Material::GetNumberOfElements ( ) const
inline

Definition at line 181 of file G4Material.hh.

181{return fNumberOfElements;}

Referenced by G4VCrossSectionHandler::ActiveElements(), AddMaterial(), G4AdjointPhotoElectricModel::AdjointCrossSection(), G4VAtomDeexcitation::AlongStepDeexcitation(), G4FissLib::ApplyYourself(), G4ParticleHPCapture::ApplyYourself(), G4ParticleHPFission::ApplyYourself(), G4ParticleHPInelastic::ApplyYourself(), G4ParticleHPThermalScattering::ApplyYourself(), G4ParticleHPElastic::ApplyYourself(), G4eIonisationCrossSectionHandler::BuildCrossSectionsForMaterials(), G4CrossSectionHandler::BuildCrossSectionsForMaterials(), G4CrossSectionDataStore::BuildPhysicsTable(), G4ParticleHPThermalScatteringData::BuildPhysicsTable(), 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(), G4DNADiracRMatrixExcitationModel::CrossSectionPerVolume(), G4DNAQuinnPlasmonExcitationModel::CrossSectionPerVolume(), G4DNARelativisticIonisationModel::CrossSectionPerVolume(), G4DNAELSEPAElasticModel::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(), G4IonICRU73Data::Initialise(), G4BoldyshevTripletModel::Initialise(), G4JAEAElasticScatteringModel::Initialise(), G4JAEAPolarizedElasticScatteringModel::Initialise(), G4LivermoreGammaConversion5DModel::Initialise(), G4LivermoreNuclearGammaConversionModel::Initialise(), G4LivermorePolarizedComptonModel::Initialise(), G4LivermorePolarizedGammaConversionModel::Initialise(), G4LowEPComptonModel::Initialise(), G4LowEPPolarizedComptonModel::Initialise(), G4PenelopeGammaConversionModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4PenelopeRayleighModel::Initialise(), G4PenelopeRayleighModelMI::Initialise(), G4eDPWACoulombScatteringModel::Initialise(), G4WentzelVIModel::Initialise(), G4DNAQuinnPlasmonExcitationModel::Initialise(), G4DNARelativisticIonisationModel::Initialise(), G4DNAELSEPAElasticModel::Initialise(), G4HadronXSDataTable::Initialise(), G4VEmModel::InitialiseForMaterial(), G4QAOLowEnergyLoss::IsInCharge(), G4GDMLWriteMaterials::MaterialWrite(), G4eCoulombScatteringModel::MinPrimaryEnergy(), G4hCoulombScatteringModel::MinPrimaryEnergy(), G4NeutronGeneralProcess::PostStepDoIt(), G4VLEPTSModel::ReadParam(), G4EmUtility::SampleRandomElement(), G4WentzelVIModel::SampleScattering(), G4AdjointPhotoElectricModel::SampleSecondaries(), G4DNAELSEPAElasticModel::SampleSecondaries(), G4PenelopeRayleighModel::SampleSecondaries(), G4PenelopeRayleighModelMI::SampleSecondaries(), G4CrossSectionDataStore::SampleZandA(), G4VEmModel::SelectRandomAtom(), G4PixeCrossSectionHandler::SelectRandomAtom(), G4VCrossSectionHandler::SelectRandomAtom(), G4VCrossSectionHandler::SelectRandomElement(), G4ElementSelector::SelectZandA(), G4hICRU49He::StoppingPower(), G4hICRU49p::StoppingPower(), G4hZiegler1985p::StoppingPower(), G4VCrossSectionHandler::ValueForMaterial(), and G4PixeCrossSectionHandler::ValueForMaterial().

◆ GetNumberOfMaterials()

◆ GetPressure()

◆ GetRadlen()

◆ GetSandiaTable()

◆ GetState()

◆ GetTemperature()

G4double G4Material::GetTemperature ( ) const
inline

Definition at line 177 of file G4Material.hh.

177{return fTemp;}

Referenced by G4ParticleHPChannelList::ApplyYourself(), G4FissLib::ApplyYourself(), G4LENDCapture::ApplyYourself(), G4LENDElastic::ApplyYourself(), G4LENDFission::ApplyYourself(), G4LENDInelastic::ApplyYourself(), G4LENDModel::ApplyYourself(), G4ParticleHPCapture::ApplyYourself(), G4ParticleHPFission::ApplyYourself(), G4ParticleHPInelastic::ApplyYourself(), G4ParticleHPThermalScattering::ApplyYourself(), G4ParticleHPElastic::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

◆ GetVecNbOfAtomsPerVolume()

◆ GetZ()

◆ IsExtended()

G4bool G4Material::IsExtended ( ) const
virtual

Reimplemented in G4ExtendedMaterial.

Definition at line 842 of file G4Material.cc.

843{
844 return false;
845}

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

652{
653 if(!IsLocked()) { fChemicalFormula = chF; }
654}

◆ SetFreeElectronDensity()

void G4Material::SetFreeElectronDensity ( G4double  val)

Definition at line 658 of file G4Material.cc.

659{
660 if(val >= 0. && !IsLocked()) { fFreeElecDensity = val; }
661}

◆ SetMaterialPropertiesTable()

void G4Material::SetMaterialPropertiesTable ( G4MaterialPropertiesTable anMPT)

Definition at line 849 of file G4Material.cc.

850{
851 if(fMaterialPropertiesTable != anMPT && !IsLocked()) {
852 delete fMaterialPropertiesTable;
853 fMaterialPropertiesTable = anMPT;
854 }
855}

Referenced by G4GDMLReadMaterials::PropertyRead().

◆ SetName()

void G4Material::SetName ( const G4String name)
inline

Definition at line 284 of file G4Material.hh.

284{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 818 of file G4Material.cc.

819{
820 flux << &material;
821 return flux;
822}

◆ operator<< [2/3]

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

Definition at line 773 of file G4Material.cc.

774{
775 std::ios::fmtflags mode = flux.flags();
776 flux.setf(std::ios::fixed,std::ios::floatfield);
777 G4long prec = flux.precision(3);
778
779 flux
780 << " Material: " << std::setw(8) << material->fName
781 << " " << material->fChemicalFormula << " "
782 << " density: " << std::setw(6) << std::setprecision(3)
783 << G4BestUnit(material->fDensity,"Volumic Mass")
784 << " RadL: " << std::setw(7) << std::setprecision(3)
785 << G4BestUnit(material->fRadlen,"Length")
786 << " Nucl.Int.Length: " << std::setw(7) << std::setprecision(3)
787 << G4BestUnit(material->fNuclInterLen,"Length")
788 << "\n" << std::setw(30)
789 << " Imean: " << std::setw(7) << std::setprecision(3)
790 << G4BestUnit(material->GetIonisation()->GetMeanExcitationEnergy(),"Energy")
791 << " temperature: " << std::setw(6) << std::setprecision(2)
792 << (material->fTemp)/CLHEP::kelvin << " K"
793 << " pressure: " << std::setw(6) << std::setprecision(2)
794 << (material->fPressure)/CLHEP::atmosphere << " atm" << "\n";
795
796 for (G4int i=0; i<material->fNumberOfElements; i++) {
797 flux
798 << "\n ---> " << (*(material->theElementVector))[i]
799 << "\n ElmMassFraction: "
800 << std::setw(6)<< std::setprecision(2)
801 << (material->fMassFractionVector[i])/perCent << " %"
802 << " ElmAbundance " << std::setw(6)<< std::setprecision(2)
803 << 100*(material->fVecNbOfAtomsPerVolume[i])
804 /(material->fTotNbOfAtomsPerVolume)
805 << " % \n";
806 }
807 flux.precision(prec);
808 flux.setf(mode,std::ios::floatfield);
809
810 if(material->IsExtended())
811 { static_cast<const G4ExtendedMaterial*>(material)->Print(flux); }
812
813 return flux;
814}
#define G4BestUnit(a, b)
long G4long
Definition: G4Types.hh:87
G4double GetMeanExcitationEnergy() const
virtual G4bool IsExtended() const
Definition: G4Material.cc:842
G4IonisParamMat * GetIonisation() const
Definition: G4Material.hh:221

◆ operator<< [3/3]

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

Definition at line 826 of file G4Material.cc.

827{
828 //Dump info for all known materials
829 flux << "\n***** Table : Nb of materials = " << MaterialTable.size()
830 << " *****\n" << G4endl;
831
832 for(auto i : MaterialTable)
833 {
834 flux << i << G4endl << G4endl;
835 }
836
837 return flux;
838}

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