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

Material description for an object with defined thickness. More...

#include <Acts/Material/MaterialSlab.hpp>

Public Member Functions

constexpr MaterialSlab ()
 Default constructor.
 MaterialSlab (const Material &material, float thickness)
 Construct from material description.
bool isVacuum () const
 Check if the material is vacuum.
constexpr const Materialmaterial () const
 Access the (average) material parameters.
void scaleThickness (float scale)
 Scale the material thickness by the given factor.
constexpr float thickness () const
 Return the thickness.
constexpr float thicknessInL0 () const
 Return the nuclear interaction length fraction.
constexpr float thicknessInX0 () const
 Return the radiation length fraction.

Static Public Member Functions

static MaterialSlab combine (const MaterialSlab &slab1, const Material &material2, float thickness2)
 Compute the average properties for a combined slab of two materials.
static MaterialSlab combineLayers (const MaterialSlab &layerA, const MaterialSlab &layerB)
 Combine material properties of two layers by averaging them.
static MaterialSlab combineLayers (const std::vector< MaterialSlab > &layers)
 Combine material properties of multiple layers by averaging them.
static constexpr MaterialSlab Nothing ()
 Create a material slab with no material content.
static constexpr MaterialSlab Vacuum (float thickness)
 Create a vacuum material slab with specified thickness.

Detailed Description

Material description for an object with defined thickness.

This is intended to describe concrete surface materials.

See also
Material for a description of the available parameters.

Constructor & Destructor Documentation

◆ MaterialSlab() [1/2]

Acts::MaterialSlab::MaterialSlab ( )
constexpr

Default constructor.

TODO consider removing. currently needed for default construction in grids

◆ MaterialSlab() [2/2]

Acts::MaterialSlab::MaterialSlab ( const Material & material,
float thickness )

Construct from material description.

Parameters
materialis the material description
thicknessis the thickness of the material

Member Function Documentation

◆ combine()

MaterialSlab Acts::MaterialSlab::combine ( const MaterialSlab & slab1,
const Material & material2,
float thickness2 )
static

Compute the average properties for a combined slab of two materials.

The averaged material slab has the combined thickness of the two input slabs and assumes the two input materials are homogeneously and continuously mixed throughout the slab.

Parameters
slab1Properties of the first material slab
material2Properties of the second material
thickness2Thickness of the second material slab. Can be negative to subtract the second material from the first slab.
Returns
Material slab with the combined thickness and average parameters

◆ combineLayers() [1/2]

MaterialSlab Acts::MaterialSlab::combineLayers ( const MaterialSlab & layerA,
const MaterialSlab & layerB )
static

Combine material properties of two layers by averaging them.

Parameters
layerAInput layer A to average over.
layerBInput layer B to average over.
Returns
The resulting object has the combined thickness of all layers but just one set of appropriately averaged material constants.

◆ combineLayers() [2/2]

MaterialSlab Acts::MaterialSlab::combineLayers ( const std::vector< MaterialSlab > & layers)
static

Combine material properties of multiple layers by averaging them.

Parameters
layersInput layers to average over.
Returns
The resulting object has the combined thickness of all layers but just one set of appropriately averaged material constants.

◆ isVacuum()

bool Acts::MaterialSlab::isVacuum ( ) const

Check if the material is vacuum.

Returns
True if the material is vacuum or thickness is zero/negative

◆ material()

const Material & Acts::MaterialSlab::material ( ) const
constexpr

Access the (average) material parameters.

Returns
Reference to the material properties

◆ Nothing()

constexpr MaterialSlab Acts::MaterialSlab::Nothing ( )
staticconstexpr

Create a material slab with no material content.

Returns
Empty material slab with zero thickness and no material

◆ scaleThickness()

void Acts::MaterialSlab::scaleThickness ( float scale)

Scale the material thickness by the given factor.

Parameters
scaleFactor by which to scale the thickness

◆ thickness()

float Acts::MaterialSlab::thickness ( ) const
constexpr

Return the thickness.

Returns
Material thickness in millimeters

◆ thicknessInL0()

float Acts::MaterialSlab::thicknessInL0 ( ) const
constexpr

Return the nuclear interaction length fraction.

Returns
Thickness as a fraction of nuclear interaction length

◆ thicknessInX0()

float Acts::MaterialSlab::thicknessInX0 ( ) const
constexpr

Return the radiation length fraction.

Returns
Thickness as a fraction of radiation length

◆ Vacuum()

constexpr MaterialSlab Acts::MaterialSlab::Vacuum ( float thickness)
staticconstexpr

Create a vacuum material slab with specified thickness.

Parameters
thicknessThe thickness of the vacuum region
Returns
Vacuum material slab with the given thickness