From 1b17e2fe842cab2a6b7df372104133552556cb4f Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Wed, 22 May 2024 15:01:25 +0200 Subject: [PATCH] fix: Fix Core CKF segfault with fitted params (#3203) This fixes a rare bug in the CKF. During extrapolation to the target surface we expect a previous track state which does not need to exist necessarily. https://github.com/acts-project/acts/pull/3161 also cleans this up by having tracks for each branch instead of last tip states --- Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp b/Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp index d7c76a647f8..b4b5caf6e2f 100644 --- a/Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp +++ b/Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp @@ -391,7 +391,7 @@ class CombinatorialKalmanFilter { ACTS_ERROR("Error while acquiring bound state for target surface: " << res.error() << " " << res.error().message()); result.lastError = res.error(); - } else { + } else if (!result.activeTips.empty()) { const auto& fittedState = *res; std::size_t currentTip = result.activeTips.back().first; // Assign the fitted parameters