49 using BoundState = std::tuple<BoundTrackParameters, Jacobian, double>;
51 std::tuple<CurvilinearTrackParameters, Jacobian, double>;
71 double ssize = std::numeric_limits<double>::max(),
137 std::reference_wrapper<const MagneticFieldContext> mctx,
139 double ssize = std::numeric_limits<double>::max(),
141 return State{
gctx, mctx, par, ssize, stolerance};
154 const double stepSize = std::numeric_limits<double>::max())
const;
246 return detail::updateSingleSurfaceStatus<StraightLineStepper>(
258 template <
typename object_
intersection_t>
261 detail::updateSingleStepSize<StraightLineStepper>(
state, oIntersection,
273 bool release =
true)
const {
315 State& state,
const Surface& surface,
bool transportCov =
true,
331 bool transportCov =
true)
const;
352 double qop,
double time)
const;
374 State& state,
const Surface& surface,
388 template <
typename propagator_state_t,
typename navigator_t>
390 const navigator_t& )
const {
392 const auto h = state.stepping.stepSize.value() * state.options.direction;
393 const auto m = state.stepping.particleHypothesis.mass();
396 const auto dtds = std::hypot(1.,
m /
p);
399 state.stepping.pars.template segment<3>(
eFreePos0) +=
h * dir;
402 if (state.stepping.covTransport) {
410 state.stepping.derivative(3) = dtds;
412 state.stepping.jacTransport = D * state.stepping.jacTransport;
413 state.stepping.derivative.template head<3>() = dir;
416 state.stepping.pathAccumulated +=
h;