|
| using | Navigator = navigator_t |
| | Type of the navigator in use.
|
| using | NavigatorOptions = typename Navigator::Options |
| | Type of the navigator options.
|
| using | NavigatorState = typename Navigator::State |
| | Type of the navigator state.
|
| template<typename actor_list_t = ActorList<>> |
| using | Options |
| | Type of the propagator options with actor list.
|
| template<typename propagator_options_t> |
| using | ResultType = typename result_type_helper<propagator_options_t>::type |
| | Type of the propagation result derived from the propagator options.
|
| template<typename propagator_options_t> |
| using | State = typename state_type_helper<propagator_options_t>::type |
| | Type of the propagation state derived from the propagator options.
|
| using | Stepper = stepper_t |
| | Type of the stepper in use.
|
| using | StepperOptions = typename Stepper::Options |
| | Type of the stepper options.
|
| using | StepperState = typename Stepper::State |
| | Type of the stepper state.
|
|
| | Propagator (Stepper stepper, Navigator navigator=Navigator(), std::shared_ptr< const Logger > _logger=getDefaultLogger("Propagator", Acts::Logging::INFO)) |
| | Constructor from implementation object.
|
| template<typename propagator_state_t, typename parameters_t, typename path_aborter_t = PathLimitReached> |
| Result< void > | initialize (propagator_state_t &state, const parameters_t &start) const |
| | Initialize the propagator state.
|
| template<typename propagator_state_t, typename propagator_options_t> |
| Result< ResultType< propagator_options_t > > | makeResult (propagator_state_t state, Result< void > result, const propagator_options_t &options, bool createFinalParameters) const |
| | Builds the propagator result object.
|
| template<typename propagator_state_t, typename propagator_options_t> |
| Result< ResultType< propagator_options_t > > | makeResult (propagator_state_t state, Result< void > result, const Surface &target, const propagator_options_t &options) const |
| | Builds the propagator result object.
|
| template<typename propagator_options_t, typename path_aborter_t = PathLimitReached> |
| auto | makeState (const propagator_options_t &options) const |
| | Builds the propagator state object.
|
| template<typename propagator_options_t, typename target_aborter_t = SurfaceReached, typename path_aborter_t = PathLimitReached> |
| auto | makeState (const Surface &target, const propagator_options_t &options) const |
| | Builds the propagator state object.
|
| const Navigator & | navigator () const |
| | Access to the navigator instance.
|
| template<typename parameters_t, typename propagator_options_t, typename path_aborter_t = PathLimitReached> |
| Result< ResultType< propagator_options_t > > | propagate (const parameters_t &start, const propagator_options_t &options, bool createFinalParameters=true) const |
| | Propagate track parameters.
|
| template<typename parameters_t, typename propagator_options_t, typename target_aborter_t = SurfaceReached, typename path_aborter_t = PathLimitReached> |
| Result< ResultType< propagator_options_t > > | propagate (const parameters_t &start, const Surface &target, const propagator_options_t &options) const |
| | Propagate track parameters - User method.
|
| template<typename propagator_state_t> |
| Result< void > | propagate (propagator_state_t &state) const |
| | Propagate track parameters.
|
| const Stepper & | stepper () const |
| | Access to the stepper instance.
|
template<typename stepper_t, typename navigator_t = VoidNavigator>
class Acts::Propagator< stepper_t, navigator_t >
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
- Navigator::state_type for object navigation and screen output
- Stepper::state_type state for the actual transport caching (pos,dir,field)
- Template Parameters
-
| 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:
- a function for performing a single propagation step
- a type mapping for: initial track parameter type -> type of final track parameters
- a type mapping for: (initial track parameter type and destination surface type) -> type of final track parameters
- a type mapping for: initial track parameter type -> type of internal state object
- a type mapping for: (initial track parameter type and destination surface type) -> type of internal state object
template<typename stepper_t, typename navigator_t = VoidNavigator>
template<typename propagator_state_t, typename parameters_t, typename path_aborter_t = PathLimitReached>
| Result< void > Acts::Propagator< stepper_t, navigator_t >::initialize |
( |
propagator_state_t & | state, |
|
|
const parameters_t & | start ) const |
|
nodiscard |
Initialize the propagator state.
This function initializes the propagator state for a new propagation.
- Template Parameters
-
| propagator_state_t | Type of the propagator state object |
| path_aborter_t | The path aborter type to be added |
- Parameters
-
| [in,out] | state | The propagator state object |
| [in] | start | Initial track parameters to propagate |
- Returns
- Indication if the initialization was successful
template<typename stepper_t, typename navigator_t = VoidNavigator>
template<typename propagator_state_t, typename propagator_options_t>
| Result< ResultType< propagator_options_t > > Acts::Propagator< stepper_t, navigator_t >::makeResult |
( |
propagator_state_t | state, |
|
|
Result< void > | result, |
|
|
const propagator_options_t & | options, |
|
|
bool | createFinalParameters ) const |
Builds the propagator result object.
This function creates the propagator result object from the propagator state object. The result is passed to pipe a potential error from the propagation call. The options are used to determine the type of the result object. The createFinalParameters flag is used to determine if the result should contain final track parameters.
- Template Parameters
-
| propagator_state_t | Type of the propagator state object |
| propagator_options_t | Type of the propagator options |
- Parameters
-
| [in] | state | Propagator state object |
| [in] | result | Result of the propagation |
| [in] | options | Propagation options |
| [in] | createFinalParameters | Whether to produce parameters at the end of the propagation |
- Returns
- Propagation result
template<typename stepper_t, typename navigator_t = VoidNavigator>
template<typename propagator_state_t, typename propagator_options_t>
Builds the propagator result object.
This function creates the propagator result object from the propagator state object. The result is passed to pipe a potential error from the propagation call. The options are used to determine the type of the result object.
- Template Parameters
-
| propagator_state_t | Type of the propagator state object |
| propagator_options_t | Type of the propagator options |
- Parameters
-
| [in] | state | Propagator state object |
| [in] | result | Result of the propagation |
| [in] | target | Target surface of to propagate to |
| [in] | options | Propagation options |
- Returns
- Propagation result
template<typename stepper_t, typename navigator_t = VoidNavigator>
template<typename propagator_options_t, typename path_aborter_t = PathLimitReached>
| auto Acts::Propagator< stepper_t, navigator_t >::makeState |
( |
const propagator_options_t & | options | ) |
const |
Builds the propagator state object.
This function creates the propagator state object from the initial track parameters and the propagation options.
- Template Parameters
-
| propagator_options_t | Type of the propagator options |
| path_aborter_t | The path aborter type to be added |
- Parameters
-
| [in] | options | Propagation options |
- Returns
- Propagator state object
template<typename stepper_t, typename navigator_t = VoidNavigator>
template<typename propagator_options_t, typename target_aborter_t = SurfaceReached, typename path_aborter_t = PathLimitReached>
| auto Acts::Propagator< stepper_t, navigator_t >::makeState |
( |
const Surface & | target, |
|
|
const propagator_options_t & | options ) const |
Builds the propagator state object.
This function creates the propagator state object from the initial track parameters, the target surface, and the propagation options.
- Template Parameters
-
| 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 |
- Parameters
-
| [in] | target | Target surface of to propagate to |
| [in] | options | Propagation options |
- Returns
- Propagator state object
template<typename stepper_t, typename navigator_t = VoidNavigator>
template<typename parameters_t, typename propagator_options_t, typename path_aborter_t = PathLimitReached>
| Result< ResultType< propagator_options_t > > Acts::Propagator< stepper_t, navigator_t >::propagate |
( |
const parameters_t & | start, |
|
|
const propagator_options_t & | options, |
|
|
bool | createFinalParameters = 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.
- Template Parameters
-
| 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 |
- Parameters
-
| [in] | start | initial track parameters to propagate |
| [in] | options | Propagation options, type Options<,> |
| [in] | createFinalParameters | Whether to produce parameters at the end of the propagation |
- Returns
- Propagation result containing the propagation status, final track parameters, and output of actions (if they produce any)
template<typename stepper_t, typename navigator_t = VoidNavigator>
template<typename parameters_t, typename propagator_options_t, typename target_aborter_t = SurfaceReached, typename path_aborter_t = PathLimitReached>
| Result< ResultType< propagator_options_t > > Acts::Propagator< stepper_t, navigator_t >::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.
- Template Parameters
-
| 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 |
- Parameters
-
| [in] | start | Initial track parameters to propagate |
| [in] | target | Target surface of to propagate to |
| [in] | options | Propagation options |
- Returns
- Propagation result containing the propagation status, final track parameters, and output of actions (if they produce any)
template<typename stepper_t, typename navigator_t = VoidNavigator>
template<typename propagator_state_t>
Propagate track parameters.
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.
- Note
- Does not (yet) convert into the return_type of the propagation
- Template Parameters
-
| propagator_state_t | Type of the propagator state with options |
- Parameters
-
| [in,out] | state | the propagator state object |
- Returns
- Propagation result