Struct DefaultExtension

Struct Documentation

struct Acts::DefaultExtension

Default evaluater of the k_i’s and elements of the transport matrix D of the RKN4 stepping.

This is a pure implementation by textbook.

Public Functions

DefaultExtension() = default

Default constructor.

template<typename propagator_state_t, typename stepper_t>
int bid(const propagator_state_t&, const stepper_t&) const

Control function if the step evaluation would be valid.

Return

Boolean flag if the step would be valid

Template Parameters
  • propagator_state_t: Type of the state of the propagator

  • stepper_t: Type of the stepper

template<typename propagator_state_t, typename stepper_t>
bool finalize(propagator_state_t &state, const stepper_t &stepper, const double h) const

Veto function after a RKN4 step was accepted by judging on the error of the step.

Since the textbook does not deliver further vetos, this is a dummy function.

Return

Boolean flag if the calculation is valid

Template Parameters
  • propagator_state_t: Type of the state of the propagator

  • stepper_t: Type of the stepper

Parameters
  • [in] state: State of the propagator

  • [in] stepper: Stepper of the propagation

  • [in] h: Step size

template<typename propagator_state_t, typename stepper_t>
bool finalize(propagator_state_t &state, const stepper_t &stepper, const double h, FreeMatrix &D) const

Veto function after a RKN4 step was accepted by judging on the error of the step.

Since the textbook does not deliver further vetos, this is just for the evaluation of the transport matrix.

Return

Boolean flag if the calculation is valid

Template Parameters
  • propagator_state_t: Type of the state of the propagator

  • stepper_t: Type of the stepper

Parameters
  • [in] state: State of the propagator

  • [in] stepper: Stepper of the propagation

  • [in] h: Step size

  • [out] D: Transport matrix

template<typename propagator_state_t, typename stepper_t>
bool k(const propagator_state_t &state, const stepper_t &stepper, Vector3D &knew, const Vector3D &bField, std::array<double, 4> &kQoP, const int i = 0, const double h = 0., const Vector3D &kprev = Vector3D())

Evaluater of the k_i’s of the RKN4.

For the case of i = 0 this step sets up qop, too.

Return

Boolean flag if the calculation is valid

Template Parameters
  • propagator_state_t: Type of the state of the propagator

  • stepper_t: Type of the stepper

Parameters
  • [in] state: State of the propagator

  • [in] stepper: Stepper of the propagation

  • [out] knew: Next k_i that is evaluated

  • [in] bField: B-Field at the evaluation position

  • [out] kQoP: k_i elements of the momenta

  • [in] i: Index of the k_i, i = [0, 3]

  • [in] h: Step size (= 0. ^ 0.5 * StepSize ^ StepSize)

  • [in] kprev: Evaluated k_{i - 1}