From de2aa477280bd35dce0234b87531460c2f3b8e4b Mon Sep 17 00:00:00 2001
From: P-A Loizeau <p.-a.loizeau@gsi.de>
Date: Thu, 17 Nov 2022 10:00:25 +0100
Subject: [PATCH] In AlgoBuildRawEvent, fix a bug forcing min 1 digi when max
 was set

---
 reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
index 29393964b7..38a5eb38de 100644
--- a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
+++ b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
@@ -643,15 +643,17 @@ Bool_t CbmAlgoBuildRawEvents::CheckTriggerConditions(CbmEvent* event, const RawE
     return kFALSE;
   }
 
-  /// Check trigger rejection by minimal number or absence
+  /// Check trigger rejection by minimal/maximal number or absence, if enabled/requested
   int32_t iNbDigis = event->GetNofData(det.dataType);
-  if ((-1 == iNbDigis) || (static_cast<UInt_t>(iNbDigis) < det.fuTriggerMinDigis)) {
+
+  /// a.Check trigger rejection by minimal number (if enabled)
+  if (0 < det.fuTriggerMinDigis && ((-1 == iNbDigis) || (static_cast<UInt_t>(iNbDigis) < det.fuTriggerMinDigis))) {
     LOG(debug2) << "Event does not have enough digis: " << iNbDigis << " vs " << det.fuTriggerMinDigis << " for "
                 << det.sName;
     return kFALSE;
   }
 
-  /// Check trigger rejection by maximal number (if enabled)
+  /// b.Check trigger rejection by maximal number (if enabled)
   if (0 <= det.fiTriggerMaxDigis && det.fiTriggerMaxDigis < iNbDigis) {
     LOG(debug2) << "Event Has too many digis: " << iNbDigis << " vs " << det.fiTriggerMaxDigis << " for " << det.sName;
     return kFALSE;
-- 
GitLab