ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::material_slab< scalar_t > Struct Template Reference

Slab structure to be mapped on the mask (plane, cylinder). More...

#include <detray/material/material_slab.hpp>

Inheritance diagram for detray::material_slab< scalar_t >:
[legend]

Public Types

using material_type = material<scalar_t>
 Bulk material type represented by this slab.
using scalar_type = scalar_t
 Scalar type used for thickness and material properties.

Public Member Functions

constexpr material_slab (const material_type &material, scalar_type thickness)
 Constructor.
constexpr const material_type & get_material () const
 Access the (average) material parameters.
constexpr operator bool () const
 Boolean operator.
constexpr bool operator== (const material_slab &rhs) const
 Equality operator.
constexpr scalar_type path_segment (const scalar_type cos_inc_angle, const scalar_type=0.f) const
 Compute the path length through the slab at an incidence angle.
constexpr scalar_type path_segment_in_L0 (const scalar_type cos_inc_angle, const scalar_type=0.f) const
 Compute the path length through the slab at an incidence angle.
constexpr scalar_type path_segment_in_X0 (const scalar_type cos_inc_angle, const scalar_type=0.f) const
 Compute the path length through the slab at an incidence angle.
constexpr scalar_type thickness () const
 Return the thickness.
constexpr scalar_type thickness_in_L0 () const
 Return the nuclear interaction length fraction.
constexpr scalar_type thickness_in_X0 () const
 Return the radiation length fraction.

Detailed Description

template<concepts::scalar scalar_t>
struct detray::material_slab< scalar_t >

Slab structure to be mapped on the mask (plane, cylinder).

Constructor & Destructor Documentation

◆ material_slab()

template<concepts::scalar scalar_t>
detray::material_slab< scalar_t >::material_slab ( const material_type & material,
scalar_type thickness )
constexpr

Constructor.

Parameters
materialis the elemental or mixture material
thicknessis the thickness of the slab

Member Function Documentation

◆ get_material()

template<concepts::scalar scalar_t>
const material_type & detray::material_slab< scalar_t >::get_material ( ) const
constexpr

Access the (average) material parameters.

Returns
slab material

◆ operator bool()

template<concepts::scalar scalar_t>
detray::material_slab< scalar_t >::operator bool ( ) const
explicitconstexpr

Boolean operator.

Returns
true when the slab contributes material

◆ operator==()

template<concepts::scalar scalar_t>
bool detray::material_slab< scalar_t >::operator== ( const material_slab< scalar_t > & rhs) const
constexpr

Equality operator.

Parameters
rhsis the right hand side to be compared to
Returns
whether material and thickness match

◆ path_segment()

template<concepts::scalar scalar_t>
scalar_type detray::material_slab< scalar_t >::path_segment ( const scalar_type cos_inc_angle,
const scalar_type = 0.f ) const
constexpr

Compute the path length through the slab at an incidence angle.

Returns
the path segment through the material
Parameters
cos_inc_anglecosine of the track incidence angle

◆ path_segment_in_L0()

template<concepts::scalar scalar_t>
scalar_type detray::material_slab< scalar_t >::path_segment_in_L0 ( const scalar_type cos_inc_angle,
const scalar_type = 0.f ) const
constexpr

Compute the path length through the slab at an incidence angle.

Returns
the path segment through the material in L0
Parameters
cos_inc_anglecosine of the track incidence angle

◆ path_segment_in_X0()

template<concepts::scalar scalar_t>
scalar_type detray::material_slab< scalar_t >::path_segment_in_X0 ( const scalar_type cos_inc_angle,
const scalar_type = 0.f ) const
constexpr

Compute the path length through the slab at an incidence angle.

Returns
the path segment through the material in X0
Parameters
cos_inc_anglecosine of the track incidence angle

◆ thickness()

template<concepts::scalar scalar_t>
scalar_type detray::material_slab< scalar_t >::thickness ( ) const
constexpr

Return the thickness.

Returns
thickness in length units

◆ thickness_in_L0()

template<concepts::scalar scalar_t>
scalar_type detray::material_slab< scalar_t >::thickness_in_L0 ( ) const
constexpr

Return the nuclear interaction length fraction.

Returns
fraction of one nuclear interaction length

◆ thickness_in_X0()

template<concepts::scalar scalar_t>
scalar_type detray::material_slab< scalar_t >::thickness_in_X0 ( ) const
constexpr

Return the radiation length fraction.

Returns
fraction of one radiation length