From 37e20ce1bc80a6eeb9cf113780f2666cbe3e13fd Mon Sep 17 00:00:00 2001
From: RoccoA97 <roccoardino@gmail.com>
Date: Tue, 26 Mar 2024 15:10:33 +0100
Subject: [PATCH] Improve suppression of orbit <= 0

---
 src/orbit_processor.cc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/orbit_processor.cc b/src/orbit_processor.cc
index 36159863..92937df2 100644
--- a/src/orbit_processor.cc
+++ b/src/orbit_processor.cc
@@ -105,7 +105,7 @@ OrbitProcessor::FillOrbitMetadata OrbitProcessor::FillOrbit(orbit_trailer *trail
   // TODO: we might want to return an empty slice in order to avoid unexepected files/events
   // TODO: to appear and that would let CMSSW crash
   std::pair<uint32_t, bool> orbit_header = std::pair<uint32_t, bool>{ProcessOrbitHeader(rd_ptr)};
-  uint32_t orbit = uint32_t{orbit_header.first};  
+  uint32_t orbit = uint32_t{orbit_header.first};
   if (orbit <= 0) return{0, 0, 0};
   //.second is the warning test enable bit
   rd_ptr += 32;  // +32 to account for orbit header
@@ -191,6 +191,10 @@ void OrbitProcessor::ProcessSliceImpl(Slice &input, Slice &out) {
     }
 
     meta = FillOrbit(trailer, rd_ptr, wr_ptr, rd_end_ptr, wr_end_ptr);
+    if (meta.orbit<=0) {
+      LOG(WARNING) << "Invalid orbit number " << meta.orbit << ". Skipping packet...";
+      return;
+    }
     orbitCount = meta.counts;
     ++orbit_per_packet_count;
 
-- 
GitLab