File ContinuousProcess.hpp¶
-
namespace ActsFatras
-
template<typename physics_t, typename input_particle_selector_t, typename output_particle_selector_t, typename child_particle_selector_t = output_particle_selector_t>
struct ContinuousProcess¶ - #include <ActsFatras/Kernel/ContinuousProcess.hpp>
A continuous simulation process based on a physics model plus selectors.
The physics model type must provide a call operator with the following signature
<Particle Container> operator()( generator_t& generator, const Acts::MaterialSlab& slab, Particle& particle) const
- tparam physics_t
is the physics model type
- tparam input_particle_selector_t
is the input particle selector
- tparam output_particle_selector_t
is the output particle selector
- tparam child_particle_selector_t
is the child particle selector
The return type can be any
Container
withParticle
elements.The input selector defines whether the process 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.
Note
The output and child particle selectors are identical unless the child particle selector is explicitely specified.
Public Functions
-
template<typename generator_t>
inline bool operator()(generator_t &generator, const Acts::MaterialSlab &slab, Particle &particle, std::vector<Particle> &generated) const¶ Execute the physics process considering the configured selectors.
- Parameters
generator – [in] is the random number generator
slab – [in] is the passed material
particle – [inout] is the particle being updated
generated – [out] is the container of generated particles
- Template Parameters
generator_t – must be a RandomNumberEngine
- Returns
Break condition, i.e. whether this process stops the propagation
Public Members
-
child_particle_selector_t selectChildParticle¶
Child selection: if a generated child particle should be kept.
-
input_particle_selector_t selectInputParticle¶
Input selection: if this process applies to this particle.
-
output_particle_selector_t selectOutputParticle¶
Output selection: if the particle is still valid after the interaction.
-
template<typename physics_t, typename input_particle_selector_t, typename output_particle_selector_t, typename child_particle_selector_t = output_particle_selector_t>