ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/master/Fatras/include/ActsFatras/Kernel/Simulator.hpp>
Classes | |
struct | FailedParticle |
A particle that failed to simulate. More... | |
Public Member Functions | |
Simulator (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 |
Public Attributes | |
charged_selector_t | selectCharged |
neutral_selector_t | selectNeutral |
charged_simulator_t | charged |
neutral_simulator_t | neutral |
Private Member Functions | |
bool | selectParticle (const Particle &particle) const |
template<typename particles_t , typename hits_t > | |
void | copyOutputs (const InteractorResult &result, particles_t &particlesInitial, particles_t &particlesFinal, hits_t &hits) const |
Static Private Member Functions | |
template<typename particles_t > | |
static void | renumberTailParticleIds (particles_t &particles, std::size_t lastValid) |
Fatras multi-particle simulator.
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 |
Definition at line 132 of file Simulator.hpp.
View newest version in sPHENIX GitHub at line 132 of file Simulator.hpp
|
inline |
Construct from the single charged/neutral particle simulators.
Definition at line 151 of file Simulator.hpp.
View newest version in sPHENIX GitHub at line 151 of file Simulator.hpp
|
inlineprivate |
Copy Interactor results to output containers.
particles_t | is a SequenceContainer for particles |
hits_t | is a SequenceContainer for hits |
Definition at line 285 of file Simulator.hpp.
View newest version in sPHENIX GitHub at line 285 of file Simulator.hpp
References field_utils::copy(), ActsFatras::InteractorResult::generatedParticles, ActsFatras::InteractorResult::hits, particle, ActsFatras::InteractorResult::particle, and ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::selectParticle().
Referenced by ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::simulate().
|
inlinestaticprivate |
Renumber particle ids in the tail of the container.
Ensures particle ids are unique by modifying the sub-particle number within each generation.
particles | particle container in which particles are renumbered |
lastValid | index of the last particle with a valid particle id |
particles_t | is a SequenceContainer for particles |
Definition at line 314 of file Simulator.hpp.
View newest version in sPHENIX GitHub at line 314 of file Simulator.hpp
References Acts::UnitConstants::u.
Referenced by ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::simulate().
|
inlineprivate |
Select if the particle should be simulated at all.
This also enforces mutual-exclusivity of the two charge selections. If both charge selections evaluate true, they are probably not setup correctly and not simulating them at all is a reasonable fall-back.
Definition at line 272 of file Simulator.hpp.
View newest version in sPHENIX GitHub at line 272 of file Simulator.hpp
References ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::selectCharged, and ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::selectNeutral.
Referenced by ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::copyOutputs(), and ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::simulate().
|
inline |
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 |
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 |
Definition at line 191 of file Simulator.hpp.
View newest version in sPHENIX GitHub at line 191 of file Simulator.hpp
References ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::charged, ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::copyOutputs(), hits(), ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::neutral, ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::renumberTailParticleIds(), ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::selectCharged, ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::selectParticle(), and Acts::UnitConstants::u.
charged_simulator_t ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::charged |
Definition at line 147 of file Simulator.hpp.
View newest version in sPHENIX GitHub at line 147 of file Simulator.hpp
Referenced by ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::simulate().
neutral_simulator_t ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::neutral |
Definition at line 148 of file Simulator.hpp.
View newest version in sPHENIX GitHub at line 148 of file Simulator.hpp
Referenced by ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::simulate().
charged_selector_t ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::selectCharged |
Definition at line 145 of file Simulator.hpp.
View newest version in sPHENIX GitHub at line 145 of file Simulator.hpp
Referenced by ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::selectParticle(), and ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::simulate().
neutral_selector_t ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::selectNeutral |
Definition at line 146 of file Simulator.hpp.
View newest version in sPHENIX GitHub at line 146 of file Simulator.hpp
Referenced by ActsFatras::Simulator< charged_selector_t, charged_simulator_t, neutral_selector_t, neutral_simulator_t >::selectParticle().