Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t > Struct Template Reference

#include <acts/blob/sPHENIX/Fatras/include/ActsFatras/Kernel/detail/SimulationActor.hpp>

+ Collaboration diagram for ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >:

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.
 

Detailed Description

template<typename generator_t, typename decay_t, typename interactions_t, typename hit_surface_selector_t>
struct ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >

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.

Template Parameters
generator_trandom number generator
decay_tdecay module
interactions_tinteraction list
hit_surface_selector_tselector for hit surfaces

Definition at line 39 of file SimulationActor.hpp.

View newest version in sPHENIX GitHub at line 39 of file SimulationActor.hpp

Member Typedef Documentation

template<typename generator_t , typename decay_t , typename interactions_t , typename hit_surface_selector_t >
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

Member Function Documentation

template<typename generator_t , typename decay_t , typename interactions_t , typename hit_surface_selector_t >
void ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::armPointLikeInteractions ( const Particle particle,
result_type result 
) const
inline
template<typename generator_t , typename decay_t , typename interactions_t , typename hit_surface_selector_t >
void ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::interact ( const Acts::MaterialSlab slab,
result_type result 
) const
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()().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename generator_t , typename decay_t , typename interactions_t , typename hit_surface_selector_t >
template<typename propagator_state_t , typename stepper_t , typename navigator_t >
Particle ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::makeParticle ( const Particle previous,
propagator_state_t &  state,
stepper_t &  stepper,
navigator_t &  navigator 
) const
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()().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename generator_t , typename decay_t , typename interactions_t , typename hit_surface_selector_t >
template<typename propagator_state_t , typename stepper_t , typename navigator_t >
void ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::operator() ( propagator_state_t &  state,
stepper_t &  stepper,
navigator_t &  navigator,
result_type result,
const Acts::Logger  
) const
inline

Simulate the interaction with a single surface.

Template Parameters
propagator_state_tis propagator state
stepper_tis the stepper instance
Parameters
stateis the mutable propagator state object
stepperis the propagation stepper object
resultis the mutable result/cache object
loggera 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.

+ Here is the call graph for this function:

Member Data Documentation

template<typename generator_t , typename decay_t , typename interactions_t , typename hit_surface_selector_t >
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()().

template<typename generator_t , typename decay_t , typename interactions_t , typename hit_surface_selector_t >
generator_t* ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::generator = nullptr
template<typename generator_t , typename decay_t , typename interactions_t , typename hit_surface_selector_t >
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()().

template<typename generator_t , typename decay_t , typename interactions_t , typename hit_surface_selector_t >
interactions_t ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::interactions
template<typename generator_t , typename decay_t , typename interactions_t , typename hit_surface_selector_t >
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()().

template<typename generator_t , typename decay_t , typename interactions_t , typename hit_surface_selector_t >
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()().


The documentation for this struct was generated from the following file: