90#define G4MATERIAL_HH 1
114static const G4double NTP_Temperature = 293.15 * CLHEP::kelvin;
126 G4double pressure = CLHEP::STP_Pressure);
135 G4double pressure = CLHEP::STP_Pressure);
143 G4double pressure = CLHEP::STP_Pressure);
221 inline const std::map<G4Material*, G4double>&
GetMatComponents()
const {
return fMatComponents; }
235 return fMaterialPropertiesTable;
239 inline std::size_t
GetIndex()
const {
return fIndexInTable; }
269 void InitializePointers();
272 void ComputeDerivedQuantities();
275 void ComputeRadiationLength();
278 void ComputeNuclearInterLength();
281 void CopyPointersOfBaseMaterial();
317 std::size_t fIndexInTable;
318 G4int fNumberOfElements;
326 std::vector<G4int>* fAtoms =
nullptr;
327 std::vector<G4double>* fElmFrac =
nullptr;
328 std::vector<const G4Element*>* fElm =
nullptr;
331 std::map<G4Material*, G4double> fMatComponents;
std::vector< const G4Element * > G4ElementVector
std::vector< G4Material * > G4MaterialTable
G4double GetPressure() const
void SetName(const G4String &name)
G4double GetDensity() const
G4bool operator!=(const G4Material &) const =delete
void ComputeDensityEffectOnFly(G4bool val)
const G4String & GetChemicalFormula() const
const std::map< G4Material *, G4double > & GetMatComponents() const
const G4ElementVector * GetElementVector() const
const G4Material * GetBaseMaterial() const
G4MaterialPropertiesTable * GetMaterialPropertiesTable() const
const G4Material & operator=(const G4Material &)=delete
G4double GetTotNbOfAtomsPerVolume() const
G4double GetTemperature() const
const G4Element * GetElement(G4int iel) const
virtual G4bool IsExtended() const
const G4double * GetFractionVector() const
G4double GetTotNbOfElectPerVolume() const
G4IonisParamMat * GetIonisation() const
G4double GetFreeElectronDensity() const
void AddElement(G4Element *elm, G4int nAtoms)
const G4double * GetAtomicNumDensityVector() const
void SetChemicalFormula(const G4String &chF)
const G4int * GetAtomsVector() const
G4SandiaTable * GetSandiaTable() const
G4bool operator==(const G4Material &) const =delete
void AddElementByNumberOfAtoms(const G4Element *elm, G4int nAtoms)
friend std::ostream & operator<<(std::ostream &, const G4Material *)
static std::size_t GetNumberOfMaterials()
G4double GetElectronDensity() const
G4double GetRadlen() const
G4double GetMassOfMolecule() const
void AddElement(G4Element *elm, G4double frac)
const G4double * GetVecNbOfAtomsPerVolume() const
G4Material(const G4String &name, G4double z, G4double a, G4double density, G4State state=kStateUndefined, G4double temp=NTP_Temperature, G4double pressure=CLHEP::STP_Pressure)
std::size_t GetIndex() const
static G4MaterialTable * GetMaterialTable()
void AddMaterial(G4Material *material, G4double fraction)
std::size_t GetNumberOfElements() const
const G4String & GetName() const
void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT)
void SetFreeElectronDensity(G4double val)
void AddElementByMassFraction(const G4Element *elm, G4double fraction)
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
G4Material(const G4Material &)=delete
G4double GetNuclearInterLength() const