#include <DetDesc/Element.h>
Inheritance diagram for Element:
Public Types | |
typedef std::pair< double, SmartRef< Isotope > > | Entry |
typedef std::vector< Entry > | Isotopes |
typedef SmartRefVector< TabulatedProperty > | Tables |
Public Member Functions | |
Element (const std::string &name="", const std::string &symb="??", const double a=0, const double z=0, const double i=0, const double density=0, const double rl=0, const double al=0, const double temp=Gaudi::Units::STP_Temperature, const double press=Gaudi::Units::STP_Pressure, const eState s=stateUndefined) | |
virtual | ~Element () |
virtual const CLID & | clID () const |
const std::string & | symbol () const |
return symbol of element | |
void | setSymbol (const std::string &S) |
int | nOfIsotopes () const |
Number of isotopes in the material. | |
const SmartRef< Isotope > & | isotope (unsigned int i) const |
Return an isotope by index. | |
SmartRef< Isotope > & | isotope (unsigned int i) |
const Isotopes & | isotopes () const |
return vector of isotopes | |
Isotopes & | isotopes () |
double | isotopeFraction (unsigned int i) const |
Return a fraction of an isotope by index. | |
void | addIsotope (const SmartRef< Isotope > &iPtr, const double Fract, const bool comp=false) |
Add an isotope into this material After addition of the last isotope user can call this method with "comp" argument set to"true" and compute() method will do its job automatically, otherwise the user must call compute() method explicitly. | |
void | addIsotope (const Entry &iPtr, const bool comp=false) |
void | removeIsotope (const SmartRef< Isotope > &iPtr, const bool comp=false) |
Remove an isotope from the vector of isotopes compute() method invocation is done as described above. | |
virtual double | A () const |
Atomic mass [g/mole]. | |
virtual void | setA (const double value) |
virtual double | Z () const |
Atomic number. | |
virtual void | setZ (const double value) |
virtual double | I () const |
Mean excitation energy. | |
virtual void | setI (const double value) |
virtual double | C () const |
Parameters for density effect correction. | |
virtual void | setC (const double value) |
virtual double | a () const |
virtual void | seta (const double value) |
virtual double | m () const |
virtual void | setm (const double value) |
virtual double | X0 () const |
virtual void | setX0 (const double value) |
virtual double | X1 () const |
virtual void | setX1 (const double value) |
virtual double | N () const |
Number of nucleons. | |
double | coulombFactor () const |
Coulomb factor. | |
double | tsaiFactor () const |
Tsai factor. | |
void | compute () |
Compute quantities after addition of all isotopes. | |
void | ComputeCoulombFactor () |
Compute Coulomb factor. | |
void | ComputeLradTsaiFactor () |
Comput Tsai factor. | |
void | ComputeInteractionLength () |
compute interaction length | |
void | ComputeRadiationLength () |
compute radiation length | |
void | ComputeMeanExcitationEnergy () |
compute mean excitation energy | |
void | ComputeDensityEffect () |
compute parameters for density correction | |
virtual std::ostream & | fillStream (std::ostream &s) const |
Fill the output stream (ASCII). | |
virtual MsgStream & | fillStream (MsgStream &s) const |
Fill the output stream (ASCII). | |
bool | operator== (const Material *right) const |
Equality operators, NOTE! These operator work with pointers. | |
bool | operator!= (const Material *right) const |
virtual const std::string & | name () const |
Material name accessors. | |
virtual void | setName (const std::string &value) |
virtual double | density () const |
Material density accessors [g/cm3]. | |
virtual void | setDensity (const double value) |
virtual double | temperature () const |
Material temperature, by default is STP [K]. | |
virtual void | setTemperature (const double value) |
virtual double | pressure () const |
Material pressure, by default is STP [atm]. | |
virtual void | setPressure (const double value) |
virtual eState | state () const |
Material state, by default is stateUndefined. | |
virtual void | setState (const eState value) |
virtual double | radiationLength () const |
Material radiation length [cm]. | |
virtual void | setRadiationLength (const double value) |
virtual double | absorptionLength () const |
Material absorption length [cm]. | |
virtual void | setAbsorptionLength (const double value) |
Tables & | tabulatedProperties () |
some tabulated properties | |
const Tables & | tabulatedProperties () const |
void | setRegistry (IRegistry *pRegistry) |
IRegistry * | registry () const |
LinkManager * | linkMgr () const |
unsigned char | version () const |
void | setVersion (unsigned char vsn) |
unsigned long | refCount () const |
virtual unsigned long | addRef () |
virtual unsigned long | release () |
virtual StreamBuffer & | serialize (StreamBuffer &s) |
virtual StreamBuffer & | serialize (StreamBuffer &s) const |
Static Public Member Functions | |
static const CLID & | classID () |
Private Attributes | |
double | m_Aeff |
Effective atomic mass. | |
double | m_Zeff |
Effective atomic number. | |
double | m_Ieff |
double | m_C |
double | m_a |
double | m_m |
double | m_X0 |
double | m_X1 |
Isotopes | m_isotopes |
Vector of isotopes this material is composed of. | |
double | m_coulomb |
Coulomb factor. | |
double | m_tsai |
Tsai's factor. | |
std::string | m_symb |
symbol | |
Friends | |
friend std::ostream & | operator<< (std::ostream &s, const DataObject &obj) |
An Element material component can defined by composition of Isotopes. The composition is done only by fraction of the mass.
Vanya Belyaev
Definition at line 23 of file Element.h.
typedef std::pair<double,SmartRef<Isotope> > Element::Entry |
typedef std::vector<Entry> Element::Isotopes |
typedef SmartRefVector<TabulatedProperty> Material::Tables [inherited] |
Definition at line 37 of file Material.h.
Element::Element | ( | const std::string & | name = "" , |
|
const std::string & | symb = "??" , |
|||
const double | a = 0 , |
|||
const double | z = 0 , |
|||
const double | i = 0 , |
|||
const double | density = 0 , |
|||
const double | rl = 0 , |
|||
const double | al = 0 , |
|||
const double | temp = Gaudi::Units::STP_Temperature , |
|||
const double | press = Gaudi::Units::STP_Pressure , |
|||
const eState | s = stateUndefined | |||
) |
virtual Element::~Element | ( | ) | [virtual] |
virtual const CLID& Element::clID | ( | ) | const [inline, virtual] |
Reimplemented from DataObject.
Definition at line 46 of file Element.h.
00046 { return Element::classID() ; };
static const CLID& Element::classID | ( | ) | [inline, static] |
Reimplemented from DataObject.
Definition at line 47 of file Element.h.
00047 { return CLID_Element ; };
const std::string& Element::symbol | ( | ) | const [inline] |
void Element::setSymbol | ( | const std::string & | S | ) | [inline] |
int Element::nOfIsotopes | ( | ) | const |
Number of isotopes in the material.
const Isotopes& Element::isotopes | ( | ) | const |
return vector of isotopes
Isotopes& Element::isotopes | ( | ) |
double Element::isotopeFraction | ( | unsigned int | i | ) | const |
Return a fraction of an isotope by index.
void Element::addIsotope | ( | const Entry & | iPtr, | |
const bool | comp = false | |||
) |
Remove an isotope from the vector of isotopes compute() method invocation is done as described above.
virtual double Element::A | ( | ) | const [inline, virtual] |
virtual void Element::setA | ( | const double | value | ) | [inline, virtual] |
Implements Material.
virtual double Element::Z | ( | ) | const [inline, virtual] |
virtual void Element::setZ | ( | const double | value | ) | [inline, virtual] |
Implements Material.
virtual double Element::I | ( | ) | const [inline, virtual] |
virtual void Element::setI | ( | const double | value | ) | [inline, virtual] |
Implements Material.
virtual double Element::C | ( | ) | const [inline, virtual] |
virtual void Element::setC | ( | const double | value | ) | [inline, virtual] |
Implements Material.
virtual double Element::a | ( | ) | const [inline, virtual] |
Implements Material.
virtual void Element::seta | ( | const double | value | ) | [inline, virtual] |
Implements Material.
virtual double Element::m | ( | ) | const [inline, virtual] |
Implements Material.
virtual void Element::setm | ( | const double | value | ) | [inline, virtual] |
Implements Material.
virtual double Element::X0 | ( | ) | const [inline, virtual] |
Implements Material.
virtual void Element::setX0 | ( | const double | value | ) | [inline, virtual] |
Implements Material.
virtual double Element::X1 | ( | ) | const [inline, virtual] |
Implements Material.
virtual void Element::setX1 | ( | const double | value | ) | [inline, virtual] |
Implements Material.
virtual double Element::N | ( | ) | const [inline, virtual] |
double Element::coulombFactor | ( | ) | const [inline] |
Coulomb factor.
double Element::tsaiFactor | ( | ) | const [inline] |
Tsai factor.
void Element::compute | ( | ) |
Compute quantities after addition of all isotopes.
void Element::ComputeCoulombFactor | ( | ) |
Compute Coulomb factor.
void Element::ComputeLradTsaiFactor | ( | ) |
Comput Tsai factor.
void Element::ComputeInteractionLength | ( | ) |
compute interaction length
void Element::ComputeRadiationLength | ( | ) |
compute radiation length
void Element::ComputeMeanExcitationEnergy | ( | ) |
compute mean excitation energy
void Element::ComputeDensityEffect | ( | ) |
compute parameters for density correction
virtual std::ostream& Element::fillStream | ( | std::ostream & | s | ) | const [virtual] |
bool Material::operator== | ( | const Material * | right | ) | const [inherited] |
Equality operators, NOTE! These operator work with pointers.
bool Material::operator!= | ( | const Material * | right | ) | const [inherited] |
virtual const std::string& Material::name | ( | ) | const [virtual, inherited] |
virtual void Material::setName | ( | const std::string & | value | ) | [virtual, inherited] |
virtual double Material::density | ( | ) | const [virtual, inherited] |
Material density accessors [g/cm3].
virtual void Material::setDensity | ( | const double | value | ) | [virtual, inherited] |
virtual double Material::temperature | ( | ) | const [virtual, inherited] |
Material temperature, by default is STP [K].
virtual void Material::setTemperature | ( | const double | value | ) | [virtual, inherited] |
virtual double Material::pressure | ( | ) | const [virtual, inherited] |
Material pressure, by default is STP [atm].
virtual void Material::setPressure | ( | const double | value | ) | [virtual, inherited] |
virtual eState Material::state | ( | ) | const [virtual, inherited] |
Material state, by default is stateUndefined.
virtual void Material::setState | ( | const eState | value | ) | [virtual, inherited] |
virtual double Material::radiationLength | ( | ) | const [virtual, inherited] |
Material radiation length [cm].
virtual void Material::setRadiationLength | ( | const double | value | ) | [virtual, inherited] |
virtual double Material::absorptionLength | ( | ) | const [virtual, inherited] |
Material absorption length [cm].
virtual void Material::setAbsorptionLength | ( | const double | value | ) | [virtual, inherited] |
Tables& Material::tabulatedProperties | ( | ) | [inline, inherited] |
some tabulated properties
const Tables& Material::tabulatedProperties | ( | ) | const [inline, inherited] |
double Element::m_Aeff [private] |
double Element::m_Zeff [private] |
double Element::m_Ieff [private] |
double Element::m_C [private] |
double Element::m_a [private] |
double Element::m_m [private] |
double Element::m_X0 [private] |
double Element::m_X1 [private] |
Isotopes Element::m_isotopes [private] |
double Element::m_coulomb [private] |
double Element::m_tsai [private] |
std::string Element::m_symb [private] |