ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::Material Class Reference

#include <acts/blob/master/Core/include/Acts/Material/Material.hpp>

Public Types

enum  Param {
  eX0 = 0, eL0 = 1, eAr = 2, eZ = 3,
  eRho = 4
}
 Index of the parameters in the encoded parameters vector. More...
 

Public Member Functions

 Material ()=default
 Construct a vacuum representation.
 
constexpr Material (float X0_, float L0_, float Ar_, float Z_, float rho_)
 
 Material (const ActsVectorF< 5 > &parameters)
 Construct from an encoded parameters vector.
 
 Material (Material &&mat)=default
 
 Material (const Material &mat)=default
 
 ~Material ()=default
 
Materialoperator= (Material &&mat)=default
 
Materialoperator= (const Material &mat)=default
 
constexpr operator bool () const
 Check if the material is valid, i.e. it is not vacuum.
 
constexpr float X0 () const
 Return the radition length. Infinity in case of vacuum.
 
constexpr float L0 () const
 Return the nuclear interaction length. Infinity in case of vacuum.
 
constexpr float Ar () const
 Return the relative atomic mass.
 
constexpr float Z () const
 Return the atomic number.
 
constexpr float massDensity () const
 Return the mass density.
 
float molarElectronDensity () const
 
float meanExcitationEnergy () const
 Return the mean electron excitation energy.
 
ActsVectorF< 5 > classificationNumbers () const
 Encode the properties into a parameter vector.
 

Private Attributes

float m_x0 = std::numeric_limits<float>::infinity()
 
float m_l0 = std::numeric_limits<float>::infinity()
 
float m_ar = 0.0f
 
float m_z = 0.0f
 
float m_rho = 0.0f
 

Friends

constexpr bool operator== (const Material &lhs, const Material &rhs)
 
constexpr bool operator!= (const Material &lhs, const Material &rhs)
 

Detailed Description

Material description for interactions with matter.

The following parameters are used to specify the material and its interactions with traversing particles:

  • X0: radiation length (native length units)
  • L0: nuclear interaction length (native length units)
  • Ar: relative atomic mass (unitless number)
  • Z: atomic number (unitless number)
  • rho: mass density (native mass unit / (native length unit)³)

The parameters can be effective or average parameters when e.g. a mixture of materials is described.

Definition at line 31 of file Material.hpp.

View newest version in sPHENIX GitHub at line 31 of file Material.hpp

Member Enumeration Documentation

Index of the parameters in the encoded parameters vector.

Enumerator:
eX0 
eL0 
eAr 
eZ 
eRho 

Definition at line 34 of file Material.hpp.

View newest version in sPHENIX GitHub at line 34 of file Material.hpp

Constructor & Destructor Documentation

Acts::Material::Material ( )
default

Construct a vacuum representation.

constexpr Acts::Material::Material ( float  X0_,
float  L0_,
float  Ar_,
float  Z_,
float  rho_ 
)
inline

Construct from material parameters.

Parameters
X0_is the radiation length
L0_is the nuclear interaction length
Ar_is the relative atomic mass
Z_is the atomic number
rho_is the mass density

Definition at line 51 of file Material.hpp.

View newest version in sPHENIX GitHub at line 51 of file Material.hpp

Acts::Material::Material ( const ActsVectorF< 5 > &  parameters)

Construct from an encoded parameters vector.

Definition at line 16 of file Material.cpp.

View newest version in sPHENIX GitHub at line 16 of file Material.cpp

Acts::Material::Material ( Material &&  mat)
default
Acts::Material::Material ( const Material mat)
default
Acts::Material::~Material ( )
default

Member Function Documentation

constexpr float Acts::Material::Ar ( ) const
inline

Return the relative atomic mass.

Definition at line 70 of file Material.hpp.

View newest version in sPHENIX GitHub at line 70 of file Material.hpp

References m_ar.

Referenced by Acts::AccumulatedVolumeMaterial::accumulate(), Acts::AccumulatedMaterialProperties::accumulate(), Acts::Test::BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), makeSiClassificationNumbers(), and Acts::operator<<().

+ Here is the caller graph for this function:

Acts::ActsVectorF< 5 > Acts::Material::classificationNumbers ( ) const

Encode the properties into a parameter vector.

Definition at line 52 of file Material.cpp.

View newest version in sPHENIX GitHub at line 52 of file Material.cpp

References Acts::eZ, and Dataset::parameters.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and Acts::JsonGeometryConverter::jsonToVolumeMaterial().

+ Here is the caller graph for this function:

constexpr float Acts::Material::L0 ( ) const
inline

Return the nuclear interaction length. Infinity in case of vacuum.

Definition at line 68 of file Material.hpp.

View newest version in sPHENIX GitHub at line 68 of file Material.hpp

References m_l0.

Referenced by Acts::AccumulatedVolumeMaterial::accumulate(), Acts::Test::BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), makeSiClassificationNumbers(), and Acts::operator<<().

+ Here is the caller graph for this function:

constexpr float Acts::Material::massDensity ( ) const
inline

Return the mass density.

Definition at line 74 of file Material.hpp.

View newest version in sPHENIX GitHub at line 74 of file Material.hpp

References m_rho.

Referenced by Acts::AccumulatedVolumeMaterial::accumulate(), Acts::AccumulatedMaterialProperties::accumulate(), BOOST_AUTO_TEST_CASE(), Acts::Test::BOOST_AUTO_TEST_CASE(), makeSiClassificationNumbers(), and Acts::operator<<().

+ Here is the caller graph for this function:

float Acts::Material::meanExcitationEnergy ( ) const

Return the mean electron excitation energy.

Definition at line 45 of file Material.cpp.

View newest version in sPHENIX GitHub at line 45 of file Material.cpp

References Acts::units::_eV, and f.

Referenced by BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

float Acts::Material::molarElectronDensity ( ) const

Return the electron density in mol / (native length unit)³.

Use mol instead of the real number of electrons to avoid large numbers which could result in numerical instabilities somewhere else.

Definition at line 20 of file Material.cpp.

View newest version in sPHENIX GitHub at line 20 of file Material.cpp

Referenced by BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

constexpr Acts::Material::operator bool ( ) const
inline

Check if the material is valid, i.e. it is not vacuum.

Definition at line 63 of file Material.hpp.

View newest version in sPHENIX GitHub at line 63 of file Material.hpp

References m_ar.

Material& Acts::Material::operator= ( Material &&  mat)
default
Material& Acts::Material::operator= ( const Material mat)
default
constexpr float Acts::Material::X0 ( ) const
inline

Return the radition length. Infinity in case of vacuum.

Definition at line 66 of file Material.hpp.

View newest version in sPHENIX GitHub at line 66 of file Material.hpp

References m_x0.

Referenced by Acts::AccumulatedVolumeMaterial::accumulate(), Acts::Test::BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), makeSiClassificationNumbers(), and Acts::operator<<().

+ Here is the caller graph for this function:

constexpr float Acts::Material::Z ( ) const
inline

Return the atomic number.

Definition at line 72 of file Material.hpp.

View newest version in sPHENIX GitHub at line 72 of file Material.hpp

References m_z.

Referenced by Acts::AccumulatedVolumeMaterial::accumulate(), Acts::AccumulatedMaterialProperties::accumulate(), Acts::Test::BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), makeSiClassificationNumbers(), ActsFatras::detail::GaussianMixture::operator()(), ActsFatras::detail::GeneralMixture::operator()(), and Acts::operator<<().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

constexpr bool operator!= ( const Material lhs,
const Material rhs 
)
friend

Definition at line 98 of file Material.hpp.

View newest version in sPHENIX GitHub at line 98 of file Material.hpp

constexpr bool operator== ( const Material lhs,
const Material rhs 
)
friend

Definition at line 93 of file Material.hpp.

View newest version in sPHENIX GitHub at line 93 of file Material.hpp

Member Data Documentation

float Acts::Material::m_ar = 0.0f
private

Definition at line 89 of file Material.hpp.

View newest version in sPHENIX GitHub at line 89 of file Material.hpp

Referenced by Ar(), and operator bool().

float Acts::Material::m_l0 = std::numeric_limits<float>::infinity()
private

Definition at line 88 of file Material.hpp.

View newest version in sPHENIX GitHub at line 88 of file Material.hpp

Referenced by L0().

float Acts::Material::m_rho = 0.0f
private

Definition at line 91 of file Material.hpp.

View newest version in sPHENIX GitHub at line 91 of file Material.hpp

Referenced by massDensity().

float Acts::Material::m_x0 = std::numeric_limits<float>::infinity()
private

Definition at line 87 of file Material.hpp.

View newest version in sPHENIX GitHub at line 87 of file Material.hpp

Referenced by X0().

float Acts::Material::m_z = 0.0f
private

Definition at line 90 of file Material.hpp.

View newest version in sPHENIX GitHub at line 90 of file Material.hpp

Referenced by Z().


The documentation for this class was generated from the following files: