From eac784fa787e0966a01e90846de41a7cb7f0fe66 Mon Sep 17 00:00:00 2001
From: "P.-A. Loizeau" <p.-a.loizeau@gsi.de>
Date: Tue, 1 Jun 2021 17:52:59 +0200
Subject: [PATCH] Fixes to T0 and TOF monitors algos found during high-rate
 beamtime

- Properly resets the T0 mapped channel rate evolution plot
- In TOF, mask the Error messages and SPI messages when Ignore Critical flag set
---
 .../monitor/CbmMcbm2018MonitorAlgoT0.cxx      |  1 +
 .../monitor/CbmMcbm2018MonitorAlgoTof.cxx     | 25 +++++++++++--------
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoT0.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoT0.cxx
index 43a222fc8c..75d7b909b1 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoT0.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoT0.cxx
@@ -1232,6 +1232,7 @@ Bool_t CbmMcbm2018MonitorAlgoT0::ResetHistograms(Bool_t bResetTime)
 
   fhDpbMap->Reset();
   fhChannelMap->Reset();
+  fhChanHitMapEvo->Reset();
   fhHitMapEvo->Reset();
   for (UInt_t uSpill = 0; uSpill < kuNbSpillPlots; uSpill++) {
     fvhDpbMapSpill[uSpill]->Reset();
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoTof.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoTof.cxx
index a01bbaaa70..27d593400e 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoTof.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoTof.cxx
@@ -802,10 +802,12 @@ void CbmMcbm2018MonitorAlgoTof::ProcessSysMess(gdpbv100::FullMessage mess)
       break;
     }  // case gdpbv100::SYS_GDPB_UNKWN:
     case gdpbv100::SYS_GET4_SYNC_MISS: {
-      if (mess.getGdpbSysFwErrResync())
-        LOG(info) << Form("GET4 Resynchronization: Get4:0x%04x ", mess.getGdpbGenChipId()) << fuCurrDpbIdx;
-      else
-        LOG(info) << "GET4 synchronization pulse missing in gDPB " << fuCurrDpbIdx;
+      if (kFALSE == fbIgnoreCriticalErrors) {
+        if (mess.getGdpbSysFwErrResync())
+          LOG(info) << Form("GET4 Resynchronization: Get4:0x%04x ", mess.getGdpbGenChipId()) << fuCurrDpbIdx;
+        else
+          LOG(info) << "GET4 synchronization pulse missing in gDPB " << fuCurrDpbIdx;
+      }  // if (kFALSE == fbIgnoreCriticalErrors)
       break;
     }  // case gdpbv100::SYS_GET4_SYNC_MISS:
     case gdpbv100::SYS_PATTERN: {
@@ -1156,13 +1158,14 @@ void CbmMcbm2018MonitorAlgoTof::ProcessSlowCtrl(gdpbv100::Message mess)
 
       /// Printout if SPI message!
       fhGdpbAsicSpiCounts->Fill(fuGet4Id, fuCurrDpbIdx);
-      LOG(info) << "GET4 Slow Control SPI message, time " << Form("%3.3f", dMessTime) << " s "
-                << " for board ID " << std::hex << std::setw(4) << fuCurrDpbIdx << std::dec << "\n"
-                << " +++++++ > Chip = " << std::setw(3) << fuGet4Id << ", Chan = " << std::setw(1) << uChan
-                << ", Edge = " << std::setw(1) << uEdge << ", Type = " << std::setw(1) << mess.getGdpbSlcType() << ", "
-                << Form("channel  %1u,", (uData >> 10) & 0xF) << Form("value 0x%03x ", uData & 0x3FF)
-                << Form("level %4.1f ", fUnpackPar->GetPadiThresholdVal(uData & 0x3FF))
-                << Form("(Data = 0x%06x) ", uData);
+      if (kFALSE == fbIgnoreCriticalErrors)
+        LOG(info) << "GET4 Slow Control SPI message, time " << Form("%3.3f", dMessTime) << " s "
+                  << " for board ID " << std::hex << std::setw(4) << fuCurrDpbIdx << std::dec << "\n"
+                  << " +++++++ > Chip = " << std::setw(3) << fuGet4Id << ", Chan = " << std::setw(1) << uChan
+                  << ", Edge = " << std::setw(1) << uEdge << ", Type = " << std::setw(1) << mess.getGdpbSlcType()
+                  << ", " << Form("channel  %1u,", (uData >> 10) & 0xF) << Form("value 0x%03x ", uData & 0x3FF)
+                  << Form("level %4.1f ", fUnpackPar->GetPadiThresholdVal(uData & 0x3FF))
+                  << Form("(Data = 0x%06x) ", uData);
       break;
     }  // if( gdpbv100::GET4_32B_SLC_SPIREAD == uType )
     case gdpbv100::GET4_32B_SLC_START_SEU: {
-- 
GitLab