|
ACTS
Experiment-independent tracking
|
Evaluator of the k_i's and elements of the transport matrix D of the RKN4 stepping. More...
#include <Acts/Propagator/EigenStepperDenseExtension.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 |
| After a RKN4 step was accepted by the stepper this method has an additional veto on the quality 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 |
| After a RKN4 step was accepted by the stepper this method has an additional veto on the quality 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. | |
Public Attributes | |
| double | currentMomentum = 0. |
| Momentum at a certain point. | |
| EigenStepperDefaultExtension | defaultExtension |
| Fallback extension. | |
| double | dgdqopValue = 0. |
| Derivative d(dEds)d(q/p) evaluated at the initial point. | |
| std::array< double, 4 > | dLdl {} |
| Derivatives dLambda''dlambda at each sub-step point. | |
| std::array< double, 4 > | dPds {} |
| Derivatives dPds at each sub-step. | |
| std::array< double, 4 > | energy {} |
| Energy at each sub-step. | |
| double | g = 0. |
| Derivative dEds at the initial point. | |
| double | initialMomentum = 0. |
| Particles momentum at k1. | |
| std::array< double, 4 > | Lambdappi {} |
| Lambda''_i. | |
| Material | material = Material::Vacuum() |
| Material that will be passed TODO : Might not be needed anymore. | |
| std::array< double, 4 > | qop {} |
| q/p at each sub-step | |
| std::array< double, 4 > | tKi {} |
| k_i equivalent for the time propagation | |
Evaluator of the k_i's and elements of the transport matrix D of the RKN4 stepping.
This implementation involves energy loss due to ionisation, bremsstrahlung, pair production and photonuclear interaction in the propagation and the Jacobian. These effects will only occur if the propagation is in a TrackingVolume with attached material.
| bool Acts::EigenStepperDenseExtension::finalize | ( | typename stepper_t::State & | state, |
| const stepper_t & | stepper, | ||
| const IVolumeMaterial * | volumeMaterial, | ||
| const double | h ) const |
After a RKN4 step was accepted by the stepper this method has an additional veto on the quality of the step.
The veto lies in evaluation of the energy loss and the therewith constrained to keep the momentum after the step in reasonable values.
| stepper_t | Type of the stepper |
| [in] | state | State of the stepper |
| [in] | stepper | Stepper of the propagator |
| [in] | volumeMaterial | Material of the volume |
| [in] | h | Step size |
| bool Acts::EigenStepperDenseExtension::finalize | ( | typename stepper_t::State & | state, |
| const stepper_t & | stepper, | ||
| const IVolumeMaterial * | volumeMaterial, | ||
| const double | h, | ||
| FreeMatrix & | D ) const |
After a RKN4 step was accepted by the stepper this method has an additional veto on the quality of the step.
The veto lies in the evaluation of the energy loss, the therewith constrained to keep the momentum after the step in reasonable values and the evaluation of the transport matrix.
| stepper_t | Type of the stepper |
| [in] | state | State of the stepper |
| [in] | stepper | Stepper of the propagator |
| [in] | volumeMaterial | Material of the volume |
| [in] | h | Step size |
| [out] | D | Transport matrix |
| bool Acts::EigenStepperDenseExtension::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 member parameters, too.
| i | Index of the k_i, i = [0, 3] |
| stepper_t | Type of the stepper |
| [in] | state | State of the stepper |
| [in] | stepper | Stepper of the propagator |
| [in] | volumeMaterial | Material of the volume |
| [out] | knew | Next k_i that is evaluated |
| [out] | kQoP | k_i elements of the momenta |
| [in] | bField | B-Field at the evaluation position |
| [in] | h | Step size (= 0. ^ 0.5 * StepSize ^ StepSize) |
| [in] | kprev | Evaluated k_{i - 1} |
| double Acts::EigenStepperDenseExtension::currentMomentum = 0. |
Momentum at a certain point.
| EigenStepperDefaultExtension Acts::EigenStepperDenseExtension::defaultExtension |
Fallback extension.
| double Acts::EigenStepperDenseExtension::dgdqopValue = 0. |
Derivative d(dEds)d(q/p) evaluated at the initial point.
| std::array<double, 4> Acts::EigenStepperDenseExtension::dLdl {} |
Derivatives dLambda''dlambda at each sub-step point.
| std::array<double, 4> Acts::EigenStepperDenseExtension::dPds {} |
Derivatives dPds at each sub-step.
| std::array<double, 4> Acts::EigenStepperDenseExtension::energy {} |
Energy at each sub-step.
| double Acts::EigenStepperDenseExtension::g = 0. |
Derivative dEds at the initial point.
| double Acts::EigenStepperDenseExtension::initialMomentum = 0. |
Particles momentum at k1.
| std::array<double, 4> Acts::EigenStepperDenseExtension::Lambdappi {} |
Lambda''_i.
| Material Acts::EigenStepperDenseExtension::material = Material::Vacuum() |
Material that will be passed TODO : Might not be needed anymore.
| std::array<double, 4> Acts::EigenStepperDenseExtension::qop {} |
q/p at each sub-step
| std::array<double, 4> Acts::EigenStepperDenseExtension::tKi {} |
k_i equivalent for the time propagation