ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::actor::pointwise_material_interactor< algebra_t > Struct Template Reference

Apply energy-loss and multiple-scattering effects at material surfaces. More...

#include <detray/propagator/actors/pointwise_material_interactor.hpp>

Inheritance diagram for detray::actor::pointwise_material_interactor< algebra_t >:
[legend]
Collaboration diagram for detray::actor::pointwise_material_interactor< algebra_t >:
[legend]

Classes

struct  kernel
 Material store visitor. More...
struct  state
 Per-surface material effects and their application settings. More...

Public Types

using algebra_type = algebra_t
 Algebra backend type.
using bound_matrix_type = bound_matrix<algebra_t>
 Bound covariance matrix type.
using bound_param_vector_type = bound_parameters_vector<algebra_t>
 Bound track-parameter vector type.
using interaction_type = interaction<scalar_type>
 Material interaction calculator type.
using scalar_type = dscalar<algebra_t>
 Scalar type used for material calculations.
using transform3_type = dtransform3D<algebra_t>
 Three-dimensional transform type.
using vector3_type = dvector3D<algebra_t>
 Three-dimensional vector type.

Public Member Functions

template<typename propagator_state_t>
void operator() (state &interactor_state, propagator_state_t &prop_state, parameter_transporter_result< algebra_t > &res) const
 Apply material effects after parameter transport reaches a surface.
template<typename context_t, typename surface_t>
bool update (const context_t gctx, const pdg_particle< scalar_type > &ptc, bound_track_parameters< algebra_t > &bound_params, state &interactor_state, const int nav_dir, const surface_t &sf) const
 Update the bound track parameter.
void update_angle_variance (bound_matrix_type &covariance, const vector3_type &dir, const scalar_type projected_scattering_angle) const
 Update the variance of phi and theta of bound track parameter.
void update_qop (bound_param_vector_type &vector, const pdg_particle< scalar_type > &ptc, const scalar_type e_loss, const int sign) const
 Update the q over p of bound track parameter.
void update_qop_variance (bound_matrix_type &covariance, const scalar_type sigma_qop) const
 Update the variance of q over p of bound track parameter.

Detailed Description

template<concepts::algebra algebra_t>
struct detray::actor::pointwise_material_interactor< algebra_t >

Apply energy-loss and multiple-scattering effects at material surfaces.

Template Parameters
algebra_tAlgebra backend used by the track parameters.

Member Function Documentation

◆ operator()()

template<concepts::algebra algebra_t>
template<typename propagator_state_t>
void detray::actor::pointwise_material_interactor< algebra_t >::operator() ( state & interactor_state,
propagator_state_t & prop_state,
parameter_transporter_result< algebra_t > & res ) const

Apply material effects after parameter transport reaches a surface.

Template Parameters
propagator_state_tPropagator state type.
Parameters
interactor_stateState receiving the evaluated effects.
prop_stateCurrent propagation state.
resTransport result containing destination parameters.

◆ update()

template<concepts::algebra algebra_t>
template<typename context_t, typename surface_t>
bool detray::actor::pointwise_material_interactor< algebra_t >::update ( const context_t gctx,
const pdg_particle< scalar_type > & ptc,
bound_track_parameters< algebra_t > & bound_params,
state & interactor_state,
const int nav_dir,
const surface_t & sf ) const

Update the bound track parameter.

Parameters
gctxGeometry context used for surface transforms.
ptcParticle hypothesis used to evaluate interactions.
[out]bound_paramsbound track parameter
[out]interactor_stateactor state
[in]nav_dirnavigation direction
[in]sfthe surface
Returns
Whether material effects were evaluated and applied.

◆ update_angle_variance()

template<concepts::algebra algebra_t>
void detray::actor::pointwise_material_interactor< algebra_t >::update_angle_variance ( bound_matrix_type & covariance,
const vector3_type & dir,
const scalar_type projected_scattering_angle ) const

Update the variance of phi and theta of bound track parameter.

Parameters
[out]covariancecovariance matrix of bound track parameter
[in]dirdirection of track
[in]projected_scattering_angleprojected scattering angle

◆ update_qop()

template<concepts::algebra algebra_t>
void detray::actor::pointwise_material_interactor< algebra_t >::update_qop ( bound_param_vector_type & vector,
const pdg_particle< scalar_type > & ptc,
const scalar_type e_loss,
const int sign ) const

Update the q over p of bound track parameter.

Parameters
[out]vectorvector of bound track parameter
[in]ptcParticle hypothesis supplying charge and mass.
[in]e_lossenergy loss
[in]signnavigation direction

◆ update_qop_variance()

template<concepts::algebra algebra_t>
void detray::actor::pointwise_material_interactor< algebra_t >::update_qop_variance ( bound_matrix_type & covariance,
const scalar_type sigma_qop ) const

Update the variance of q over p of bound track parameter.

Parameters
[out]covariancecovariance matrix of bound track parameter
[in]sigma_qopvariance of q over p