File MaterialInteractor.hpp¶
-
namespace Acts
Set the Geometry Context PLUGIN.
Set the Calibration Context PLUGIN.
Convenience functions to ease creation of and Acts::InterpolatedMaterialMap and to avoid code duplication.
Set the Mangetic Field Context PLUGIN.
Convenience functions to ease creation of and Acts::InterpolatedBFieldMap and to avoid code duplication.
Currently implemented for the two most common formats: rz and xyz.
Typedefs
-
using RecordedMaterial = MaterialInteractor::Result¶
Using some short hands for Recorded Material.
-
struct MaterialInteraction¶
- #include <Acts/Propagator/MaterialInteractor.hpp>
The Material interaction struct It records the surface and the passed material This is only nessecary recorded when configured.
Public Members
-
double deltaP = 0.0¶
The momentum change due to the interaction.
-
MaterialSlab materialSlab¶
The effective, passed material properties including the path correction.
-
double pathCorrection = 1.¶
The path correction factor due to non-zero incidence on the surface.
-
double sigmaPhi2 = 0.0¶
Expected phi variance due to the interactions.
-
double sigmaQoP2 = 0.0¶
Expected q/p variance due to the interactions.
-
double sigmaTheta2 = 0.0¶
Expected theta variance due to the interactions.
-
double time = 0.0¶
The particle time at the interaction.
-
bool updatedVolumeStep = false¶
Update the volume step to implment the proper step size.
-
const TrackingVolume *volume = nullptr¶
The volume where the interaction occured.
-
double deltaP = 0.0¶
-
struct MaterialInteractor¶
- #include <Acts/Propagator/MaterialInteractor.hpp>
Material interactor propagator action.
Apply material interactions at a surface and update the track state.
Public Functions
-
template<typename propagator_state_t, typename stepper_t>
inline void operator()(propagator_state_t &state, const stepper_t &stepper, result_type &result) const¶ 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_t – is the type of Propagagor state
stepper_t – Type of the stepper of the propagation
- Parameters
state – is the mutable propagator state object
stepper – The stepper in use
result – is the mutable result state object
-
template<typename propagator_state_t>
inline void operator()(propagator_state_t&) const¶ Material interaction has no pure observer.
Public Members
-
bool energyLoss = true¶
Whether to consider energy loss.
-
bool multipleScattering = true¶
Whether to consider multiple scattering.
-
bool recordInteractions = false¶
Whether to record all material interactions.
Private Functions
-
inline void recordResult(const detail::PointwiseMaterialInteraction &d, result_type &result) const¶
This function records the material effect.
- Parameters
d – [in] Data cache container
result – [inout] Result storage
-
inline void recordResult(const detail::VolumeMaterialInteraction &d, result_type &result) const¶
This function records the material effect.
- Parameters
d – [in] Data cache container
result – [inout] Result storage
-
template<typename propagator_state_t, typename stepper_t>
inline void UpdateResult(propagator_state_t &state, const stepper_t &stepper, result_type &result) const¶ This function update the previous material step.
- Parameters
state – [inout] The state object
stepper – [in] The stepper instance
result – [inout] Result storage
-
struct Result¶
- #include <Acts/Propagator/MaterialInteractor.hpp>
Simple result struct to be returned It mainly acts as an internal state which is created for every propagation/extrapolation step.
Public Members
-
double materialInL0 = 0.¶
The accumulated materialInL0.
-
std::vector<MaterialInteraction> materialInteractions¶
This one is only filled when recordInteractions is switched on.
-
double materialInX0 = 0.¶
-
double materialInL0 = 0.¶
-
template<typename propagator_state_t, typename stepper_t>
-
using RecordedMaterial = MaterialInteractor::Result¶