Analysis Software
Documentation for sPHENIX simulation software
|
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... | |
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. | |
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. | |
Public Member Functions | |
Propagator (stepper_t stepper, navigator_t navigator=navigator_t(), std::shared_ptr< const Logger > _logger=getDefaultLogger("Propagator", Acts::Logging::INFO)) | |
template<typename parameters_t , typename propagator_options_t , typename path_aborter_t = PathLimitReached> | |
Result< action_list_t_result_t < StepperCurvilinearTrackParameters, typename propagator_options_t::action_list_type > > | propagate (const parameters_t &start, const propagator_options_t &options, bool makeCurvilinear=true) const |
Propagate track parameters. | |
template<typename parameters_t , typename propagator_options_t , typename path_aborter_t = PathLimitReached> | |
Result< action_list_t_result_t < StepperCurvilinearTrackParameters, typename propagator_options_t::action_list_type > > | propagate (const parameters_t &start, const propagator_options_t &options, bool makeCurvilinear, action_list_t_result_t< StepperCurvilinearTrackParameters, typename propagator_options_t::action_list_type > &&inputResult) 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 < StepperBoundTrackParameters, 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. | |
template<typename parameters_t , typename propagator_options_t , typename target_aborter_t = SurfaceReached, typename path_aborter_t = PathLimitReached> | |
Result< action_list_t_result_t < StepperBoundTrackParameters, typename propagator_options_t::action_list_type > > | propagate (const parameters_t &start, const Surface &target, const propagator_options_t &options, action_list_t_result_t< StepperBoundTrackParameters, typename propagator_options_t::action_list_type > inputResult) const |
Propagate track parameters - User method. | |
Private Types | |
using | StepperBoundTrackParameters = detail::stepper_bound_parameters_type_t< stepper_t > |
Re-define bound track parameters dependent on the stepper. | |
using | StepperCurvilinearTrackParameters = detail::stepper_curvilinear_parameters_type_t< stepper_t > |
Re-define curvilinear track parameters dependent on the stepper. | |
using | Jacobian = BoundMatrix |
using | BoundState = std::tuple< StepperBoundTrackParameters, Jacobian, double > |
using | CurvilinearState = std::tuple< StepperCurvilinearTrackParameters, Jacobian, double > |
Private Member Functions | |
template<typename result_t , typename propagator_state_t > | |
Result< void > | propagate_impl (propagator_state_t &state, result_t &result) const |
Propagate track parameters Private method with propagator and stepper state. | |
const Logger & | logger () const |
Private Attributes | |
stepper_t | m_stepper |
Implementation of propagation algorithm. | |
navigator_t | m_navigator |
Implementation of navigator. | |
std::shared_ptr< const Logger > | m_logger |
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 203 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 203 of file Propagator.hpp
using Acts::Propagator< stepper_t, navigator_t >::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.
parameters_t | Type of the final track parameters |
action_list_t | List of propagation action types |
Definition at line 324 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 324 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
|
private |
Definition at line 223 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 223 of file Propagator.hpp
|
private |
Definition at line 220 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 220 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 235 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 235 of file Propagator.hpp
using Acts::Propagator< stepper_t, navigator_t >::NavigatorState = typename navigator_t::State |
Typedef the navigator state.
Definition at line 241 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 241 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 232 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 232 of file Propagator.hpp
|
private |
Re-define bound track parameters dependent on the stepper.
Definition at line 206 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 206 of file Propagator.hpp
|
private |
Re-define curvilinear track parameters dependent on the stepper.
Definition at line 214 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 214 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 238 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 238 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 |
_logger | a logger instance |
Definition at line 248 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 248 of file Propagator.hpp
|
inlineprivate |
Definition at line 466 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 466 of file Propagator.hpp
auto Acts::Propagator< S, N >::propagate | ( | const parameters_t & | start, |
const propagator_options_t & | options, | ||
bool | makeCurvilinear = true |
||
) | 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 |
propagator_options_t | Type of the propagator options |
path_aborter_t | The path aborter type to be added |
[in] | start | initial track parameters to propagate |
[in] | options | Propagation options, type Options<,> |
[in] | makeCurvilinear | Produce curvilinear parameters at the end of the propagation |
Definition at line 93 of file Propagator.ipp.
View newest version in sPHENIX GitHub at line 93 of file Propagator.ipp
References ckf::options, start, and value.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::Test::BOOST_DATA_TEST_CASE(), and xPositionsOfPassedSurfaces().
auto Acts::Propagator< S, N >::propagate | ( | const parameters_t & | start, |
const propagator_options_t & | options, | ||
bool | makeCurvilinear, | ||
action_list_t_result_t< StepperCurvilinearTrackParameters, typename propagator_options_t::action_list_type > && | inputResult | ||
) | 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 |
propagator_options_t | Type of the propagator options |
path_aborter_t | The path aborter type to be added |
[in] | start | initial track parameters to propagate |
[in] | options | Propagation options, type Options<,> |
[in] | makeCurvilinear | Produce curvilinear parameters at the end of the propagation |
[in] | inputResult | an existing result object to start from |
Convert into return type and fill the result object
Definition at line 117 of file Propagator.ipp.
View newest version in sPHENIX GitHub at line 117 of file Propagator.ipp
References Acts::Concepts::has_method, logger(), N, S(), Acts::detail::setupLoopProtection(), filter::state, and value.
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 |
propagator_options_t | Type of the propagator options |
target_aborter_t | The target aborter type to be added |
path_aborter_t | The path aborter type to be added |
[in] | start | Initial track parameters to propagate |
[in] | target | Target surface of to propagate to |
[in] | options | Propagation options |
Definition at line 187 of file Propagator.ipp.
View newest version in sPHENIX GitHub at line 187 of file Propagator.ipp
References ckf::options, start, and material_mapping_optimisation::target.
auto Acts::Propagator< S, N >::propagate | ( | const parameters_t & | start, |
const Surface & | target, | ||
const propagator_options_t & | options, | ||
action_list_t_result_t< StepperBoundTrackParameters, typename propagator_options_t::action_list_type > | inputResult | ||
) | 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 |
propagator_options_t | Type of the propagator options |
target_aborter_t | The target aborter type to be added |
path_aborter_t | The path aborter type to be added |
[in] | start | Initial track parameters to propagate |
[in] | target | Target surface of to propagate to |
[in] | options | Propagation options |
[in] | inputResult | an existing result object to start from |
Definition at line 211 of file Propagator.ipp.
View newest version in sPHENIX GitHub at line 211 of file Propagator.ipp
References Acts::Concepts::has_method, logger(), N, S(), Acts::detail::setupLoopProtection(), filter::state, and material_mapping_optimisation::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 the propagator state with options |
[in,out] | state | the propagator state object |
[in,out] | result | an existing result object to start from |
Definition at line 17 of file Propagator.ipp.
View newest version in sPHENIX GitHub at line 17 of file Propagator.ipp
References ACTS_ERROR, ACTS_VERBOSE, logger(), physmon_simulation::s, and filter::state.
|
private |
Definition at line 474 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 474 of file Propagator.hpp
Referenced by Acts::Propagator< Acts::StraightLineStepper, Acts::Navigator >::logger().
|
private |
Implementation of navigator.
Definition at line 472 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 472 of file Propagator.hpp
|
private |
Implementation of propagation algorithm.
Definition at line 469 of file Propagator.hpp.
View newest version in sPHENIX GitHub at line 469 of file Propagator.hpp