Analysis Software
Documentation for sPHENIX simulation software
|
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. More...
#include <acts/blob/sPHENIX/Core/include/Acts/Propagator/detail/GenericDenseEnvironmentExtension.hpp>
Public Types | |
using | Scalar = scalar_t |
using | ThisVector3 = Eigen::Matrix< Scalar, 3, 1 > |
Vector3 replacement for the custom scalar type. | |
Public Member Functions | |
GenericDenseEnvironmentExtension ()=default | |
Default constructor. | |
template<typename propagator_state_t , typename stepper_t , typename navigator_t > | |
int | bid (const propagator_state_t &state, const stepper_t &stepper, const navigator_t &navigator) const |
Control function if the step evaluation would be valid. | |
template<typename propagator_state_t , typename stepper_t , typename navigator_t > | |
bool | k (const propagator_state_t &state, const stepper_t &stepper, const navigator_t &navigator, ThisVector3 &knew, const Vector3 &bField, std::array< Scalar, 4 > &kQoP, const int i=0, const double h=0., const ThisVector3 &kprev=ThisVector3::Zero()) |
Evaluater of the k_i's of the RKN4. For the case of i = 0 this step sets up member parameters, too. | |
template<typename propagator_state_t , typename stepper_t , typename navigator_t > | |
bool | finalize (propagator_state_t &state, const stepper_t &stepper, const navigator_t &, 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. | |
template<typename propagator_state_t , typename stepper_t , typename navigator_t > | |
bool | finalize (propagator_state_t &state, const stepper_t &stepper, const navigator_t &navigator, 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. | |
Public Attributes | |
Scalar | currentMomentum = 0. |
Momentum at a certain point. | |
Scalar | initialMomentum = 0. |
Particles momentum at k1. | |
Material | material |
std::array< Scalar, 4 > | dLdl {} |
Derivatives dLambda''dlambda at each sub-step point. | |
std::array< Scalar, 4 > | qop {} |
q/p at each sub-step | |
std::array< Scalar, 4 > | dPds {} |
Derivatives dPds at each sub-step. | |
Scalar | dgdqopValue = 0. |
Derivative d(dEds)d(q/p) evaluated at the initial point. | |
Scalar | g = 0. |
Derivative dEds at the initial point. | |
std::array< Scalar, 4 > | tKi {} |
k_i equivalent for the time propagation | |
std::array< Scalar, 4 > | Lambdappi {} |
Lambda''_i. | |
std::array< Scalar, 4 > | energy {} |
Energy at each sub-step. | |
Private Member Functions | |
template<typename propagator_state_t , typename stepper_t , typename navigator_t > | |
bool | transportMatrix (propagator_state_t &state, const stepper_t &stepper, const navigator_t &, const double h, FreeMatrix &D) const |
Evaluates the transport matrix D for the jacobian. | |
template<typename propagator_state_t , typename stepper_t > | |
void | initializeEnergyLoss (const propagator_state_t &state, const stepper_t &stepper) |
Initializer of all parameters related to a RKN4 step with energy loss of a particle in material. | |
template<typename propagator_state_t , typename stepper_t > | |
void | updateEnergyLoss (const double mass, const double h, const propagator_state_t &state, const stepper_t &stepper, const int i) |
Update of the kinematic parameters of the RKN4 sub-steps after initialization with energy loss of a particle in material. | |
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.
Definition at line 34 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 34 of file GenericDenseEnvironmentExtension.hpp
using Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::Scalar = scalar_t |
Definition at line 35 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 35 of file GenericDenseEnvironmentExtension.hpp
using Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::ThisVector3 = Eigen::Matrix<Scalar, 3, 1> |
Vector3 replacement for the custom scalar type.
Definition at line 37 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 37 of file GenericDenseEnvironmentExtension.hpp
|
default |
Default constructor.
|
inline |
Control function if the step evaluation would be valid.
propagator_state_t | Type of the state of the propagator |
stepper_t | Type of the stepper |
navigator_t | Type of the navigator |
[in] | state | State of the propagator |
[in] | stepper | Stepper of the propagator |
[in] | navigator | Navigator of the propagator |
Definition at line 79 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 79 of file GenericDenseEnvironmentExtension.hpp
References mass, and particleHypothesis.
|
inline |
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.
propagator_state_t | Type of the state of the propagator |
stepper_t | Type of the stepper |
navigator_t | Type of the navigator |
[in] | state | State of the propagator |
[in] | stepper | Stepper of the propagator |
[in] | h | Step size |
Definition at line 182 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 182 of file GenericDenseEnvironmentExtension.hpp
References Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::dPds, Acts::eFreeQOverP, Acts::eFreeTime, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::g, mass, particleHypothesis, and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::tKi.
Referenced by Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::finalize().
|
inline |
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.
propagator_state_t | Type of the state of the propagator |
stepper_t | Type of the stepper |
navigator_t | Type of the navigator |
[in] | state | State of the propagator |
[in] | stepper | Stepper of the propagator |
[in] | navigator | Navigator of the propagator |
[in] | h | Step size |
[out] | D | Transport matrix |
Definition at line 236 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 236 of file GenericDenseEnvironmentExtension.hpp
References Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::finalize(), and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::transportMatrix().
|
inlineprivate |
Initializer of all parameters related to a RKN4 step with energy loss of a particle in material.
propagator_state_t | Type of the state of the propagator |
stepper_t | Type of the stepper |
[in] | state | Deliverer of configurations |
Definition at line 401 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 401 of file GenericDenseEnvironmentExtension.hpp
References Acts::computeEnergyLossMean(), Acts::computeEnergyLossMode(), Acts::deriveEnergyLossMeanQOverP(), Acts::deriveEnergyLossModeQOverP(), Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::dgdqopValue, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::dLdl, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::dPds, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::energy, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::g, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::initialMomentum, mass, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::material, particleHypothesis, and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::qop.
Referenced by Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::k().
|
inline |
Evaluater of the k_i's of the RKN4. For the case of i = 0 this step sets up member parameters, too.
stepper_state_t | Type of the state of the propagator |
stepper_t | Type of the stepper |
navigator_t | Type of the navigator |
[in] | state | State of the propagator |
[in] | stepper | Stepper of the propagator |
[in] | navigator | Navigator 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} |
Definition at line 120 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 120 of file GenericDenseEnvironmentExtension.hpp
References Acts::VectorHelpers::cross(), Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::currentMomentum, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::energy, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::g, h, i, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::initializeEnergyLoss(), Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::initialMomentum, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::Lambdappi, mass, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::material, particleHypothesis, position, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::qop, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::tKi, and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::updateEnergyLoss().
|
inlineprivate |
Evaluates the transport matrix D for the jacobian.
propagator_state_t | Type of the state of the propagator |
stepper_t | Type of the stepper |
navigator_t | Type of the navigator |
The calculations are based on ATL-SOFT-PUB-2009-002. The update of the Jacobian matrix is requires only the calculation of eq. 17 and 18. Since the terms of eq. 18 are currently 0, this matrix is not needed in the calculation. The matrix A from eq. 17 consists out of 3 different parts. The first one is given by the upper left 3x3 matrix that are calculated by dFdT and dGdT. The second is given by the top 3 lines of the rightmost column. This is calculated by dFdL and dGdL. The remaining non-zero term is calculated directly. The naming of the variables is explained in eq. 11 and are directly related to the initial problem in eq. 7. The evaluation is based on propagating the parameters T and lambda (including g(lambda) and E(lambda)) as given in eq. 16 and evaluating the derivations for matrix A.
Propagation of derivatives of dLambda''dlambda at each sub-step
Definition at line 257 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 257 of file GenericDenseEnvironmentExtension.hpp
References Acts::VectorHelpers::cross(), Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::dLdl, h, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::Lambdappi, mass, particleHypothesis, and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::qop.
Referenced by Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::finalize().
|
inlineprivate |
Update of the kinematic parameters of the RKN4 sub-steps after initialization with energy loss of a particle in material.
propagator_state_t | Type of the state of the propagator |
stepper_t | Type of the stepper |
[in] | h | Stepped distance of the sub-step (1-3) |
[in] | state | State of the stepper |
[in] | i | Index of the sub-step (1-3) |
Definition at line 458 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 458 of file GenericDenseEnvironmentExtension.hpp
References Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::currentMomentum, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::dgdqopValue, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::dLdl, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::dPds, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::energy, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::g, i, Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::initialMomentum, and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::qop.
Referenced by Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::k().
Scalar Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::currentMomentum = 0. |
Momentum at a certain point.
Definition at line 40 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 40 of file GenericDenseEnvironmentExtension.hpp
Referenced by Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::k(), and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::updateEnergyLoss().
Scalar Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::dgdqopValue = 0. |
Derivative d(dEds)d(q/p) evaluated at the initial point.
Definition at line 53 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 53 of file GenericDenseEnvironmentExtension.hpp
Referenced by Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::initializeEnergyLoss(), and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::updateEnergyLoss().
std::array<Scalar, 4> Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::dLdl {} |
Derivatives dLambda''dlambda at each sub-step point.
Definition at line 47 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 47 of file GenericDenseEnvironmentExtension.hpp
Referenced by Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::initializeEnergyLoss(), Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::transportMatrix(), and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::updateEnergyLoss().
std::array<Scalar, 4> Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::dPds {} |
Derivatives dPds at each sub-step.
Definition at line 51 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 51 of file GenericDenseEnvironmentExtension.hpp
Referenced by Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::finalize(), Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::initializeEnergyLoss(), and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::updateEnergyLoss().
std::array<Scalar, 4> Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::energy {} |
Energy at each sub-step.
Definition at line 61 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 61 of file GenericDenseEnvironmentExtension.hpp
Referenced by Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::initializeEnergyLoss(), Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::k(), and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::updateEnergyLoss().
Scalar Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::g = 0. |
Derivative dEds at the initial point.
Definition at line 55 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 55 of file GenericDenseEnvironmentExtension.hpp
Referenced by Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::finalize(), Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::initializeEnergyLoss(), Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::k(), and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::updateEnergyLoss().
Scalar Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::initialMomentum = 0. |
Particles momentum at k1.
Definition at line 42 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 42 of file GenericDenseEnvironmentExtension.hpp
Referenced by Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::initializeEnergyLoss(), Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::k(), and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::updateEnergyLoss().
std::array<Scalar, 4> Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::Lambdappi {} |
Lambda''_i.
Definition at line 59 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 59 of file GenericDenseEnvironmentExtension.hpp
Referenced by Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::k(), and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::transportMatrix().
Material Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::material |
Material that will be passed TODO : Might not be needed anymore
Definition at line 45 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 45 of file GenericDenseEnvironmentExtension.hpp
Referenced by Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::initializeEnergyLoss(), and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::k().
std::array<Scalar, 4> Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::qop {} |
q/p at each sub-step
Definition at line 49 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 49 of file GenericDenseEnvironmentExtension.hpp
Referenced by Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::initializeEnergyLoss(), Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::k(), Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::transportMatrix(), and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::updateEnergyLoss().
std::array<Scalar, 4> Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::tKi {} |
k_i equivalent for the time propagation
Definition at line 57 of file GenericDenseEnvironmentExtension.hpp.
View newest version in sPHENIX GitHub at line 57 of file GenericDenseEnvironmentExtension.hpp
Referenced by Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::finalize(), and Acts::detail::GenericDenseEnvironmentExtension< scalar_t >::k().