From 6fd8b703aa4fa83d6f0174cb3e254aa7d0126438 Mon Sep 17 00:00:00 2001
From: Tobias Boeckh <tobias.boeckh@cern.ch>
Date: Thu, 26 May 2022 22:54:09 +0200
Subject: [PATCH] write out number of events, seeds, fitted tracks and good
 re-fitted tracks in CKF2::finalize

---
 .../FaserActsKalmanFilter/FaserActsKalmanFilter/CKF2.h   | 5 +++++
 Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx         | 9 +++++++++
 2 files changed, 14 insertions(+)

diff --git a/Tracking/Acts/FaserActsKalmanFilter/FaserActsKalmanFilter/CKF2.h b/Tracking/Acts/FaserActsKalmanFilter/FaserActsKalmanFilter/CKF2.h
index 6209dda8..da7baf0c 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/FaserActsKalmanFilter/CKF2.h
+++ b/Tracking/Acts/FaserActsKalmanFilter/FaserActsKalmanFilter/CKF2.h
@@ -111,6 +111,11 @@ public:
   virtual Acts::MagneticFieldContext getMagneticFieldContext(const EventContext& ctx) const;
 
 private:
+  size_t m_numberOfEvents {0};
+  size_t m_numberOfTrackSeeds {0};
+  size_t m_numberOfFittedTracks {0};
+  size_t m_numberOfSelectedTracks {0};
+
   void computeSharedHits(std::vector<IndexSourceLink>* sourceLinks, TrackFinderResult& results) const;
   std::shared_ptr<TrackFinderFunction> m_fit;
   std::shared_ptr<TrackFitterFunction> m_kf;
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
index 56647096..e7563242 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
@@ -77,6 +77,7 @@ StatusCode CKF2::initialize() {
 
 StatusCode CKF2::execute() {
   const EventContext& ctx = Gaudi::Hive::currentContext();
+  m_numberOfEvents++;
 
   ATH_CHECK(m_trackCollection.initialize());
   SG::WriteHandle<TrackCollection> trackContainer{m_trackCollection,ctx};
@@ -131,6 +132,7 @@ StatusCode CKF2::execute() {
       Acts::LoggerWrapper{*m_logger}, pOptions, &(*initialSurface));
 
   // Perform the track finding for all initial parameters
+  m_numberOfTrackSeeds += initialParameters->size();
   ATH_MSG_DEBUG("Invoke track finding with " << initialParameters->size() << " seeds.");
   IndexSourceLinkContainer tmp;
   for (const auto& sl : *sourceLinks) {
@@ -158,6 +160,7 @@ StatusCode CKF2::execute() {
           ckfResult.fittedStates, {trackTip}, {{trackTip, ckfResult.fittedParameters.at(trackTip)}})));
     }
   }
+  m_numberOfFittedTracks += allTrajectories.size();
 
   // the list of MultiTrajectories is sorted by the number of measurements using the chi2 value as a tie-breaker
   allTrajectories.sort([](const TrajectoryInfo &left, const TrajectoryInfo &right) {
@@ -194,6 +197,7 @@ StatusCode CKF2::execute() {
       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++;
       }
     }
   }
@@ -215,6 +219,11 @@ StatusCode CKF2::execute() {
 
 
 StatusCode CKF2::finalize() {
+  ATH_MSG_INFO("CombinatorialKalmanFilterAlg::finalize()");
+  ATH_MSG_INFO(m_numberOfEvents << " events processed.");
+  ATH_MSG_INFO(m_numberOfTrackSeeds << " seeds.");
+  ATH_MSG_INFO(m_numberOfFittedTracks << " fitted tracks.");
+  ATH_MSG_INFO(m_numberOfSelectedTracks << " selected and re-fitted tracks.");
   return StatusCode::SUCCESS;
 }
 
-- 
GitLab