Class Acts::RiddersPropagator

template<typename propagator_t>
class RiddersPropagator

This class performs the Ridders algorithm to estimate the propagation of the covariance to a certain point in space.

The algorithm is based on the small deviations of the start parameters based on their uncertainty at the beginning of the propgation. This deviation is represented here by a vector of relative deviations of these parameters and fix for all parameters. So, a common choice has to be found that is able to actually fit into the order of magnitude of the uncertainty of each parameter. Using these deviations, the propagation is repeated multiple times and the final covariance matrix at a given target surface is afterwards evaluated by first order derivatives of the final state parameters wrt. the inital parameters. Therefore this evaluation represents a first order approximation of the transport jacobian. Since performing multiple propagations and a numerical evaluation of the covariance requires more time than a single propagation towards a target + a common propagation of the covariance, this class just serves to verify the results of the latter classes.

Public Functions

inline RiddersPropagator(propagator_t &propagator)

Constructor using a propagator.

Parameters

propagator[in] Underlying propagator that will be used

template<typename stepper_t, typename navigator_t = detail::VoidNavigator>
inline RiddersPropagator(stepper_t stepper, navigator_t navigator = navigator_t())

Constructor building a propagator.

Template Parameters
  • stepper_t – Type of the stepper

  • navigator_t – Type of the navigator

Parameters
  • stepper[in] Stepper that will be used

  • navigator[in] Navigator that will be used

template<typename parameters_t, typename propagator_options_t>
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

Propagation method targeting curvilinear parameters.

Template Parameters
  • parameters_t – Type of the start parameters

  • propagator_options_t – Type of the propagator options

Parameters
  • start[in] Start parameters

  • options[in] Options of the propagations

Returns

Result of the propagation

template<typename parameters_t, typename propagator_options_t>
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

Propagation method targeting bound parameters.

Note

If the target surface is a disc, the resulting covariance may be inconsistent. In this case a zero matrix is returned.

Template Parameters
  • parameters_t – Type of the start parameters

  • propagator_options_t – Type of the propagator options

Parameters
  • start[in] Start parameters

  • target[in] The target surface

  • options[in] Options of the propagations

Returns

Result of the propagation