ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t > Struct Template Reference

#include <acts/blob/master/Fatras/include/ActsFatras/Kernel/Interactor.hpp>

+ Collaboration diagram for ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >:

Classes

struct  ParticleNotAlive
 Abort if the particle was killed during a previous interaction. More...
 

Public Types

using result_type = InteractorResult
 

Public Member Functions

template<typename propagator_state_t , typename stepper_t >
void operator() (propagator_state_t &state, stepper_t &stepper, result_type &result) const
 
template<typename propagator_state_t , typename stepper_t >
void operator() (propagator_state_t &, stepper_t &) const
 Pure observer interface. Does not apply to the Fatras simulator.
 

Public Attributes

generator_t * generator = nullptr
 Random number generator used for the simulation.
 
physics_list_t physics
 Physics list detailing the simulated interactions and processes.
 
hit_surface_selector_t selectHitSurface
 Selector for surfaces that should generate hits.
 
Particle particle
 Initial particle state.
 

Detailed Description

template<typename generator_t, typename physics_list_t, typename hit_surface_selector_t = NoSurface>
struct ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >

Fatras interactor plugin for the Acts propagator.

This plugin 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 physics lists. The physics lists is called for every surface with valid material.

Template Parameters
generator_tis a random number generator
physics_list_tis a simulation physics lists
hit_surface_selector_tis a selector of sensitive hit surfaces

Definition at line 65 of file Interactor.hpp.

View newest version in sPHENIX GitHub at line 65 of file Interactor.hpp

Member Typedef Documentation

template<typename generator_t , typename physics_list_t , typename hit_surface_selector_t = NoSurface>
using ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::result_type = InteractorResult

Definition at line 66 of file Interactor.hpp.

View newest version in sPHENIX GitHub at line 66 of file Interactor.hpp

Member Function Documentation

template<typename generator_t , typename physics_list_t , typename hit_surface_selector_t = NoSurface>
template<typename propagator_state_t , typename stepper_t >
void ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::operator() ( propagator_state_t &  state,
stepper_t &  stepper,
result_type result 
) 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

Definition at line 98 of file Interactor.hpp.

View newest version in sPHENIX GitHub at line 98 of file Interactor.hpp

References ActsFatras::InteractorResult::generatedParticles, ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::generator, Acts::GeometryObject::geoID(), Acts::Surface::globalToLocal(), ActsFatras::InteractorResult::hits, ActsFatras::InteractorResult::isAlive, local, Acts::ISurfaceMaterial::materialProperties(), CLHEP::normal(), Acts::Surface::normal(), ActsFatras::InteractorResult::particle, ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::particle, ActsFatras::InteractorResult::pathInL0, ActsFatras::Particle::pathInL0(), ActsFatras::InteractorResult::pathInX0, ActsFatras::Particle::pathInX0(), ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::physics, Acts::MaterialProperties::scaleThickness(), ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::selectHitSurface, ActsFatras::Particle::setMaterialPassed(), surface(), Acts::Surface::surfaceMaterial(), Acts::MaterialProperties::thicknessInL0(), and Acts::MaterialProperties::thicknessInX0().

+ Here is the call graph for this function:

template<typename generator_t , typename physics_list_t , typename hit_surface_selector_t = NoSurface>
template<typename propagator_state_t , typename stepper_t >
void ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::operator() ( propagator_state_t &  ,
stepper_t &   
) const
inline

Pure observer interface. Does not apply to the Fatras simulator.

Definition at line 182 of file Interactor.hpp.

View newest version in sPHENIX GitHub at line 182 of file Interactor.hpp

Member Data Documentation

template<typename generator_t , typename physics_list_t , typename hit_surface_selector_t = NoSurface>
generator_t* ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::generator = nullptr

Random number generator used for the simulation.

Definition at line 81 of file Interactor.hpp.

View newest version in sPHENIX GitHub at line 81 of file Interactor.hpp

Referenced by ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::operator()().

template<typename generator_t , typename physics_list_t , typename hit_surface_selector_t = NoSurface>
Particle ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::particle
template<typename generator_t , typename physics_list_t , typename hit_surface_selector_t = NoSurface>
physics_list_t ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::physics

Physics list detailing the simulated interactions and processes.

Definition at line 83 of file Interactor.hpp.

View newest version in sPHENIX GitHub at line 83 of file Interactor.hpp

Referenced by ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::operator()().

template<typename generator_t , typename physics_list_t , typename hit_surface_selector_t = NoSurface>
hit_surface_selector_t ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::selectHitSurface

Selector for surfaces that should generate hits.

Definition at line 85 of file Interactor.hpp.

View newest version in sPHENIX GitHub at line 85 of file Interactor.hpp

Referenced by ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::operator()().


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