Template Struct Interactor

Nested Relationships

Struct Documentation

template<typename generator_t, typename physics_list_t, typename hit_surface_selector_t = NoSurface>
struct ActsFatras::Interactor

Fatras interactor plugin for the Acts propagator.

This plugin must be added to the action list of the propagator and is the equivalent to the MaterialInteractor for the reconstruction. This implements surface-based simulation of particle interactions with matter using a configurable physics lists. The physics lists is called for every surface with valid material.

Template Parameters
  • generator_t: is a random number generator

  • physics_list_t: is a simulation physics lists

  • hit_surface_selector_t: is a selector of sensitive hit surfaces

Public Types

using result_type = InteractorResult

Public Functions

template<typename propagator_state_t, typename stepper_t>
void operator()(propagator_state_t &state, stepper_t &stepper, result_type &result) const

Simulate the interaction with a single surface.

Template Parameters
  • propagator_state_t: is propagator state

  • stepper_t: is the stepper instance

Parameters
  • state: is the mutable propagator state object

  • stepper: is the propagation stepper object

  • result: is the mutable result/cache object

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

Pure observer interface. Does not apply to the Fatras simulator.

Public Members

generator_t *generator = nullptr

Random number generator used for the simulation.

Particle particle

Initial particle state.

physics_list_t physics

Physics list detailing the simulated interactions and processes.

hit_surface_selector_t selectHitSurface

Selector for surfaces that should generate hits.

struct ParticleNotAlive

Abort if the particle was killed during a previous interaction.

Public Types

using action_type = Interactor

Public Functions

template<typename propagator_state_t, typename stepper_t>
constexpr bool operator()(propagator_state_t&, const stepper_t&, const result_type &result) const