ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::Material Class Reference

Material description for interactions with matter. More...

#include <Acts/Material/Material.hpp>

Public Types

using ParametersVector = Eigen::Matrix<float, 5, 1>

Public Member Functions

 Material (const ParametersVector &parameters)
 Construct from an encoded parameters vector.
constexpr float Ar () const
 Return the relative atomic mass.
bool isVacuum () const
 Check if the material is vacuum.
constexpr float L0 () const
 Return the nuclear interaction length. Infinity in case of vacuum.
float massDensity () const
 Return the mass density.
constexpr float meanExcitationEnergy () const
 Return the mean electron excitation energy.
constexpr float molarDensity () const
 Return the molar density.
constexpr float molarElectronDensity () const
 Return the molar electron density.
ParametersVector parameters () const
 Encode the properties into an opaque parameters vector.
constexpr float X0 () const
 Return the radiation length. Infinity in case of vacuum.
constexpr float Z () const
 Return the nuclear charge number.

Static Public Member Functions

static Material fromMassDensity (float x0, float l0, float ar, float z, float massRho)
 Construct from material parameters using the mass density.
static Material fromMolarDensity (float x0, float l0, float ar, float z, float molarRho)
 Construct from material parameters using the molar density.
static Material fromMolarDensity (float x0, float l0, float ar, float z, float molarRho, float molarElectronRho, std::optional< float > meanExcitationEnergy)
 Construct from material parameters using the molar density.
static constexpr Material Vacuum ()

Detailed Description

Material description for interactions with matter.

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

  • radiation length X0 (native length units)
  • nuclear interaction length L0 (native length units)
  • relative atomic mass Ar (unitless number)
  • nuclear charge number Z (elementary charge e)
  • molar density (native amount-of-substance unit / (native length unit)³)

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

Note
Always use the opaque parameters vector to serialize/deserialize the material information. Since the internal storage might be different from the external accessors, this ensures that always the numerically optimal parameters are stored. Use the ParametersVector type and do not assume any particular size since we might consider to store more parameters in the future.

Member Typedef Documentation

◆ ParametersVector

using Acts::Material::ParametersVector = Eigen::Matrix<float, 5, 1>

Constructor & Destructor Documentation

◆ Material()

Acts::Material::Material ( const ParametersVector & parameters)
explicit

Construct from an encoded parameters vector.

Member Function Documentation

◆ Ar()

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

Return the relative atomic mass.

◆ fromMassDensity()

Material Acts::Material::fromMassDensity ( float x0,
float l0,
float ar,
float z,
float massRho )
static

Construct from material parameters using the mass density.

Parameters
x0is the radiation length
l0is the nuclear interaction length
aris the relative atomic mass
zis the nuclear charge number
massRhois the mass density
Warning
Due to the choice of native mass units, using the mass density can lead to numerical problems. Typical mass densities lead to computations with values differing by 20+ orders of magnitude.

◆ fromMolarDensity() [1/2]

Material Acts::Material::fromMolarDensity ( float x0,
float l0,
float ar,
float z,
float molarRho )
static

Construct from material parameters using the molar density.

Parameters
x0is the radiation length
l0is the nuclear interaction length
aris the relative atomic mass
zis the nuclear charge number
molarRhois the molar density

◆ fromMolarDensity() [2/2]

Material Acts::Material::fromMolarDensity ( float x0,
float l0,
float ar,
float z,
float molarRho,
float molarElectronRho,
std::optional< float > meanExcitationEnergy )
static

Construct from material parameters using the molar density.

Parameters
x0is the radiation length
l0is the nuclear interaction length
aris the relative atomic mass
zis the nuclear charge number
molarRhois the molar density
molarElectronRhois the molar electron density
meanExcitationEnergyis the mean electron excitation energy. If not provided it will be approximated.

◆ isVacuum()

bool Acts::Material::isVacuum ( ) const

Check if the material is vacuum.

◆ L0()

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

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

◆ massDensity()

float Acts::Material::massDensity ( ) const

Return the mass density.

◆ meanExcitationEnergy()

float Acts::Material::meanExcitationEnergy ( ) const
constexpr

Return the mean electron excitation energy.

◆ molarDensity()

float Acts::Material::molarDensity ( ) const
constexpr

Return the molar density.

◆ molarElectronDensity()

float Acts::Material::molarElectronDensity ( ) const
constexpr

Return the molar electron density.

◆ parameters()

ParametersVector Acts::Material::parameters ( ) const

Encode the properties into an opaque parameters vector.

◆ Vacuum()

constexpr Material Acts::Material::Vacuum ( )
staticconstexpr

◆ X0()

float Acts::Material::X0 ( ) const
constexpr

Return the radiation length. Infinity in case of vacuum.

◆ Z()

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

Return the nuclear charge number.