Template Class RiddersPropagator

Nested Relationships

Nested Types

Class Documentation

template<typename propagator_t>
class Acts::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

RiddersPropagator(propagator_t &propagator)

Constructor using a propagator.

Parameters
  • [in] propagator: Underlying propagator that will be used

template<typename stepper_t, typename navigator_t = detail::VoidNavigator>
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
  • [in] stepper: Stepper that will be used

  • [in] navigator: Navigator that will be used

template<typename parameters_t, typename propagator_options_t>
auto propagate(const parameters_t &start, const propagator_options_t &options) const -> Result<action_list_t_result_t<CurvilinearTrackParameters, typename propagator_options_t::action_list_type>>
template<typename parameters_t, typename propagator_options_t>
auto propagate(const parameters_t &start, const Surface &target, const propagator_options_t &options) const -> Result<action_list_t_result_t<BoundTrackParameters, typename propagator_options_t::action_list_type>>
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.

Return

Result of the propagation

Template Parameters
  • parameters_t: Type of the start parameters

  • propagator_options_t: Type of the propagator options

Parameters
  • [in] start: Start parameters

  • [in] options: Options of the propagations

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.

Return

Result of the propagation

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
  • [in] start: Start parameters

  • [in] options: Options of the propagations

template<typename options_t, typename parameters_t>
std::vector<Acts::BoundVector> wiggleDimension(const options_t &options, const parameters_t &startPars, const unsigned int param, const Surface &target, const Acts::BoundVector &nominal, const std::vector<double> &deviations) const