5 #ifndef GEOMODELKERNEL_GEOMATERIAL_H 6 #define GEOMODELKERNEL_GEOMATERIAL_H 29 #include "GeoModelKernel/RCBase.h" 30 #include "GeoModelKernel/GeoElement.h" 36 GeoMaterial (
const std::string &Name,
double Density);
39 void add (
const GeoElement* element,
double fraction = 1.0);
44 void add (
const GeoMaterial* material,
double fraction);
51 double getDeDxConstant ()
const;
54 double getDeDxI0 ()
const;
57 double getDeDxMin ()
const;
61 double getRadLength ()
const;
65 double getIntLength ()
const;
67 unsigned int getNumElements ()
const;
70 const GeoElement* getElement (
unsigned int i)
const;
73 double getFraction (
int i)
const;
76 const std::string& getName ()
const;
79 const double& getDensity ()
const;
83 const unsigned int& getID ()
const;
98 std::vector<double> m_fraction;
108 static unsigned int s_lastID;
120 static const double s_ionizationPotential[93];
124 std::vector<const GeoElement *> m_element;
127 inline const std::string& GeoMaterial::getName ()
const 132 inline const double& GeoMaterial::getDensity ()
const 137 inline const unsigned int& GeoMaterial::getID ()
const This class represents chemical elements. Elements are allocated on the heap and deleted automatically...
This is a base class for objects whose memory is managed through reference counting. Reference-counted objects can only be created using operator new, the cannot be created on the stack.
This class represents materials. A material is a collection of elements. In addition it has a density...