From c770b8e118b0d618861ab75a8fda1e6382a5d394 Mon Sep 17 00:00:00 2001
From: P-A Loizeau <p.-a.loizeau@gsi.de>
Date: Thu, 16 Nov 2023 14:58:25 +0100
Subject: [PATCH] [mCBM] in check timing algo, protect against warning flood in
 TRD case

---
 fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx | 8 +++++++-
 fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h   | 3 +++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx
index e6fbc8c4de..fa4f3b3084 100644
--- a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx
@@ -507,7 +507,13 @@ int CbmMcbmCheckTimingAlgo::GetViewId<CbmTrdDigi>(CheckTimingDetector det, std::
     if (view.compare(std::to_string(moduleId)) == 0) return iview;
     iview++;
   }
-  LOG(warning) << "Trd condition not implemented. Skip.";
+
+  std::string sFullModId = det.sName + " module " + std::to_string(moduleId);
+  if (0 == fUnimplementedTrdViewWarned.count(sFullModId)) {
+    LOG(warning) << "Trd condition not implemented for " << sFullModId << ". Skipping it from now on.";
+    fUnimplementedTrdViewWarned.insert(sFullModId);
+  }
+
   return -1;
 }
 
diff --git a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h
index 65fb0ad61f..25f387b8a9 100644
--- a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h
+++ b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h
@@ -12,6 +12,7 @@
 
 #include "TString.h"
 
+#include <unordered_set>
 #include <vector>
 
 class TH1;
@@ -163,6 +164,8 @@ private:
   Double_t fRichPeakWidthNs  = 40.;
   Double_t fPsdPeakWidthNs   = 20.;
 
+  std::unordered_set<std::string> fUnimplementedTrdViewWarned = {};
+
   ClassDefNV(CbmMcbmCheckTimingAlgo, 1);
 };
 
-- 
GitLab