Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Fatras/include/ActsFatras/Kernel/detail/SimulationActor.hpp>
Classes | |
struct | ParticleNotAlive |
Abort if the particle was killed during a previous interaction. More... | |
Public Types | |
using | result_type = SimulationResult |
Public Member Functions | |
template<typename propagator_state_t , typename stepper_t , typename navigator_t > | |
void | operator() (propagator_state_t &state, stepper_t &stepper, navigator_t &navigator, result_type &result, const Acts::Logger &) const |
template<typename propagator_state_t , typename stepper_t , typename navigator_t > | |
Particle | makeParticle (const Particle &previous, propagator_state_t &state, stepper_t &stepper, navigator_t &navigator) const |
Construct the current particle state from the propagation state. | |
void | armPointLikeInteractions (const Particle &particle, result_type &result) const |
Prepare limits and process selection for the next point-like interaction. | |
void | interact (const Acts::MaterialSlab &slab, result_type &result) const |
Public Attributes | |
generator_t * | generator = nullptr |
Random number generator used for the simulation. | |
decay_t | decay |
Decay module. | |
interactions_t | interactions |
Interaction list containing the simulated interactions. | |
hit_surface_selector_t | selectHitSurface |
Selector for surfaces that should generate hits. | |
Particle | initialParticle |
Initial particle state. | |
Particle::Scalar | properTimeRelativeTolerance = 1e-3 |
Relative tolerance of the particles proper time limit. | |
Fatras simulation actor for the Acts propagator.
This actor must be added to the action list of the propagator and is the equivalent to the MaterialInteractor
for the reconstruction. This implements surface-based simulation of particle interactions with matter using a configurable interaction list as well as the decay simulation. The interactions are simulated for every surface with valid material.
generator_t | random number generator |
decay_t | decay module |
interactions_t | interaction list |
hit_surface_selector_t | selector for hit surfaces |
Definition at line 39 of file SimulationActor.hpp.
View newest version in sPHENIX GitHub at line 39 of file SimulationActor.hpp
using ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::result_type = SimulationResult |
Definition at line 40 of file SimulationActor.hpp.
View newest version in sPHENIX GitHub at line 40 of file SimulationActor.hpp
|
inline |
Prepare limits and process selection for the next point-like interaction.
Definition at line 242 of file SimulationActor.hpp.
View newest version in sPHENIX GitHub at line 242 of file SimulationActor.hpp
References ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::generator, ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::interactions, ActsFatras::SimulationResult::l0Limit, ActsFatras::SimulationResult::l0Process, ActsFatras::SimulationResult::x0Limit, and ActsFatras::SimulationResult::x0Process.
Referenced by ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::interact(), and ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::operator()().
|
inline |
Run the interaction simulation for the given material.
Simulate all continous processes and at most one point-like process within the material.
Definition at line 255 of file SimulationActor.hpp.
View newest version in sPHENIX GitHub at line 255 of file SimulationActor.hpp
References ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::armPointLikeInteractions(), f, ActsFatras::SimulationResult::generatedParticles, ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::generator, if(), ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::interactions, ActsFatras::SimulationResult::isAlive, ActsFatras::SimulationResult::l0Limit, ActsFatras::SimulationResult::l0Process, Acts::UnitConstants::min, ActsFatras::SimulationResult::particle, ActsFatras::Particle::pathInL0(), ActsFatras::Particle::pathInX0(), tgeo-response2json::process(), Acts::MaterialSlab::scaleThickness(), ActsFatras::Particle::setMaterialPassed(), Acts::MaterialSlab::thicknessInL0(), Acts::MaterialSlab::thicknessInX0(), this, x0, ActsFatras::SimulationResult::x0Limit, and ActsFatras::SimulationResult::x0Process.
Referenced by ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::operator()().
|
inline |
Construct the current particle state from the propagation state.
Definition at line 214 of file SimulationActor.hpp.
View newest version in sPHENIX GitHub at line 214 of file SimulationActor.hpp
References ActsFatras::Particle::energy(), ActsFatras::Particle::mass(), ActsFatras::Particle::properTime(), ActsFatras::Particle::setPosition4(), ActsFatras::Particle::setReferenceSurface(), and ActsFatras::Particle::time().
Referenced by ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::operator()().
|
inline |
Simulate the interaction with a single surface.
propagator_state_t | is propagator state |
stepper_t | is the stepper instance |
state | is the mutable propagator state object |
stepper | is the propagation stepper object |
result | is the mutable result/cache object |
logger | a logger instance |
Definition at line 85 of file SimulationActor.hpp.
View newest version in sPHENIX GitHub at line 85 of file SimulationActor.hpp
References ActsFatras::Particle::absoluteMomentum(), ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::armPointLikeInteractions(), assert, ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::decay, ActsFatras::Particle::direction(), ActsFatras::Particle::fourMomentum(), ActsFatras::Particle::fourPosition(), ActsFatras::SimulationResult::generatedParticles, ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::generator, Acts::GeometryObject::geometryId(), Acts::Surface::globalToLocal(), ActsFatras::SimulationResult::hits, ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::initialParticle, ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::interact(), ActsFatras::SimulationResult::isAlive, ActsFatras::SimulationResult::l0Limit, ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::makeParticle(), ActsFatras::Particle::mass(), Acts::ISurfaceMaterial::materialSlab(), testing::internal::move(), Acts::Surface::normal(), ActsFatras::SimulationResult::particle, ActsFatras::Particle::particleId(), ActsFatras::Particle::position(), ActsFatras::Particle::properTime(), ActsFatras::SimulationResult::properTimeLimit, ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::properTimeRelativeTolerance, ActsFatras::Particle::qOverP(), Acts::MaterialSlab::scaleThickness(), ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::selectHitSurface, Acts::Test::stepSize, writeMapConfig::surface, Acts::Surface::surfaceMaterial(), ActsFatras::Particle::time(), Acts::ConstrainedStep::user, and ActsFatras::SimulationResult::x0Limit.
decay_t ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::decay |
Decay module.
Definition at line 63 of file SimulationActor.hpp.
View newest version in sPHENIX GitHub at line 63 of file SimulationActor.hpp
Referenced by ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::operator()().
generator_t* ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::generator = nullptr |
Random number generator used for the simulation.
Definition at line 61 of file SimulationActor.hpp.
View newest version in sPHENIX GitHub at line 61 of file SimulationActor.hpp
Referenced by ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::armPointLikeInteractions(), ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::interact(), and ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::operator()().
Particle ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::initialParticle |
Initial particle state.
Definition at line 69 of file SimulationActor.hpp.
View newest version in sPHENIX GitHub at line 69 of file SimulationActor.hpp
Referenced by ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::operator()().
interactions_t ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::interactions |
Interaction list containing the simulated interactions.
Definition at line 65 of file SimulationActor.hpp.
View newest version in sPHENIX GitHub at line 65 of file SimulationActor.hpp
Referenced by ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::armPointLikeInteractions(), and ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::interact().
Particle::Scalar ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::properTimeRelativeTolerance = 1e-3 |
Relative tolerance of the particles proper time limit.
Definition at line 72 of file SimulationActor.hpp.
View newest version in sPHENIX GitHub at line 72 of file SimulationActor.hpp
Referenced by ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::operator()().
hit_surface_selector_t ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::selectHitSurface |
Selector for surfaces that should generate hits.
Definition at line 67 of file SimulationActor.hpp.
View newest version in sPHENIX GitHub at line 67 of file SimulationActor.hpp
Referenced by ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::operator()().