Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::StepperExtensionList< extensions > Struct Template Reference

Container of extensions used in the stepper of the propagation. This struct allows a broadcast of function calls for each element in the list. The broadcasts occur for a certain function at each step in a specific order. The first function is an evaluater if an extension is or how many extensions are applicable for an upcoming step. The next functions called are the evaluations of the k_1 - k_4 or the RKN4 integration. The last function call in a step is the finalize() method. This method is an overloaded function (optionally propagates the covariance). Each method has the possibility to break the evaluation of a given step if an extension reports that something went wrong (e.g. a particle lost too much momentum during the step) More...

#include <acts/blob/sPHENIX/Core/include/Acts/Propagator/StepperExtensionList.hpp>

+ Inheritance diagram for Acts::StepperExtensionList< extensions >:
+ Collaboration diagram for Acts::StepperExtensionList< extensions >:

Public Member Functions

template<typename propagator_state_t , typename stepper_t , typename navigtor_t >
bool validExtensionForStep (const propagator_state_t &state, const stepper_t &stepper, const navigtor_t &navigator)
 Evaluation function to set valid extensions for an upcoming integration step.
 
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, Vector3 &knew, const Vector3 &bField, std::array< double, 4 > &kQoP, const int i, const double h=0., const Vector3 &kprev=Vector3::Zero())
 This functions broadcasts the call for evaluating a generic k. It collects all arguments and extensions, test their validity for the evaluation and passes them forward for evaluation and returns a boolean as indicator if the evaluation is valid.
 
template<typename propagator_state_t , typename stepper_t , typename navigator_t >
bool k1 (const propagator_state_t &state, const stepper_t &stepper, const navigator_t &navigator, Vector3 &knew, const Vector3 &bField, std::array< double, 4 > &kQoP)
 This functions broadcasts the call for evaluating k1. It collects all arguments and extensions, test their validity for the evaluation and passes them forward for evaluation and returns a boolean as indicator if the evaluation is valid.
 
template<typename propagator_state_t , typename stepper_t , typename navigator_t >
bool k2 (const propagator_state_t &state, const stepper_t &stepper, const navigator_t &navigator, Vector3 &knew, const Vector3 &bField, std::array< double, 4 > &kQoP, const double h, const Vector3 &kprev)
 This functions broadcasts the call for evaluating k2. It collects all arguments and extensions and passes them forward for evaluation and returns a boolean as indicator if the evaluation is valid.
 
template<typename propagator_state_t , typename stepper_t , typename navigator_t >
bool k3 (const propagator_state_t &state, const stepper_t &stepper, const navigator_t &navigator, Vector3 &knew, const Vector3 &bField, std::array< double, 4 > &kQoP, const double h, const Vector3 &kprev)
 This functions broadcasts the call for evaluating k3. It collects all arguments and extensions and passes them forward for evaluation and returns a boolean as indicator if the evaluation is valid.
 
template<typename propagator_state_t , typename stepper_t , typename navigator_t >
bool k4 (const propagator_state_t &state, const stepper_t &stepper, const navigator_t &navigator, Vector3 &knew, const Vector3 &bField, std::array< double, 4 > &kQoP, const double h, const Vector3 &kprev)
 This functions broadcasts the call for evaluating k4. It collects all arguments and extensions and passes them forward for evaluation and returns a boolean as indicator if the evaluation is valid.
 
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)
 This functions broadcasts the call of the method finalize(). It collects all extensions and arguments and passes them forward for evaluation and returns a boolean.
 
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)
 This functions broadcasts the call of the method finalize(). It collects all extensions and arguments and passes them forward for evaluation and returns a boolean.
 

Private Attributes

std::array< bool, nExtensionsvalidExtensions {}
 

Static Private Attributes

static constexpr unsigned int nExtensions = sizeof...(extensions)
 

Additional Inherited Members

- Private Member Functions inherited from Acts::detail::Extendable< extensions...>
 Extendable ()=default
 Default constructor.
 
 Extendable (const Extendable< extensions_t...> &extendable)=default
 Default copy constructor.
 
 Extendable (Extendable< extensions_t...> &&extendable)=default
 
 Extendable (const std::tuple< extensions_t...> &extensions)
 
 Extendable (std::tuple< extensions_t...> &&extensions)
 
Extendable< extensions_t...> & operator= (const Extendable< extensions_t...> &extendable)=default
 
Extendable< extensions_t...> & operator= (Extendable< extensions_t...> &&extendable)=default
 
Extendable< extensions_t...,
appendices_t...> 
append (appendices_t...aps) const
 
const extension_t & get () const
 
extension_t & get ()
 
const std::tuple
< extensions_t...> & 
tuple () const
 
std::tuple< extensions_t...> & tuple ()
 

Detailed Description

template<typename... extensions>
struct Acts::StepperExtensionList< extensions >

Container of extensions used in the stepper of the propagation. This struct allows a broadcast of function calls for each element in the list. The broadcasts occur for a certain function at each step in a specific order. The first function is an evaluater if an extension is or how many extensions are applicable for an upcoming step. The next functions called are the evaluations of the k_1 - k_4 or the RKN4 integration. The last function call in a step is the finalize() method. This method is an overloaded function (optionally propagates the covariance). Each method has the possibility to break the evaluation of a given step if an extension reports that something went wrong (e.g. a particle lost too much momentum during the step)

Template Parameters
extensionsTypes of the extensions

Definition at line 37 of file StepperExtensionList.hpp.

View newest version in sPHENIX GitHub at line 37 of file StepperExtensionList.hpp

Member Function Documentation

template<typename... extensions>
template<typename propagator_state_t , typename stepper_t , typename navigator_t >
bool Acts::StepperExtensionList< extensions >::finalize ( propagator_state_t &  state,
const stepper_t &  stepper,
const navigator_t &  navigator,
const double  h,
FreeMatrix D 
)
inline

This functions broadcasts the call of the method finalize(). It collects all extensions and arguments and passes them forward for evaluation and returns a boolean.

Definition at line 171 of file StepperExtensionList.hpp.

View newest version in sPHENIX GitHub at line 171 of file StepperExtensionList.hpp

References h, N, Acts::detail::Extendable< extensions...>::tuple(), Acts::StepperExtensionList< extensions >::validExtensions, and value.

Referenced by Acts::StepperExtensionList< extensions >::finalize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename... extensions>
template<typename propagator_state_t , typename stepper_t , typename navigator_t >
bool Acts::StepperExtensionList< extensions >::finalize ( propagator_state_t &  state,
const stepper_t &  stepper,
const navigator_t &  navigator,
const double  h 
)
inline

This functions broadcasts the call of the method finalize(). It collects all extensions and arguments and passes them forward for evaluation and returns a boolean.

Definition at line 203 of file StepperExtensionList.hpp.

View newest version in sPHENIX GitHub at line 203 of file StepperExtensionList.hpp

References Acts::StepperExtensionList< extensions >::finalize(), h, N, Acts::detail::Extendable< extensions...>::tuple(), Acts::StepperExtensionList< extensions >::validExtensions, and value.

+ Here is the call graph for this function:

template<typename... extensions>
template<typename propagator_state_t , typename stepper_t , typename navigator_t >
bool Acts::StepperExtensionList< extensions >::k ( const propagator_state_t &  state,
const stepper_t &  stepper,
const navigator_t &  navigator,
Vector3 knew,
const Vector3 bField,
std::array< double, 4 > &  kQoP,
const int  i,
const double  h = 0.,
const Vector3 kprev = Vector3::Zero() 
)
inline

This functions broadcasts the call for evaluating a generic k. It collects all arguments and extensions, test their validity for the evaluation and passes them forward for evaluation and returns a boolean as indicator if the evaluation is valid.

Definition at line 91 of file StepperExtensionList.hpp.

View newest version in sPHENIX GitHub at line 91 of file StepperExtensionList.hpp

References h, i, N, Acts::detail::Extendable< extensions...>::tuple(), Acts::StepperExtensionList< extensions >::validExtensions, and value.

Referenced by Acts::StepperExtensionList< extensions >::k1(), Acts::StepperExtensionList< extensions >::k2(), Acts::StepperExtensionList< extensions >::k3(), and Acts::StepperExtensionList< extensions >::k4().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename... extensions>
template<typename propagator_state_t , typename stepper_t , typename navigator_t >
bool Acts::StepperExtensionList< extensions >::k1 ( const propagator_state_t &  state,
const stepper_t &  stepper,
const navigator_t &  navigator,
Vector3 knew,
const Vector3 bField,
std::array< double, 4 > &  kQoP 
)
inline

This functions broadcasts the call for evaluating k1. It collects all arguments and extensions, test their validity for the evaluation and passes them forward for evaluation and returns a boolean as indicator if the evaluation is valid.

Definition at line 127 of file StepperExtensionList.hpp.

View newest version in sPHENIX GitHub at line 127 of file StepperExtensionList.hpp

References Acts::StepperExtensionList< extensions >::k().

Referenced by pymsin(), pyprep(), pyqqbh(), pysugi(), and rk4step().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename... extensions>
template<typename propagator_state_t , typename stepper_t , typename navigator_t >
bool Acts::StepperExtensionList< extensions >::k2 ( const propagator_state_t &  state,
const stepper_t &  stepper,
const navigator_t &  navigator,
Vector3 knew,
const Vector3 bField,
std::array< double, 4 > &  kQoP,
const double  h,
const Vector3 kprev 
)
inline

This functions broadcasts the call for evaluating k2. It collects all arguments and extensions and passes them forward for evaluation and returns a boolean as indicator if the evaluation is valid.

Definition at line 138 of file StepperExtensionList.hpp.

View newest version in sPHENIX GitHub at line 138 of file StepperExtensionList.hpp

References Acts::StepperExtensionList< extensions >::k().

+ Here is the call graph for this function:

template<typename... extensions>
template<typename propagator_state_t , typename stepper_t , typename navigator_t >
bool Acts::StepperExtensionList< extensions >::k3 ( const propagator_state_t &  state,
const stepper_t &  stepper,
const navigator_t &  navigator,
Vector3 knew,
const Vector3 bField,
std::array< double, 4 > &  kQoP,
const double  h,
const Vector3 kprev 
)
inline

This functions broadcasts the call for evaluating k3. It collects all arguments and extensions and passes them forward for evaluation and returns a boolean as indicator if the evaluation is valid.

Definition at line 149 of file StepperExtensionList.hpp.

View newest version in sPHENIX GitHub at line 149 of file StepperExtensionList.hpp

References Acts::StepperExtensionList< extensions >::k().

Referenced by fg(), and fgp().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename... extensions>
template<typename propagator_state_t , typename stepper_t , typename navigator_t >
bool Acts::StepperExtensionList< extensions >::k4 ( const propagator_state_t &  state,
const stepper_t &  stepper,
const navigator_t &  navigator,
Vector3 knew,
const Vector3 bField,
std::array< double, 4 > &  kQoP,
const double  h,
const Vector3 kprev 
)
inline

This functions broadcasts the call for evaluating k4. It collects all arguments and extensions and passes them forward for evaluation and returns a boolean as indicator if the evaluation is valid.

Definition at line 160 of file StepperExtensionList.hpp.

View newest version in sPHENIX GitHub at line 160 of file StepperExtensionList.hpp

References Acts::StepperExtensionList< extensions >::k().

Referenced by rk4step().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename... extensions>
template<typename propagator_state_t , typename stepper_t , typename navigtor_t >
bool Acts::StepperExtensionList< extensions >::validExtensionForStep ( const propagator_state_t &  state,
const stepper_t &  stepper,
const navigtor_t &  navigator 
)
inline

Evaluation function to set valid extensions for an upcoming integration step.

Template Parameters
propagator_state_tType of the state of the propagator
stepper_tType of the stepper
navigtor_tType of the navigator
Parameters
[in]stateState of the propagator
[in]stepperStepper of the propagation
[in]navigatorNavigator of the propagation

Definition at line 69 of file StepperExtensionList.hpp.

View newest version in sPHENIX GitHub at line 69 of file StepperExtensionList.hpp

References testing::internal::move(), Acts::detail::Extendable< extensions...>::tuple(), and Acts::StepperExtensionList< extensions >::validExtensions.

+ Here is the call graph for this function:

Member Data Documentation

template<typename... extensions>
constexpr unsigned int Acts::StepperExtensionList< extensions >::nExtensions = sizeof...(extensions)
staticprivate

Definition at line 43 of file StepperExtensionList.hpp.

View newest version in sPHENIX GitHub at line 43 of file StepperExtensionList.hpp

template<typename... extensions>
std::array<bool, nExtensions> Acts::StepperExtensionList< extensions >::validExtensions {}
private

The documentation for this struct was generated from the following file: