From 3f0d4e8330e440f751711d21b0691a2e2bf1a7b5 Mon Sep 17 00:00:00 2001
From: Rosen Matev <rosen.matev@cern.ch>
Date: Tue, 9 Apr 2024 17:17:10 +0200
Subject: [PATCH] Drop ODIN::EventTypes::HltFlaggingMode and remaining usage

---
 Event/DAQEvent/include/Event/ODIN.h           | 35 ++++++++--------
 Kernel/LHCbAlgs/src/OdinTimeDecoder.cpp       | 17 ++------
 Kernel/LHCbAlgs/src/RunChangeTest.cpp         | 41 ++++---------------
 .../lhcbalgs.qms/runchange.qms/incident.qmt   | 29 ++++---------
 4 files changed, 36 insertions(+), 86 deletions(-)

diff --git a/Event/DAQEvent/include/Event/ODIN.h b/Event/DAQEvent/include/Event/ODIN.h
index 7311c55c9d6..8d106cb112b 100644
--- a/Event/DAQEvent/include/Event/ODIN.h
+++ b/Event/DAQEvent/include/Event/ODIN.h
@@ -119,22 +119,22 @@ namespace LHCb {
 
       /// Meaning of the EventType bits
       enum class EventTypes : std::uint16_t {
-        VeloOpen        = 0x0001,
-        Physics         = 0x0002,
-        NoBias          = 0x0004,
-        Lumi            = 0x0008,
-        Beam1Gas        = 0x0010,
-        Beam2Gas        = 0x0020,
-        et_bit_06       = 0x0040,
-        et_bit_07       = 0x0080,
-        et_bit_08       = 0x0100,
-        et_bit_09       = 0x0200,
-        et_bit_10       = 0x0400,
-        et_bit_11       = 0x0800,
-        et_bit_12       = 0x1000,
-        et_bit_13       = 0x2000,
-        et_bit_14       = 0x4000,
-        HltFlaggingMode = 0x8000
+        VeloOpen  = 0x0001,
+        Physics   = 0x0002,
+        NoBias    = 0x0004,
+        Lumi      = 0x0008,
+        Beam1Gas  = 0x0010,
+        Beam2Gas  = 0x0020,
+        et_bit_06 = 0x0040,
+        et_bit_07 = 0x0080,
+        et_bit_08 = 0x0100,
+        et_bit_09 = 0x0200,
+        et_bit_10 = 0x0400,
+        et_bit_11 = 0x0800,
+        et_bit_12 = 0x1000,
+        et_bit_13 = 0x2000,
+        et_bit_14 = 0x4000,
+        et_bit_15 = 0x8000
       };
 
       /// Calibration types
@@ -366,9 +366,6 @@ namespace LHCb {
         details::set_bits<EventNumberSize, EventNumberOffset>( data, value );
       }
 
-      // Helpers
-      [[nodiscard]] constexpr bool isFlagging() const { return eventTypeBit( EventTypes::HltFlaggingMode ); }
-
 #ifndef ODIN_WITHOUT_GAUDI
       [[nodiscard]] Gaudi::Time eventTime() const {
         const auto gps = gpsTime();
diff --git a/Kernel/LHCbAlgs/src/OdinTimeDecoder.cpp b/Kernel/LHCbAlgs/src/OdinTimeDecoder.cpp
index 256188d1b6f..070f8728b97 100644
--- a/Kernel/LHCbAlgs/src/OdinTimeDecoder.cpp
+++ b/Kernel/LHCbAlgs/src/OdinTimeDecoder.cpp
@@ -60,10 +60,6 @@ private:
   // --- local data ---
   /// Used to remember the run number and spot a change of run number.
   mutable unsigned int m_currentRun{0};
-
-  /// Used to detect if we switch from flagging to filtering mode (which implies
-  /// a "run change" without actually changing the run number).
-  mutable bool m_flaggingMode{true};
 };
 
 // Declaration of the Tool Factory
@@ -118,19 +114,14 @@ Gaudi::Time OdinTimeDecoder::getTime() const {
       Warning( "Problem with ODIN GPS Time '" + e.message() + "', ignored", StatusCode::SUCCESS ).ignore();
     }
 
-    // We need to trigger a RunChange incident if the run number changes or
-    // we switch from flagging mode to filtering mode.
-    if ( ( m_currentRun != odin->runNumber() ) || ( m_flaggingMode && !odin->isFlagging() ) ) {
+    // We need to trigger a RunChange incident if the run number changes
+    if ( m_currentRun != odin->runNumber() ) {
       ON_DEBUG {
         debug() << "Firing " << IncidentType::RunChange << " incident. ";
-        if ( m_currentRun != odin->runNumber() )
-          debug() << " Run change " << m_currentRun << " -> " << odin->runNumber();
-        else
-          debug() << " Switched from flagging to filtering mode.";
+        debug() << " Run change " << m_currentRun << " -> " << odin->runNumber();
         debug() << endmsg;
       }
-      m_currentRun   = odin->runNumber();
-      m_flaggingMode = odin->isFlagging();
+      m_currentRun = odin->runNumber();
       incSvc()->fireIncident( RunChangeIncident( name(), m_currentRun, last_time ) );
     }
   }
diff --git a/Kernel/LHCbAlgs/src/RunChangeTest.cpp b/Kernel/LHCbAlgs/src/RunChangeTest.cpp
index 4437ef4cbbd..d4b375ed919 100644
--- a/Kernel/LHCbAlgs/src/RunChangeTest.cpp
+++ b/Kernel/LHCbAlgs/src/RunChangeTest.cpp
@@ -85,7 +85,7 @@ namespace LHCbAlgsTests {
     void handle( const Incident& incident ) override {
       info() << incident.type() << " incident received from " << incident.source() << endmsg;
       auto odin = m_odinHandle.get();
-      info() << "Run " << odin->runNumber() << ", " << ( odin->isFlagging() ? "flagging" : "filtering" ) << endmsg;
+      info() << "Run " << odin->runNumber() << endmsg;
     }
 
     DataObjectReadHandle<LHCb::ODIN> m_odinHandle{this, "ODIN", LHCb::ODINLocation::Default};
@@ -98,40 +98,15 @@ namespace LHCbAlgsTests {
   StatusCode RunChangeTest::execute( const EventContext& ) const {
     auto odin  = std::make_unique<ODIN>();
     auto count = m_counter++;
-    info() << test_cases[std::min( count, test_cases.size() - 1 )] << endmsg;
-    switch ( count ) {
-    case 0: // run 1, flagging
+    if ( count == 0 ) {
+      info() << "Define inital condition" << endmsg;
       odin->setRunNumber( 1 );
-      odin->setEventTypeBit( ODIN::EventTypes::HltFlaggingMode, true );
-      break;
-    case 1: // run 1, filtering
-      odin->setRunNumber( 1 );
-      odin->setEventType( 0x0000 );
-      break;
-    case 2: // run 2, filtering
+    } else if ( count == 1 ) {
+      info() << "Test: new run" << endmsg;
+      odin->setRunNumber( 2 );
+    } else {
+      info() << "Test: same run (stable, no trigger)" << endmsg;
       odin->setRunNumber( 2 );
-      odin->setEventType( 0x0000 );
-      break;
-    case 3: // run 3, flagging
-      odin->setRunNumber( 3 );
-      odin->setEventTypeBit( ODIN::EventTypes::HltFlaggingMode, true );
-      break;
-    case 4: // run 4, flagging
-      odin->setRunNumber( 4 );
-      odin->setEventTypeBit( ODIN::EventTypes::HltFlaggingMode, true );
-      break;
-    case 5: // run 5, filtering
-      odin->setRunNumber( 5 );
-      odin->setEventType( 0x0000 );
-      break;
-    case 6: // run 5, flagging
-      odin->setRunNumber( 5 );
-      odin->setEventTypeBit( ODIN::EventTypes::HltFlaggingMode, true );
-      break;
-    default: // run 5, filtering
-      odin->setRunNumber( 5 );
-      odin->setEventType( 0x0000 ); // FIXME
-      break;
     }
     m_odinHandle.put( std::move( odin ) );
     // will not try to decode the ODIN bank, but issue a ChangeRun
diff --git a/Kernel/LHCbAlgs/tests/qmtest/lhcbalgs.qms/runchange.qms/incident.qmt b/Kernel/LHCbAlgs/tests/qmtest/lhcbalgs.qms/runchange.qms/incident.qmt
index 9809a8762df..440f828b53f 100644
--- a/Kernel/LHCbAlgs/tests/qmtest/lhcbalgs.qms/runchange.qms/incident.qmt
+++ b/Kernel/LHCbAlgs/tests/qmtest/lhcbalgs.qms/runchange.qms/incident.qmt
@@ -22,7 +22,7 @@ from Configurables import LHCbAlgsTests__RunChangeIncidentHandler as IncidentAlg
 app = ApplicationMgr()
 app.TopAlg = [ TestAlg("RunChangeTest"), IncidentAlg("IncidentHandler") ]
 app.EvtSel = "NONE"
-app.EvtMax = 10
+app.EvtMax = 5
 
 EventDataSvc(ForceLeaves = True)
 #MessageSvc(OutputLevel = DEBUG)
@@ -30,28 +30,15 @@ EventDataSvc(ForceLeaves = True)
 </text></argument>
 <argument name="validator"><text>
 reference_block = """
-RunChangeTest        INFO Define initial condition.
+RunChangeTest        INFO Define inital condition
 IncidentHandler      INFO RunChange incident received from RunChangeTest.OdinTimeDecoder
-IncidentHandler      INFO Run 1, flagging
-RunChangeTest        INFO Test: same run, flagging -> filtering
+IncidentHandler      INFO Run 1
+RunChangeTest        INFO Test: new run
 IncidentHandler      INFO RunChange incident received from RunChangeTest.OdinTimeDecoder
-IncidentHandler      INFO Run 1, filtering
-RunChangeTest        INFO Test: new run,  always filtering
-IncidentHandler      INFO RunChange incident received from RunChangeTest.OdinTimeDecoder
-IncidentHandler      INFO Run 2, filtering
-RunChangeTest        INFO Test: new run,  filtering -> flagging
-IncidentHandler      INFO RunChange incident received from RunChangeTest.OdinTimeDecoder
-IncidentHandler      INFO Run 3, flagging
-RunChangeTest        INFO Test: new run,  always flagging
-IncidentHandler      INFO RunChange incident received from RunChangeTest.OdinTimeDecoder
-IncidentHandler      INFO Run 4, flagging
-RunChangeTest        INFO Test: new run,  flagging -> filtering
-IncidentHandler      INFO RunChange incident received from RunChangeTest.OdinTimeDecoder
-IncidentHandler      INFO Run 5, filtering
-RunChangeTest        INFO Test: same run, filtering -> flagging (no trigger)
-RunChangeTest        INFO Test: same run, filtering (stable, no trigger)
-RunChangeTest        INFO Test: same run, filtering (stable, no trigger)
-RunChangeTest        INFO Test: same run, filtering (stable, no trigger)
+IncidentHandler      INFO Run 2
+RunChangeTest        INFO Test: same run (stable, no trigger)
+RunChangeTest        INFO Test: same run (stable, no trigger)
+RunChangeTest        INFO Test: same run (stable, no trigger)
 """
 findReferenceBlock(reference_block, stdout, result, causes)
 </text></argument>
-- 
GitLab