|
| | 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.
|
template<typename charged_selector_t, typename charged_simulator_t, typename neutral_selector_t, typename neutral_simulator_t>
struct ActsFatras::Simulation< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >
Multi-particle/event simulation.
- Template Parameters
-
| 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.
template<typename charged_selector_t, typename charged_simulator_t, typename neutral_selector_t, typename neutral_simulator_t>
template<typename generator_t, typename input_particles_t, typename output_particles_t, typename hits_t>
Simulate multiple particles and generated secondaries.
- Parameters
-
| 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 |
- Return values
-
| Acts::Result::Error | if there is a fundamental issue |
| Acts::Result::Success | with all particles that failed to simulate |
- Warning
- Particle-hit association is based on particle ids generated during the simulation. This requires that all input particles must have generation and sub-particle number set to zero.
- Note
- Parameter edge-cases can lead to errors in the underlying propagator and thus to particles that fail to simulate. Here, full events are simulated and the failure to simulate one particle should not be considered a general failure of the simulator. Instead, a list of particles that fail to simulate is provided to the user. It is the users responsibility to handle them.
-
Failed particles are removed from the regular output, i.e. they do not appear in the simulated particles containers nor do they generate hits.
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.
- Template Parameters
-
| 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 |