diff --git a/Core/include/Acts/Fitter/KalmanFitter.hpp b/Core/include/Acts/Fitter/KalmanFitter.hpp index 56c8d1da901fe93070552ce8e6886808c06c376f..3b222c0d4f5fbac0254eebce1ec17583fcc4f9ad 100644 --- a/Core/include/Acts/Fitter/KalmanFitter.hpp +++ b/Core/include/Acts/Fitter/KalmanFitter.hpp @@ -243,8 +243,8 @@ class KalmanFitter { } // Finalization: - // - When all track states have been handled - if (result.processedStates == inputMeasurements.size() and + // When the navigation is breaked + if (state.navigation.navigationBreak and result.processedStates > 0 and not result.smoothed) { // -> Sort the track states (as now the path length is set) // -> Call the smoothing diff --git a/Core/include/Acts/Propagator/DirectNavigator.hpp b/Core/include/Acts/Propagator/DirectNavigator.hpp index bcf26f9a82660ce748c97f05d8c22efe808320d7..673305a0c0426c80a87186071155fccaf4b5cccc 100644 --- a/Core/include/Acts/Propagator/DirectNavigator.hpp +++ b/Core/include/Acts/Propagator/DirectNavigator.hpp @@ -134,22 +134,34 @@ class DirectNavigator { return dstream.str(); }); // Check if we are on surface +<<<<<<< HEAD if (state.navigation.nextSurfaceIter != state.navigation.surfaceSequence.end()) { // Establish the surface status auto surfaceStatus = stepper.updateSurfaceStatus( state.stepping, **state.navigation.nextSurfaceIter, false); if (surfaceStatus == Intersection::Status::onSurface) { +======= + if (state.navigation.nextSurfaceIter != state.navigation.endSurfaceIter) { + if (stepper.surfaceReached(state.stepping, + *state.navigation.nextSurfaceIter)) { +>>>>>>> 695c717e... Fix the DirectNavigator // Set the current surface state.navigation.currentSurface = *state.navigation.nextSurfaceIter; debugLog(state, [&] { std::stringstream dstream; +<<<<<<< HEAD dstream << "Current surface set to " << state.navigation.currentSurface->geoID(); +======= + dstream << "Current surface set to "; + dstream << state.navigation.currentSurface->geoID(); +>>>>>>> 695c717e... Fix the DirectNavigator return dstream.str(); }); // Move the sequence to the next surface ++state.navigation.nextSurfaceIter; +<<<<<<< HEAD if (state.navigation.nextSurfaceIter != state.navigation.surfaceSequence.end()) { debugLog(state, [&] { @@ -167,6 +179,14 @@ class DirectNavigator { << stepper.outputStepSize(state.stepping); return dstream.str(); }); +======= + } else if ((*state.navigation.nextSurfaceIter) + ->isOnSurface(state.geoContext, + stepper.position(state.stepping), + stepper.direction(state.stepping), false)) { + // Move the sequence to the next surface + ++state.navigation.nextSurfaceIter; +>>>>>>> 695c717e... Fix the DirectNavigator } } }