Analysis Software
Documentation for sPHENIX simulation software
|
Struct to handle pointwise material interaction. More...
#include <acts/blob/sPHENIX/Core/include/Acts/Propagator/detail/PointwiseMaterialInteraction.hpp>
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 Surface * | surface = 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. | |
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
|
inline |
Constructor.
propagator_state_t | Type of the propagator state |
stepper_t | Type of the stepper |
[in] | sSurface | The current surface |
[in] | state | State of the propagation |
[in] | stepper | Stepper in use |
Definition at line 77 of file PointwiseMaterialInteraction.hpp.
View newest version in sPHENIX GitHub at line 77 of file PointwiseMaterialInteraction.hpp
|
private |
Evaluates the contributions to the covariance matrix.
[in] | multipleScattering | Boolean to indicate the application of multiple scattering |
[in] | energyLoss | Boolean 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().
|
inline |
This function evaluates the material properties to interact with.
propagator_state_t | Type of the propagator state |
navigator_t | Type of the navigator |
[in] | state | State of the propagation |
[in] | navigator | Navigator of the propagation |
[in] | updateStage | The stage of the material update |
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()().
void Acts::detail::PointwiseMaterialInteraction::evaluatePointwiseMaterialInteraction | ( | bool | multipleScattering, |
bool | energyLoss | ||
) |
This function evaluate the material effects.
[in] | multipleScattering | Boolean to indicate the application of multiple scattering |
[in] | energyLoss | Boolean 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()().
|
inline |
Update the state.
propagator_state_t | Type of the propagator state |
stepper_t | Type of the stepper |
[in] | state | State of the propagation |
[in] | stepper | Stepper in use |
[in] | updateMode | The 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()().
|
private |
Convenience method for better readability.
[in] | variance | A diagonal entry of the covariance matrix |
[in] | change | The change that may be applied to it |
[in] | updateMode | The noise update mode (in default: add noise) |
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().
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().
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().
double Acts::detail::PointwiseMaterialInteraction::Eloss = 0. |
The energy change due to the interaction.
Definition at line 64 of file PointwiseMaterialInteraction.hpp.
View newest version in sPHENIX GitHub at line 64 of file PointwiseMaterialInteraction.hpp
Referenced by Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::applyMultipleScattering(), evaluatePointwiseMaterialInteraction(), Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::materialInteractor(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::materialInteractor(), Acts::MaterialInteractor::operator()(), 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 |
The navigation direction.
Definition at line 51 of file PointwiseMaterialInteraction.hpp.
View newest version in sPHENIX GitHub at line 51 of file PointwiseMaterialInteraction.hpp
Referenced by evaluateMaterialSlab(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::materialInteractor(), and updateState().
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()().
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().
double Acts::detail::PointwiseMaterialInteraction::variancePhi = 0. |
Expected phi variance due to the interactions.
Definition at line 58 of file PointwiseMaterialInteraction.hpp.
View newest version in sPHENIX GitHub at line 58 of file PointwiseMaterialInteraction.hpp
Referenced by Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::applyMultipleScattering(), covarianceContributions(), Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::materialInteractor(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::materialInteractor(), Acts::MaterialInteractor::recordResult(), and updateState().
double Acts::detail::PointwiseMaterialInteraction::varianceQoverP = 0. |
Expected q/p variance due to the interactions.
Definition at line 62 of file PointwiseMaterialInteraction.hpp.
View newest version in sPHENIX GitHub at line 62 of file PointwiseMaterialInteraction.hpp
Referenced by Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::applyMultipleScattering(), covarianceContributions(), Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::materialInteractor(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::materialInteractor(), Acts::MaterialInteractor::recordResult(), and updateState().
double Acts::detail::PointwiseMaterialInteraction::varianceTheta = 0. |
Expected theta variance due to the interactions.
Definition at line 60 of file PointwiseMaterialInteraction.hpp.
View newest version in sPHENIX GitHub at line 60 of file PointwiseMaterialInteraction.hpp
Referenced by Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::applyMultipleScattering(), covarianceContributions(), Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::materialInteractor(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::materialInteractor(), Acts::MaterialInteractor::recordResult(), and updateState().