From 7f388308ae13e9e33ef89a10757bc349e051031e Mon Sep 17 00:00:00 2001
From: Tobias Boeckh <tobias.boeckh@cern.ch>
Date: Sun, 12 Jun 2022 23:34:22 +0200
Subject: [PATCH] write out warning if Kalman filter fails.

---
 Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
index 3782556b..371c752a 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
@@ -189,16 +189,24 @@ StatusCode CKF2::execute() {
     ATH_MSG_DEBUG("  position: " << params.position(gctx).transpose());
     ATH_MSG_DEBUG("  momentum: " << params.momentum().transpose());
     ATH_MSG_DEBUG("  charge:   " << params.charge());
-    // double charge = params.charge();
     std::unique_ptr<Trk::Track> track = makeTrack(gctx, traj);
     if (track) {
-      // outputTracks->push_back(std::move(track));
+      m_numberOfSelectedTracks++;
       std::unique_ptr<Trk::Track> track2 = m_kalmanFitterTool1->fit(ctx, gctx, *track, trajectories, Acts::BoundVector::Zero(), m_isMC, origin);
       if (track2) {
         std::unique_ptr<Trk::Track> track3 = m_kalmanFitterTool2->fit(ctx, gctx, *track2, trajectories, Acts::BoundVector::Zero(), m_isMC, origin);
-        outputTracks->push_back(std::move(track3));
-        m_numberOfSelectedTracks++;
+        if (track3) {
+          outputTracks->push_back(std::move(track3));
+        } else {
+          outputTracks->push_back(std::move(track2));
+          ATH_MSG_WARNING("Re-Fit failed.");
+        }
+      } else {
+        outputTracks->push_back(std::move(track));
+        ATH_MSG_WARNING("Re-Fit failed.");
       }
+    } else {
+      ATH_MSG_WARNING("CKF failed.");
     }
   }
 
-- 
GitLab