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

#include <G4NistManager.hh>

Public Member Functions

G4MaterialBuildMaterialWithNewDensity (const G4String &name, const G4String &basename, G4double density=0.0, G4double temp=NTP_Temperature, G4double pres=CLHEP::STP_Pressure)
 
G4MaterialConstructNewGasMaterial (const G4String &name, const G4String &nameNist, G4double temp, G4double pres, G4bool isotopes=true)
 
G4MaterialConstructNewIdealGasMaterial (const G4String &name, const std::vector< G4String > &elm, const std::vector< G4int > &nbAtoms, G4bool isotopes=true, G4double temp=NTP_Temperature, G4double pressure=CLHEP::STP_Pressure)
 
G4MaterialConstructNewMaterial (const G4String &name, const std::vector< G4String > &elm, const std::vector< G4double > &weight, G4double dens, G4bool isotopes=true, G4State state=kStateSolid, G4double temp=NTP_Temperature, G4double pressure=CLHEP::STP_Pressure)
 
G4MaterialConstructNewMaterial (const G4String &name, const std::vector< G4String > &elm, const std::vector< G4int > &nbAtoms, G4double dens, G4bool isotopes=true, G4State state=kStateSolid, G4double temp=NTP_Temperature, G4double pressure=CLHEP::STP_Pressure)
 
G4ElementFindElement (G4int Z) const
 
G4MaterialFindMaterial (const G4String &name) const
 
G4ElementFindOrBuildElement (const G4String &symb, G4bool isotopes=true)
 
G4ElementFindOrBuildElement (G4int Z, G4bool isotopes=true)
 
G4MaterialFindOrBuildMaterial (const G4String &name, G4bool isotopes=true, G4bool warning=false)
 
G4MaterialFindOrBuildSimpleMaterial (G4int Z, G4bool warning=false)
 
G4MaterialFindSimpleMaterial (G4int Z) const
 
G4double GetA27 (G4int Z) const
 
G4double GetAtomicMass (G4int Z, G4int N) const
 
G4double GetAtomicMassAmu (const G4String &symb) const
 
G4double GetAtomicMassAmu (G4int Z) const
 
G4ElementGetElement (size_t index) const
 
G4ICRU90StoppingDataGetICRU90StoppingData ()
 
G4double GetIsotopeAbundance (G4int Z, G4int N) const
 
G4double GetIsotopeMass (G4int Z, G4int N) const
 
G4double GetLOGAMU (G4int Z) const
 
G4double GetLOGZ (G4int Z) const
 
G4MaterialGetMaterial (size_t index) const
 
G4double GetMeanIonisationEnergy (G4int Z) const
 
const std::vector< G4String > & GetNistElementNames () const
 
G4int GetNistFirstIsotopeN (G4int Z) const
 
const std::vector< G4String > & GetNistMaterialNames () const
 
G4double GetNominalDensity (G4int Z) const
 
size_t GetNumberOfElements () const
 
size_t GetNumberOfMaterials () const
 
G4int GetNumberOfNistIsotopes (G4int Z) const
 
G4double GetTotalElectronBindingEnergy (G4int Z) const
 
G4int GetVerbose () const
 
G4int GetZ (const G4String &symb) const
 
G4double GetZ13 (G4double Z) const
 
G4double GetZ13 (G4int Z) const
 
void ListMaterials (const G4String &) const
 
void PrintElement (const G4String &) const
 
void PrintElement (G4int Z) const
 
void PrintG4Element (const G4String &) const
 
void PrintG4Material (const G4String &) const
 
void SetDensityEffectCalculatorFlag (const G4String &, G4bool)
 
void SetDensityEffectCalculatorFlag (G4Material *, G4bool)
 
void SetVerbose (G4int)
 
 ~G4NistManager ()
 

Static Public Member Functions

static G4NistManagerInstance ()
 

Private Member Functions

 G4NistManager ()
 

Private Attributes

std::vector< G4Element * > elements
 
G4NistElementBuilderelmBuilder
 
G4ICRU90StoppingDatafICRU90
 
G4Powg4pow
 
G4double LOGAZ [101]
 
G4NistMaterialBuildermatBuilder
 
std::vector< G4Material * > materials
 
G4NistMessengermessenger
 
size_t nElements
 
size_t nMaterials
 
G4double POWERA27 [101]
 
G4int verbose
 

Static Private Attributes

static G4NistManagerinstance = nullptr
 

Detailed Description

Definition at line 83 of file G4NistManager.hh.

Constructor & Destructor Documentation

◆ ~G4NistManager()

G4NistManager::~G4NistManager ( )

Definition at line 89 of file G4NistManager.cc.

90{
91 // G4cout << "NistManager: start material destruction" << G4endl;
92 const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
93 size_t nmat = theMaterialTable->size();
94 size_t i;
95 for(i=0; i<nmat; i++) {
96 if((*theMaterialTable)[i]) { delete (*theMaterialTable)[i]; }
97 }
98 // G4cout << "NistManager: start element destruction" << G4endl;
99 const G4ElementTable* theElementTable = G4Element::GetElementTable();
100 size_t nelm = theElementTable->size();
101 for(i=0; i<nelm; i++) {
102 if((*theElementTable)[i]) { delete (*theElementTable)[i]; }
103 }
104 // G4cout << "NistManager: start isotope destruction" << G4endl;
105 const G4IsotopeTable* theIsotopeTable = G4Isotope::GetIsotopeTable();
106 size_t niso = theIsotopeTable->size();
107 for(i=0; i<niso; i++) {
108 if((*theIsotopeTable)[i]) { delete (*theIsotopeTable)[i]; }
109 }
110 // G4cout << "NistManager: end isotope destruction" << G4endl;
111 delete messenger;
112 delete matBuilder;
113 delete elmBuilder;
114 delete fICRU90;
115 // G4cout << "NistManager: end destruction" << G4endl;
116}
std::vector< G4Element * > G4ElementTable
std::vector< G4Isotope * > G4IsotopeTable
Definition: G4Isotope.hh:66
std::vector< G4Material * > G4MaterialTable
static G4ElementTable * GetElementTable()
Definition: G4Element.cc:397
static const G4IsotopeTable * GetIsotopeTable()
Definition: G4Isotope.cc:181
static G4MaterialTable * GetMaterialTable()
Definition: G4Material.cc:672
G4NistMessenger * messenger
G4ICRU90StoppingData * fICRU90
G4NistMaterialBuilder * matBuilder
G4NistElementBuilder * elmBuilder

References elmBuilder, fICRU90, G4Element::GetElementTable(), G4Isotope::GetIsotopeTable(), G4Material::GetMaterialTable(), matBuilder, and messenger.

◆ G4NistManager()

G4NistManager::G4NistManager ( )
explicitprivate

Definition at line 212 of file G4NistManager.cc.

213{
214 nElements = 0;
215 nMaterials = 0;
216 verbose = 0;
217
220
221 messenger = new G4NistMessenger(this);
223
224 // compute frequently used values for mean atomic numbers
225 for(G4int j=1; j<101; ++j) {
227 POWERA27[j] = std::pow(A,0.27);
228 LOGAZ[j] = std::log(A);
229 }
230 POWERA27[0] = 1.0;
231 LOGAZ[0] = 0.0;
232 fICRU90 = nullptr;
233}
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
const G4double A[17]
G4double GetAtomicMassAmu(const G4String &symb) const
G4double POWERA27[101]
G4double LOGAZ[101]
static G4Pow * GetInstance()
Definition: G4Pow.cc:41

References A, elmBuilder, fICRU90, g4pow, G4NistElementBuilder::GetAtomicMassAmu(), G4Pow::GetInstance(), LOGAZ, matBuilder, messenger, nElements, nMaterials, POWERA27, and verbose.

Member Function Documentation

◆ BuildMaterialWithNewDensity()

G4Material * G4NistManager::BuildMaterialWithNewDensity ( const G4String name,
const G4String basename,
G4double  density = 0.0,
G4double  temp = NTP_Temperature,
G4double  pres = CLHEP::STP_Pressure 
)

Definition at line 121 of file G4NistManager.cc.

126{
128 if(bmat) {
129 G4cout << "G4NistManager::BuildMaterialWithNewDensity ERROR: " << G4endl;
130 G4cout << " New material <" << name << "> cannot be built because material"
131 << " with the same name already exists." << G4endl;
132 G4Exception("G4NistManager::BuildMaterialWithNewDensity()", "mat101",
133 FatalException, "Wrong material name");
134 return 0;
135 }
136 bmat = FindOrBuildMaterial(basename);
137 if(!bmat) {
138 G4cout << "G4NistManager::BuildMaterialWithNewDensity ERROR: " << G4endl;
139 G4cout << " New material <" << name << "> cannot be built because "
140 << G4endl;
141 G4cout << " base material <" << basename << "> does not exist." << G4endl;
142 G4Exception("G4NistManager::BuildMaterialWithNewDensity()", "mat102",
143 FatalException, "Wrong material name");
144 return 0;
145 }
146 G4double dens = density;
147 G4double temp = temperature;
148 G4double pres = pressure;
149 if(dens == 0.0) {
150 dens = bmat->GetDensity();
151 temp = bmat->GetTemperature();
152 pres = bmat->GetPressure();
153 }
154 G4Material* mat = new G4Material(name, dens, bmat, bmat->GetState(),
155 temp, pres);
156 return mat;
157}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
G4double GetPressure() const
Definition: G4Material.hh:179
G4double GetDensity() const
Definition: G4Material.hh:176
G4State GetState() const
Definition: G4Material.hh:177
G4double GetTemperature() const
Definition: G4Material.hh:178
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
const char * name(G4int ptype)

References FatalException, FindOrBuildMaterial(), G4cout, G4endl, G4Exception(), G4Material::GetDensity(), G4Material::GetPressure(), G4Material::GetState(), G4Material::GetTemperature(), and G4InuclParticleNames::name().

◆ ConstructNewGasMaterial()

G4Material * G4NistManager::ConstructNewGasMaterial ( const G4String name,
const G4String nameNist,
G4double  temp,
G4double  pres,
G4bool  isotopes = true 
)
inline

Definition at line 547 of file G4NistManager.hh.

552{
553 return matBuilder->ConstructNewGasMaterial(name,nameNist,temp,pres);
554}
G4Material * ConstructNewGasMaterial(const G4String &name, const G4String &nameDB, G4double temp, G4double pres)

References G4NistMaterialBuilder::ConstructNewGasMaterial(), matBuilder, and G4InuclParticleNames::name().

Referenced by export_G4NistManager().

◆ ConstructNewIdealGasMaterial()

G4Material * G4NistManager::ConstructNewIdealGasMaterial ( const G4String name,
const std::vector< G4String > &  elm,
const std::vector< G4int > &  nbAtoms,
G4bool  isotopes = true,
G4double  temp = NTP_Temperature,
G4double  pressure = CLHEP::STP_Pressure 
)
inline

Definition at line 558 of file G4NistManager.hh.

565{
566 return
568}
G4Material * ConstructNewIdealGasMaterial(const G4String &name, const std::vector< G4String > &elm, const std::vector< G4int > &nbAtoms, G4double temp=NTP_Temperature, G4double pressure=CLHEP::STP_Pressure)
static double P[]

References G4NistMaterialBuilder::ConstructNewIdealGasMaterial(), matBuilder, G4InuclParticleNames::name(), and P.

◆ ConstructNewMaterial() [1/2]

G4Material * G4NistManager::ConstructNewMaterial ( const G4String name,
const std::vector< G4String > &  elm,
const std::vector< G4double > &  weight,
G4double  dens,
G4bool  isotopes = true,
G4State  state = kStateSolid,
G4double  temp = NTP_Temperature,
G4double  pressure = CLHEP::STP_Pressure 
)
inline

Definition at line 532 of file G4NistManager.hh.

541{
542 return matBuilder->ConstructNewMaterial(name,elm,w,dens,state,T,P);
543}
G4Material * ConstructNewMaterial(const G4String &name, const std::vector< G4String > &elm, const std::vector< G4int > &nbAtoms, G4double dens, G4State state=kStateSolid, G4double temp=NTP_Temperature, G4double pressure=CLHEP::STP_Pressure)

References G4NistMaterialBuilder::ConstructNewMaterial(), matBuilder, G4InuclParticleNames::name(), and P.

◆ ConstructNewMaterial() [2/2]

G4Material * G4NistManager::ConstructNewMaterial ( const G4String name,
const std::vector< G4String > &  elm,
const std::vector< G4int > &  nbAtoms,
G4double  dens,
G4bool  isotopes = true,
G4State  state = kStateSolid,
G4double  temp = NTP_Temperature,
G4double  pressure = CLHEP::STP_Pressure 
)
inline

Definition at line 515 of file G4NistManager.hh.

525{
526 return
527 matBuilder->ConstructNewMaterial(name,elm,nbAtoms,dens,state,T,P);
528}

References G4NistMaterialBuilder::ConstructNewMaterial(), matBuilder, G4InuclParticleNames::name(), and P.

◆ FindElement()

G4Element * G4NistManager::FindElement ( G4int  Z) const
inline

Definition at line 338 of file G4NistManager.hh.

339{
340 return elmBuilder->FindElement(Z);
341}
const G4int Z[17]
G4Element * FindElement(G4int Z) const

References elmBuilder, G4NistElementBuilder::FindElement(), and Z.

◆ FindMaterial()

G4Material * G4NistManager::FindMaterial ( const G4String name) const
inline

Definition at line 483 of file G4NistManager.hh.

484{
485 return matBuilder->FindMaterial(name);
486}
G4Material * FindMaterial(const G4String &name) const

References G4NistMaterialBuilder::FindMaterial(), matBuilder, and G4InuclParticleNames::name().

Referenced by SetDensityEffectCalculatorFlag().

◆ FindOrBuildElement() [1/2]

G4Element * G4NistManager::FindOrBuildElement ( const G4String symb,
G4bool  isotopes = true 
)
inline

Definition at line 354 of file G4NistManager.hh.

356{
357 return elmBuilder->FindOrBuildElement(symb, isotopes);
358}
G4Element * FindOrBuildElement(G4int Z, G4bool buildIsotopes=true)

References elmBuilder, and G4NistElementBuilder::FindOrBuildElement().

◆ FindOrBuildElement() [2/2]

G4Element * G4NistManager::FindOrBuildElement ( G4int  Z,
G4bool  isotopes = true 
)
inline

◆ FindOrBuildMaterial()

G4Material * G4NistManager::FindOrBuildMaterial ( const G4String name,
G4bool  isotopes = true,
G4bool  warning = false 
)
inline

◆ FindOrBuildSimpleMaterial()

G4Material * G4NistManager::FindOrBuildSimpleMaterial ( G4int  Z,
G4bool  warning = false 
)
inline

Definition at line 508 of file G4NistManager.hh.

509{
510 return matBuilder->FindOrBuildSimpleMaterial(Z, warning);
511}
G4Material * FindOrBuildSimpleMaterial(G4int Z, G4bool warning)

References G4NistMaterialBuilder::FindOrBuildSimpleMaterial(), matBuilder, and Z.

Referenced by G4EmCalculator::CheckMaterial().

◆ FindSimpleMaterial()

G4Material * G4NistManager::FindSimpleMaterial ( G4int  Z) const
inline

Definition at line 500 of file G4NistManager.hh.

501{
503}
G4Material * FindSimpleMaterial(G4int Z) const

References G4NistMaterialBuilder::FindSimpleMaterial(), matBuilder, and Z.

◆ GetA27()

G4double G4NistManager::GetA27 ( G4int  Z) const
inline

◆ GetAtomicMass()

G4double G4NistManager::GetAtomicMass ( G4int  Z,
G4int  N 
) const
inline

Definition at line 399 of file G4NistManager.hh.

400{
401 return elmBuilder->GetAtomicMass(Z, N);
402}
G4double GetAtomicMass(G4int Z, G4int N) const

References elmBuilder, G4NistElementBuilder::GetAtomicMass(), and Z.

Referenced by G4Isotope::G4Isotope().

◆ GetAtomicMassAmu() [1/2]

G4double G4NistManager::GetAtomicMassAmu ( const G4String symb) const
inline

Definition at line 376 of file G4NistManager.hh.

377{
378 return elmBuilder->GetAtomicMassAmu(symb);
379}

References elmBuilder, and G4NistElementBuilder::GetAtomicMassAmu().

Referenced by G4KokoulinMuonNuclearXS::BuildCrossSectionTable(), G4BGGNucleonElasticXS::BuildPhysicsTable(), G4BGGPionElasticXS::BuildPhysicsTable(), G4BGGPionInelasticXS::BuildPhysicsTable(), G4UPiNuclearCrossSection::BuildPhysicsTable(), G4BGGNucleonInelasticXS::BuildPhysicsTable(), G4ecpssrBaseKxsModel::CalculateCrossSection(), G4ecpssrBaseLixsModel::CalculateL1CrossSection(), G4ecpssrBaseLixsModel::CalculateL2CrossSection(), G4ecpssrBaseLixsModel::CalculateL3CrossSection(), G4IonCoulombScatteringModel::ComputeCrossSectionPerAtom(), G4hCoulombScatteringModel::ComputeCrossSectionPerAtom(), G4WentzelVIRelModel::ComputeCrossSectionPerAtom(), G4AtimaEnergyLossModel::ComputeDEDXPerVolume(), G4WentzelVIRelModel::ComputeEffectiveMass(), G4AtimaFluctuations::Dispersion(), G4ElasticHadrNucleusHE::FillData(), G4EMDissociationCrossSection::GetElementCrossSection(), G4PhotoNuclearCrossSection::GetElementCrossSection(), G4ElectroNuclearCrossSection::GetElementCrossSection(), G4CrossSectionElastic::GetElementCrossSection(), G4CrossSectionInelastic::GetElementCrossSection(), G4DiffuseElastic::Initialise(), G4DiffuseElasticV2::Initialise(), G4NuclNuclDiffuseElastic::Initialise(), G4EmSaturation::InitialiseBirksCoefficient(), G4DiffuseElastic::InitialiseOnFly(), G4DiffuseElasticV2::InitialiseOnFly(), G4NuclNuclDiffuseElastic::InitialiseOnFly(), G4ComponentBarNucleonNucleusXsc::LoadData(), G4eCoulombScatteringModel::MinPrimaryEnergy(), G4hCoulombScatteringModel::MinPrimaryEnergy(), G4WentzelOKandVIxSection::SampleSingleScattering(), G4ScreeningMottCrossSection::SetupKinematic(), and G4WentzelOKandVIxSection::SetupTarget().

◆ GetAtomicMassAmu() [2/2]

G4double G4NistManager::GetAtomicMassAmu ( G4int  Z) const
inline

Definition at line 383 of file G4NistManager.hh.

384{
386}

References elmBuilder, G4NistElementBuilder::GetAtomicMassAmu(), and Z.

◆ GetElement()

G4Element * G4NistManager::GetElement ( size_t  index) const
inline

Definition at line 329 of file G4NistManager.hh.

330{
331 const G4ElementTable* theElementTable = G4Element::GetElementTable();
332 return (index < theElementTable->size()) ? (*theElementTable)[index] : nullptr;
333}

References G4Element::GetElementTable().

Referenced by export_G4NistManager().

◆ GetICRU90StoppingData()

G4ICRU90StoppingData * G4NistManager::GetICRU90StoppingData ( )

Definition at line 237 of file G4NistManager.cc.

238{
239 if (!fICRU90) {
240#ifdef G4MULTITHREADED
241 G4MUTEXLOCK(&nistManagerMutex);
242 if (!fICRU90) {
243#endif
245#ifdef G4MULTITHREADED
246 }
247 G4MUTEXUNLOCK(&nistManagerMutex);
248#endif
249 }
250 return fICRU90;
251}
#define G4MUTEXLOCK(mutex)
Definition: G4Threading.hh:251
#define G4MUTEXUNLOCK(mutex)
Definition: G4Threading.hh:254

References fICRU90, G4MUTEXLOCK, and G4MUTEXUNLOCK.

Referenced by G4BetheBlochModel::Initialise(), G4BraggIonModel::Initialise(), and G4BraggModel::Initialise().

◆ GetIsotopeAbundance()

G4double G4NistManager::GetIsotopeAbundance ( G4int  Z,
G4int  N 
) const
inline

◆ GetIsotopeMass()

G4double G4NistManager::GetIsotopeMass ( G4int  Z,
G4int  N 
) const
inline

Definition at line 391 of file G4NistManager.hh.

392{
393 return elmBuilder->GetIsotopeMass(Z, N);
394}
G4double GetIsotopeMass(G4int Z, G4int N) const

References elmBuilder, G4NistElementBuilder::GetIsotopeMass(), and Z.

Referenced by export_G4NistManager().

◆ GetLOGAMU()

G4double G4NistManager::GetLOGAMU ( G4int  Z) const
inline

Definition at line 615 of file G4NistManager.hh.

616{
617 return (0 <= Z && Z < 101) ? LOGAZ[Z] : 0.0;
618}

References LOGAZ, and Z.

◆ GetLOGZ()

G4double G4NistManager::GetLOGZ ( G4int  Z) const
inline

Definition at line 608 of file G4NistManager.hh.

609{
610 return g4pow->logZ(Z);
611}
G4double logZ(G4int Z) const
Definition: G4Pow.hh:137

References g4pow, G4Pow::logZ(), and Z.

Referenced by G4MuPairProductionModel::MaxSecondaryEnergyForElement(), G4MuPairProductionModel::SampleSecondaries(), and G4eBremParametrizedModel::SetCurrentElement().

◆ GetMaterial()

G4Material * G4NistManager::GetMaterial ( size_t  index) const
inline

Definition at line 467 of file G4NistManager.hh.

468{
469 const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
470 return (index < theMaterialTable->size()) ? (*theMaterialTable)[index] : nullptr;
471}

References G4Material::GetMaterialTable().

Referenced by export_G4NistManager().

◆ GetMeanIonisationEnergy()

G4double G4NistManager::GetMeanIonisationEnergy ( G4int  Z) const
inline

Definition at line 446 of file G4NistManager.hh.

447{
449}
G4double GetMeanIonisationEnergy(G4int index) const

References G4NistMaterialBuilder::GetMeanIonisationEnergy(), matBuilder, and Z.

Referenced by G4IonisParamElm::G4IonisParamElm().

◆ GetNistElementNames()

const std::vector< G4String > & G4NistManager::GetNistElementNames ( ) const
inline

Definition at line 439 of file G4NistManager.hh.

440{
441 return elmBuilder->GetElementNames();
442}
const std::vector< G4String > & GetElementNames() const

References elmBuilder, and G4NistElementBuilder::GetElementNames().

Referenced by G4Element::AddNaturalIsotopes().

◆ GetNistFirstIsotopeN()

G4int G4NistManager::GetNistFirstIsotopeN ( G4int  Z) const
inline

Definition at line 423 of file G4NistManager.hh.

424{
426}
G4int GetNistFirstIsotopeN(G4int Z) const

References elmBuilder, G4NistElementBuilder::GetNistFirstIsotopeN(), and Z.

Referenced by G4Element::AddNaturalIsotopes().

◆ GetNistMaterialNames()

const std::vector< G4String > & G4NistManager::GetNistMaterialNames ( ) const
inline

Definition at line 580 of file G4NistManager.hh.

581{
583}
const std::vector< G4String > & GetMaterialNames() const

References G4NistMaterialBuilder::GetMaterialNames(), and matBuilder.

◆ GetNominalDensity()

G4double G4NistManager::GetNominalDensity ( G4int  Z) const
inline

Definition at line 453 of file G4NistManager.hh.

454{
456}
G4double GetNominalDensity(G4int index) const

References G4NistMaterialBuilder::GetNominalDensity(), matBuilder, and Z.

Referenced by G4IonisParamMat::ComputeDensityEffectParameters().

◆ GetNumberOfElements()

size_t G4NistManager::GetNumberOfElements ( ) const
inline

Definition at line 362 of file G4NistManager.hh.

363{
364 return nElements;
365}

References nElements.

Referenced by export_G4NistManager().

◆ GetNumberOfMaterials()

size_t G4NistManager::GetNumberOfMaterials ( ) const
inline

Definition at line 322 of file G4NistManager.hh.

323{
324 return nMaterials;
325}

References nMaterials.

Referenced by export_G4NistManager().

◆ GetNumberOfNistIsotopes()

G4int G4NistManager::GetNumberOfNistIsotopes ( G4int  Z) const
inline

Definition at line 431 of file G4NistManager.hh.

432{
434}
G4int GetNumberOfNistIsotopes(G4int Z) const

References elmBuilder, G4NistElementBuilder::GetNumberOfNistIsotopes(), and Z.

Referenced by G4Element::AddNaturalIsotopes().

◆ GetTotalElectronBindingEnergy()

G4double G4NistManager::GetTotalElectronBindingEnergy ( G4int  Z) const
inline

Definition at line 407 of file G4NistManager.hh.

408{
410}
G4double GetTotalElectronBindingEnergy(G4int Z) const

References elmBuilder, G4NistElementBuilder::GetTotalElectronBindingEnergy(), and Z.

◆ GetVerbose()

G4int G4NistManager::GetVerbose ( ) const
inline

Definition at line 475 of file G4NistManager.hh.

476{
477 return verbose;
478}

References verbose.

Referenced by export_G4NistManager().

◆ GetZ()

G4int G4NistManager::GetZ ( const G4String symb) const
inline

Definition at line 369 of file G4NistManager.hh.

370{
371 return elmBuilder->GetZ(symb);
372}
G4int GetZ(const G4String &symb) const

References elmBuilder, and G4NistElementBuilder::GetZ().

Referenced by export_G4NistManager().

◆ GetZ13() [1/2]

G4double G4NistManager::GetZ13 ( G4double  Z) const
inline

◆ GetZ13() [2/2]

G4double G4NistManager::GetZ13 ( G4int  Z) const
inline

Definition at line 594 of file G4NistManager.hh.

595{
596 return g4pow->Z13(Z);
597}
G4double Z13(G4int Z) const
Definition: G4Pow.hh:123

References g4pow, Z, and G4Pow::Z13().

◆ Instance()

G4NistManager * G4NistManager::Instance ( )
static

Definition at line 70 of file G4NistManager.cc.

71{
72 if (instance == nullptr) {
73#ifdef G4MULTITHREADED
74 G4MUTEXLOCK(&nistManagerMutex);
75 if (instance == nullptr) {
76#endif
77 static G4NistManager manager;
78 instance = &manager;
79#ifdef G4MULTITHREADED
80 }
81 G4MUTEXUNLOCK(&nistManagerMutex);
82#endif
83 }
84 return instance;
85}
static G4NistManager * instance

References G4MUTEXLOCK, G4MUTEXUNLOCK, and instance.

Referenced by G4Element::AddNaturalIsotopes(), G4KokoulinMuonNuclearXS::BuildCrossSectionTable(), G4BGGNucleonElasticXS::BuildPhysicsTable(), G4BGGPionElasticXS::BuildPhysicsTable(), G4BGGPionInelasticXS::BuildPhysicsTable(), G4UPiNuclearCrossSection::BuildPhysicsTable(), G4BGGNucleonInelasticXS::BuildPhysicsTable(), G4ecpssrBaseKxsModel::CalculateCrossSection(), G4ecpssrBaseLixsModel::CalculateL1CrossSection(), G4ecpssrBaseLixsModel::CalculateL2CrossSection(), G4ecpssrBaseLixsModel::CalculateL3CrossSection(), G4GammaConversionToMuons::ComputeCrossSectionPerAtom(), G4IonisParamMat::ComputeDensityEffectParameters(), Construct(), G4AdjointhIonisationModel::DefineProjectileProperty(), G4AdjointIonIonisationModel::DefineProjectileProperty(), G4AtimaFluctuations::Dispersion(), export_G4NistManager(), G4tgbMaterialMgr::FindOrBuildG4Element(), G4tgbMaterialMgr::FindOrBuildG4Material(), G4AtimaEnergyLossModel::G4AtimaEnergyLossModel(), G4BetheBlochModel::G4BetheBlochModel(), G4CrossSectionElastic::G4CrossSectionElastic(), G4CrossSectionInelastic::G4CrossSectionInelastic(), G4DensityEffectCalculator::G4DensityEffectCalculator(), G4DNABrownianTransportation::G4DNABrownianTransportation(), G4eBremParametrizedModel::G4eBremParametrizedModel(), G4eCoulombScatteringModel::G4eCoulombScatteringModel(), G4ElasticHadrNucleusHE::G4ElasticHadrNucleusHE(), G4ElectroNuclearCrossSection::G4ElectroNuclearCrossSection(), G4EmCalculator::G4EmCalculator(), G4EmParameters::G4EmParameters(), G4EmSaturation::G4EmSaturation(), G4eSingleCoulombScatteringModel::G4eSingleCoulombScatteringModel(), G4Evaporation::G4Evaporation(), G4ExcitationHandler::G4ExcitationHandler(), G4hCoulombScatteringModel::G4hCoulombScatteringModel(), G4IonCoulombCrossSection::G4IonCoulombCrossSection(), G4IonCoulombScatteringModel::G4IonCoulombScatteringModel(), G4IonisParamElm::G4IonisParamElm(), G4Isotope::G4Isotope(), G4LindhardSorensenIonModel::G4LindhardSorensenIonModel(), G4Material::G4Material(), G4MicroElecElasticModel::G4MicroElecElasticModel(), G4MicroElecInelasticModel::G4MicroElecInelasticModel(), G4MuBremsstrahlungModel::G4MuBremsstrahlungModel(), G4MuPairProductionModel::G4MuPairProductionModel(), G4PhotoNuclearCrossSection::G4PhotoNuclearCrossSection(), G4ScreeningMottCrossSection::G4ScreeningMottCrossSection(), G4WentzelOKandVIxSection::G4WentzelOKandVIxSection(), G4WentzelVIRelModel::G4WentzelVIRelModel(), G4GDMLReadMaterials::GetElement(), G4EMDissociationCrossSection::GetElementCrossSection(), G4IonsShenCrossSection::GetElementCrossSection(), G4GDMLReadMaterials::GetMaterial(), G4MuonMinusBoundDecay::GetMuonDecayRate(), G4NeutronElectronElXsc::Initialise(), G4DiffuseElastic::Initialise(), G4DiffuseElasticV2::Initialise(), G4NuclNuclDiffuseElastic::Initialise(), G4BraggIonModel::Initialise(), G4BraggModel::Initialise(), G4DiffuseElastic::InitialiseOnFly(), G4DiffuseElasticV2::InitialiseOnFly(), G4NuclNuclDiffuseElastic::InitialiseOnFly(), G4PhysListUtil::InitialiseParameters(), G4ComponentBarNucleonNucleusXsc::LoadData(), G4GammaConversionToMuons::PostStepDoIt(), G4ScoringProbe::SetMaterial(), DetectorConstruction::SetMaterial(), and G4IonisParamMat::SetMeanExcitationEnergy().

◆ ListMaterials()

void G4NistManager::ListMaterials ( const G4String list) const
inline

Definition at line 572 of file G4NistManager.hh.

573{
575}
void ListMaterials(const G4String &) const

References G4NistMaterialBuilder::ListMaterials(), and matBuilder.

Referenced by export_G4NistManager(), and G4NistMessenger::SetNewValue().

◆ PrintElement() [1/2]

void G4NistManager::PrintElement ( const G4String symbol) const

Definition at line 161 of file G4NistManager.cc.

162{
163 if (symbol == "all") { elmBuilder->PrintElement(0); }
164 else { elmBuilder->PrintElement(elmBuilder->GetZ(symbol)); }
165}
void PrintElement(G4int Z) const

References elmBuilder, G4NistElementBuilder::GetZ(), and G4NistElementBuilder::PrintElement().

◆ PrintElement() [2/2]

void G4NistManager::PrintElement ( G4int  Z) const
inline

Definition at line 460 of file G4NistManager.hh.

461{
463}

References elmBuilder, G4NistElementBuilder::PrintElement(), and Z.

Referenced by G4NistMessenger::SetNewValue().

◆ PrintG4Element()

void G4NistManager::PrintG4Element ( const G4String name) const

Definition at line 169 of file G4NistManager.cc.

170{
171 const G4ElementTable* theElementTable = G4Element::GetElementTable();
172 size_t nelm = theElementTable->size();
173 for(size_t i=0; i<nelm; i++) {
174 G4Element* elm = (*theElementTable)[i];
175 if ( name == elm->GetName() || "all" == name) {
176 G4cout << *elm << G4endl;
177 }
178 }
179}
const G4String & GetName() const
Definition: G4Element.hh:127

References G4cout, G4endl, G4Element::GetElementTable(), G4Element::GetName(), and G4InuclParticleNames::name().

Referenced by export_G4NistManager(), and G4NistMessenger::SetNewValue().

◆ PrintG4Material()

void G4NistManager::PrintG4Material ( const G4String name) const

Definition at line 183 of file G4NistManager.cc.

184{
185 const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
186 size_t nmat = theMaterialTable->size();
187 for(size_t i=0; i<nmat; i++) {
188 G4Material* mat = (*theMaterialTable)[i];
189 if ( name == mat->GetName() || "all" == name) {
190 G4cout << *mat << G4endl;
191 }
192 }
193}
const G4String & GetName() const
Definition: G4Material.hh:173

References G4cout, G4endl, G4Material::GetMaterialTable(), G4Material::GetName(), and G4InuclParticleNames::name().

Referenced by export_G4NistManager(), and G4NistMessenger::SetNewValue().

◆ SetDensityEffectCalculatorFlag() [1/2]

void G4NistManager::SetDensityEffectCalculatorFlag ( const G4String mname,
G4bool  val 
)

Definition at line 255 of file G4NistManager.cc.

257{
258#ifdef G4MULTITHREADED
259 G4MUTEXLOCK(&nistManagerMutex);
260#endif
261 if(mname == "all") {
262 for(auto mat : materials) {
264 }
265 } else {
266 G4Material* mat = FindMaterial(mname);
268 }
269#ifdef G4MULTITHREADED
270 G4MUTEXUNLOCK(&nistManagerMutex);
271#endif
272}
void SetDensityEffectCalculatorFlag(const G4String &, G4bool)
std::vector< G4Material * > materials
G4Material * FindMaterial(const G4String &name) const

References FindMaterial(), G4MUTEXLOCK, G4MUTEXUNLOCK, materials, and SetDensityEffectCalculatorFlag().

Referenced by SetDensityEffectCalculatorFlag(), and G4NistMessenger::SetNewValue().

◆ SetDensityEffectCalculatorFlag() [2/2]

void G4NistManager::SetDensityEffectCalculatorFlag ( G4Material mat,
G4bool  val 
)

Definition at line 276 of file G4NistManager.cc.

277{
278 if(mat) { mat->ComputeDensityEffectOnFly(val); }
279}
void ComputeDensityEffectOnFly(G4bool)
Definition: G4Material.cc:658

References G4Material::ComputeDensityEffectOnFly().

◆ SetVerbose()

void G4NistManager::SetVerbose ( G4int  val)

Definition at line 197 of file G4NistManager.cc.

198{
199#ifdef G4MULTITHREADED
200 G4MUTEXLOCK(&nistManagerMutex);
201#endif
202 verbose = val;
205#ifdef G4MULTITHREADED
206 G4MUTEXUNLOCK(&nistManagerMutex);
207#endif
208}

References elmBuilder, G4MUTEXLOCK, G4MUTEXUNLOCK, matBuilder, G4NistMaterialBuilder::SetVerbose(), G4NistElementBuilder::SetVerbose(), and verbose.

Referenced by export_G4NistManager(), and G4NistMessenger::SetNewValue().

Field Documentation

◆ elements

std::vector<G4Element*> G4NistManager::elements
private

Definition at line 298 of file G4NistManager.hh.

◆ elmBuilder

G4NistElementBuilder* G4NistManager::elmBuilder
private

◆ fICRU90

G4ICRU90StoppingData* G4NistManager::fICRU90
private

Definition at line 301 of file G4NistManager.hh.

Referenced by G4NistManager(), GetICRU90StoppingData(), and ~G4NistManager().

◆ g4pow

G4Pow* G4NistManager::g4pow
private

Definition at line 305 of file G4NistManager.hh.

Referenced by G4NistManager(), GetA27(), GetLOGZ(), and GetZ13().

◆ instance

G4NistManager * G4NistManager::instance = nullptr
staticprivate

Definition at line 296 of file G4NistManager.hh.

Referenced by Instance().

◆ LOGAZ

G4double G4NistManager::LOGAZ[101]
private

Definition at line 308 of file G4NistManager.hh.

Referenced by G4NistManager(), and GetLOGAMU().

◆ matBuilder

G4NistMaterialBuilder* G4NistManager::matBuilder
private

◆ materials

std::vector<G4Material*> G4NistManager::materials
private

Definition at line 299 of file G4NistManager.hh.

Referenced by SetDensityEffectCalculatorFlag().

◆ messenger

G4NistMessenger* G4NistManager::messenger
private

Definition at line 304 of file G4NistManager.hh.

Referenced by G4NistManager(), and ~G4NistManager().

◆ nElements

size_t G4NistManager::nElements
private

Definition at line 310 of file G4NistManager.hh.

Referenced by G4NistManager(), and GetNumberOfElements().

◆ nMaterials

size_t G4NistManager::nMaterials
private

Definition at line 311 of file G4NistManager.hh.

Referenced by G4NistManager(), and GetNumberOfMaterials().

◆ POWERA27

G4double G4NistManager::POWERA27[101]
private

Definition at line 307 of file G4NistManager.hh.

Referenced by G4NistManager(), and GetA27().

◆ verbose

G4int G4NistManager::verbose
private

Definition at line 312 of file G4NistManager.hh.

Referenced by G4NistManager(), GetVerbose(), and SetVerbose().


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