20#ifndef VGM_I_MATERIAL_H
21#define VGM_I_MATERIAL_H
51 virtual std::string
Name()
const = 0;
std::ostream & operator<<(std::ostream &out, const VGM::IMaterial &material)
The VGM interface to elements.
The VGM interface to materials.
virtual double Pressure() const =0
Return the density in atmosphere.
virtual IElement * Element(int iel) const =0
Return the i-th element constituing this material.
virtual double NuclearInterLength() const =0
Return the nuclear interaction length in mm.
virtual double AtomCount(int iel) const =0
Return the atom count of the i-th element constituing this material.
virtual double Density() const =0
Return the density in g/cm3.
virtual double Temperature() const =0
Return the temperature in kelvins.
virtual std::string Name() const =0
Return the name of this element.
virtual double RadiationLength() const =0
Return the radiation length in mm.
virtual MaterialState State() const =0
Return the material state.
virtual double MassFraction(int iel) const =0
Return the mass fraction of the i-th element constituing this material.
virtual int NofElements() const =0
Return the number of elements constituing this material.
std::vector< int > AtomCountVector
std::vector< double > MassFractionVector
std::vector< IElement * > ElementVector
@ kLiquid
Liquid material.
@ kUndefined
Undefined material state.