From f872dd8b85bc4885a8118151809d7ded2bd2f0f8 Mon Sep 17 00:00:00 2001
From: Dominik Smith <smith@th.physik.uni-frankfurt.de>
Date: Fri, 19 Feb 2021 13:11:12 +0100
Subject: [PATCH] CbmAlgoBuildRawEvents: Cleanup. Eliminated distinction
 between T0 and other detectors in CheckTriggerConditions().

---
 .../digis/CbmAlgoBuildRawEvents.cxx           | 27 ++++++-------------
 .../digis/CbmTaskBuildRawEvents.cxx           |  3 +++
 2 files changed, 11 insertions(+), 19 deletions(-)

diff --git a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
index dfbe9102..c9e1dee2 100644
--- a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
+++ b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
@@ -194,7 +194,7 @@ void CbmAlgoBuildRawEvents::BuildEvents()
                  << "Trying to search event seeds with unsupported det: " << fRefDet.sName;
       break;
     }
-  }  // switch( *det )
+  }
 }
 
 template<class DigiSeed>
@@ -211,7 +211,7 @@ void CbmAlgoBuildRawEvents::LoopOnSeeds()
     }
   }
   else {
-    const UInt_t uNbRefDigis = (0 < GetNofDigis(fRefDet.detId) ? GetNofDigis(fRefDet.detId) : 0);
+    const UInt_t uNbRefDigis = GetNofDigis(fRefDet.detId);
     /// Loop on size of vector
     for (UInt_t uDigi = 0; uDigi < uNbRefDigis; ++uDigi) {
       LOG(debug) << Form("Checking seed %6u / %6u", uDigi, uNbRefDigis);
@@ -367,7 +367,7 @@ void CbmAlgoBuildRawEvents::SearchMatches(Double_t dSeedTime, RawEventBuilderDet
     if (uLocalIndexEnd < uLocalIndexStart) uLocalIndexEnd = uNbSelDigis;
   }
   else {
-    const UInt_t uNbSelDigis = (0 < GetNofDigis(detMatch.detId) ? GetNofDigis(detMatch.detId) : 0);
+    const UInt_t uNbSelDigis = GetNofDigis(detMatch.detId);
     /// Loop on size of vector
     for (UInt_t uDigi = detMatch.fuStartIndex; uDigi < uNbSelDigis; ++uDigi) {
       const DigiCheck* pDigi   = GetDigi<DigiCheck>(uDigi);
@@ -445,22 +445,11 @@ Bool_t CbmAlgoBuildRawEvents::CheckTriggerConditions(CbmEvent* event, RawEventBu
   if (0 == det.fuTriggerMinDigis && det.fiTriggerMaxDigis < 0) { return kTRUE; }
 
   /// Check if detector present
-  if (ECbmModuleId::kT0 == det.detId) {
-    /// FIXME: special case to be removed once T0 supported by DigiManager
-    if (!(fT0DigiVec)) {
-      LOG(warning) << "Event does not have digis storage for T0"
-                   << " while the following trigger minimum are defined: " << det.fuTriggerMinDigis << " "
-                   << det.fiTriggerMaxDigis;
-      return kFALSE;
-    }
-  }
-  else {
-    if (!DetIsPresent(det.detId)) {
-      LOG(warning) << "Event does not have digis storage for " << det.sName
-                   << " while the following trigger min/max are defined: " << det.fuTriggerMinDigis << " "
-                   << det.fiTriggerMaxDigis;
-      return kFALSE;
-    }
+  if (!DetIsPresent(det.detId)) {
+    LOG(warning) << "Event does not have digis storage for " << det.sName
+                 << " while the following trigger min/max are defined: " << det.fuTriggerMinDigis << " "
+                 << det.fiTriggerMaxDigis;
+    return kFALSE;
   }
 
   /// Check trigger rejection by minimal number or absence
diff --git a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx
index ed71ed01..67e642bb 100644
--- a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx
+++ b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx
@@ -118,6 +118,9 @@ InitStatus CbmTaskBuildRawEvents::ReInit() { return kSUCCESS; }
 void CbmTaskBuildRawEvents::Exec(Option_t* /*option*/)
 {
   LOG(debug2) << "CbmTaskBuildRawEvents::Exec => Starting sequence";
+  //Warning: Int_t must be used for the loop counters instead of UInt_t,
+  //as the digi manager can return -1, which would be casted to +1
+  //during comparison, leading to an error.
 
   //Read STS digis
   if (fDigiMan->IsPresent(ECbmModuleId::kSts)) {
-- 
GitLab