Struct DenseEnvironmentExtension¶
Defined in File DenseEnvironmentExtension.hpp
Struct Documentation¶
-
struct
Acts
::
DenseEnvironmentExtension
¶ Evaluater of the k_i’s and elements of the transport matrix D of the RKN4 stepping.
This implementation involves energy loss due to ioninisation, 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.
Public Functions
-
DenseEnvironmentExtension
() = default¶ Default constructor.
-
template<typename
propagator_state_t
, typenamestepper_t
>
intbid
(const propagator_state_t &state, const stepper_t &stepper) const¶ Control function if the step evaluation would be valid.
- Return
Boolean flag if the step would be valid
- Template Parameters
propagator_state_t
: Type of the state of the propagatorstepper_t
: Type of the stepper
- Parameters
[in] state
: State of the propagator
-
template<typename
propagator_state_t
, typenamestepper_t
>
boolfinalize
(propagator_state_t &state, const stepper_t &stepper, 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.
- Return
Boolean flag if the calculation is valid
- Template Parameters
propagator_state_t
: Type of the state of the propagatorstepper_t
: Type of the stepper
- Parameters
[in] state
: State of the propagator[in] h
: Step size
-
template<typename
propagator_state_t
, typenamestepper_t
>
boolfinalize
(propagator_state_t &state, const stepper_t &stepper, 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.
- Return
Boolean flag if the calculation is valid
- Template Parameters
propagator_state_t
: Type of the state of the propagatorstepper_t
: Type of the stepper
- Parameters
[in] state
: State of the propagator[in] h
: Step size[out] D
: Transport matrix
-
template<typename
propagator_state_t
, typenamestepper_t
>
boolk
(const propagator_state_t &state, const stepper_t &stepper, Vector3D &knew, const Vector3D &bField, std::array<double, 4> &kQoP, const int i = 0, const double h = 0., const Vector3D &kprev = Vector3D())¶ Evaluater of the k_i’s of the RKN4.
For the case of i = 0 this step sets up member parameters, too.
- Return
Boolean flag if the calculation is valid
- Template Parameters
stepper_state_t
: Type of the state of the propagatorstepper_t
: Type of the stepper
- Parameters
[in] state
: State of the propagator[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] i
: Index of the k_i, i = [0, 3][in] h
: Step size (= 0. ^ 0.5 * StepSize ^ StepSize)[in] kprev
: Evaluated k_{i - 1}
Public Members
-
double
currentMomentum
= 0.¶ Momentum at a certain point.
-
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.
-
std::array<double, 4>
qop
¶ q/p at each sub-step
-
std::array<double, 4>
tKi
¶ k_i equivalent for the time propagation
-