Material interactor propagator action.
Apply material interactions at a surface and update the track state.
using result_type = RecordedMaterial
template<typename propagator_state_t, typename stepper_t>
inline void operator()(propagator_state_t &state, const stepper_t &stepper, result_type &result, const Logger &logger) const
Interaction with detector material for the ActionList of the Propagator.
It checks if the state has a current surface, in which case the action is performed: the covariance is transported to the position, multiple scattering and energy loss is applied according to the configuration.
- Template Parameters
propagator_state_t – is the type of Propagagor state
stepper_t – Type of the stepper of the propagation
state – is the mutable propagator state object
stepper – The stepper in use
result – is the mutable result state object
logger – a logger instance
inline void operator()(propagator_state_t&) const
Material interaction has no pure observer.
bool energyLoss = true
Whether to consider energy loss.
bool multipleScattering = true
Whether to consider multiple scattering.
bool recordInteractions = false
Whether to record all material interactions.
- using result_type = RecordedMaterial