28 #ifndef G4NistMaterialBuilder_h
29 #define G4NistMaterialBuilder_h 1
94 const std::vector<G4String>& elm,
95 const std::vector<G4int>& nbAtoms,
105 const std::vector<G4String>& elm,
106 const std::vector<G4double>& weight,
124 const std::vector<G4String>& elm,
125 const std::vector<G4int>& nbAtoms,
163 void NistSimpleMaterials();
164 void NistCompoundMaterials();
165 void NistCompoundMaterials2();
166 void HepAndNuclearMaterials();
167 void SpaceMaterials();
168 void BioChemicalMaterials();
190 void DumpElm(
G4int)
const;
191 void DumpMix(
G4int)
const;
206 std::vector<G4String> names;
207 std::vector<G4String> chFormulas;
209 std::vector<G4double> densities;
210 std::vector<G4double> ionPotentials;
211 std::vector<G4State> states;
212 std::vector<G4double> fractions;
213 std::vector<G4bool> atomCount;
214 std::vector<G4int> components;
215 std::vector<G4int> indexes;
216 std::vector<G4int> elements;
217 std::vector<G4int> matIndex;
218 std::vector<G4bool> STP;
220 std::vector<G4int> idxGas;
221 std::vector<G4double> gasTemperature;
222 std::vector<G4double> gasPressure;
224 #ifdef G4MULTITHREADED
225 static G4Mutex nistMaterialMutex;
230 inline const std::vector<G4String>&
239 return (index >= 0 && index < nMaterials) ? ionPotentials[index] : 10.0*index;
245 return (index >= 0 && index < nMaterials) ? densities[index] : 0.0;
252 size_t nmat = theMaterialTable->size();
254 for(
size_t i=0; i<nmat; ++i) {
255 if(name == ((*theMaterialTable)[i])->GetName()) {
256 ptr = (*theMaterialTable)[i];
266 return (Z>0 && Z<nElementary) ?
FindMaterial(names[Z]) :
nullptr;
G4double GetMeanIonisationEnergy(G4int index) const
void ListBioChemicalMaterials() const
G4double GetNominalDensity(G4int index) const
static G4MaterialTable * GetMaterialTable()
std::vector< G4Material * > G4MaterialTable
static constexpr double 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)
void ListMaterials(const G4String &) const
void ListHepMaterials() const
G4Material * ConstructNewGasMaterial(const G4String &name, const G4String &nameDB, G4double temp, G4double pres, G4bool isotopes=true)
G4Material * FindMaterial(const G4String &name) const
G4NistMaterialBuilder(G4NistElementBuilder *, G4int verb=0)
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=true)
void ListNistCompoundMaterials() const
void ListNistSimpleMaterials() const
void SetVerbose(G4int val)
void ListSpaceMaterials() const
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)
static const G4double NTP_Temperature
G4Material * FindSimpleMaterial(G4int Z) const
const std::vector< G4String > & GetMaterialNames() const
G4Material * FindOrBuildSimpleMaterial(G4int Z, G4bool warning)