Struct MaterialInteractor

Nested Relationships

Nested Types

Struct Documentation

struct Acts::MaterialInteractor

Material interactor propagator action.

Apply material interactions at a surface and update the track state.

Public Types

using result_type = Result

Public Functions

template<typename propagator_state_t, typename stepper_t>
void operator()(propagator_state_t &state, const stepper_t &stepper, result_type &result) 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

Parameters
  • state: is the mutable propagator state object

  • stepper: The stepper in use

  • result: is the mutable result state object

template<typename propagator_state_t>
void operator()(propagator_state_t&) const

Material interaction has no pure observer.

Public Members

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.

struct Result

Simple result struct to be returned It mainly acts as an internal state which is created for every propagation/extrapolation step.

Public Members

double materialInL0 = 0.

The accumulated materialInL0.

std::vector<MaterialInteraction> materialInteractions

This one is only filled when recordInteractions is switched on.

double materialInX0 = 0.