27#ifndef G4NistMaterialBuilder_h
28#define G4NistMaterialBuilder_h 1
93 const std::vector<G4String>& elm,
94 const std::vector<G4int>& nbAtoms,
99 G4double pressure = CLHEP::STP_Pressure);
104 const std::vector<G4String>& elm,
105 const std::vector<G4double>& weight,
110 G4double pressure = CLHEP::STP_Pressure);
123 const std::vector<G4String>& elm,
124 const std::vector<G4int>& nbAtoms,
127 G4double pressure = CLHEP::STP_Pressure);
162 void NistSimpleMaterials();
163 void NistCompoundMaterials();
164 void NistCompoundMaterials2();
165 void HepAndNuclearMaterials();
166 void SpaceMaterials();
167 void BioChemicalMaterials();
188 void DumpElm(
G4int)
const;
189 void DumpMix(
G4int)
const;
204 std::vector<G4String> names;
205 std::vector<G4String> chFormulas;
207 std::vector<G4double> densities;
208 std::vector<G4double> ionPotentials;
209 std::vector<G4State> states;
210 std::vector<G4double> fractions;
211 std::vector<G4bool> atomCount;
212 std::vector<G4int> components;
213 std::vector<G4int> indexes;
214 std::vector<G4int> elements;
215 std::vector<G4int> matIndex;
216 std::vector<G4bool> STP;
218 std::vector<G4int> idxGas;
219 std::vector<G4double> gasTemperature;
220 std::vector<G4double> gasPressure;
222#ifdef G4MULTITHREADED
223 static G4Mutex nistMaterialMutex;
228inline const std::vector<G4String>&
237 return (index >= 0 && index < nMaterials) ? ionPotentials[index] : 10.0*index;
243 return (index >= 0 && index < nMaterials) ? densities[index] : 0.0;
250 size_t nmat = theMaterialTable->size();
252 for(
size_t i=0; i<nmat; ++i) {
253 if(name == ((*theMaterialTable)[i])->GetName()) {
254 ptr = (*theMaterialTable)[i];
264 return (Z>0 && Z<nElementary) ?
FindMaterial(names[Z]) :
nullptr;
std::vector< G4Material * > G4MaterialTable
static G4MaterialTable * GetMaterialTable()
G4double GetMeanIonisationEnergy(G4int index) const
void ListMaterials(const G4String &) const
void ListNistCompoundMaterials() const
void ListNistSimpleMaterials() const
void SetVerbose(G4int val)
void ListHepMaterials() const
const std::vector< G4String > & GetMaterialNames() const
G4double GetNominalDensity(G4int index) const
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=true)
G4Material * FindSimpleMaterial(G4int Z) const
void ListSpaceMaterials() const
G4Material * FindOrBuildSimpleMaterial(G4int Z, G4bool warning)
G4Material * FindMaterial(const G4String &name) const
G4Material * ConstructNewGasMaterial(const G4String &name, const G4String &nameDB, G4double temp, G4double pres, G4bool isotopes=true)
void ListBioChemicalMaterials() const
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)
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)