ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::MaterialInteractor Struct Reference

#include <acts/blob/master/Core/include/Acts/Propagator/MaterialInteractor.hpp>

Classes

struct  Result
 

Public Types

using result_type = Result
 

Public Member Functions

template<typename propagator_state_t , typename stepper_t >
void operator() (propagator_state_t &state, const stepper_t &stepper, result_type &result) const
 Interaction with detector material for the ActionList of the Propagator.
 
template<typename propagator_state_t >
void operator() (propagator_state_t &) const
 Material interaction has no pure observer.
 

Public Attributes

bool multipleScattering = true
 Whether to consider multiple scattering.
 
bool energyLoss = true
 Whether to consider energy loss.
 
bool recordInteractions = false
 Whether to record all material interactions.
 

Private Member Functions

void recordResult (const detail::PointwiseMaterialInteraction &d, result_type &result) const
 This function records the material effect.
 
void recordResult (const detail::VolumeMaterialInteraction &d, result_type &result) const
 This function records the material effect.
 
template<typename propagator_state_t , typename stepper_t >
void UpdateResult (propagator_state_t &state, const stepper_t &stepper, result_type &result) const
 This function update the previous material step.
 
template<typename propagator_state_t >
void debugLog (propagator_state_t &state, const std::function< std::string()> &logAction) const
 

Detailed Description

Material interactor propagator action.

Apply material interactions at a surface and update the track state.

Definition at line 56 of file MaterialInteractor.hpp.

View newest version in sPHENIX GitHub at line 56 of file MaterialInteractor.hpp

Member Typedef Documentation

Definition at line 75 of file MaterialInteractor.hpp.

View newest version in sPHENIX GitHub at line 75 of file MaterialInteractor.hpp

Member Function Documentation

template<typename propagator_state_t >
void Acts::MaterialInteractor::debugLog ( propagator_state_t &  state,
const std::function< std::string()> &  logAction 
) const
inlineprivate

The private propagation debug logging

It needs to be fed by a lambda function that returns a string, that guarantees that the lambda is only called in the state.debug == true case in order not to spend time when not needed.

Template Parameters
propagator_state_tType of the propagator state
Parameters
statethe propagator state for the debug flag, prefix and length
logActionis a callable function that returns a streamable object

Definition at line 252 of file MaterialInteractor.hpp.

View newest version in sPHENIX GitHub at line 252 of file MaterialInteractor.hpp

Referenced by operator()().

+ Here is the caller graph for this function:

template<typename propagator_state_t , typename stepper_t >
void Acts::MaterialInteractor::operator() ( propagator_state_t &  state,
const stepper_t &  stepper,
result_type result 
) const
inline

Interaction with detector material for the ActionList of the Propagator.

It checks if the state has a current surface, in which case the action is performed: the covariance is transported to the position, multiple scattering and energy loss is applied according to the configuration.

Template Parameters
propagator_state_tis the type of Propagagor state
stepper_tType of the stepper of the propagation
Parameters
stateis the mutable propagator state object
stepperThe stepper in use
resultis the mutable result state object

Definition at line 92 of file MaterialInteractor.hpp.

View newest version in sPHENIX GitHub at line 92 of file MaterialInteractor.hpp

References Acts::units::_GeV, Acts::units::_MeV, d, debugLog(), Acts::detail::PointwiseMaterialInteraction::Eloss, energyLoss, Acts::detail::PointwiseMaterialInteraction::evaluateMaterialProperties(), Acts::detail::VolumeMaterialInteraction::evaluateMaterialProperties(), Acts::detail::PointwiseMaterialInteraction::evaluatePointwiseMaterialInteraction(), Acts::detail::PointwiseMaterialInteraction::mass, Acts::MaterialInteractor::Result::materialInteractions, Acts::detail::PointwiseMaterialInteraction::momentum, multipleScattering, Acts::detail::PointwiseMaterialInteraction::pdg, Acts::detail::PointwiseMaterialInteraction::performCovarianceTransport, recordInteractions, recordResult(), Acts::detail::PointwiseMaterialInteraction::slab, surface(), Acts::Surface::surfaceMaterial(), UpdateResult(), Acts::detail::PointwiseMaterialInteraction::updateState(), Acts::Test::volume, and Acts::TrackingVolume::volumeMaterial().

+ Here is the call graph for this function:

template<typename propagator_state_t >
void Acts::MaterialInteractor::operator() ( propagator_state_t &  ) const
inline

Material interaction has no pure observer.

Definition at line 168 of file MaterialInteractor.hpp.

View newest version in sPHENIX GitHub at line 168 of file MaterialInteractor.hpp

void Acts::MaterialInteractor::recordResult ( const detail::PointwiseMaterialInteraction d,
result_type result 
) const
inlineprivate

This function records the material effect.

Parameters
[in]dData cache container
[in,out]resultResult storage

Definition at line 175 of file MaterialInteractor.hpp.

View newest version in sPHENIX GitHub at line 175 of file MaterialInteractor.hpp

References Acts::MaterialInteraction::deltaP, Acts::detail::PointwiseMaterialInteraction::dir, Acts::MaterialInteraction::direction, Acts::MaterialInteractor::Result::materialInL0, Acts::MaterialInteractor::Result::materialInteractions, Acts::MaterialInteractor::Result::materialInX0, Acts::MaterialInteraction::materialProperties, Acts::detail::PointwiseMaterialInteraction::momentum, Acts::detail::PointwiseMaterialInteraction::nextP, Acts::detail::PointwiseMaterialInteraction::pathCorrection, Acts::MaterialInteraction::pathCorrection, Acts::detail::PointwiseMaterialInteraction::pos, Acts::MaterialInteraction::position, recordInteractions, Acts::MaterialInteraction::sigmaPhi2, Acts::MaterialInteraction::sigmaQoP2, Acts::MaterialInteraction::sigmaTheta2, Acts::detail::PointwiseMaterialInteraction::slab, Acts::detail::PointwiseMaterialInteraction::surface, Acts::MaterialInteraction::surface, Acts::MaterialProperties::thicknessInL0(), Acts::MaterialProperties::thicknessInX0(), Acts::detail::PointwiseMaterialInteraction::time, Acts::MaterialInteraction::time, Acts::detail::PointwiseMaterialInteraction::variancePhi, Acts::detail::PointwiseMaterialInteraction::varianceQoverP, Acts::detail::PointwiseMaterialInteraction::varianceTheta, and Acts::MaterialInteraction::volume.

Referenced by operator()().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename propagator_state_t , typename stepper_t >
void Acts::MaterialInteractor::UpdateResult ( propagator_state_t &  state,
const stepper_t &  stepper,
result_type result 
) const
inlineprivate

This function update the previous material step.

Parameters
[in]dData cache container
[in,out]resultResult storage

Definition at line 223 of file MaterialInteractor.hpp.

View newest version in sPHENIX GitHub at line 223 of file MaterialInteractor.hpp

References Acts::MaterialInteractor::Result::materialInL0, Acts::MaterialInteractor::Result::materialInteractions, Acts::MaterialInteractor::Result::materialInX0, and momentum.

Referenced by operator()().

+ Here is the caller graph for this function:

Member Data Documentation

bool Acts::MaterialInteractor::energyLoss = true

Whether to consider energy loss.

Definition at line 60 of file MaterialInteractor.hpp.

View newest version in sPHENIX GitHub at line 60 of file MaterialInteractor.hpp

Referenced by operator()().

bool Acts::MaterialInteractor::multipleScattering = true

Whether to consider multiple scattering.

Definition at line 58 of file MaterialInteractor.hpp.

View newest version in sPHENIX GitHub at line 58 of file MaterialInteractor.hpp

Referenced by operator()().

bool Acts::MaterialInteractor::recordInteractions = false

Whether to record all material interactions.

Definition at line 62 of file MaterialInteractor.hpp.

View newest version in sPHENIX GitHub at line 62 of file MaterialInteractor.hpp

Referenced by operator()(), and recordResult().


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