EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
|
Propagator for particles (optionally in a magnetic field) More...
#include <acts/blob/sPHENIX/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 < CurvilinearTrackParameters, 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 < BoundTrackParameters, 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< BoundTrackParameters, Jacobian, double > |
using | CurvilinearState = std::tuple< CurvilinearTrackParameters, 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. | |
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 220 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 220 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 322 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 322 of file Propagator.hpp
|
private |
Definition at line 222 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 222 of file Propagator.hpp
|
private |
Definition at line 224 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 224 of file Propagator.hpp
|
private |
Definition at line 221 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 221 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 236 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 236 of file Propagator.hpp
using Acts::Propagator< stepper_t, navigator_t >::NavigatorState = typename navigator_t::State |
Typedef the navigator state.
Definition at line 242 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 242 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 233 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 233 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 239 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 239 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 248 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 248 of file Propagator.hpp
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 90 of file Propagator.ipp.
View newest version in sPHENIX GitHub at line 90 of file Propagator.ipp
References Acts::Concepts::has_method, eicpy.build::options, start(), and value.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and Acts::Test::BOOST_DATA_TEST_CASE().
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 158 of file Propagator.ipp.
View newest version in sPHENIX GitHub at line 158 of file Propagator.ipp
References Acts::Concepts::has_method, eicpy.build::options, start(), and charm_jet_tagging_optimization_study::target.
|
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
References ACTS_ERROR, ACTS_VERBOSE, and Acts::UnitConstants::s.
|
private |
Implementation of navigator.
Definition at line 403 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 403 of file Propagator.hpp
|
private |
Implementation of propagation algorithm.
Definition at line 400 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 400 of file Propagator.hpp