ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
Propagator for particles (optionally in a magnetic field) More...
#include <acts/blob/master/Core/include/Acts/Propagator/Propagator.hpp>
Classes | |
struct | result_type_helper |
Helper struct determining the result's type. More... | |
struct | State |
private Propagator state for navigation and debugging More... | |
Public Types | |
using | Stepper = stepper_t |
Type of the stepper in use for public scope. | |
using | Navigator = navigator_t |
Type of the navigator in use for public scope. | |
using | StepperState = typename Stepper::State |
Type of state object used by the propagation implementation. | |
using | NavigatorState = typename navigator_t::State |
Typedef the navigator state. | |
Public Member Functions | |
Propagator (stepper_t stepper, navigator_t navigator=navigator_t()) | |
template<typename parameters_t , typename propagator_options_t , typename path_aborter_t = PathLimitReached> | |
Result< action_list_t_result_t < CurvilinearParameters, typename propagator_options_t::action_list_type > > | propagate (const parameters_t &start, const propagator_options_t &options) const |
Propagate track parameters. | |
template<typename parameters_t , typename propagator_options_t , typename target_aborter_t = SurfaceReached, typename path_aborter_t = PathLimitReached> | |
Result< action_list_t_result_t < BoundParameters, typename propagator_options_t::action_list_type > > | propagate (const parameters_t &start, const Surface &target, const propagator_options_t &options) const |
Propagate track parameters - User method. | |
Private Types | |
using | Jacobian = BoundMatrix |
using | BoundState = std::tuple< BoundParameters, Jacobian, double > |
using | CurvilinearState = std::tuple< CurvilinearParameters, Jacobian, double > |
template<typename parameters_t , typename action_list_t > | |
using | action_list_t_result_t = typename result_type_helper< parameters_t, action_list_t >::type |
Short-hand type definition for propagation result derived from an action list. | |
Private Member Functions | |
template<typename result_t , typename propagator_state_t > | |
Result< result_t > | propagate_impl (propagator_state_t &state) const |
Propagate track parameters Private method with propagator and stepper state. | |
template<typename propagator_state_t > | |
void | debugLog (propagator_state_t &state, const std::function< std::string()> &logAction) const |
Private Attributes | |
stepper_t | m_stepper |
Implementation of propagation algorithm. | |
navigator_t | m_navigator |
Implementation of navigator. | |
Propagator for particles (optionally in a magnetic field)
The Propagator works with a state objects given at function call This state object contains the thread local state objects
stepper_t | Type of stepper implementation of the propagation |
naviagor_t | Type of the navigator (optional) |
This Propagator class serves as high-level steering code for propagating track parameters. The actual implementation of the propagation has to be implemented in the stepper_t object, which has to provide the following:
Definition at line 204 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 204 of file Propagator.hpp
|
private |
Short-hand type definition for propagation result derived from an action list.
parameters_t | Type of the final track parameters |
action_list_t | List of propagation action types |
Definition at line 305 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 305 of file Propagator.hpp
|
private |
Definition at line 206 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 206 of file Propagator.hpp
|
private |
Definition at line 207 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 207 of file Propagator.hpp
|
private |
Definition at line 205 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 205 of file Propagator.hpp
using Acts::Propagator< stepper_t, navigator_t >::Navigator = navigator_t |
Type of the navigator in use for public scope.
Definition at line 219 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 219 of file Propagator.hpp
using Acts::Propagator< stepper_t, navigator_t >::NavigatorState = typename navigator_t::State |
Typedef the navigator state.
Definition at line 225 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 225 of file Propagator.hpp
using Acts::Propagator< stepper_t, navigator_t >::Stepper = stepper_t |
Type of the stepper in use for public scope.
Definition at line 216 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 216 of file Propagator.hpp
using Acts::Propagator< stepper_t, navigator_t >::StepperState = typename Stepper::State |
Type of state object used by the propagation implementation.
Definition at line 222 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 222 of file Propagator.hpp
|
inlineexplicit |
Constructor from implementation object
stepper | The stepper implementation is moved to a private member |
navigator | The navigator implementation, moved to a private member |
Definition at line 231 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 231 of file Propagator.hpp
|
private |
The private propagation debug logging
It needs to be fed by a lambda function that returns a string, that guarantees that the lambda is only called in the options.debug == true case in order not to spend time when not needed.
propagator_state_t | Type of the nested propagator state object |
state | the propagator state for the debug flag, prefix/length |
logAction | is a callable function that returns a streamable object |
Definition at line 223 of file Propagator.ipp.
View newest version in sPHENIX GitHub at line 223 of file Propagator.ipp
References split().
auto Acts::Propagator< S, N >::propagate | ( | const parameters_t & | start, |
const propagator_options_t & | options | ||
) | const |
Propagate track parameters.
This function performs the propagation of the track parameters using the internal stepper implementation, until at least one abort condition is fulfilled or the maximum number of steps/path length provided in the propagation options is reached.
parameters_t | Type of initial track parameters to propagate |
action_list_t | Type list of actions, type ActionList<> |
aborter_list_t | Type list of abort conditions, type AbortList<> |
propagator_options_t | Type of the propagator options |
[in] | start | initial track parameters to propagate |
[in] | options | Propagation options, type Options<,> |
Convert into return type and fill the result object
Definition at line 89 of file Propagator.ipp.
View newest version in sPHENIX GitHub at line 89 of file Propagator.ipp
References Acts::concept::has_method, S(), and start().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::Test::BOOST_DATA_TEST_CASE(), and FW::TruthVerticesToTracksAlgorithm::execute().
auto Acts::Propagator< S, N >::propagate | ( | const parameters_t & | start, |
const Surface & | target, | ||
const propagator_options_t & | options | ||
) | const |
Propagate track parameters - User method.
This function performs the propagation of the track parameters according to the internal implementation object until at least one abort condition is fulfilled, the destination surface is hit or the maximum number of steps/path length as given in the propagation options is reached.
parameters_t | Type of initial track parameters to propagate |
surface_t | Type of target surface |
action_list_t | Type list of actions |
aborter_list_t | Type list of abort conditions |
propagator_options_t | Type of the propagator options |
[in] | start | Initial track parameters to propagate |
[in] | target | Target surface of to propagate to |
[in] | options | Propagation options |
Definition at line 157 of file Propagator.ipp.
View newest version in sPHENIX GitHub at line 157 of file Propagator.ipp
References Acts::concept::has_method, S(), and start().
|
private |
Propagate track parameters Private method with propagator and stepper state.
This function performs the propagation of the track parameters according to the internal implementation object until at least one abort condition is fulfilled, the destination surface is hit or the maximum number of steps/path length as given in the propagation options is reached.
result_t | Type of the result object for this propagation |
propagator_state_t | Type of of propagator state with options |
[in,out] | result | of the propagation |
[in,out] | state | the propagator state object |
Definition at line 13 of file Propagator.ipp.
View newest version in sPHENIX GitHub at line 13 of file Propagator.ipp
|
private |
Implementation of navigator.
Definition at line 385 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 385 of file Propagator.hpp
|
private |
Implementation of propagation algorithm.
Definition at line 382 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 382 of file Propagator.hpp