|
ACTS
Experiment-independent tracking
|
Multi-particle/event simulation. More...
#include <ActsFatras/Kernel/Simulation.hpp>
Public Member Functions | |
| Simulation (charged_simulator_t &&charged_, neutral_simulator_t &&neutral_) | |
| Construct from the single charged/neutral particle simulators. | |
| template<typename generator_t, typename input_particles_t, typename output_particles_t, typename hits_t> | |
| Acts::Result< std::vector< FailedParticle > > | simulate (const Acts::GeometryContext &geoCtx, const Acts::MagneticFieldContext &magCtx, generator_t &generator, const input_particles_t &inputParticles, output_particles_t &simulatedParticlesInitial, output_particles_t &simulatedParticlesFinal, hits_t &hits) const |
| Simulate multiple particles and generated secondaries. | |
Multi-particle/event simulation.
| charged_selector_t | Callable selector type for charged particles |
| charged_simulator_t | Single particle simulator for charged particles |
| neutral_selector_t | Callable selector type for neutral particles |
| neutral_simulator_t | Single particle simulator for neutral particles |
The selector types for charged and neutral particles do not need to check for the particle charge. This is done automatically by the simulator to ensure consistency.
| ActsFatras::Simulation< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::Simulation | ( | charged_simulator_t && | charged_, |
| neutral_simulator_t && | neutral_ ) |
Construct from the single charged/neutral particle simulators.
| charged_ | Simulator for charged particles |
| neutral_ | Simulator for neutral particles |
| Acts::Result< std::vector< FailedParticle > > ActsFatras::Simulation< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::simulate | ( | const Acts::GeometryContext & | geoCtx, |
| const Acts::MagneticFieldContext & | magCtx, | ||
| generator_t & | generator, | ||
| const input_particles_t & | inputParticles, | ||
| output_particles_t & | simulatedParticlesInitial, | ||
| output_particles_t & | simulatedParticlesFinal, | ||
| hits_t & | hits ) const |
Simulate multiple particles and generated secondaries.
| geoCtx | is the geometry context to access surface geometries |
| magCtx | is the magnetic field context to access field values |
| generator | is the random number generator |
| inputParticles | contains all particles that should be simulated |
| simulatedParticlesInitial | contains initial particle states |
| simulatedParticlesFinal | contains final particle states |
| hits | contains all generated hits |
| Acts::Result::Error | if there is a fundamental issue |
| Acts::Result::Success | with all particles that failed to simulate |
This takes all input particles and simulates those passing the selection using the appropriate simulator. All selected particle states including additional ones generated from interactions are stored in separate output containers; both the initial state at the production vertex and the final state after propagation are stored. Hits generated from selected input and generated particles are stored in the hit container.
| generator_t | is the type of the random number generator |
| input_particles_t | is a Container for particles |
| output_particles_t | is a SequenceContainer for particles |
| hits_t | is a SequenceContainer for hits |