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>
 Opaque parameters vector for serialization.

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.
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.
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 ()
 Create a vacuum material.

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.

Constructor & Destructor Documentation

◆ Material()

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

Construct from an encoded parameters vector.

Parameters
parametersEncoded material parameters

Member Function Documentation

◆ Ar()

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

Return the relative atomic mass.

Returns
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
Returns
Material instance constructed from the given parameters
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
Returns
Material instance constructed from the given parameters

◆ 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.
Returns
Material instance constructed from the given parameters

◆ isVacuum()

bool Acts::Material::isVacuum ( ) const

Check if the material is vacuum.

Returns
True if the material is vacuum

◆ L0()

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

Return the nuclear interaction length.

Infinity in case of vacuum.

Returns
Nuclear interaction length

◆ massDensity()

float Acts::Material::massDensity ( ) const

Return the mass density.

Returns
Mass density

◆ meanExcitationEnergy()

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

Return the mean electron excitation energy.

Returns
Mean electron excitation energy

◆ molarDensity()

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

Return the molar density.

Returns
Molar density

◆ molarElectronDensity()

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

Return the molar electron density.

Returns
Molar electron density

◆ parameters()

ParametersVector Acts::Material::parameters ( ) const

Encode the properties into an opaque parameters vector.

Returns
Encoded parameters vector

◆ Vacuum()

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

Create a vacuum material.

Returns
Vacuum material

◆ X0()

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

Return the radiation length.

Infinity in case of vacuum.

Returns
Radiation length

◆ Z()

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

Return the nuclear charge number.

Returns
Nuclear charge number