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

G4Material * BuildMaterialWithNewDensity (const G4String &name, const G4String &basename, G4double density=0.0, G4double temp=NTP_Temperature, G4double pres=CLHEP::STP_Pressure)
 
G4Material * ConstructNewGasMaterial (const G4String &name, const G4String &nameNist, G4double temp, G4double pres, G4bool isotopes=true)
 
G4Material * 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)
 
G4Material * 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)
 
G4Material * 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)
 
G4Element * FindElement (G4int Z) const
 
G4Material * FindMaterial (const G4String &name) const
 
G4Element * FindOrBuildElement (const G4String &symb, G4bool isotopes=true)
 
G4Element * FindOrBuildElement (G4int Z, G4bool isotopes=true)
 
G4Material * FindOrBuildMaterial (const G4String &name, G4bool isotopes=true, G4bool warning=false)
 
G4Material * FindOrBuildSimpleMaterial (G4int Z, G4bool warning=false)
 
G4Material * FindSimpleMaterial (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
 
G4Element * GetElement (size_t index) const
 
G4ICRU90StoppingData * GetICRU90StoppingData ()
 
G4double GetIsotopeAbundance (G4int Z, G4int N) const
 
G4double GetIsotopeMass (G4int Z, G4int N) const
 
G4double GetLOGAMU (G4int Z) const
 
G4double GetLOGZ (G4int Z) const
 
G4Material * GetMaterial (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 G4NistManager * Instance ()
 

Private Member Functions

 G4NistManager ()
 

Private Attributes

std::vector< G4Element * > elements
 
G4NistElementBuilder * elmBuilder
 
G4ICRU90StoppingData * fICRU90
 
G4Pow * g4pow
 
G4double LOGAZ [101]
 
G4NistMaterialBuilder * matBuilder
 
std::vector< G4Material * > materials
 
G4NistMessenger * messenger
 
size_t nElements
 
size_t nMaterials
 
G4double POWERA27 [101]
 
G4int verbose
 

Static Private Attributes

static G4NistManager * instance = 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: