63 template <
typename propagator_state_t,
typename stepper_t,
68 if (navigator.currentSurface(state.navigation)) {
69 if (navigator.currentSurface(state.navigation) ==
70 navigator.targetSurface(state.navigation) and
71 not navigator.targetReached(state.navigation)) {
76 << navigator.currentSurface(state.navigation)->geometryId());
78 if (navigator.currentSurface(state.navigation)->surfaceMaterial()) {
81 navigator.currentSurface(state.navigation)
83 ->
material(stepper.position(state.stepping));
87 if (navigator.startSurface(state.navigation) ==
88 navigator.currentSurface(state.navigation)) {
89 ACTS_VERBOSE(
"Update on start surface: post-update mode.");
90 prepofu = navigator.currentSurface(state.navigation)
92 ->factor(state.options.direction,
93 MaterialUpdateStage::PostUpdate);
94 }
else if (navigator.targetSurface(state.navigation) ==
95 navigator.currentSurface(state.navigation)) {
96 ACTS_VERBOSE(
"Update on target surface: pre-update mode");
97 prepofu = navigator.currentSurface(state.navigation)
99 ->factor(state.options.direction,
100 MaterialUpdateStage::PreUpdate);
112 ACTS_VERBOSE(
"Material properties found for this surface.");
116 prepofu * navigator.currentSurface(state.navigation)
117 ->pathCorrection(stepper.position(state.stepping),
118 stepper.direction(state.stepping));
131 mHit.
surface = navigator.currentSurface(state.navigation);
132 mHit.
position = stepper.position(state.stepping);
133 mHit.
direction = stepper.direction(state.stepping);