ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::EigenStepperDefaultExtension Struct Reference

Default evaluator of the k_i's and elements of the transport matrix D of the RKN4 stepping. More...

#include <Acts/Propagator/EigenStepperDefaultExtension.hpp>

Public Member Functions

template<typename stepper_t>
bool finalize (typename stepper_t::State &state, const stepper_t &stepper, const IVolumeMaterial *volumeMaterial, const double h) const
 Veto function after a RKN4 step was accepted by judging on the error of the step.
template<typename stepper_t>
bool finalize (typename stepper_t::State &state, const stepper_t &stepper, const IVolumeMaterial *volumeMaterial, const double h, FreeMatrix &D) const
 Veto function after a RKN4 step was accepted by judging on the error of the step.
template<int i, typename stepper_t>
requires (i >= 0 && i <= 3)
bool k (const typename stepper_t::State &state, const stepper_t &stepper, const IVolumeMaterial *volumeMaterial, Vector3 &knew, const Vector3 &bField, std::array< double, 4 > &kQoP, const double h=0., const Vector3 &kprev=Vector3::Zero())
 Evaluator of the k_i's of the RKN4.

Detailed Description

Default evaluator of the k_i's and elements of the transport matrix D of the RKN4 stepping.

This is a pure implementation by textbook.

Member Function Documentation

◆ finalize() [1/2]

template<typename stepper_t>
bool Acts::EigenStepperDefaultExtension::finalize ( typename stepper_t::State & state,
const stepper_t & stepper,
const IVolumeMaterial * volumeMaterial,
const double h ) const

Veto function after a RKN4 step was accepted by judging on the error of the step.

Since the textbook does not deliver further vetos, this is a dummy function.

Template Parameters
stepper_tType of the stepper
Parameters
[in]stateState of the stepper
[in]stepperStepper of the propagation
[in]volumeMaterialMaterial of the volume
[in]hStep size
Returns
Boolean flag if the calculation is valid

◆ finalize() [2/2]

template<typename stepper_t>
bool Acts::EigenStepperDefaultExtension::finalize ( typename stepper_t::State & state,
const stepper_t & stepper,
const IVolumeMaterial * volumeMaterial,
const double h,
FreeMatrix & D ) const

Veto function after a RKN4 step was accepted by judging on the error of the step.

Since the textbook does not deliver further vetos, this is just for the evaluation of the transport matrix.

Template Parameters
stepper_tType of the stepper
Parameters
[in]stateState of the stepper
[in]stepperStepper of the propagation
[in]volumeMaterialMaterial of the volume
[in]hStep size
[out]DTransport matrix
Returns
Boolean flag if the calculation is valid

◆ k()

template<int i, typename stepper_t>
requires (i >= 0 && i <= 3)
bool Acts::EigenStepperDefaultExtension::k ( const typename stepper_t::State & state,
const stepper_t & stepper,
const IVolumeMaterial * volumeMaterial,
Vector3 & knew,
const Vector3 & bField,
std::array< double, 4 > & kQoP,
const double h = 0.,
const Vector3 & kprev = Vector3::Zero() )

Evaluator of the k_i's of the RKN4.

For the case of i = 0 this step sets up qop, too.

Template Parameters
iIndex of the k_i, i = [0, 3]
stepper_tType of the stepper
Parameters
[in]stateState of the stepper
[in]stepperStepper of the propagation
[in]volumeMaterialMaterial of the volume
[out]knewNext k_i that is evaluated
[in]bFieldB-Field at the evaluation position
[out]kQoPk_i elements of the momenta
[in]hStep size (= 0. ^ 0.5 * StepSize ^ StepSize)
[in]kprevEvaluated k_{i - 1}
Returns
Boolean flag if the calculation is valid