|
ACTS
Experiment-independent tracking
|
A point like simulation process based on a physics model plus selectors. More...
#include <ActsFatras/Kernel/PointLikeProcess.hpp>
Public Member Functions | |
| template<class generator_t> | |
| std::pair< double, double > | generatePathLimits (generator_t &generator, const Particle &particle) const |
| template<class generator_t> | |
| bool | run (generator_t &rng, Particle &particle, std::vector< Particle > &generatedParticles) const |
Public Attributes | |
| physics_t | physics |
| The physics interactions implementation. | |
| 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. | |
A point like simulation process based on a physics model plus selectors.
| physics_t | is the physics model type |
| input_particle_selector_t | is the input particle selector |
| output_particle_selector_t | is the output particle selector |
| child_particle_selector_t | is the child particle selector |
The physics model type must provide a call operator with the following two member functions
// generate X0/L0 limits
template <typename generator_t>
std::pair<Scalar, Scalar>
generatePathLimits(
generator& rng,
const Particle& particle) const
// run the process simulation
template <typename generator_t>
bool
run(
generator_t& rng,
Particle& particle,
std::vector<Particle>& generatedParticles) const
The return type of generatePathLimits() can be any Container with Particle 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.
| std::pair< double, double > ActsFatras::PointLikeProcess< physics_t, input_particle_selector_t, output_particle_selector_t, child_particle_selector_t >::generatePathLimits | ( | generator_t & | generator, |
| const Particle & | particle ) const |
| bool ActsFatras::PointLikeProcess< physics_t, input_particle_selector_t, output_particle_selector_t, child_particle_selector_t >::run | ( | generator_t & | rng, |
| Particle & | particle, | ||
| std::vector< Particle > & | generatedParticles ) const |
| physics_t ActsFatras::PointLikeProcess< physics_t, input_particle_selector_t, output_particle_selector_t, child_particle_selector_t >::physics |
The physics interactions implementation.
| child_particle_selector_t ActsFatras::PointLikeProcess< physics_t, input_particle_selector_t, output_particle_selector_t, child_particle_selector_t >::selectChildParticle |
Child selection: if a generated child particle should be kept.
| input_particle_selector_t ActsFatras::PointLikeProcess< physics_t, input_particle_selector_t, output_particle_selector_t, child_particle_selector_t >::selectInputParticle |
Input selection: if this process applies to this particle.
| output_particle_selector_t ActsFatras::PointLikeProcess< physics_t, input_particle_selector_t, output_particle_selector_t, child_particle_selector_t >::selectOutputParticle |
Output selection: if the particle is still valid after the interaction.