20#ifndef ROOT_GM_MATERIAL_FACTORY_H
21#define ROOT_GM_MATERIAL_FACTORY_H
46 const std::string& name,
int z,
int n,
double a = 0.);
49 const std::string& name,
const std::string& symbol,
double z,
double a);
58 double density,
VGM::IElement* element,
double radlen,
double intlen);
61 double density,
VGM::IElement* element,
double radlen,
double intlen,
71 double temperature,
double pressure);
80 double temperature,
double pressure);
97 bool CompareIsotopes(
const TGeoElement* tgeoElement,
101 void ImportIsotopes(TGeoElement* element);
103 TGeoMaterial* material, std::vector<VGM::IElement*>& elements);
104 void ImportMaterial(TGeoMaterial* material);
105 void ImportMedium(TGeoMedium* medium);
108 static const double fgkTolerance;
The abstract base class to material factory.
VGM material factory for Root.
virtual VGM::IMaterial * CreateMaterial(const std::string &name, double density, VGM::IElement *element, double radlen, double intlen)
Create a material.
virtual VGM::IElement * CreateElement(const std::string &name, const std::string &symbol, double z, double a)
Create a chemical element.
virtual bool Import()
Import native materials.
virtual VGM::IIsotope * CreateIsotope(const std::string &name, int z, int n, double a=0.)
Create a chemical isotope.
virtual ~MaterialFactory()
virtual VGM::IMedium * CreateMedium(const std::string &name, int mediumId, VGM::IMaterial *material, int nofParameters, double *parameters)
Create a tracking medium.
The VGM interface to elements.
The VGM interface to elements.
The VGM interface to materials.
The VGM interface to tracking medium.
VGM implementation for Root.
std::vector< double > RelAbundanceVector
std::vector< int > AtomCountVector
std::vector< double > MassFractionVector
std::vector< IElement * > ElementVector
std::vector< IIsotope * > IsotopeVector