Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::detail::PointwiseMaterialInteraction Struct Reference

Struct to handle pointwise material interaction. More...

#include <acts/blob/sPHENIX/Core/include/Acts/Propagator/detail/PointwiseMaterialInteraction.hpp>

+ Collaboration diagram for Acts::detail::PointwiseMaterialInteraction:

Public Member Functions

template<typename propagator_state_t , typename stepper_t >
 PointwiseMaterialInteraction (const Surface *sSurface, const propagator_state_t &state, const stepper_t &stepper)
 Constructor.
 
template<typename propagator_state_t , typename navigator_t >
bool evaluateMaterialSlab (const propagator_state_t &state, const navigator_t &navigator, MaterialUpdateStage updateStage=MaterialUpdateStage::FullUpdate)
 This function evaluates the material properties to interact with.
 
void evaluatePointwiseMaterialInteraction (bool multipleScattering, bool energyLoss)
 This function evaluate the material effects.
 
template<typename propagator_state_t , typename stepper_t >
void updateState (propagator_state_t &state, const stepper_t &stepper, NoiseUpdateMode updateMode=addNoise)
 Update the state.
 

Public Attributes

const Surfacesurface = nullptr
 Data from the propagation state.
 
const Vector3 pos = Vector3(0., 0., 0)
 The particle position at the interaction.
 
const double time = 0.0
 The particle time at the interaction.
 
const Vector3 dir = Vector3(0., 0., 0)
 The particle direction at the interaction.
 
const float qOverP = 0.0
 The particle q/p at the interaction.
 
const float absQ = 0.0
 The absolute particle charge.
 
const float momentum = 0.0
 The particle momentum at the interaction.
 
const float mass = 0.0
 The particle mass.
 
const PdgParticle absPdg = PdgParticle::eInvalid
 The particle absolute pdg.
 
const bool performCovarianceTransport = false
 The covariance transport decision at the interaction.
 
const Direction navDir
 The navigation direction.
 
MaterialSlab slab
 The effective, passed material properties including the path correction.
 
double pathCorrection = 0.
 The path correction factor due to non-zero incidence on the surface.
 
double variancePhi = 0.
 Expected phi variance due to the interactions.
 
double varianceTheta = 0.
 Expected theta variance due to the interactions.
 
double varianceQoverP = 0.
 Expected q/p variance due to the interactions.
 
double Eloss = 0.
 The energy change due to the interaction.
 
double nextP = 0.
 The momentum after the interaction.
 

Private Member Functions

void covarianceContributions (bool multipleScattering, bool energyLoss)
 Evaluates the contributions to the covariance matrix.
 
double updateVariance (double variance, double change, NoiseUpdateMode updateMode=addNoise) const
 Convenience method for better readability.
 

Detailed Description

Struct to handle pointwise material interaction.

Definition at line 28 of file PointwiseMaterialInteraction.hpp.

View newest version in sPHENIX GitHub at line 28 of file PointwiseMaterialInteraction.hpp

Constructor & Destructor Documentation

template<typename propagator_state_t , typename stepper_t >
Acts::detail::PointwiseMaterialInteraction::PointwiseMaterialInteraction ( const Surface sSurface,
const propagator_state_t &  state,
const stepper_t &  stepper 
)
inline

Constructor.

Template Parameters
propagator_state_tType of the propagator state
stepper_tType of the stepper
Parameters
[in]sSurfaceThe current surface
[in]stateState of the propagation
[in]stepperStepper in use

Definition at line 77 of file PointwiseMaterialInteraction.hpp.

View newest version in sPHENIX GitHub at line 77 of file PointwiseMaterialInteraction.hpp

Member Function Documentation

void Acts::detail::PointwiseMaterialInteraction::covarianceContributions ( bool  multipleScattering,
bool  energyLoss 
)
private

Evaluates the contributions to the covariance matrix.

Parameters
[in]multipleScatteringBoolean to indicate the application of multiple scattering
[in]energyLossBoolean to indicate the application of energy loss

Definition at line 27 of file PointwiseMaterialInteraction.cpp.

View newest version in sPHENIX GitHub at line 27 of file PointwiseMaterialInteraction.cpp

References absPdg, absQ, Acts::computeEnergyLossLandauSigmaQOverP(), Acts::computeMultipleScatteringTheta0(), dir, mass, Acts::VectorHelpers::perp(), qOverP, slab, variancePhi, varianceQoverP, and varianceTheta.

Referenced by evaluatePointwiseMaterialInteraction().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename propagator_state_t , typename navigator_t >
bool Acts::detail::PointwiseMaterialInteraction::evaluateMaterialSlab ( const propagator_state_t &  state,
const navigator_t &  navigator,
MaterialUpdateStage  updateStage = MaterialUpdateStage::FullUpdate 
)
inline

This function evaluates the material properties to interact with.

Template Parameters
propagator_state_tType of the propagator state
navigator_tType of the navigator
Parameters
[in]stateState of the propagation
[in]navigatorNavigator of the propagation
[in]updateStageThe stage of the material update
Returns
Boolean statement whether the material is valid

Definition at line 103 of file PointwiseMaterialInteraction.hpp.

View newest version in sPHENIX GitHub at line 103 of file PointwiseMaterialInteraction.hpp

References dir, navDir, pathCorrection, Acts::Surface::pathCorrection(), pos, Acts::MaterialSlab::scaleThickness(), slab, and surface.

Referenced by Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::applyMultipleScattering(), Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::materialInteractor(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::materialInteractor(), and Acts::MaterialInteractor::operator()().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Acts::detail::PointwiseMaterialInteraction::evaluatePointwiseMaterialInteraction ( bool  multipleScattering,
bool  energyLoss 
)

This function evaluate the material effects.

Parameters
[in]multipleScatteringBoolean to indicate the application of multiple scattering
[in]energyLossBoolean to indicate the application of energy loss

Definition at line 16 of file PointwiseMaterialInteraction.cpp.

View newest version in sPHENIX GitHub at line 16 of file PointwiseMaterialInteraction.cpp

References absQ, Acts::computeEnergyLossBethe(), covarianceContributions(), Eloss, mass, performCovarianceTransport, qOverP, and slab.

Referenced by Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::applyMultipleScattering(), Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::materialInteractor(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::materialInteractor(), and Acts::MaterialInteractor::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::detail::PointwiseMaterialInteraction::updateState ( propagator_state_t &  state,
const stepper_t &  stepper,
NoiseUpdateMode  updateMode = addNoise 
)
inline

Update the state.

Template Parameters
propagator_state_tType of the propagator state
stepper_tType of the stepper
Parameters
[in]stateState of the propagation
[in]stepperStepper in use
[in]updateModeThe noise update mode (in default: add noise)

Definition at line 144 of file PointwiseMaterialInteraction.hpp.

View newest version in sPHENIX GitHub at line 144 of file PointwiseMaterialInteraction.hpp

References absQ, autodiff::detail::copysign(), dir, Acts::eBoundPhi, Acts::eBoundQOverP, Acts::eBoundTheta, Eloss, mass, Acts::UnitConstants::MeV, momentum, navDir, nextP, pos, qOverP, time, updateVariance(), variancePhi, varianceQoverP, and varianceTheta.

Referenced by Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::applyMultipleScattering(), Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::materialInteractor(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::materialInteractor(), and Acts::MaterialInteractor::operator()().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double Acts::detail::PointwiseMaterialInteraction::updateVariance ( double  variance,
double  change,
NoiseUpdateMode  updateMode = addNoise 
) const
private

Convenience method for better readability.

Parameters
[in]varianceA diagonal entry of the covariance matrix
[in]changeThe change that may be applied to it
[in]updateModeThe noise update mode (in default: add noise)
Returns
The updated variance

Definition at line 48 of file PointwiseMaterialInteraction.cpp.

View newest version in sPHENIX GitHub at line 48 of file PointwiseMaterialInteraction.cpp

References autodiff::detail::copysign().

Referenced by updateState().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

const PdgParticle Acts::detail::PointwiseMaterialInteraction::absPdg = PdgParticle::eInvalid

The particle absolute pdg.

Definition at line 47 of file PointwiseMaterialInteraction.hpp.

View newest version in sPHENIX GitHub at line 47 of file PointwiseMaterialInteraction.hpp

Referenced by covarianceContributions(), and Acts::MaterialInteractor::operator()().

const float Acts::detail::PointwiseMaterialInteraction::absQ = 0.0

The absolute particle charge.

Definition at line 41 of file PointwiseMaterialInteraction.hpp.

View newest version in sPHENIX GitHub at line 41 of file PointwiseMaterialInteraction.hpp

Referenced by covarianceContributions(), evaluatePointwiseMaterialInteraction(), and updateState().

const Vector3 Acts::detail::PointwiseMaterialInteraction::dir = Vector3(0., 0., 0)

The particle direction at the interaction.

Definition at line 37 of file PointwiseMaterialInteraction.hpp.

View newest version in sPHENIX GitHub at line 37 of file PointwiseMaterialInteraction.hpp

Referenced by covarianceContributions(), evaluateMaterialSlab(), Acts::MaterialInteractor::recordResult(), and updateState().

const float Acts::detail::PointwiseMaterialInteraction::mass = 0.0

The particle mass.

Definition at line 45 of file PointwiseMaterialInteraction.hpp.

View newest version in sPHENIX GitHub at line 45 of file PointwiseMaterialInteraction.hpp

Referenced by covarianceContributions(), evaluatePointwiseMaterialInteraction(), Acts::MaterialInteractor::operator()(), and updateState().

const float Acts::detail::PointwiseMaterialInteraction::momentum = 0.0

The particle momentum at the interaction.

Definition at line 43 of file PointwiseMaterialInteraction.hpp.

View newest version in sPHENIX GitHub at line 43 of file PointwiseMaterialInteraction.hpp

Referenced by Acts::MaterialInteractor::operator()(), Acts::MaterialInteractor::recordResult(), and updateState().

const Direction Acts::detail::PointwiseMaterialInteraction::navDir
double Acts::detail::PointwiseMaterialInteraction::nextP = 0.

The momentum after the interaction.

Definition at line 66 of file PointwiseMaterialInteraction.hpp.

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

Referenced by Acts::MaterialInteractor::recordResult(), and updateState().

double Acts::detail::PointwiseMaterialInteraction::pathCorrection = 0.

The path correction factor due to non-zero incidence on the surface.

Definition at line 56 of file PointwiseMaterialInteraction.hpp.

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

Referenced by evaluateMaterialSlab(), and Acts::MaterialInteractor::recordResult().

const bool Acts::detail::PointwiseMaterialInteraction::performCovarianceTransport = false

The covariance transport decision at the interaction.

Definition at line 49 of file PointwiseMaterialInteraction.hpp.

View newest version in sPHENIX GitHub at line 49 of file PointwiseMaterialInteraction.hpp

Referenced by evaluatePointwiseMaterialInteraction(), and Acts::MaterialInteractor::operator()().

const Vector3 Acts::detail::PointwiseMaterialInteraction::pos = Vector3(0., 0., 0)

The particle position at the interaction.

Definition at line 33 of file PointwiseMaterialInteraction.hpp.

View newest version in sPHENIX GitHub at line 33 of file PointwiseMaterialInteraction.hpp

Referenced by evaluateMaterialSlab(), Acts::MaterialInteractor::recordResult(), and updateState().

const float Acts::detail::PointwiseMaterialInteraction::qOverP = 0.0

The particle q/p at the interaction.

Definition at line 39 of file PointwiseMaterialInteraction.hpp.

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

Referenced by covarianceContributions(), evaluatePointwiseMaterialInteraction(), and updateState().

MaterialSlab Acts::detail::PointwiseMaterialInteraction::slab

The effective, passed material properties including the path correction.

Definition at line 54 of file PointwiseMaterialInteraction.hpp.

View newest version in sPHENIX GitHub at line 54 of file PointwiseMaterialInteraction.hpp

Referenced by covarianceContributions(), evaluateMaterialSlab(), evaluatePointwiseMaterialInteraction(), Acts::MaterialInteractor::operator()(), and Acts::MaterialInteractor::recordResult().

const Surface* Acts::detail::PointwiseMaterialInteraction::surface = nullptr

Data from the propagation state.

Definition at line 30 of file PointwiseMaterialInteraction.hpp.

View newest version in sPHENIX GitHub at line 30 of file PointwiseMaterialInteraction.hpp

Referenced by evaluateMaterialSlab(), and Acts::MaterialInteractor::recordResult().

const double Acts::detail::PointwiseMaterialInteraction::time = 0.0

The particle time at the interaction.

Definition at line 35 of file PointwiseMaterialInteraction.hpp.

View newest version in sPHENIX GitHub at line 35 of file PointwiseMaterialInteraction.hpp

Referenced by Acts::MaterialInteractor::recordResult(), and updateState().


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