Template Struct Process

Struct Documentation

template<typename physics_t, typename input_selector_t = EveryInput, typename output_particle_selector_t = EveryParticle, typename child_particle_selector_t = output_particle_selector_t>
struct ActsFatras::Process

A simulation process based on a physics interaction plus selectors.

The input selector defines whether the interaction is applied while the output selector defines a break condition, i.e. whether to continue simulating the particle propagation. The child selector is used to filter the generated child particles.

Template Parameters
  • physics_t: is the physics interaction type

  • input_selector_t: is the input material + particle selector

  • output_particle_selector_t: is the output particle selector

  • child_particle_selector_t: is the child particle selector

Note

The output and child particle selectors are identical unless the child particle selector is explicitely specified.

Public Functions

template<typename generator_t>
bool operator()(generator_t &generator, const Acts::MaterialProperties &slab, Particle &particle, std::vector<Particle> &generated) const

Execute the physics process considering the configured selectors.

Return

Break condition, i.e. whether this process stops the propagation

Parameters
  • [in] generator: is the random number generator

  • [in] slab: is the passed material

  • [inout] particle: is the particle being updated

  • [out] generated: is the container of generated particles

Template Parameters
  • generator_t: must be a RandomNumberEngine

Public Members

physics_t physics

The physics interactions implementation.

child_particle_selector_t selectChildParticle

Child selection: if a generated child particle should be kept.

input_selector_t selectInput

Input selection: if this process applies to material + particle.

output_particle_selector_t selectOutputParticle

Output selection: if the particle is still valid after the interaction.