diff --git a/MQ/mcbm/CbmDeviceBmonMonitor.cxx b/MQ/mcbm/CbmDeviceBmonMonitor.cxx
index 7162526eb56921fffb690ebe038af495f768e113..4a335b9fd0c479eb694d2c96cfc7e53be163b7bb 100644
--- a/MQ/mcbm/CbmDeviceBmonMonitor.cxx
+++ b/MQ/mcbm/CbmDeviceBmonMonitor.cxx
@@ -54,7 +54,7 @@ struct InitTaskError : std::runtime_error {
 
 using namespace std;
 
-//Bool_t bMcbm2018MonitorTaskT0ResetHistos = kFALSE;
+//Bool_t bMcbm2018MonitorTaskBmonResetHistos = kFALSE;
 
 CbmDeviceBmonMonitor::CbmDeviceBmonMonitor() {}
 
@@ -168,7 +168,7 @@ Bool_t CbmDeviceBmonMonitor::InitContainers()
 
     if ("kBmon" == sSelDet && fBmonConfig) {  //
       fBmonConfig->SetSystemTimeOffset(iOffset);
-    }  // else if( "kT0" == sSelDet )
+    }  // else if( "kBmon" == sSelDet )
     else {
       LOG(info) << "CbmDeviceBmonMonitor::InitContainers => Trying to set time "
                    "offset for unsupported detector, ignored! "
@@ -433,7 +433,7 @@ bool CbmDeviceBmonMonitor::SendUnpData()
 
   parts.AddPart(std::move(messTsHeader));
 
-  // ---- T0 ----
+  // ---- Bmon ----
   std::stringstream ossBmon;
   boost::archive::binary_oarchive oaBmon(ossBmon);
   if (fBmonConfig) {  //
diff --git a/MQ/mcbm/CbmDeviceBuildDigiEvents.cxx b/MQ/mcbm/CbmDeviceBuildDigiEvents.cxx
index 155c08879074bb3a1bfce00349d72dad1ab251f0..16210f626b099ee196ecc811ad07dd3fe1c6dbae 100644
--- a/MQ/mcbm/CbmDeviceBuildDigiEvents.cxx
+++ b/MQ/mcbm/CbmDeviceBuildDigiEvents.cxx
@@ -336,7 +336,7 @@ try {
   /* clang-format on */
 
   /// Create input vectors
-  fvDigiT0   = new std::vector<CbmBmonDigi>(1000000);
+  fvDigiBmon = new std::vector<CbmBmonDigi>(1000000);
   fvDigiSts  = new std::vector<CbmStsDigi>(1000000);
   fvDigiMuch = new std::vector<CbmMuchDigi>(1000000);
   fvDigiTrd  = new std::vector<CbmTrdDigi>(1000000);
@@ -347,7 +347,7 @@ try {
   fCbmTsEventHeader = new CbmTsEventHeader();
 
   /// Digis storage
-  fpAlgo->SetDigis(fvDigiT0);
+  fpAlgo->SetDigis(fvDigiBmon);
   fpAlgo->SetDigis(fvDigiSts);
   fpAlgo->SetDigis(fvDigiMuch);
   fpAlgo->SetDigis(fvDigiTrd);
@@ -492,12 +492,12 @@ bool CbmDeviceBuildDigiEvents::HandleData(FairMQParts& parts, int /*index*/)
   RootSerializer().Deserialize(*parts.At(uPartIdx), fCbmTsEventHeader);
   ++uPartIdx;
 
-  /// T0
+  /// Bmon
   if (0 < (parts.At(uPartIdx))->GetSize()) {
-    std::string msgStrT0(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
-    std::istringstream issT0(msgStrT0);
-    boost::archive::binary_iarchive inputArchiveT0(issT0);
-    inputArchiveT0 >> *fvDigiT0;
+    std::string msgStrBmon(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
+    std::istringstream issBmon(msgStrBmon);
+    boost::archive::binary_iarchive inputArchiveBmon(issBmon);
+    inputArchiveBmon >> *fvDigiBmon;
   }
   ++uPartIdx;
 
@@ -528,7 +528,7 @@ bool CbmDeviceBuildDigiEvents::HandleData(FairMQParts& parts, int /*index*/)
   }
   ++uPartIdx;
 
-  /// T0F
+  /// BmonF
   if (0 < (parts.At(uPartIdx))->GetSize()) {
     std::string msgStrTof(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
     std::istringstream issTof(msgStrTof);
@@ -562,7 +562,7 @@ bool CbmDeviceBuildDigiEvents::HandleData(FairMQParts& parts, int /*index*/)
     TimesliceMetaData(std::move(*fTsMetaData));
   ++uPartIdx;
 
-  LOG(debug) << "T0 Vector size: " << fvDigiT0->size();
+  LOG(debug) << "Bmon Vector size: " << fvDigiBmon->size();
   LOG(debug) << "STS Vector size: " << fvDigiSts->size();
   LOG(debug) << "MUCH Vector size: " << fvDigiMuch->size();
   LOG(debug) << "TRD Vector size: " << fvDigiTrd->size();
@@ -592,7 +592,7 @@ bool CbmDeviceBuildDigiEvents::HandleData(FairMQParts& parts, int /*index*/)
   fTimeSliceMetaDataArray->Clear();
 
   /// Clear vectors
-  fvDigiT0->clear();
+  fvDigiBmon->clear();
   fvDigiSts->clear();
   fvDigiMuch->clear();
   fvDigiTrd->clear();
@@ -698,13 +698,14 @@ bool CbmDeviceBuildDigiEvents::SendDigiEvents(FairMQParts& partsIn)
 
     /// for each detector, find the data in the Digi vectors and copy them
     /// TODO: Template + loop on list of data types?
-    /// ==> T0
-    uint32_t uNbDigis = (0 < event->GetNofData(ECbmDataType::kT0Digi) ? event->GetNofData(ECbmDataType::kT0Digi) : 0);
+    /// ==> Bmon
+    uint32_t uNbDigis =
+      (0 < event->GetNofData(ECbmDataType::kBmonDigi) ? event->GetNofData(ECbmDataType::kBmonDigi) : 0);
     if (uNbDigis) {
-      auto startIt = fvDigiT0->begin() + event->GetIndex(ECbmDataType::kT0Digi, 0);
-      auto stopIt  = fvDigiT0->begin() + event->GetIndex(ECbmDataType::kT0Digi, uNbDigis - 1);
+      auto startIt = fvDigiBmon->begin() + event->GetIndex(ECbmDataType::kBmonDigi, 0);
+      auto stopIt  = fvDigiBmon->begin() + event->GetIndex(ECbmDataType::kBmonDigi, uNbDigis - 1);
       ++stopIt;
-      selEvent.fData.fT0.fDigis.assign(startIt, stopIt);
+      selEvent.fData.fBmon.fDigis.assign(startIt, stopIt);
     }
 
     /// ==> STS
@@ -877,7 +878,7 @@ CbmDeviceBuildDigiEvents::~CbmDeviceBuildDigiEvents()
   if (fCbmTsEventHeader) delete fCbmTsEventHeader;
 
   /// Clear vectors
-  if (fvDigiT0) fvDigiT0->clear();
+  if (fvDigiBmon) fvDigiBmon->clear();
   if (fvDigiSts) fvDigiSts->clear();
   if (fvDigiMuch) fvDigiMuch->clear();
   if (fvDigiTrd) fvDigiTrd->clear();
diff --git a/MQ/mcbm/CbmDeviceBuildDigiEvents.h b/MQ/mcbm/CbmDeviceBuildDigiEvents.h
index d51ea1a858fb722b2455b43e6c395c165b8cc842..bbf2166c5441bbbf697364ee8a3990d5e4f3a236 100644
--- a/MQ/mcbm/CbmDeviceBuildDigiEvents.h
+++ b/MQ/mcbm/CbmDeviceBuildDigiEvents.h
@@ -59,7 +59,7 @@ private:
   /// User settings parameters
   /// Algo enum settings
   std::string fsEvtOverMode                      = "NoOverlap";
-  std::string fsRefDet                           = "kT0";
+  std::string fsRefDet                           = "kBmon";
   std::vector<std::string> fvsAddDet             = {};
   std::vector<std::string> fvsDelDet             = {};
   std::vector<std::string> fvsSetTrigWin         = {};
@@ -103,7 +103,7 @@ private:
   /// TS information in header
   CbmTsEventHeader* fCbmTsEventHeader = nullptr;
   /// Digis storage
-  std::vector<CbmBmonDigi>* fvDigiT0   = nullptr;
+  std::vector<CbmBmonDigi>* fvDigiBmon = nullptr;
   std::vector<CbmStsDigi>* fvDigiSts   = nullptr;
   std::vector<CbmMuchDigi>* fvDigiMuch = nullptr;
   std::vector<CbmTrdDigi>* fvDigiTrd   = nullptr;
diff --git a/MQ/mcbm/CbmDeviceBuildRawEvents.cxx b/MQ/mcbm/CbmDeviceBuildRawEvents.cxx
index 6ce3820e6a0215fd8d3ce16e4c822d8731b116aa..606d42d6449bc2e5df40e11f695aba66294a69d8 100644
--- a/MQ/mcbm/CbmDeviceBuildRawEvents.cxx
+++ b/MQ/mcbm/CbmDeviceBuildRawEvents.cxx
@@ -268,7 +268,7 @@ try {
   /* clang-format on */
 
   /// Create input vectors
-  fvDigiT0   = new std::vector<CbmBmonDigi>();
+  fvDigiBmon = new std::vector<CbmBmonDigi>();
   fvDigiSts  = new std::vector<CbmStsDigi>();
   fvDigiMuch = new std::vector<CbmMuchBeamTimeDigi>();
   fvDigiTrd  = new std::vector<CbmTrdDigi>();
@@ -281,7 +281,7 @@ try {
   fpAlgo->SetTimeSliceMetaDataArray(fTimeSliceMetaDataArray);
 
   /// Digis storage
-  fpAlgo->SetDigis(fvDigiT0);
+  fpAlgo->SetDigis(fvDigiBmon);
   fpAlgo->SetDigis(fvDigiSts);
   fpAlgo->SetDigis(fvDigiMuch);
   fpAlgo->SetDigis(fvDigiTrd);
@@ -395,11 +395,11 @@ bool CbmDeviceBuildRawEvents::HandleData(FairMQParts& parts, int /*index*/)
     TimesliceMetaData(std::move(*fTsMetaData));
   ++uPartIdx;
 
-  /// T0
-  std::string msgStrT0(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
-  std::istringstream issT0(msgStrT0);
-  boost::archive::binary_iarchive inputArchiveT0(issT0);
-  inputArchiveT0 >> *fvDigiT0;
+  /// Bmon
+  std::string msgStrBmon(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
+  std::istringstream issBmon(msgStrBmon);
+  boost::archive::binary_iarchive inputArchiveBmon(issBmon);
+  inputArchiveBmon >> *fvDigiBmon;
   ++uPartIdx;
 
   /// STS
@@ -423,7 +423,7 @@ bool CbmDeviceBuildRawEvents::HandleData(FairMQParts& parts, int /*index*/)
   inputArchiveTrd >> *fvDigiTrd;
   ++uPartIdx;
 
-  /// T0F
+  /// BmonF
   std::string msgStrTof(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
   std::istringstream issTof(msgStrTof);
   boost::archive::binary_iarchive inputArchiveTof(issTof);
@@ -454,7 +454,7 @@ bool CbmDeviceBuildRawEvents::HandleData(FairMQParts& parts, int /*index*/)
   fTimeSliceMetaDataArray->Clear();
 
   /// Clear vectors
-  fvDigiT0->clear();
+  fvDigiBmon->clear();
   fvDigiSts->clear();
   fvDigiMuch->clear();
   fvDigiTrd->clear();
@@ -541,7 +541,7 @@ CbmDeviceBuildRawEvents::~CbmDeviceBuildRawEvents()
   delete fTsMetaData;
 
   /// Clear vectors
-  fvDigiT0->clear();
+  fvDigiBmon->clear();
   fvDigiSts->clear();
   fvDigiMuch->clear();
   fvDigiTrd->clear();
diff --git a/MQ/mcbm/CbmDeviceBuildRawEvents.h b/MQ/mcbm/CbmDeviceBuildRawEvents.h
index f45c81a3de5e60d8ee88dca3630d4627c01626ab..5b79678f85b25836cc4fdf572e13a23c65481029 100644
--- a/MQ/mcbm/CbmDeviceBuildRawEvents.h
+++ b/MQ/mcbm/CbmDeviceBuildRawEvents.h
@@ -59,7 +59,7 @@ private:
   /// User settings parameters
   /// Algo enum settings
   std::string fsEvtOverMode                = "NoOverlap";
-  std::string fsRefDet                     = "kT0";
+  std::string fsRefDet                     = "kBmon";
   std::vector<std::string> fvsAddDet       = {};
   std::vector<std::string> fvsDelDet       = {};
   std::vector<std::string> fvsSetTrigWin   = {};
@@ -100,7 +100,7 @@ private:
   TClonesArray* fTimeSliceMetaDataArray = nullptr;  //!
   TimesliceMetaData* fTsMetaData        = nullptr;
   /// Digis storage
-  std::vector<CbmBmonDigi>* fvDigiT0           = nullptr;
+  std::vector<CbmBmonDigi>* fvDigiBmon         = nullptr;
   std::vector<CbmStsDigi>* fvDigiSts           = nullptr;
   std::vector<CbmMuchBeamTimeDigi>* fvDigiMuch = nullptr;
   std::vector<CbmTrdDigi>* fvDigiTrd           = nullptr;
diff --git a/MQ/mcbm/CbmDeviceDigiEventSink.cxx b/MQ/mcbm/CbmDeviceDigiEventSink.cxx
index d365048651956d2b110bfab89fe411557a6372eb..f370b9790db6454ca8ff37d8e139252ee7d8f0da 100644
--- a/MQ/mcbm/CbmDeviceDigiEventSink.cxx
+++ b/MQ/mcbm/CbmDeviceDigiEventSink.cxx
@@ -55,7 +55,7 @@ struct InitTaskError : std::runtime_error {
 
 using namespace std;
 
-//Bool_t bMcbm2018MonitorTaskT0ResetHistos = kFALSE;
+//Bool_t bMcbm2018MonitorTaskBmonResetHistos = kFALSE;
 
 CbmDeviceDigiEventSink::CbmDeviceDigiEventSink() {}
 
@@ -156,7 +156,7 @@ try {
 
   /// Full TS Digis storage (optional usage, controlled by fbStoreFullTs!)
   if (fbStoreFullTs) {
-    fvDigiT0   = new std::vector<CbmBmonDigi>();
+    fvDigiBmon = new std::vector<CbmBmonDigi>();
     fvDigiSts  = new std::vector<CbmStsDigi>();
     fvDigiMuch = new std::vector<CbmMuchDigi>();
     fvDigiTrd  = new std::vector<CbmTrdDigi>();
@@ -164,7 +164,7 @@ try {
     fvDigiRich = new std::vector<CbmRichDigi>();
     fvDigiPsd  = new std::vector<CbmPsdDigi>();
 
-    fpFairRootMgr->RegisterAny(CbmBmonDigi::GetBranchName(), fvDigiT0, kTRUE);
+    fpFairRootMgr->RegisterAny(CbmBmonDigi::GetBranchName(), fvDigiBmon, kTRUE);
     fpFairRootMgr->RegisterAny(CbmStsDigi::GetBranchName(), fvDigiSts, kTRUE);
     fpFairRootMgr->RegisterAny(CbmMuchDigi::GetBranchName(), fvDigiMuch, kTRUE);
     fpFairRootMgr->RegisterAny(CbmTrdDigi::GetBranchName(), fvDigiTrd, kTRUE);
@@ -632,7 +632,7 @@ void CbmDeviceDigiEventSink::PrepareTreeEntry(CbmEventTimeslice unpTs)
 
   /// Full TS Digis storage (optional usage, controlled by fbStoreFullTs!)
   if (fbStoreFullTs) {
-    if (0 < unpTs.fvDigiT0.size()) fvDigiT0->assign(unpTs.fvDigiT0.begin(), unpTs.fvDigiT0.end());
+    if (0 < unpTs.fvDigiBmon.size()) fvDigiBmon->assign(unpTs.fvDigiBmon.begin(), unpTs.fvDigiBmon.end());
     if (0 < unpTs.fvDigiSts.size()) fvDigiSts->assign(unpTs.fvDigiSts.begin(), unpTs.fvDigiSts.end());
     if (0 < unpTs.fvDigiMuch.size()) fvDigiMuch->assign(unpTs.fvDigiMuch.begin(), unpTs.fvDigiMuch.end());
     if (0 < unpTs.fvDigiTrd.size()) fvDigiTrd->assign(unpTs.fvDigiTrd.begin(), unpTs.fvDigiTrd.end());
@@ -669,7 +669,7 @@ void CbmDeviceDigiEventSink::DumpTreeEntry()
   fEventsSel->clear();
   /// Full TS Digis storage (optional usage, controlled by fbStoreFullTs!)
   if (fbStoreFullTs) {
-    fvDigiT0->clear();
+    fvDigiBmon->clear();
     fvDigiSts->clear();
     fvDigiMuch->clear();
     fvDigiTrd->clear();
@@ -876,11 +876,11 @@ CbmEventTimeslice::CbmEventTimeslice(FairMQParts& parts, bool bDigiEvtInput)
     }
     ++uPartIdx;
 
-    /// (2) T0
-    std::string msgStrT0(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
-    std::istringstream issT0(msgStrT0);
-    boost::archive::binary_iarchive inputArchiveT0(issT0);
-    inputArchiveT0 >> fvDigiT0;
+    /// (2) Bmon
+    std::string msgStrBmon(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
+    std::istringstream issBmon(msgStrBmon);
+    boost::archive::binary_iarchive inputArchiveBmon(issBmon);
+    inputArchiveBmon >> fvDigiBmon;
     ++uPartIdx;
 
     /// (3) STS
@@ -904,7 +904,7 @@ CbmEventTimeslice::CbmEventTimeslice(FairMQParts& parts, bool bDigiEvtInput)
     inputArchiveTrd >> fvDigiTrd;
     ++uPartIdx;
 
-    /// (6) T0F
+    /// (6) BmonF
     std::string msgStrTof(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
     std::istringstream issTof(msgStrTof);
     boost::archive::binary_iarchive inputArchiveTof(issTof);
@@ -956,7 +956,7 @@ CbmEventTimeslice::CbmEventTimeslice(FairMQParts& parts, bool bDigiEvtInput)
 
 CbmEventTimeslice::~CbmEventTimeslice()
 {
-  fvDigiT0.clear();
+  fvDigiBmon.clear();
   fvDigiSts.clear();
   fvDigiMuch.clear();
   fvDigiTrd.clear();
@@ -989,13 +989,13 @@ void CbmEventTimeslice::ExtractSelectedData(bool bExclusiveTrdExtract)
 
     /// for each detector, find the data in the Digi vectors and copy them
     /// TODO: Template + loop on list of data types?
-    /// ==> T0
-    uint32_t uNbDigis = (0 < event.GetNofData(ECbmDataType::kT0Digi) ? event.GetNofData(ECbmDataType::kT0Digi) : 0);
+    /// ==> Bmon
+    uint32_t uNbDigis = (0 < event.GetNofData(ECbmDataType::kBmonDigi) ? event.GetNofData(ECbmDataType::kBmonDigi) : 0);
     if (uNbDigis) {
-      auto startIt = fvDigiT0.begin() + event.GetIndex(ECbmDataType::kT0Digi, 0);
-      auto stopIt  = fvDigiT0.begin() + event.GetIndex(ECbmDataType::kT0Digi, uNbDigis - 1);
+      auto startIt = fvDigiBmon.begin() + event.GetIndex(ECbmDataType::kBmonDigi, 0);
+      auto stopIt  = fvDigiBmon.begin() + event.GetIndex(ECbmDataType::kBmonDigi, uNbDigis - 1);
       ++stopIt;
-      selEvent.fData.fT0.fDigis.assign(startIt, stopIt);
+      selEvent.fData.fBmon.fDigis.assign(startIt, stopIt);
     }
 
     /// ==> STS
diff --git a/MQ/mcbm/CbmDeviceDigiEventSink.h b/MQ/mcbm/CbmDeviceDigiEventSink.h
index cd79f1fbd685a52c766ee523e6be133f196b192c..3add31512859e0ce51d0c854cf4940adccecb558 100644
--- a/MQ/mcbm/CbmDeviceDigiEventSink.h
+++ b/MQ/mcbm/CbmDeviceDigiEventSink.h
@@ -68,7 +68,7 @@ public:
   /// TS information in header
   CbmTsEventHeader fCbmTsEventHeader;
   /// Raw data
-  std::vector<CbmBmonDigi> fvDigiT0;
+  std::vector<CbmBmonDigi> fvDigiBmon;
   std::vector<CbmStsDigi> fvDigiSts;
   std::vector<CbmMuchDigi> fvDigiMuch;
   std::vector<CbmTrdDigi> fvDigiTrd;
@@ -159,7 +159,7 @@ private:
   /// CbmEvents
   std::vector<CbmDigiEvent>* fEventsSel = nullptr;  //! output container of CbmEvents
   /// Full TS Digis storage (optional usage, controlled by fbStoreFullTs!)
-  std::vector<CbmBmonDigi>* fvDigiT0   = nullptr;
+  std::vector<CbmBmonDigi>* fvDigiBmon = nullptr;
   std::vector<CbmStsDigi>* fvDigiSts   = nullptr;
   std::vector<CbmMuchDigi>* fvDigiMuch = nullptr;
   std::vector<CbmTrdDigi>* fvDigiTrd   = nullptr;
diff --git a/MQ/mcbm/CbmDeviceMcbmEventBuilderWin.cxx b/MQ/mcbm/CbmDeviceMcbmEventBuilderWin.cxx
index 70a18127a3c46435d6d6c5ad9f65cff00b670a44..fde19fafdf78b994e3ce32f8f4cd148ed17f0595 100644
--- a/MQ/mcbm/CbmDeviceMcbmEventBuilderWin.cxx
+++ b/MQ/mcbm/CbmDeviceMcbmEventBuilderWin.cxx
@@ -52,7 +52,7 @@ struct InitTaskError : std::runtime_error {
 
 using namespace std;
 
-//Bool_t bMcbm2018MonitorTaskT0ResetHistos = kFALSE;
+//Bool_t bMcbm2018MonitorTaskBmonResetHistos = kFALSE;
 
 CbmDeviceMcbmEventBuilderWin::CbmDeviceMcbmEventBuilderWin() { fpAlgo = new CbmMcbm2019TimeWinEventBuilderAlgo(); }
 
@@ -273,7 +273,7 @@ try {
   /* clang-format on */
 
   /// Create input vectors
-  fvDigiT0   = new std::vector<CbmTofDigi>();
+  fvDigiBmon = new std::vector<CbmTofDigi>();
   fvDigiSts  = new std::vector<CbmStsDigi>();
   fvDigiMuch = new std::vector<CbmMuchBeamTimeDigi>();
   fvDigiTrd  = new std::vector<CbmTrdDigi>();
@@ -290,7 +290,7 @@ try {
   if (NULL == fTimeSliceMetaDataArray) { throw InitTaskError("Failed creating the TS meta data TClonesarray "); }
   ioman->Register("TimesliceMetaData", "TS Meta Data", fTimeSliceMetaDataArray, kFALSE);
   /// Digis storage
-  ioman->RegisterAny("T0Digi", fvDigiT0, kFALSE);
+  ioman->RegisterAny("BmonDigi", fvDigiBmon, kFALSE);
   ioman->RegisterAny("StsDigi", fvDigiSts, kFALSE);
   ioman->RegisterAny("MuchBeamTimeDigi", fvDigiMuch, kFALSE);
   ioman->RegisterAny("TrdDigi", fvDigiTrd, kFALSE);
@@ -493,10 +493,10 @@ bool CbmDeviceMcbmEventBuilderWin::HandleData(FairMQParts& parts, int /*index*/)
   ++uPartIdx;
 
   /// BMON
-  std::string msgStrT0(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
-  std::istringstream issT0(msgStrT0);
-  boost::archive::binary_iarchive inputArchiveT0(issT0);
-  inputArchiveT0 >> *fvDigiT0;
+  std::string msgStrBmon(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
+  std::istringstream issBmon(msgStrBmon);
+  boost::archive::binary_iarchive inputArchiveBmon(issBmon);
+  inputArchiveBmon >> *fvDigiBmon;
   ++uPartIdx;
 
   /// STS
@@ -552,7 +552,7 @@ bool CbmDeviceMcbmEventBuilderWin::HandleData(FairMQParts& parts, int /*index*/)
   //   delete fTsMetaData;
 
   /// Clear vectors
-  fvDigiT0->clear();
+  fvDigiBmon->clear();
   fvDigiSts->clear();
   fvDigiMuch->clear();
   fvDigiTrd->clear();
@@ -660,7 +660,7 @@ CbmDeviceMcbmEventBuilderWin::~CbmDeviceMcbmEventBuilderWin()
   delete fTsMetaData;
 
   /// Clear vectors
-  fvDigiT0->clear();
+  fvDigiBmon->clear();
   fvDigiSts->clear();
   fvDigiMuch->clear();
   fvDigiTrd->clear();
diff --git a/MQ/mcbm/CbmDeviceMcbmEventBuilderWin.h b/MQ/mcbm/CbmDeviceMcbmEventBuilderWin.h
index b327a5663a65646d4a1b24c8e84a0ebf5eca914b..e3af2741ceaf76dde758ec71b1548369bde60cb2 100644
--- a/MQ/mcbm/CbmDeviceMcbmEventBuilderWin.h
+++ b/MQ/mcbm/CbmDeviceMcbmEventBuilderWin.h
@@ -59,7 +59,7 @@ private:
   /// User settings parameters
   /// Algo enum settings
   std::string fsEvtOverMode                = "NoOverlap";
-  std::string fsRefDet                     = "kT0";
+  std::string fsRefDet                     = "kBmon";
   std::vector<std::string> fvsAddDet       = {};
   std::vector<std::string> fvsDelDet       = {};
   std::vector<std::string> fvsSetTrigWin   = {};
@@ -104,7 +104,7 @@ private:
   TClonesArray* fTimeSliceMetaDataArray = nullptr;  //!
   TimesliceMetaData* fTsMetaData        = nullptr;
   /// Digis storage
-  std::vector<CbmTofDigi>* fvDigiT0            = nullptr;
+  std::vector<CbmTofDigi>* fvDigiBmon          = nullptr;
   std::vector<CbmStsDigi>* fvDigiSts           = nullptr;
   std::vector<CbmMuchBeamTimeDigi>* fvDigiMuch = nullptr;
   std::vector<CbmTrdDigi>* fvDigiTrd           = nullptr;
diff --git a/MQ/mcbm/CbmDeviceMcbmEventSink.cxx b/MQ/mcbm/CbmDeviceMcbmEventSink.cxx
index 0990e830f73999659a67ece4044ac246b1232baf..aa62abde5699aa1ed34e989f1418ff2d58d4551c 100644
--- a/MQ/mcbm/CbmDeviceMcbmEventSink.cxx
+++ b/MQ/mcbm/CbmDeviceMcbmEventSink.cxx
@@ -54,7 +54,7 @@ struct InitTaskError : std::runtime_error {
 
 using namespace std;
 
-//Bool_t bMcbm2018MonitorTaskT0ResetHistos = kFALSE;
+//Bool_t bMcbm2018MonitorTaskBmonResetHistos = kFALSE;
 
 CbmDeviceMcbmEventSink::CbmDeviceMcbmEventSink() {}
 
@@ -105,7 +105,7 @@ try {
   //   InitContainers();
 
   /// Create input vectors
-  fvDigiT0   = new std::vector<CbmTofDigi>();
+  fvDigiBmon = new std::vector<CbmTofDigi>();
   fvDigiSts  = new std::vector<CbmStsDigi>();
   fvDigiMuch = new std::vector<CbmMuchBeamTimeDigi>();
   fvDigiTrd  = new std::vector<CbmTrdDigi>();
@@ -151,7 +151,7 @@ try {
   /// TS MetaData
   fpFairRootMgr->Register("TimesliceMetaData", "TS Meta Data", fTimeSliceMetaDataArray, kTRUE);
   /// Digis storage
-  fpFairRootMgr->RegisterAny("T0Digi", fvDigiT0, kTRUE);
+  fpFairRootMgr->RegisterAny("BmonDigi", fvDigiBmon, kTRUE);
   fpFairRootMgr->RegisterAny("StsDigi", fvDigiSts, kTRUE);
   fpFairRootMgr->RegisterAny("MuchBeamTimeDigi", fvDigiMuch, kTRUE);
   fpFairRootMgr->RegisterAny("TrdDigi", fvDigiTrd, kTRUE);
@@ -541,15 +541,15 @@ void CbmDeviceMcbmEventSink::PrepareTreeEntry(CbmUnpackedTimeslice unpTs)
 
   /*
    /// Explicit copy version: safe but slow
-      /// T0
-   fvDigiT0->insert( fvDigiT0->end(), unpTs.fvDigiT0.begin(), unpTs.fvDigiT0.end() );
+      /// Bmon
+   fvDigiBmon->insert( fvDigiBmon->end(), unpTs.fvDigiBmon.begin(), unpTs.fvDigiBmon.end() );
       /// STS
    fvDigiSts->insert( fvDigiSts->end(), unpTs.fvDigiSts.begin(), unpTs.fvDigiSts.end() );
       /// MUCH
    fvDigiMuch->insert( fvDigiMuch->end(), unpTs.fvDigiMuch.begin(), unpTs.fvDigiMuch.end() );
       /// TRD
    fvDigiTrd->insert( fvDigiTrd->end(), unpTs.fvDigiTrd.begin(), unpTs.fvDigiTrd.end() );
-      /// T0F
+      /// BmonF
    fvDigiTof->insert( fvDigiTof->end(), unpTs.fvDigiTof.begin(), unpTs.fvDigiTof.end() );
       /// RICH
    fvDigiRich->insert( fvDigiRich->end(), unpTs.fvDigiRich.begin(), unpTs.fvDigiRich.end() );
@@ -557,15 +557,15 @@ void CbmDeviceMcbmEventSink::PrepareTreeEntry(CbmUnpackedTimeslice unpTs)
    fvDigiPsd->insert( fvDigiPsd->end(), unpTs.fvDigiPsd.begin(), unpTs.fvDigiPsd.end() );
 */
   /// move version: safe but slow
-  /// T0
-  (*fvDigiT0) = std::move(unpTs.fvDigiT0);
+  /// Bmon
+  (*fvDigiBmon) = std::move(unpTs.fvDigiBmon);
   /// STS
   (*fvDigiSts) = std::move(unpTs.fvDigiSts);
   /// MUCH
   (*fvDigiMuch) = std::move(unpTs.fvDigiMuch);
   /// TRD
   (*fvDigiTrd) = std::move(unpTs.fvDigiTrd);
-  /// T0F
+  /// BmonF
   (*fvDigiTof) = std::move(unpTs.fvDigiTof);
   /// RICH
   (*fvDigiRich) = std::move(unpTs.fvDigiRich);
@@ -597,7 +597,7 @@ void CbmDeviceMcbmEventSink::DumpTreeEntry()
   fTimeSliceMetaDataArray->Clear();
 
   /// Clear vectors
-  fvDigiT0->clear();
+  fvDigiBmon->clear();
   fvDigiSts->clear();
   fvDigiMuch->clear();
   fvDigiTrd->clear();
@@ -645,7 +645,7 @@ CbmDeviceMcbmEventSink::~CbmDeviceMcbmEventSink()
   delete fTsMetaData;
 
   /// Clear vectors
-  fvDigiT0->clear();
+  fvDigiBmon->clear();
   fvDigiSts->clear();
   fvDigiMuch->clear();
   fvDigiTrd->clear();
@@ -703,11 +703,11 @@ CbmUnpackedTimeslice::CbmUnpackedTimeslice(FairMQParts& parts) : fEventsArray("C
     fTsMetaData = *(static_cast<TimesliceMetaData*>(tempObjectMeta));
   }  // if( TString( tempObject->ClassName() ).EqualTo( "TClonesArray") )
 
-  /// T0
-  std::string msgStrT0(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
-  std::istringstream issT0(msgStrT0);
-  boost::archive::binary_iarchive inputArchiveT0(issT0);
-  inputArchiveT0 >> fvDigiT0;
+  /// Bmon
+  std::string msgStrBmon(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
+  std::istringstream issBmon(msgStrBmon);
+  boost::archive::binary_iarchive inputArchiveBmon(issBmon);
+  inputArchiveBmon >> fvDigiBmon;
   ++uPartIdx;
 
   /// STS
@@ -731,7 +731,7 @@ CbmUnpackedTimeslice::CbmUnpackedTimeslice(FairMQParts& parts) : fEventsArray("C
   inputArchiveTrd >> fvDigiTrd;
   ++uPartIdx;
 
-  /// T0F
+  /// BmonF
   std::string msgStrTof(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
   std::istringstream issTof(msgStrTof);
   boost::archive::binary_iarchive inputArchiveTof(issTof);
@@ -767,7 +767,7 @@ CbmUnpackedTimeslice::CbmUnpackedTimeslice(FairMQParts& parts) : fEventsArray("C
 
 CbmUnpackedTimeslice::~CbmUnpackedTimeslice()
 {
-  fvDigiT0.clear();
+  fvDigiBmon.clear();
   fvDigiSts.clear();
   fvDigiMuch.clear();
   fvDigiTrd.clear();
diff --git a/MQ/mcbm/CbmDeviceMcbmEventSink.h b/MQ/mcbm/CbmDeviceMcbmEventSink.h
index c3a85c6bfdc572af4418f4544c6dcdb4bfdb54bd..cdac88dc83fe227942cffdc40e2d45f89420536c 100644
--- a/MQ/mcbm/CbmDeviceMcbmEventSink.h
+++ b/MQ/mcbm/CbmDeviceMcbmEventSink.h
@@ -51,7 +51,7 @@ public:
   ~CbmUnpackedTimeslice();
 
   TimesliceMetaData fTsMetaData;
-  std::vector<CbmTofDigi> fvDigiT0;
+  std::vector<CbmTofDigi> fvDigiBmon;
   std::vector<CbmStsDigi> fvDigiSts;
   std::vector<CbmMuchBeamTimeDigi> fvDigiMuch;
   std::vector<CbmTrdDigi> fvDigiTrd;
@@ -120,7 +120,7 @@ private:
   TClonesArray* fTimeSliceMetaDataArray = nullptr;  //!
   TimesliceMetaData* fTsMetaData        = nullptr;
   /// Digis storage
-  std::vector<CbmTofDigi>* fvDigiT0            = nullptr;
+  std::vector<CbmTofDigi>* fvDigiBmon          = nullptr;
   std::vector<CbmStsDigi>* fvDigiSts           = nullptr;
   std::vector<CbmMuchBeamTimeDigi>* fvDigiMuch = nullptr;
   std::vector<CbmTrdDigi>* fvDigiTrd           = nullptr;
diff --git a/MQ/mcbm/CbmDeviceMcbmMonitorPulser.cxx b/MQ/mcbm/CbmDeviceMcbmMonitorPulser.cxx
index 73c6717344ff6f158fdb1ce5bc67f627a5cf0feb..6b3eb7b0f873678fde1fda83bb30926a5c9f3bbf 100644
--- a/MQ/mcbm/CbmDeviceMcbmMonitorPulser.cxx
+++ b/MQ/mcbm/CbmDeviceMcbmMonitorPulser.cxx
@@ -272,10 +272,10 @@ bool CbmDeviceMcbmMonitorPulser::HandleData(FairMQParts& parts, int /*index*/)
   RootSerializer().Deserialize(*parts.At(uPartIdx), fTsMetaData);
   ++uPartIdx;
 
-  std::string msgStrT0(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
-  std::istringstream issT0(msgStrT0);
-  boost::archive::binary_iarchive inputArchiveT0(issT0);
-  inputArchiveT0 >> fvDigiT0;
+  std::string msgStrBmon(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
+  std::istringstream issBmon(msgStrBmon);
+  boost::archive::binary_iarchive inputArchiveBmon(issBmon);
+  inputArchiveBmon >> fvDigiBmon;
   ++uPartIdx;
 
   std::string msgStrSts(static_cast<char*>(parts.At(uPartIdx)->GetData()), (parts.At(uPartIdx))->GetSize());
@@ -318,7 +318,7 @@ bool CbmDeviceMcbmMonitorPulser::HandleData(FairMQParts& parts, int /*index*/)
 
   /// Clear vectors
   delete fTsMetaData;
-  fvDigiT0.clear();
+  fvDigiBmon.clear();
   fvDigiSts.clear();
   fvDigiMuch.clear();
   fvDigiTrd.clear();
diff --git a/MQ/mcbm/CbmDeviceMcbmMonitorPulser.h b/MQ/mcbm/CbmDeviceMcbmMonitorPulser.h
index 58fc61d6ba37eb214590ff77f24fa5b766b8abe3..181b3185f5f2f04790d33aa3d914629b42804ee3 100644
--- a/MQ/mcbm/CbmDeviceMcbmMonitorPulser.h
+++ b/MQ/mcbm/CbmDeviceMcbmMonitorPulser.h
@@ -91,7 +91,7 @@ private:
   /// TS MetaData storage
   TimesliceMetaData* fTsMetaData = nullptr;
   /// Digis storage
-  std::vector<CbmTofDigi> fvDigiT0            = {};
+  std::vector<CbmTofDigi> fvDigiBmon          = {};
   std::vector<CbmStsDigi> fvDigiSts           = {};
   std::vector<CbmMuchBeamTimeDigi> fvDigiMuch = {};
   std::vector<CbmTrdDigi> fvDigiTrd           = {};
@@ -128,7 +128,7 @@ private:
   void CreateHistos();
 
   /// Variables to store the previous digi time
-  Double_t fPrevTimeT0   = 0.;
+  Double_t fPrevTimeBmon = 0.;
   Double_t fPrevTimeSts  = 0.;
   Double_t fPrevTimeMuch = 0.;
   Double_t fPrevTimeTrd  = 0.;
@@ -136,19 +136,19 @@ private:
   Double_t fPrevTimeRich = 0.;
   Double_t fPrevTimePsd  = 0.;
 
-  /// Variables to store the first digi fitting the previous T0 hits
+  /// Variables to store the first digi fitting the previous Bmon hits
   /// => Time-order means the time window for following one can only be in a later digi
-  Int_t fPrevT0FirstDigiSts  = 0;
-  Int_t fPrevT0FirstDigiMuch = 0;
-  Int_t fPrevT0FirstDigiTrd  = 0;
-  Int_t fPrevT0FirstDigiTof  = 0;
-  Int_t fPrevT0FirstDigiRich = 0;
-  Int_t fPrevT0FirstDigiPsd  = 0;
+  Int_t fPrevBmonFirstDigiSts  = 0;
+  Int_t fPrevBmonFirstDigiMuch = 0;
+  Int_t fPrevBmonFirstDigiTrd  = 0;
+  Int_t fPrevBmonFirstDigiTof  = 0;
+  Int_t fPrevBmonFirstDigiRich = 0;
+  Int_t fPrevBmonFirstDigiPsd  = 0;
 
   /// User settings: Data correction parameters
   /// Charge cut
-  UInt_t fuMinTotPulserT0     = 182;
-  UInt_t fuMaxTotPulserT0     = 190;
+  UInt_t fuMinTotPulserBmon   = 182;
+  UInt_t fuMaxTotPulserBmon   = 190;
   UInt_t fuMinAdcPulserSts    = 90;
   UInt_t fuMaxAdcPulserSts    = 100;
   UInt_t fuMinAdcPulserMuch   = 5;
@@ -184,37 +184,37 @@ private:
 
   Int_t fBinWidth = 1;
 
-  TH1* fT0StsDiff       = nullptr;
-  TH1* fT0MuchDiff      = nullptr;
-  TH1* fT0TrdDiff       = nullptr;
-  TH1* fT0TofDiff       = nullptr;
-  TH1* fT0RichDiff      = nullptr;
-  TH1* fT0PsdDiff       = nullptr;
-  TH2* fT0PsdDiffCharge = nullptr;
-
-  TH2* fT0StsDiffEvo  = nullptr;
-  TH2* fT0MuchDiffEvo = nullptr;
-  TH2* fT0TrdDiffEvo  = nullptr;
-  TH2* fT0TofDiffEvo  = nullptr;
-  TH2* fT0RichDiffEvo = nullptr;
-  TH2* fT0PsdDiffEvo  = nullptr;
-
-  TH2* fT0StsDiffEvoLong  = nullptr;
-  TH2* fT0MuchDiffEvoLong = nullptr;
-  TH2* fT0TrdDiffEvoLong  = nullptr;
-  TH2* fT0TofDiffEvoLong  = nullptr;
-  TH2* fT0RichDiffEvoLong = nullptr;
-  TH2* fT0PsdDiffEvoLong  = nullptr;
+  TH1* fBmonStsDiff       = nullptr;
+  TH1* fBmonMuchDiff      = nullptr;
+  TH1* fBmonTrdDiff       = nullptr;
+  TH1* fBmonTofDiff       = nullptr;
+  TH1* fBmonRichDiff      = nullptr;
+  TH1* fBmonPsdDiff       = nullptr;
+  TH2* fBmonPsdDiffCharge = nullptr;
+
+  TH2* fBmonStsDiffEvo  = nullptr;
+  TH2* fBmonMuchDiffEvo = nullptr;
+  TH2* fBmonTrdDiffEvo  = nullptr;
+  TH2* fBmonTofDiffEvo  = nullptr;
+  TH2* fBmonRichDiffEvo = nullptr;
+  TH2* fBmonPsdDiffEvo  = nullptr;
+
+  TH2* fBmonStsDiffEvoLong  = nullptr;
+  TH2* fBmonMuchDiffEvoLong = nullptr;
+  TH2* fBmonTrdDiffEvoLong  = nullptr;
+  TH2* fBmonTofDiffEvoLong  = nullptr;
+  TH2* fBmonRichDiffEvoLong = nullptr;
+  TH2* fBmonPsdDiffEvoLong  = nullptr;
 
   Double_t fdStartTime     = -1;
-  TProfile* fT0StsMeanEvo  = nullptr;
-  TProfile* fT0MuchMeanEvo = nullptr;
-  TProfile* fT0TrdMeanEvo  = nullptr;
-  TProfile* fT0TofMeanEvo  = nullptr;
-  TProfile* fT0RichMeanEvo = nullptr;
-  TProfile* fT0PsdMeanEvo  = nullptr;
-
-  TH1* fT0T0Diff     = nullptr;
+  TProfile* fBmonStsMeanEvo  = nullptr;
+  TProfile* fBmonMuchMeanEvo = nullptr;
+  TProfile* fBmonTrdMeanEvo  = nullptr;
+  TProfile* fBmonTofMeanEvo  = nullptr;
+  TProfile* fBmonRichMeanEvo = nullptr;
+  TProfile* fBmonPsdMeanEvo  = nullptr;
+
+  TH1* fBmonBmonDiff = nullptr;
   TH1* fStsStsDiff   = nullptr;
   TH1* fMuchMuchDiff = nullptr;
   TH1* fTrdTrdDiff   = nullptr;
@@ -222,14 +222,14 @@ private:
   TH1* fRichRichDiff = nullptr;
   TH1* fPsdPsdDiff   = nullptr;
 
-  TH2* fT0StsNb  = nullptr;
-  TH2* fT0MuchNb = nullptr;
-  TH2* fT0TrdNb  = nullptr;
-  TH2* fT0TofNb  = nullptr;
-  TH2* fT0RichNb = nullptr;
-  TH2* fT0PsdNb  = nullptr;
+  TH2* fBmonStsNb  = nullptr;
+  TH2* fBmonMuchNb = nullptr;
+  TH2* fBmonTrdNb  = nullptr;
+  TH2* fBmonTofNb  = nullptr;
+  TH2* fBmonRichNb = nullptr;
+  TH2* fBmonPsdNb  = nullptr;
 
-  Int_t fiT0Nb   = 0;
+  Int_t fiBmonNb = 0;
   Int_t fiStsNb  = 0;
   Int_t fiMuchNb = 0;
   Int_t fiTrdNb  = 0;
@@ -237,25 +237,25 @@ private:
   Int_t fiRichNb = 0;
   Int_t fiPsdNb  = 0;
 
-  TH1* fT0Address = nullptr;
-  TH1* fT0Channel = nullptr;
+  TH1* fBmonAddress = nullptr;
+  TH1* fBmonChannel = nullptr;
 
-  TH2* fT0StsDpbDiff = nullptr;
-  TH2* fT0StsDpbDiffEvo[kuMaxNbStsDpbs];
+  TH2* fBmonStsDpbDiff = nullptr;
+  TH2* fBmonStsDpbDiffEvo[kuMaxNbStsDpbs];
   TH1* fStsDpbCntsEvo[kuMaxNbStsDpbs];
 
-  TH2* fT0MuchRocDiff  = nullptr;
-  TH2* fT0MuchAsicDiff = nullptr;
-  TH2* fT0MuchAsicDiffEvo[kuMaxNbMuchAsics];
+  TH2* fBmonMuchRocDiff  = nullptr;
+  TH2* fBmonMuchAsicDiff = nullptr;
+  TH2* fBmonMuchAsicDiffEvo[kuMaxNbMuchAsics];
 
   TH2* fDigisPerAsicEvo = nullptr;
   Double_t fdLastMuchDigi[kuMaxNbMuchAsics][kuNbChanSMX];
   Double_t fdLastMuchDigiPulser[kuMaxNbMuchAsics][kuNbChanSMX];
   TH2* fSameChanDigisDistEvo = nullptr;
 
-  Double_t fdLastT0DigiPulser = 0;
+  Double_t fdLastBmonDigiPulser = 0;
 
-  TH2* fDigiTimeEvoT0   = nullptr;
+  TH2* fDigiTimeEvoBmon = nullptr;
   TH2* fDigiTimeEvoSts  = nullptr;
   TH2* fDigiTimeEvoMuch = nullptr;
   TH2* fDigiTimeEvoTof  = nullptr;
diff --git a/MQ/mcbm/CbmDeviceMcbmUnpack.cxx b/MQ/mcbm/CbmDeviceMcbmUnpack.cxx
index fc7dc71f27cf066ab938fbc0958a241c9afaf9b2..219e3bc9ba6614bc98cb313a3e3d027a325d56cd 100644
--- a/MQ/mcbm/CbmDeviceMcbmUnpack.cxx
+++ b/MQ/mcbm/CbmDeviceMcbmUnpack.cxx
@@ -49,7 +49,7 @@ struct InitTaskError : std::runtime_error {
 
 using namespace std;
 
-Bool_t bMcbm2018MonitorTaskT0ResetHistos = kFALSE;
+Bool_t bMcbm2018MonitorTaskBmonResetHistos = kFALSE;
 
 CbmDeviceMcbmUnpack::CbmDeviceMcbmUnpack()
 {
@@ -69,7 +69,7 @@ try {
   fvsSetTimeOffs          = fConfig->GetValue<std::vector<std::string>>("SetTrigWin");
   fsChannelNameDataInput  = fConfig->GetValue<std::string>("TsNameIn");
   fsChannelNameDataOutput = fConfig->GetValue<std::string>("TsNameOut");
-  /// TODO: option to set fuDigiMaskedIdT0 !!!!
+  /// TODO: option to set fuDigiMaskedIdBmon !!!!
   fsAllowedChannels[0] = fsChannelNameDataInput;
 
   // Get the information about created channels from the device
@@ -323,20 +323,20 @@ bool CbmDeviceMcbmUnpack::SendUnpData()
   oaTrd << fUnpAlgoTrd->GetVector();
   std::string* strMsgTrd = new std::string(ossTrd.str());
 
-  /// Split TOF vector in TOF and T0
-  std::vector<CbmTofDigi>& vDigiTofT0 = fUnpAlgoTof->GetVector();
+  /// Split TOF vector in TOF and Bmon
+  std::vector<CbmTofDigi>& vDigiTofBmon = fUnpAlgoTof->GetVector();
   std::vector<CbmTofDigi> vDigiTof    = {};
-  std::vector<CbmTofDigi> vDigiT0     = {};
+  std::vector<CbmTofDigi> vDigiBmon     = {};
 
-  for (auto digi : vDigiTofT0) {
-    if (fuDigiMaskedIdT0 == (digi.GetAddress() & fuDigiMaskId)) {
-      /// Insert data in T0 output container
-      vDigiT0.emplace_back(digi);
-    }  // if( fuDigiMaskedIdT0 == ( digi.GetAddress() & fuDigiMaskId ) )
+  for (auto digi : vDigiTofBmon) {
+    if (fuDigiMaskedIdBmon == (digi.GetAddress() & fuDigiMaskId)) {
+      /// Insert data in Bmon output container
+      vDigiBmon.emplace_back(digi);
+    }  // if( fuDigiMaskedIdBmon == ( digi.GetAddress() & fuDigiMaskId ) )
     else {
       /// Insert data in TOF output container
       vDigiTof.emplace_back(digi);
-    }  // else of if( fuDigiMaskedIdT0 == ( digi.GetAddress() & fuDigiMaskId ) )
+    }  // else of if( fuDigiMaskedIdBmon == ( digi.GetAddress() & fuDigiMaskId ) )
   }    // for( auto digi: vDigi )
 
   std::stringstream ossTof;
@@ -344,10 +344,10 @@ bool CbmDeviceMcbmUnpack::SendUnpData()
   oaTof << vDigiTof;
   std::string* strMsgTof = new std::string(ossTof.str());
 
-  std::stringstream ossT0;
-  boost::archive::binary_oarchive oaT0(ossT0);
-  oaT0 << vDigiT0;
-  std::string* strMsgT0 = new std::string(ossT0.str());
+  std::stringstream ossBmon;
+  boost::archive::binary_oarchive oaBmon(ossBmon);
+  oaBmon << vDigiBmon;
+  std::string* strMsgBmon = new std::string(ossBmon.str());
 
   std::stringstream ossRich;
   boost::archive::binary_oarchive oaRich(ossRich);
@@ -372,10 +372,10 @@ bool CbmDeviceMcbmUnpack::SendUnpData()
 */
 
   parts.AddPart(NewMessage(
-    const_cast<char*>(strMsgT0->c_str()),  // data
-    strMsgT0->length(),                    // size
+    const_cast<char*>(strMsgBmon->c_str()),  // data
+    strMsgBmon->length(),                    // size
     [](void*, void* object) { delete static_cast<std::string*>(object); },
-    strMsgT0));  // object that manages the data
+    strMsgBmon));  // object that manages the data
 
   parts.AddPart(NewMessage(
     const_cast<char*>(strMsgSts->c_str()),  // data
@@ -456,10 +456,10 @@ Bool_t CbmDeviceMcbmUnpack::DoUnpack(const fles::Timeslice& ts, size_t /*compone
           fUnpAlgoTof->AddMsComponentToList(uCompIdx, kusSysIdTof);
           break;
         }  // case kusSysIdTof
-        case kusSysIdT0: {
-          fUnpAlgoTof->AddMsComponentToList(uCompIdx, kusSysIdT0);
+        case kusSysIdBmon: {
+          fUnpAlgoTof->AddMsComponentToList(uCompIdx, kusSysIdBmon);
           break;
-        }  // case kusSysIdT0
+        }  // case kusSysIdBmon
         case kusSysIdRich: {
           fUnpAlgoRich->AddMsComponentToList(uCompIdx, kusSysIdRich);
           break;
diff --git a/MQ/mcbm/CbmDeviceMcbmUnpack.h b/MQ/mcbm/CbmDeviceMcbmUnpack.h
index 55593b082bf7011c2e3b1376fdcb1697e126ad3c..0745a58040c0a4568524adc8dc4e5450fb1d04d4 100644
--- a/MQ/mcbm/CbmDeviceMcbmUnpack.h
+++ b/MQ/mcbm/CbmDeviceMcbmUnpack.h
@@ -49,7 +49,7 @@ private:
   static const uint16_t kusSysIdMuch = 0x50;
   static const uint16_t kusSysIdTrd  = 0x40;
   static const uint16_t kusSysIdTof  = 0x60;
-  static const uint16_t kusSysIdT0   = 0x90;
+  static const uint16_t kusSysIdBmon = 0x90;
   static const uint16_t kusSysIdRich = 0x30;
   static const uint16_t kusSysIdPsd  = 0x80;
 
@@ -61,7 +61,7 @@ private:
   std::string fsChannelNameDataInput  = "fullts";
   std::string fsChannelNameDataOutput = "unpts_0";
   std::string fsChannelNameCommands   = "commands";
-  UInt_t fuDigiMaskedIdT0             = 0x00005006;
+  UInt_t fuDigiMaskedIdBmon           = 0x00005006;
   UInt_t fuDigiMaskId                 = 0x0001FFFF;
 
   /// List of MQ channels names
diff --git a/MQ/mcbm/CbmDeviceUnpack.cxx b/MQ/mcbm/CbmDeviceUnpack.cxx
index 03a5bbe04c99de73633c9c88996800f4830e899e..7dde3a1d4bfa83737e8aeb49973e7c36d27b0147 100644
--- a/MQ/mcbm/CbmDeviceUnpack.cxx
+++ b/MQ/mcbm/CbmDeviceUnpack.cxx
@@ -53,7 +53,7 @@ struct InitTaskError : std::runtime_error {
 
 using namespace std;
 
-//Bool_t bMcbm2018MonitorTaskT0ResetHistos = kFALSE;
+//Bool_t bMcbm2018MonitorTaskBmonResetHistos = kFALSE;
 
 CbmDeviceUnpack::CbmDeviceUnpack() {}
 
@@ -473,7 +473,7 @@ Bool_t CbmDeviceUnpack::InitContainers()
 
     if ("kBmon" == sSelDet && fBmonConfig) {  //
       fBmonConfig->SetSystemTimeOffset(iOffset);
-    }                                            // else if( "kT0" == sSelDet )
+    }                                            // else if( "kBmon" == sSelDet )
     else if ("kSTS" == sSelDet && fStsConfig) {  //
       fStsConfig->SetSystemTimeOffset(iOffset);
     }  // if( "kSTS"  == sSelDet && fStsConfig)
@@ -829,7 +829,7 @@ bool CbmDeviceUnpack::SendUnpData()
 
   parts.AddPart(std::move(messTsHeader));
 
-  // ---- T0 ----
+  // ---- Bmon ----
   std::stringstream ossBmon;
   boost::archive::binary_oarchive oaBmon(ossBmon);
   if (fBmonConfig) {  //
diff --git a/MQ/mcbm/runBuildDigiEvents.cxx b/MQ/mcbm/runBuildDigiEvents.cxx
index 894a683054ea08613652e935431c7c646bc9704d..770e1484bb8648f792b23cdf546ede2dda8351ec 100644
--- a/MQ/mcbm/runBuildDigiEvents.cxx
+++ b/MQ/mcbm/runBuildDigiEvents.cxx
@@ -19,7 +19,7 @@ void addCustomOptions(bpo::options_description& options)
   options.add_options()("IgnTsOver", bpo::value<bool>()->default_value(false), "Ignore TS overlap if true");
   options.add_options()("EvtOverMode", bpo::value<std::string>()->default_value("NoOverlap"),
                         "Set the event overlap mode, use string matching an EOverlapMode ");
-  options.add_options()("RefDet", bpo::value<std::string>()->default_value("kT0"),
+  options.add_options()("RefDet", bpo::value<std::string>()->default_value("kBmon"),
                         "Set the reference (seed) detector, use string matching an ECbmModuleId ");
   options.add_options()("AddDet", bpo::value<std::vector<std::string>>()->multitoken()->composing(),
                         "Add a detector for digis selection, use string matching an ECbmModuleId ");
diff --git a/MQ/mcbm/runBuildRawEvents.cxx b/MQ/mcbm/runBuildRawEvents.cxx
index 99336862f42f4cc50cbd3459163607b1c33aa5c9..4857f2fd4e221db3604e1236abce9d6213768589 100644
--- a/MQ/mcbm/runBuildRawEvents.cxx
+++ b/MQ/mcbm/runBuildRawEvents.cxx
@@ -19,7 +19,7 @@ void addCustomOptions(bpo::options_description& options)
   options.add_options()("IgnTsOver", bpo::value<bool>()->default_value(false), "Ignore TS overlap if true");
   options.add_options()("EvtOverMode", bpo::value<std::string>()->default_value("NoOverlap"),
                         "Set the event overlap mode, use string matching an EOverlapMode ");
-  options.add_options()("RefDet", bpo::value<std::string>()->default_value("kT0"),
+  options.add_options()("RefDet", bpo::value<std::string>()->default_value("kBmon"),
                         "Set the reference (seed) detector, use string matching an ECbmModuleId ");
   options.add_options()("AddDet", bpo::value<std::vector<std::string>>()->multitoken()->composing(),
                         "Add a detector for digis selection, use string matching an ECbmModuleId ");
diff --git a/MQ/mcbm/runMcbmEvtBuilderWin.cxx b/MQ/mcbm/runMcbmEvtBuilderWin.cxx
index 7137fd9ed68d8465c73100742ace7b04a926bf66..1ab51c9600b29f37b5341cb27a038686a6d34b43 100644
--- a/MQ/mcbm/runMcbmEvtBuilderWin.cxx
+++ b/MQ/mcbm/runMcbmEvtBuilderWin.cxx
@@ -19,7 +19,7 @@ void addCustomOptions(bpo::options_description& options)
   options.add_options()("IgnTsOver", bpo::value<bool>()->default_value(false), "Ignore TS overlap if true");
   options.add_options()("EvtOverMode", bpo::value<std::string>()->default_value("NoOverlap"),
                         "Set the event overlap mode, use string matching an EOverlapMode ");
-  options.add_options()("RefDet", bpo::value<std::string>()->default_value("kT0"),
+  options.add_options()("RefDet", bpo::value<std::string>()->default_value("kBmon"),
                         "Set the reference (seed) detector, use string matching an ECbmModuleId ");
   options.add_options()("AddDet", bpo::value<std::vector<std::string>>()->multitoken()->composing(),
                         "Add a detector for digis selection, use string matching an ECbmModuleId ");
diff --git a/MQ/monitor/CMakeLists.txt b/MQ/monitor/CMakeLists.txt
index 2bffcb120a07dba9f97d69ddda39b5a87e9abebd..79302551cef0fffa646e7668c4b1b49f1be8f1bc 100644
--- a/MQ/monitor/CMakeLists.txt
+++ b/MQ/monitor/CMakeLists.txt
@@ -1,7 +1,7 @@
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/startMQSamplerMonitor.sh.in ${CMAKE_BINARY_DIR}/bin/MQ/topologies/startMQSamplerMonitor.sh)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/startMQSamplerT0Monitor2020.sh.in ${CMAKE_BINARY_DIR}/bin/MQ/topologies/startMQSamplerT0Monitor2020.sh)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/startMQSamplerBmonMonitor2020.sh.in ${CMAKE_BINARY_DIR}/bin/MQ/topologies/startMQSamplerBmonMonitor2020.sh)
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/startMQSamplerTofMonitor2020.sh.in ${CMAKE_BINARY_DIR}/bin/MQ/topologies/startMQSamplerTofMonitor2020.sh)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/startMQSamplerT0Monitor2021.sh.in ${CMAKE_BINARY_DIR}/bin/MQ/topologies/startMQSamplerT0Monitor2021.sh)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/startMQSamplerBmonMonitor2021.sh.in ${CMAKE_BINARY_DIR}/bin/MQ/topologies/startMQSamplerBmonMonitor2021.sh)
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/startMQSamplerTofMonitor2021.sh.in ${CMAKE_BINARY_DIR}/bin/MQ/topologies/startMQSamplerTofMonitor2021.sh)
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/startMQSamplerPsdMonitor2021.sh.in ${CMAKE_BINARY_DIR}/bin/MQ/topologies/startMQSamplerPsdMonitor2021.sh)
 
@@ -44,8 +44,8 @@ set(INTERFACE_DEPS
 
 
 
-set(EXE_NAME T0MonitorMcbm2018)
-set(SRCS CbmDeviceMonitorT0.cxx runMonitorT0.cxx)
+set(EXE_NAME BmonMonitorMcbm2018)
+set(SRCS CbmDeviceMonitorBmon.cxx runMonitorBmon.cxx)
 
 set(PUBLIC_DEPENDENCIES ${PUBLIC_DEPS}) 
 set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPS}) 
@@ -62,8 +62,8 @@ set(INTERFACE_DEPENDENCIES ${INTERFACE_DEPS})
 
 generate_cbm_executable()
 
-set(EXE_NAME T0MonitorReqMcbm)
-set(SRCS CbmDeviceMonitorReqT0.cxx runMonitorReqT0.cxx)
+set(EXE_NAME BmonMonitorReqMcbm)
+set(SRCS CbmDeviceMonitorReqBmon.cxx runMonitorReqBmon.cxx)
 
 set(PUBLIC_DEPENDENCIES ${PUBLIC_DEPS}) 
 set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPS}) 
@@ -107,16 +107,16 @@ set(CMAKE_BINARY_DIR ${CMAKE_INSTALL_PREFIX})
 
 # Configure file for installation directory
 configure_file(${MY_SOURCE_DIR}/startMQSamplerMonitor.sh.in        ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerMonitor.sh)
-configure_file(${MY_SOURCE_DIR}/startMQSamplerT0Monitor2020.sh.in  ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerT0Monitor2020.sh)
+configure_file(${MY_SOURCE_DIR}/startMQSamplerBmonMonitor2020.sh.in  ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerBmonMonitor2020.sh)
 configure_file(${MY_SOURCE_DIR}/startMQSamplerTofMonitor2020.sh.in ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerTofMonitor2020.sh)
-configure_file(${MY_SOURCE_DIR}/startMQSamplerT0Monitor2021.sh.in  ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerT0Monitor2021.sh)
+configure_file(${MY_SOURCE_DIR}/startMQSamplerBmonMonitor2021.sh.in  ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerBmonMonitor2021.sh)
 configure_file(${MY_SOURCE_DIR}/startMQSamplerTofMonitor2021.sh.in ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerTofMonitor2021.sh)
 configure_file(${MY_SOURCE_DIR}/startMQSamplerPsdMonitor2021.sh.in ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerPsdMonitor2021.sh)
 
 install(PROGRAMS ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerMonitor.sh
-                 ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerT0Monitor2020.sh
+                 ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerBmonMonitor2020.sh
                  ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerTofMonitor2020.sh
-                 ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerT0Monitor2021.sh
+                 ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerBmonMonitor2021.sh
                  ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerTofMonitor2021.sh
                  ${TMPDIR}/bin/MQ/topologies/install/startMQSamplerPsdMonitor2021.sh
         DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/MQ/topologies
diff --git a/MQ/monitor/CbmDeviceMonitorT0.cxx b/MQ/monitor/CbmDeviceMonitorBmon.cxx
similarity index 94%
rename from MQ/monitor/CbmDeviceMonitorT0.cxx
rename to MQ/monitor/CbmDeviceMonitorBmon.cxx
index 62f1241b90125e1887aca4e5a9ffb80e10b3f1fb..f87f44169a01f20d69063604ccac3a55e69aa39d 100644
--- a/MQ/monitor/CbmDeviceMonitorT0.cxx
+++ b/MQ/monitor/CbmDeviceMonitorBmon.cxx
@@ -3,16 +3,16 @@
    Authors: Pierre-Alain Loizeau, Florian Uhlig [committer] */
 
 /**
- * CbmDeviceMonitorT0.cxx
+ * CbmDeviceMonitorBmon.cxx
  *
  * @since 2019-03-26
  * @author F. Uhlig
  */
 
-#include "CbmDeviceMonitorT0.h"
+#include "CbmDeviceMonitorBmon.h"
 
 #include "CbmFlesCanvasTools.h"
-#include "CbmMcbm2018MonitorAlgoT0.h"
+#include "CbmMcbm2018MonitorAlgoBmon.h"
 
 #include "StorableTimeslice.hpp"
 
@@ -43,7 +43,7 @@ struct InitTaskError : std::runtime_error {
 using namespace std;
 
 
-CbmDeviceMonitorT0::CbmDeviceMonitorT0()
+CbmDeviceMonitorBmon::CbmDeviceMonitorBmon()
   : fbIgnoreOverlapMs {false}
   , fsChannelNameDataInput {"t0component"}
   , fsChannelNameHistosInput {"histogram-in"}
@@ -62,14 +62,14 @@ CbmDeviceMonitorT0::CbmDeviceMonitorT0()
   , fulNumMessages {0}
   , fulTsCounter {0}
   , fLastPublishTime {std::chrono::system_clock::now()}
-  , fMonitorAlgo {new CbmMcbm2018MonitorAlgoT0()}
+  , fMonitorAlgo {new CbmMcbm2018MonitorAlgoBmon()}
   , fArrayHisto {}
   , fvpsHistosFolder {}
   , fvpsCanvasConfig {}
 {
 }
 
-void CbmDeviceMonitorT0::InitTask()
+void CbmDeviceMonitorBmon::InitTask()
 try {
   /// Read options from executable
   LOG(info) << "Init options for CbmMqStarHistoServer.";
@@ -125,7 +125,7 @@ try {
     LOG(info) << "Channel name: " << entry.first;
     if (std::string::npos != entry.first.find(fsChannelNameDataInput)) {
       if (!IsChannelNameAllowed(entry.first)) throw InitTaskError("Channel name does not match.");
-      OnData(entry.first, &CbmDeviceMonitorT0::HandleData);
+      OnData(entry.first, &CbmDeviceMonitorBmon::HandleData);
     }  // if( entry.first.find( "ts" )
   }    // for( auto const &entry : fChannels )
 }
@@ -134,7 +134,7 @@ catch (InitTaskError& e) {
   ChangeState(fair::mq::Transition::ErrorFound);
 }
 
-bool CbmDeviceMonitorT0::IsChannelNameAllowed(std::string channelName)
+bool CbmDeviceMonitorBmon::IsChannelNameAllowed(std::string channelName)
 {
   for (auto const& entry : fsAllowedChannels) {
     std::size_t pos1 = channelName.find(entry);
@@ -152,9 +152,9 @@ bool CbmDeviceMonitorT0::IsChannelNameAllowed(std::string channelName)
   return false;
 }
 
-bool CbmDeviceMonitorT0::InitContainers()
+bool CbmDeviceMonitorBmon::InitContainers()
 {
-  LOG(info) << "Init parameter containers for CbmDeviceMonitorT0.";
+  LOG(info) << "Init parameter containers for CbmDeviceMonitorBmon.";
 
   fParCList = fMonitorAlgo->GetParList();
 
@@ -209,7 +209,7 @@ bool CbmDeviceMonitorT0::InitContainers()
   return initOK;
 }
 
-bool CbmDeviceMonitorT0::InitHistograms()
+bool CbmDeviceMonitorBmon::InitHistograms()
 {
   /// Histos creation and obtain pointer on them
   /// Trigger histo creation on all associated algos
@@ -256,7 +256,7 @@ bool CbmDeviceMonitorT0::InitHistograms()
 
 
 // handler is called whenever a message arrives on "data", with a reference to the message and a sub-channel index (here 0)
-bool CbmDeviceMonitorT0::HandleData(FairMQMessagePtr& msg, int /*index*/)
+bool CbmDeviceMonitorBmon::HandleData(FairMQMessagePtr& msg, int /*index*/)
 {
 
   if (0 == fulNumMessages) {
@@ -307,7 +307,7 @@ bool CbmDeviceMonitorT0::HandleData(FairMQMessagePtr& msg, int /*index*/)
   return true;
 }
 
-bool CbmDeviceMonitorT0::SendHistoConfAndData()
+bool CbmDeviceMonitorBmon::SendHistoConfAndData()
 {
   /// Prepare multiparts message and header
   std::pair<uint32_t, uint32_t> pairHeader(fvpsHistosFolder.size(), fvpsCanvasConfig.size());
@@ -345,7 +345,7 @@ bool CbmDeviceMonitorT0::SendHistoConfAndData()
 
   /// Send the multi-parts message to the common histogram messages queue
   if (Send(partsOut, fsChannelNameHistosInput) < 0) {
-    LOG(error) << "CbmDeviceMonitorT0::SendHistoConfAndData => Problem sending data";
+    LOG(error) << "CbmDeviceMonitorBmon::SendHistoConfAndData => Problem sending data";
     return false;
   }  // if( Send( partsOut, fsChannelNameHistosInput ) < 0 )
 
@@ -355,7 +355,7 @@ bool CbmDeviceMonitorT0::SendHistoConfAndData()
   return true;
 }
 
-bool CbmDeviceMonitorT0::SendHistograms()
+bool CbmDeviceMonitorBmon::SendHistograms()
 {
   /// Serialize the array of histos into a single MQ message
   FairMQMessagePtr message(NewMessage());
@@ -375,10 +375,10 @@ bool CbmDeviceMonitorT0::SendHistograms()
 }
 
 
-CbmDeviceMonitorT0::~CbmDeviceMonitorT0() {}
+CbmDeviceMonitorBmon::~CbmDeviceMonitorBmon() {}
 
 
-Bool_t CbmDeviceMonitorT0::DoUnpack(const fles::Timeslice& ts, size_t /*component*/)
+Bool_t CbmDeviceMonitorBmon::DoUnpack(const fles::Timeslice& ts, size_t /*component*/)
 {
   fulTsCounter++;
 
@@ -404,4 +404,4 @@ Bool_t CbmDeviceMonitorT0::DoUnpack(const fles::Timeslice& ts, size_t /*componen
   return kTRUE;
 }
 
-void CbmDeviceMonitorT0::Finish() {}
+void CbmDeviceMonitorBmon::Finish() {}
diff --git a/MQ/monitor/CbmDeviceMonitorT0.h b/MQ/monitor/CbmDeviceMonitorBmon.h
similarity index 88%
rename from MQ/monitor/CbmDeviceMonitorT0.h
rename to MQ/monitor/CbmDeviceMonitorBmon.h
index aa9537d4070f0b9adfa2a7dee967d5fcad1a5f58..70e23122e0a650f201c741ff58d376b2102270d0 100644
--- a/MQ/monitor/CbmDeviceMonitorT0.h
+++ b/MQ/monitor/CbmDeviceMonitorBmon.h
@@ -3,14 +3,14 @@
    Authors: Pierre-Alain Loizeau, Florian Uhlig [committer] */
 
 /**
- * CbmDeviceMonitorT0.h
+ * CbmDeviceMonitorBmon.h
  *
  * @since 2019-03-26
  * @author F. Uhlig
  */
 
-#ifndef CBMDEVICEMONITORT0_H_
-#define CBMDEVICEMONITORT0_H_
+#ifndef CBMDEVICEMONITORBmon_H_
+#define CBMDEVICEMONITORBmon_H_
 
 #include "CbmMqTMessage.h"
 
@@ -26,12 +26,12 @@
 #include <vector>
 
 class TList;
-class CbmMcbm2018MonitorAlgoT0;
+class CbmMcbm2018MonitorAlgoBmon;
 
-class CbmDeviceMonitorT0 : public FairMQDevice {
+class CbmDeviceMonitorBmon : public FairMQDevice {
 public:
-  CbmDeviceMonitorT0();
-  virtual ~CbmDeviceMonitorT0();
+  CbmDeviceMonitorBmon();
+  virtual ~CbmDeviceMonitorBmon();
 
 protected:
   virtual void InitTask();
@@ -71,7 +71,7 @@ private:
   std::chrono::system_clock::time_point fLastPublishTime;
 
   /// Processing algo
-  CbmMcbm2018MonitorAlgoT0* fMonitorAlgo;
+  CbmMcbm2018MonitorAlgoBmon* fMonitorAlgo;
 
   /// Array of histograms to send to the histogram server
   TObjArray fArrayHisto;
@@ -93,4 +93,4 @@ private:
   bool SendHistograms();
 };
 
-#endif /* CBMDEVICEMONITORT0_H_ */
+#endif /* CBMDEVICEMONITORBmon_H_ */
diff --git a/MQ/monitor/CbmDeviceMonitorPsd.cxx b/MQ/monitor/CbmDeviceMonitorPsd.cxx
index 04ac3d4ca1d4c0b0b2da34b0f41e12c85df15b61..9748da2d16fa36768c893a0b5d515583658d270c 100644
--- a/MQ/monitor/CbmDeviceMonitorPsd.cxx
+++ b/MQ/monitor/CbmDeviceMonitorPsd.cxx
@@ -7,7 +7,7 @@
  *
  * @since 2021-02-17
  * @author N. Karpushkin
- * @comment based on CbmDeviceMonitorT0 by F. Uhlig
+ * @comment based on CbmDeviceMonitorBmon by F. Uhlig
  */
 
 #include "CbmDeviceMonitorPsd.h"
diff --git a/MQ/monitor/CbmDeviceMonitorPsd.h b/MQ/monitor/CbmDeviceMonitorPsd.h
index 8ebbdf0c8ecd14f4003b4a896d396002a80f1a8b..dc9e8413cab7897ac3aed378962882692ed1ac4a 100644
--- a/MQ/monitor/CbmDeviceMonitorPsd.h
+++ b/MQ/monitor/CbmDeviceMonitorPsd.h
@@ -7,7 +7,7 @@
  *
  * @since 2021-02-17
  * @author N. Karpushkin
- * @comment based on CbmDeviceMonitorT0 by F. Uhlig
+ * @comment based on CbmDeviceMonitorBmon by F. Uhlig
  */
 
 #ifndef CBMDEVICEMONITORPSD_H_
diff --git a/MQ/monitor/CbmDeviceMonitorReqT0.cxx b/MQ/monitor/CbmDeviceMonitorReqBmon.cxx
similarity index 94%
rename from MQ/monitor/CbmDeviceMonitorReqT0.cxx
rename to MQ/monitor/CbmDeviceMonitorReqBmon.cxx
index c7f1739754b89a61bcfaec12fa0d75a870f7eeff..93aba473b5f608d7f72fe0771539180a7cabc2bf 100644
--- a/MQ/monitor/CbmDeviceMonitorReqT0.cxx
+++ b/MQ/monitor/CbmDeviceMonitorReqBmon.cxx
@@ -2,10 +2,10 @@
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Pierre-Alain Loizeau [committer] */
 
-#include "CbmDeviceMonitorReqT0.h"
+#include "CbmDeviceMonitorReqBmon.h"
 
 #include "CbmFlesCanvasTools.h"
-#include "CbmMcbm2018MonitorAlgoT0.h"
+#include "CbmMcbm2018MonitorAlgoBmon.h"
 
 #include "StorableTimeslice.hpp"
 
@@ -36,9 +36,9 @@ struct InitTaskError : std::runtime_error {
 using namespace std;
 
 
-CbmDeviceMonitorReqT0::CbmDeviceMonitorReqT0() : fMonitorAlgo {new CbmMcbm2018MonitorAlgoT0()} {}
+CbmDeviceMonitorReqBmon::CbmDeviceMonitorReqBmon() : fMonitorAlgo {new CbmMcbm2018MonitorAlgoBmon()} {}
 
-void CbmDeviceMonitorReqT0::InitTask()
+void CbmDeviceMonitorReqBmon::InitTask()
 try {
   /// Read options from executable
   LOG(info) << "Init options for CbmMqStarHistoServer.";
@@ -87,9 +87,9 @@ catch (InitTaskError& e) {
   ChangeState(fair::mq::Transition::ErrorFound);
 }
 
-bool CbmDeviceMonitorReqT0::InitContainers()
+bool CbmDeviceMonitorReqBmon::InitContainers()
 {
-  LOG(info) << "Init parameter containers for CbmDeviceMonitorReqT0.";
+  LOG(info) << "Init parameter containers for CbmDeviceMonitorReqBmon.";
 
   fParCList = fMonitorAlgo->GetParList();
 
@@ -144,7 +144,7 @@ bool CbmDeviceMonitorReqT0::InitContainers()
   return initOK;
 }
 
-bool CbmDeviceMonitorReqT0::InitHistograms()
+bool CbmDeviceMonitorReqBmon::InitHistograms()
 {
   /// Histos creation and obtain pointer on them
   /// Trigger histo creation on all associated algos
@@ -190,7 +190,7 @@ bool CbmDeviceMonitorReqT0::InitHistograms()
 }
 
 
-bool CbmDeviceMonitorReqT0::ConditionalRun()
+bool CbmDeviceMonitorReqBmon::ConditionalRun()
 {
   /// First request a new TS (full or single system components or multi-syst components block)
   std::string message = fsTsBlockName;
@@ -261,7 +261,7 @@ bool CbmDeviceMonitorReqT0::ConditionalRun()
   return true;
 }
 
-bool CbmDeviceMonitorReqT0::SendHistoConfAndData()
+bool CbmDeviceMonitorReqBmon::SendHistoConfAndData()
 {
   /// Prepare multiparts message and header
   std::pair<uint32_t, uint32_t> pairHeader(fvpsHistosFolder.size(), fvpsCanvasConfig.size());
@@ -297,7 +297,7 @@ bool CbmDeviceMonitorReqT0::SendHistoConfAndData()
 
   /// Send the multi-parts message to the common histogram messages queue
   if (Send(partsOut, fsChannelNameHistosInput) < 0) {
-    LOG(error) << "CbmDeviceMonitorReqT0::SendHistoConfAndData => Problem sending data";
+    LOG(error) << "CbmDeviceMonitorReqBmon::SendHistoConfAndData => Problem sending data";
     return false;
   }  // if( Send( partsOut, fsChannelNameHistosInput ) < 0 )
 
@@ -307,7 +307,7 @@ bool CbmDeviceMonitorReqT0::SendHistoConfAndData()
   return true;
 }
 
-bool CbmDeviceMonitorReqT0::SendHistograms()
+bool CbmDeviceMonitorReqBmon::SendHistograms()
 {
   /// Serialize the array of histos into a single MQ message
   FairMQMessagePtr message(NewMessage());
@@ -327,10 +327,10 @@ bool CbmDeviceMonitorReqT0::SendHistograms()
 }
 
 
-CbmDeviceMonitorReqT0::~CbmDeviceMonitorReqT0() {}
+CbmDeviceMonitorReqBmon::~CbmDeviceMonitorReqBmon() {}
 
 
-Bool_t CbmDeviceMonitorReqT0::DoUnpack(const fles::Timeslice& ts, size_t /*component*/)
+Bool_t CbmDeviceMonitorReqBmon::DoUnpack(const fles::Timeslice& ts, size_t /*component*/)
 {
   fulTsCounter++;
 
@@ -356,4 +356,4 @@ Bool_t CbmDeviceMonitorReqT0::DoUnpack(const fles::Timeslice& ts, size_t /*compo
   return kTRUE;
 }
 
-void CbmDeviceMonitorReqT0::Finish() {}
+void CbmDeviceMonitorReqBmon::Finish() {}
diff --git a/MQ/monitor/CbmDeviceMonitorReqT0.h b/MQ/monitor/CbmDeviceMonitorReqBmon.h
similarity index 89%
rename from MQ/monitor/CbmDeviceMonitorReqT0.h
rename to MQ/monitor/CbmDeviceMonitorReqBmon.h
index a37f5ee685731ed601037ac3a51b0ec161cfc0f2..24040b4319f0ff30ac5b80d9b80b5c6e87b7aae2 100644
--- a/MQ/monitor/CbmDeviceMonitorReqT0.h
+++ b/MQ/monitor/CbmDeviceMonitorReqBmon.h
@@ -2,8 +2,8 @@
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Pierre-Alain Loizeau [committer] */
 
-#ifndef CBMDEVICEMONITORREQT0_H_
-#define CBMDEVICEMONITORREQT0_H_
+#ifndef CBMDEVICEMONITORREQBmon_H_
+#define CBMDEVICEMONITORREQBmon_H_
 
 #include "CbmMqTMessage.h"
 
@@ -19,12 +19,12 @@
 #include <vector>
 
 class TList;
-class CbmMcbm2018MonitorAlgoT0;
+class CbmMcbm2018MonitorAlgoBmon;
 
-class CbmDeviceMonitorReqT0 : public FairMQDevice {
+class CbmDeviceMonitorReqBmon : public FairMQDevice {
 public:
-  CbmDeviceMonitorReqT0();
-  virtual ~CbmDeviceMonitorReqT0();
+  CbmDeviceMonitorReqBmon();
+  virtual ~CbmDeviceMonitorReqBmon();
 
 protected:
   virtual void InitTask();
@@ -62,7 +62,7 @@ private:
   std::chrono::system_clock::time_point fLastPublishTime = std::chrono::system_clock::now();
 
   /// Processing algo
-  CbmMcbm2018MonitorAlgoT0* fMonitorAlgo;
+  CbmMcbm2018MonitorAlgoBmon* fMonitorAlgo;
 
   /// Array of histograms to send to the histogram server
   TObjArray fArrayHisto = {};
@@ -83,4 +83,4 @@ private:
   bool SendHistograms();
 };
 
-#endif /* CBMDEVICEMONITORREQT0_H_ */
+#endif /* CBMDEVICEMONITORREQBmon_H_ */
diff --git a/MQ/monitor/CbmDeviceMonitorReqTof.cxx b/MQ/monitor/CbmDeviceMonitorReqTof.cxx
index 2eb18a65bf84c74237f451d61d591604a07f2c87..6a0863cda0842eb9a7f74eaec7bc3db186ab066a 100644
--- a/MQ/monitor/CbmDeviceMonitorReqTof.cxx
+++ b/MQ/monitor/CbmDeviceMonitorReqTof.cxx
@@ -321,9 +321,9 @@ Bool_t CbmDeviceMonitorReqTof::DoUnpack(const fles::Timeslice& ts, size_t /*comp
       if (kusSysIdTof == ts.descriptor(uCompIdx, 0).sys_id) {
         fMonitorAlgo->AddMsComponentToList(uCompIdx, kusSysIdTof);
       }  // if( kusSysIdTof == ts.descriptor( uCompIdx, 0 ).sys_id )
-      else if (kusSysIdT0 == ts.descriptor(uCompIdx, 0).sys_id) {
-        fMonitorAlgo->AddMsComponentToList(uCompIdx, kusSysIdT0);
-      }  // if( kusSysIdT0 == ts.descriptor( uCompIdx, 0 ).sys_id )
+      else if (kusSysIdBmon == ts.descriptor(uCompIdx, 0).sys_id) {
+        fMonitorAlgo->AddMsComponentToList(uCompIdx, kusSysIdBmon);
+      }  // if( kusSysIdBmon == ts.descriptor( uCompIdx, 0 ).sys_id )
     }    // for( uint32_t uComp = 0; uComp < ts.num_components(); ++uComp )
     fbComponentsAddedToList = kTRUE;
   }  // if( kFALSE == fbComponentsAddedToList )
diff --git a/MQ/monitor/CbmDeviceMonitorReqTof.h b/MQ/monitor/CbmDeviceMonitorReqTof.h
index 87605cd105d8e009bc99015f668573e94991902f..9c9099074b9fa2000854d8e5c41c349546f3bedd 100644
--- a/MQ/monitor/CbmDeviceMonitorReqTof.h
+++ b/MQ/monitor/CbmDeviceMonitorReqTof.h
@@ -33,7 +33,7 @@ protected:
 private:
   /// Constants
   static const uint16_t kusSysIdTof = 0x60;
-  static const uint16_t kusSysIdT0  = 0x90;
+  static const uint16_t kusSysIdBmon = 0x90;
 
   /// Control flags
   Bool_t fbIgnoreOverlapMs       = kFALSE;  //! Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice
diff --git a/MQ/monitor/CbmDeviceMonitorTof.cxx b/MQ/monitor/CbmDeviceMonitorTof.cxx
index 370ad0e4ae6e927e06d99b69ca13e7e2dd9205c5..e087f7d5e62c2a22448ba2395a5f87363b4fd675 100644
--- a/MQ/monitor/CbmDeviceMonitorTof.cxx
+++ b/MQ/monitor/CbmDeviceMonitorTof.cxx
@@ -345,9 +345,9 @@ Bool_t CbmDeviceMonitorTof::DoUnpack(const fles::Timeslice& ts, size_t /*compone
       if (kusSysIdTof == ts.descriptor(uCompIdx, 0).sys_id) {
         fMonitorAlgo->AddMsComponentToList(uCompIdx, kusSysIdTof);
       }  // if( kusSysIdTof == ts.descriptor( uCompIdx, 0 ).sys_id )
-      else if (kusSysIdT0 == ts.descriptor(uCompIdx, 0).sys_id) {
-        fMonitorAlgo->AddMsComponentToList(uCompIdx, kusSysIdT0);
-      }  // if( kusSysIdT0 == ts.descriptor( uCompIdx, 0 ).sys_id )
+      else if (kusSysIdBmon == ts.descriptor(uCompIdx, 0).sys_id) {
+        fMonitorAlgo->AddMsComponentToList(uCompIdx, kusSysIdBmon);
+      }  // if( kusSysIdBmon == ts.descriptor( uCompIdx, 0 ).sys_id )
     }    // for( uint32_t uComp = 0; uComp < ts.num_components(); ++uComp )
     fbComponentsAddedToList = kTRUE;
   }  // if( kFALSE == fbComponentsAddedToList )
diff --git a/MQ/monitor/CbmDeviceMonitorTof.h b/MQ/monitor/CbmDeviceMonitorTof.h
index 5c5976e98e643fd387a275cf4ac6e1f368e839a5..7a174c4d3ba1b4ab043ad23739250619fa55bddf 100644
--- a/MQ/monitor/CbmDeviceMonitorTof.h
+++ b/MQ/monitor/CbmDeviceMonitorTof.h
@@ -40,7 +40,7 @@ protected:
 private:
   /// Constants
   static const uint16_t kusSysIdTof = 0x60;
-  static const uint16_t kusSysIdT0  = 0x90;
+  static const uint16_t kusSysIdBmon = 0x90;
 
   /// Control flags
   Bool_t fbIgnoreOverlapMs       = kFALSE;  //! Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice
diff --git a/MQ/monitor/runMonitorT0.cxx b/MQ/monitor/runMonitorBmon.cxx
similarity index 93%
rename from MQ/monitor/runMonitorT0.cxx
rename to MQ/monitor/runMonitorBmon.cxx
index 750d5e0faa61e0962b427aaa7902c0d7e80acac9..240419241d0aea38ada9e7b90a2474ed4ce589e5 100644
--- a/MQ/monitor/runMonitorT0.cxx
+++ b/MQ/monitor/runMonitorBmon.cxx
@@ -2,7 +2,7 @@
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Pierre-Alain Loizeau, Florian Uhlig [committer] */
 
-#include "CbmDeviceMonitorT0.h"
+#include "CbmDeviceMonitorBmon.h"
 
 #include <iomanip>
 #include <string>
@@ -25,7 +25,7 @@ void addCustomOptions(bpo::options_description& options)
   options.add_options()("SpillCheckInt", bpo::value<double>()->default_value(0.128),
                         "Interval in seconds between count checks for spill detection");
   options.add_options()("ChanMap", bpo::value<std::string>()->default_value("0,1,2,3,4,5,6,7"),
-                        "Set T0 channel map e.g. 0,1,2,3,4,5,6,7");
+                        "Set Bmon channel map e.g. 0,1,2,3,4,5,6,7");
   options.add_options()("PubFreqTs", bpo::value<uint32_t>()->default_value(100), "Histo publishing frequency in TS");
   options.add_options()("PubTimeMin", bpo::value<double_t>()->default_value(1.0),
                         "Minimal time between two publishing");
@@ -37,4 +37,4 @@ void addCustomOptions(bpo::options_description& options)
                         "MQ channel name for histos");
 }
 
-FairMQDevicePtr getDevice(const FairMQProgOptions& /*config*/) { return new CbmDeviceMonitorT0(); }
+FairMQDevicePtr getDevice(const FairMQProgOptions& /*config*/) { return new CbmDeviceMonitorBmon(); }
diff --git a/MQ/monitor/runMonitorReqT0.cxx b/MQ/monitor/runMonitorReqBmon.cxx
similarity index 90%
rename from MQ/monitor/runMonitorReqT0.cxx
rename to MQ/monitor/runMonitorReqBmon.cxx
index 1c3e2ad547751b1c6bcd2c64244edb8e9134e178..7a1b6267d84947c6a359e26739034d1465fbf3a3 100644
--- a/MQ/monitor/runMonitorReqT0.cxx
+++ b/MQ/monitor/runMonitorReqBmon.cxx
@@ -2,7 +2,7 @@
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Pierre-Alain Loizeau [committer] */
 
-#include "CbmDeviceMonitorReqT0.h"
+#include "CbmDeviceMonitorReqBmon.h"
 
 #include <iomanip>
 #include <string>
@@ -25,7 +25,7 @@ void addCustomOptions(bpo::options_description& options)
   options.add_options()("SpillCheckInt", bpo::value<double>()->default_value(0.128),
                         "Interval in seconds between count checks for spill detection");
   options.add_options()("ChanMap", bpo::value<std::string>()->default_value("0,1,2,3,4,5,6,7"),
-                        "Set T0 channel map e.g. 0,1,2,3,4,5,6,7");
+                        "Set Bmon channel map e.g. 0,1,2,3,4,5,6,7");
   options.add_options()("PubFreqTs", bpo::value<uint32_t>()->default_value(100), "Histo publishing frequency in TS");
   options.add_options()("PubTimeMin", bpo::value<double_t>()->default_value(1.0),
                         "Minimal time between two publishing");
@@ -34,9 +34,9 @@ void addCustomOptions(bpo::options_description& options)
   options.add_options()("TsNameIn", bpo::value<std::string>()->default_value("ts-request"),
                         "MQ channel name for TS data");
   options.add_options()("TsBlockName", bpo::value<std::string>()->default_value(""),
-                        "Block name for requesting TS data, T0 SysId request if empty");
+                        "Block name for requesting TS data, Bmon SysId request if empty");
   options.add_options()("ChNameIn", bpo::value<std::string>()->default_value("histogram-in"),
                         "MQ channel name for histos");
 }
 
-FairMQDevicePtr getDevice(const FairMQProgOptions& /*config*/) { return new CbmDeviceMonitorReqT0(); }
+FairMQDevicePtr getDevice(const FairMQProgOptions& /*config*/) { return new CbmDeviceMonitorReqBmon(); }
diff --git a/MQ/monitor/startMQSamplerT0Monitor2020.sh.in b/MQ/monitor/startMQSamplerBmonMonitor2020.sh.in
similarity index 100%
rename from MQ/monitor/startMQSamplerT0Monitor2020.sh.in
rename to MQ/monitor/startMQSamplerBmonMonitor2020.sh.in
diff --git a/MQ/monitor/startMQSamplerT0Monitor2021.sh.in b/MQ/monitor/startMQSamplerBmonMonitor2021.sh.in
similarity index 100%
rename from MQ/monitor/startMQSamplerT0Monitor2021.sh.in
rename to MQ/monitor/startMQSamplerBmonMonitor2021.sh.in
diff --git a/MQ/source/CbmMQTsaMultiSampler.cxx b/MQ/source/CbmMQTsaMultiSampler.cxx
index fca6e472aeac5f9632a73344595fb071a4301bfa..d2c45e248ba623a1542000beee32df77965eee95 100644
--- a/MQ/source/CbmMQTsaMultiSampler.cxx
+++ b/MQ/source/CbmMQTsaMultiSampler.cxx
@@ -524,7 +524,7 @@ bool CbmMQTsaMultiSampler::ConditionalRun()
       //      CheckTimeslice(ts);
 
       if (fbNoSplitTs) {
-        /// This is a special case for the TOF + T0
+        /// This is a special case for the TOF + Bmon
         /// => Inefficient as copy the TS as many times as need!
         if (!CreateAndSendFullTs(ts)) {
           /// If command channel defined, send command to all "slaves"
diff --git a/MQ/source/CbmTsConsumerReqDevExample.cxx b/MQ/source/CbmTsConsumerReqDevExample.cxx
index 9b6f0945957a62449dd65ac9652f74102ac44013..0488fcd46bdceafdebd753775cb91b3d12ad0af4 100644
--- a/MQ/source/CbmTsConsumerReqDevExample.cxx
+++ b/MQ/source/CbmTsConsumerReqDevExample.cxx
@@ -37,7 +37,7 @@ using namespace std;
 
 
 CbmTsConsumerReqDevExample::CbmTsConsumerReqDevExample()
-// ALGO: : fMonitorAlgo {new CbmMcbm2018MonitorAlgoT0()}
+// ALGO: : fMonitorAlgo {new CbmMcbm2018MonitorAlgoBmon()}
 {
 }
 
diff --git a/MQ/source/CbmTsConsumerReqDevExample.h b/MQ/source/CbmTsConsumerReqDevExample.h
index a56d6ab6af0e1b6dd62290740c8a292fe44d74ee..e309f84b1df9f44807bfccc3a54edc54a2ce5340 100644
--- a/MQ/source/CbmTsConsumerReqDevExample.h
+++ b/MQ/source/CbmTsConsumerReqDevExample.h
@@ -54,7 +54,7 @@ private:
   std::chrono::system_clock::time_point fLastPublishTime = std::chrono::system_clock::now();
 
   /// Processing algo
-  // ALGO: CbmMcbm2018MonitorAlgoT0* fMonitorAlgo;
+  // ALGO: CbmMcbm2018MonitorAlgoBmon* fMonitorAlgo;
 
   /// Array of histograms to send to the histogram server
   TObjArray fArrayHisto = {};
diff --git a/MQ/unpacker/CbmDeviceUnpackTofCri.cxx b/MQ/unpacker/CbmDeviceUnpackTofCri.cxx
index ce258de709d821026b73e6b18ae1847fa60145b0..a04f0cd592d1eb7c65d14f736cb8a465db99188a 100644
--- a/MQ/unpacker/CbmDeviceUnpackTofCri.cxx
+++ b/MQ/unpacker/CbmDeviceUnpackTofCri.cxx
@@ -104,7 +104,7 @@ CbmDeviceUnpackTofCri::CbmDeviceUnpackTofCri()
   , fdLastDigiTime(0.)
   , fdFirstDigiTimeDif(0.)
   //, fdEvTime0(0.)
-  , fhRawTDigEvT0(nullptr)
+  , fhRawTDigEvBmon(nullptr)
   , fhRawTDigRef0(nullptr)
   , fhRawTDigRef(nullptr)
   , fhRawTRefDig0(nullptr)
@@ -417,9 +417,9 @@ void CbmDeviceUnpackTofCri::CreateHistograms()
 {
   LOG(info) << "create Histos for " << fuNrOfGdpbs << " gDPBs ";
 
-  fhRawTDigEvT0 =
-    new TH1F(Form("Raw_TDig-EvT0"), Form("Raw digi time difference to 1st digi ; time [ns]; cts"), 500, 0, 100.);
-  //   fHM->Add( Form("Raw_TDig-EvT0"), fhRawTDigEvT0);
+  fhRawTDigEvBmon =
+    new TH1F(Form("Raw_TDig-EvBmon"), Form("Raw digi time difference to 1st digi ; time [ns]; cts"), 500, 0, 100.);
+  //   fHM->Add( Form("Raw_TDig-EvBmon"), fhRawTDigEvBmon);
 
   fhRawTDigRef0 =
     new TH1F(Form("Raw_TDig-Ref0"), Form("Raw digi time difference to Ref ; time [ns]; cts"), 6000, -10000, 50000);
@@ -738,7 +738,7 @@ void CbmDeviceUnpackTofCri::BuildTint(uint64_t ulTsStartTime, int iMode)
                   if (str == 31)
                     if (digi->GetTot() > fiPulTotMin && digi->GetTot() < fiPulTotMax) bPul[i][0] = kTRUE;
                   if (str == 0) bPul[i][1] = kFALSE;
-                  if ((UInt_t) fiReqDigiAddr[i] == fiAddrRef) {  //special mapping for MAr2019 diamond (T0)
+                  if ((UInt_t) fiReqDigiAddr[i] == fiAddrRef) {  //special mapping for MAr2019 diamond (Bmon)
                     if (str == 0) bPul[i][0] = kTRUE;
                     if (str == 40) bPul[i][1] = kTRUE;
                   }
diff --git a/MQ/unpacker/CbmDeviceUnpackTofCri.h b/MQ/unpacker/CbmDeviceUnpackTofCri.h
index 1261beeb5d5f7a289ddbaad5e89691de0d30c233..d177f565d6bb7e3085e4b74c84563aec3dd40ee5 100644
--- a/MQ/unpacker/CbmDeviceUnpackTofCri.h
+++ b/MQ/unpacker/CbmDeviceUnpackTofCri.h
@@ -125,7 +125,7 @@ private:
   Double_t fdLastDigiTime;
   Double_t fdFirstDigiTimeDif;
   //Double_t fdEvTime0;
-  TH1* fhRawTDigEvT0;
+  TH1* fhRawTDigEvBmon;
   TH1* fhRawTDigRef0;
   TH1* fhRawTDigRef;
   TH1* fhRawTRefDig0;
@@ -190,7 +190,7 @@ private:
   /// Control flags
   // Bool_t fbMonitorMode;  //! Switch ON the filling of a minimal set of histograms
   // Bool_t fbDebugMonitorMode; //! Switch ON the filling of a additional set of histograms
-  // Bool_t fbSeparateArrayT0; //! If ON, T0 digis are saved in separate TClonesArray
+  // Bool_t fbSeparateArrayBmon; //! If ON, Bmon digis are saved in separate TClonesArray
   // Bool_t fbWriteOutput; //! If ON the output TClonesArray of digi is written to disk
 
   CbmDeviceUnpackTofCri(const CbmDeviceUnpackTofCri&) = delete;
diff --git a/MQ/unpacker/CbmDeviceUnpackTofMcbm2018.cxx b/MQ/unpacker/CbmDeviceUnpackTofMcbm2018.cxx
index a92ab7ee7ae15f131161f87a0be31b3b9d80c91e..d0b32871b3ac9dbd573e0c206f04f8b24c584b8a 100644
--- a/MQ/unpacker/CbmDeviceUnpackTofMcbm2018.cxx
+++ b/MQ/unpacker/CbmDeviceUnpackTofMcbm2018.cxx
@@ -99,7 +99,7 @@ CbmDeviceUnpackTofMcbm2018::CbmDeviceUnpackTofMcbm2018()
   , fdLastDigiTime(0.)
   , fdFirstDigiTimeDif(0.)
   //, fdEvTime0(0.)
-  , fhRawTDigEvT0(nullptr)
+  , fhRawTDigEvBmon(nullptr)
   , fhRawTDigRef0(nullptr)
   , fhRawTDigRef(nullptr)
   , fhRawTRefDig0(nullptr)
@@ -508,7 +508,7 @@ Bool_t CbmDeviceUnpackTofMcbm2018::ReInitContainers()
                 uFee * fUnpackPar->GetNrOfChannelsPerFee() / 4 + uCh / 4 + 40 * fviRpcSide[iGbtx],
                 //                           0, uFee + 10 * fviRpcSide[iGbtx],
                 0, fviRpcType[iGbtx]);
-              LOG(info) << Form("Map T0 Ch %d to Address 0x%08x", iCh, fviRpcChUId[iCh]);
+              LOG(info) << Form("Map Bmon Ch %d to Address 0x%08x", iCh, fviRpcChUId[iCh]);
             }
             else
               fviRpcChUId[iCh] = 0;
@@ -713,9 +713,9 @@ void CbmDeviceUnpackTofMcbm2018::CreateHistograms()
 {
   LOG(info) << "create Histos for " << fuNrOfGdpbs << " gDPBs ";
 
-  fhRawTDigEvT0 =
-    new TH1F(Form("Raw_TDig-EvT0"), Form("Raw digi time difference to 1st digi ; time [ns]; cts"), 500, 0, 100.);
-  //   fHM->Add( Form("Raw_TDig-EvT0"), fhRawTDigEvT0);
+  fhRawTDigEvBmon =
+    new TH1F(Form("Raw_TDig-EvBmon"), Form("Raw digi time difference to 1st digi ; time [ns]; cts"), 500, 0, 100.);
+  //   fHM->Add( Form("Raw_TDig-EvBmon"), fhRawTDigEvBmon);
 
   fhRawTDigRef0 =
     new TH1F(Form("Raw_TDig-Ref0"), Form("Raw digi time difference to Ref ; time [ns]; cts"), 6000, -10000, 50000);
@@ -1011,7 +1011,7 @@ void CbmDeviceUnpackTofMcbm2018::BuildTint(int iMode = 0)
                   if (str == 31)
                     if (digi->GetTot() > fiPulTotMin && digi->GetTot() < fiPulTotMax) bPul[i][0] = kTRUE;
                   if (str == 0) bPul[i][1] = kFALSE;
-                  if ((UInt_t) fiReqDigiAddr[i] == fiAddrRef) {  //special mapping for MAr2019 diamond (T0)
+                  if ((UInt_t) fiReqDigiAddr[i] == fiAddrRef) {  //special mapping for MAr2019 diamond (Bmon)
                     if (str == 0) bPul[i][0] = kTRUE;
                     if (str == 40) bPul[i][1] = kTRUE;
                   }
diff --git a/MQ/unpacker/CbmDeviceUnpackTofMcbm2018.h b/MQ/unpacker/CbmDeviceUnpackTofMcbm2018.h
index 2a1cdca3e45438c924f9c0a089c8622f3be91098..58cc4fe8b39843531de6ec30b4fb05991a3a1411 100644
--- a/MQ/unpacker/CbmDeviceUnpackTofMcbm2018.h
+++ b/MQ/unpacker/CbmDeviceUnpackTofMcbm2018.h
@@ -125,7 +125,7 @@ private:
   Double_t fdLastDigiTime;
   Double_t fdFirstDigiTimeDif;
   //Double_t fdEvTime0;
-  TH1* fhRawTDigEvT0;
+  TH1* fhRawTDigEvBmon;
   TH1* fhRawTDigRef0;
   TH1* fhRawTDigRef;
   TH1* fhRawTRefDig0;
@@ -190,7 +190,7 @@ private:
   /// Control flags
   // Bool_t fbMonitorMode;  //! Switch ON the filling of a minimal set of histograms
   // Bool_t fbDebugMonitorMode; //! Switch ON the filling of a additional set of histograms
-  // Bool_t fbSeparateArrayT0; //! If ON, T0 digis are saved in separate TClonesArray
+  // Bool_t fbSeparateArrayBmon; //! If ON, Bmon digis are saved in separate TClonesArray
   // Bool_t fbWriteOutput; //! If ON the output TClonesArray of digi is written to disk
 
   CbmDeviceUnpackTofMcbm2018(const CbmDeviceUnpackTofMcbm2018&) = delete;
diff --git a/MQ/unpacker/CbmDeviceUnpackTofStar2018.cxx b/MQ/unpacker/CbmDeviceUnpackTofStar2018.cxx
index 391dbccec62f3b9e272ca69ff01d441c33b03339..84cb7c8e4edddf6499562c35d25d8c115b417cc9 100644
--- a/MQ/unpacker/CbmDeviceUnpackTofStar2018.cxx
+++ b/MQ/unpacker/CbmDeviceUnpackTofStar2018.cxx
@@ -76,7 +76,7 @@ CbmDeviceUnpackTofStar2018::CbmDeviceUnpackTofStar2018()
   , fdLastDigiTime(0.)
   , fdFirstDigiTimeDif(0.)
   , fdEvTime0(0.)
-  , fhRawTDigEvT0(nullptr)
+  , fhRawTDigEvBmon(nullptr)
   , fhRawTDigRef0(nullptr)
   , fhRawTDigRef(nullptr)
   , fhRawTRefDig0(nullptr)
@@ -241,9 +241,9 @@ void CbmDeviceUnpackTofStar2018::CreateHistograms()
 {
   LOG(info) << "create Histos for " << fuNrOfGdpbs << " gDPBs ";
 
-  fhRawTDigEvT0 =
-    new TH1F(Form("Raw_TDig-EvT0"), Form("Raw digi time difference to 1st digi ; time [ns]; cts"), 500, 0, 100.);
-  //   fHM->Add( Form("Raw_TDig-EvT0"), fhRawTDigEvT0);
+  fhRawTDigEvBmon =
+    new TH1F(Form("Raw_TDig-EvBmon"), Form("Raw digi time difference to 1st digi ; time [ns]; cts"), 500, 0, 100.);
+  //   fHM->Add( Form("Raw_TDig-EvBmon"), fhRawTDigEvBmon);
 
   fhRawTDigRef0 =
     new TH1F(Form("Raw_TDig-Ref0"), Form("Raw digi time difference to Ref ; time [ns]; cts"), 6000, -10000, 50000);
diff --git a/MQ/unpacker/CbmDeviceUnpackTofStar2018.h b/MQ/unpacker/CbmDeviceUnpackTofStar2018.h
index 75231524211266cd399c1b015ad470d588062a77..30f3513d5ea9cc95fa6fce21556187c64dd930f7 100644
--- a/MQ/unpacker/CbmDeviceUnpackTofStar2018.h
+++ b/MQ/unpacker/CbmDeviceUnpackTofStar2018.h
@@ -104,7 +104,7 @@ private:
   Double_t fdLastDigiTime;
   Double_t fdFirstDigiTimeDif;
   Double_t fdEvTime0;
-  TH1* fhRawTDigEvT0;
+  TH1* fhRawTDigEvBmon;
   TH1* fhRawTDigRef0;
   TH1* fhRawTDigRef;
   TH1* fhRawTRefDig0;
diff --git a/MQ/unpacker/runUnpackTofCri.cxx b/MQ/unpacker/runUnpackTofCri.cxx
index 981b160e77e7cac348aaa928214e12a9a1c3cb1c..c01c29340d8d4fec04709d3578bba2eaac5401ff 100644
--- a/MQ/unpacker/runUnpackTofCri.cxx
+++ b/MQ/unpacker/runUnpackTofCri.cxx
@@ -24,7 +24,7 @@ void addCustomOptions(bpo::options_description& options)
   options.add_options()("PulTotMin", bpo::value<uint64_t>()->default_value(0), "Min pulser TimeOverThreshold");
   options.add_options()("PulTotMax", bpo::value<uint64_t>()->default_value(1000), "Max pulser TimeOverThreshold");
   options.add_options()("ToffTof", bpo::value<double_t>()->default_value(0.),
-                        "Time offset of Tof digis with respect to T0");
+                        "Time offset of Tof digis with respect to Bmon");
   options.add_options()("RefModType", bpo::value<int64_t>()->default_value(5), "Module type of reference counter");
   options.add_options()("RefModId", bpo::value<int64_t>()->default_value(0), "Module Id of reference counter");
   options.add_options()("RefCtrType", bpo::value<int64_t>()->default_value(4), "Counter type of reference counter");
diff --git a/MQ/unpacker/runUnpackTofMcbm2018.cxx b/MQ/unpacker/runUnpackTofMcbm2018.cxx
index 9b9cf97a132af28d2dc8ba3f93987f963e38dad5..533a0696a43dd783c77750028b1a21bfc7956878 100644
--- a/MQ/unpacker/runUnpackTofMcbm2018.cxx
+++ b/MQ/unpacker/runUnpackTofMcbm2018.cxx
@@ -24,7 +24,7 @@ void addCustomOptions(bpo::options_description& options)
   options.add_options()("PulTotMin", bpo::value<uint64_t>()->default_value(0), "Min pulser TimeOverThreshold");
   options.add_options()("PulTotMax", bpo::value<uint64_t>()->default_value(1000), "Max pulser TimeOverThreshold");
   options.add_options()("ToffTof", bpo::value<double_t>()->default_value(0.),
-                        "Time offset of Tof digis with respect to T0");
+                        "Time offset of Tof digis with respect to Bmon");
   options.add_options()("RefModType", bpo::value<int64_t>()->default_value(5), "Module type of reference counter");
   options.add_options()("RefModId", bpo::value<int64_t>()->default_value(0), "Module Id of reference counter");
   options.add_options()("RefCtrType", bpo::value<int64_t>()->default_value(4), "Counter type of reference counter");
diff --git a/algo/base/DigiData.cxx b/algo/base/DigiData.cxx
index c849b9d2bc7728391bab3e586a0c629df53b5cf0..9096729769cf6fcedfc6865a2b069f037f4cf4fe 100644
--- a/algo/base/DigiData.cxx
+++ b/algo/base/DigiData.cxx
@@ -15,7 +15,7 @@ DigiData::DigiData(const CbmDigiData& storable)
   : fSts(ToPODVector(storable.fSts.fDigis))
   , fMuch(ToPODVector(storable.fMuch.fDigis))
   , fTof(ToPODVector(storable.fTof.fDigis))
-  , fBmon(ToPODVector(storable.fT0.fDigis))
+  , fBmon(ToPODVector(storable.fBmon.fDigis))
   , fTrd(ToPODVector(storable.fTrd.fDigis))
   , fTrd2d(ToPODVector(storable.fTrd2d.fDigis))
   , fRich(ToPODVector(storable.fRich.fDigis))
@@ -56,7 +56,7 @@ size_t DigiData::TotalSizeBytes() const
 CbmDigiData DigiData::ToStorable() const
 {
   return CbmDigiData {
-    .fT0 =
+    .fBmon =
       {
         .fDigis = ToStdVector(fBmon),
       },
diff --git a/algo/base/DigiData.h b/algo/base/DigiData.h
index 25030d490c1ee8fd7fee8c6cf5d37d022ec63f68..7c09c5a126b20a76c6b61cb4c400ce15fa164c87 100644
--- a/algo/base/DigiData.h
+++ b/algo/base/DigiData.h
@@ -34,7 +34,7 @@ namespace cbm::algo
     PODVector<CbmStsDigi> fSts;    ///< Unpacked STS digis
     PODVector<CbmMuchDigi> fMuch;  ///< Unpacked MUCH digis
     PODVector<CbmTofDigi> fTof;    ///< Unpacked TOF digis
-    PODVector<CbmBmonDigi> fBmon;  ///< Unpacked T0 digis
+    PODVector<CbmBmonDigi> fBmon;  ///< Unpacked Bmon digis
     PODVector<CbmTrdDigi> fTrd;    ///< Unpacked TRD digis
     PODVector<CbmTrdDigi> fTrd2d;  ///< Unpacked TRD2D digis
     PODVector<CbmRichDigi> fRich;  ///< Unpacked RICH digis
diff --git a/algo/ca/TrackingChain.cxx b/algo/ca/TrackingChain.cxx
index 0d66393a916da6d1adf8069a60befa359125cc1b..e38cf8977a20cb766bb0c5574852c7b2063cb406 100644
--- a/algo/ca/TrackingChain.cxx
+++ b/algo/ca/TrackingChain.cxx
@@ -166,7 +166,7 @@ void TrackingChain::ReadHits(PartitionedSpan<const ca::HitTypes_t::at<DetID>> hi
     if constexpr (IsSts) { iStLocal = (extHitAddress >> 4) & 0xF; }
     if constexpr (IsTof) {
       iStLocal = tof::Config::GetTofTrackingStation(extHitAddress);
-      if (tof::Config::IsT0(extHitAddress)) { continue; }  // skip hits from T0
+      if (tof::Config::IsBmon(extHitAddress)) { continue; }  // skip hits from Bmon
     }
 
     int iStActive  = (iStLocal != -1) ? fCaFramework.GetParameters().GetStationIndexActive(iStLocal, DetID) : -1;
diff --git a/algo/detectors/bmon/ReadoutConfig.cxx b/algo/detectors/bmon/ReadoutConfig.cxx
index b04ac70f8b1ae7a587f7acb5518180e8647c9ff2..b4f5133d2de936066e3760c5c84027c4348420e3 100644
--- a/algo/detectors/bmon/ReadoutConfig.cxx
+++ b/algo/detectors/bmon/ReadoutConfig.cxx
@@ -110,13 +110,13 @@ namespace cbm::algo::bmon
       const uint32_t uCh0 = uCh;
       switch (rpcType[uGbtx]) {
         case 5: {
-          /// Special Treatment for the T0 diamond
-          BuildChannelsUidMapT0(uCh, uGbtx);
+          /// Special Treatment for the Bmon diamond
+          BuildChannelsUidMapBmon(uCh, uGbtx);
           break;
         }
         case 99: {
-          /// Special Treatment for the 2022 T0 diamond, keep past behavior for older data!
-          BuildChannelsUidMapT0_2022(uCh, uGbtx);
+          /// Special Treatment for the 2022 Bmon diamond, keep past behavior for older data!
+          BuildChannelsUidMapBmon_2022(uCh, uGbtx);
           break;
         }
         case -1: {
@@ -125,39 +125,39 @@ namespace cbm::algo::bmon
           break;
         }
         default: {
-          LOG(error) << "Invalid T0 Type specifier for GBTx " << std::setw(2) << uGbtx << ": " << rpcType[uGbtx];
+          LOG(error) << "Invalid Bmon Type specifier for GBTx " << std::setw(2) << uGbtx << ": " << rpcType[uGbtx];
         }
       }  // switch (rpcType[uGbtx])
       if ((int32_t)(uCh - uCh0) != numFebsPerComp * numAsicsPerFeb * numChanPerAsic / 2) {
-        LOG(fatal) << "T0 mapping error for Gbtx " << uGbtx << ",  diff = " << uCh - uCh0;
+        LOG(fatal) << "Bmon mapping error for Gbtx " << uGbtx << ",  diff = " << uCh - uCh0;
       }
     }
   }
 
   // -------------------------------------------------------------------------
-  void ReadoutConfig::BuildChannelsUidMapT0(uint32_t& uCh, uint32_t uGbtx)
+  void ReadoutConfig::BuildChannelsUidMapBmon(uint32_t& uCh, uint32_t uGbtx)
   {
     L_(debug) << " Map diamond " << moduleId[uGbtx] << " at GBTX " << uGbtx << " -  uCh = " << uCh;
     for (uint32_t uGet4 = 0; uGet4 < numElinksPerCrob; ++uGet4) {
       for (uint32_t uGet4Ch = 0; uGet4Ch < numChanPerAsic; ++uGet4Ch) {
         /// Mapping for the 2022 beamtime
         if (uGet4 < 32 && 0 == uGet4Ch && -1 < moduleId[uGbtx]) {
-          uint32_t uChannelT0 = uGet4 + 32 * rpcSide[uGbtx];
-          uChannelT0 /= 8;
-          fviRpcChUId[uCh] = CbmTofAddress::GetUniqueAddress(moduleId[uGbtx], 0, uChannelT0, 0, rpcType[uGbtx]);
-          L_(debug) << fmt::format("  T0 channel: %u from GBTx %2u, indx %d address %08x", uChannelT0, uGbtx, uCh,
+          uint32_t uChannelBmon = uGet4 + 32 * rpcSide[uGbtx];
+          uChannelBmon /= 8;
+          fviRpcChUId[uCh] = CbmTofAddress::GetUniqueAddress(moduleId[uGbtx], 0, uChannelBmon, 0, rpcType[uGbtx]);
+          L_(debug) << fmt::format("  Bmon channel: %u from GBTx %2u, indx %d address %08x", uChannelBmon, uGbtx, uCh,
                                    fviRpcChUId[uCh]);
-        }  // Valid T0 channel
+        }  // Valid Bmon channel
         else {
           fviRpcChUId[uCh] = 0;
-        }  // Invalid T0 channel
+        }  // Invalid Bmon channel
         uCh++;
       }
     }
   }
 
   // -------------------------------------------------------------------------
-  void ReadoutConfig::BuildChannelsUidMapT0_2022(uint32_t& uCh, uint32_t uGbtx)
+  void ReadoutConfig::BuildChannelsUidMapBmon_2022(uint32_t& uCh, uint32_t uGbtx)
   {
     L_(debug) << " Map 2022 diamond " << moduleId[uGbtx] << " at GBTX " << uGbtx << " -  uCh = " << uCh;
     for (uint32_t uGet4 = 0; uGet4 < numElinksPerCrob; ++uGet4) {
@@ -166,15 +166,15 @@ namespace cbm::algo::bmon
         if (-1 < moduleId[uGbtx] && uGet4 < 32 && 0 == uGet4 % 4 && 0 == uGet4Ch) {
           /// 1 channel per physical GET4, 2 links per physical GET4, 4 physical GET4s per GBTx, 1 GBTx per comp.
           /// 16 channels for one side, 16 for the other
-          uint32_t uChannelT0 = (uGet4 / 8 + 4 * (uGbtx / 2)) % 16;
-          /// Type hard-coded to allow different parameter values to separate 2022 T0 and pre-2022 T0
-          fviRpcChUId[uCh] = CbmTofAddress::GetUniqueAddress(moduleId[uGbtx], 0, uChannelT0, rpcSide[uGbtx], 5);
-          L_(debug) << fmt::format("  Bmon channel: %u side %u from GBTx %2u, indx %d address %08x \n", uChannelT0,
+          uint32_t uChannelBmon = (uGet4 / 8 + 4 * (uGbtx / 2)) % 16;
+          /// Type hard-coded to allow different parameter values to separate 2022 Bmon and pre-2022 Bmon
+          fviRpcChUId[uCh] = CbmTofAddress::GetUniqueAddress(moduleId[uGbtx], 0, uChannelBmon, rpcSide[uGbtx], 5);
+          L_(debug) << fmt::format("  Bmon channel: %u side %u from GBTx %2u, indx %d address %08x \n", uChannelBmon,
                                    rpcSide[uGbtx], uGbtx, uCh, fviRpcChUId[uCh]);
-        }  // Valid T0 channel
+        }  // Valid Bmon channel
         else {
           fviRpcChUId[uCh] = 0;
-        }  // Invalid T0 channel
+        }  // Invalid Bmon channel
         uCh++;
       }
     }
diff --git a/algo/detectors/bmon/ReadoutConfig.h b/algo/detectors/bmon/ReadoutConfig.h
index 189bf9ab666aad6b8a6a8650264e00652a823323..e8c8fb7250c2606793a02d5a7d744673a343ee56 100644
--- a/algo/detectors/bmon/ReadoutConfig.h
+++ b/algo/detectors/bmon/ReadoutConfig.h
@@ -40,7 +40,7 @@ namespace cbm::algo::bmon
     std::vector<uint32_t> Map(uint16_t equipId, uint16_t elink);
 
   private:
-    // --- T0 readout map
+    // --- Bmon readout map
     // --- Map index: (equipment, elink, channel), map value: (TOF address)
     std::map<uint16_t, std::vector<std::vector<uint32_t>>> fReadoutMap = {};
 
@@ -71,8 +71,8 @@ namespace cbm::algo::bmon
     std::vector<int32_t> fviRpcChUId = {};  ///< UID/address for each channel, build from type, side and module
 
     void BuildChannelsUidMap();
-    void BuildChannelsUidMapT0(uint32_t& uCh, uint32_t uGbtx);
-    void BuildChannelsUidMapT0_2022(uint32_t& uCh, uint32_t uGbtx);
+    void BuildChannelsUidMapBmon(uint32_t& uCh, uint32_t uGbtx);
+    void BuildChannelsUidMapBmon_2022(uint32_t& uCh, uint32_t uGbtx);
   };
 
 }  // namespace cbm::algo::bmon
diff --git a/algo/detectors/tof/Config.h b/algo/detectors/tof/Config.h
index cc116eed5e7cddc923b9ad3a6247b6b30a090d29..0114da940abbc62ed856bfccd0310631f047d565 100644
--- a/algo/detectors/tof/Config.h
+++ b/algo/detectors/tof/Config.h
@@ -27,7 +27,7 @@ namespace cbm::algo::tof
                                    CbmTofAddress::GetRpcId(address));
     }
 
-    static bool IsT0(uint32_t address) { return 5 == CbmTofAddress::GetSmType(address); }
+    static bool IsBmon(uint32_t address) { return 5 == CbmTofAddress::GetSmType(address); }
 
     static int32_t GetTofTrackingStation(const uint32_t smType, const uint32_t sm, const uint32_t rpc)
     {
diff --git a/algo/detectors/trd2d/Unpack.cxx b/algo/detectors/trd2d/Unpack.cxx
index 89018954fa3eb3f2918fb791aaaa88d58af2f465..7056e914b710f140ab221871c7549697c92f7f06 100644
--- a/algo/detectors/trd2d/Unpack.cxx
+++ b/algo/detectors/trd2d/Unpack.cxx
@@ -37,7 +37,7 @@ namespace cbm::algo::trd2d
     // define time wrt start of time slice in TRD/FASP clks [80 MHz]. Contains:
     //  - relative offset of the MS wrt the TS
     //  - FASP epoch offset for current CROB
-    //  - TRD2D system offset wrt to experiment time (e.g. T0)
+    //  - TRD2D system offset wrt to experiment time (e.g. Bmon)
     uint64_t time = uint64_t((msDescr.idx - tTimeslice - fParams.fSystemTimeOffset) / 12.5);
 
     // Get parameters for current eq id.
diff --git a/algo/evbuild/EventBuilder.h b/algo/evbuild/EventBuilder.h
index 7a345acf9087309fd38636c9bb4b505f11cb7b8c..aaa6599b04460cc53099063fadd3ff8cdea0a33e 100644
--- a/algo/evbuild/EventBuilder.h
+++ b/algo/evbuild/EventBuilder.h
@@ -43,7 +43,7 @@ namespace cbm::algo::evbuild
     EventBuilderDetectorMonitorData sts;    ///< Monitoring data for STS
     EventBuilderDetectorMonitorData much;   ///< Monitoring data for MUCH
     EventBuilderDetectorMonitorData tof;    ///< Monitoring data for TOF
-    EventBuilderDetectorMonitorData bmon;   ///< Monitoring data for T0
+    EventBuilderDetectorMonitorData bmon;   ///< Monitoring data for Bmon
     EventBuilderDetectorMonitorData trd;    ///< Monitoring data for TRD
     EventBuilderDetectorMonitorData trd2d;  ///< Monitoring data for TRD2D
     EventBuilderDetectorMonitorData rich;   ///< Monitoring data for RICH
diff --git a/algo/test/_GTestDigiEventSelector.cxx b/algo/test/_GTestDigiEventSelector.cxx
index 59e97bb9123870dea8d9dab2686af60128ca4ed5..fe8bc21df6b3582616d637a1078079f1682a58af 100644
--- a/algo/test/_GTestDigiEventSelector.cxx
+++ b/algo/test/_GTestDigiEventSelector.cxx
@@ -71,7 +71,7 @@ TEST(_GTestDigiEventSelector, CheckDigiEventSelectorAlgorithmSimple)
   }
 
   {
-    // --- Increment T0 - should fail
+    // --- Increment Bmon - should fail
     node["minDigis"][ToString(ECbmModuleId::kBmon)] = nBmon + 1;
     cbm::algo::evbuild::DigiEventSelectorConfig config(node);
     cbm::algo::evbuild::DigiEventSelector select(config);
diff --git a/algo/unpack/Unpack.cxx b/algo/unpack/Unpack.cxx
index b9560675b5bfb480bdf09d55779ef057499b8efd..9c9114b929b5a5f761fa8a0c6a6354b516acd958 100644
--- a/algo/unpack/Unpack.cxx
+++ b/algo/unpack/Unpack.cxx
@@ -95,7 +95,7 @@ namespace cbm::algo
       //   MsLoop(timeslice, fAlgoTof, comp, equipmentId, &digiTs.fTof, monitor, &monitor.fTof, 0x00);
       // }
       // if (subsystem == Subsystem::BMON) {
-      //   MsLoop(timeslice, fAlgoBmon, comp, equipmentId, &digiTs.fT0, monitor, &monitor.fBmon, 0x00);
+      //   MsLoop(timeslice, fAlgoBmon, comp, equipmentId, &digiTs.fBmon, monitor, &monitor.fBmon, 0x00);
       // }
       // if (subsystem == Subsystem::TRD) {
       //   monitor.fNumBytesInTrd +=
@@ -360,14 +360,14 @@ namespace cbm::algo
       L_(debug) << "--- Configured equipment " << equip << " with " << numElinks << " elinks";
     }
 
-    // Create one algorithm per component for T0 and configure it with parameters
+    // Create one algorithm per component for Bmon and configure it with parameters
     auto equipIdsBmon = fBmonConfig.GetEquipmentIds();
     for (auto& equip : equipIdsBmon) {
       std::unique_ptr<bmon::UnpackPar> par(new bmon::UnpackPar());
       const size_t numElinks = fBmonConfig.GetNumElinks(equip);
       for (size_t elink = 0; elink < numElinks; elink++) {
         bmon::UnpackElinkPar elinkPar;
-        elinkPar.fChannelUId = fBmonConfig.Map(equip, elink);  // Vector of T0 addresses for this elink
+        elinkPar.fChannelUId = fBmonConfig.Map(equip, elink);  // Vector of Bmon addresses for this elink
         elinkPar.fTimeOffset = fSystemTimeOffset[Subsystem::BMON];
         par->fElinkParams.push_back(elinkPar);
       }
@@ -452,7 +452,7 @@ namespace cbm::algo
     L_(info) << "--- Configured " << fAlgoTof.size() << " unpacker algorithms for TOF.";
     L_(info) << "--- Configured " << fAlgoTrd.size() << " unpacker algorithms for TRD.";
     L_(info) << "--- Configured " << fAlgoTrd2d.size() << " unpacker algorithms for TRD2D.";
-    L_(info) << "--- Configured " << fAlgoBmon.size() << " unpacker algorithms for T0.";
+    L_(info) << "--- Configured " << fAlgoBmon.size() << " unpacker algorithms for Bmon.";
     L_(info) << "==================================================";
   }
   // ----------------------------------------------------------------------------
diff --git a/algo/unpack/Unpack.h b/algo/unpack/Unpack.h
index f8ab66438d7c31c654b04ca8b677851408ff546f..d5f37e602ae47c12a7b2c617e2a1c2766b08e00c 100644
--- a/algo/unpack/Unpack.h
+++ b/algo/unpack/Unpack.h
@@ -44,7 +44,7 @@ namespace cbm::algo
     std::vector<sts::UnpackMonitorData> fSts;      ///< Monitoring data for STS
     std::vector<much::UnpackMonitorData> fMuch;    ///< Monitoring data for MUCH
     std::vector<tof::UnpackMonitorData> fTof;      ///< Monitoring data for TOF
-    std::vector<bmon::UnpackMonitorData> fBmon;    ///< Monitoring data for T0
+    std::vector<bmon::UnpackMonitorData> fBmon;    ///< Monitoring data for Bmon
     std::vector<trd::UnpackMonitorData> fTrd;      ///< Monitoring data for TRD
     std::vector<trd2d::UnpackMonitorData> fTrd2d;  ///< Monitoring data for TRD2D
     std::vector<rich::UnpackMonitorData> fRich;    ///< Monitoring data for RICH
@@ -105,7 +105,7 @@ namespace cbm::algo
     /** @brief Parameters for TOF unpackers **/
     tof::ReadoutConfig fTofConfig {};
 
-    /** @brief Parameters for T0 unpackers **/
+    /** @brief Parameters for Bmon unpackers **/
     bmon::ReadoutConfig fBmonConfig {};
 
     /** @brief Parameters for TRD unpackers **/
@@ -179,7 +179,7 @@ namespace cbm::algo
     /** @brief TOF unpackers **/
     std::map<uint16_t, tof::Unpack> fAlgoTof = {};
 
-    /** @brief T0 unpackers **/
+    /** @brief Bmon unpackers **/
     std::map<uint16_t, bmon::Unpack> fAlgoBmon = {};
 
     /** @brief TRD unpackers **/
diff --git a/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx b/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx
index efe6df5e841cac46841c474f60c99e36f5467fec..0ba9886141c62505a4823e0029564bba22e56419 100644
--- a/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx
+++ b/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx
@@ -39,7 +39,7 @@ void CbmRecEventHeaderConverter::Init()
   RecEventHeaderBranch.AddField<float>("start_time", "Start time of the event, ns");
   RecEventHeaderBranch.AddField<float>("end_time", "End time of the event, ns");
   RecEventHeaderBranch.AddField<float>("match_weight", "");
-  RecEventHeaderBranch.AddField<float>("T0", "Reconstructed T0, ns");
+  RecEventHeaderBranch.AddField<float>("Bmon", "Reconstructed Bmon, ns");
   RecEventHeaderBranch.AddField<float>("tStartTS", "TS start time, ns");
 
   ivtx_chi2_     = RecEventHeaderBranch.GetFieldId("vtx_chi2");
@@ -49,7 +49,7 @@ void CbmRecEventHeaderConverter::Init()
   istart_time_   = RecEventHeaderBranch.GetFieldId("start_time");
   iend_time_     = RecEventHeaderBranch.GetFieldId("end_time");
   imatch_weight_ = RecEventHeaderBranch.GetFieldId("match_weight");
-  iT0_           = RecEventHeaderBranch.GetFieldId("T0");
+  iBmon_         = RecEventHeaderBranch.GetFieldId("Bmon");
   iTStartTS_     = RecEventHeaderBranch.GetFieldId("tStartTS");
 
   auto* man = AnalysisTree::TaskManager::GetInstance();
@@ -71,12 +71,12 @@ void CbmRecEventHeaderConverter::ProcessData(CbmEvent* event)
   rec_event_header_->SetField(GetPsdEnergy(event), iEpsd_);
 
   int evt_id;
-  float match_weight, start_time, end_time, T0, tStartTS;
+  float match_weight, start_time, end_time, Bmon, tStartTS;
   if (event) {
     evt_id     = event->GetUniqueID();
     start_time = event->GetStartTime();
     end_time   = event->GetEndTime();
-    T0         = event->GetTzero();
+    Bmon       = event->GetTzero();
 
     tStartTS = fTimeSlice->GetStartTime();
 
@@ -89,14 +89,14 @@ void CbmRecEventHeaderConverter::ProcessData(CbmEvent* event)
     evt_id       = cbm_header_->GetEventID();
     start_time   = cbm_header_->GetT();
     end_time     = cbm_header_->GetT();
-    T0           = -999999.;
+    Bmon         = -999999.;
     tStartTS     = -1.;
     match_weight = 1.;
   }
   rec_event_header_->SetField(evt_id, ievt_id_);
   rec_event_header_->SetField(start_time, istart_time_);
   rec_event_header_->SetField(end_time, iend_time_);
-  rec_event_header_->SetField(T0, iT0_);
+  rec_event_header_->SetField(Bmon, iBmon_);
   rec_event_header_->SetField(tStartTS, iTStartTS_);
   rec_event_header_->SetField(match_weight, imatch_weight_);
 }
diff --git a/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.h b/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.h
index 87891680c78223a14a66857ece21798f6a8109a7..0818144388a9b4a0185259deba25ec9e0f7641de 100644
--- a/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.h
+++ b/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.h
@@ -43,7 +43,7 @@ private:
   int istart_time_ {AnalysisTree::UndefValueInt};
   int iend_time_ {AnalysisTree::UndefValueInt};
   int imatch_weight_ {AnalysisTree::UndefValueInt};
-  int iT0_ {AnalysisTree::UndefValueInt};
+  int iBmon_ {AnalysisTree::UndefValueInt};
   int iTStartTS_ {AnalysisTree::UndefValueInt};
 
   ClassDef(CbmRecEventHeaderConverter, 1)
diff --git a/analysis/common/analysis_tree_converter/CbmSimEventHeaderConverter.cxx b/analysis/common/analysis_tree_converter/CbmSimEventHeaderConverter.cxx
index 21222d01a92968c3e4380cd8c99999ecd36d921c..6328eea784dca32b17dbb98e5e5ee0bae7763c3e 100644
--- a/analysis/common/analysis_tree_converter/CbmSimEventHeaderConverter.cxx
+++ b/analysis/common/analysis_tree_converter/CbmSimEventHeaderConverter.cxx
@@ -39,7 +39,7 @@ void CbmSimEventHeaderConverter::Init()
   SimEventHeaderBranch.AddFields<float>({"start_time", "end_time"}, "ns (?), event time");
   SimEventHeaderBranch.AddField<int>("run_id", "run identifier");
   SimEventHeaderBranch.AddField<int>("event_id", "event identifier");
-  SimEventHeaderBranch.AddField<float>("T0", "MC event time, ns");
+  SimEventHeaderBranch.AddField<float>("Bmon", "MC event time, ns");
 
   ipsi_RP_     = SimEventHeaderBranch.GetFieldId("psi_RP");
   ib_          = SimEventHeaderBranch.GetFieldId("b");
@@ -47,7 +47,7 @@ void CbmSimEventHeaderConverter::Init()
   iend_time_   = SimEventHeaderBranch.GetFieldId("end_time");
   irun_id_     = SimEventHeaderBranch.GetFieldId("run_id");
   ievent_id_   = SimEventHeaderBranch.GetFieldId("event_id");
-  iT0_         = SimEventHeaderBranch.GetFieldId("T0");
+  iBmon_       = SimEventHeaderBranch.GetFieldId("Bmon");
 
   auto* man = AnalysisTree::TaskManager::GetInstance();
   man->AddBranch(sim_event_header_, SimEventHeaderBranch);
@@ -71,7 +71,7 @@ void CbmSimEventHeaderConverter::ProcessData(CbmEvent* event)
 
   if (!cbm_header) { throw std::runtime_error("CbmSimEventHeaderConverter::Exec - ERROR! No fHeader!"); }
 
-  LOG(info) << "MCEvent " << cbm_header->GetEventID() << " with T0 "
+  LOG(info) << "MCEvent " << cbm_header->GetEventID() << " with Bmon "
             << cbm_mc_event_list_->GetEventTime(event_id, file_id);
 
   TVector3 pos {cbm_header->GetX(), cbm_header->GetY(), cbm_header->GetZ()};
@@ -81,7 +81,7 @@ void CbmSimEventHeaderConverter::ProcessData(CbmEvent* event)
   sim_event_header_->SetField(float(cbm_header->GetB()), ib_);
   sim_event_header_->SetField(int(cbm_header->GetEventID()), ievent_id_);
   sim_event_header_->SetField(int(cbm_header->GetRunID()), irun_id_);
-  sim_event_header_->SetField(float(cbm_mc_event_list_->GetEventTime(event_id, file_id)), iT0_);
+  sim_event_header_->SetField(float(cbm_mc_event_list_->GetEventTime(event_id, file_id)), iBmon_);
 
   if (event) {
     LOG(info) << "TIME: " << event->GetStartTime() << "  " << event->GetEndTime();
diff --git a/analysis/common/analysis_tree_converter/CbmSimEventHeaderConverter.h b/analysis/common/analysis_tree_converter/CbmSimEventHeaderConverter.h
index f43eff6c3e309569b571cf9e59042850035b68d7..ced4c83d26eba4ad5d6dcb704000e8f0205b74f3 100644
--- a/analysis/common/analysis_tree_converter/CbmSimEventHeaderConverter.h
+++ b/analysis/common/analysis_tree_converter/CbmSimEventHeaderConverter.h
@@ -38,7 +38,7 @@ private:
   int iend_time_ {AnalysisTree::UndefValueInt};
   int irun_id_ {AnalysisTree::UndefValueInt};
   int ievent_id_ {AnalysisTree::UndefValueInt};
-  int iT0_ {AnalysisTree::UndefValueInt};
+  int iBmon_ {AnalysisTree::UndefValueInt};
 
   ClassDef(CbmSimEventHeaderConverter, 1)
 };
diff --git a/analysis/detectors/psd/CbmPsdMCbmQaReal.cxx b/analysis/detectors/psd/CbmPsdMCbmQaReal.cxx
index 56395cac77335b9857725d33b58d38f776a10627..84767b62ba7e284a5b4940942f82cbd32dcdff86 100644
--- a/analysis/detectors/psd/CbmPsdMCbmQaReal.cxx
+++ b/analysis/detectors/psd/CbmPsdMCbmQaReal.cxx
@@ -52,7 +52,7 @@ using boost::assign::list_of;
 
 CbmPsdMCbmQaReal::CbmPsdMCbmQaReal()
   : FairTask("CbmPsdMCbmQaReal")
-  , fT0Digis(nullptr)
+  , fBmonDigis(nullptr)
   , fPsdHits(nullptr)
   , fTofHits(nullptr)
   , fTofTracks(nullptr)
@@ -87,8 +87,8 @@ InitStatus CbmPsdMCbmQaReal::Init()
   fTofTracks = (TClonesArray*) ioman->GetObject("TofTracks");
   if (nullptr == fTofTracks) { Fatal("CbmPsdMCbmQaReal::Init", "No Tof Tracks!"); }
 
-  //     fT0Digis =(TClonesArray*) ioman->GetObject("CbmT0Digi");
-  //     if (nullptr == fT0Digis) { Fatal("CbmPsdMCbmQaReal::Init", "No T0 Digis!");}
+  //     fBmonDigis =(TClonesArray*) ioman->GetObject("CbmBmonDigi");
+  //     if (nullptr == fBmonDigis) { Fatal("CbmPsdMCbmQaReal::Init", "No Bmon Digis!");}
 
   fCbmEvent = (TClonesArray*) ioman->GetObject("CbmEvent");
   if (nullptr == fCbmEvent) { Fatal("CbmPsdMCbmQaReal::Init", "No Event!"); }
@@ -121,7 +121,7 @@ void CbmPsdMCbmQaReal::InitHistograms()
   fHM->Create1<TH1D>("fhPsdDigisTimeLog", "fhNofPsdDigisTimeLog;Time [ns];Counts", 400, 0., 0.);
   fHM->Create1<TH1D>("fhTofDigisTimeLog", "fhTofDigisTimeLog;Time [ns];Counts", 400, 0., 0.);
   fHM->Create1<TH1D>("fhStsDigisTimeLog", "fhStsDigisTimeLog;Time [ns];Counts", 400, 0., 0.);
-  fHM->Create1<TH1D>("fhT0DigisTimeLog", "fhT0DigisTimeLog;Time [ns];Counts", 400, 0., 0.);
+  fHM->Create1<TH1D>("fhBmonDigisTimeLog", "fhBmonDigisTimeLog;Time [ns];Counts", 400, 0., 0.);
 
   //Edep
   fHM->Create1<TH1D>("fhPsdDigisEdep", "fhPsdDigisEdep;Edep [adc counts];Counts", 500, 0, 50000);
@@ -168,7 +168,7 @@ void CbmPsdMCbmQaReal::Exec(Option_t* /*option*/)
       fHM->H1("fhPsdDigisTimeLog")->GetXaxis()->SetLimits(minTime, minTime + dT);
       fHM->H1("fhTofDigisTimeLog")->GetXaxis()->SetLimits(minTime, minTime + dT);
       fHM->H1("fhStsDigisTimeLog")->GetXaxis()->SetLimits(minTime, minTime + dT);
-      fHM->H1("fhT0DigisTimeLog")->GetXaxis()->SetLimits(minTime, minTime + dT);
+      fHM->H1("fhBmonDigisTimeLog")->GetXaxis()->SetLimits(minTime, minTime + dT);
 
 
       fDigiHitsInitialized = true;
@@ -199,12 +199,12 @@ void CbmPsdMCbmQaReal::Exec(Option_t* /*option*/)
       }
     }
 
-    //     int nofT0Digis = fT0Digis->GetEntriesFast();
-    //     for (int i = 0; i < nofT0Digis; i++) {
-    //         CbmDigi* digi = static_cast<CbmDigi*>(fT0Digis->At(i));
-    //         fHM->H1("fhT0DigisTimeLog")->Fill(digi->GetTime() );
-    //         fHM->H1("fhT0DigisTimeLogZoom")->Fill(digi->GetTime() );
-    //         fHM->H1("fhT0DigisTimeLogZoom2")->Fill(digi->GetTime());
+    //     int nofBmonDigis = fBmonDigis->GetEntriesFast();
+    //     for (int i = 0; i < nofBmonDigis; i++) {
+    //         CbmDigi* digi = static_cast<CbmDigi*>(fBmonDigis->At(i));
+    //         fHM->H1("fhBmonDigisTimeLog")->Fill(digi->GetTime() );
+    //         fHM->H1("fhBmonDigisTimeLogZoom")->Fill(digi->GetTime() );
+    //         fHM->H1("fhBmonDigisTimeLogZoom2")->Fill(digi->GetTime());
     //     }
   }
 
@@ -249,7 +249,7 @@ void CbmPsdMCbmQaReal::Exec(Option_t* /*option*/)
     for (int j = 0; j < nofTofHitsInEvent; j++) {
       auto iTofHit      = ev->GetIndex(ECbmDataType::kTofHit, j);
       CbmTofHit* tofHit = static_cast<CbmTofHit*>(fTofHits->At(iTofHit));
-      //if (tofHit->GetZ() < 2.) continue; // Cut T0 away!
+      //if (tofHit->GetZ() < 2.) continue; // Cut Bmon away!
 
       fHM->H1("fhTofHitsZ")->Fill(tofHit->GetZ());
       fHM->H1("fhTofHitsXZ")->Fill(tofHit->GetZ(), tofHit->GetX());
@@ -309,9 +309,9 @@ void CbmPsdMCbmQaReal::DrawHist()
 
   {
     fHM->CreateCanvas("psd_mcbm_DigisTimeLog", "psd_mcbm_DigisTimeLog", 1200, 1200);
-    DrawH1({fHM->H1("fhStsDigisTimeLog"), fHM->H1("fhTofDigisTimeLog"), fHM->H1("fhT0DigisTimeLog"),
+    DrawH1({fHM->H1("fhStsDigisTimeLog"), fHM->H1("fhTofDigisTimeLog"), fHM->H1("fhBmonDigisTimeLog"),
             fHM->H1("fhPsdDigisTimeLog")},
-           {"STS", "TOF", "T0", "PSD"}, kLinear, kLog, true, 0.87, 0.75, 0.99, 0.99);
+           {"STS", "TOF", "Bmon", "PSD"}, kLinear, kLog, true, 0.87, 0.75, 0.99, 0.99);
     gPad->SetLeftMargin(0.1);
     gPad->SetRightMargin(0.10);
     fHM->H1("fhStsDigisTimeLog")->GetYaxis()->SetTitleOffset(0.7);
diff --git a/analysis/detectors/psd/CbmPsdMCbmQaReal.h b/analysis/detectors/psd/CbmPsdMCbmQaReal.h
index 5aec8b91b5b7c126ed6fcd208cfa18e310491028..46abc4e4cfd89b15f8867a124a00a9fb16dcca9e 100644
--- a/analysis/detectors/psd/CbmPsdMCbmQaReal.h
+++ b/analysis/detectors/psd/CbmPsdMCbmQaReal.h
@@ -76,7 +76,7 @@ public:
 private:
   CbmDigiManager* fDigiMan = nullptr;
 
-  TClonesArray* fT0Digis;
+  TClonesArray* fBmonDigis;
   TClonesArray* fPsdHits;
   TClonesArray* fTofHits;
   TClonesArray* fTofTracks;
diff --git a/core/data/CbmDefs.h b/core/data/CbmDefs.h
index c99b7ef258aec415ded530538885cce1656510fb..c09e0d805381ef12acc3404d702fa23f97418a85 100644
--- a/core/data/CbmDefs.h
+++ b/core/data/CbmDefs.h
@@ -48,7 +48,7 @@ enum class ECbmModuleId
   kPsd        = 8,   ///< Projectile spectator detector
   kHodo       = 9,   ///< Hodoscope (for test beam times)
   kDummyDet   = 10,  ///< Dummy for tutorials or tests
-  kBmon       = 11,  //< T0 Counter
+  kBmon       = 11,  //< Bmon Counter
   kTrd2d      = 12,  ///< TRD-FASP Detector  (FIXME)
   kFsd        = 13,  ///< Forward spectator detector
   kNofSystems = 14,  ///< For loops over active systems
@@ -56,7 +56,7 @@ enum class ECbmModuleId
   kTarget     = 18,  ///< Target
   kPipe       = 19,  ///< Beam pipe
   kShield     = 20,  ///< Beam pipe shielding in MUCH section
-                     //  kBmon       = 21,  ///< T0 counter, hallo detector BMON
+                     //  kBmon       = 21,  ///< Bmon counter, hallo detector BMON
   kPlatform   = 21,  ///< RICH rail platform
   kCave       = 22,  ///< Cave
   kLastModule = 23,  ///< For loops over all modules
@@ -124,10 +124,10 @@ enum class ECbmDataType
   kPsdPoint = ToIntegralType(ECbmModuleId::kPsd) * 100,
   kPsdDigi,
   kPsdHit,  // PSD
-  kT0Point = ToIntegralType(ECbmModuleId::kBmon) * 100,
-  kT0Digi,
-  kT0CalDigi,
-  kT0Hit,  // BMON
+  kBmonPoint = ToIntegralType(ECbmModuleId::kBmon) * 100,
+  kBmonDigi,
+  kBmonCalDigi,
+  kBmonHit,  // BMON
   kFsdPoint = ToIntegralType(ECbmModuleId::kFsd) * 100,
   kFsdDigi,
   kFsdHit,             // Fsd
diff --git a/core/data/CbmEvent.h b/core/data/CbmEvent.h
index e51c70fcc19a8bda518f0db7342997abaf2fe7c7..8e790138fdb98ce8b36a7f0c921a504bb1d1ef16 100644
--- a/core/data/CbmEvent.h
+++ b/core/data/CbmEvent.h
@@ -170,7 +170,7 @@ public:
 
 
   /** Set t0
-   ** @param tZero  T0 measurement [ns]
+   ** @param tZero  Bmon measurement [ns]
    **/
   void SetTzero(double tZero) { fTzero = tZero; }
 
@@ -217,7 +217,7 @@ private:
   int32_t fNumber   = -1;        ///< Event number
   double fTimeStart = 0.;        ///< Event start time [ns]
   double fTimeEnd   = 0.;        ///< Event end time [ns]
-  double fTzero     = -999999.;  ///< T0 of event for TOF PID [ns]
+  double fTzero     = -999999.;  ///< Bmon of event for TOF PID [ns]
   CbmVertex fVertex = {};        ///< Primary Vertex
   CbmMatch* fMatch  = nullptr;   ///< Match object to MCEvent
 
diff --git a/core/data/base/CbmDigiData.h b/core/data/base/CbmDigiData.h
index 7d2ba2e243ef4be371b63f8d01b688cc209b4f81..5d802e0625b34d72cb1609bee55dd4522c58577e 100644
--- a/core/data/base/CbmDigiData.h
+++ b/core/data/base/CbmDigiData.h
@@ -32,7 +32,7 @@
 class CbmDigiData {
 
 public:
-  CbmBmonDigiData fT0;    ///< Beam monitor data
+  CbmBmonDigiData fBmon;  ///< Beam monitor data
   CbmStsDigiData fSts;    ///< STS data
   CbmMuchDigiData fMuch;  ///< MUCH data
   CbmRichDigiData fRich;  ///< RICH data
@@ -48,7 +48,7 @@ public:
   void serialize(Archive& ar, const unsigned int /*version*/)
   {
     // note, version is always the latest when saving
-    ar& fT0;
+    ar& fBmon;
     ar& fSts;
     ar& fMuch;
     ar& fTrd;
@@ -67,7 +67,7 @@ public:
   /** @brief Clear content **/
   void Clear()
   {
-    fT0.Clear();
+    fBmon.Clear();
     fSts.Clear();
     fMuch.Clear();
     fTrd.Clear();
@@ -82,7 +82,7 @@ public:
   size_t Size(ECbmModuleId system) const
   {
     switch (system) {
-      case ECbmModuleId::kBmon: return fT0.Size(); break;
+      case ECbmModuleId::kBmon: return fBmon.Size(); break;
       case ECbmModuleId::kSts: return fSts.Size(); break;
       case ECbmModuleId::kMuch: return fMuch.Size(); break;
       case ECbmModuleId::kTrd: return fTrd.Size(); break;
diff --git a/core/data/bmon/CbmBmonDigi.h b/core/data/bmon/CbmBmonDigi.h
index 52fe5e9c3152e297c3add0c7bffb5d3a8998c759..200e72d0cec551bb7ee3c15e4aac8364fab5aab4 100644
--- a/core/data/bmon/CbmBmonDigi.h
+++ b/core/data/bmon/CbmBmonDigi.h
@@ -58,15 +58,15 @@ public:
   ~CbmBmonDigi() {};
 
   /** @brief Get the desired name of the branch for this objects in the cbm output tree  (static)
-   ** @return "T0Digi"
+   ** @return "BmonDigi"
    **/
-  static const char* GetBranchName() { return "T0Digi"; }
+  static const char* GetBranchName() { return "BmonDigi"; }
 
 
   /** @brief Class name (static)
    ** @return CbmBmonDigi
    **/
-  static const char* GetClassName() { return "CbmT0Digi"; }
+  static const char* GetClassName() { return "CbmBmonDigi"; }
 
 
   /** System ID (static)
diff --git a/core/data/raw/TimesliceMetaData.h b/core/data/raw/TimesliceMetaData.h
index 97a683ae84947efc9bfccb33e4810f0b65c069e8..0616037453bdd6d9b40a8e8441cf0b4996b6c5a3 100644
--- a/core/data/raw/TimesliceMetaData.h
+++ b/core/data/raw/TimesliceMetaData.h
@@ -41,7 +41,7 @@ private:
   uint64_t fulOverlapNs  = 1280000;   //   1 MS * 1280000 ns (with TRD), default to update in source
   uint64_t fulIndex      = 0;
   /*
-      uint64_t fulErrorsNbT0   = 0;
+      uint64_t fulErrorsNbBmon   = 0;
       uint64_t fulErrorsNbSts  = 0;
       uint64_t fulErrorsNbMuch = 0;
       uint64_t fulErrorsNbTof  = 0;
diff --git a/core/data/test/bmon/_GTestCbmBmonDigi.cxx b/core/data/test/bmon/_GTestCbmBmonDigi.cxx
index fcb1cc98ecceec4519109452690a6436115a17b1..9e79e35ebe9b84e6138e8720e2bb847c1838084b 100644
--- a/core/data/test/bmon/_GTestCbmBmonDigi.cxx
+++ b/core/data/test/bmon/_GTestCbmBmonDigi.cxx
@@ -105,15 +105,15 @@ TEST(_GTestCbmBmonDigi, CheckAssignmentMoveConstructor)
   compareBmonDigiDataMembers(test, 111, ECbmModuleId::kBmon, 987654321., 23.);
 }
 
-//TEST(_GTestCbmBmonDigi, CheckGetClassName)
-//{
-// Create object
-//  CbmBmonDigi test(111, 987654321., 23.);
+TEST(_GTestCbmBmonDigi, CheckGetClassName)
+{
+  // Create object
+  CbmBmonDigi test(111, 987654321., 23.);
 
-//  compareBmonDigiDataMembers(test, 111, ECbmModuleId::kBmon, 987654321., 23.);
+  compareBmonDigiDataMembers(test, 111, ECbmModuleId::kBmon, 987654321., 23.);
 
-//  EXPECT_STREQ("CbmBmonDigi", test.GetClassName());
-//}
+  EXPECT_STREQ("CbmBmonDigi", test.GetClassName());
+}
 
 TEST(_GTestCbmBmonDigi, CheckSetTime)
 {
diff --git a/core/data/tof/CbmTofTracklet.cxx b/core/data/tof/CbmTofTracklet.cxx
index 5179c02b0bf3b5009c29534a15b3f3be7758878c..87820b0dd17b274e688d169539833fe4ed2dc734 100644
--- a/core/data/tof/CbmTofTracklet.cxx
+++ b/core/data/tof/CbmTofTracklet.cxx
@@ -174,7 +174,7 @@ double CbmTofTracklet::GetTex(CbmTofHit* pHit)
   */
   /*
   double dR = pHit->GetR();
-  LOG(debug) <<Form(" CbmTofTracklet::GetTex T0 %7.1f dR %7.1f, Tt %7.4f => Tex %7.3f, ",
+  LOG(debug) <<Form(" CbmTofTracklet::GetTex Bmon %7.1f dR %7.1f, Tt %7.4f => Tex %7.3f, ",
 		    fT0,dR,fTt,fT0 + dR*fTt)
 	     <<fTrackPar.ToString()
 	     ;
@@ -184,7 +184,7 @@ double CbmTofTracklet::GetTex(CbmTofHit* pHit)
   double dSign = 1.;
   if (pHit->GetZ() < fhit[0].GetZ()) dSign = -1;
   double dTex = fhit[0].GetTime() + fTt * dSign * Dist3D(pHit, &fhit[0]);
-  LOG(debug) << Form("GetTex T0 %7.3f, Z %7.1f, DZ %5.1f, Sign %2.0f, Tt %7.4f => Tex %7.3f, ", fhit[0].GetTime(), dZ,
+  LOG(debug) << Form("GetTex Bmon %7.3f, Z %7.1f, DZ %5.1f, Sign %2.0f, Tt %7.4f => Tex %7.3f, ", fhit[0].GetTime(), dZ,
                      dZ - fhit[0].GetZ(), dSign, fTt, dTex)
              << fTrackPar.ToString();
   return dTex;
@@ -192,7 +192,7 @@ double CbmTofTracklet::GetTex(CbmTofHit* pHit)
 
 double CbmTofTracklet::UpdateT0()
 {  //returns estimated time at R=0
-   //  double dT0=0.;
+   //  double dBmon=0.;
   int32_t nValidHits = 0;
   int32_t iHit1;
   double dDist1;
@@ -261,7 +261,7 @@ double CbmTofTracklet::UpdateT0()
   double esum       = 0;           //  RR=R^2 in numerator, e denotes 1 in numerator , Rt= R*t in numerator
   double Rtsum      = 0;           //
   double sig_weight = 0;           //  ae^2
-  double yoffset    = at[0] - 10;  //  T0 time offset to scale times to ns regime and not 10^10ns
+  double yoffset    = at[0] - 10;  //  Bmon time offset to scale times to ns regime and not 10^10ns
   for (int32_t i = 0; i < nValidHits; i++) {
     at[i] -= yoffset;  //  substract offset
     sig_weight = (ae[i] * ae[i]);
@@ -284,8 +284,8 @@ double CbmTofTracklet::UpdateT0()
 
   //if (iHit0>-1) fhit[iHit0].SetTime(fT0);
 
-  LOG(debug) << Form("Trkl size %u,  validHits %d, Tt = %6.4f TtErr = %2.4f T0 "
-                     "= %6.2f T0Err = %2.2f T0TtCov = %6.4f",
+  LOG(debug) << Form("Trkl size %u,  validHits %d, Tt = %6.4f TtErr = %2.4f Bmon "
+                     "= %6.2f BmonErr = %2.2f BmonTtCov = %6.4f",
                      (uint32_t) fTofHit.size(), nValidHits, fTt, fTtErr, fT0, fT0Err, fT0TtCov);
 
   return fT0;
diff --git a/core/detectors/tof/CbmMcbm2018TofPar.cxx b/core/detectors/tof/CbmMcbm2018TofPar.cxx
index 59f3c986832ff37ac55268440030607c1ddd4226..1674f521043c28a074ec2f6033b9754d29009ac6 100644
--- a/core/detectors/tof/CbmMcbm2018TofPar.cxx
+++ b/core/detectors/tof/CbmMcbm2018TofPar.cxx
@@ -230,13 +230,13 @@ void CbmMcbm2018TofPar::BuildChannelsUidMap()
         break;
       }
       case 5: {
-        /// Special Treatment for the T0 diamond
-        BuildChannelsUidMapT0(uCh, uGbtx);
+        /// Special Treatment for the Bmon diamond
+        BuildChannelsUidMapBmon(uCh, uGbtx);
         break;
       }
       case 99: {
-        /// Special Treatment for the 2022 T0 diamond, keep past behavior for older data!
-        BuildChannelsUidMapT0_2022(uCh, uGbtx);
+        /// Special Treatment for the 2022 Bmon diamond, keep past behavior for older data!
+        BuildChannelsUidMapBmon_2022(uCh, uGbtx);
         break;
       }
       case 78: {
@@ -341,7 +341,7 @@ void CbmMcbm2018TofPar::BuildChannelsUidMapStar(UInt_t& uCh, UInt_t uGbtx)
   uCh += 64;
 }
 // -------------------------------------------------------------------------
-void CbmMcbm2018TofPar::BuildChannelsUidMapT0(UInt_t& uCh, UInt_t uGbtx)
+void CbmMcbm2018TofPar::BuildChannelsUidMapBmon(UInt_t& uCh, UInt_t uGbtx)
 {
   LOG(info) << " Map diamond  at GBTX  -  uCh = " << uCh;
   for (UInt_t uFee = 0; uFee < kuNbFeePerGbtx; ++uFee) {
@@ -354,18 +354,18 @@ void CbmMcbm2018TofPar::BuildChannelsUidMapT0(UInt_t& uCh, UInt_t uGbtx)
           case 4: {
             /// 2019 mapping with 320/640 Mb/s FW
             /// => 4 GET4 per GBTx
-            /// => 1 T0 channel per GET4
+            /// => 1 Bmon channel per GET4
             /// => 1-2 eLinks per GET4 => GET4 ID = GET4 * 2 (+ 1)
-            UInt_t uChannelT0 = uFeeCh / 8 + 4 * fiRpcSide[uGbtx];
-            fviRpcChUId[uCh]  = CbmTofAddress::GetUniqueAddress(fiModuleId[uGbtx], 0, uChannelT0, 0, fiRpcType[uGbtx]);
-            LOG(info) << Form("T0 channel: %u from GBTx %2u Fee %2u "
+            UInt_t uChannelBmon = uFeeCh / 8 + 4 * fiRpcSide[uGbtx];
+            fviRpcChUId[uCh] = CbmTofAddress::GetUniqueAddress(fiModuleId[uGbtx], 0, uChannelBmon, 0, fiRpcType[uGbtx]);
+            LOG(info) << Form("Bmon channel: %u from GBTx %2u Fee %2u "
                               "Channel %2u, indx %d address %08x",
-                              uChannelT0, uGbtx, uFeeCh, uCh, uCh, fviRpcChUId[uCh]);
+                              uChannelBmon, uGbtx, uFeeCh, uCh, uCh, fviRpcChUId[uCh]);
             break;
-          }  // Valid T0 channel
+          }  // Valid Bmon channel
           default: {
             fviRpcChUId[uCh] = 0;
-          }  // Invalid T0 channel
+          }  // Invalid Bmon channel
         }    // switch( uCh % 4 )
       }      // if( 0 == uFee )
 
@@ -374,7 +374,7 @@ void CbmMcbm2018TofPar::BuildChannelsUidMapT0(UInt_t& uCh, UInt_t uGbtx)
   }    // for( UInt_t uFee = 0; uFee < kuNbChannelsPerFee; ++uFee )
 }
 // -------------------------------------------------------------------------
-void CbmMcbm2018TofPar::BuildChannelsUidMapT0_2022(UInt_t& uCh, UInt_t uGbtx)
+void CbmMcbm2018TofPar::BuildChannelsUidMapBmon_2022(UInt_t& uCh, UInt_t uGbtx)
 {
   LOG(info) << " Map 2022 diamond " << fiModuleId[uGbtx] << " at GBTX " << uGbtx << " -  uCh = " << uCh;
   for (UInt_t uGet4 = 0; uGet4 < kuNbGet4PerGbtx; ++uGet4) {
@@ -383,16 +383,16 @@ void CbmMcbm2018TofPar::BuildChannelsUidMapT0_2022(UInt_t& uCh, UInt_t uGbtx)
       if (-1 < fiModuleId[uGbtx] && uGet4 < 32 && 0 == uGet4 % 4 && 0 == uGet4Ch) {
         /// 1 channel per physical GET4, 2 links per physical GET4, 4 physical GET4s per GBTx, 1 GBTx per comp.
         /// 16 channels for one side, 16 for the other
-        UInt_t uChannelT0 = (uGet4 / 8 + 4 * (uGbtx / 2)) % 16;
-        /// Type hard-coded to allow different parameter values to separate 2022 T0 and pre-2022 T0
-        fviRpcChUId[uCh] = CbmTofAddress::GetUniqueAddress(fiModuleId[uGbtx], 0, uChannelT0, fiRpcSide[uGbtx], 5);
+        UInt_t uChannelBmon = (uGet4 / 8 + 4 * (uGbtx / 2)) % 16;
+        /// Type hard-coded to allow different parameter values to separate 2022 Bmon and pre-2022 Bmon
+        fviRpcChUId[uCh] = CbmTofAddress::GetUniqueAddress(fiModuleId[uGbtx], 0, uChannelBmon, fiRpcSide[uGbtx], 5);
         LOG(info) << Form("  Bmon channel: %u side %u from GBTx %2u, "
                           "indx %d address %08x",
-                          uChannelT0, fiRpcSide[uGbtx], uGbtx, uCh, fviRpcChUId[uCh]);
-      }  // Valid T0 channel
+                          uChannelBmon, fiRpcSide[uGbtx], uGbtx, uCh, fviRpcChUId[uCh]);
+      }  // Valid Bmon channel
       else {
         fviRpcChUId[uCh] = 0;
-      }  // Invalid T0 channel
+      }  // Invalid Bmon channel
       uCh++;
     }  // for( UInt_t uCh = 0; uCh < kuNbFeePerGbtx; ++uCh )
   }    // for( UInt_t uFee = 0; uFee < kuNbChannelsPerFee; ++uFee )
diff --git a/core/detectors/tof/CbmMcbm2018TofPar.h b/core/detectors/tof/CbmMcbm2018TofPar.h
index 338fb98fc830f9d00bfc7772ecb8d92db69e3fc1..a1ae088ab4eab93118d646825fc1bf7fcfdbb7e3 100644
--- a/core/detectors/tof/CbmMcbm2018TofPar.h
+++ b/core/detectors/tof/CbmMcbm2018TofPar.h
@@ -87,8 +87,8 @@ private:
   void BuildChannelsUidMap();
   void BuildChannelsUidMapCbm(UInt_t& uCh, UInt_t uGbtx);
   void BuildChannelsUidMapStar(UInt_t& uCh, UInt_t uGbtx);
-  void BuildChannelsUidMapT0(UInt_t& uCh, UInt_t uGbtx);
-  void BuildChannelsUidMapT0_2022(UInt_t& uCh, UInt_t uGbtx);
+  void BuildChannelsUidMapBmon(UInt_t& uCh, UInt_t uGbtx);
+  void BuildChannelsUidMapBmon_2022(UInt_t& uCh, UInt_t uGbtx);
   void BuildChannelsUidMapCern(UInt_t& uCh, UInt_t uGbtx);
   void BuildChannelsUidMapCera(UInt_t& uCh, UInt_t uGbtx);
   void BuildChannelsUidMapStar2(UInt_t& uCh, UInt_t uGbtx);
diff --git a/core/detectors/tof/CbmTofTrackingInterface.cxx b/core/detectors/tof/CbmTofTrackingInterface.cxx
index e74eba5d36079dcfba0198c0b687c63de2f89d14..5135054088e8e9fa504b1e9d9a03224063301689 100644
--- a/core/detectors/tof/CbmTofTrackingInterface.cxx
+++ b/core/detectors/tof/CbmTofTrackingInterface.cxx
@@ -95,8 +95,8 @@ InitStatus CbmTofTrackingInterface::Init()
         auto chLoBoarderY = chPosY - chSizeY;
         auto chUpBoarderY = chPosY + chSizeY;
 
-        // Cuts on T0 and undefined station ID
-        if (5 == iSmType) { continue; }  // Skip T0
+        // Cuts on Bmon and undefined station ID
+        if (5 == iSmType) { continue; }  // Skip Bmon
         if (iStation < 0) { continue; }
 
         fTofStationZ[iStation] += chPosZ;
diff --git a/core/detectors/trd/CbmMcbm2020TrdTshiftPar.cxx b/core/detectors/trd/CbmMcbm2020TrdTshiftPar.cxx
index 0c00d4103b00e15bc2f9d28f02079bdc59ba8f7a..f0778d6247ec0e9d01eee1200f22758e0eeddcd5 100644
--- a/core/detectors/trd/CbmMcbm2020TrdTshiftPar.cxx
+++ b/core/detectors/trd/CbmMcbm2020TrdTshiftPar.cxx
@@ -204,13 +204,13 @@ std::shared_ptr<TH3> CbmMcbm2020TrdTshiftPar::GetCalibHisto(std::shared_ptr<TFil
   THnSparse* hsparse = nullptr;
 
   // std::vector<CTAVM::eVars> varvec = {CTAVM::eVars::kTsSourceTsIndex, CTAVM::eVars::kDigiTrdChannel, CTAVM::eVars::kDigiDtCorrSlice};
-  // auto fillstation = CTAH::eFillStation::kTrdT0Digi;
+  // auto fillstation = CTAH::eFillStation::kTrdBmonDigi;
   // auto htype       = (int) CTAH::eHistoType::kGlobal;
   // histo =
   //   (THnSparseD*) CTAH::GetHistoFromFile(varvec, fillstation, htype, mcbmanafile);
 
-  std::string hpath = "FillStation-TrdT0Digi/FullTrd/"
-                      "TsSourceTsIndex_DigiTrdChannel_DigiDtCorrSlice-TrdT0Digi";
+  std::string hpath = "FillStation-TrdBmonDigi/FullTrd/"
+                      "TsSourceTsIndex_DigiTrdChannel_DigiDtCorrSlice-TrdBmonDigi";
   hsparse = mcbmanafile->Get<THnSparse>(hpath.data());
 
   LOG_IF(fatal, !hsparse) << " CbmMcbm2020TrdTshiftPar::GetCalibHisto " << hpath.data() << " not found in the file"
diff --git a/core/eventdisplay/CbmTimeslicePixelHitSetDraw.cxx b/core/eventdisplay/CbmTimeslicePixelHitSetDraw.cxx
index ef16878450e3fb3c29d90c7db0e437a58fb84f5a..5c6e70265b8a7f32b98c24fa101bc92fe7406bd2 100644
--- a/core/eventdisplay/CbmTimeslicePixelHitSetDraw.cxx
+++ b/core/eventdisplay/CbmTimeslicePixelHitSetDraw.cxx
@@ -69,8 +69,8 @@ InitStatus CbmTimeslicePixelHitSetDraw::Init()
   else if ("PsdHit" == sName) {  //
     fDataType = ECbmDataType::kPsdHit;
   }
-  else if ("T0Hit" == sName) {  //
-    fDataType = ECbmDataType::kT0Hit;
+  else if ("BmonHit" == sName) {  //
+    fDataType = ECbmDataType::kBmonHit;
   }
   else {
     fDataType = ECbmDataType::kUnknown;
diff --git a/fles/mcbm2018/CMakeLists.txt b/fles/mcbm2018/CMakeLists.txt
index 4ed7d71706e95b20ddf6c01801c0123c89451b0d..74c4db961271ef5690de307436c1bbec94435dd8 100644
--- a/fles/mcbm2018/CMakeLists.txt
+++ b/fles/mcbm2018/CMakeLists.txt
@@ -38,8 +38,8 @@ set(SRCS
 
    monitor/CbmCheckDataFormatGdpb2018.cxx
    monitor/CbmMcbm2018MonitorDataRates.cxx
-   monitor/CbmMcbm2018MonitorAlgoT0.cxx
-   monitor/CbmMcbm2018MonitorTaskT0.cxx
+   monitor/CbmMcbm2018MonitorAlgoBmon.cxx
+   monitor/CbmMcbm2018MonitorTaskBmon.cxx
    monitor/CbmMcbm2018MonitorMcbmRate.cxx
    monitor/CbmMcbm2018MonitorMcbmSync.cxx
    monitor/CbmMcbm2018MonitorMcbmPulser.cxx
diff --git a/fles/mcbm2018/CbmFlibMcbm2018LinkDef.h b/fles/mcbm2018/CbmFlibMcbm2018LinkDef.h
index 73f2fa101ee606def1950ff076ae914f08bd4350..09b2bbb1a99b9d38176b785cd0bfc7e3cae062f6 100644
--- a/fles/mcbm2018/CbmFlibMcbm2018LinkDef.h
+++ b/fles/mcbm2018/CbmFlibMcbm2018LinkDef.h
@@ -33,8 +33,8 @@
 
 #pragma link C++ class CbmCheckDataFormatGdpb2018;
 #pragma link C++ class CbmMcbm2018MonitorDataRates;
-#pragma link C++ class CbmMcbm2018MonitorAlgoT0;
-#pragma link C++ class CbmMcbm2018MonitorTaskT0;
+#pragma link C++ class CbmMcbm2018MonitorAlgoBmon;
+#pragma link C++ class CbmMcbm2018MonitorTaskBmon;
 #pragma link C++ class CbmMcbm2018MonitorMcbmRate;
 #pragma link C++ class CbmMcbm2018MonitorMcbmSync;
 #pragma link C++ class CbmMcbm2018MonitorMcbmPulser;
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoT0.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoBmon.cxx
similarity index 91%
rename from fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoT0.cxx
rename to fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoBmon.cxx
index 62aa368f731c0c52c459fb6b4cd073c092eab600..d9523932d7a0f4a502ac9413efcbaf491719c189 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoT0.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoBmon.cxx
@@ -4,12 +4,12 @@
 
 // -----------------------------------------------------------------------------
 // -----                                                                   -----
-// -----                  CbmMcbm2018MonitorAlgoT0                         -----
+// -----                  CbmMcbm2018MonitorAlgoBmon                         -----
 // -----               Created 10.02.2019 by P.-A. Loizeau                 -----
 // -----                                                                   -----
 // -----------------------------------------------------------------------------
 
-#include "CbmMcbm2018MonitorAlgoT0.h"
+#include "CbmMcbm2018MonitorAlgoBmon.h"
 
 #include "CbmFlesHistosTools.h"
 #include "CbmFormatMsHeaderPrintout.h"
@@ -39,8 +39,8 @@
 #include <stdint.h>
 
 // -------------------------------------------------------------------------
-CbmMcbm2018MonitorAlgoT0::CbmMcbm2018MonitorAlgoT0() : CbmStar2019Algo() {}
-CbmMcbm2018MonitorAlgoT0::~CbmMcbm2018MonitorAlgoT0()
+CbmMcbm2018MonitorAlgoBmon::CbmMcbm2018MonitorAlgoBmon() : CbmStar2019Algo() {}
+CbmMcbm2018MonitorAlgoBmon::~CbmMcbm2018MonitorAlgoBmon()
 {
   /// Clear buffers
   fvmHitsInMs.clear();
@@ -51,14 +51,14 @@ CbmMcbm2018MonitorAlgoT0::~CbmMcbm2018MonitorAlgoT0()
 }
 
 // -------------------------------------------------------------------------
-Bool_t CbmMcbm2018MonitorAlgoT0::Init()
+Bool_t CbmMcbm2018MonitorAlgoBmon::Init()
 {
-  LOG(info) << "Initializing mCBM T0 2019 monitor algo";
+  LOG(info) << "Initializing mCBM Bmon 2019 monitor algo";
 
   return kTRUE;
 }
-void CbmMcbm2018MonitorAlgoT0::Reset() {}
-void CbmMcbm2018MonitorAlgoT0::Finish()
+void CbmMcbm2018MonitorAlgoBmon::Reset() {}
+void CbmMcbm2018MonitorAlgoBmon::Finish()
 {
   /// Printout Goodbye message and stats
 
@@ -66,17 +66,17 @@ void CbmMcbm2018MonitorAlgoT0::Finish()
 }
 
 // -------------------------------------------------------------------------
-Bool_t CbmMcbm2018MonitorAlgoT0::InitContainers()
+Bool_t CbmMcbm2018MonitorAlgoBmon::InitContainers()
 {
-  LOG(info) << "Init parameter containers for CbmMcbm2018MonitorAlgoT0";
+  LOG(info) << "Init parameter containers for CbmMcbm2018MonitorAlgoBmon";
   Bool_t initOK = ReInitContainers();
 
   return initOK;
 }
-Bool_t CbmMcbm2018MonitorAlgoT0::ReInitContainers()
+Bool_t CbmMcbm2018MonitorAlgoBmon::ReInitContainers()
 {
   LOG(info) << "**********************************************";
-  LOG(info) << "ReInit parameter containers for CbmMcbm2018MonitorAlgoT0";
+  LOG(info) << "ReInit parameter containers for CbmMcbm2018MonitorAlgoBmon";
 
   fUnpackPar = (CbmMcbm2018TofPar*) fParCList->FindObject("CbmMcbm2018TofPar");
   if (nullptr == fUnpackPar) return kFALSE;
@@ -85,7 +85,7 @@ Bool_t CbmMcbm2018MonitorAlgoT0::ReInitContainers()
 
   return initOK;
 }
-TList* CbmMcbm2018MonitorAlgoT0::GetParList()
+TList* CbmMcbm2018MonitorAlgoBmon::GetParList()
 {
   if (nullptr == fParCList) fParCList = new TList();
   fUnpackPar = new CbmMcbm2018TofPar("CbmMcbm2018TofPar");
@@ -93,7 +93,7 @@ TList* CbmMcbm2018MonitorAlgoT0::GetParList()
 
   return fParCList;
 }
-Bool_t CbmMcbm2018MonitorAlgoT0::InitParameters()
+Bool_t CbmMcbm2018MonitorAlgoBmon::InitParameters()
 {
 
   fuNrOfGdpbs = fUnpackPar->GetNrOfGdpbs();
@@ -138,7 +138,7 @@ Bool_t CbmMcbm2018MonitorAlgoT0::InitParameters()
 }
 // -------------------------------------------------------------------------
 
-void CbmMcbm2018MonitorAlgoT0::AddMsComponentToList(size_t component, UShort_t usDetectorId)
+void CbmMcbm2018MonitorAlgoBmon::AddMsComponentToList(size_t component, UShort_t usDetectorId)
 {
   /// Check for duplicates and ignore if it is the case
   for (UInt_t uCompIdx = 0; uCompIdx < fvMsComponentsList.size(); ++uCompIdx)
@@ -147,12 +147,12 @@ void CbmMcbm2018MonitorAlgoT0::AddMsComponentToList(size_t component, UShort_t u
   /// Add to list
   fvMsComponentsList.push_back(component);
 
-  LOG(info) << "CbmMcbm2018MonitorAlgoT0::AddMsComponentToList => Component " << component << " with detector ID 0x"
+  LOG(info) << "CbmMcbm2018MonitorAlgoBmon::AddMsComponentToList => Component " << component << " with detector ID 0x"
             << std::hex << usDetectorId << std::dec << " added to list";
 }
 // -------------------------------------------------------------------------
 
-Bool_t CbmMcbm2018MonitorAlgoT0::ProcessTs(const fles::Timeslice& ts)
+Bool_t CbmMcbm2018MonitorAlgoBmon::ProcessTs(const fles::Timeslice& ts)
 {
   fulCurrentTsIdx = ts.index();
   fdTsStartTime   = static_cast<Double_t>(ts.descriptor(0, 0).idx);
@@ -232,7 +232,7 @@ Bool_t CbmMcbm2018MonitorAlgoT0::ProcessTs(const fles::Timeslice& ts)
   return kTRUE;
 }
 
-Bool_t CbmMcbm2018MonitorAlgoT0::ProcessMs(const fles::Timeslice& ts, size_t uMsCompIdx, size_t uMsIdx)
+Bool_t CbmMcbm2018MonitorAlgoBmon::ProcessMs(const fles::Timeslice& ts, size_t uMsCompIdx, size_t uMsIdx)
 {
   auto msDescriptor        = ts.descriptor(uMsCompIdx, uMsIdx);
   fuCurrentEquipmentId     = msDescriptor.eq_id;
@@ -360,8 +360,8 @@ Bool_t CbmMcbm2018MonitorAlgoT0::ProcessMs(const fles::Timeslice& ts, size_t uMs
     fuGet4Id = mess.getGdpbGenChipId();
     ;
     fuGet4Nr = (fuCurrDpbIdx * fuNrOfGet4PerGdpb) + fuGet4Id;
-    //      UInt_t uChannelT0 = ( fuGet4Id < 32 ) ? ( fuGet4Id / 8 ) : (fuGet4Id / 8 - 1); /// December 2018 mapping
-    UInt_t uChannelT0 = fuGet4Id / 2 + 4 * fuCurrDpbIdx;  /// 2019 mapping with 320/640 Mb/s FW
+    //      UInt_t uChannelBmon = ( fuGet4Id < 32 ) ? ( fuGet4Id / 8 ) : (fuGet4Id / 8 - 1); /// December 2018 mapping
+    UInt_t uChannelBmon = fuGet4Id / 2 + 4 * fuCurrDpbIdx;  /// 2019 mapping with 320/640 Mb/s FW
 
     if (fuNrOfGet4PerGdpb <= fuGet4Id && !mess.isStarTrigger() && (gdpbv100::kuChipIdMergedEpoch != fuGet4Id))
       LOG(warning) << "Message with Get4 ID too high: " << fuGet4Id << " VS " << fuNrOfGet4PerGdpb
@@ -379,15 +379,15 @@ Bool_t CbmMcbm2018MonitorAlgoT0::ProcessMs(const fles::Timeslice& ts, size_t uMs
 
           fhErrorFractEvo->Fill(fdMsTime - fdStartTime, 0.0);
           fhLostEvtFractEvo->Fill(fdMsTime - fdStartTime, 0.0);
-          fvhErrorFractEvoChan[uChannelT0]->Fill(fdMsTime - fdStartTime, 0.0);
-          fvhEvtLostFractEvoChan[uChannelT0]->Fill(fdMsTime - fdStartTime, 0.0);
+          fvhErrorFractEvoChan[uChannelBmon]->Fill(fdMsTime - fdStartTime, 0.0);
+          fvhEvtLostFractEvoChan[uChannelBmon]->Fill(fdMsTime - fdStartTime, 0.0);
 
           fhMsgCntEvo->Fill(fdMsTime - fdStartTime);
           fhHitCntEvo->Fill(fdMsTime - fdStartTime);
 
-          fvhHitCntEvoChan[uChannelT0]->Fill(fdMsTime - fdStartTime);
+          fvhHitCntEvoChan[uChannelBmon]->Fill(fdMsTime - fdStartTime);
 
-          fvuHitCntChanMs[uChannelT0]++;
+          fvuHitCntChanMs[uChannelBmon]++;
 
           /// Do not fill the pulser hits to keep counts low for channel 0
           UInt_t uTot = mess.getGdpbHit32Tot();
@@ -395,20 +395,20 @@ Bool_t CbmMcbm2018MonitorAlgoT0::ProcessMs(const fles::Timeslice& ts, size_t uMs
             fuNonPulserCountsLastInter++;
 
             fhDpbMap->Fill(fuCurrDpbIdx);
-            fhChannelMap->Fill(uChannelT0);
-            fhChanHitMap->Fill(fuDiamChanMap[uChannelT0]);
+            fhChannelMap->Fill(uChannelBmon);
+            fhChanHitMap->Fill(fuDiamChanMap[uChannelBmon]);
 
             fvhDpbMapSpill[fuCurrentSpillPlot]->Fill(fuCurrDpbIdx);
-            fvhChannelMapSpill[fuCurrentSpillPlot]->Fill(fuDiamChanMap[uChannelT0]);
+            fvhChannelMapSpill[fuCurrentSpillPlot]->Fill(fuDiamChanMap[uChannelBmon]);
             fhHitsPerSpill->Fill(fuCurrentSpillIdx);
           }  // if( uTot < fuMinTotPulser || fuMaxTotPulser < uTot )
           else {
-            fhChannelMapPulser->Fill(uChannelT0);
-            fhHitMapEvoPulser->Fill(uChannelT0, fdMsTime - fdStartTime);
+            fhChannelMapPulser->Fill(uChannelBmon);
+            fhHitMapEvoPulser->Fill(uChannelBmon, fdMsTime - fdStartTime);
           }  // else of if( uTot < fuMinTotPulser || fuMaxTotPulser < uTot )
-          fhHitMapEvo->Fill(uChannelT0, fdMsTime - fdStartTime);
+          fhHitMapEvo->Fill(uChannelBmon, fdMsTime - fdStartTime);
           fhHitTotEvo->Fill(fdMsTime - fdStartTime, uTot);
-          fhChanHitMapEvo->Fill(fuDiamChanMap[uChannelT0], fdMsTime - fdStartTime);
+          fhChanHitMapEvo->Fill(fuDiamChanMap[uChannelBmon], fdMsTime - fdStartTime);
           //                  fvvmEpSupprBuffer[fuCurrDpbIdx].push_back( mess );
         }  // else of if( getGdpbHitIs24b() )
         break;
@@ -436,25 +436,25 @@ Bool_t CbmMcbm2018MonitorAlgoT0::ProcessMs(const fles::Timeslice& ts, size_t uMs
         if (gdpbv100::SYS_GET4_ERROR == mess.getGdpbSysSubType()) {
           fhErrorFractEvo->Fill(fdMsTime - fdStartTime, 0.0);
           fhLostEvtFractEvo->Fill(fdMsTime - fdStartTime, 0.0);
-          fvhErrorFractEvoChan[uChannelT0]->Fill(fdMsTime - fdStartTime, 0.0);
-          fvhEvtLostFractEvoChan[uChannelT0]->Fill(fdMsTime - fdStartTime, 0.0);
+          fvhErrorFractEvoChan[uChannelBmon]->Fill(fdMsTime - fdStartTime, 0.0);
+          fvhEvtLostFractEvoChan[uChannelBmon]->Fill(fdMsTime - fdStartTime, 0.0);
 
           fhMsgCntEvo->Fill(fdMsTime - fdStartTime);
           fhErrorCntEvo->Fill(fdMsTime - fdStartTime);
           fhErrorFractEvo->Fill(fdMsTime - fdStartTime, 1.0);
 
-          fvhErrorCntEvoChan[uChannelT0]->Fill(fdMsTime - fdStartTime);
-          fvhErrorFractEvoChan[uChannelT0]->Fill(fdMsTime - fdStartTime, 1.0);
+          fvhErrorCntEvoChan[uChannelBmon]->Fill(fdMsTime - fdStartTime);
+          fvhErrorFractEvoChan[uChannelBmon]->Fill(fdMsTime - fdStartTime, 1.0);
 
-          fvuErrorCntChanMs[uChannelT0]++;
+          fvuErrorCntChanMs[uChannelBmon]++;
           if (gdpbv100::GET4_V2X_ERR_LOST_EVT == mess.getGdpbSysErrData()) {
             fhLostEvtCntEvo->Fill(fdMsTime - fdStartTime);
             fhLostEvtFractEvo->Fill(fdMsTime - fdStartTime, 1.0);
 
-            fvhEvtLostCntEvoChan[uChannelT0]->Fill(fdMsTime - fdStartTime);
-            fvhEvtLostFractEvoChan[uChannelT0]->Fill(fdMsTime - fdStartTime, 1.0);
+            fvhEvtLostCntEvoChan[uChannelBmon]->Fill(fdMsTime - fdStartTime);
+            fvhEvtLostFractEvoChan[uChannelBmon]->Fill(fdMsTime - fdStartTime, 1.0);
 
-            fvuEvtLostCntChanMs[uChannelT0]++;
+            fvuEvtLostCntChanMs[uChannelBmon]++;
           }  // if( gdpbv100::GET4_V2X_ERR_LOST_EVT == mess.getGdpbSysErrData() )
         }    // if( gdpbv100::SYS_GET4_ERROR == mess.getGdpbSysSubType() )
              //            fvvmEpSupprBuffer[fuCurrDpbIdx].push_back( mess );
@@ -479,14 +479,14 @@ Bool_t CbmMcbm2018MonitorAlgoT0::ProcessMs(const fles::Timeslice& ts, size_t uMs
 }
 /*
 // -------------------------------------------------------------------------
-void CbmMcbm2018MonitorAlgoT0::ProcessEpochCycle( uint64_t ulCycleData )
+void CbmMcbm2018MonitorAlgoBmon::ProcessEpochCycle( uint64_t ulCycleData )
 {
    ULong64_t ulEpochCycleVal = ulCycleData & gdpbv100::kulEpochCycleFieldSz;
 
    if( !( ulEpochCycleVal == fvulCurrentEpochCycle[fuCurrDpbIdx] ||
           ulEpochCycleVal == fvulCurrentEpochCycle[fuCurrDpbIdx] + 1 ) &&
        0 < fulCurrentMsIdx ) {
-      LOG(warning) << "CbmMcbm2018MonitorAlgoT0::ProcessEpochCycle => "
+      LOG(warning) << "CbmMcbm2018MonitorAlgoBmon::ProcessEpochCycle => "
                  << " Missmatch in epoch cycles detected for Gdpb " << fuCurrDpbIdx <<", probably fake cycles due to epoch index corruption! "
                  << Form( " Current cycle 0x%09llX New cycle 0x%09llX", fvulCurrentEpochCycle[fuCurrDpbIdx], ulEpochCycleVal );
    } // if epoch cycle did not stay constant or increase by exactly 1, except if first MS of the TS
@@ -500,7 +500,7 @@ void CbmMcbm2018MonitorAlgoT0::ProcessEpochCycle( uint64_t ulCycleData )
 
    return;
 }
-void CbmMcbm2018MonitorAlgoT0::ProcessEpoch( gdpbv100::Message mess )
+void CbmMcbm2018MonitorAlgoBmon::ProcessEpoch( gdpbv100::Message mess )
 {
    ULong64_t ulEpochNr = mess.getGdpbEpEpochNb();
 
@@ -517,7 +517,7 @@ void CbmMcbm2018MonitorAlgoT0::ProcessEpoch( gdpbv100::Message mess )
    ProcessEpSupprBuffer();
 }
 // -------------------------------------------------------------------------
-void CbmMcbm2018MonitorAlgoT0::ProcessEpSupprBuffer()
+void CbmMcbm2018MonitorAlgoBmon::ProcessEpSupprBuffer()
 {
    Int_t iBufferSize = fvvmEpSupprBuffer[ fuCurrDpbIdx ].size();
 
@@ -589,7 +589,7 @@ void CbmMcbm2018MonitorAlgoT0::ProcessEpSupprBuffer()
    fvvmEpSupprBuffer[ fuCurrDpbIdx ].clear();
 }
 // -------------------------------------------------------------------------
-void CbmMcbm2018MonitorAlgoT0::ProcessHit( gdpbv100::FullMessage mess )
+void CbmMcbm2018MonitorAlgoBmon::ProcessHit( gdpbv100::FullMessage mess )
 {
    UInt_t uChannel = mess.getGdpbHitChanId();
    UInt_t uTot     = mess.getGdpbHit32Tot();
@@ -625,11 +625,11 @@ void CbmMcbm2018MonitorAlgoT0::ProcessHit( gdpbv100::FullMessage mess )
 
 }
 // -------------------------------------------------------------------------
-void CbmMcbm2018MonitorAlgoT0::ProcessSlCtrl( gdpbv100::FullMessage mess )
+void CbmMcbm2018MonitorAlgoBmon::ProcessSlCtrl( gdpbv100::FullMessage mess )
 {
 }
 // -------------------------------------------------------------------------
-void CbmMcbm2018MonitorAlgoT0::ProcessSysMess( gdpbv100::FullMessage mess )
+void CbmMcbm2018MonitorAlgoBmon::ProcessSysMess( gdpbv100::FullMessage mess )
 {
    switch( mess.getGdpbSysSubType() )
    {
@@ -665,7 +665,7 @@ void CbmMcbm2018MonitorAlgoT0::ProcessSysMess( gdpbv100::FullMessage mess )
       } // default
    } // switch( mess.getGdpbSysSubType() )
 }
-void CbmMcbm2018MonitorAlgoT0::ProcessError( gdpbv100::FullMessage mess )
+void CbmMcbm2018MonitorAlgoBmon::ProcessError( gdpbv100::FullMessage mess )
 {
    uint32_t uErrorType = mess.getGdpbSysErrData();
 
@@ -708,7 +708,7 @@ void CbmMcbm2018MonitorAlgoT0::ProcessError( gdpbv100::FullMessage mess )
 
    return;
 }
-void CbmMcbm2018MonitorAlgoT0::ProcessPattern( gdpbv100::FullMessage mess )
+void CbmMcbm2018MonitorAlgoBmon::ProcessPattern( gdpbv100::FullMessage mess )
 {
    uint16_t usType   = mess.getGdpbSysPattType();
    uint16_t usIndex  = mess.getGdpbSysPattIndex();
@@ -745,11 +745,11 @@ void CbmMcbm2018MonitorAlgoT0::ProcessPattern( gdpbv100::FullMessage mess )
 }
 // -------------------------------------------------------------------------
 */
-Bool_t CbmMcbm2018MonitorAlgoT0::CreateHistograms()
+Bool_t CbmMcbm2018MonitorAlgoBmon::CreateHistograms()
 {
-  std::string sFolder = "MoniT0";
+  std::string sFolder = "MoniBmon";
 
-  LOG(info) << "create Histos for T0 monitoring ";
+  LOG(info) << "create Histos for Bmon monitoring ";
 
   /// Logarithmic bining
   uint32_t iNbBinsLog = 0;
@@ -760,30 +760,30 @@ Bool_t CbmMcbm2018MonitorAlgoT0::CreateHistograms()
 
   /*******************************************************************/
   fhDpbMap =
-    new TH1I("hDpbMap", "Map of hits on T0 detector; DPB; Hits Count []", fuNrOfGdpbs, -0.5, fuNrOfGdpbs - 0.5);
-  fhChannelMap    = new TH1I("hChannelMap", "Map of hits on T0 detector; Strip; Hits Count []", kuNbChanDiamond, -0.5,
+    new TH1I("hDpbMap", "Map of hits on Bmon detector; DPB; Hits Count []", fuNrOfGdpbs, -0.5, fuNrOfGdpbs - 0.5);
+  fhChannelMap = new TH1I("hChannelMap", "Map of hits on Bmon detector; Strip; Hits Count []", kuNbChanDiamond, -0.5,
                           kuNbChanDiamond - 0.5);
-  fhHitMapEvo     = new TH2I("hHitMapEvo",
-                         "Map of hits on T0 detector vs time in run; Chan; "
+  fhHitMapEvo  = new TH2I("hHitMapEvo",
+                         "Map of hits on Bmon detector vs time in run; Chan; "
                          "Time in run [s]; Hits Count []",
                          kuNbChanDiamond, -0.5, kuNbChanDiamond - 0.5, fuHistoryHistoSize, 0, fuHistoryHistoSize);
-  fhHitTotEvo     = new TH2I("hHitTotEvo",
-                         "Evolution of TOT in T0 detector vs time in run; Time "
+  fhHitTotEvo  = new TH2I("hHitTotEvo",
+                         "Evolution of TOT in Bmon detector vs time in run; Time "
                          "in run [s]; TOT [ bin ]; Hits Count []",
                          fuHistoryHistoSize, 0, fuHistoryHistoSize, 256, -0.5, 255.5);
-  fhChanHitMap    = new TH1D("fhChanHitMap", "Map of hits on T0 detector; Strip; Hits Count []", kuNbChanDiamond, -0.5,
+  fhChanHitMap = new TH1D("fhChanHitMap", "Map of hits on Bmon detector; Strip; Hits Count []", kuNbChanDiamond, -0.5,
                           kuNbChanDiamond - 0.5);
   fhChanHitMapEvo = new TH2I("hChanHitMapEvo",
-                             "Map of hits on T0 detector vs time in run; "
+                             "Map of hits on Bmon detector vs time in run; "
                              "Strip; Time in run [s]; Hits Count []",
                              kuNbChanDiamond, 0., kuNbChanDiamond, fuHistoryHistoSize, 0, fuHistoryHistoSize);
   for (UInt_t uSpill = 0; uSpill < kuNbSpillPlots; uSpill++) {
     fvhDpbMapSpill.push_back(
       new TH1I(Form("hDpbMapSpill%02u", uSpill),
-               Form("Map of hits on T0 detector in current spill %02u; DPB; Hits Count []", uSpill), fuNrOfGdpbs, -0.5,
-               fuNrOfGdpbs - 0.5));
+               Form("Map of hits on Bmon detector in current spill %02u; DPB; Hits Count []", uSpill), fuNrOfGdpbs,
+               -0.5, fuNrOfGdpbs - 0.5));
     fvhChannelMapSpill.push_back(new TH1I(Form("hChannelMapSpill%02u", uSpill),
-                                          Form("Map of hits on T0 detector in current spill %02u; Strip; "
+                                          Form("Map of hits on Bmon detector in current spill %02u; Strip; "
                                                "Hits Count []",
                                                uSpill),
                                           kuNbChanDiamond, -0.5, kuNbChanDiamond - 0.5));
@@ -838,10 +838,10 @@ Bool_t CbmMcbm2018MonitorAlgoT0::CreateHistograms()
                                     "run [s]; LostEvent Fract/MS []; MS",
                                     fuHistoryHistoSize, 0, fuHistoryHistoSize, 1000, 0, 1);
 
-  fhChannelMapPulser = new TH1I("fhChannelMapPulser", "Map of pulser hits on T0 detector; Chan; Hits Count []",
+  fhChannelMapPulser = new TH1I("fhChannelMapPulser", "Map of pulser hits on Bmon detector; Chan; Hits Count []",
                                 kuNbChanDiamond, 0., kuNbChanDiamond);
   fhHitMapEvoPulser  = new TH2I("fhHitMapEvoPulser",
-                               "Map of hits on T0 detector vs time in run; "
+                               "Map of hits on Bmon detector vs time in run; "
                                "Chan; Time in run [s]; Hits Count []",
                                kuNbChanDiamond, 0., kuNbChanDiamond, fuHistoryHistoSize, 0, fuHistoryHistoSize);
 
@@ -970,7 +970,7 @@ Bool_t CbmMcbm2018MonitorAlgoT0::CreateHistograms()
   Double_t h = 10;
 
   /*******************************************************************/
-  /// Map of hits over T0 detector and same vs time in run
+  /// Map of hits over Bmon detector and same vs time in run
   fcHitMaps = new TCanvas("cHitMaps", "Hit maps", w, h);
   fcHitMaps->Divide(2);
 
@@ -1162,7 +1162,7 @@ Bool_t CbmMcbm2018MonitorAlgoT0::CreateHistograms()
 
   return kTRUE;
 }
-Bool_t CbmMcbm2018MonitorAlgoT0::FillHistograms()
+Bool_t CbmMcbm2018MonitorAlgoBmon::FillHistograms()
 {
   Double_t dMsgCountChan;
   Double_t dFractErrorsInMsChan;
@@ -1208,7 +1208,7 @@ Bool_t CbmMcbm2018MonitorAlgoT0::FillHistograms()
 
   return kTRUE;
 }
-Bool_t CbmMcbm2018MonitorAlgoT0::ResetHistograms(Bool_t bResetTime)
+Bool_t CbmMcbm2018MonitorAlgoBmon::ResetHistograms(Bool_t bResetTime)
 {
   for (UInt_t uChan = 0; uChan < kuNbChanDiamond; ++uChan) {
     fvhMsgCntEvoChan[uChan]->Reset();
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoT0.h b/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoBmon.h
similarity index 95%
rename from fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoT0.h
rename to fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoBmon.h
index e675f222658571adc2d12217bdb5d4bcce2176c2..5fa863c6f5bc472a0112e3d44a3c0a8028862e21 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoT0.h
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorAlgoBmon.h
@@ -4,13 +4,13 @@
 
 // -----------------------------------------------------------------------------
 // -----                                                                   -----
-// -----                  CbmMcbm2018MonitorAlgoT0                         -----
+// -----                  CbmMcbm2018MonitorAlgoBmon                         -----
 // -----               Created 10.02.2019 by P.-A. Loizeau                 -----
 // -----                                                                   -----
 // -----------------------------------------------------------------------------
 
-#ifndef CbmMcbm2018MonitorAlgoT0_H
-#define CbmMcbm2018MonitorAlgoT0_H
+#ifndef CbmMcbm2018MonitorAlgoBmon_H
+#define CbmMcbm2018MonitorAlgoBmon_H
 
 #include "CbmStar2019Algo.h"
 
@@ -37,10 +37,10 @@ class TH1;
 class TH2;
 class TProfile;
 
-class CbmMcbm2018MonitorAlgoT0 : public CbmStar2019Algo<CbmTofDigi> {
+class CbmMcbm2018MonitorAlgoBmon : public CbmStar2019Algo<CbmTofDigi> {
 public:
-  CbmMcbm2018MonitorAlgoT0();
-  ~CbmMcbm2018MonitorAlgoT0();
+  CbmMcbm2018MonitorAlgoBmon();
+  ~CbmMcbm2018MonitorAlgoBmon();
 
   virtual Bool_t Init();
   virtual void Reset();
@@ -238,10 +238,10 @@ private:
          return gdpbId * fuNrOfGet4PerGdpb + get4Id;
       }
 */
-  CbmMcbm2018MonitorAlgoT0(const CbmMcbm2018MonitorAlgoT0&);
-  CbmMcbm2018MonitorAlgoT0 operator=(const CbmMcbm2018MonitorAlgoT0&);
+  CbmMcbm2018MonitorAlgoBmon(const CbmMcbm2018MonitorAlgoBmon&);
+  CbmMcbm2018MonitorAlgoBmon operator=(const CbmMcbm2018MonitorAlgoBmon&);
 
-  ClassDef(CbmMcbm2018MonitorAlgoT0, 1)
+  ClassDef(CbmMcbm2018MonitorAlgoBmon, 1)
 };
 
 #endif
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorDataRates.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorDataRates.cxx
index c84b5e5d22c80c6b43ef478eb08d53922c540f02..1241a9d00d61c83f569b8549c7ff2b6b31276a44 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorDataRates.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorDataRates.cxx
@@ -482,7 +482,7 @@ Bool_t CbmMcbm2018MonitorDataRates::DoUnpack(const fles::Timeslice& ts, size_t /
         case kuSysIdRich: uNbMessages = (size - (size % kuBytesPerMessageRich)) / kuBytesPerMessageRich; break;
         case kuSysIdMuch: uNbMessages = (size - (size % kuBytesPerMessageMuch)) / kuBytesPerMessageMuch; break;
         case kuSysIdTof: uNbMessages = (size - (size % kuBytesPerMessageTof)) / kuBytesPerMessageTof; break;
-        case kuSysIdT0: uNbMessages = (size - (size % kuBytesPerMessageT0)) / kuBytesPerMessageT0; break;
+        case kuSysIdBmon: uNbMessages = (size - (size % kuBytesPerMessageBmon)) / kuBytesPerMessageBmon; break;
         default: uNbMessages = (size - (size % 4)) / 4;
       }  // switch( uSysId )
       fvhMsMessPerLink[uMsComp]->Fill(uNbMessages);
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorDataRates.h b/fles/mcbm2018/monitor/CbmMcbm2018MonitorDataRates.h
index 3279b8e2a5bab97f2c41d191d1c7c698156bcd56..20f711887f047cef02275179c0ced0ad968dea22 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorDataRates.h
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorDataRates.h
@@ -103,12 +103,12 @@ private:
   static const UInt_t kuSysIdRich           = 30;
   static const UInt_t kuSysIdMuch           = 40;
   static const UInt_t kuSysIdTof            = 60;
-  static const UInt_t kuSysIdT0             = 90;
+  static const UInt_t kuSysIdBmon           = 90;
   static const UInt_t kuBytesPerMessageSts  = 4;
   static const UInt_t kuBytesPerMessageRich = 4;
   static const UInt_t kuBytesPerMessageMuch = 4;
   static const UInt_t kuBytesPerMessageTof  = 8;
-  static const UInt_t kuBytesPerMessageT0   = 8;
+  static const UInt_t kuBytesPerMessageBmon = 8;
 
   /// Histograms and histogram control variables
   // Evolution plots control
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskT0.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskBmon.cxx
similarity index 79%
rename from fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskT0.cxx
rename to fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskBmon.cxx
index b032a8bab7916ad3c8b0fe64a6ee3b90f7377813..34c723255c55bb223ffbde65f77ba9b5223d8fc7 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskT0.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskBmon.cxx
@@ -4,14 +4,14 @@
 
 // -----------------------------------------------------------------------------
 // -----                                                                   -----
-// -----                     CbmMcbm2018MonitorTaskT0                      -----
+// -----                     CbmMcbm2018MonitorTaskBmon                      -----
 // -----               Created 10.02.2019 by P.-A. Loizeau                 -----
 // -----                                                                   -----
 // -----------------------------------------------------------------------------
 
-#include "CbmMcbm2018MonitorTaskT0.h"
+#include "CbmMcbm2018MonitorTaskBmon.h"
 
-#include "CbmMcbm2018MonitorAlgoT0.h"
+#include "CbmMcbm2018MonitorAlgoBmon.h"
 #include "CbmMcbm2018TofPar.h"
 
 #include "FairParGenericSet.h"
@@ -35,14 +35,14 @@
 
 #include <stdint.h>
 
-Bool_t bMcbm2018MonitorTaskT0ResetHistos = kFALSE;
+Bool_t bMcbm2018MonitorTaskBmonResetHistos = kFALSE;
 
-CbmMcbm2018MonitorTaskT0::CbmMcbm2018MonitorTaskT0()
+CbmMcbm2018MonitorTaskBmon::CbmMcbm2018MonitorTaskBmon()
   : CbmMcbmUnpack()
   , fbMonitorMode(kTRUE)
   , fbDebugMonitorMode(kFALSE)
   , fuHistoryHistoSize(3600)
-  , fsHistoFileName("data/HistosMonitorT0.root")
+  , fsHistoFileName("data/HistosMonitorBmon.root")
   , fuMinTotPulser(90)
   , fuMaxTotPulser(100)
   , fuOffSpillCountLimit(200)
@@ -51,20 +51,20 @@ CbmMcbm2018MonitorTaskT0::CbmMcbm2018MonitorTaskT0()
   , fulTsCounter(0)
   , fMonitorAlgo(nullptr)
 {
-  fMonitorAlgo = new CbmMcbm2018MonitorAlgoT0();
+  fMonitorAlgo = new CbmMcbm2018MonitorAlgoBmon();
 }
 
-CbmMcbm2018MonitorTaskT0::~CbmMcbm2018MonitorTaskT0() { delete fMonitorAlgo; }
+CbmMcbm2018MonitorTaskBmon::~CbmMcbm2018MonitorTaskBmon() { delete fMonitorAlgo; }
 
-Bool_t CbmMcbm2018MonitorTaskT0::Init()
+Bool_t CbmMcbm2018MonitorTaskBmon::Init()
 {
-  LOG(info) << "CbmMcbm2018MonitorTaskT0::Init";
-  LOG(info) << "Initializing mCBM T0 2019 Monitor";
+  LOG(info) << "CbmMcbm2018MonitorTaskBmon::Init";
+  LOG(info) << "Initializing mCBM Bmon 2019 Monitor";
 
   return kTRUE;
 }
 
-void CbmMcbm2018MonitorTaskT0::SetParContainers()
+void CbmMcbm2018MonitorTaskBmon::SetParContainers()
 {
   LOG(info) << "Setting parameter containers for " << GetName();
 
@@ -88,7 +88,7 @@ void CbmMcbm2018MonitorTaskT0::SetParContainers()
   }  // for( Int_t iparC = 0; iparC < parCList->GetEntries(); ++iparC )
 }
 
-Bool_t CbmMcbm2018MonitorTaskT0::InitContainers()
+Bool_t CbmMcbm2018MonitorTaskBmon::InitContainers()
 {
   LOG(info) << "Init parameter containers for " << GetName();
 
@@ -143,14 +143,14 @@ Bool_t CbmMcbm2018MonitorTaskT0::InitContainers()
                        gROOT->FindObject((vCanvases[uCanv].first)->GetName()));
     }  //  for( UInt_t uCanv = 0; uCanv < vCanvases.size(); ++uCanv )
 
-    server->RegisterCommand("/Reset_MoniT0_Hist", "bMcbm2018MonitorTaskT0ResetHistos=kTRUE");
-    server->Restrict("/Reset_MoniT0_Hist", "allow=admin");
+    server->RegisterCommand("/Reset_MoniBmon_Hist", "bMcbm2018MonitorTaskBmonResetHistos=kTRUE");
+    server->Restrict("/Reset_MoniBmon_Hist", "allow=admin");
   }  // if( nullptr != server )
 
   return initOK;
 }
 
-Bool_t CbmMcbm2018MonitorTaskT0::ReInitContainers()
+Bool_t CbmMcbm2018MonitorTaskBmon::ReInitContainers()
 {
   LOG(info) << "ReInit parameter containers for " << GetName();
   Bool_t initOK = fMonitorAlgo->ReInitContainers();
@@ -158,18 +158,18 @@ Bool_t CbmMcbm2018MonitorTaskT0::ReInitContainers()
   return initOK;
 }
 
-void CbmMcbm2018MonitorTaskT0::AddMsComponentToList(size_t component, UShort_t usDetectorId)
+void CbmMcbm2018MonitorTaskBmon::AddMsComponentToList(size_t component, UShort_t usDetectorId)
 {
   fMonitorAlgo->AddMsComponentToList(component, usDetectorId);
 }
 
-Bool_t CbmMcbm2018MonitorTaskT0::DoUnpack(const fles::Timeslice& ts, size_t /*component*/)
+Bool_t CbmMcbm2018MonitorTaskBmon::DoUnpack(const fles::Timeslice& ts, size_t /*component*/)
 {
-  if (fbMonitorMode && bMcbm2018MonitorTaskT0ResetHistos) {
-    LOG(info) << "Reset T0 Monitor histos ";
+  if (fbMonitorMode && bMcbm2018MonitorTaskBmonResetHistos) {
+    LOG(info) << "Reset Bmon Monitor histos ";
     fMonitorAlgo->ResetHistograms();
-    bMcbm2018MonitorTaskT0ResetHistos = kFALSE;
-  }  // if( fbMonitorMode && bMcbm2018MonitorTaskT0ResetHistos )
+    bMcbm2018MonitorTaskBmonResetHistos = kFALSE;
+  }  // if( fbMonitorMode && bMcbm2018MonitorTaskBmonResetHistos )
 
   if (kFALSE == fMonitorAlgo->ProcessTs(ts)) {
     LOG(error) << "Failed processing TS " << ts.index() << " in unpacker algorithm class";
@@ -186,9 +186,9 @@ Bool_t CbmMcbm2018MonitorTaskT0::DoUnpack(const fles::Timeslice& ts, size_t /*co
   return kTRUE;
 }
 
-void CbmMcbm2018MonitorTaskT0::Reset() {}
+void CbmMcbm2018MonitorTaskBmon::Reset() {}
 
-void CbmMcbm2018MonitorTaskT0::Finish()
+void CbmMcbm2018MonitorTaskBmon::Finish()
 {
   /// Obtain vector of pointers on each histo from the algo (+ optionally desired folder)
   std::vector<std::pair<TNamed*, std::string>> vHistos = fMonitorAlgo->GetHistoVector();
@@ -223,12 +223,12 @@ void CbmMcbm2018MonitorTaskT0::Finish()
   histoFile->Close();
 }
 
-void CbmMcbm2018MonitorTaskT0::SetIgnoreOverlapMs(Bool_t bFlagIn) { fMonitorAlgo->SetIgnoreOverlapMs(bFlagIn); }
+void CbmMcbm2018MonitorTaskBmon::SetIgnoreOverlapMs(Bool_t bFlagIn) { fMonitorAlgo->SetIgnoreOverlapMs(bFlagIn); }
 
-void CbmMcbm2018MonitorTaskT0::SetChannelMap(UInt_t uChan0, UInt_t uChan1, UInt_t uChan2, UInt_t uChan3, UInt_t uChan4,
-                                             UInt_t uChan5, UInt_t uChan6, UInt_t uChan7)
+void CbmMcbm2018MonitorTaskBmon::SetChannelMap(UInt_t uChan0, UInt_t uChan1, UInt_t uChan2, UInt_t uChan3,
+                                               UInt_t uChan4, UInt_t uChan5, UInt_t uChan6, UInt_t uChan7)
 {
   fMonitorAlgo->SetChannelMap(uChan0, uChan1, uChan2, uChan3, uChan4, uChan5, uChan6, uChan7);
 }
 
-ClassImp(CbmMcbm2018MonitorTaskT0)
+ClassImp(CbmMcbm2018MonitorTaskBmon)
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskT0.h b/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskBmon.h
similarity index 81%
rename from fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskT0.h
rename to fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskBmon.h
index 7e0ef1607b4fe43bfe120d92713b9e74e06f097f..51717d6529a0e34621b8dee93a44e5c3d85063f8 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskT0.h
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskBmon.h
@@ -4,28 +4,28 @@
 
 // -----------------------------------------------------------------------------
 // -----                                                                   -----
-// -----                     CbmMcbm2018MonitorTaskT0                      -----
+// -----                     CbmMcbm2018MonitorTaskBmon                      -----
 // -----               Created 10.02.2019 by P.-A. Loizeau                 -----
 // -----                                                                   -----
 // -----------------------------------------------------------------------------
 
-#ifndef CbmMcbm2018MonitorTaskT0_H
-#define CbmMcbm2018MonitorTaskT0_H
+#ifndef CbmMcbm2018MonitorTaskBmon_H
+#define CbmMcbm2018MonitorTaskBmon_H
 
-#include "CbmMcbm2018MonitorAlgoT0.h"
+#include "CbmMcbm2018MonitorAlgoBmon.h"
 #include "CbmMcbmUnpack.h"
 
 #include "Timeslice.hpp"
 
 #include "TString.h"
 
-class CbmMcbm2018MonitorTaskT0 : public CbmMcbmUnpack {
+class CbmMcbm2018MonitorTaskBmon : public CbmMcbmUnpack {
 public:
-  CbmMcbm2018MonitorTaskT0();
-  CbmMcbm2018MonitorTaskT0(const CbmMcbm2018MonitorTaskT0&) = delete;
-  CbmMcbm2018MonitorTaskT0 operator=(const CbmMcbm2018MonitorTaskT0&) = delete;
+  CbmMcbm2018MonitorTaskBmon();
+  CbmMcbm2018MonitorTaskBmon(const CbmMcbm2018MonitorTaskBmon&) = delete;
+  CbmMcbm2018MonitorTaskBmon operator=(const CbmMcbm2018MonitorTaskBmon&) = delete;
 
-  virtual ~CbmMcbm2018MonitorTaskT0();
+  virtual ~CbmMcbm2018MonitorTaskBmon();
 
   virtual Bool_t Init();
   virtual Bool_t DoUnpack(const fles::Timeslice& ts, size_t component);
@@ -77,9 +77,9 @@ private:
   uint64_t fulTsCounter;
 
   /// Processing algo
-  CbmMcbm2018MonitorAlgoT0* fMonitorAlgo;
+  CbmMcbm2018MonitorAlgoBmon* fMonitorAlgo;
 
-  ClassDef(CbmMcbm2018MonitorTaskT0, 1)
+  ClassDef(CbmMcbm2018MonitorTaskBmon, 1)
 };
 
 #endif
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskMuchLite.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskMuchLite.cxx
index 0c3d30b662c7e7181603be1799e76d02edd75c97..9b9c266507c7cfd86105c861a78652709cb428ac 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskMuchLite.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskMuchLite.cxx
@@ -318,7 +318,7 @@ Bool_t CbmMcbm2018MonitorTaskMuchLite::DoUnpack(const fles::Timeslice& ts, size_
     LOG(info) << "Reset Much Monitor histos ";
     fMonitorAlgo->ResetAllHistos();
     bMcbm2018MonitorTaskMuchResetHistos = kFALSE;
-  }  // if( fbMonitorMode && bMcbm2018MonitorTaskT0ResetHistos ) */ //closed by me
+  }  // if( fbMonitorMode && bMcbm2018MonitorTaskBmonResetHistos ) */ //closed by me
 
   if (kFALSE == fMonitorAlgo->ProcessTs(ts)) {
     //if (kFALSE == fMonitorAlgo->ProcessMuchMs(ts)) {
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskPsd.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskPsd.cxx
index 9acd8e1aaf5b125a2db3fa5271608fee6134c463..1fbe1ee52f1e187e7c16408206898ac005aa3b96 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskPsd.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskPsd.cxx
@@ -6,7 +6,7 @@
 // -----                                                                   -----
 // -----                  CbmMcbm2018MonitorTaskPsd                        -----
 // -----              Created 26.09.2019 by N.Karpushkin                   -----
-// -----      based on CbmMcbm2018MonitorTaskT0 by P.-A. Loizeau           -----
+// -----      based on CbmMcbm2018MonitorTaskBmon by P.-A. Loizeau           -----
 // -----                                                                   -----
 // -----------------------------------------------------------------------------
 
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskPsd.h b/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskPsd.h
index 454071ca92eb4d8ee418a1c8e7e51f1c8141417f..a6c8a7e44beb8f845e02aa4874e3101331869c0b 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskPsd.h
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorTaskPsd.h
@@ -6,7 +6,7 @@
 // -----                                                                   -----
 // -----                  CbmMcbm2018MonitorTaskPsd                        -----
 // -----              Created 26.09.2019 by N.Karpushkin                   -----
-// -----      based on CbmMcbm2018MonitorTaskT0 by P.-A. Loizeau           -----
+// -----      based on CbmMcbm2018MonitorTaskBmon by P.-A. Loizeau           -----
 // -----                                                                   -----
 // -----------------------------------------------------------------------------
 
diff --git a/fles/mcbm2018/tasks/CbmCheckDigisNbCorr.cxx b/fles/mcbm2018/tasks/CbmCheckDigisNbCorr.cxx
index 2529f13e789f581272bdf29a4f986bf6bb45a73c..9c89ddc99ca996fbd1c45b71eff5afb90482723e 100644
--- a/fles/mcbm2018/tasks/CbmCheckDigisNbCorr.cxx
+++ b/fles/mcbm2018/tasks/CbmCheckDigisNbCorr.cxx
@@ -32,8 +32,8 @@ using std::setprecision;
 // ---- Default constructor -------------------------------------------
 CbmCheckDigisNbCorr::CbmCheckDigisNbCorr()
   : FairTask("CbmCheckDigisNbCorr")
-  , fuMinTotPulserT0(90)
-  , fuMaxTotPulserT0(100)
+  , fuMinTotPulserBmon(90)
+  , fuMaxTotPulserBmon(100)
 
 {
 }
@@ -69,10 +69,10 @@ InitStatus CbmCheckDigisNbCorr::Init()
   fDigiMan->Init();
 
   // Get a pointer to the previous already existing data level
-  fT0DigiVec = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("T0Digi");
-  if (!fT0DigiVec) {
-    fT0DigiArr = dynamic_cast<TClonesArray*>(ioman->GetObject("T0Digi"));
-    if (!fT0DigiArr) { LOG(fatal) << "No TClonesArray with T0 digis found."; }
+  fBmonDigiVec = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("BmonDigi");
+  if (!fBmonDigiVec) {
+    fBmonDigiArr = dynamic_cast<TClonesArray*>(ioman->GetObject("BmonDigi"));
+    if (!fBmonDigiArr) { LOG(fatal) << "No TClonesArray with Bmon digis found."; }
   }
 
   if (!fDigiMan->IsPresent(ECbmModuleId::kSts)) { LOG(info) << "No TClonesArray with STS digis found."; }
@@ -94,7 +94,7 @@ void CbmCheckDigisNbCorr::CreateHistos()
 {
   /// Resize storage array
   CalcNrBins();
-  fvuNbDigisPerBinT0.resize(fiBinNb, 0);
+  fvuNbDigisPerBinBmon.resize(fiBinNb, 0);
   fvuNbDigisPerBinSts.resize(fiBinNb, 0);
   fvuNbDigisPerBinMuch.resize(fiBinNb, 0);
   fvuNbDigisPerBinTof.resize(fiBinNb, 0);
@@ -105,30 +105,30 @@ void CbmCheckDigisNbCorr::CreateHistos()
     fvuNbDigisPerBinStsDpb[uStsDpb].resize(fiBinNb, 0);
 
   /// 2D correlations between systems
-  // T0 vs. TST
-  fT0StsCorr = new TH2F("fT0StsCorr",
-                        Form("T0 - STS digis Nb correlation per %.0f ns time interval; Nb "
-                             "T0 Digis []; Nb STS Digis []; Counts",
-                             fdBinWidthNs),
-                        1000, 0, 1000, 1000, 0, 1000);
-  // T0 vs. MUCH
-  fT0MuchCorr = new TH2F("fT0MuchCorr",
-                         Form("T0 - MUCH digis Nb correlation per %.0f ns time interval; "
-                              "Nb T0 Digis []; Nb MUCH Digis []; Counts",
-                              fdBinWidthNs),
-                         1000, 0, 1000, 1000, 0, 1000);
-  // T0 vs. TOF
-  fT0TofCorr = new TH2F("fT0TofCorr",
-                        Form("T0 - TOF digis Nb correlation per %.0f ns time interval; Nb "
-                             "T0 Digis []; Nb TOF Digis []; Counts",
-                             fdBinWidthNs),
-                        1000, 0, 1000, 1000, 0, 1000);
-  // T0 vs. RICH
-  fT0RichCorr = new TH2F("fT0RichCorr",
-                         Form("T0 - RICH digis Nb correlation per %.0f ns time interval; "
-                              "Nb T0 Digis []; Nb RICH Digis []; Counts",
-                              fdBinWidthNs),
-                         1000, 0, 1000, 1000, 0, 1000);
+  // Bmon vs. TST
+  fBmonStsCorr = new TH2F("fBmonStsCorr",
+                          Form("Bmon - STS digis Nb correlation per %.0f ns time interval; Nb "
+                               "Bmon Digis []; Nb STS Digis []; Counts",
+                               fdBinWidthNs),
+                          1000, 0, 1000, 1000, 0, 1000);
+  // Bmon vs. MUCH
+  fBmonMuchCorr = new TH2F("fBmonMuchCorr",
+                           Form("Bmon - MUCH digis Nb correlation per %.0f ns time interval; "
+                                "Nb Bmon Digis []; Nb MUCH Digis []; Counts",
+                                fdBinWidthNs),
+                           1000, 0, 1000, 1000, 0, 1000);
+  // Bmon vs. TOF
+  fBmonTofCorr = new TH2F("fBmonTofCorr",
+                          Form("Bmon - TOF digis Nb correlation per %.0f ns time interval; Nb "
+                               "Bmon Digis []; Nb TOF Digis []; Counts",
+                               fdBinWidthNs),
+                          1000, 0, 1000, 1000, 0, 1000);
+  // Bmon vs. RICH
+  fBmonRichCorr = new TH2F("fBmonRichCorr",
+                           Form("Bmon - RICH digis Nb correlation per %.0f ns time interval; "
+                                "Nb Bmon Digis []; Nb RICH Digis []; Counts",
+                                fdBinWidthNs),
+                           1000, 0, 1000, 1000, 0, 1000);
 
   // STS vs. MUCH
   fStsMuchCorr = new TH2F("fStsMuchCorr",
@@ -170,30 +170,30 @@ void CbmCheckDigisNbCorr::CreateHistos()
                           1000, 0, 1000, 1000, 0, 1000);
 
   /// Profile correlations between systems
-  // T0 vs. TST
-  fT0StsCorrProf = new TProfile("fT0StsCorrProf",
-                                Form("T0 - STS digis Nb correlation per %.0f ns time "
-                                     "interval; Nb T0 Digis []; Nb STS Digis []",
-                                     fdBinWidthNs),
-                                1000, 0, 1000);
-  // T0 vs. MUCH
-  fT0MuchCorrProf = new TProfile("fT0MuchCorrProf",
-                                 Form("T0 - MUCH digis Nb correlation per %.0f ns time "
-                                      "interval; Nb T0 Digis []; Nb MUCH Digis []",
-                                      fdBinWidthNs),
-                                 1000, 0, 1000);
-  // T0 vs. TOF
-  fT0TofCorrProf = new TProfile("fT0TofCorrProf",
-                                Form("T0 - TOF digis Nb correlation per %.0f ns time "
-                                     "interval; Nb T0 Digis []; Nb TOF Digis []",
-                                     fdBinWidthNs),
-                                1000, 0, 1000);
-  // T0 vs. RICH
-  fT0RichCorrProf = new TProfile("fT0RichCorrProf",
-                                 Form("T0 - RICH digis Nb correlation per %.0f ns time "
-                                      "interval; Nb T0 Digis []; Nb RICH Digis []",
-                                      fdBinWidthNs),
-                                 1000, 0, 1000);
+  // Bmon vs. TST
+  fBmonStsCorrProf = new TProfile("fBmonStsCorrProf",
+                                  Form("Bmon - STS digis Nb correlation per %.0f ns time "
+                                       "interval; Nb Bmon Digis []; Nb STS Digis []",
+                                       fdBinWidthNs),
+                                  1000, 0, 1000);
+  // Bmon vs. MUCH
+  fBmonMuchCorrProf = new TProfile("fBmonMuchCorrProf",
+                                   Form("Bmon - MUCH digis Nb correlation per %.0f ns time "
+                                        "interval; Nb Bmon Digis []; Nb MUCH Digis []",
+                                        fdBinWidthNs),
+                                   1000, 0, 1000);
+  // Bmon vs. TOF
+  fBmonTofCorrProf = new TProfile("fBmonTofCorrProf",
+                                  Form("Bmon - TOF digis Nb correlation per %.0f ns time "
+                                       "interval; Nb Bmon Digis []; Nb TOF Digis []",
+                                       fdBinWidthNs),
+                                  1000, 0, 1000);
+  // Bmon vs. RICH
+  fBmonRichCorrProf = new TProfile("fBmonRichCorrProf",
+                                   Form("Bmon - RICH digis Nb correlation per %.0f ns time "
+                                        "interval; Nb Bmon Digis []; Nb RICH Digis []",
+                                        fdBinWidthNs),
+                                   1000, 0, 1000);
 
   // STS vs. MUCH
   fStsMuchCorrProf = new TProfile("fStsMuchCorrProf",
@@ -235,11 +235,11 @@ void CbmCheckDigisNbCorr::CreateHistos()
                                   1000, 0, 1000);
 
   for (UInt_t uStsDpb = 0; uStsDpb < kuMaxNbStsDpbs; ++uStsDpb) {
-    fT0StsDpbCorr[uStsDpb]   = new TH2F(Form("fT0StsDpbCorr%02u", uStsDpb),
-                                      Form("T0 - STS digis Nb correlation per %.0f ns time interval, "
-                                           "DPB %02u; Nb T0 Digis []; Nb STS Digis []; Counts",
-                                           fdBinWidthNs, uStsDpb),
-                                      1000, 0, 1000, 1000, 0, 1000);
+    fBmonStsDpbCorr[uStsDpb] = new TH2F(Form("fBmonStsDpbCorr%02u", uStsDpb),
+                                        Form("Bmon - STS digis Nb correlation per %.0f ns time interval, "
+                                             "DPB %02u; Nb Bmon Digis []; Nb STS Digis []; Counts",
+                                             fdBinWidthNs, uStsDpb),
+                                        1000, 0, 1000, 1000, 0, 1000);
     fStsMuchDpbCorr[uStsDpb] = new TH2F(Form("fStsMuchDpbCorr%02u", uStsDpb),
                                         Form("STS - MUCH digis Nb correlation per %.0f ns time interval, DPB "
                                              "%02u; Nb STS Digis []; Nb STS Digis []; Counts",
@@ -256,11 +256,11 @@ void CbmCheckDigisNbCorr::CreateHistos()
                                              fdBinWidthNs, uStsDpb),
                                         1000, 0, 1000, 1000, 0, 1000);
 
-    fT0StsDpbCorrProf[uStsDpb]   = new TProfile(Form("fT0StsDpbCorrProf%02u", uStsDpb),
-                                              Form("T0 - STS digis Nb correlation per %.0f ns time "
-                                                   "interval, DPB %02u; Nb T0 Digis []; Nb STS Digis []",
-                                                   fdBinWidthNs, uStsDpb),
-                                              1000, 0, 1000);
+    fBmonStsDpbCorrProf[uStsDpb] = new TProfile(Form("fBmonStsDpbCorrProf%02u", uStsDpb),
+                                                Form("Bmon - STS digis Nb correlation per %.0f ns time "
+                                                     "interval, DPB %02u; Nb Bmon Digis []; Nb STS Digis []",
+                                                     fdBinWidthNs, uStsDpb),
+                                                1000, 0, 1000);
     fStsMuchDpbCorrProf[uStsDpb] = new TProfile(Form("fStsMuchDpbCorrProf%02u", uStsDpb),
                                                 Form("STS - MUCH digis Nb correlation per %.0f ns time "
                                                      "interval, DPB %02u; Nb STS Digis []; Nb STS Digis []",
@@ -284,10 +284,10 @@ void CbmCheckDigisNbCorr::CreateHistos()
     THttpServer* server = run->GetHttpServer();
     if (nullptr != server) {
       /// 2D correlations between systems
-      server->Register("CheckDigisNbCorr", fT0StsCorr);
-      server->Register("CheckDigisNbCorr", fT0MuchCorr);
-      server->Register("CheckDigisNbCorr", fT0TofCorr);
-      server->Register("CheckDigisNbCorr", fT0RichCorr);
+      server->Register("CheckDigisNbCorr", fBmonStsCorr);
+      server->Register("CheckDigisNbCorr", fBmonMuchCorr);
+      server->Register("CheckDigisNbCorr", fBmonTofCorr);
+      server->Register("CheckDigisNbCorr", fBmonRichCorr);
 
       server->Register("CheckDigisNbCorr", fStsMuchCorr);
       server->Register("CheckDigisNbCorr", fStsTofCorr);
@@ -299,10 +299,10 @@ void CbmCheckDigisNbCorr::CreateHistos()
       server->Register("CheckDigisNbCorr", fTofRichCorr);
 
       /// Profile correlations between systems
-      server->Register("CheckDigisNbCorr", fT0StsCorrProf);
-      server->Register("CheckDigisNbCorr", fT0MuchCorrProf);
-      server->Register("CheckDigisNbCorr", fT0TofCorrProf);
-      server->Register("CheckDigisNbCorr", fT0RichCorrProf);
+      server->Register("CheckDigisNbCorr", fBmonStsCorrProf);
+      server->Register("CheckDigisNbCorr", fBmonMuchCorrProf);
+      server->Register("CheckDigisNbCorr", fBmonTofCorrProf);
+      server->Register("CheckDigisNbCorr", fBmonRichCorrProf);
 
       server->Register("CheckDigisNbCorr", fStsMuchCorrProf);
       server->Register("CheckDigisNbCorr", fStsTofCorrProf);
@@ -314,12 +314,12 @@ void CbmCheckDigisNbCorr::CreateHistos()
       server->Register("CheckDigisNbCorr", fTofRichCorrProf);
 
       for (UInt_t uStsDpb = 0; uStsDpb < kuMaxNbStsDpbs; ++uStsDpb) {
-        server->Register("CheckDigisNbCorr", fT0StsDpbCorr[uStsDpb]);
+        server->Register("CheckDigisNbCorr", fBmonStsDpbCorr[uStsDpb]);
         server->Register("CheckDigisNbCorr", fStsMuchDpbCorr[uStsDpb]);
         server->Register("CheckDigisNbCorr", fStsTofDpbCorr[uStsDpb]);
         server->Register("CheckDigisNbCorr", fStsRichDpbCorr[uStsDpb]);
 
-        server->Register("CheckDigisNbCorr", fT0StsDpbCorrProf[uStsDpb]);
+        server->Register("CheckDigisNbCorr", fBmonStsDpbCorrProf[uStsDpb]);
         server->Register("CheckDigisNbCorr", fStsMuchDpbCorrProf[uStsDpb]);
         server->Register("CheckDigisNbCorr", fStsTofDpbCorrProf[uStsDpb]);
         server->Register("CheckDigisNbCorr", fStsRichDpbCorrProf[uStsDpb]);
@@ -335,7 +335,7 @@ void CbmCheckDigisNbCorr::Exec(Option_t* /*option*/)
 {
   /// Initialize the counters for each bin
   for (Int_t uBin = 0; uBin < fiBinNb; ++uBin) {
-    fvuNbDigisPerBinT0[uBin]   = 0;
+    fvuNbDigisPerBinBmon[uBin] = 0;
     fvuNbDigisPerBinSts[uBin]  = 0;
     fvuNbDigisPerBinMuch[uBin] = 0;
     fvuNbDigisPerBinTof[uBin]  = 0;
@@ -350,32 +350,32 @@ void CbmCheckDigisNbCorr::Exec(Option_t* /*option*/)
     dTsStart = static_cast<TimesliceMetaData*>(fTsMetaData->At(0))->GetStartTime();
 
   LOG(debug) << "Begin";
-  Int_t nrT0Digis = -1;
-  if (fT0DigiVec) nrT0Digis = fT0DigiVec->size();
-  else if (fT0DigiArr)
-    nrT0Digis = fT0DigiArr->GetEntriesFast();
+  Int_t nrBmonDigis = -1;
+  if (fBmonDigiVec) nrBmonDigis = fBmonDigiVec->size();
+  else if (fBmonDigiArr)
+    nrBmonDigis = fBmonDigiArr->GetEntriesFast();
   Int_t nrStsDigis  = fDigiMan->GetNofDigis(ECbmModuleId::kSts);
   Int_t nrMuchDigis = fDigiMan->GetNofDigis(ECbmModuleId::kMuch);
   Int_t nrTofDigis  = fDigiMan->GetNofDigis(ECbmModuleId::kTof);
   Int_t nrRichDigis = fDigiMan->GetNofDigis(ECbmModuleId::kRich);
 
-  LOG(debug) << "T0Digis: " << nrT0Digis;
+  LOG(debug) << "BmonDigis: " << nrBmonDigis;
   LOG(debug) << "StsDigis: " << nrStsDigis;
   LOG(debug) << "MuchDigis: " << nrMuchDigis;
   LOG(debug) << "TofDigis: " << nrTofDigis;
   LOG(debug) << "RichDigis: " << nrRichDigis;
 
   /// Loop on digis for each detector and counts digis in proper bin
-  /// T0
-  for (Int_t iDigi = 0; iDigi < nrT0Digis; ++iDigi) {
+  /// Bmon
+  for (Int_t iDigi = 0; iDigi < nrBmonDigis; ++iDigi) {
     const CbmTofDigi* pDigi = nullptr;
-    if (fT0DigiVec) pDigi = &(fT0DigiVec->at(iDigi));
-    else if (fT0DigiArr)
-      pDigi = dynamic_cast<const CbmTofDigi*>(fT0DigiArr->At(iDigi));
+    if (fBmonDigiVec) pDigi = &(fBmonDigiVec->at(iDigi));
+    else if (fBmonDigiArr)
+      pDigi = dynamic_cast<const CbmTofDigi*>(fBmonDigiArr->At(iDigi));
     assert(pDigi);
 
-    /// Ignore pulser hits in T0
-    if (fuMinTotPulserT0 < pDigi->GetCharge() && pDigi->GetCharge() < fuMaxTotPulserT0) continue;
+    /// Ignore pulser hits in Bmon
+    if (fuMinTotPulserBmon < pDigi->GetCharge() && pDigi->GetCharge() < fuMaxTotPulserBmon) continue;
 
     Double_t dTime = pDigi->GetTime() - dTsStart;
     /// Jump hits with time before start of TS after offseting
@@ -385,8 +385,8 @@ void CbmCheckDigisNbCorr::Exec(Option_t* /*option*/)
 
     /// Increase count in corresponding bin
     UInt_t uBin = dTime / fdBinWidthNs;
-    fvuNbDigisPerBinT0[uBin]++;
-  }  // for( Int_t iDigi = 0; iDigi < nrT0Digis; ++iDigi )
+    fvuNbDigisPerBinBmon[uBin]++;
+  }  // for( Int_t iDigi = 0; iDigi < nrBmonDigis; ++iDigi )
 
   /// STS
   for (Int_t iDigi = 0; iDigi < nrStsDigis; ++iDigi) {
@@ -457,22 +457,22 @@ void CbmCheckDigisNbCorr::Exec(Option_t* /*option*/)
   /// Fill the histograms for each bin
   for (Int_t uBin = 0; uBin < fiBinNb; ++uBin) {
     /// 2D & Profiles
-    if (0 < fvuNbDigisPerBinT0[uBin] || 0 < fvuNbDigisPerBinSts[uBin]) {
-      fT0StsCorr->Fill(fvuNbDigisPerBinT0[uBin], fvuNbDigisPerBinSts[uBin]);
-      fT0StsCorrProf->Fill(fvuNbDigisPerBinT0[uBin], fvuNbDigisPerBinSts[uBin]);
-    }  // if( 0 < fvuNbDigisPerBinT0[   uBin ] || 0 < fvuNbDigisPerBinSts[  uBin ] )
-    if (0 < fvuNbDigisPerBinT0[uBin] || 0 < fvuNbDigisPerBinMuch[uBin]) {
-      fT0MuchCorr->Fill(fvuNbDigisPerBinT0[uBin], fvuNbDigisPerBinMuch[uBin]);
-      fT0MuchCorrProf->Fill(fvuNbDigisPerBinT0[uBin], fvuNbDigisPerBinMuch[uBin]);
-    }  // if( 0 < fvuNbDigisPerBinT0[   uBin ] || 0 < fvuNbDigisPerBinMuch[  uBin ] )
-    if (0 < fvuNbDigisPerBinT0[uBin] || 0 < fvuNbDigisPerBinTof[uBin]) {
-      fT0TofCorr->Fill(fvuNbDigisPerBinT0[uBin], fvuNbDigisPerBinTof[uBin]);
-      fT0TofCorrProf->Fill(fvuNbDigisPerBinT0[uBin], fvuNbDigisPerBinTof[uBin]);
-    }  // if( 0 < fvuNbDigisPerBinT0[   uBin ] || 0 < fvuNbDigisPerBinTof[  uBin ] )
-    if (0 < fvuNbDigisPerBinT0[uBin] || 0 < fvuNbDigisPerBinRich[uBin]) {
-      fT0RichCorr->Fill(fvuNbDigisPerBinT0[uBin], fvuNbDigisPerBinRich[uBin]);
-      fT0RichCorrProf->Fill(fvuNbDigisPerBinT0[uBin], fvuNbDigisPerBinRich[uBin]);
-    }  // if( 0 < fvuNbDigisPerBinT0[   uBin ] || 0 < fvuNbDigisPerBinRich[  uBin ] )
+    if (0 < fvuNbDigisPerBinBmon[uBin] || 0 < fvuNbDigisPerBinSts[uBin]) {
+      fBmonStsCorr->Fill(fvuNbDigisPerBinBmon[uBin], fvuNbDigisPerBinSts[uBin]);
+      fBmonStsCorrProf->Fill(fvuNbDigisPerBinBmon[uBin], fvuNbDigisPerBinSts[uBin]);
+    }  // if( 0 < fvuNbDigisPerBinBmon[   uBin ] || 0 < fvuNbDigisPerBinSts[  uBin ] )
+    if (0 < fvuNbDigisPerBinBmon[uBin] || 0 < fvuNbDigisPerBinMuch[uBin]) {
+      fBmonMuchCorr->Fill(fvuNbDigisPerBinBmon[uBin], fvuNbDigisPerBinMuch[uBin]);
+      fBmonMuchCorrProf->Fill(fvuNbDigisPerBinBmon[uBin], fvuNbDigisPerBinMuch[uBin]);
+    }  // if( 0 < fvuNbDigisPerBinBmon[   uBin ] || 0 < fvuNbDigisPerBinMuch[  uBin ] )
+    if (0 < fvuNbDigisPerBinBmon[uBin] || 0 < fvuNbDigisPerBinTof[uBin]) {
+      fBmonTofCorr->Fill(fvuNbDigisPerBinBmon[uBin], fvuNbDigisPerBinTof[uBin]);
+      fBmonTofCorrProf->Fill(fvuNbDigisPerBinBmon[uBin], fvuNbDigisPerBinTof[uBin]);
+    }  // if( 0 < fvuNbDigisPerBinBmon[   uBin ] || 0 < fvuNbDigisPerBinTof[  uBin ] )
+    if (0 < fvuNbDigisPerBinBmon[uBin] || 0 < fvuNbDigisPerBinRich[uBin]) {
+      fBmonRichCorr->Fill(fvuNbDigisPerBinBmon[uBin], fvuNbDigisPerBinRich[uBin]);
+      fBmonRichCorrProf->Fill(fvuNbDigisPerBinBmon[uBin], fvuNbDigisPerBinRich[uBin]);
+    }  // if( 0 < fvuNbDigisPerBinBmon[   uBin ] || 0 < fvuNbDigisPerBinRich[  uBin ] )
 
     if (0 < fvuNbDigisPerBinSts[uBin] || 0 < fvuNbDigisPerBinMuch[uBin]) {
       fStsMuchCorr->Fill(fvuNbDigisPerBinSts[uBin], fvuNbDigisPerBinMuch[uBin]);
@@ -502,10 +502,10 @@ void CbmCheckDigisNbCorr::Exec(Option_t* /*option*/)
     }  // if( 0 < fvuNbDigisPerBinTof[   uBin ] || 0 < fvuNbDigisPerBinRich[  uBin ] )
 
     for (UInt_t uStsDpb = 0; uStsDpb < kuMaxNbStsDpbs; ++uStsDpb) {
-      if (0 < fvuNbDigisPerBinT0[uBin] || 0 < fvuNbDigisPerBinStsDpb[uStsDpb][uBin]) {
-        fT0StsDpbCorr[uStsDpb]->Fill(fvuNbDigisPerBinT0[uBin], fvuNbDigisPerBinStsDpb[uStsDpb][uBin]);
-        fT0StsDpbCorrProf[uStsDpb]->Fill(fvuNbDigisPerBinT0[uBin], fvuNbDigisPerBinStsDpb[uStsDpb][uBin]);
-      }  // if( 0 < fvuNbDigisPerBinT0[   uBin ] || 0 < fvuNbDigisPerBinStsDpb[uStsDpb][  uBin ] )
+      if (0 < fvuNbDigisPerBinBmon[uBin] || 0 < fvuNbDigisPerBinStsDpb[uStsDpb][uBin]) {
+        fBmonStsDpbCorr[uStsDpb]->Fill(fvuNbDigisPerBinBmon[uBin], fvuNbDigisPerBinStsDpb[uStsDpb][uBin]);
+        fBmonStsDpbCorrProf[uStsDpb]->Fill(fvuNbDigisPerBinBmon[uBin], fvuNbDigisPerBinStsDpb[uStsDpb][uBin]);
+      }  // if( 0 < fvuNbDigisPerBinBmon[   uBin ] || 0 < fvuNbDigisPerBinStsDpb[uStsDpb][  uBin ] )
 
       if (0 < fvuNbDigisPerBinStsDpb[uStsDpb][uBin] || 0 < fvuNbDigisPerBinMuch[uBin]) {
         fStsMuchDpbCorr[uStsDpb]->Fill(fvuNbDigisPerBinStsDpb[uStsDpb][uBin], fvuNbDigisPerBinMuch[uBin]);
@@ -538,10 +538,10 @@ void CbmCheckDigisNbCorr::WriteHistos()
 
 
   /// 2D
-  fT0StsCorr->Write();
-  fT0MuchCorr->Write();
-  fT0TofCorr->Write();
-  fT0RichCorr->Write();
+  fBmonStsCorr->Write();
+  fBmonMuchCorr->Write();
+  fBmonTofCorr->Write();
+  fBmonRichCorr->Write();
   fStsMuchCorr->Write();
   fStsTofCorr->Write();
   fStsRichCorr->Write();
@@ -550,10 +550,10 @@ void CbmCheckDigisNbCorr::WriteHistos()
   fTofRichCorr->Write();
 
   /// Profiles
-  fT0StsCorrProf->Write();
-  fT0MuchCorrProf->Write();
-  fT0TofCorrProf->Write();
-  fT0RichCorrProf->Write();
+  fBmonStsCorrProf->Write();
+  fBmonMuchCorrProf->Write();
+  fBmonTofCorrProf->Write();
+  fBmonRichCorrProf->Write();
   fStsMuchCorrProf->Write();
   fStsTofCorrProf->Write();
   fStsRichCorrProf->Write();
@@ -562,12 +562,12 @@ void CbmCheckDigisNbCorr::WriteHistos()
   fTofRichCorrProf->Write();
 
   for (UInt_t uStsDpb = 0; uStsDpb < kuMaxNbStsDpbs; ++uStsDpb) {
-    fT0StsDpbCorr[uStsDpb]->Write();
+    fBmonStsDpbCorr[uStsDpb]->Write();
     fStsMuchDpbCorr[uStsDpb]->Write();
     fStsTofDpbCorr[uStsDpb]->Write();
     fStsRichDpbCorr[uStsDpb]->Write();
 
-    fT0StsDpbCorrProf[uStsDpb]->Write();
+    fBmonStsDpbCorrProf[uStsDpb]->Write();
     fStsMuchDpbCorrProf[uStsDpb]->Write();
     fStsTofDpbCorrProf[uStsDpb]->Write();
     fStsRichDpbCorrProf[uStsDpb]->Write();
diff --git a/fles/mcbm2018/tasks/CbmCheckDigisNbCorr.h b/fles/mcbm2018/tasks/CbmCheckDigisNbCorr.h
index fda3a7ccb9d5c19a2c747aac6a032b559ed78909..1fce0546b5e18b4a7c23b1673adb765aa388f1c5 100644
--- a/fles/mcbm2018/tasks/CbmCheckDigisNbCorr.h
+++ b/fles/mcbm2018/tasks/CbmCheckDigisNbCorr.h
@@ -65,10 +65,10 @@ public:
     fdTsLengthNs = dTsInNs;
   }
 
-  inline void SetT0PulserTotLimits(UInt_t uMin, UInt_t uMax)
+  inline void SetBmonPulserTotLimits(UInt_t uMin, UInt_t uMax)
   {
-    fuMinTotPulserT0 = uMin;
-    fuMaxTotPulserT0 = uMax;
+    fuMinTotPulserBmon = uMin;
+    fuMaxTotPulserBmon = uMax;
   }
 
   inline void SetOutFilename(TString sNameIn) { fOutFileName = sNameIn; }
@@ -82,19 +82,19 @@ private:
   /** Input array from previous already existing data level **/
   TClonesArray* fTsMetaData = nullptr;
   CbmDigiManager* fDigiMan  = nullptr;  //! Interface to digi data
-  /** T0 is not included in CbmDigiManager, so add it explicitly here **/
-  const std::vector<CbmTofDigi>* fT0DigiVec = nullptr;  //!
-  TClonesArray* fT0DigiArr {nullptr};                   //!
+  /** Bmon is not included in CbmDigiManager, so add it explicitly here **/
+  const std::vector<CbmTofDigi>* fBmonDigiVec = nullptr;  //!
+  TClonesArray* fBmonDigiArr {nullptr};                   //!
 
   /// User settings: Data correction parameters
-  UInt_t fuMinTotPulserT0;
-  UInt_t fuMaxTotPulserT0;
+  UInt_t fuMinTotPulserBmon;
+  UInt_t fuMaxTotPulserBmon;
 
   //
   Int_t fNrTs = 0;
 
-  Int_t fNrOfT0Errors   = 0;
-  Int_t fNrOfT0Digis    = 0;
+  Int_t fNrOfBmonErrors = 0;
+  Int_t fNrOfBmonDigis  = 0;
   Int_t fNrOfStsErrors  = 0;
   Int_t fNrOfStsDigis   = 0;
   Int_t fNrOfMuchErrors = 0;
@@ -114,16 +114,16 @@ private:
   Int_t fiBinNb            = fdTsLengthNs / fdBinWidthNs;
   Double_t fdTsStartOffset = 0;
 
-  std::vector<UInt_t> fvuNbDigisPerBinT0;
+  std::vector<UInt_t> fvuNbDigisPerBinBmon;
   std::vector<UInt_t> fvuNbDigisPerBinSts;
   std::vector<UInt_t> fvuNbDigisPerBinMuch;
   std::vector<UInt_t> fvuNbDigisPerBinTof;
   std::vector<UInt_t> fvuNbDigisPerBinRich;
 
-  TH2* fT0StsCorr  = nullptr;
-  TH2* fT0MuchCorr = nullptr;
-  TH2* fT0TofCorr  = nullptr;
-  TH2* fT0RichCorr = nullptr;
+  TH2* fBmonStsCorr  = nullptr;
+  TH2* fBmonMuchCorr = nullptr;
+  TH2* fBmonTofCorr  = nullptr;
+  TH2* fBmonRichCorr = nullptr;
 
   TH2* fStsMuchCorr = nullptr;
   TH2* fStsTofCorr  = nullptr;
@@ -134,10 +134,10 @@ private:
 
   TH2* fTofRichCorr = nullptr;
 
-  TProfile* fT0StsCorrProf  = nullptr;
-  TProfile* fT0MuchCorrProf = nullptr;
-  TProfile* fT0TofCorrProf  = nullptr;
-  TProfile* fT0RichCorrProf = nullptr;
+  TProfile* fBmonStsCorrProf  = nullptr;
+  TProfile* fBmonMuchCorrProf = nullptr;
+  TProfile* fBmonTofCorrProf  = nullptr;
+  TProfile* fBmonRichCorrProf = nullptr;
 
   TProfile* fStsMuchCorrProf = nullptr;
   TProfile* fStsTofCorrProf  = nullptr;
@@ -150,18 +150,18 @@ private:
 
   static const UInt_t kuMaxNbStsDpbs = 2;
   std::vector<std::vector<UInt_t>> fvuNbDigisPerBinStsDpb;
-  TH2* fT0StsDpbCorr[kuMaxNbStsDpbs];
+  TH2* fBmonStsDpbCorr[kuMaxNbStsDpbs];
   TH2* fStsMuchDpbCorr[kuMaxNbStsDpbs];
   TH2* fStsTofDpbCorr[kuMaxNbStsDpbs];
   TH2* fStsRichDpbCorr[kuMaxNbStsDpbs];
-  TProfile* fT0StsDpbCorrProf[kuMaxNbStsDpbs];
+  TProfile* fBmonStsDpbCorrProf[kuMaxNbStsDpbs];
   TProfile* fStsMuchDpbCorrProf[kuMaxNbStsDpbs];
   TProfile* fStsTofDpbCorrProf[kuMaxNbStsDpbs];
   TProfile* fStsRichDpbCorrProf[kuMaxNbStsDpbs];
   /*
     static const UInt_t kuMaxNbMuchAsics = 24;
-    TH2*      fT0MuchAsicCorr[kuMaxNbMuchAsics];
-    TProfile* fT0MuchAsicCorrProf[kuMaxNbMuchAsics];
+    TH2*      fBmonMuchAsicCorr[kuMaxNbMuchAsics];
+    TProfile* fBmonMuchAsicCorrProf[kuMaxNbMuchAsics];
 */
   TString fOutFileName {"HistosCheckDigisNbCorr.root"};
 
diff --git a/fles/mcbm2018/tasks/CbmCheckEvents.cxx b/fles/mcbm2018/tasks/CbmCheckEvents.cxx
index 4d1f8c4b68415ba9390e5859aea87e4a68aeb4ae..20f699097fc2b81aa3a2f432b3a4cfec6614d9dc 100644
--- a/fles/mcbm2018/tasks/CbmCheckEvents.cxx
+++ b/fles/mcbm2018/tasks/CbmCheckEvents.cxx
@@ -63,10 +63,10 @@ InitStatus CbmCheckEvents::Init()
 
   // Get a pointer to the previous already existing data level
 
-  fT0DigiVec = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("T0Digi");
-  if (!fT0DigiVec) {
-    fT0DigiArr = dynamic_cast<TClonesArray*>(ioman->GetObject("T0Digi"));
-    if (!fT0DigiArr) { LOG(fatal) << "No TClonesArray with T0 digis found."; }
+  fBmonDigiVec = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("BmonDigi");
+  if (!fBmonDigiVec) {
+    fBmonDigiArr = dynamic_cast<TClonesArray*>(ioman->GetObject("BmonDigi"));
+    if (!fBmonDigiArr) { LOG(fatal) << "No TClonesArray with Bmon digis found."; }
   }
 
   if (!fDigiMan->IsPresent(ECbmModuleId::kSts)) { LOG(info) << "No TClonesArray with STS digis found."; }
@@ -100,11 +100,12 @@ void CbmCheckEvents::CreateHistos()
   fEventSize   = new TH1F("fEventSize", "Event Size; # Digis; Counts", 1000, -0.5, 999.5);
   fEventLength = new TH1F("fEventLength", "Event Length; time [ns]; Counts", 1000, -0.5, 999.5);
   fEventsPerTS = new TH1F("fEventsPerTS", "Events per time slice; # Events; Counts", 1000, -0.5, 999.5);
-  fT0InEvent   = new TH1F("fT0InEvent", "Number of T0 digis in Event; # digis; Counts", 1000, -0.5, 999.5);
+  fBmonInEvent = new TH1F("fBmonInEvent", "Number of Bmon digis in Event; # digis; Counts", 1000, -0.5, 999.5);
   fStsInEvent  = new TH1F("fStsInEvent", "Number of Sts digis in Event; # digis; Counts", 1000, -0.5, 999.5);
   fMuchInEvent = new TH1F("fMuchInEvent", "Number of Much digis in Event; # digis; Counts", 1000, -0.5, 999.5);
   fTofInEvent  = new TH1F("fTofInEvent", "Number of Tof digis in Event; # digis; Counts", 1000, -0.5, 999.5);
-  fT0DeltaT    = new TH1F("fT0DeltaT", "Time diff between first and last T0 digi;dt [ns]; Counts", 1000, -0.5, 999.5);
+  fBmonDeltaT =
+    new TH1F("fBmonDeltaT", "Time diff between first and last Bmon digi;dt [ns]; Counts", 1000, -0.5, 999.5);
   fStsDeltaT   = new TH1F("fStsDeltaT", "Time diff between first and last Sts digi;dt [ns]; Counts", 1000, -0.5, 999.5);
   fMuchDeltaT =
     new TH1F("fMuchDeltaT", "Time diff between first and last Much digi;dt [ns]; Counts", 1000, -0.5, 999.5);
@@ -124,16 +125,16 @@ void CbmCheckEvents::Exec(Option_t* /*option*/)
   fEventsPerTS->Fill(nrEvents);
   fEventsvsTS->Fill(fNrTs, nrEvents);
 
-  Int_t nrT0Digis = -1;
-  if (fT0DigiVec) nrT0Digis = fT0DigiVec->size();
-  else if (fT0DigiArr)
-    nrT0Digis = fT0DigiArr->GetEntriesFast();
+  Int_t nrBmonDigis = -1;
+  if (fBmonDigiVec) nrBmonDigis = fBmonDigiVec->size();
+  else if (fBmonDigiArr)
+    nrBmonDigis = fBmonDigiArr->GetEntriesFast();
   Int_t nrStsDigis  = fDigiMan->GetNofDigis(ECbmModuleId::kSts);
   Int_t nrMuchDigis = fDigiMan->GetNofDigis(ECbmModuleId::kMuch);
   Int_t nrTofDigis  = fDigiMan->GetNofDigis(ECbmModuleId::kTof);
 
   LOG(debug) << "Events: " << nrEvents;
-  LOG(debug) << "T0Digis: " << nrT0Digis;
+  LOG(debug) << "BmonDigis: " << nrBmonDigis;
   LOG(debug) << "StsDigis: " << nrStsDigis;
   LOG(debug) << "MuchDigis: " << nrMuchDigis;
   LOG(debug) << "TofDigis: " << nrTofDigis;
@@ -154,7 +155,7 @@ void CbmCheckEvents::AnalyseEvent(CbmEvent* event)
 {
   // Loop over the the digis and extract the maximum time
   // difference between the digis
-  GetTimeDiffT0(event, fT0DeltaT, fT0InEvent);
+  GetTimeDiffBmon(event, fBmonDeltaT, fBmonInEvent);
   GetTimeDiff<CbmStsDigi>(event, fStsDeltaT, fStsInEvent, ECbmDataType::kStsDigi);
   GetTimeDiff<CbmMuchBeamTimeDigi>(event, fMuchDeltaT, fMuchInEvent, ECbmDataType::kMuchDigi);
   GetTimeDiff<CbmTofDigi>(event, fTofDeltaT, fTofInEvent, ECbmDataType::kTofDigi);
@@ -178,19 +179,19 @@ void CbmCheckEvents::GetTimeDiff(CbmEvent* event, TH1* deltaT, TH1* size, ECbmDa
 }
 
 
-void CbmCheckEvents::GetTimeDiffT0(CbmEvent* event, TH1* deltaT, TH1* size)
+void CbmCheckEvents::GetTimeDiffBmon(CbmEvent* event, TH1* deltaT, TH1* size)
 {
   Double_t startTime {1.e18};
   Double_t stopTime {0.};
-  Int_t nDigis = event->GetNofData(ECbmDataType::kT0Digi);
+  Int_t nDigis = event->GetNofData(ECbmDataType::kBmonDigi);
   size->Fill(nDigis);
   for (Int_t iDigi = 0; iDigi < nDigis; iDigi++) {
-    UInt_t index = event->GetIndex(ECbmDataType::kT0Digi, iDigi);
+    UInt_t index = event->GetIndex(ECbmDataType::kBmonDigi, iDigi);
     //Double_t digiTime; (VF) not used
     const CbmTofDigi* digi = nullptr;
-    if (fT0DigiVec) digi = &(fT0DigiVec->at(index));
-    else if (fT0DigiArr)
-      digi = dynamic_cast<CbmTofDigi*>(fT0DigiArr->At(index));
+    if (fBmonDigiVec) digi = &(fBmonDigiVec->at(index));
+    else if (fBmonDigiArr)
+      digi = dynamic_cast<CbmTofDigi*>(fBmonDigiArr->At(index));
     assert(digi);
     if (digi->GetTime() < startTime) startTime = digi->GetTime();
     if (digi->GetTime() > stopTime) stopTime = digi->GetTime();
@@ -210,12 +211,12 @@ void CbmCheckEvents::Finish()
   fEventLength->Write();
   fEventsPerTS->Write();
 
-  fT0InEvent->Write();
+  fBmonInEvent->Write();
   fStsInEvent->Write();
   fMuchInEvent->Write();
   fTofInEvent->Write();
 
-  fT0DeltaT->Write();
+  fBmonDeltaT->Write();
   fStsDeltaT->Write();
   fMuchDeltaT->Write();
   fTofDeltaT->Write();
diff --git a/fles/mcbm2018/tasks/CbmCheckEvents.h b/fles/mcbm2018/tasks/CbmCheckEvents.h
index 26cda0823997fff6b4c3cc421eda25a13a8a7c42..7f5571bd0ccc91a3d7a4a867023abdbf9d4c7ca2 100644
--- a/fles/mcbm2018/tasks/CbmCheckEvents.h
+++ b/fles/mcbm2018/tasks/CbmCheckEvents.h
@@ -58,15 +58,15 @@ private:
   void CreateHistos();
   void AnalyseEvent(CbmEvent* event);
 
-  void GetTimeDiffT0(CbmEvent*, TH1*, TH1*);
+  void GetTimeDiffBmon(CbmEvent*, TH1*, TH1*);
 
   template<class Digi>
   void GetTimeDiff(CbmEvent* event, TH1*, TH1*, ECbmDataType type);
 
   CbmDigiManager* fDigiMan = nullptr;  //! Interface to digi data
-  /** T0 is not included in CbmDigiManager, so add it explicitly here **/
-  const std::vector<CbmTofDigi>* fT0DigiVec = nullptr;  //!
-  TClonesArray* fT0DigiArr {nullptr};                   //!
+  /** Bmon is not included in CbmDigiManager, so add it explicitly here **/
+  const std::vector<CbmTofDigi>* fBmonDigiVec = nullptr;  //!
+  TClonesArray* fBmonDigiArr {nullptr};                   //!
   TClonesArray* fEvents {nullptr};
 
   // Variables to store the previous digi time
@@ -79,12 +79,12 @@ private:
   TH1* fEventSize   = nullptr;
   TH1* fEventLength = nullptr;
   TH1* fEventsPerTS = nullptr;
-  TH1* fT0InEvent   = nullptr;
+  TH1* fBmonInEvent = nullptr;
   TH1* fStsInEvent  = nullptr;
   TH1* fMuchInEvent = nullptr;
   TH1* fTofInEvent  = nullptr;
 
-  TH1* fT0DeltaT   = nullptr;
+  TH1* fBmonDeltaT = nullptr;
   TH1* fStsDeltaT  = nullptr;
   TH1* fMuchDeltaT = nullptr;
   TH1* fTofDeltaT  = nullptr;
diff --git a/fles/mcbm2018/tasks/CbmCheckTiming.cxx b/fles/mcbm2018/tasks/CbmCheckTiming.cxx
index 60e25296af56c1c069a137f018ec29bc7ff2de09..fad5bbf781bf246af7c089a1c099e1f687bf725a 100644
--- a/fles/mcbm2018/tasks/CbmCheckTiming.cxx
+++ b/fles/mcbm2018/tasks/CbmCheckTiming.cxx
@@ -59,10 +59,10 @@ InitStatus CbmCheckTiming::Init()
   fDigiMan->Init();
 
   // Get a pointer to the previous already existing data level
-  fT0DigiVec = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("T0Digi");
-  if (!fT0DigiVec) {
-    fT0DigiArr = dynamic_cast<TClonesArray*>(ioman->GetObject("T0Digi"));
-    if (!fT0DigiArr) { LOG(fatal) << "No TClonesArray with T0 digis found."; }
+  fBmonDigiVec = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("BmonDigi");
+  if (!fBmonDigiVec) {
+    fBmonDigiArr = dynamic_cast<TClonesArray*>(ioman->GetObject("BmonDigi"));
+    if (!fBmonDigiArr) { LOG(fatal) << "No TClonesArray with Bmon digis found."; }
   }
 
   if (!fDigiMan->IsPresent(ECbmModuleId::kSts)) { LOG(info) << "No STS digis found."; }
@@ -111,116 +111,120 @@ void CbmCheckTiming::CreateHistos()
   //  double * dBinsLog = GenerateLogBinArray( 9, 9, 1, iNbBinsLog );
 
   Int_t nrOfBinsSts = CalcNrBins(fStsOffsetRange);
-  // T0 vs. Sts
-  fT0StsDiff = new TH1D("fT0StsDiff", "Sts-T0;time diff [ns];Counts", nrOfBinsSts, -fStsOffsetRange, fStsOffsetRange);
+  // Bmon vs. Sts
+  fBmonStsDiff =
+    new TH1D("fBmonStsDiff", "Sts-Bmon;time diff [ns];Counts", nrOfBinsSts, -fStsOffsetRange, fStsOffsetRange);
 
-  fT0StsDiffCharge = new TH2F("fT0StsDiffCharge", "Sts-T0;time diff [ns]; Charge [a.u]; Counts", nrOfBinsSts,
-                              -fStsOffsetRange, fStsOffsetRange, 256, 0, 256);
+  fBmonStsDiffCharge = new TH2F("fBmonStsDiffCharge", "Sts-Bmon;time diff [ns]; Charge [a.u]; Counts", nrOfBinsSts,
+                                -fStsOffsetRange, fStsOffsetRange, 256, 0, 256);
 
-  fT0StsDiffEvo = new TH2F("fT0StsDiffEvo", "Sts-T0;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsSts,
-                           -fStsOffsetRange, fStsOffsetRange);
+  fBmonStsDiffEvo = new TH2F("fBmonStsDiffEvo", "Sts-Bmon;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsSts,
+                             -fStsOffsetRange, fStsOffsetRange);
 
 
   Int_t nrOfBinsMuch = CalcNrBins(fMuchOffsetRange);
-  // T0 vs. Much
-  fT0MuchDiff =
-    new TH1D("fT0MuchDiff", "Much-T0;time diff [ns];Counts", nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
+  // Bmon vs. Much
+  fBmonMuchDiff =
+    new TH1D("fBmonMuchDiff", "Much-Bmon;time diff [ns];Counts", nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
 
-  fT0MuchDiffCharge = new TH2F("fT0MuchDiffCharge", "Much-T0;time diff [ns]; Charge [a.u]; ;Counts", nrOfBinsMuch,
-                               -fMuchOffsetRange, fMuchOffsetRange, 256, 0, 256);
+  fBmonMuchDiffCharge = new TH2F("fBmonMuchDiffCharge", "Much-Bmon;time diff [ns]; Charge [a.u]; ;Counts", nrOfBinsMuch,
+                                 -fMuchOffsetRange, fMuchOffsetRange, 256, 0, 256);
 
-  fT0MuchDiffEvo = new TH2F("fT0MuchDiffEvo", "Much-T0;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsMuch,
-                            -fMuchOffsetRange, fMuchOffsetRange);
+  fBmonMuchDiffEvo = new TH2F("fBmonMuchDiffEvo", "Much-Bmon;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsMuch,
+                              -fMuchOffsetRange, fMuchOffsetRange);
 
   Int_t nrOfBinsTrd = CalcNrBins(fTrdOffsetRange);
   // To vs. Trd
-  fT0TrdDiff = new TH1D("fT0TrdDiff", "Trd-T0;time diff [ns];Counts", nrOfBinsTrd, -fTrdOffsetRange, fTrdOffsetRange);
+  fBmonTrdDiff =
+    new TH1D("fBmonTrdDiff", "Trd-Bmon;time diff [ns];Counts", nrOfBinsTrd, -fTrdOffsetRange, fTrdOffsetRange);
 
-  fT0TrdDiffCharge = new TH2F("fT0TrdDiffCharge", "Trd-T0;time diff [ns]; Charge [a.u]; ;Counts", nrOfBinsTrd,
-                              -fTrdOffsetRange, fTrdOffsetRange, 256, 0, 256);
+  fBmonTrdDiffCharge = new TH2F("fBmonTrdDiffCharge", "Trd-Bmon;time diff [ns]; Charge [a.u]; ;Counts", nrOfBinsTrd,
+                                -fTrdOffsetRange, fTrdOffsetRange, 256, 0, 256);
 
-  fT0TrdDiffEvo = new TH2F("fT0TrdDiffEvo", "Trd-T0;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsTrd,
-                           -fTrdOffsetRange, fTrdOffsetRange);
+  fBmonTrdDiffEvo = new TH2F("fBmonTrdDiffEvo", "Trd-Bmon;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsTrd,
+                             -fTrdOffsetRange, fTrdOffsetRange);
 
   Int_t nrOfBinsTof = CalcNrBins(fTofOffsetRange);
   // To vs. Tof
-  fT0TofDiff = new TH1D("fT0TofDiff", "Tof-T0;time diff [ns];Counts", nrOfBinsTof, -fTofOffsetRange, fTofOffsetRange);
+  fBmonTofDiff =
+    new TH1D("fBmonTofDiff", "Tof-Bmon;time diff [ns];Counts", nrOfBinsTof, -fTofOffsetRange, fTofOffsetRange);
 
-  fT0TofDiffCharge = new TH2F("fT0TofDiffCharge", "Tof-T0;time diff [ns]; Charge [a.u]; ;Counts", nrOfBinsTof,
-                              -fTofOffsetRange, fTofOffsetRange, 256, 0, 256);
+  fBmonTofDiffCharge = new TH2F("fBmonTofDiffCharge", "Tof-Bmon;time diff [ns]; Charge [a.u]; ;Counts", nrOfBinsTof,
+                                -fTofOffsetRange, fTofOffsetRange, 256, 0, 256);
 
-  fT0TofDiffEvo = new TH2F("fT0TofDiffEvo", "Tof-T0;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsTof,
-                           -fTofOffsetRange, fTofOffsetRange);
+  fBmonTofDiffEvo = new TH2F("fBmonTofDiffEvo", "Tof-Bmon;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsTof,
+                             -fTofOffsetRange, fTofOffsetRange);
 
 
   Int_t nrOfBinsRich = CalcNrBins(fRichOffsetRange);
   // To vs. Rich
-  fT0RichDiff =
-    new TH1D("fT0RichDiff", "Rich-T0;time diff [ns];Counts", nrOfBinsRich, -fRichOffsetRange, fRichOffsetRange);
+  fBmonRichDiff =
+    new TH1D("fBmonRichDiff", "Rich-Bmon;time diff [ns];Counts", nrOfBinsRich, -fRichOffsetRange, fRichOffsetRange);
 
-  fT0RichDiffCharge = new TH2F("fT0RichDiffCharge", "Rich-T0;time diff [ns]; Charge [a.u]; ;Counts", nrOfBinsRich,
-                               -fRichOffsetRange, fRichOffsetRange, 256, 0, 256);
+  fBmonRichDiffCharge = new TH2F("fBmonRichDiffCharge", "Rich-Bmon;time diff [ns]; Charge [a.u]; ;Counts", nrOfBinsRich,
+                                 -fRichOffsetRange, fRichOffsetRange, 256, 0, 256);
 
-  fT0RichDiffEvo = new TH2F("fT0RichDiffEvo", "Rich-T0;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsRich,
-                            -fRichOffsetRange, fRichOffsetRange);
+  fBmonRichDiffEvo = new TH2F("fBmonRichDiffEvo", "Rich-Bmon;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsRich,
+                              -fRichOffsetRange, fRichOffsetRange);
 
   Int_t nrOfBinsPsd = CalcNrBins(fPsdOffsetRange);
   // To vs. Psd
-  fT0PsdDiff = new TH1D("fT0PsdDiff", "Psd-T0;time diff [ns];Counts", nrOfBinsPsd, -fPsdOffsetRange, fPsdOffsetRange);
+  fBmonPsdDiff =
+    new TH1D("fBmonPsdDiff", "Psd-Bmon;time diff [ns];Counts", nrOfBinsPsd, -fPsdOffsetRange, fPsdOffsetRange);
 
-  fT0PsdDiffCharge = new TH2F("fT0PsdDiffCharge", "Psd-T0;time diff [ns]; Charge [a.u]; ;Counts", nrOfBinsPsd,
-                              -fPsdOffsetRange, fPsdOffsetRange, 7000, 0, 70000);
+  fBmonPsdDiffCharge = new TH2F("fBmonPsdDiffCharge", "Psd-Bmon;time diff [ns]; Charge [a.u]; ;Counts", nrOfBinsPsd,
+                                -fPsdOffsetRange, fPsdOffsetRange, 7000, 0, 70000);
 
-  fT0PsdDiffEvo = new TH2F("fT0PsdDiffEvo", "Psd-T0;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsPsd,
-                           -fPsdOffsetRange, fPsdOffsetRange);
+  fBmonPsdDiffEvo = new TH2F("fBmonPsdDiffEvo", "Psd-Bmon;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsPsd,
+                             -fPsdOffsetRange, fPsdOffsetRange);
 
-  // T0 vs. Sts
-  fT0StsDiffEvoLong = new TH2F("fT0StsDiffEvoLong", "Sts-T0;TS; time diff [ns];Counts", 1800, 0, 180000, nrOfBinsSts,
-                               -fStsOffsetRange, fStsOffsetRange);
-  // T0 vs. Much
-  fT0MuchDiffEvoLong = new TH2F("fT0MuchDiffEvoLong", "Much-T0;TS; time diff [ns];Counts", 1800, 0, 180000,
-                                nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
+  // Bmon vs. Sts
+  fBmonStsDiffEvoLong = new TH2F("fBmonStsDiffEvoLong", "Sts-Bmon;TS; time diff [ns];Counts", 1800, 0, 180000,
+                                 nrOfBinsSts, -fStsOffsetRange, fStsOffsetRange);
+  // Bmon vs. Much
+  fBmonMuchDiffEvoLong = new TH2F("fBmonMuchDiffEvoLong", "Much-Bmon;TS; time diff [ns];Counts", 1800, 0, 180000,
+                                  nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
   // To vs. Trd
-  fT0TrdDiffEvoLong = new TH2F("fT0TrdDiffEvoLong", "Trd-T0;TS; time diff [ns];Counts", 1800, 0, 180000, nrOfBinsTrd,
-                               -fTrdOffsetRange, fTrdOffsetRange);
+  fBmonTrdDiffEvoLong = new TH2F("fBmonTrdDiffEvoLong", "Trd-Bmon;TS; time diff [ns];Counts", 1800, 0, 180000,
+                                 nrOfBinsTrd, -fTrdOffsetRange, fTrdOffsetRange);
   // To vs. Tof
-  fT0TofDiffEvoLong = new TH2F("fT0TofDiffEvoLong", "Tof-T0;TS; time diff [ns];Counts", 1800, 0, 180000, nrOfBinsTof,
-                               -fTofOffsetRange, fTofOffsetRange);
+  fBmonTofDiffEvoLong = new TH2F("fBmonTofDiffEvoLong", "Tof-Bmon;TS; time diff [ns];Counts", 1800, 0, 180000,
+                                 nrOfBinsTof, -fTofOffsetRange, fTofOffsetRange);
   // To vs. Rich
-  fT0RichDiffEvoLong = new TH2F("fT0RichDiffEvoLong", "Rich-T0;TS; time diff [ns];Counts", 1800, 0, 180000,
-                                nrOfBinsRich, -fRichOffsetRange, fRichOffsetRange);
+  fBmonRichDiffEvoLong = new TH2F("fBmonRichDiffEvoLong", "Rich-Bmon;TS; time diff [ns];Counts", 1800, 0, 180000,
+                                  nrOfBinsRich, -fRichOffsetRange, fRichOffsetRange);
 
   // To vs. Psd
-  fT0PsdDiffEvoLong = new TH2F("fT0PsdDiffEvoLong", "Psd-T0;TS; time diff [ns];Counts", 1800, 0, 180000, nrOfBinsPsd,
-                               -fPsdOffsetRange, fPsdOffsetRange);
+  fBmonPsdDiffEvoLong = new TH2F("fBmonPsdDiffEvoLong", "Psd-Bmon;TS; time diff [ns];Counts", 1800, 0, 180000,
+                                 nrOfBinsPsd, -fPsdOffsetRange, fPsdOffsetRange);
 
-  // T0 vs. STS for the different DPBs
-  fT0StsDpbDiff = new TH2F("fT0StsDpbDiff", "Much-T0;DPB; time diff [ns];Counts", 2, -0.5, 1.5, nrOfBinsSts,
-                           -fStsOffsetRange, fStsOffsetRange);
+  // Bmon vs. STS for the different DPBs
+  fBmonStsDpbDiff = new TH2F("fBmonStsDpbDiff", "Much-Bmon;DPB; time diff [ns];Counts", 2, -0.5, 1.5, nrOfBinsSts,
+                             -fStsOffsetRange, fStsOffsetRange);
 
   for (UInt_t uStsDpb = 0; uStsDpb < kuMaxNbStsDpbs; ++uStsDpb) {
-    fT0StsDpbDiffEvo[uStsDpb] =
-      new TH2F(Form("fT0StsDpbDiffEvo%02u", uStsDpb), Form("Sts-T0 DPB %02u;TS; time diff [ns];Counts", uStsDpb), 1800,
-               0, 180000, nrOfBinsSts, -fStsOffsetRange, fStsOffsetRange);
+    fBmonStsDpbDiffEvo[uStsDpb] =
+      new TH2F(Form("fBmonStsDpbDiffEvo%02u", uStsDpb), Form("Sts-Bmon DPB %02u;TS; time diff [ns];Counts", uStsDpb),
+               1800, 0, 180000, nrOfBinsSts, -fStsOffsetRange, fStsOffsetRange);
     fStsDpbCntsEvo[uStsDpb] =
       new TH1F(Form("fStsDpbCntsEvo%02u", uStsDpb), Form("Time STS DPB %02u;TS; Hit Counts", uStsDpb), 1800, 0, 180000);
   }  // for( UInt_t uStsDpb = 0; uStsDpb < kuMaxNbStsDpbs; ++uStsDpb )
 
-  // T0 vs. Much for the different DPBs/AFCK
-  fT0MuchRocDiff = new TH2F("fT0MuchRocDiff", "Much-T0;AFCK; time diff [ns];Counts", kuMaxNbMuchDpbs, -0.5,
-                            kuMaxNbMuchDpbs - 0.5, nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
+  // Bmon vs. Much for the different DPBs/AFCK
+  fBmonMuchRocDiff = new TH2F("fBmonMuchRocDiff", "Much-Bmon;AFCK; time diff [ns];Counts", kuMaxNbMuchDpbs, -0.5,
+                              kuMaxNbMuchDpbs - 0.5, nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
 
-  // T0 vs. Much for the different ASICs
-  fT0MuchAsicDiff = new TH2F("fT0MuchAsicDiff", "Much-T0;ASIC; time diff [ns];Counts", kuMaxNbMuchAsics, -0.5,
-                             kuMaxNbMuchAsics - 0.5, nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
+  // Bmon vs. Much for the different ASICs
+  fBmonMuchAsicDiff = new TH2F("fBmonMuchAsicDiff", "Much-Bmon;ASIC; time diff [ns];Counts", kuMaxNbMuchAsics, -0.5,
+                               kuMaxNbMuchAsics - 0.5, nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
 
   for (UInt_t uMuchAsic = 0; uMuchAsic < kuMaxNbMuchAsics; ++uMuchAsic)
-    fT0MuchAsicDiffEvo[uMuchAsic] = new TH2F(Form("fT0MuchAsicDiffEvo%02u", uMuchAsic),
-                                             Form("Much-T0 ASIC %02u;TS; time diff [ns];Counts", uMuchAsic), 1800, 0,
-                                             180000, nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
+    fBmonMuchAsicDiffEvo[uMuchAsic] = new TH2F(Form("fBmonMuchAsicDiffEvo%02u", uMuchAsic),
+                                               Form("Much-Bmon ASIC %02u;TS; time diff [ns];Counts", uMuchAsic), 1800,
+                                               0, 180000, nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
 
-  // T0 vs. T0
-  fT0T0Diff = new TH1F("fT0T0Diff", "T0-T0_prev;time diff [ns];Counts", iNbBinsLog, dBinsLog);
+  // Bmon vs. Bmon
+  fBmonBmonDiff = new TH1F("fBmonBmonDiff", "Bmon-Bmon_prev;time diff [ns];Counts", iNbBinsLog, dBinsLog);
   // sts vs. Sts
   fStsStsDiff = new TH1F("fStsStsDiff", "Sts-Sts_prev;time diff [ns];Counts", iNbBinsLog, dBinsLog);
   // Much vs. Much
@@ -234,22 +238,22 @@ void CbmCheckTiming::CreateHistos()
   // Psd vs. Psd
   fPsdPsdDiff = new TH1F("fPsdPsdDiff", "Psd-Psd_prev;time diff [ns];Counts", iNbBinsLog, dBinsLog);
 
-  fT0Address = new TH1F("fT0Address", "T0 address;address;Counts", 1000000, 0, 1000000.);
+  fBmonAddress = new TH1F("fBmonAddress", "Bmon address;address;Counts", 1000000, 0, 1000000.);
 
-  fT0Channel = new TH1F("fT0Channel", "T0 channel;channel nr;Counts", 100, -0.5, 99.5);
+  fBmonChannel = new TH1F("fBmonChannel", "Bmon channel;channel nr;Counts", 100, -0.5, 99.5);
 
-  fSelT0StsDiff  = new TH1F("fSelT0StsDiff", "Sts-T0 if T0 in coinc with TOF;time diff [ns];Counts", nrOfBinsSts,
-                           -fStsOffsetRange, fStsOffsetRange);
-  fSelT0MuchDiff = new TH1F("fSelT0MuchDiff", "Much-T0 if T0 in coinc with TOF;time diff [ns];Counts", nrOfBinsMuch,
-                            -fMuchOffsetRange, fMuchOffsetRange);
-  fSelT0TrdDiff  = new TH1F("fSelT0TrdDiff", "Trd-T0 if T0 in coinc with TOF;time diff [ns];Counts", nrOfBinsTrd,
-                           -fTrdOffsetRange, fTrdOffsetRange);
-  fSelT0TofDiff  = new TH1F("fSelT0TofDiff", "Tof-T0 if T0 in coinc with TOF;time diff [ns];Counts", nrOfBinsTof,
-                           -fTofOffsetRange, fTofOffsetRange);
-  fSelT0RichDiff = new TH1F("fSelT0RichDiff", "Rich-T0 if T0 in coinc with TOF;time diff [ns];Counts", nrOfBinsRich,
-                            -fRichOffsetRange, fRichOffsetRange);
-  fSelT0PsdDiff  = new TH1F("fSelT0PsdDiff", "Psd-T0 if T0 in coinc with TOF;time diff [ns];Counts", nrOfBinsPsd,
-                           -fPsdOffsetRange, fPsdOffsetRange);
+  fSelBmonStsDiff = new TH1F("fSelBmonStsDiff", "Sts-Bmon if Bmon in coinc with TOF;time diff [ns];Counts", nrOfBinsSts,
+                             -fStsOffsetRange, fStsOffsetRange);
+  fSelBmonMuchDiff = new TH1F("fSelBmonMuchDiff", "Much-Bmon if Bmon in coinc with TOF;time diff [ns];Counts",
+                              nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
+  fSelBmonTrdDiff = new TH1F("fSelBmonTrdDiff", "Trd-Bmon if Bmon in coinc with TOF;time diff [ns];Counts", nrOfBinsTrd,
+                             -fTrdOffsetRange, fTrdOffsetRange);
+  fSelBmonTofDiff = new TH1F("fSelBmonTofDiff", "Tof-Bmon if Bmon in coinc with TOF;time diff [ns];Counts", nrOfBinsTof,
+                             -fTofOffsetRange, fTofOffsetRange);
+  fSelBmonRichDiff = new TH1F("fSelBmonRichDiff", "Rich-Bmon if Bmon in coinc with TOF;time diff [ns];Counts",
+                              nrOfBinsRich, -fRichOffsetRange, fRichOffsetRange);
+  fSelBmonPsdDiff = new TH1F("fSelBmonPsdDiff", "Psd-Bmon if Bmon in coinc with TOF;time diff [ns];Counts", nrOfBinsPsd,
+                             -fPsdOffsetRange, fPsdOffsetRange);
 
   /// Cleanup array of log bins
   //  delete dBinsLog;
@@ -259,31 +263,31 @@ void CbmCheckTiming::CreateHistos()
   if (run) {
     THttpServer* server = run->GetHttpServer();
     if (nullptr != server) {
-      server->Register("/CheckTiming", fT0StsDiff);
-      server->Register("/CheckTiming", fT0MuchDiff);
-      server->Register("/CheckTiming", fT0TrdDiff);
-      server->Register("/CheckTiming", fT0TofDiff);
-      server->Register("/CheckTiming", fT0RichDiff);
-      server->Register("/CheckTiming", fT0PsdDiff);
-      server->Register("/CheckTiming", fT0StsDiffCharge);
-      server->Register("/CheckTiming", fT0MuchDiffCharge);
-      server->Register("/CheckTiming", fT0TrdDiffCharge);
-      server->Register("/CheckTiming", fT0TofDiffCharge);
-      server->Register("/CheckTiming", fT0RichDiffCharge);
-      server->Register("/CheckTiming", fT0PsdDiffCharge);
-      server->Register("/CheckTiming", fT0StsDiffEvo);
-      server->Register("/CheckTiming", fT0MuchDiffEvo);
-      server->Register("/CheckTiming", fT0TrdDiffEvo);
-      server->Register("/CheckTiming", fT0TofDiffEvo);
-      server->Register("/CheckTiming", fT0RichDiffEvo);
-      server->Register("/CheckTiming", fT0PsdDiffEvo);
-      server->Register("/CheckTiming", fT0StsDiffEvoLong);
-      server->Register("/CheckTiming", fT0MuchDiffEvoLong);
-      server->Register("/CheckTiming", fT0TrdDiffEvoLong);
-      server->Register("/CheckTiming", fT0TofDiffEvoLong);
-      server->Register("/CheckTiming", fT0RichDiffEvoLong);
-      server->Register("/CheckTiming", fT0PsdDiffEvoLong);
-      server->Register("/CheckTiming", fT0T0Diff);
+      server->Register("/CheckTiming", fBmonStsDiff);
+      server->Register("/CheckTiming", fBmonMuchDiff);
+      server->Register("/CheckTiming", fBmonTrdDiff);
+      server->Register("/CheckTiming", fBmonTofDiff);
+      server->Register("/CheckTiming", fBmonRichDiff);
+      server->Register("/CheckTiming", fBmonPsdDiff);
+      server->Register("/CheckTiming", fBmonStsDiffCharge);
+      server->Register("/CheckTiming", fBmonMuchDiffCharge);
+      server->Register("/CheckTiming", fBmonTrdDiffCharge);
+      server->Register("/CheckTiming", fBmonTofDiffCharge);
+      server->Register("/CheckTiming", fBmonRichDiffCharge);
+      server->Register("/CheckTiming", fBmonPsdDiffCharge);
+      server->Register("/CheckTiming", fBmonStsDiffEvo);
+      server->Register("/CheckTiming", fBmonMuchDiffEvo);
+      server->Register("/CheckTiming", fBmonTrdDiffEvo);
+      server->Register("/CheckTiming", fBmonTofDiffEvo);
+      server->Register("/CheckTiming", fBmonRichDiffEvo);
+      server->Register("/CheckTiming", fBmonPsdDiffEvo);
+      server->Register("/CheckTiming", fBmonStsDiffEvoLong);
+      server->Register("/CheckTiming", fBmonMuchDiffEvoLong);
+      server->Register("/CheckTiming", fBmonTrdDiffEvoLong);
+      server->Register("/CheckTiming", fBmonTofDiffEvoLong);
+      server->Register("/CheckTiming", fBmonRichDiffEvoLong);
+      server->Register("/CheckTiming", fBmonPsdDiffEvoLong);
+      server->Register("/CheckTiming", fBmonBmonDiff);
       server->Register("/CheckTiming", fStsStsDiff);
       server->Register("/CheckTiming", fMuchMuchDiff);
       server->Register("/CheckTiming", fTrdTrdDiff);
@@ -291,21 +295,21 @@ void CbmCheckTiming::CreateHistos()
       server->Register("/CheckTiming", fRichRichDiff);
       server->Register("/CheckTiming", fPsdPsdDiff);
 
-      server->Register("/CheckTiming", fT0StsDpbDiff);
+      server->Register("/CheckTiming", fBmonStsDpbDiff);
       for (UInt_t uStsDpb = 0; uStsDpb < kuMaxNbStsDpbs; ++uStsDpb)
-        server->Register("/CheckTiming/sts", fT0StsDpbDiffEvo[uStsDpb]);
+        server->Register("/CheckTiming/sts", fBmonStsDpbDiffEvo[uStsDpb]);
 
-      server->Register("/CheckTiming", fT0MuchRocDiff);
-      server->Register("/CheckTiming", fT0MuchAsicDiff);
+      server->Register("/CheckTiming", fBmonMuchRocDiff);
+      server->Register("/CheckTiming", fBmonMuchAsicDiff);
       for (UInt_t uMuchAsic = 0; uMuchAsic < kuMaxNbMuchAsics; ++uMuchAsic)
-        server->Register("/CheckTiming/much", fT0MuchAsicDiffEvo[uMuchAsic]);
-
-      server->Register("/CheckTiming", fSelT0StsDiff);
-      server->Register("/CheckTiming", fSelT0MuchDiff);
-      server->Register("/CheckTiming", fSelT0TrdDiff);
-      server->Register("/CheckTiming", fSelT0TofDiff);
-      server->Register("/CheckTiming", fSelT0RichDiff);
-      server->Register("/CheckTiming", fSelT0PsdDiff);
+        server->Register("/CheckTiming/much", fBmonMuchAsicDiffEvo[uMuchAsic]);
+
+      server->Register("/CheckTiming", fSelBmonStsDiff);
+      server->Register("/CheckTiming", fSelBmonMuchDiff);
+      server->Register("/CheckTiming", fSelBmonTrdDiff);
+      server->Register("/CheckTiming", fSelBmonTofDiff);
+      server->Register("/CheckTiming", fSelBmonRichDiff);
+      server->Register("/CheckTiming", fSelBmonPsdDiff);
     }
   }
 }
@@ -330,11 +334,11 @@ void CbmCheckTiming::Exec(Option_t* /*option*/)
 void CbmCheckTiming::CheckInterSystemOffset()
 {
   LOG(debug) << "Begin";
-  Int_t nrT0Digis = 0;
-  if (fT0DigiVec) nrT0Digis = fT0DigiVec->size();
-  else if (fT0DigiArr)
-    nrT0Digis = fT0DigiArr->GetEntriesFast();
-  LOG(debug) << "T0Digis: " << nrT0Digis;
+  Int_t nrBmonDigis = 0;
+  if (fBmonDigiVec) nrBmonDigis = fBmonDigiVec->size();
+  else if (fBmonDigiArr)
+    nrBmonDigis = fBmonDigiArr->GetEntriesFast();
+  LOG(debug) << "BmonDigis: " << nrBmonDigis;
 
   Int_t nrStsDigis {0};
   if (fDigiMan->IsPresent(ECbmModuleId::kSts)) {
@@ -372,99 +376,103 @@ void CbmCheckTiming::CheckInterSystemOffset()
     LOG(debug) << "PsdDigis: " << nrPsdDigis;
   }
 
-  //  if (nrT0Digis < 100000) {
-  if (nrT0Digis < 1000000) {
+  //  if (nrBmonDigis < 100000) {
+  if (nrBmonDigis < 1000000) {
     /// Re-initialize array references
-    fPrevT0FirstDigiSts  = 0.;
-    fPrevT0FirstDigiMuch = 0.;
-    fPrevT0FirstDigiTrd  = 0.;
-    fPrevT0FirstDigiTof  = 0.;
-    fPrevT0FirstDigiRich = 0.;
-    fPrevT0FirstDigiPsd  = 0.;
+    fPrevBmonFirstDigiSts  = 0.;
+    fPrevBmonFirstDigiMuch = 0.;
+    fPrevBmonFirstDigiTrd  = 0.;
+    fPrevBmonFirstDigiTof  = 0.;
+    fPrevBmonFirstDigiRich = 0.;
+    fPrevBmonFirstDigiPsd  = 0.;
 
-    fvdTimeSelectedT0.clear();
+    fvdTimeSelectedBmon.clear();
 
-    for (Int_t iT0 = 0; iT0 < nrT0Digis; ++iT0) {
+    for (Int_t iBmon = 0; iBmon < nrBmonDigis; ++iBmon) {
 
-      if (iT0 % 1000 == 0) LOG(debug) << "Executing entry " << iT0;
+      if (iBmon % 1000 == 0) LOG(debug) << "Executing entry " << iBmon;
 
-      const CbmTofDigi* T0Digi = nullptr;
-      if (fT0DigiVec) T0Digi = &(fT0DigiVec->at(iT0));
-      else if (fT0DigiArr)
-        T0Digi = dynamic_cast<const CbmTofDigi*>(fT0DigiArr->At(iT0));
-      assert(T0Digi);
+      const CbmTofDigi* BmonDigi = nullptr;
+      if (fBmonDigiVec) BmonDigi = &(fBmonDigiVec->at(iBmon));
+      else if (fBmonDigiArr)
+        BmonDigi = dynamic_cast<const CbmTofDigi*>(fBmonDigiArr->At(iBmon));
+      assert(BmonDigi);
 
       /// Skip pulser events.
-      if (fuMinTotPulserT0 < T0Digi->GetCharge() && T0Digi->GetCharge() < fuMaxTotPulserT0) continue;
+      if (fuMinTotPulserBmon < BmonDigi->GetCharge() && BmonDigi->GetCharge() < fuMaxTotPulserBmon) continue;
 
-      Double_t T0Time = T0Digi->GetTime();
-      Int_t T0Address = T0Digi->GetAddress();
-      fT0Address->Fill(T0Address);
+      Double_t T0Time   = BmonDigi->GetTime();
+      Int_t BmonAddress = BmonDigi->GetAddress();
+      fBmonAddress->Fill(BmonAddress);
 
-      fT0Channel->Fill(T0Digi->GetChannel());
+      fBmonChannel->Fill(BmonDigi->GetChannel());
 
       if (nrStsDigis > 0 && nrStsDigis < 1000000)
-        fPrevT0FirstDigiSts = FillSystemOffsetHistos<CbmStsDigi>(
-          fT0StsDiff, fT0StsDiffCharge, fT0StsDiffEvo, fT0StsDiffEvoLong, fT0StsDpbDiff, T0Time, fStsOffsetRange,
-          fPrevT0FirstDigiSts, kTRUE, kFALSE, kFALSE, kFALSE);
+        fPrevBmonFirstDigiSts = FillSystemOffsetHistos<CbmStsDigi>(
+          fBmonStsDiff, fBmonStsDiffCharge, fBmonStsDiffEvo, fBmonStsDiffEvoLong, fBmonStsDpbDiff, T0Time,
+          fStsOffsetRange, fPrevBmonFirstDigiSts, kTRUE, kFALSE, kFALSE, kFALSE);
       /// Templating to CbmMuchBeamTimeDigi fails with a bad any_cast due to hardcoded Digi type in
       /// CbmDigiManager!
       if (nrMuchDigis > 0 && nrMuchDigis < 1000000)
-        fPrevT0FirstDigiMuch = FillSystemOffsetHistos<CbmMuchBeamTimeDigi>(
-          fT0MuchDiff, fT0MuchDiffCharge, fT0MuchDiffEvo, fT0MuchDiffEvoLong, fT0MuchRocDiff, T0Time, fMuchOffsetRange,
-          fPrevT0FirstDigiMuch, kFALSE, kTRUE, kFALSE, kFALSE);
+        fPrevBmonFirstDigiMuch = FillSystemOffsetHistos<CbmMuchBeamTimeDigi>(
+          fBmonMuchDiff, fBmonMuchDiffCharge, fBmonMuchDiffEvo, fBmonMuchDiffEvoLong, fBmonMuchRocDiff, T0Time,
+          fMuchOffsetRange, fPrevBmonFirstDigiMuch, kFALSE, kTRUE, kFALSE, kFALSE);
       if (nrTrdDigis > 0 && nrTrdDigis < 1000000)
-        fPrevT0FirstDigiTrd = FillSystemOffsetHistos<CbmTrdDigi>(fT0TrdDiff, fT0TrdDiffCharge, fT0TrdDiffEvo,
-                                                                 fT0TrdDiffEvoLong, nullptr, T0Time, fTrdOffsetRange,
-                                                                 fPrevT0FirstDigiTrd, kFALSE, kFALSE, kFALSE, kFALSE);
+        fPrevBmonFirstDigiTrd = FillSystemOffsetHistos<CbmTrdDigi>(
+          fBmonTrdDiff, fBmonTrdDiffCharge, fBmonTrdDiffEvo, fBmonTrdDiffEvoLong, nullptr, T0Time, fTrdOffsetRange,
+          fPrevBmonFirstDigiTrd, kFALSE, kFALSE, kFALSE, kFALSE);
       fuNbTofDigiInSync = 0;
       if (nrTofDigis > 0 && nrTofDigis < 1000000)
-        fPrevT0FirstDigiTof = FillSystemOffsetHistos<CbmTofDigi>(fT0TofDiff, fT0TofDiffCharge, fT0TofDiffEvo,
-                                                                 fT0TofDiffEvoLong, nullptr, T0Time, fTofOffsetRange,
-                                                                 fPrevT0FirstDigiTof, kFALSE, kFALSE, kTRUE, kFALSE);
+        fPrevBmonFirstDigiTof = FillSystemOffsetHistos<CbmTofDigi>(
+          fBmonTofDiff, fBmonTofDiffCharge, fBmonTofDiffEvo, fBmonTofDiffEvoLong, nullptr, T0Time, fTofOffsetRange,
+          fPrevBmonFirstDigiTof, kFALSE, kFALSE, kTRUE, kFALSE);
       if (nrRichDigis > 0 && nrRichDigis < 1000000)
-        fPrevT0FirstDigiRich = FillSystemOffsetHistos<CbmRichDigi>(
-          fT0RichDiff, fT0RichDiffCharge, fT0RichDiffEvo, fT0RichDiffEvoLong, nullptr, T0Time, fRichOffsetRange,
-          fPrevT0FirstDigiRich, kFALSE, kFALSE, kFALSE, kFALSE);
+        fPrevBmonFirstDigiRich = FillSystemOffsetHistos<CbmRichDigi>(
+          fBmonRichDiff, fBmonRichDiffCharge, fBmonRichDiffEvo, fBmonRichDiffEvoLong, nullptr, T0Time, fRichOffsetRange,
+          fPrevBmonFirstDigiRich, kFALSE, kFALSE, kFALSE, kFALSE);
       if (nrPsdDigis > 0 && nrPsdDigis < 1000000)
-        fPrevT0FirstDigiPsd = FillSystemOffsetHistos<CbmPsdDigi>(fT0PsdDiff, fT0PsdDiffCharge, fT0PsdDiffEvo,
-                                                                 fT0PsdDiffEvoLong, nullptr, T0Time, fPsdOffsetRange,
-                                                                 fPrevT0FirstDigiPsd, kFALSE, kFALSE, kFALSE, kTRUE);
+        fPrevBmonFirstDigiPsd = FillSystemOffsetHistos<CbmPsdDigi>(
+          fBmonPsdDiff, fBmonPsdDiffCharge, fBmonPsdDiffEvo, fBmonPsdDiffEvoLong, nullptr, T0Time, fPsdOffsetRange,
+          fPrevBmonFirstDigiPsd, kFALSE, kFALSE, kFALSE, kTRUE);
 
-      if (fuNbTofDigisSel <= fuNbTofDigiInSync) fvdTimeSelectedT0.push_back(T0Time);
+      if (fuNbTofDigisSel <= fuNbTofDigiInSync) fvdTimeSelectedBmon.push_back(T0Time);
     }
 
     /// Re-initialize array references
-    fPrevT0FirstDigiSts  = 0.;
-    fPrevT0FirstDigiMuch = 0.;
-    fPrevT0FirstDigiTrd  = 0.;
-    fPrevT0FirstDigiTof  = 0.;
-    fPrevT0FirstDigiRich = 0.;
-    fPrevT0FirstDigiPsd  = 0.;
-    for (UInt_t uIdxSelT0 = 0; uIdxSelT0 < fvdTimeSelectedT0.size(); ++uIdxSelT0) {
+    fPrevBmonFirstDigiSts  = 0.;
+    fPrevBmonFirstDigiMuch = 0.;
+    fPrevBmonFirstDigiTrd  = 0.;
+    fPrevBmonFirstDigiTof  = 0.;
+    fPrevBmonFirstDigiRich = 0.;
+    fPrevBmonFirstDigiPsd  = 0.;
+    for (UInt_t uIdxSelBmon = 0; uIdxSelBmon < fvdTimeSelectedBmon.size(); ++uIdxSelBmon) {
       if (nrStsDigis > 0 && nrStsDigis < 1000000)
-        fPrevT0FirstDigiSts = FillHistosSelT0<CbmStsDigi>(fSelT0StsDiff, fvdTimeSelectedT0[uIdxSelT0], fStsOffsetRange,
-                                                          fPrevT0FirstDigiSts, kTRUE, kFALSE, kFALSE, kFALSE);
+        fPrevBmonFirstDigiSts =
+          FillHistosSelBmon<CbmStsDigi>(fSelBmonStsDiff, fvdTimeSelectedBmon[uIdxSelBmon], fStsOffsetRange,
+                                        fPrevBmonFirstDigiSts, kTRUE, kFALSE, kFALSE, kFALSE);
       /// Templating to CbmMuchBeamTimeDigi fails with a bad any_cast due to hardcoded Digi type in
       /// CbmDigiManager!
       if (nrMuchDigis > 0 && nrMuchDigis < 1000000)
-        fPrevT0FirstDigiMuch =
-          FillHistosSelT0<CbmMuchBeamTimeDigi>(fSelT0MuchDiff, fvdTimeSelectedT0[uIdxSelT0], fMuchOffsetRange,
-                                               fPrevT0FirstDigiMuch, kFALSE, kTRUE, kFALSE, kFALSE);
+        fPrevBmonFirstDigiMuch =
+          FillHistosSelBmon<CbmMuchBeamTimeDigi>(fSelBmonMuchDiff, fvdTimeSelectedBmon[uIdxSelBmon], fMuchOffsetRange,
+                                                 fPrevBmonFirstDigiMuch, kFALSE, kTRUE, kFALSE, kFALSE);
       if (nrTrdDigis > 0 && nrTrdDigis < 1000000)
-        fPrevT0FirstDigiTrd = FillHistosSelT0<CbmTrdDigi>(fSelT0TrdDiff, fvdTimeSelectedT0[uIdxSelT0], fTrdOffsetRange,
-                                                          fPrevT0FirstDigiTrd, kFALSE, kFALSE, kFALSE, kFALSE);
+        fPrevBmonFirstDigiTrd =
+          FillHistosSelBmon<CbmTrdDigi>(fSelBmonTrdDiff, fvdTimeSelectedBmon[uIdxSelBmon], fTrdOffsetRange,
+                                        fPrevBmonFirstDigiTrd, kFALSE, kFALSE, kFALSE, kFALSE);
       if (nrTofDigis > 0 && nrTofDigis < 1000000)
-        fPrevT0FirstDigiTof = FillHistosSelT0<CbmTofDigi>(fSelT0TofDiff, fvdTimeSelectedT0[uIdxSelT0], fTofOffsetRange,
-                                                          fPrevT0FirstDigiTof, kFALSE, kFALSE, kTRUE, kFALSE);
+        fPrevBmonFirstDigiTof =
+          FillHistosSelBmon<CbmTofDigi>(fSelBmonTofDiff, fvdTimeSelectedBmon[uIdxSelBmon], fTofOffsetRange,
+                                        fPrevBmonFirstDigiTof, kFALSE, kFALSE, kTRUE, kFALSE);
       if (nrRichDigis > 0 && nrRichDigis < 1000000)
-        fPrevT0FirstDigiRich =
-          FillHistosSelT0<CbmRichDigi>(fSelT0RichDiff, fvdTimeSelectedT0[uIdxSelT0], fRichOffsetRange,
-                                       fPrevT0FirstDigiRich, kFALSE, kFALSE, kFALSE, kFALSE);
+        fPrevBmonFirstDigiRich =
+          FillHistosSelBmon<CbmRichDigi>(fSelBmonRichDiff, fvdTimeSelectedBmon[uIdxSelBmon], fRichOffsetRange,
+                                         fPrevBmonFirstDigiRich, kFALSE, kFALSE, kFALSE, kFALSE);
       if (nrPsdDigis > 0 && nrPsdDigis < 1000000)
-        fPrevT0FirstDigiPsd = FillHistosSelT0<CbmPsdDigi>(fSelT0PsdDiff, fvdTimeSelectedT0[uIdxSelT0], fPsdOffsetRange,
-                                                          fPrevT0FirstDigiPsd, kFALSE, kFALSE, kFALSE, kTRUE);
-    }  //  for( UInt_t uIdxSelT0 = 0; uIdxSelT0 < fvdTimeSelectedT0.size(); ++uIdxSelT0 )
+        fPrevBmonFirstDigiPsd =
+          FillHistosSelBmon<CbmPsdDigi>(fSelBmonPsdDiff, fvdTimeSelectedBmon[uIdxSelBmon], fPsdOffsetRange,
+                                        fPrevBmonFirstDigiPsd, kFALSE, kFALSE, kFALSE, kTRUE);
+    }  //  for( UInt_t uIdxSelBmon = 0; uIdxSelBmon < fvdTimeSelectedBmon.size(); ++uIdxSelBmon )
   }
 }
 
@@ -502,7 +510,7 @@ Int_t CbmCheckTiming::FillSystemOffsetHistos(TH1* histo, TH2* histoCharge, TH2*
 */
 
     //    Double_t diffTime = T0Time - digi->GetTime();
-    Double_t diffTime = digi->GetTime() - T0Time;  // Use T0 as reference Time
+    Double_t diffTime = digi->GetTime() - T0Time;  // Use Bmon as reference Time
 
     if (diffTime < -offsetRange) {
       ++iFirstDigiInWin;                // Update Index of first digi in Win to next digi
@@ -518,7 +526,7 @@ Int_t CbmCheckTiming::FillSystemOffsetHistos(TH1* histo, TH2* histoCharge, TH2*
     if (bSts && histoAFCK) {
       UInt_t uDPB = (0 < (digi->GetAddress() & 0x00000400));
       histoAFCK->Fill(uDPB, diffTime);
-      if (uDPB < kuMaxNbStsDpbs) fT0StsDpbDiffEvo[uDPB]->Fill(fNrTs, diffTime);
+      if (uDPB < kuMaxNbStsDpbs) fBmonStsDpbDiffEvo[uDPB]->Fill(fNrTs, diffTime);
     }  // if (bSts && histoAFCK)
 
     /// MUCH DPB mapping
@@ -536,8 +544,8 @@ Int_t CbmCheckTiming::FillSystemOffsetHistos(TH1* histo, TH2* histoCharge, TH2*
       UInt_t afck = muchDigi->GetRocId();
       UInt_t asic = muchDigi->GetNxId();
       histoAFCK->Fill(afck, diffTime);
-      fT0MuchAsicDiff->Fill(asic, diffTime);
-      if (asic < kuMaxNbMuchAsics) fT0MuchAsicDiffEvo[asic]->Fill(fNrTs, diffTime);
+      fBmonMuchAsicDiff->Fill(asic, diffTime);
+      if (asic < kuMaxNbMuchAsics) fBmonMuchAsicDiffEvo[asic]->Fill(fNrTs, diffTime);
     }  // if (bMuch && histoAFCK)
 
     /// TOF coincidence counting
@@ -548,8 +556,8 @@ Int_t CbmCheckTiming::FillSystemOffsetHistos(TH1* histo, TH2* histoCharge, TH2*
 }
 
 template<class Digi>
-Int_t CbmCheckTiming::FillHistosSelT0(TH1* histo, const Double_t T0Time, const Int_t offsetRange, Int_t iStartDigi,
-                                      Bool_t /*bSts*/, Bool_t /*bMuch*/, Bool_t bTof, Bool_t /*bPsd*/)
+Int_t CbmCheckTiming::FillHistosSelBmon(TH1* histo, const Double_t T0Time, const Int_t offsetRange, Int_t iStartDigi,
+                                        Bool_t /*bSts*/, Bool_t /*bMuch*/, Bool_t bTof, Bool_t /*bPsd*/)
 {
   Int_t nrDigis         = fDigiMan->GetNofDigis(Digi::GetSystem());
   Int_t iFirstDigiInWin = iStartDigi;
@@ -580,7 +588,7 @@ Int_t CbmCheckTiming::FillHistosSelT0(TH1* histo, const Double_t T0Time, const I
 */
 
     //    Double_t diffTime = T0Time - digi->GetTime();
-    Double_t diffTime = digi->GetTime() - T0Time;  // Use T0 as reference Time
+    Double_t diffTime = digi->GetTime() - T0Time;  // Use Bmon as reference Time
 
     if (diffTime < -offsetRange) {
       ++iFirstDigiInWin;                // Update Index of first digi in Win to next digi
@@ -595,13 +603,13 @@ Int_t CbmCheckTiming::FillHistosSelT0(TH1* histo, const Double_t T0Time, const I
 
 void CbmCheckTiming::CheckTimeOrder()
 {
-  if (fT0DigiVec || fT0DigiArr) {
-    Int_t nrT0Digis = 0;
-    if (fT0DigiVec) nrT0Digis = fT0DigiVec->size();
-    else if (fT0DigiArr)
-      nrT0Digis = fT0DigiArr->GetEntriesFast();
-    fNrOfT0Digis += nrT0Digis;
-    fNrOfT0Errors += CheckIfSortedT0(fT0T0Diff, fPrevTimeT0, "T0");
+  if (fBmonDigiVec || fBmonDigiArr) {
+    Int_t nrBmonDigis = 0;
+    if (fBmonDigiVec) nrBmonDigis = fBmonDigiVec->size();
+    else if (fBmonDigiArr)
+      nrBmonDigis = fBmonDigiArr->GetEntriesFast();
+    fNrOfBmonDigis += nrBmonDigis;
+    fNrOfBmonErrors += CheckIfSortedBmon(fBmonBmonDiff, fPrevTimeBmon, "Bmon");
   }
   if (fDigiMan->IsPresent(ECbmModuleId::kSts)) {
     Int_t nrStsDigis = fDigiMan->GetNofDigis(ECbmModuleId::kSts);
@@ -668,23 +676,23 @@ Int_t CbmCheckTiming::CheckIfSorted(TH1* histo, Double_t& prevTime, TString dete
   return nrOfErrors;
 }
 
-Int_t CbmCheckTiming::CheckIfSortedT0(TH1* histo, Double_t& prevTime, TString detector)
+Int_t CbmCheckTiming::CheckIfSortedBmon(TH1* histo, Double_t& prevTime, TString detector)
 {
 
-  // Extra implementation since T0 is not included in CbmDigiManager
+  // Extra implementation since Bmon is not included in CbmDigiManager
   Int_t nrOfErrors = 0;
 
   Int_t nrDigis = 0;
-  if (fT0DigiVec) nrDigis = fT0DigiVec->size();
-  else if (fT0DigiArr)
-    nrDigis = fT0DigiArr->GetEntriesFast();
+  if (fBmonDigiVec) nrDigis = fBmonDigiVec->size();
+  else if (fBmonDigiArr)
+    nrDigis = fBmonDigiArr->GetEntriesFast();
 
   for (Int_t i = 0; i < nrDigis; ++i) {
 
     const CbmTofDigi* digi = nullptr;
-    if (fT0DigiVec) digi = &(fT0DigiVec->at(i));
-    else if (fT0DigiArr)
-      digi = dynamic_cast<const CbmTofDigi*>(fT0DigiArr->At(i));
+    if (fBmonDigiVec) digi = &(fBmonDigiVec->at(i));
+    else if (fBmonDigiArr)
+      digi = dynamic_cast<const CbmTofDigi*>(fBmonDigiArr->At(i));
     if (!digi) {
       nrOfErrors++;
       continue;
@@ -712,8 +720,8 @@ Int_t CbmCheckTiming::CheckIfSortedT0(TH1* histo, Double_t& prevTime, TString de
 void CbmCheckTiming::Finish()
 {
   if (fCheckTimeOrdering) {
-    LOG(info) << "Total number of T0 out of order digis: " << fNrOfT0Errors;
-    LOG(info) << "Total number of T0 digis: " << fNrOfT0Digis;
+    LOG(info) << "Total number of Bmon out of order digis: " << fNrOfBmonErrors;
+    LOG(info) << "Total number of Bmon digis: " << fNrOfBmonDigis;
     LOG(info) << "Total number of Sts out of order digis: " << fNrOfStsErrors;
     LOG(info) << "Total number of Sts digis: " << fNrOfStsDigis;
     LOG(info) << "Total number of Much out of order digis: " << fNrOfMuchErrors;
@@ -736,65 +744,65 @@ void CbmCheckTiming::Finish()
 
 void CbmCheckTiming::FitPeaks()
 {
-  // Peak positions for differences wrt T0
-  trd_peak_pos  = fT0TrdDiff->GetMaximumBin() * fT0TrdDiff->GetBinWidth(1) + fT0TrdDiff->GetXaxis()->GetXmin();
-  sts_peak_pos  = fT0StsDiff->GetMaximumBin() * fT0StsDiff->GetBinWidth(1) + fT0StsDiff->GetXaxis()->GetXmin();
-  much_peak_pos = fT0MuchDiff->GetMaximumBin() * fT0MuchDiff->GetBinWidth(1) + fT0MuchDiff->GetXaxis()->GetXmin();
-  tof_peak_pos  = fT0TofDiff->GetMaximumBin() * fT0TofDiff->GetBinWidth(1) + fT0TofDiff->GetXaxis()->GetXmin();
-  rich_peak_pos = fT0RichDiff->GetMaximumBin() * fT0RichDiff->GetBinWidth(1) + fT0RichDiff->GetXaxis()->GetXmin();
-  psd_peak_pos  = fT0PsdDiff->GetMaximumBin() * fT0PsdDiff->GetBinWidth(1) + fT0PsdDiff->GetXaxis()->GetXmin();
-
-  // Peak positions for differences wrt T0 if coincidence with TOF
+  // Peak positions for differences wrt Bmon
+  trd_peak_pos  = fBmonTrdDiff->GetMaximumBin() * fBmonTrdDiff->GetBinWidth(1) + fBmonTrdDiff->GetXaxis()->GetXmin();
+  sts_peak_pos  = fBmonStsDiff->GetMaximumBin() * fBmonStsDiff->GetBinWidth(1) + fBmonStsDiff->GetXaxis()->GetXmin();
+  much_peak_pos = fBmonMuchDiff->GetMaximumBin() * fBmonMuchDiff->GetBinWidth(1) + fBmonMuchDiff->GetXaxis()->GetXmin();
+  tof_peak_pos  = fBmonTofDiff->GetMaximumBin() * fBmonTofDiff->GetBinWidth(1) + fBmonTofDiff->GetXaxis()->GetXmin();
+  rich_peak_pos = fBmonRichDiff->GetMaximumBin() * fBmonRichDiff->GetBinWidth(1) + fBmonRichDiff->GetXaxis()->GetXmin();
+  psd_peak_pos  = fBmonPsdDiff->GetMaximumBin() * fBmonPsdDiff->GetBinWidth(1) + fBmonPsdDiff->GetXaxis()->GetXmin();
+
+  // Peak positions for differences wrt Bmon if coincidence with TOF
   trd_coin_peak_pos =
-    fSelT0TrdDiff->GetMaximumBin() * fSelT0TrdDiff->GetBinWidth(1) + fSelT0TrdDiff->GetXaxis()->GetXmin();
+    fSelBmonTrdDiff->GetMaximumBin() * fSelBmonTrdDiff->GetBinWidth(1) + fSelBmonTrdDiff->GetXaxis()->GetXmin();
   sts_coin_peak_pos =
-    fSelT0StsDiff->GetMaximumBin() * fSelT0StsDiff->GetBinWidth(1) + fSelT0StsDiff->GetXaxis()->GetXmin();
+    fSelBmonStsDiff->GetMaximumBin() * fSelBmonStsDiff->GetBinWidth(1) + fSelBmonStsDiff->GetXaxis()->GetXmin();
   much_coin_peak_pos =
-    fSelT0MuchDiff->GetMaximumBin() * fSelT0MuchDiff->GetBinWidth(1) + fSelT0MuchDiff->GetXaxis()->GetXmin();
-  //tof_coin_peak_pos = fT0TofDiff->GetMaximumBin()*fT0TofDiff->GetBinWidth(1)+fT0TofDiff->GetXaxis()->GetXmin();
+    fSelBmonMuchDiff->GetMaximumBin() * fSelBmonMuchDiff->GetBinWidth(1) + fSelBmonMuchDiff->GetXaxis()->GetXmin();
+  //tof_coin_peak_pos = fBmonTofDiff->GetMaximumBin()*fBmonTofDiff->GetBinWidth(1)+fBmonTofDiff->GetXaxis()->GetXmin();
   rich_coin_peak_pos =
-    fSelT0RichDiff->GetMaximumBin() * fSelT0RichDiff->GetBinWidth(1) + fSelT0RichDiff->GetXaxis()->GetXmin();
+    fSelBmonRichDiff->GetMaximumBin() * fSelBmonRichDiff->GetBinWidth(1) + fSelBmonRichDiff->GetXaxis()->GetXmin();
   psd_coin_peak_pos =
-    fSelT0PsdDiff->GetMaximumBin() * fSelT0PsdDiff->GetBinWidth(1) + fSelT0PsdDiff->GetXaxis()->GetXmin();
-
-  LOG(info) << "STS entries = " << fT0StsDiff->GetEntries();
-  LOG(info) << "STS-T0 entries if T0 in coincidence with TOF = " << fSelT0StsDiff->GetEntries();
-  LOG(info) << "MUCH entries = " << fT0MuchDiff->GetEntries();
-  LOG(info) << "MUCH-T0 entries if T0 in coincidence with TOF = " << fSelT0MuchDiff->GetEntries();
-  LOG(info) << "TRD entries = " << fT0TrdDiff->GetEntries();
-  LOG(info) << "TRD-T0 entries if T0 in coincidence with TOF = " << fSelT0TrdDiff->GetEntries();
-  LOG(info) << "TOF entries = " << fT0TofDiff->GetEntries();
-  LOG(info) << "RICH entries = " << fT0RichDiff->GetEntries();
-  LOG(info) << "RICH-T0 entries if T0 in coincidence with TOF = " << fSelT0RichDiff->GetEntries();
-  LOG(info) << "PSD entries = " << fT0PsdDiff->GetEntries();
-  LOG(info) << "PSD-T0 entries if T0 in coincidence with TOF = " << fSelT0PsdDiff->GetEntries();
+    fSelBmonPsdDiff->GetMaximumBin() * fSelBmonPsdDiff->GetBinWidth(1) + fSelBmonPsdDiff->GetXaxis()->GetXmin();
+
+  LOG(info) << "STS entries = " << fBmonStsDiff->GetEntries();
+  LOG(info) << "STS-Bmon entries if Bmon in coincidence with TOF = " << fSelBmonStsDiff->GetEntries();
+  LOG(info) << "MUCH entries = " << fBmonMuchDiff->GetEntries();
+  LOG(info) << "MUCH-Bmon entries if Bmon in coincidence with TOF = " << fSelBmonMuchDiff->GetEntries();
+  LOG(info) << "TRD entries = " << fBmonTrdDiff->GetEntries();
+  LOG(info) << "TRD-Bmon entries if Bmon in coincidence with TOF = " << fSelBmonTrdDiff->GetEntries();
+  LOG(info) << "TOF entries = " << fBmonTofDiff->GetEntries();
+  LOG(info) << "RICH entries = " << fBmonRichDiff->GetEntries();
+  LOG(info) << "RICH-Bmon entries if Bmon in coincidence with TOF = " << fSelBmonRichDiff->GetEntries();
+  LOG(info) << "PSD entries = " << fBmonPsdDiff->GetEntries();
+  LOG(info) << "PSD-Bmon entries if Bmon in coincidence with TOF = " << fSelBmonPsdDiff->GetEntries();
   LOG(info) << "STS peak position [ns] = " << sts_peak_pos;
-  LOG(info) << "STS peak position [ns] if T0 in coincidence with TOF = " << sts_coin_peak_pos;
+  LOG(info) << "STS peak position [ns] if Bmon in coincidence with TOF = " << sts_coin_peak_pos;
   LOG(info) << "MUCH peak position [ns] = " << much_peak_pos;
-  LOG(info) << "MUCH peak position [ns] if T0 in coincidence with TOF = " << much_coin_peak_pos;
+  LOG(info) << "MUCH peak position [ns] if Bmon in coincidence with TOF = " << much_coin_peak_pos;
   LOG(info) << "TRD peak position [ns] = " << trd_peak_pos;
-  LOG(info) << "TRD peak position [ns] if T0 in coincidence with TOF = " << trd_coin_peak_pos;
+  LOG(info) << "TRD peak position [ns] if Bmon in coincidence with TOF = " << trd_coin_peak_pos;
   LOG(info) << "TOF peak position [ns] = " << tof_peak_pos;
   LOG(info) << "RICH peak position [ns] = " << rich_peak_pos;
-  LOG(info) << "RICH peak position [ns] if T0 in coincidence with TOF = " << rich_coin_peak_pos;
+  LOG(info) << "RICH peak position [ns] if Bmon in coincidence with TOF = " << rich_coin_peak_pos;
   LOG(info) << "PSD peak position [ns] = " << psd_peak_pos;
-  LOG(info) << "PSD peak position [ns] if T0 in coincidence with TOF = " << psd_coin_peak_pos;
+  LOG(info) << "PSD peak position [ns] if Bmon in coincidence with TOF = " << psd_coin_peak_pos;
 
   //Average height of bins...
-  trd_average  = fT0TrdDiff->Integral() / (fT0TrdDiff->GetNbinsX());
-  sts_average  = fT0StsDiff->Integral() / (fT0StsDiff->GetNbinsX());
-  much_average = fT0MuchDiff->Integral() / (fT0MuchDiff->GetNbinsX());
-  tof_average  = fT0TofDiff->Integral() / (fT0TofDiff->GetNbinsX());
-  rich_average = fT0RichDiff->Integral() / (fT0RichDiff->GetNbinsX());
-  psd_average  = fT0PsdDiff->Integral() / (fT0PsdDiff->GetNbinsX());
+  trd_average  = fBmonTrdDiff->Integral() / (fBmonTrdDiff->GetNbinsX());
+  sts_average  = fBmonStsDiff->Integral() / (fBmonStsDiff->GetNbinsX());
+  much_average = fBmonMuchDiff->Integral() / (fBmonMuchDiff->GetNbinsX());
+  tof_average  = fBmonTofDiff->Integral() / (fBmonTofDiff->GetNbinsX());
+  rich_average = fBmonRichDiff->Integral() / (fBmonRichDiff->GetNbinsX());
+  psd_average  = fBmonPsdDiff->Integral() / (fBmonPsdDiff->GetNbinsX());
 
   //TRD
   if (trd_average > 0) {
     TF1* gs_trd =
       new TF1("gs_trd", "gaus(0)+pol0(3)", trd_peak_pos - 2 * fTrdPeakWidthNs, trd_peak_pos + 2 * fTrdPeakWidthNs);
     gs_trd->SetParameters(0.7 * trd_average, trd_peak_pos, fTrdPeakWidthNs, trd_average);
-    fT0TrdDiff->Fit("gs_trd", "R");
-    TF1* fitresult_trd = fT0TrdDiff->GetFunction("gs_trd");
+    fBmonTrdDiff->Fit("gs_trd", "R");
+    TF1* fitresult_trd = fBmonTrdDiff->GetFunction("gs_trd");
     LOG(info) << "TRD parameters from Gauss fit = " << fitresult_trd->GetParameter(0) << ",  "
               << fitresult_trd->GetParameter(1) << ",  " << fitresult_trd->GetParameter(2);
     LOG(info) << "TRD signal/background (p0/p3) = "
@@ -806,8 +814,8 @@ void CbmCheckTiming::FitPeaks()
     TF1* gs_sts =
       new TF1("gs_sts", "gaus(0)+pol0(3)", sts_peak_pos - 2 * fStsPeakWidthNs, sts_peak_pos + 2 * fStsPeakWidthNs);
     gs_sts->SetParameters(sts_average, sts_peak_pos, fStsPeakWidthNs, sts_average);
-    fT0StsDiff->Fit("gs_sts", "R");
-    TF1* fitresult_sts = fT0StsDiff->GetFunction("gs_sts");
+    fBmonStsDiff->Fit("gs_sts", "R");
+    TF1* fitresult_sts = fBmonStsDiff->GetFunction("gs_sts");
     LOG(info) << "STS parameters from Gauss fit = " << fitresult_sts->GetParameter(0) << ",  "
               << fitresult_sts->GetParameter(1) << ",  " << fitresult_sts->GetParameter(2);
     LOG(info) << "STS signal/background (p0/p3) = "
@@ -819,8 +827,8 @@ void CbmCheckTiming::FitPeaks()
     TF1* gs_much =
       new TF1("gs_much", "gaus(0)+pol0(3)", much_peak_pos - 2 * fMuchPeakWidthNs, much_peak_pos + 2 * fMuchPeakWidthNs);
     gs_much->SetParameters(much_average, much_peak_pos, fMuchPeakWidthNs, much_average);
-    fT0MuchDiff->Fit("gs_much", "R");
-    TF1* fitresult_much = fT0MuchDiff->GetFunction("gs_much");
+    fBmonMuchDiff->Fit("gs_much", "R");
+    TF1* fitresult_much = fBmonMuchDiff->GetFunction("gs_much");
     LOG(info) << "MUCH parameters from Gauss fit = " << fitresult_much->GetParameter(0) << ",  "
               << fitresult_much->GetParameter(1) << ",  " << fitresult_much->GetParameter(2);
     LOG(info) << "MUCH signal/background (p0/p3) = "
@@ -832,8 +840,8 @@ void CbmCheckTiming::FitPeaks()
     TF1* gs_tof =
       new TF1("gs_tof", "gaus(0)+pol0(3)", tof_peak_pos - 2 * fTofPeakWidthNs, tof_peak_pos + 2 * fTofPeakWidthNs);
     gs_tof->SetParameters(tof_average, tof_peak_pos, fTofPeakWidthNs, tof_average);
-    fT0TofDiff->Fit("gs_tof", "R");
-    TF1* fitresult_tof = fT0TofDiff->GetFunction("gs_tof");
+    fBmonTofDiff->Fit("gs_tof", "R");
+    TF1* fitresult_tof = fBmonTofDiff->GetFunction("gs_tof");
     LOG(info) << "TOF parameters from Gauss fit = " << fitresult_tof->GetParameter(0) << ",  "
               << fitresult_tof->GetParameter(1) << ",  " << fitresult_tof->GetParameter(2);
     LOG(info) << "TOF signal/background (p0/p3) = "
@@ -845,8 +853,8 @@ void CbmCheckTiming::FitPeaks()
     TF1* gs_rich =
       new TF1("gs_rich", "gaus(0)+pol0(3)", rich_peak_pos - 2 * fRichPeakWidthNs, rich_peak_pos + 2 * fRichPeakWidthNs);
     gs_rich->SetParameters(0.5 * rich_average, rich_peak_pos, fRichPeakWidthNs, rich_average);
-    fT0RichDiff->Fit("gs_rich", "R");
-    TF1* fitresult_rich = fT0RichDiff->GetFunction("gs_rich");
+    fBmonRichDiff->Fit("gs_rich", "R");
+    TF1* fitresult_rich = fBmonRichDiff->GetFunction("gs_rich");
     LOG(info) << "RICH parameters from Gauss fit = " << fitresult_rich->GetParameter(0) << ",  "
               << fitresult_rich->GetParameter(1) << ",  " << fitresult_rich->GetParameter(2);
     LOG(info) << "RICH signal/background (p0/p3) = "
@@ -858,8 +866,8 @@ void CbmCheckTiming::FitPeaks()
     TF1* gs_psd =
       new TF1("gs_psd", "gaus(0)+pol0(3)", psd_peak_pos - 2 * fPsdPeakWidthNs, psd_peak_pos + 2 * fPsdPeakWidthNs);
     gs_psd->SetParameters(psd_average, psd_peak_pos, fPsdPeakWidthNs, psd_average);
-    fT0PsdDiff->Fit("gs_psd", "R");
-    TF1* fitresult_psd = fT0PsdDiff->GetFunction("gs_psd");
+    fBmonPsdDiff->Fit("gs_psd", "R");
+    TF1* fitresult_psd = fBmonPsdDiff->GetFunction("gs_psd");
     LOG(info) << "PSD parameters from Gauss fit = " << fitresult_psd->GetParameter(0) << ",  "
               << fitresult_psd->GetParameter(1) << ",  " << fitresult_psd->GetParameter(2);
     LOG(info) << "PSD signal/background (p0/p3) = "
@@ -872,35 +880,35 @@ void CbmCheckTiming::WriteHistos()
   TFile* old     = gFile;
   TFile* outfile = TFile::Open(fOutFileName, "RECREATE");
 
-  fT0StsDiff->Write();
-  fT0MuchDiff->Write();
-  fT0TrdDiff->Write();
-  fT0TofDiff->Write();
-  fT0RichDiff->Write();
-  fT0PsdDiff->Write();
-
-  fT0StsDiffCharge->Write();
-  fT0MuchDiffCharge->Write();
-  fT0TrdDiffCharge->Write();
-  fT0TofDiffCharge->Write();
-  fT0RichDiffCharge->Write();
-  fT0PsdDiffCharge->Write();
-
-  fT0StsDiffEvo->Write();
-  fT0MuchDiffEvo->Write();
-  fT0TrdDiffEvo->Write();
-  fT0TofDiffEvo->Write();
-  fT0RichDiffEvo->Write();
-  fT0PsdDiffEvo->Write();
-
-  fT0StsDiffEvoLong->Write();
-  fT0MuchDiffEvoLong->Write();
-  fT0TrdDiffEvoLong->Write();
-  fT0TofDiffEvoLong->Write();
-  fT0RichDiffEvoLong->Write();
-  fT0PsdDiffEvoLong->Write();
-
-  fT0T0Diff->Write();
+  fBmonStsDiff->Write();
+  fBmonMuchDiff->Write();
+  fBmonTrdDiff->Write();
+  fBmonTofDiff->Write();
+  fBmonRichDiff->Write();
+  fBmonPsdDiff->Write();
+
+  fBmonStsDiffCharge->Write();
+  fBmonMuchDiffCharge->Write();
+  fBmonTrdDiffCharge->Write();
+  fBmonTofDiffCharge->Write();
+  fBmonRichDiffCharge->Write();
+  fBmonPsdDiffCharge->Write();
+
+  fBmonStsDiffEvo->Write();
+  fBmonMuchDiffEvo->Write();
+  fBmonTrdDiffEvo->Write();
+  fBmonTofDiffEvo->Write();
+  fBmonRichDiffEvo->Write();
+  fBmonPsdDiffEvo->Write();
+
+  fBmonStsDiffEvoLong->Write();
+  fBmonMuchDiffEvoLong->Write();
+  fBmonTrdDiffEvoLong->Write();
+  fBmonTofDiffEvoLong->Write();
+  fBmonRichDiffEvoLong->Write();
+  fBmonPsdDiffEvoLong->Write();
+
+  fBmonBmonDiff->Write();
   fStsStsDiff->Write();
   fMuchMuchDiff->Write();
   fTrdTrdDiff->Write();
@@ -908,26 +916,26 @@ void CbmCheckTiming::WriteHistos()
   fRichRichDiff->Write();
   fPsdPsdDiff->Write();
 
-  fT0Address->Write();
-  fT0Channel->Write();
+  fBmonAddress->Write();
+  fBmonChannel->Write();
 
-  fT0StsDpbDiff->Write();
+  fBmonStsDpbDiff->Write();
   for (UInt_t uStsDpb = 0; uStsDpb < kuMaxNbStsDpbs; ++uStsDpb) {
-    fT0StsDpbDiffEvo[uStsDpb]->Write();
+    fBmonStsDpbDiffEvo[uStsDpb]->Write();
     fStsDpbCntsEvo[uStsDpb]->Write();
   }
 
-  fT0MuchRocDiff->Write();
-  fT0MuchAsicDiff->Write();
+  fBmonMuchRocDiff->Write();
+  fBmonMuchAsicDiff->Write();
   for (UInt_t uMuchAsic = 0; uMuchAsic < kuMaxNbMuchAsics; ++uMuchAsic)
-    fT0MuchAsicDiffEvo[uMuchAsic]->Write();
-
-  fSelT0StsDiff->Write();
-  fSelT0MuchDiff->Write();
-  fSelT0TrdDiff->Write();
-  fSelT0TofDiff->Write();
-  fSelT0RichDiff->Write();
-  fSelT0PsdDiff->Write();
+    fBmonMuchAsicDiffEvo[uMuchAsic]->Write();
+
+  fSelBmonStsDiff->Write();
+  fSelBmonMuchDiff->Write();
+  fSelBmonTrdDiff->Write();
+  fSelBmonTofDiff->Write();
+  fSelBmonRichDiff->Write();
+  fSelBmonPsdDiff->Write();
 
   outfile->Close();
   delete outfile;
diff --git a/fles/mcbm2018/tasks/CbmCheckTiming.h b/fles/mcbm2018/tasks/CbmCheckTiming.h
index 391b7b446e4654dbe68272d1b7e3337b2d7b491b..b97598600703c867bfa617fa94a284da2cf65656 100644
--- a/fles/mcbm2018/tasks/CbmCheckTiming.h
+++ b/fles/mcbm2018/tasks/CbmCheckTiming.h
@@ -78,10 +78,10 @@ public:
   void SetRichPeakWidthNs(Double_t val = 40.) { fRichPeakWidthNs = val; }
   void SetPsdPeakWidthNs(Double_t val = 20.) { fPsdPeakWidthNs = val; }
 
-  inline void SetT0PulserTotLimits(UInt_t uMin, UInt_t uMax)
+  inline void SetBmonPulserTotLimits(UInt_t uMin, UInt_t uMax)
   {
-    fuMinTotPulserT0 = uMin;
-    fuMaxTotPulserT0 = uMax;
+    fuMinTotPulserBmon = uMin;
+    fuMaxTotPulserBmon = uMax;
   }
   inline void SetTofPulserTotLimits(UInt_t uMin, UInt_t uMax)
   {
@@ -95,7 +95,7 @@ private:
   void CheckTimeOrder();
   template<class Digi>
   Int_t CheckIfSorted(TH1*, Double_t&, TString);
-  Int_t CheckIfSortedT0(TH1*, Double_t&, TString);
+  Int_t CheckIfSortedBmon(TH1*, Double_t&, TString);
 
   void CheckInterSystemOffset();
 
@@ -112,8 +112,8 @@ private:
                                Bool_t bMuch = kFALSE, Bool_t bTof = kFALSE, Bool_t bPsd = kFALSE);
 
   template<class Digi>
-  Int_t FillHistosSelT0(TH1* histo, const Double_t T0Time, const Int_t offsetRange, Int_t iStartDigi,
-                        Bool_t bSts = kFALSE, Bool_t bMuch = kFALSE, Bool_t bTof = kFALSE, Bool_t bPsd = kFALSE);
+  Int_t FillHistosSelBmon(TH1* histo, const Double_t T0Time, const Int_t offsetRange, Int_t iStartDigi,
+                          Bool_t bSts = kFALSE, Bool_t bMuch = kFALSE, Bool_t bTof = kFALSE, Bool_t bPsd = kFALSE);
 
   Int_t CalcNrBins(Int_t);
   void CreateHistos();
@@ -123,9 +123,9 @@ private:
   /** Input array from previous already existing data level **/
   CbmDigiManager* fDigiMan = nullptr;  //!
 
-  /** T0 is not included in CbmDigiManager, so add it explicitly here **/
-  const std::vector<CbmTofDigi>* fT0DigiVec = nullptr;  //!
-  TClonesArray* fT0DigiArr                  = nullptr;  //!
+  /** Bmon is not included in CbmDigiManager, so add it explicitly here **/
+  const std::vector<CbmTofDigi>* fBmonDigiVec = nullptr;  //!
+  TClonesArray* fBmonDigiArr                  = nullptr;  //!
 
   /** Peak position of time difference histograms **/
   Double_t trd_peak_pos;
@@ -159,7 +159,7 @@ private:
   Double_t psd_width0_ns;
 
   /// Variables to store the previous digi time
-  Double_t fPrevTimeT0   = 0.;
+  Double_t fPrevTimeBmon = 0.;
   Double_t fPrevTimeSts  = 0.;
   Double_t fPrevTimeMuch = 0.;
   Double_t fPrevTimeTrd  = 0.;
@@ -167,26 +167,26 @@ private:
   Double_t fPrevTimeRich = 0.;
   Double_t fPrevTimePsd  = 0.;
 
-  /// Variables to store the first digi fitting the previous T0 hits
+  /// Variables to store the first digi fitting the previous Bmon hits
   /// => Time-order means the time window for following one can only be in a later digi
-  Int_t fPrevT0FirstDigiSts  = 0;
-  Int_t fPrevT0FirstDigiMuch = 0;
-  Int_t fPrevT0FirstDigiTrd  = 0;
-  Int_t fPrevT0FirstDigiTof  = 0;
-  Int_t fPrevT0FirstDigiRich = 0;
-  Int_t fPrevT0FirstDigiPsd  = 0;
+  Int_t fPrevBmonFirstDigiSts  = 0;
+  Int_t fPrevBmonFirstDigiMuch = 0;
+  Int_t fPrevBmonFirstDigiTrd  = 0;
+  Int_t fPrevBmonFirstDigiTof  = 0;
+  Int_t fPrevBmonFirstDigiRich = 0;
+  Int_t fPrevBmonFirstDigiPsd  = 0;
 
   /// User settings: Data correction parameters
-  UInt_t fuMinTotPulserT0  = 90;
-  UInt_t fuMaxTotPulserT0  = 100;
+  UInt_t fuMinTotPulserBmon = 90;
+  UInt_t fuMaxTotPulserBmon = 100;
   UInt_t fuMinTotPulserTof = 92;
   UInt_t fuMaxTotPulserTof = 96;
 
   //
   Int_t fNrTs = 0;
 
-  Int_t fNrOfT0Errors   = 0;
-  Int_t fNrOfT0Digis    = 0;
+  Int_t fNrOfBmonErrors = 0;
+  Int_t fNrOfBmonDigis  = 0;
   Int_t fNrOfStsErrors  = 0;
   Int_t fNrOfStsDigis   = 0;
   Int_t fNrOfMuchErrors = 0;
@@ -221,35 +221,35 @@ private:
 
   Int_t fBinWidth = 1;
 
-  TH1* fT0StsDiff  = nullptr;
-  TH1* fT0MuchDiff = nullptr;
-  TH1* fT0TrdDiff  = nullptr;
-  TH1* fT0TofDiff  = nullptr;
-  TH1* fT0RichDiff = nullptr;
-  TH1* fT0PsdDiff  = nullptr;
-
-  TH2* fT0StsDiffCharge  = nullptr;
-  TH2* fT0MuchDiffCharge = nullptr;
-  TH2* fT0TrdDiffCharge  = nullptr;
-  TH2* fT0TofDiffCharge  = nullptr;
-  TH2* fT0RichDiffCharge = nullptr;
-  TH2* fT0PsdDiffCharge  = nullptr;
-
-  TH2* fT0StsDiffEvo  = nullptr;
-  TH2* fT0MuchDiffEvo = nullptr;
-  TH2* fT0TrdDiffEvo  = nullptr;
-  TH2* fT0TofDiffEvo  = nullptr;
-  TH2* fT0RichDiffEvo = nullptr;
-  TH2* fT0PsdDiffEvo  = nullptr;
-
-  TH2* fT0StsDiffEvoLong  = nullptr;
-  TH2* fT0MuchDiffEvoLong = nullptr;
-  TH2* fT0TrdDiffEvoLong  = nullptr;
-  TH2* fT0TofDiffEvoLong  = nullptr;
-  TH2* fT0RichDiffEvoLong = nullptr;
-  TH2* fT0PsdDiffEvoLong  = nullptr;
-
-  TH1* fT0T0Diff     = nullptr;
+  TH1* fBmonStsDiff  = nullptr;
+  TH1* fBmonMuchDiff = nullptr;
+  TH1* fBmonTrdDiff  = nullptr;
+  TH1* fBmonTofDiff  = nullptr;
+  TH1* fBmonRichDiff = nullptr;
+  TH1* fBmonPsdDiff  = nullptr;
+
+  TH2* fBmonStsDiffCharge  = nullptr;
+  TH2* fBmonMuchDiffCharge = nullptr;
+  TH2* fBmonTrdDiffCharge  = nullptr;
+  TH2* fBmonTofDiffCharge  = nullptr;
+  TH2* fBmonRichDiffCharge = nullptr;
+  TH2* fBmonPsdDiffCharge  = nullptr;
+
+  TH2* fBmonStsDiffEvo  = nullptr;
+  TH2* fBmonMuchDiffEvo = nullptr;
+  TH2* fBmonTrdDiffEvo  = nullptr;
+  TH2* fBmonTofDiffEvo  = nullptr;
+  TH2* fBmonRichDiffEvo = nullptr;
+  TH2* fBmonPsdDiffEvo  = nullptr;
+
+  TH2* fBmonStsDiffEvoLong  = nullptr;
+  TH2* fBmonMuchDiffEvoLong = nullptr;
+  TH2* fBmonTrdDiffEvoLong  = nullptr;
+  TH2* fBmonTofDiffEvoLong  = nullptr;
+  TH2* fBmonRichDiffEvoLong = nullptr;
+  TH2* fBmonPsdDiffEvoLong  = nullptr;
+
+  TH1* fBmonBmonDiff = nullptr;
   TH1* fStsStsDiff   = nullptr;
   TH1* fMuchMuchDiff = nullptr;
   TH1* fTrdTrdDiff   = nullptr;
@@ -257,29 +257,29 @@ private:
   TH1* fRichRichDiff = nullptr;
   TH1* fPsdPsdDiff   = nullptr;
 
-  TH1* fT0Address = nullptr;
-  TH1* fT0Channel = nullptr;
+  TH1* fBmonAddress = nullptr;
+  TH1* fBmonChannel = nullptr;
 
-  TH2* fT0StsDpbDiff                 = nullptr;
+  TH2* fBmonStsDpbDiff               = nullptr;
   static const UInt_t kuMaxNbStsDpbs = 2;
-  TH2* fT0StsDpbDiffEvo[kuMaxNbStsDpbs];
+  TH2* fBmonStsDpbDiffEvo[kuMaxNbStsDpbs];
   TH1* fStsDpbCntsEvo[kuMaxNbStsDpbs];
 
   static const UInt_t kuMaxNbMuchDpbs  = 6;
-  TH2* fT0MuchRocDiff                  = nullptr;
+  TH2* fBmonMuchRocDiff                = nullptr;
   static const UInt_t kuMaxNbMuchAsics = 36;
-  TH2* fT0MuchAsicDiff                 = nullptr;
-  TH2* fT0MuchAsicDiffEvo[kuMaxNbMuchAsics];
+  TH2* fBmonMuchAsicDiff               = nullptr;
+  TH2* fBmonMuchAsicDiffEvo[kuMaxNbMuchAsics];
 
   UInt_t fuNbTofDigisSel   = 6;
   UInt_t fuNbTofDigiInSync = 0;
-  std::vector<Double_t> fvdTimeSelectedT0;  //!
-  TH1* fSelT0StsDiff  = nullptr;
-  TH1* fSelT0MuchDiff = nullptr;
-  TH1* fSelT0TrdDiff  = nullptr;
-  TH1* fSelT0TofDiff  = nullptr;
-  TH1* fSelT0RichDiff = nullptr;
-  TH1* fSelT0PsdDiff  = nullptr;
+  std::vector<Double_t> fvdTimeSelectedBmon;  //!
+  TH1* fSelBmonStsDiff  = nullptr;
+  TH1* fSelBmonMuchDiff = nullptr;
+  TH1* fSelBmonTrdDiff  = nullptr;
+  TH1* fSelBmonTofDiff  = nullptr;
+  TH1* fSelBmonRichDiff = nullptr;
+  TH1* fSelBmonPsdDiff  = nullptr;
 
   TString fOutFileName {"test.root"};
 
diff --git a/fles/mcbm2018/tasks/CbmMcbm2018EventBuilder.cxx b/fles/mcbm2018/tasks/CbmMcbm2018EventBuilder.cxx
index c5f6c082eeba534a43893120f79d195d8e8fa45e..e1ef9e15176cafbf62368af1d1141c0d8cb6ecda 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2018EventBuilder.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2018EventBuilder.cxx
@@ -61,11 +61,11 @@ InitStatus CbmMcbm2018EventBuilder::Init()
   if (kFALSE == fbUseBaseMuchDigi) fDigiMan->UseMuchBeamTimeDigi();
   fDigiMan->Init();
 
-  // T0 is not included in DigiManager
-  fT0DigiVec = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("T0Digi");
-  if (!fT0DigiVec) {
-    fT0DigiArr = static_cast<TClonesArray*>(ioman->GetObject("T0Digi"));
-    if (!fT0DigiArr) { LOG(info) << "No T0 digi input."; }
+  // Bmon is not included in DigiManager
+  fBmonDigiVec = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("BmonDigi");
+  if (!fBmonDigiVec) {
+    fBmonDigiArr = static_cast<TClonesArray*>(ioman->GetObject("BmonDigi"));
+    if (!fBmonDigiArr) { LOG(info) << "No Bmon digi input."; }
   }
 
   if (!fDigiMan->IsPresent(ECbmModuleId::kSts)) { LOG(info) << "No STS digi input."; }
@@ -99,10 +99,10 @@ InitStatus CbmMcbm2018EventBuilder::Init()
                                   "time [s]; Nb Digis []; Events []",
                                   600, 0, 600, 1000, 0, 10000);
 
-    fhNbDigiPerEvtTimeT0   = new TH2I("hNbDigiPerEvtTimeT0",
-                                    "nb of T0   digis per event vs seed time of the events; Seed "
-                                    "time [s]; Nb Digis []; Events []",
-                                    600, 0, 600, 4000, 0, 4000);
+    fhNbDigiPerEvtTimeBmon = new TH2I("hNbDigiPerEvtTimeBmon",
+                                      "nb of Bmon   digis per event vs seed time of the events; Seed "
+                                      "time [s]; Nb Digis []; Events []",
+                                      600, 0, 600, 4000, 0, 4000);
     fhNbDigiPerEvtTimeSts  = new TH2I("hNbDigiPerEvtTimeSts",
                                      "nb of STS  digis per event vs seed time of the events; Seed "
                                      "time [s]; Nb Digis []; Events []",
@@ -164,10 +164,10 @@ void CbmMcbm2018EventBuilder::InitSorter()
   // The sorting should be done using the time of the digi which
   // can be received using the GetTime() function of CbmDigi
 
-  Int_t nrT0Digis {0};
-  if (fT0DigiVec) nrT0Digis = fT0DigiVec->size();
-  else if (fT0DigiArr)
-    nrT0Digis = fT0DigiArr->GetEntriesFast();
+  Int_t nrBmonDigis {0};
+  if (fBmonDigiVec) nrBmonDigis = fBmonDigiVec->size();
+  else if (fBmonDigiArr)
+    nrBmonDigis = fBmonDigiArr->GetEntriesFast();
   Int_t nrStsDigis  = fDigiMan->GetNofDigis(ECbmModuleId::kSts);
   Int_t nrMuchDigis = fDigiMan->GetNofDigis(ECbmModuleId::kMuch);
   Int_t nrTrdDigis  = fDigiMan->GetNofDigis(ECbmModuleId::kTrd);
@@ -175,7 +175,7 @@ void CbmMcbm2018EventBuilder::InitSorter()
   Int_t nrRichDigis = fDigiMan->GetNofDigis(ECbmModuleId::kRich);
   Int_t nrPsdDigis  = fDigiMan->GetNofDigis(ECbmModuleId::kPsd);
 
-  LOG(debug) << "T0Digis: " << nrT0Digis;
+  LOG(debug) << "BmonDigis: " << nrBmonDigis;
   LOG(debug) << "StsDigis: " << nrStsDigis;
   LOG(debug) << "MuchDigis: " << nrMuchDigis;
   LOG(debug) << "TrdDigis: " << nrTrdDigis;
@@ -185,7 +185,7 @@ void CbmMcbm2018EventBuilder::InitSorter()
 
   //  CbmDigi* digi = nullptr;
 
-  if (nrT0Digis > 0) { AddDigiToSorter<CbmTofDigi>(ECbmModuleId::kHodo, 0); }
+  if (nrBmonDigis > 0) { AddDigiToSorter<CbmTofDigi>(ECbmModuleId::kHodo, 0); }
   if (nrStsDigis > 0) { AddDigiToSorter<CbmStsDigi>(ECbmModuleId::kSts, 0); }
   if (nrMuchDigis > 0) {
     if (fbUseBaseMuchDigi) { AddDigiToSorter<CbmMuchDigi>(ECbmModuleId::kMuch, 0); }  // if( fbUseBaseMuchDigi )
@@ -301,8 +301,8 @@ Bool_t CbmMcbm2018EventBuilder::IsDigiInEvent(Double_t time)
 Bool_t CbmMcbm2018EventBuilder::HasTrigger(CbmEvent* event)
 {
   Bool_t hasTrigger {kTRUE};
-  if (hasTrigger && (fT0DigiVec || fT0DigiArr) && fTriggerMinT0Digis > 0) {
-    hasTrigger = hasTrigger && ((int) event->GetNofData(ECbmDataType::kT0Digi) >= fTriggerMinT0Digis);
+  if (hasTrigger && (fBmonDigiVec || fBmonDigiArr) && fTriggerMinBmonDigis > 0) {
+    hasTrigger = hasTrigger && ((int) event->GetNofData(ECbmDataType::kBmonDigi) >= fTriggerMinBmonDigis);
   }
   if (hasTrigger && fDigiMan->IsPresent(ECbmModuleId::kSts) && fTriggerMinStsDigis > 0) {
     hasTrigger = hasTrigger && ((int) event->GetNofData(ECbmDataType::kStsDigi) >= fTriggerMinStsDigis);
@@ -323,8 +323,8 @@ Bool_t CbmMcbm2018EventBuilder::HasTrigger(CbmEvent* event)
     hasTrigger = hasTrigger && ((int) event->GetNofData(ECbmDataType::kPsdDigi) >= fTriggerMinPsdDigis);
   }
 
-  if (hasTrigger && (fT0DigiVec || fT0DigiArr) && fTriggerMaxT0Digis >= 0) {
-    hasTrigger = hasTrigger && ((int) event->GetNofData(ECbmDataType::kT0Digi) < fTriggerMaxT0Digis);
+  if (hasTrigger && (fBmonDigiVec || fBmonDigiArr) && fTriggerMaxBmonDigis >= 0) {
+    hasTrigger = hasTrigger && ((int) event->GetNofData(ECbmDataType::kBmonDigi) < fTriggerMaxBmonDigis);
   }
   if (hasTrigger && fDigiMan->IsPresent(ECbmModuleId::kSts) && fTriggerMaxStsDigis >= 0) {
     hasTrigger = hasTrigger && ((int) event->GetNofData(ECbmDataType::kStsDigi) < fTriggerMaxStsDigis);
@@ -388,7 +388,7 @@ void CbmMcbm2018EventBuilder::FillHisto()
     fhEventSize->Fill(evt->GetNofData());
     fhNbDigiPerEvtTime->Fill(evt->GetStartTime() * 1e-9, evt->GetNofData());
 
-    fhNbDigiPerEvtTimeT0->Fill(evt->GetStartTime() * 1e-9, evt->GetNofData(ECbmDataType::kT0Digi));
+    fhNbDigiPerEvtTimeBmon->Fill(evt->GetStartTime() * 1e-9, evt->GetNofData(ECbmDataType::kBmonDigi));
     fhNbDigiPerEvtTimeSts->Fill(evt->GetStartTime() * 1e-9, evt->GetNofData(ECbmDataType::kStsDigi));
     fhNbDigiPerEvtTimeMuch->Fill(evt->GetStartTime() * 1e-9, evt->GetNofData(ECbmDataType::kMuchDigi));
     fhNbDigiPerEvtTimeTrd->Fill(evt->GetStartTime() * 1e-9, evt->GetNofData(ECbmDataType::kTrdDigi));
@@ -449,7 +449,7 @@ void CbmMcbm2018EventBuilder::AddDigiToEvent(ECbmModuleId _system, Int_t _entry)
     case ECbmModuleId::kTrd: fCurrentEvent->AddData(ECbmDataType::kTrdDigi, _entry); break;
     case ECbmModuleId::kTof: fCurrentEvent->AddData(ECbmDataType::kTofDigi, _entry); break;
     case ECbmModuleId::kPsd: fCurrentEvent->AddData(ECbmDataType::kPsdDigi, _entry); break;
-    case ECbmModuleId::kHodo: fCurrentEvent->AddData(ECbmDataType::kT0Digi, _entry); break;
+    case ECbmModuleId::kHodo: fCurrentEvent->AddData(ECbmDataType::kBmonDigi, _entry); break;
     default: break;
   }
 }
@@ -479,18 +479,18 @@ void CbmMcbm2018EventBuilder::AddDigiToSorter(ECbmModuleId _system, Int_t _entry
     }  // Digi containers controlled by DigiManager
     case ECbmModuleId::kHodo: {
       //      CbmTofDigi * pDigi;
-      if (fT0DigiVec) {
-        if (static_cast<UInt_t>(_entry) < fT0DigiVec->size()) {
-          time = fT0DigiVec->at(_entry).GetTime();
+      if (fBmonDigiVec) {
+        if (static_cast<UInt_t>(_entry) < fBmonDigiVec->size()) {
+          time = fBmonDigiVec->at(_entry).GetTime();
           fSorter.emplace(make_pair(time, make_pair(_system, _entry)));
-        }  // if( _entry < fT0DigiVec->size() )
-      }    // if ( fT0DigiVec )
-      else if (fT0DigiArr) {
-        if (_entry < fT0DigiArr->GetEntriesFast()) {
-          time = dynamic_cast<CbmTofDigi*>(fT0DigiArr->At(_entry))->GetTime();
+        }  // if( _entry < fBmonDigiVec->size() )
+      }    // if ( fBmonDigiVec )
+      else if (fBmonDigiArr) {
+        if (_entry < fBmonDigiArr->GetEntriesFast()) {
+          time = dynamic_cast<CbmTofDigi*>(fBmonDigiArr->At(_entry))->GetTime();
           fSorter.emplace(make_pair(time, make_pair(_system, _entry)));
-        }  // if( _entry < fT0DigiArr->GetEntriesFast() )
-      }    // else if ( fT0DigiArr )
+        }  // if( _entry < fBmonDigiArr->GetEntriesFast() )
+      }    // else if ( fBmonDigiArr )
       else
         return;
       break;
@@ -518,7 +518,7 @@ void CbmMcbm2018EventBuilder::Finish()
     fhEventSize->Write();
     fhNbDigiPerEvtTime->Write();
 
-    fhNbDigiPerEvtTimeT0->Write();
+    fhNbDigiPerEvtTimeBmon->Write();
     fhNbDigiPerEvtTimeSts->Write();
     fhNbDigiPerEvtTimeMuch->Write();
     fhNbDigiPerEvtTimeTrd->Write();
diff --git a/fles/mcbm2018/tasks/CbmMcbm2018EventBuilder.h b/fles/mcbm2018/tasks/CbmMcbm2018EventBuilder.h
index 20065dfac12d7fd63a136ed08c458c4ab008680f..36cb20d9c1621fd4dfe2d674fcd7da0f70428f72 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2018EventBuilder.h
+++ b/fles/mcbm2018/tasks/CbmMcbm2018EventBuilder.h
@@ -86,8 +86,8 @@ public:
   void SetFixedTimeWindow(Double_t val) { fFixedTimeWindow = val; }
   void SetMaximumTimeGap(Double_t val) { fMaximumTimeGap = val; }
 
-  /** Minimum number of T0 digis needed to generate a trigger, 0 means don't use T0 for trigger generation **/
-  void SetTriggerMinNumberT0(Int_t val) { fTriggerMinT0Digis = val; }
+  /** Minimum number of Bmon digis needed to generate a trigger, 0 means don't use Bmon for trigger generation **/
+  void SetTriggerMinNumberBmon(Int_t val) { fTriggerMinBmonDigis = val; }
   /** Minimum number of Sts digis needed to generate a trigger, 0 means don't use Sts for trigger generation **/
   void SetTriggerMinNumberSts(Int_t val) { fTriggerMinStsDigis = val; }
   /** Minimum number of Much digis needed to generate a trigger, 0 means don't use Much for trigger generation **/
@@ -101,8 +101,8 @@ public:
   /** Minimum number of Psd digis needed to generate a trigger, 0 means don't use Psd for trigger generation **/
   void SetTriggerMinNumberPsd(Int_t val) { fTriggerMinPsdDigis = val; }
 
-  /** Maximum number of T0 digis needed to generate a trigger, -1 means no cut, 0 means anti-coinc trigger **/
-  void SetTriggerMaxNumberT0(Int_t val) { fTriggerMaxT0Digis = val; }
+  /** Maximum number of Bmon digis needed to generate a trigger, -1 means no cut, 0 means anti-coinc trigger **/
+  void SetTriggerMaxNumberBmon(Int_t val) { fTriggerMaxBmonDigis = val; }
   /** Maximum number of Sts digis needed to generate a trigger, -1 means no cut, 0 means anti-coinc trigger **/
   void SetTriggerMaxNumberSts(Int_t val) { fTriggerMaxStsDigis = val; }
   /** Maximum number of Much digis needed to generate a trigger, -1 means no cut, 0 means anti-coinc trigger **/
@@ -139,8 +139,8 @@ private:
 
   Bool_t fbUseBaseMuchDigi                  = kFALSE;
   CbmDigiManager* fDigiMan                  = nullptr;  //!
-  const std::vector<CbmTofDigi>* fT0DigiVec = nullptr;  //!
-  TClonesArray* fT0DigiArr                  = nullptr;  //! input container of TO digis
+  const std::vector<CbmTofDigi>* fBmonDigiVec = nullptr;  //!
+  TClonesArray* fBmonDigiArr                  = nullptr;  //! input container of TO digis
   TClonesArray* fEvents                     = nullptr;  //! output container of CbmEvents
 
   std::array<TClonesArray*, ToIntegralType(ECbmModuleId::kNofSystems)>
@@ -159,7 +159,7 @@ private:
   TH1* fhEventDt {nullptr};               //! histogram with the interval in seed time of consecutive events
   TH1* fhEventSize {nullptr};             //! histogram with the nb of all  digis in the event
   TH2* fhNbDigiPerEvtTime {nullptr};      //! histogram with the nb of all  digis per event vs seed time of the events
-  TH2* fhNbDigiPerEvtTimeT0 {nullptr};    //! histogram with the nb of T0   digis per event vs seed time of the events
+  TH2* fhNbDigiPerEvtTimeBmon {nullptr};  //! histogram with the nb of Bmon   digis per event vs seed time of the events
   TH2* fhNbDigiPerEvtTimeSts {nullptr};   //! histogram with the nb of STS  digis per event vs seed time of the events
   TH2* fhNbDigiPerEvtTimeMuch {nullptr};  //! histogram with the nb of MUCH digis per event vs seed time of the events
   TH2* fhNbDigiPerEvtTimeTrd {nullptr};   //! histogram with the nb of TRD  digis per event vs seed time of the events
@@ -177,8 +177,8 @@ private:
   /** Maximum gap allowed between two consecutive digis  used for the MaximumTimeGap event building algorithm **/
   Double_t fMaximumTimeGap {100.};
 
-  /** Minimum number of T0 digis needed to generate a trigger, 0 means don't use T0 for trigger generation **/
-  Int_t fTriggerMinT0Digis {0};
+  /** Minimum number of Bmon digis needed to generate a trigger, 0 means don't use Bmon for trigger generation **/
+  Int_t fTriggerMinBmonDigis {0};
   /** Minimum number of Sts digis needed to generate a trigger, 0 means don't use Sts for trigger generation **/
   Int_t fTriggerMinStsDigis {0};
   /** Minimum number of Much digis needed to generate a trigger, 0 means don't use Much for trigger generation **/
@@ -191,8 +191,8 @@ private:
   Int_t fTriggerMinRichDigis {0};
   /** Minimum number of Psd digis needed to generate a trigger, 0 means don't use Psd for trigger generation **/
   Int_t fTriggerMinPsdDigis {0};
-  /** Maximum number of T0 digis needed to generate a trigger, -1 means no cut, 0 means anti-coinc trigger **/
-  Int_t fTriggerMaxT0Digis = -1;
+  /** Maximum number of Bmon digis needed to generate a trigger, -1 means no cut, 0 means anti-coinc trigger **/
+  Int_t fTriggerMaxBmonDigis = -1;
   /** Maximum number of Sts digis needed to generate a trigger, -1 means no cut, 0 means anti-coinc trigger **/
   Int_t fTriggerMaxStsDigis = -1;
   /** Maximum number of Much digis needed to generate a trigger, -1 means no cut, 0 means anti-coinc trigger **/
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisMuch.cxx b/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisMuch.cxx
index 8bf2676ea8acbbe2f8f30b988c47bfbd6de4d2e4..af6ab4f9648af7ef2570d18040a82552b036e4c5 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisMuch.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisMuch.cxx
@@ -117,12 +117,12 @@ void CbmMcbm2019CheckDigisMuch::Exec(Option_t* /*option*/)
 
     if (0 == iMuch)
       std::cout << Form("Much first hit in TS %5d: asic %2u chan %3u time "
-                        "%12.0f T0 time %12.0f check time %12.0f ADC %2.0f",
+                        "%12.0f Bmon time %12.0f check time %12.0f ADC %2.0f",
                         fNrTs, uAsic, uChan, dTime, dTime - fdFirstTsOffs, dTimeSinceStart, dAdc)
                 << std::endl;
 
     if (fdDigiDistStart < dTimeSinceStart && dTimeSinceStart < fdDigiDistStop) {
-      //      std::cout << Form( "Much hit in TS %5d: asic %2u chan %3u T0 time %12.0f ADC %2.0f",
+      //      std::cout << Form( "Much hit in TS %5d: asic %2u chan %3u Bmon time %12.0f ADC %2.0f",
       //                            fNrTs, uAsic, uChan, (dTimeSinceStart - fdDigiDistStart), dAdc )
       //              << std::endl;
       Double_t dTimeDistLastDigi = dTimeSinceStart - fdLastMuchDigi[uAsic][uChan];
@@ -133,7 +133,7 @@ void CbmMcbm2019CheckDigisMuch::Exec(Option_t* /*option*/)
     }
     /*
     if( 0.0 == fdLastMuchDigi[ uAsic ][ uChan ] )
-       std::cout << Form( "Much first hit in TS %5d: asic %2u chan %3u T0 time %12.0f ADC %2.0f",
+       std::cout << Form( "Much first hit in TS %5d: asic %2u chan %3u Bmon time %12.0f ADC %2.0f",
                                fNrTs, uAsic, uChan, dTime - fdFirstTsOffs, dAdc )
                  << std::endl;
 */
@@ -143,7 +143,7 @@ void CbmMcbm2019CheckDigisMuch::Exec(Option_t* /*option*/)
     if (9 != uAsic || uChan < 63) continue;
     if (fuMaxAdcPulserMuch < Digi->GetAdc() || Digi->GetAdc() < fuMinAdcPulserMuch) continue;
 
-    std::cout << Form("Much pulser in TS %5d: chan %3u T0 time %12.0f time "
+    std::cout << Form("Much pulser in TS %5d: chan %3u Bmon time %12.0f time "
                       "start %12.0f ADC %2.0f dt %12.0f",
                       fNrTs, uChan, dTime, dTimeSinceStart, dAdc, dTime - fdLastMuchDigiPulser[uAsic][uChan])
               << std::endl;
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisSts.cxx b/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisSts.cxx
index cfed8380789b79e13f0a3004e418f7656553a99b..1a3ed1e8ee205090e55a266772c4b3c1e8cb4976 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisSts.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisSts.cxx
@@ -114,12 +114,12 @@ void CbmMcbm2019CheckDigisSts::Exec(Option_t* /*option*/)
 
     if (0 == iSts)
       std::cout << Form("Much first hit in TS %5d: asic %2u chan %3u time "
-                        "%12.0f T0 time %12.0f check time %12.0f ADC %2.0f",
+                        "%12.0f Bmon time %12.0f check time %12.0f ADC %2.0f",
                         fNrTs, uAsic, uChan, dTime, dTime - fdFirstTsOffs, dTimeSinceStart, dAdc)
                 << std::endl;
 
     if (fdDigiDistStart < dTimeSinceStart && dTimeSinceStart < fdDigiDistStop) {
-      //      std::cout << Form( "Sts hit in TS %5d: asic %2u chan %3u T0 time %12.0f ADC %2.0f",
+      //      std::cout << Form( "Sts hit in TS %5d: asic %2u chan %3u Bmon time %12.0f ADC %2.0f",
       //                            fNrTs, uAsic, uChan, (dTimeSinceStart - fdDigiDistStart), dAdc )
       //              << std::endl;
       Double_t dTimeDistLastDigi = dTimeSinceStart - fdLastStsDigi[uAsic][uChan];
@@ -128,7 +128,7 @@ void CbmMcbm2019CheckDigisSts::Exec(Option_t* /*option*/)
     }
     /*
     if( 0.0 == fdLastStsDigi[ uAsic ][ uChan ] )
-       std::cout << Form( "Sts first hit in TS %5d: asic %2u chan %3u T0 time %12.0f ADC %2.0f",
+       std::cout << Form( "Sts first hit in TS %5d: asic %2u chan %3u Bmon time %12.0f ADC %2.0f",
                                fNrTs, uAsic, uChan, dTime - fdFirstTsOffs, dAdc )
                  << std::endl;
 */
@@ -138,7 +138,7 @@ void CbmMcbm2019CheckDigisSts::Exec(Option_t* /*option*/)
     if (9 != uAsic || uChan < 63) continue;
     if (fuMaxAdcPulserSts < Digi->GetCharge() || Digi->GetCharge() < fuMinAdcPulserSts) continue;
 
-    std::cout << Form("Sts pulser in TS %5d: chan %3u T0 time %12.0f time "
+    std::cout << Form("Sts pulser in TS %5d: chan %3u Bmon time %12.0f time "
                       "start %12.0f ADC %2.0f dt %12.0f",
                       fNrTs, uChan, dTime, dTimeSinceStart, dAdc, dTime - fdLastStsDigiPulser[uAsic][uChan])
               << std::endl;
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019CheckDtInDet.cxx b/fles/mcbm2018/tasks/CbmMcbm2019CheckDtInDet.cxx
index 162077172a1f02ef00fed21a126adac0d17a3501..fb6912fea6d5261403d9d650cfb4fd0eb0473195 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019CheckDtInDet.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2019CheckDtInDet.cxx
@@ -62,16 +62,16 @@ InitStatus CbmMcbm2019CheckDtInDet::Init()
   fDigiMan->UseMuchBeamTimeDigi();
   fDigiMan->Init();
 
-  // T0 is not included in DigiManager; have to take care here
+  // Bmon is not included in DigiManager; have to take care here
   // Try to find a vector branch for the digi
-  fT0DigiVector = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("T0Digi");
-  if (!fT0DigiVector) {
-    LOG(info) << "No T0 digi vector found; trying TClonesArray";
+  fBmonDigiVector = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("BmonDigi");
+  if (!fBmonDigiVector) {
+    LOG(info) << "No Bmon digi vector found; trying TClonesArray";
     if (std::is_convertible<TObject*, CbmTofDigi*>::value) {
-      fT0DigiArray = dynamic_cast<TClonesArray*>(ioman->GetObject("T0Digi"));
-      if (!fT0DigiArray) LOG(info) << "No T0 digi input found.";
+      fBmonDigiArray = dynamic_cast<TClonesArray*>(ioman->GetObject("BmonDigi"));
+      if (!fBmonDigiArray) LOG(info) << "No Bmon digi input found.";
     }  //? CbmTofDigi derives from TObject
-  }    //? No vector for T0 digis
+  }    //? No vector for Bmon digis
 
   if (!fDigiMan->IsPresent(ECbmModuleId::kSts)) { LOG(info) << "No STS digi input found."; }
 
@@ -107,8 +107,8 @@ void CbmMcbm2019CheckDtInDet::CreateHistos()
   //  double * dBinsLog = GenerateLogBinArray( 9, 9, 1, iNbBinsLog );
 
   /// Proportion of hits with same time
-  // T0 vs. T0
-  fT0T0SameTime = new TH1F("fT0T0SameTime", "Fract. same time T0;Same Time? [];Counts", 2, -0.5, 1.5);
+  // Bmon vs. Bmon
+  fBmonBmonSameTime = new TH1F("fBmonBmonSameTime", "Fract. same time Bmon;Same Time? [];Counts", 2, -0.5, 1.5);
   // sts vs. Sts
   fStsStsSameTime = new TH1F("fStsStsSameTime", "Fract. same time Sts;Same Time? [];Counts", 2, -0.5, 1.5);
   // Much vs. Much
@@ -123,8 +123,8 @@ void CbmMcbm2019CheckDtInDet::CreateHistos()
   fPsdPsdSameTime = new TH1F("fPsdPsdSameTime", "Fract. same time Psd;Same Time? [];Counts", 2, -0.5, 1.5);
 
   /// Per detector
-  // T0 vs. T0
-  fT0T0Diff = new TH1F("fT0T0Diff", "T0-T0_prev;time diff [ns];Counts", 10001, -0.5, 10000.5);
+  // Bmon vs. Bmon
+  fBmonBmonDiff = new TH1F("fBmonBmonDiff", "Bmon-Bmon_prev;time diff [ns];Counts", 10001, -0.5, 10000.5);
   // sts vs. Sts
   fStsStsDiff = new TH1F("fStsStsDiff", "Sts-Sts_prev;time diff [ns];Counts", 10001, -0.5, 10000.5);
   // Much vs. Much
@@ -137,8 +137,8 @@ void CbmMcbm2019CheckDtInDet::CreateHistos()
   fRichRichDiff = new TH1F("fRichRichDiff", "Rich-Rich_prev;time diff [ns];Counts", 10001, -0.5, 10000.5);
   // Psd vs. Psd
   fPsdPsdDiff = new TH1F("fPsdPsdDiff", "Psd-Psd_prev;time diff [ns];Counts", 10001, -0.5, 10000.5);
-  // T0 vs. T0
-  fT0T0DiffLog = new TH1F("fT0T0DiffLog", "T0-T0_prev;time diff [ns];Counts", iNbBinsLog, dBinsLog);
+  // Bmon vs. Bmon
+  fBmonBmonDiffLog = new TH1F("fBmonBmonDiffLog", "Bmon-Bmon_prev;time diff [ns];Counts", iNbBinsLog, dBinsLog);
   // sts vs. Sts
   fStsStsDiffLog = new TH1F("fStsStsDiffLog", "Sts-Sts_prev;time diff [ns];Counts", iNbBinsLog, dBinsLog);
   // Much vs. Much
@@ -153,9 +153,10 @@ void CbmMcbm2019CheckDtInDet::CreateHistos()
   fPsdPsdDiffLog = new TH1F("fPsdPsdDiffLog", "Psd-Psd_prev;time diff [ns];Counts", iNbBinsLog, dBinsLog);
 
   /// Per channel
-  // T0 vs. T0
-  fT0T0DiffPerChan = new TH2F("fT0T0DiffPerChan", "T0-T0_prev Per Channel;time diff [ns]; Channel [];Counts",
-                              iNbBinsLog, dBinsLog, fuNbChanT0, 0, fuNbChanT0);
+  // Bmon vs. Bmon
+  fBmonBmonDiffPerChan =
+    new TH2F("fBmonBmonDiffPerChan", "Bmon-Bmon_prev Per Channel;time diff [ns]; Channel [];Counts", iNbBinsLog,
+             dBinsLog, fuNbChanBmon, 0, fuNbChanBmon);
   // sts vs. Sts
   fStsStsDiffPerChan = new TH2F("fStsStsDiffPerChan", "Sts-Sts_prev Per Channel;time diff [ns]; Channel [];Counts",
                                 iNbBinsLog, dBinsLog, fuNbChanSts, 0, fuNbChanSts);
@@ -183,7 +184,7 @@ void CbmMcbm2019CheckDtInDet::CreateHistos()
     THttpServer* server = run->GetHttpServer();
     if (nullptr != server) {
 
-      server->Register("/Dt", fT0T0Diff);
+      server->Register("/Dt", fBmonBmonDiff);
       server->Register("/Dt", fStsStsDiff);
       server->Register("/Dt", fMuchMuchDiff);
       server->Register("/Dt", fTrdTrdDiff);
@@ -191,7 +192,7 @@ void CbmMcbm2019CheckDtInDet::CreateHistos()
       server->Register("/Dt", fRichRichDiff);
       server->Register("/Dt", fPsdPsdDiff);
 
-      server->Register("/Dt", fT0T0DiffLog);
+      server->Register("/Dt", fBmonBmonDiffLog);
       server->Register("/Dt", fStsStsDiffLog);
       server->Register("/Dt", fMuchMuchDiffLog);
       server->Register("/Dt", fTrdTrdDiffLog);
@@ -199,7 +200,7 @@ void CbmMcbm2019CheckDtInDet::CreateHistos()
       server->Register("/Dt", fRichRichDiffLog);
       server->Register("/Dt", fPsdPsdDiffLog);
 
-      server->Register("/DtPerChan", fT0T0DiffPerChan);
+      server->Register("/DtPerChan", fBmonBmonDiffPerChan);
       server->Register("/DtPerChan", fStsStsDiffPerChan);
       server->Register("/DtPerChan", fMuchMuchDiffPerChan);
       server->Register("/DtPerChan", fTrdTrdDiffPerChan);
@@ -221,11 +222,11 @@ void CbmMcbm2019CheckDtInDet::Exec(Option_t* /*option*/)
 
   /// Get nb entries per detector
   LOG(debug) << "Begin";
-  Int_t nrT0Digis = 0;
-  if (fT0DigiVector) nrT0Digis = fT0DigiVector->size();
-  else if (fT0DigiArray)
-    nrT0Digis = fT0DigiArray->GetEntriesFast();
-  LOG(debug) << "T0Digis: " << nrT0Digis;
+  Int_t nrBmonDigis = 0;
+  if (fBmonDigiVector) nrBmonDigis = fBmonDigiVector->size();
+  else if (fBmonDigiArray)
+    nrBmonDigis = fBmonDigiArray->GetEntriesFast();
+  LOG(debug) << "BmonDigis: " << nrBmonDigis;
 
   /*
   Int_t nrStsDigis  = fDigiMan->GetNofDigis( ECbmModuleId::kSts);
@@ -236,34 +237,34 @@ void CbmMcbm2019CheckDtInDet::Exec(Option_t* /*option*/)
   Int_t nrPsdDigis  = fDigiMan->GetNofDigis( ECbmModuleId::kPsd);
 */
 
-  /// Check dT in T0
-  for (Int_t iT0 = 0; iT0 < nrT0Digis; ++iT0) {
+  /// Check dT in Bmon
+  for (Int_t iBmon = 0; iBmon < nrBmonDigis; ++iBmon) {
 
-    if (iT0 % 1000 == 0) LOG(debug) << "Executing entry " << iT0;
+    if (iBmon % 1000 == 0) LOG(debug) << "Executing entry " << iBmon;
 
-    const CbmTofDigi* T0Digi = nullptr;
-    if (fT0DigiVector) T0Digi = &(fT0DigiVector->at(iT0));
-    else if (fT0DigiArray)
-      T0Digi = dynamic_cast<CbmTofDigi*>(fT0DigiArray->At(iT0));
-    assert(T0Digi);
+    const CbmTofDigi* BmonDigi = nullptr;
+    if (fBmonDigiVector) BmonDigi = &(fBmonDigiVector->at(iBmon));
+    else if (fBmonDigiArray)
+      BmonDigi = dynamic_cast<CbmTofDigi*>(fBmonDigiArray->At(iBmon));
+    assert(BmonDigi);
 
-    Double_t T0Time = T0Digi->GetTime();
-    //    Int_t T0Address = T0Digi->GetAddress();
+    Double_t T0Time = BmonDigi->GetTime();
+    //    Int_t BmonAddress = BmonDigi->GetAddress();
 
-    Double_t T0TimeDiff = T0Time - fPrevTimeT0;
+    Double_t T0TimeDiff = T0Time - fPrevTimeBmon;
 
-    if (0 < iT0) {
-      fT0T0Diff->Fill(T0TimeDiff);
+    if (0 < iBmon) {
+      fBmonBmonDiff->Fill(T0TimeDiff);
       if (0 < T0TimeDiff) {
-        fT0T0SameTime->Fill(0);
-        fT0T0DiffLog->Fill(T0TimeDiff);
+        fBmonBmonSameTime->Fill(0);
+        fBmonBmonDiffLog->Fill(T0TimeDiff);
       }  // if( 0 < T0TimeDiff)
       else
-        fT0T0SameTime->Fill(1);
-    }  // if( 0 < iT0 )
+        fBmonBmonSameTime->Fill(1);
+    }  // if( 0 < iBmon )
 
-    fPrevTimeT0 = T0Time;
-  }  // for( Int_t iT0 = 0; iT0 < nrT0Digis; ++iT0 )
+    fPrevTimeBmon = T0Time;
+  }  // for( Int_t iBmon = 0; iBmon < nrBmonDigis; ++iBmon )
 
   /// Check dT in the other channels
   FillHistosPerDet<CbmStsDigi>(fStsStsSameTime, fStsStsDiff, fStsStsDiffLog, fStsStsDiffPerChan, ECbmModuleId::kSts);
@@ -381,7 +382,7 @@ void CbmMcbm2019CheckDtInDet::WriteHistos()
 
   TFile* outfile = TFile::Open(fOutFileName, "RECREATE");
 
-  fT0T0SameTime->Write();
+  fBmonBmonSameTime->Write();
   fStsStsSameTime->Write();
   fMuchMuchSameTime->Write();
   fTrdTrdSameTime->Write();
@@ -389,7 +390,7 @@ void CbmMcbm2019CheckDtInDet::WriteHistos()
   fRichRichSameTime->Write();
   fPsdPsdSameTime->Write();
 
-  fT0T0Diff->Write();
+  fBmonBmonDiff->Write();
   fStsStsDiff->Write();
   fMuchMuchDiff->Write();
   fTrdTrdDiff->Write();
@@ -397,7 +398,7 @@ void CbmMcbm2019CheckDtInDet::WriteHistos()
   fRichRichDiff->Write();
   fPsdPsdDiff->Write();
 
-  fT0T0DiffLog->Write();
+  fBmonBmonDiffLog->Write();
   fStsStsDiffLog->Write();
   fMuchMuchDiffLog->Write();
   fTrdTrdDiffLog->Write();
@@ -405,7 +406,7 @@ void CbmMcbm2019CheckDtInDet::WriteHistos()
   fRichRichDiffLog->Write();
   fPsdPsdDiffLog->Write();
 
-  fT0T0DiffPerChan->Write();
+  fBmonBmonDiffPerChan->Write();
   fStsStsDiffPerChan->Write();
   fMuchMuchDiffPerChan->Write();
   fTrdTrdDiffPerChan->Write();
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019CheckDtInDet.h b/fles/mcbm2018/tasks/CbmMcbm2019CheckDtInDet.h
index 75e06bdebcf0cae785c00d7dd04ef763b2578451..71a7604eb8705c18f1fbf03b94cbb2b4c08ac516 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019CheckDtInDet.h
+++ b/fles/mcbm2018/tasks/CbmMcbm2019CheckDtInDet.h
@@ -57,7 +57,7 @@ public:
   /** Finish task called at the end of the run **/
   virtual void Finish();
 
-  void SetNbChanT0(Int_t val = 8) { fuNbChanT0 = val; }
+  void SetNbChanBmon(Int_t val = 8) { fuNbChanBmon = val; }
 
   void SetNbChanSts(Int_t val = 5120) { fuNbChanSts = val; }
 
@@ -83,8 +83,8 @@ private:
 
   /** Digi data **/
   CbmDigiManager* fDigiMan                     = nullptr;  //!
-  const std::vector<CbmTofDigi>* fT0DigiVector = nullptr;  //!
-  TClonesArray* fT0DigiArray                   = nullptr;  //!
+  const std::vector<CbmTofDigi>* fBmonDigiVector = nullptr;  //!
+  TClonesArray* fBmonDigiArray                   = nullptr;  //!
   TClonesArray* fTimeSliceMetaDataArray        = nullptr;  //!
   const TimesliceMetaData* pTsMetaData         = nullptr;
 
@@ -97,7 +97,7 @@ private:
   static const UInt_t kuMaxChannelSts  = 3000;
 
   /// Variables to store the previous digi time
-  Double_t fPrevTimeT0   = 0.;
+  Double_t fPrevTimeBmon = 0.;
   Double_t fPrevTimeSts  = 0.;
   Double_t fPrevTimeMuch = 0.;
   Double_t fPrevTimeTrd  = 0.;
@@ -106,7 +106,7 @@ private:
   Double_t fPrevTimePsd  = 0.;
 
   /// User settings: Data correction parameters
-  UInt_t fuNbChanT0   = 8;
+  UInt_t fuNbChanBmon = 8;
   UInt_t fuNbChanSts  = 5120;
   UInt_t fuNbChanMuch = 5120;
   UInt_t fuNbChanTrd  = 5120;
@@ -116,7 +116,7 @@ private:
   //
   Int_t fNrTs = 0;
 
-  TH1* fT0T0SameTime     = nullptr;
+  TH1* fBmonBmonSameTime = nullptr;
   TH1* fStsStsSameTime   = nullptr;
   TH1* fMuchMuchSameTime = nullptr;
   TH1* fTrdTrdSameTime   = nullptr;
@@ -124,7 +124,7 @@ private:
   TH1* fRichRichSameTime = nullptr;
   TH1* fPsdPsdSameTime   = nullptr;
 
-  TH1* fT0T0Diff     = nullptr;
+  TH1* fBmonBmonDiff = nullptr;
   TH1* fStsStsDiff   = nullptr;
   TH1* fMuchMuchDiff = nullptr;
   TH1* fTrdTrdDiff   = nullptr;
@@ -132,7 +132,7 @@ private:
   TH1* fRichRichDiff = nullptr;
   TH1* fPsdPsdDiff   = nullptr;
 
-  TH1* fT0T0DiffLog     = nullptr;
+  TH1* fBmonBmonDiffLog = nullptr;
   TH1* fStsStsDiffLog   = nullptr;
   TH1* fMuchMuchDiffLog = nullptr;
   TH1* fTrdTrdDiffLog   = nullptr;
@@ -141,7 +141,7 @@ private:
   TH1* fPsdPsdDiffLog   = nullptr;
 
 
-  TH2* fT0T0DiffPerChan     = nullptr;
+  TH2* fBmonBmonDiffPerChan = nullptr;
   TH2* fStsStsDiffPerChan   = nullptr;
   TH2* fMuchMuchDiffPerChan = nullptr;
   TH2* fTrdTrdDiffPerChan   = nullptr;
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019CheckPulser.cxx b/fles/mcbm2018/tasks/CbmMcbm2019CheckPulser.cxx
index 15a91d4d62b5e57258f56177e95727da8a59dddf..b3545f7123bab52706b5965a896d76cd107b9cc9 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019CheckPulser.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2019CheckPulser.cxx
@@ -62,16 +62,16 @@ InitStatus CbmMcbm2019CheckPulser::Init()
   fDigiMan->UseMuchBeamTimeDigi();
   fDigiMan->Init();
 
-  // T0 is not included in DigiManager; have to take care here
+  // Bmon is not included in DigiManager; have to take care here
   // Try to find a vector branch for the digi
-  fT0DigiVector = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("T0Digi");
-  if (!fT0DigiVector) {
-    LOG(info) << "No T0 digi vector found; trying TClonesArray";
+  fBmonDigiVector = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("BmonDigi");
+  if (!fBmonDigiVector) {
+    LOG(info) << "No Bmon digi vector found; trying TClonesArray";
     if (std::is_convertible<TObject*, CbmTofDigi*>::value) {
-      fT0DigiArray = dynamic_cast<TClonesArray*>(ioman->GetObject("T0Digi"));
-      if (!fT0DigiArray) LOG(info) << "No T0 digi input found.";
+      fBmonDigiArray = dynamic_cast<TClonesArray*>(ioman->GetObject("BmonDigi"));
+      if (!fBmonDigiArray) LOG(info) << "No Bmon digi input found.";
     }  //? CbmTofDigi derives from TObject
-  }    //? No vector for T0 digis
+  }    //? No vector for Bmon digis
 
   if (!fDigiMan->IsPresent(ECbmModuleId::kSts)) { LOG(info) << "No STS digi input found."; }
 
@@ -104,7 +104,7 @@ Int_t CbmMcbm2019CheckPulser::CalcNrBins(Int_t offsetRange)
   if (offsetRange < 251) {
     Double_t dClocks = offsetRange;
     dClocks /= 6.25;
-    return (dClocks * 112 * 2);  /// T0/TOF FTS bining
+    return (dClocks * 112 * 2);  /// Bmon/TOF FTS bining
   }
   else if (offsetRange < 501) {
     fBinWidth = 1;
@@ -135,120 +135,124 @@ void CbmMcbm2019CheckPulser::CreateHistos()
   //  double * dBinsLog = GenerateLogBinArray( 9, 9, 1, iNbBinsLog );
 
   Int_t nrOfBinsSts = CalcNrBins(fStsOffsetRange);
-  // T0 vs. Sts
-  fT0StsDiff = new TH1F("fT0StsDiff", "T0-Sts;time diff [ns];Counts", nrOfBinsSts, -fStsOffsetRange, fStsOffsetRange);
+  // Bmon vs. Sts
+  fBmonStsDiff =
+    new TH1F("fBmonStsDiff", "Bmon-Sts;time diff [ns];Counts", nrOfBinsSts, -fStsOffsetRange, fStsOffsetRange);
 
-  fT0StsDiffEvo = new TH2F("fT0StsDiffEvo", "T0-Sts;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsSts,
-                           -fStsOffsetRange, fStsOffsetRange);
+  fBmonStsDiffEvo = new TH2F("fBmonStsDiffEvo", "Bmon-Sts;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsSts,
+                             -fStsOffsetRange, fStsOffsetRange);
 
 
   Int_t nrOfBinsMuch = CalcNrBins(fMuchOffsetRange);
-  // T0 vs. Much
-  fT0MuchDiff =
-    new TH1F("fT0MuchDiff", "T0-Much;time diff [ns];Counts", nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
+  // Bmon vs. Much
+  fBmonMuchDiff =
+    new TH1F("fBmonMuchDiff", "Bmon-Much;time diff [ns];Counts", nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
 
-  fT0MuchDiffEvo = new TH2F("fT0MuchDiffEvo", "T0-Much;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsMuch,
-                            -fMuchOffsetRange, fMuchOffsetRange);
+  fBmonMuchDiffEvo = new TH2F("fBmonMuchDiffEvo", "Bmon-Much;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsMuch,
+                              -fMuchOffsetRange, fMuchOffsetRange);
 
 
   Int_t nrOfBinsTrd = CalcNrBins(fTrdOffsetRange);
   // To vs. Trd
-  fT0TrdDiff = new TH1F("fT0TrdDiff", "T0-Trd;time diff [ns];Counts", nrOfBinsTrd, -fTrdOffsetRange, fTrdOffsetRange);
+  fBmonTrdDiff =
+    new TH1F("fBmonTrdDiff", "Bmon-Trd;time diff [ns];Counts", nrOfBinsTrd, -fTrdOffsetRange, fTrdOffsetRange);
 
-  fT0TrdDiffEvo = new TH2F("fT0TrdDiffEvo", "T0-Trd;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsTrd,
-                           -fTrdOffsetRange, fTrdOffsetRange);
+  fBmonTrdDiffEvo = new TH2F("fBmonTrdDiffEvo", "Bmon-Trd;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsTrd,
+                             -fTrdOffsetRange, fTrdOffsetRange);
 
 
   Int_t nrOfBinsTof = CalcNrBins(fTofOffsetRange);
   // To vs. Tof
-  fT0TofDiff = new TH1F("fT0TofDiff", "T0-Tof;time diff [ns];Counts", nrOfBinsTof, -fTofOffsetRange, fTofOffsetRange);
+  fBmonTofDiff =
+    new TH1F("fBmonTofDiff", "Bmon-Tof;time diff [ns];Counts", nrOfBinsTof, -fTofOffsetRange, fTofOffsetRange);
 
-  fT0TofDiffEvo = new TH2F("fT0TofDiffEvo", "T0-Tof;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsTof,
-                           -fTofOffsetRange, fTofOffsetRange);
+  fBmonTofDiffEvo = new TH2F("fBmonTofDiffEvo", "Bmon-Tof;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsTof,
+                             -fTofOffsetRange, fTofOffsetRange);
 
 
   Int_t nrOfBinsRich = CalcNrBins(fRichOffsetRange);
   // To vs. Rich
-  fT0RichDiff =
-    new TH1F("fT0RichDiff", "T0-Rich;time diff [ns];Counts", nrOfBinsRich, -fRichOffsetRange, fRichOffsetRange);
+  fBmonRichDiff =
+    new TH1F("fBmonRichDiff", "Bmon-Rich;time diff [ns];Counts", nrOfBinsRich, -fRichOffsetRange, fRichOffsetRange);
 
-  fT0RichDiffEvo = new TH2F("fT0RichDiffEvo", "T0-Rich;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsRich,
-                            -fRichOffsetRange, fRichOffsetRange);
+  fBmonRichDiffEvo = new TH2F("fBmonRichDiffEvo", "Bmon-Rich;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsRich,
+                              -fRichOffsetRange, fRichOffsetRange);
 
   Int_t nrOfBinsPsd = CalcNrBins(fPsdOffsetRange);
   // To vs. Psd
-  fT0PsdDiff = new TH1F("fT0PsdDiff", "T0-Psd;time diff [ns];Counts", nrOfBinsPsd, -fPsdOffsetRange, fPsdOffsetRange);
+  fBmonPsdDiff =
+    new TH1F("fBmonPsdDiff", "Bmon-Psd;time diff [ns];Counts", nrOfBinsPsd, -fPsdOffsetRange, fPsdOffsetRange);
 
-  fT0PsdDiffEvo = new TH2F("fT0PsdDiffEvo", "T0-Psd;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsPsd,
-                           -fPsdOffsetRange, fPsdOffsetRange);
+  fBmonPsdDiffEvo = new TH2F("fBmonPsdDiffEvo", "Bmon-Psd;TS; time diff [ns];Counts", 1000, 0, 10000, nrOfBinsPsd,
+                             -fPsdOffsetRange, fPsdOffsetRange);
 
-  fT0PsdDiffCharge = new TH2F("fT0PsdDiffCharge", "T0-Psd;time diff [ns]; Charge [a.u]; ;Counts", nrOfBinsPsd,
-                              -fPsdOffsetRange, fPsdOffsetRange, 7000, 0, 70000);
+  fBmonPsdDiffCharge = new TH2F("fBmonPsdDiffCharge", "Bmon-Psd;time diff [ns]; Charge [a.u]; ;Counts", nrOfBinsPsd,
+                                -fPsdOffsetRange, fPsdOffsetRange, 7000, 0, 70000);
 
 
-  // T0 vs. Sts
-  fT0StsDiffEvoLong = new TH2F("fT0StsDiffEvoLong", "T0-Sts;TS; time diff [ns];Counts", 1800, 0, 180000, nrOfBinsSts,
-                               -fStsOffsetRange, fStsOffsetRange);
-  // T0 vs. Much
-  fT0MuchDiffEvoLong = new TH2F("fT0MuchDiffEvoLong", "T0-Much;TS; time diff [ns];Counts", 1800, 0, 180000,
-                                nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
+  // Bmon vs. Sts
+  fBmonStsDiffEvoLong = new TH2F("fBmonStsDiffEvoLong", "Bmon-Sts;TS; time diff [ns];Counts", 1800, 0, 180000,
+                                 nrOfBinsSts, -fStsOffsetRange, fStsOffsetRange);
+  // Bmon vs. Much
+  fBmonMuchDiffEvoLong = new TH2F("fBmonMuchDiffEvoLong", "Bmon-Much;TS; time diff [ns];Counts", 1800, 0, 180000,
+                                  nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
   // To vs. Trd
-  fT0TrdDiffEvoLong = new TH2F("fT0TrdDiffEvoLong", "T0-Trd;TS; time diff [ns];Counts", 1800, 0, 180000, nrOfBinsTrd,
-                               -fTrdOffsetRange, fTrdOffsetRange);
+  fBmonTrdDiffEvoLong = new TH2F("fBmonTrdDiffEvoLong", "Bmon-Trd;TS; time diff [ns];Counts", 1800, 0, 180000,
+                                 nrOfBinsTrd, -fTrdOffsetRange, fTrdOffsetRange);
   // To vs. Tof
-  fT0TofDiffEvoLong = new TH2F("fT0TofDiffEvoLong", "T0-Tof;TS; time diff [ns];Counts", 1800, 0, 180000, nrOfBinsTof,
-                               -fTofOffsetRange, fTofOffsetRange);
+  fBmonTofDiffEvoLong = new TH2F("fBmonTofDiffEvoLong", "Bmon-Tof;TS; time diff [ns];Counts", 1800, 0, 180000,
+                                 nrOfBinsTof, -fTofOffsetRange, fTofOffsetRange);
   // To vs. Rich
-  fT0RichDiffEvoLong = new TH2F("fT0RichDiffEvoLong", "T0-Rich;TS; time diff [ns];Counts", 1800, 0, 180000,
-                                nrOfBinsRich, -fRichOffsetRange, fRichOffsetRange);
+  fBmonRichDiffEvoLong = new TH2F("fBmonRichDiffEvoLong", "Bmon-Rich;TS; time diff [ns];Counts", 1800, 0, 180000,
+                                  nrOfBinsRich, -fRichOffsetRange, fRichOffsetRange);
 
   // To vs. Psd
-  fT0PsdDiffEvoLong = new TH2F("fT0PsdDiffEvoLong", "T0-Psd;TS; time diff [ns];Counts", 1800, 0, 180000, nrOfBinsPsd,
-                               -fPsdOffsetRange, fPsdOffsetRange);
+  fBmonPsdDiffEvoLong = new TH2F("fBmonPsdDiffEvoLong", "Bmon-Psd;TS; time diff [ns];Counts", 1800, 0, 180000,
+                                 nrOfBinsPsd, -fPsdOffsetRange, fPsdOffsetRange);
 
 
-  // T0 vs. Sts
-  fT0StsMeanEvo = new TProfile("fT0StsMeanEvo", "T0-Sts; time in run [s]; Mean time diff [ns]", 4320, 0, 4320);
-  // T0 vs. Much
-  fT0MuchMeanEvo = new TProfile("fT0MuchMeanEvo", "T0-Much; time in run [s]; Mean time diff [ns]", 4320, 0, 4320);
+  // Bmon vs. Sts
+  fBmonStsMeanEvo = new TProfile("fBmonStsMeanEvo", "Bmon-Sts; time in run [s]; Mean time diff [ns]", 4320, 0, 4320);
+  // Bmon vs. Much
+  fBmonMuchMeanEvo = new TProfile("fBmonMuchMeanEvo", "Bmon-Much; time in run [s]; Mean time diff [ns]", 4320, 0, 4320);
   // To vs. Tof
-  fT0TrdMeanEvo = new TProfile("fT0TrdMeanEvo", "T0-Trd; time in run [s]; Mean time diff [ns]", 4320, 0, 4320);
+  fBmonTrdMeanEvo = new TProfile("fBmonTrdMeanEvo", "Bmon-Trd; time in run [s]; Mean time diff [ns]", 4320, 0, 4320);
   // To vs. Tof
-  fT0TofMeanEvo = new TProfile("fT0TofMeanEvo", "T0-Tof; time in run [s]; Mean time diff [ns]", 4320, 0, 4320);
+  fBmonTofMeanEvo = new TProfile("fBmonTofMeanEvo", "Bmon-Tof; time in run [s]; Mean time diff [ns]", 4320, 0, 4320);
   // To vs. Rich
-  fT0RichMeanEvo = new TProfile("fT0RichMeanEvo", "T0-Rich; time in run [s]; Mean time diff [ns]", 4320, 0, 4320);
+  fBmonRichMeanEvo = new TProfile("fBmonRichMeanEvo", "Bmon-Rich; time in run [s]; Mean time diff [ns]", 4320, 0, 4320);
   // To vs. Psd
-  fT0PsdMeanEvo = new TProfile("fT0PsdMeanEvo", "T0-Psd; time in run [s]; Mean time diff [ns]", 4320, 0, 4320);
+  fBmonPsdMeanEvo = new TProfile("fBmonPsdMeanEvo", "Bmon-Psd; time in run [s]; Mean time diff [ns]", 4320, 0, 4320);
   //       4320, 0, 259200);
 
 
-  // T0 vs. STS for the different DPBs
-  fT0StsDpbDiff = new TH2F("fT0StsDpbDiff", "T0-Much;DPB; time diff [ns];Counts", 2, -0.5, 1.5, nrOfBinsSts,
-                           -fStsOffsetRange, fStsOffsetRange);
+  // Bmon vs. STS for the different DPBs
+  fBmonStsDpbDiff = new TH2F("fBmonStsDpbDiff", "Bmon-Much;DPB; time diff [ns];Counts", 2, -0.5, 1.5, nrOfBinsSts,
+                             -fStsOffsetRange, fStsOffsetRange);
 
   for (UInt_t uStsDpb = 0; uStsDpb < kuMaxNbStsDpbs; ++uStsDpb) {
-    fT0StsDpbDiffEvo[uStsDpb] =
-      new TH2F(Form("fT0StsDpbDiffEvo%02u", uStsDpb), Form("T0-STS DPB %02u;TS; time diff [ns];Counts", uStsDpb), 1800,
-               0, 180000, nrOfBinsSts, -fStsOffsetRange, fStsOffsetRange);
+    fBmonStsDpbDiffEvo[uStsDpb] =
+      new TH2F(Form("fBmonStsDpbDiffEvo%02u", uStsDpb), Form("Bmon-STS DPB %02u;TS; time diff [ns];Counts", uStsDpb),
+               1800, 0, 180000, nrOfBinsSts, -fStsOffsetRange, fStsOffsetRange);
     fStsDpbCntsEvo[uStsDpb] =
       new TH1F(Form("fStsDpbCntsEvo%02u", uStsDpb), Form("Time STS DPB %02u;TS; Hit Counts", uStsDpb), 1800, 0, 180000);
   }  // for( UInt_t uStsDpb = 0; uStsDpb < kuMaxNbStsDpbs; ++uStsDpb )
 
-  // T0 vs. Much for the different DPBs/AFCK
-  fT0MuchRocDiff = new TH2F("fT0MuchRocDiff", "T0-Much;AFCK; time diff [ns];Counts", kuMaxNbMuchDpbs, -0.5,
-                            kuMaxNbMuchDpbs - 0.5, nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
+  // Bmon vs. Much for the different DPBs/AFCK
+  fBmonMuchRocDiff = new TH2F("fBmonMuchRocDiff", "Bmon-Much;AFCK; time diff [ns];Counts", kuMaxNbMuchDpbs, -0.5,
+                              kuMaxNbMuchDpbs - 0.5, nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
 
-  // T0 vs. Much for the different ASICs
-  fT0MuchAsicDiff = new TH2F("fT0MuchAsicDiff", "T0-Much;ASIC; time diff [ns];Counts", kuMaxNbMuchAsics, -0.5,
-                             kuMaxNbMuchAsics - 0.5, nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
+  // Bmon vs. Much for the different ASICs
+  fBmonMuchAsicDiff = new TH2F("fBmonMuchAsicDiff", "Bmon-Much;ASIC; time diff [ns];Counts", kuMaxNbMuchAsics, -0.5,
+                               kuMaxNbMuchAsics - 0.5, nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
 
   for (UInt_t uMuchAsic = 0; uMuchAsic < kuMaxNbMuchAsics; ++uMuchAsic)
-    fT0MuchAsicDiffEvo[uMuchAsic] = new TH2F(Form("fT0MuchAsicDiffEvo%02u", uMuchAsic),
-                                             Form("T0-Much ASIC %02u;TS; time diff [ns];Counts", uMuchAsic), 1800, 0,
-                                             180000, nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
+    fBmonMuchAsicDiffEvo[uMuchAsic] = new TH2F(Form("fBmonMuchAsicDiffEvo%02u", uMuchAsic),
+                                               Form("Bmon-Much ASIC %02u;TS; time diff [ns];Counts", uMuchAsic), 1800,
+                                               0, 180000, nrOfBinsMuch, -fMuchOffsetRange, fMuchOffsetRange);
 
-  // T0 vs. T0
-  fT0T0Diff = new TH1F("fT0T0Diff", "T0-T0_prev;time diff [ns];Counts", iNbBinsLog, dBinsLog);
+  // Bmon vs. Bmon
+  fBmonBmonDiff = new TH1F("fBmonBmonDiff", "Bmon-Bmon_prev;time diff [ns];Counts", iNbBinsLog, dBinsLog);
   // sts vs. Sts
   fStsStsDiff = new TH1F("fStsStsDiff", "Sts-Sts_prev;time diff [ns];Counts", iNbBinsLog, dBinsLog);
   // Much vs. Much
@@ -263,16 +267,16 @@ void CbmMcbm2019CheckPulser::CreateHistos()
   fPsdPsdDiff = new TH1F("fPsdPsdDiff", "Psd-Psd_prev;time diff [ns];Counts", iNbBinsLog, dBinsLog);
 
 
-  fT0StsNb  = new TH2F("fT0StsNb", "T0-STS;Nb T0; Nb STS;TS []", 100, 0, 100, 100, 0, 100);
-  fT0MuchNb = new TH2F("fT0MuchNb", "T0-MUCH;Nb T0; Nb MUCH;TS []", 100, 0, 100, 100, 0, 100);
-  fT0TrdNb  = new TH2F("fT0TrdNb", "T0-TRD;Nb T0; Nb TRD;TS []", 100, 0, 100, 100, 0, 100);
-  fT0TofNb  = new TH2F("fT0TofNb", "T0-TOF;Nb T0; Nb TOF;TS []", 100, 0, 100, 100, 0, 100);
-  fT0RichNb = new TH2F("fT0RichNb", "T0-RICH;Nb T0; Nb RICH;TS []", 100, 0, 100, 100, 0, 100);
-  fT0PsdNb  = new TH2F("fT0PsdNb", "T0-PSD;Nb T0; Nb PSD;TS []", 100, 0, 100, 100, 0, 100);
+  fBmonStsNb  = new TH2F("fBmonStsNb", "Bmon-STS;Nb Bmon; Nb STS;TS []", 100, 0, 100, 100, 0, 100);
+  fBmonMuchNb = new TH2F("fBmonMuchNb", "Bmon-MUCH;Nb Bmon; Nb MUCH;TS []", 100, 0, 100, 100, 0, 100);
+  fBmonTrdNb  = new TH2F("fBmonTrdNb", "Bmon-TRD;Nb Bmon; Nb TRD;TS []", 100, 0, 100, 100, 0, 100);
+  fBmonTofNb  = new TH2F("fBmonTofNb", "Bmon-TOF;Nb Bmon; Nb TOF;TS []", 100, 0, 100, 100, 0, 100);
+  fBmonRichNb = new TH2F("fBmonRichNb", "Bmon-RICH;Nb Bmon; Nb RICH;TS []", 100, 0, 100, 100, 0, 100);
+  fBmonPsdNb  = new TH2F("fBmonPsdNb", "Bmon-PSD;Nb Bmon; Nb PSD;TS []", 100, 0, 100, 100, 0, 100);
 
-  fT0Address = new TH1F("fT0Address", "T0 address;address;Counts", 1000000, 0, 1000000.);
+  fBmonAddress = new TH1F("fBmonAddress", "Bmon address;address;Counts", 1000000, 0, 1000000.);
 
-  fT0Channel = new TH1F("fT0Channel", "T0 channel;channel nr;Counts", 100, -0.5, 99.5);
+  fBmonChannel = new TH1F("fBmonChannel", "Bmon channel;channel nr;Counts", 100, -0.5, 99.5);
 
   /// Cleanup array of log bins
   //  delete dBinsLog;
@@ -282,33 +286,33 @@ void CbmMcbm2019CheckPulser::CreateHistos()
   if (run) {
     THttpServer* server = run->GetHttpServer();
     if (nullptr != server) {
-      server->Register("/CheckTiming", fT0StsDiff);
-      server->Register("/CheckTiming", fT0MuchDiff);
-      server->Register("/CheckTiming", fT0TrdDiff);
-      server->Register("/CheckTiming", fT0TofDiff);
-      server->Register("/CheckTiming", fT0RichDiff);
-      server->Register("/CheckTiming", fT0PsdDiff);
-      server->Register("/CheckTiming", fT0StsDiffEvo);
-      server->Register("/CheckTiming", fT0MuchDiffEvo);
-      server->Register("/CheckTiming", fT0TrdDiffEvo);
-      server->Register("/CheckTiming", fT0TofDiffEvo);
-      server->Register("/CheckTiming", fT0RichDiffEvo);
-      server->Register("/CheckTiming", fT0PsdDiffEvo);
-      server->Register("/CheckTiming", fT0StsDiffEvoLong);
-      server->Register("/CheckTiming", fT0MuchDiffEvoLong);
-      server->Register("/CheckTiming", fT0TrdDiffEvoLong);
-      server->Register("/CheckTiming", fT0TofDiffEvoLong);
-      server->Register("/CheckTiming", fT0RichDiffEvoLong);
-      server->Register("/CheckTiming", fT0PsdDiffEvoLong);
-
-      server->Register("/CheckTiming", fT0StsMeanEvo);
-      server->Register("/CheckTiming", fT0MuchMeanEvo);
-      server->Register("/CheckTiming", fT0TrdMeanEvo);
-      server->Register("/CheckTiming", fT0TofMeanEvo);
-      server->Register("/CheckTiming", fT0RichMeanEvo);
-      server->Register("/CheckTiming", fT0PsdMeanEvo);
-
-      server->Register("/CheckTiming", fT0T0Diff);
+      server->Register("/CheckTiming", fBmonStsDiff);
+      server->Register("/CheckTiming", fBmonMuchDiff);
+      server->Register("/CheckTiming", fBmonTrdDiff);
+      server->Register("/CheckTiming", fBmonTofDiff);
+      server->Register("/CheckTiming", fBmonRichDiff);
+      server->Register("/CheckTiming", fBmonPsdDiff);
+      server->Register("/CheckTiming", fBmonStsDiffEvo);
+      server->Register("/CheckTiming", fBmonMuchDiffEvo);
+      server->Register("/CheckTiming", fBmonTrdDiffEvo);
+      server->Register("/CheckTiming", fBmonTofDiffEvo);
+      server->Register("/CheckTiming", fBmonRichDiffEvo);
+      server->Register("/CheckTiming", fBmonPsdDiffEvo);
+      server->Register("/CheckTiming", fBmonStsDiffEvoLong);
+      server->Register("/CheckTiming", fBmonMuchDiffEvoLong);
+      server->Register("/CheckTiming", fBmonTrdDiffEvoLong);
+      server->Register("/CheckTiming", fBmonTofDiffEvoLong);
+      server->Register("/CheckTiming", fBmonRichDiffEvoLong);
+      server->Register("/CheckTiming", fBmonPsdDiffEvoLong);
+
+      server->Register("/CheckTiming", fBmonStsMeanEvo);
+      server->Register("/CheckTiming", fBmonMuchMeanEvo);
+      server->Register("/CheckTiming", fBmonTrdMeanEvo);
+      server->Register("/CheckTiming", fBmonTofMeanEvo);
+      server->Register("/CheckTiming", fBmonRichMeanEvo);
+      server->Register("/CheckTiming", fBmonPsdMeanEvo);
+
+      server->Register("/CheckTiming", fBmonBmonDiff);
       server->Register("/CheckTiming", fStsStsDiff);
       server->Register("/CheckTiming", fMuchMuchDiff);
       server->Register("/CheckTiming", fTrdTrdDiff);
@@ -316,21 +320,21 @@ void CbmMcbm2019CheckPulser::CreateHistos()
       server->Register("/CheckTiming", fRichRichDiff);
       server->Register("/CheckTiming", fPsdPsdDiff);
 
-      server->Register("/CheckTiming", fT0StsNb);
-      server->Register("/CheckTiming", fT0MuchNb);
-      server->Register("/CheckTiming", fT0TrdNb);
-      server->Register("/CheckTiming", fT0TofNb);
-      server->Register("/CheckTiming", fT0RichNb);
-      server->Register("/CheckTiming", fT0PsdNb);
+      server->Register("/CheckTiming", fBmonStsNb);
+      server->Register("/CheckTiming", fBmonMuchNb);
+      server->Register("/CheckTiming", fBmonTrdNb);
+      server->Register("/CheckTiming", fBmonTofNb);
+      server->Register("/CheckTiming", fBmonRichNb);
+      server->Register("/CheckTiming", fBmonPsdNb);
 
-      server->Register("/CheckTiming", fT0StsDpbDiff);
+      server->Register("/CheckTiming", fBmonStsDpbDiff);
       for (UInt_t uStsDpb = 0; uStsDpb < kuMaxNbStsDpbs; ++uStsDpb)
-        server->Register("/CheckTiming/STS", fT0StsDpbDiffEvo[uStsDpb]);
+        server->Register("/CheckTiming/STS", fBmonStsDpbDiffEvo[uStsDpb]);
 
-      server->Register("/CheckTiming", fT0MuchRocDiff);
-      server->Register("/CheckTiming", fT0MuchAsicDiff);
+      server->Register("/CheckTiming", fBmonMuchRocDiff);
+      server->Register("/CheckTiming", fBmonMuchAsicDiff);
       for (UInt_t uMuchAsic = 0; uMuchAsic < kuMaxNbMuchAsics; ++uMuchAsic)
-        server->Register("/CheckTiming/MUCH", fT0MuchAsicDiffEvo[uMuchAsic]);
+        server->Register("/CheckTiming/MUCH", fBmonMuchAsicDiffEvo[uMuchAsic]);
     }
   }
   /*
@@ -350,8 +354,8 @@ void CbmMcbm2019CheckPulser::CreateHistos()
        5000, 0, 500000.,
        1000, 0., 10000. );
 
-  fDigiTimeEvoT0 = new TH2F( "fDigiTimeEvoT0",
-      "Time of digi in T0 vs ts index; TS [ ]; Digi time [ ns ]",
+  fDigiTimeEvoBmon = new TH2F( "fDigiTimeEvoBmon",
+      "Time of digi in Bmon vs ts index; TS [ ]; Digi time [ ns ]",
        10000, 0., 30000.,
        10000, 0., 300.e9 );
   fDigiTimeEvoSts = new TH2F( "fDigiTimeEvoSts",
@@ -387,13 +391,13 @@ void CbmMcbm2019CheckPulser::Exec(Option_t* /*option*/)
 
   CheckInterSystemOffset();
   /*
-  Int_t nrT0Digis=fT0Digis->GetEntriesFast();
-  for (Int_t iT0 = 0; iT0 < nrT0Digis; ++iT0)
+  Int_t nrBmonDigis=fBmonDigis->GetEntriesFast();
+  for (Int_t iBmon = 0; iBmon < nrBmonDigis; ++iBmon)
   {
-      CbmDigi* T0Digi = static_cast<CbmDigi*>(fT0Digis->At(iT0));
+      CbmDigi* BmonDigi = static_cast<CbmDigi*>(fBmonDigis->At(iBmon));
 
-      Double_t T0Time = T0Digi->GetTime();
-      fDigiTimeEvoT0->Fill( fNrTs, T0Time );
+      Double_t T0Time = BmonDigi->GetTime();
+      fDigiTimeEvoBmon->Fill( fNrTs, T0Time );
   }
 
   Int_t nrStsDigis{0};
@@ -443,11 +447,11 @@ void CbmMcbm2019CheckPulser::Exec(Option_t* /*option*/)
 void CbmMcbm2019CheckPulser::CheckInterSystemOffset()
 {
   LOG(debug) << "Begin";
-  Int_t nrT0Digis = 0;
-  if (fT0DigiVector) nrT0Digis = fT0DigiVector->size();
-  else if (fT0DigiArray)
-    nrT0Digis = fT0DigiArray->GetEntriesFast();
-  LOG(debug) << "T0Digis: " << nrT0Digis;
+  Int_t nrBmonDigis = 0;
+  if (fBmonDigiVector) nrBmonDigis = fBmonDigiVector->size();
+  else if (fBmonDigiArray)
+    nrBmonDigis = fBmonDigiArray->GetEntriesFast();
+  LOG(debug) << "BmonDigis: " << nrBmonDigis;
 
   Int_t nrStsDigis  = fDigiMan->GetNofDigis(ECbmModuleId::kSts);
   Int_t nrMuchDigis = fDigiMan->GetNofDigis(ECbmModuleId::kMuch);
@@ -457,10 +461,10 @@ void CbmMcbm2019CheckPulser::CheckInterSystemOffset()
   Int_t nrPsdDigis  = fDigiMan->GetNofDigis(ECbmModuleId::kPsd);
 
   /*
-  if( 0 < nrT0Digis )
+  if( 0 < nrBmonDigis )
   {
     LOG(info) << "TS:   " << fNrTs;
-    LOG(info) << "T0:   " << nrT0Digis;
+    LOG(info) << "Bmon:   " << nrBmonDigis;
     LOG(info) << "STS:  " << nrStsDigis;
     LOG(info) << "MUCH: " << nrMuchDigis;
     LOG(info) << "TRD:  " << nrTrdDigis;
@@ -469,75 +473,75 @@ void CbmMcbm2019CheckPulser::CheckInterSystemOffset()
     LOG(info) << "PSD:  " << nrPsdDigis;
   }
 */
-  //  if (nrT0Digis < 100000) {
-  if (nrT0Digis < 1000000) {
+  //  if (nrBmonDigis < 100000) {
+  if (nrBmonDigis < 1000000) {
     /// Re-initialize array references
-    fPrevT0FirstDigiSts  = 0.;
-    fPrevT0FirstDigiMuch = 0.;
-    fPrevT0FirstDigiTrd  = 0.;
-    fPrevT0FirstDigiTof  = 0.;
-    fPrevT0FirstDigiRich = 0.;
-    fPrevT0FirstDigiPsd  = 0.;
+    fPrevBmonFirstDigiSts  = 0.;
+    fPrevBmonFirstDigiMuch = 0.;
+    fPrevBmonFirstDigiTrd  = 0.;
+    fPrevBmonFirstDigiTof  = 0.;
+    fPrevBmonFirstDigiRich = 0.;
+    fPrevBmonFirstDigiPsd  = 0.;
 
     pTsMetaData = dynamic_cast<TimesliceMetaData*>(fTimeSliceMetaDataArray->At(0));
     if (nullptr == pTsMetaData) LOG(fatal) << Form("No TS metadata found for TS %6u.", fNrTs);
 
-    for (Int_t iT0 = 0; iT0 < nrT0Digis; ++iT0) {
+    for (Int_t iBmon = 0; iBmon < nrBmonDigis; ++iBmon) {
 
-      if (iT0 % 1000 == 0) LOG(debug) << "Executing entry " << iT0;
+      if (iBmon % 1000 == 0) LOG(debug) << "Executing entry " << iBmon;
 
-      const CbmTofDigi* T0Digi = nullptr;
-      if (fT0DigiVector) T0Digi = &(fT0DigiVector->at(iT0));
-      else if (fT0DigiArray)
-        T0Digi = dynamic_cast<CbmTofDigi*>(fT0DigiArray->At(iT0));
-      assert(T0Digi);
+      const CbmTofDigi* BmonDigi = nullptr;
+      if (fBmonDigiVector) BmonDigi = &(fBmonDigiVector->at(iBmon));
+      else if (fBmonDigiArray)
+        BmonDigi = dynamic_cast<CbmTofDigi*>(fBmonDigiArray->At(iBmon));
+      assert(BmonDigi);
 
       /// Keep only pulser Digis
-      if (fuMaxTotPulserT0 < T0Digi->GetCharge() || T0Digi->GetCharge() < fuMinTotPulserT0) continue;
+      if (fuMaxTotPulserBmon < BmonDigi->GetCharge() || BmonDigi->GetCharge() < fuMinTotPulserBmon) continue;
 
-      Double_t T0Time = T0Digi->GetTime();
-      Int_t T0Address = T0Digi->GetAddress();
+      Double_t T0Time   = BmonDigi->GetTime();
+      Int_t BmonAddress = BmonDigi->GetAddress();
 
       /// Keep only pulser Digis
-      if (0x00005006 != T0Address && 0x04005006 != T0Address) continue;
+      if (0x00005006 != BmonAddress && 0x04005006 != BmonAddress) continue;
 
-      fiT0Nb++;
+      fiBmonNb++;
 
-      fT0Address->Fill(T0Address);
+      fBmonAddress->Fill(BmonAddress);
       /*
-      std::cout << Form( "T0 pulser in TS %5d: address 0x%08X T0 time %12.0f dt %12.0f",
-                         fNrTs, T0Address, T0Time, T0Time - fdLastT0DigiPulser )
+      std::cout << Form( "Bmon pulser in TS %5d: address 0x%08X Bmon time %12.0f dt %12.0f",
+                         fNrTs, BmonAddress, T0Time, T0Time - fdLastBmonDigiPulser )
                 << std::endl;
 */
-      fT0T0Diff->Fill(T0Time - fdLastT0DigiPulser);
-      fdLastT0DigiPulser = T0Time;
+      fBmonBmonDiff->Fill(T0Time - fdLastBmonDigiPulser);
+      fdLastBmonDigiPulser = T0Time;
 
-      fT0Channel->Fill(T0Digi->GetChannel());
+      fBmonChannel->Fill(BmonDigi->GetChannel());
 
       if (nrStsDigis > 0 && nrStsDigis < 1000000 && fuMinAdcPulserSts < fuMaxAdcPulserSts)
-        fPrevT0FirstDigiSts =
-          FillSystemOffsetHistos<CbmStsDigi>(fT0StsDiff, fT0StsDiffEvo, fT0StsDiffEvoLong, fT0StsMeanEvo, fT0StsDpbDiff,
-                                             T0Time, fStsOffsetRange, fPrevT0FirstDigiSts, ECbmModuleId::kSts);
+        fPrevBmonFirstDigiSts = FillSystemOffsetHistos<CbmStsDigi>(
+          fBmonStsDiff, fBmonStsDiffEvo, fBmonStsDiffEvoLong, fBmonStsMeanEvo, fBmonStsDpbDiff, T0Time, fStsOffsetRange,
+          fPrevBmonFirstDigiSts, ECbmModuleId::kSts);
       if (nrMuchDigis > 0 && nrMuchDigis < 1000000 && fuMinAdcPulserMuch < fuMaxAdcPulserMuch)
-        fPrevT0FirstDigiMuch = FillSystemOffsetHistos<CbmMuchBeamTimeDigi>(
-          fT0MuchDiff, fT0MuchDiffEvo, fT0MuchDiffEvoLong, fT0MuchMeanEvo, fT0MuchRocDiff, T0Time, fMuchOffsetRange,
-          fPrevT0FirstDigiMuch, ECbmModuleId::kMuch);
+        fPrevBmonFirstDigiMuch = FillSystemOffsetHistos<CbmMuchBeamTimeDigi>(
+          fBmonMuchDiff, fBmonMuchDiffEvo, fBmonMuchDiffEvoLong, fBmonMuchMeanEvo, fBmonMuchRocDiff, T0Time,
+          fMuchOffsetRange, fPrevBmonFirstDigiMuch, ECbmModuleId::kMuch);
       if (nrTrdDigis > 0 && nrTrdDigis < 1000000 && fuMinChargePulserTrd < fuMaxChargePulserTrd)
-        fPrevT0FirstDigiTrd =
-          FillSystemOffsetHistos<CbmTrdDigi>(fT0TrdDiff, fT0TrdDiffEvo, fT0TrdDiffEvoLong, fT0TrdMeanEvo, nullptr,
-                                             T0Time, fTrdOffsetRange, fPrevT0FirstDigiTrd, ECbmModuleId::kTrd);
+        fPrevBmonFirstDigiTrd = FillSystemOffsetHistos<CbmTrdDigi>(fBmonTrdDiff, fBmonTrdDiffEvo, fBmonTrdDiffEvoLong,
+                                                                   fBmonTrdMeanEvo, nullptr, T0Time, fTrdOffsetRange,
+                                                                   fPrevBmonFirstDigiTrd, ECbmModuleId::kTrd);
       if (nrTofDigis > 0 && nrTofDigis < 1000000 && fuMinTotPulserTof < fuMaxTotPulserTof)
-        fPrevT0FirstDigiTof =
-          FillSystemOffsetHistos<CbmTofDigi>(fT0TofDiff, fT0TofDiffEvo, fT0TofDiffEvoLong, fT0TofMeanEvo, nullptr,
-                                             T0Time, fTofOffsetRange, fPrevT0FirstDigiTof, ECbmModuleId::kTof);
+        fPrevBmonFirstDigiTof = FillSystemOffsetHistos<CbmTofDigi>(fBmonTofDiff, fBmonTofDiffEvo, fBmonTofDiffEvoLong,
+                                                                   fBmonTofMeanEvo, nullptr, T0Time, fTofOffsetRange,
+                                                                   fPrevBmonFirstDigiTof, ECbmModuleId::kTof);
       if (nrRichDigis > 0 && nrRichDigis < 1000000 && fuMinTotPulserRich < fuMaxTotPulserRich)
-        fPrevT0FirstDigiRich =
-          FillSystemOffsetHistos<CbmRichDigi>(fT0RichDiff, fT0RichDiffEvo, fT0RichDiffEvoLong, fT0RichMeanEvo, nullptr,
-                                              T0Time, fRichOffsetRange, fPrevT0FirstDigiRich, ECbmModuleId::kRich);
+        fPrevBmonFirstDigiRich = FillSystemOffsetHistos<CbmRichDigi>(
+          fBmonRichDiff, fBmonRichDiffEvo, fBmonRichDiffEvoLong, fBmonRichMeanEvo, nullptr, T0Time, fRichOffsetRange,
+          fPrevBmonFirstDigiRich, ECbmModuleId::kRich);
       if (nrPsdDigis > 0 && nrPsdDigis < 1000000 && fuMinAdcPulserPsd < fuMaxAdcPulserPsd)
-        fPrevT0FirstDigiPsd =
-          FillSystemOffsetHistos<CbmPsdDigi>(fT0PsdDiff, fT0PsdDiffEvo, fT0PsdDiffEvoLong, fT0PsdMeanEvo, nullptr,
-                                             T0Time, fPsdOffsetRange, fPrevT0FirstDigiPsd, ECbmModuleId::kPsd);
+        fPrevBmonFirstDigiPsd = FillSystemOffsetHistos<CbmPsdDigi>(fBmonPsdDiff, fBmonPsdDiffEvo, fBmonPsdDiffEvoLong,
+                                                                   fBmonPsdMeanEvo, nullptr, T0Time, fPsdOffsetRange,
+                                                                   fPrevBmonFirstDigiPsd, ECbmModuleId::kPsd);
     }
 
     /// Count pulser candidates for each system
@@ -614,21 +618,21 @@ void CbmMcbm2019CheckPulser::CheckInterSystemOffset()
       fiPsdNb++;
     }  // for( Int_t iDigi = 0; iDigi < nrPsdDigis; ++iDigi )
 
-    fT0StsNb->Fill(fiT0Nb, fiStsNb);
-    fT0MuchNb->Fill(fiT0Nb, fiMuchNb);
-    fT0TrdNb->Fill(fiT0Nb, fiTrdNb);
-    fT0TofNb->Fill(fiT0Nb, fiTofNb);
-    fT0RichNb->Fill(fiT0Nb, fiRichNb);
-    fT0PsdNb->Fill(fiT0Nb, fiPsdNb);
+    fBmonStsNb->Fill(fiBmonNb, fiStsNb);
+    fBmonMuchNb->Fill(fiBmonNb, fiMuchNb);
+    fBmonTrdNb->Fill(fiBmonNb, fiTrdNb);
+    fBmonTofNb->Fill(fiBmonNb, fiTofNb);
+    fBmonRichNb->Fill(fiBmonNb, fiRichNb);
+    fBmonPsdNb->Fill(fiBmonNb, fiPsdNb);
 
-    fiT0Nb   = 0;
+    fiBmonNb = 0;
     fiStsNb  = 0;
     fiMuchNb = 0;
     fiTrdNb  = 0;
     fiTofNb  = 0;
     fiRichNb = 0;
     fiPsdNb  = 0;
-  }  // if (nrT0Digis < 1000000)
+  }  // if (nrBmonDigis < 1000000)
 
   /*
   for (Int_t iMuch = 0; iMuch < nrMuchDigis; ++iMuch) {
@@ -646,7 +650,7 @@ void CbmMcbm2019CheckPulser::CheckInterSystemOffset()
 
     if( 19132000. < dTimeSinceStart && dTimeSinceStart < 19600000 )
     {
-//      std::cout << Form( "Much hit in TS %5d: asic %2u chan %3u T0 time %12.0f ADC %2.0f",
+//      std::cout << Form( "Much hit in TS %5d: asic %2u chan %3u Bmon time %12.0f ADC %2.0f",
 //                            fNrTs, uAsic, uChan, (dTimeSinceStart - 19132000), dAdc )
 //              << std::endl;
       Double_t dTimeDistLastDigi = dTimeSinceStart - fdLastMuchDigi[ uAsic ][ uChan ];
@@ -665,7 +669,7 @@ void CbmMcbm2019CheckPulser::CheckInterSystemOffset()
 
         if( 32 != uChan )
           continue;
-    std::cout << Form( "Much pulser in TS %5d: chan %3u T0 time %12.0f ADC %2.0f dt %12.0f",
+    std::cout << Form( "Much pulser in TS %5d: chan %3u Bmon time %12.0f ADC %2.0f dt %12.0f",
                        fNrTs, uChan, dTime, dAdc, dTime - fdLastMuchDigiPulser[ uAsic ][ uChan ] )
               << std::endl;
     fdLastMuchDigiPulser[ uAsic ][ uChan ] = dTime;
@@ -807,16 +811,16 @@ Int_t CbmMcbm2019CheckPulser::FillSystemOffsetHistos(TH1* histo, TH2* histoEvo,
     profMeanEvo->Fill(T0Time * 1e-9 - fdStartTime, diffTime);
     /*
     if (ECbmModuleId::kMuch == iDetId )
-      std::cout << Form( "MUCH coinc in TS %5d: %7.2f T0 time %12.0f", fNrTs, diffTime, T0Time )
+      std::cout << Form( "MUCH coinc in TS %5d: %7.2f Bmon time %12.0f", fNrTs, diffTime, T0Time )
                 << std::endl;
 */
-    if (ECbmModuleId::kPsd == iDetId) fT0PsdDiffCharge->Fill(diffTime, digi->GetCharge());
+    if (ECbmModuleId::kPsd == iDetId) fBmonPsdDiffCharge->Fill(diffTime, digi->GetCharge());
 
     /// STS DPB mapping: ladder 1 is in DPB 1
     if (ECbmModuleId::kSts == iDetId && histoAFCK) {
       UInt_t uDPB = (0 < (digi->GetAddress() & 0x00000400));
       histoAFCK->Fill(uDPB, diffTime);
-      if (uDPB < kuMaxNbStsDpbs) fT0StsDpbDiffEvo[uDPB]->Fill(fNrTs, diffTime);
+      if (uDPB < kuMaxNbStsDpbs) fBmonStsDpbDiffEvo[uDPB]->Fill(fNrTs, diffTime);
     }  // if (ECbmModuleId::kSts == iDetId && histoAFCK)
 
     /// MUCH DPB mapping
@@ -834,8 +838,8 @@ Int_t CbmMcbm2019CheckPulser::FillSystemOffsetHistos(TH1* histo, TH2* histoEvo,
       UInt_t afck = muchDigi->GetRocId();
       UInt_t asic = muchDigi->GetNxId();
       histoAFCK->Fill(afck, diffTime);
-      fT0MuchAsicDiff->Fill(asic, diffTime);
-      if (asic < kuMaxNbMuchAsics) fT0MuchAsicDiffEvo[asic]->Fill(fNrTs, diffTime);
+      fBmonMuchAsicDiff->Fill(asic, diffTime);
+      if (asic < kuMaxNbMuchAsics) fBmonMuchAsicDiffEvo[asic]->Fill(fNrTs, diffTime);
     }  // if (ECbmModuleId::kMuch == iDetId && histoAFCK)
   }
 
@@ -852,36 +856,36 @@ void CbmMcbm2019CheckPulser::WriteHistos()
 
   TFile* outfile = TFile::Open(fOutFileName, "RECREATE");
 
-  fT0StsDiff->Write();
-  fT0MuchDiff->Write();
-  fT0TrdDiff->Write();
-  fT0TofDiff->Write();
-  fT0RichDiff->Write();
-  fT0PsdDiff->Write();
-  fT0PsdDiffCharge->Write();
-
-  fT0StsDiffEvo->Write();
-  fT0MuchDiffEvo->Write();
-  fT0TrdDiffEvo->Write();
-  fT0TofDiffEvo->Write();
-  fT0RichDiffEvo->Write();
-  fT0PsdDiffEvo->Write();
-
-  fT0StsDiffEvoLong->Write();
-  fT0MuchDiffEvoLong->Write();
-  fT0TrdDiffEvoLong->Write();
-  fT0TofDiffEvoLong->Write();
-  fT0RichDiffEvoLong->Write();
-  fT0PsdDiffEvoLong->Write();
-
-  fT0StsMeanEvo->Write();
-  fT0MuchMeanEvo->Write();
-  fT0TrdMeanEvo->Write();
-  fT0TofMeanEvo->Write();
-  fT0RichMeanEvo->Write();
-  fT0PsdMeanEvo->Write();
-
-  fT0T0Diff->Write();
+  fBmonStsDiff->Write();
+  fBmonMuchDiff->Write();
+  fBmonTrdDiff->Write();
+  fBmonTofDiff->Write();
+  fBmonRichDiff->Write();
+  fBmonPsdDiff->Write();
+  fBmonPsdDiffCharge->Write();
+
+  fBmonStsDiffEvo->Write();
+  fBmonMuchDiffEvo->Write();
+  fBmonTrdDiffEvo->Write();
+  fBmonTofDiffEvo->Write();
+  fBmonRichDiffEvo->Write();
+  fBmonPsdDiffEvo->Write();
+
+  fBmonStsDiffEvoLong->Write();
+  fBmonMuchDiffEvoLong->Write();
+  fBmonTrdDiffEvoLong->Write();
+  fBmonTofDiffEvoLong->Write();
+  fBmonRichDiffEvoLong->Write();
+  fBmonPsdDiffEvoLong->Write();
+
+  fBmonStsMeanEvo->Write();
+  fBmonMuchMeanEvo->Write();
+  fBmonTrdMeanEvo->Write();
+  fBmonTofMeanEvo->Write();
+  fBmonRichMeanEvo->Write();
+  fBmonPsdMeanEvo->Write();
+
+  fBmonBmonDiff->Write();
   fStsStsDiff->Write();
   fMuchMuchDiff->Write();
   fTrdTrdDiff->Write();
@@ -889,35 +893,35 @@ void CbmMcbm2019CheckPulser::WriteHistos()
   fRichRichDiff->Write();
   fPsdPsdDiff->Write();
 
-  fT0StsNb->Write();
-  fT0MuchNb->Write();
-  fT0TrdNb->Write();
-  fT0TofNb->Write();
-  fT0RichNb->Write();
-  fT0PsdNb->Write();
+  fBmonStsNb->Write();
+  fBmonMuchNb->Write();
+  fBmonTrdNb->Write();
+  fBmonTofNb->Write();
+  fBmonRichNb->Write();
+  fBmonPsdNb->Write();
 
-  fT0Address->Write();
-  fT0Channel->Write();
+  fBmonAddress->Write();
+  fBmonChannel->Write();
 
-  fT0StsDpbDiff->Write();
+  fBmonStsDpbDiff->Write();
   /*
   for( UInt_t uStsDpb = 0; uStsDpb < kuMaxNbStsDpbs; ++uStsDpb )
   {
-    fT0StsDpbDiffEvo[uStsDpb]->Write();
+    fBmonStsDpbDiffEvo[uStsDpb]->Write();
     fStsDpbCntsEvo[uStsDpb]->Write();
   }
 */
-  fT0MuchRocDiff->Write();
-  fT0MuchAsicDiff->Write();
+  fBmonMuchRocDiff->Write();
+  fBmonMuchAsicDiff->Write();
   /*
   for( UInt_t uMuchAsic = 0; uMuchAsic < kuMaxNbMuchAsics; ++uMuchAsic )
-    fT0MuchAsicDiffEvo[uMuchAsic]->Write();
+    fBmonMuchAsicDiffEvo[uMuchAsic]->Write();
 */
   /*
   fDigisPerAsicEvo->Write();
   fSameChanDigisDistEvo->Write();
 
-     fDigiTimeEvoT0 ->Write();
+     fDigiTimeEvoBmon ->Write();
      fDigiTimeEvoSts ->Write();
      fDigiTimeEvoMuch->Write();
      fDigiTimeEvoTof->Write();
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019CheckPulser.h b/fles/mcbm2018/tasks/CbmMcbm2019CheckPulser.h
index b1b637e94ac0d6faced7fcbdd81aa1b54ef69710..cce488306ed1170f42590fa7bf57207a0abf837f 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019CheckPulser.h
+++ b/fles/mcbm2018/tasks/CbmMcbm2019CheckPulser.h
@@ -71,10 +71,10 @@ public:
 
   void SetPsdOffsetSearchRange(Int_t val = 1000) { fPsdOffsetRange = val; }
 
-  inline void SetT0PulserTotLimits(UInt_t uMin, UInt_t uMax)
+  inline void SetBmonPulserTotLimits(UInt_t uMin, UInt_t uMax)
   {
-    fuMinTotPulserT0 = uMin;
-    fuMaxTotPulserT0 = uMax;
+    fuMinTotPulserBmon = uMin;
+    fuMaxTotPulserBmon = uMax;
   }
   inline void SetStsPulserAdcLimits(UInt_t uMin, UInt_t uMax)
   {
@@ -137,8 +137,8 @@ private:
 
   /** Digi data **/
   CbmDigiManager* fDigiMan                     = nullptr;  //!
-  const std::vector<CbmTofDigi>* fT0DigiVector = nullptr;  //!
-  TClonesArray* fT0DigiArray                   = nullptr;  //!
+  const std::vector<CbmTofDigi>* fBmonDigiVector = nullptr;  //!
+  TClonesArray* fBmonDigiArray                   = nullptr;  //!
   TClonesArray* fTimeSliceMetaDataArray        = nullptr;  //!
   const TimesliceMetaData* pTsMetaData         = nullptr;
 
@@ -151,7 +151,7 @@ private:
   static const UInt_t kuMaxChannelSts  = 3000;
 
   /// Variables to store the previous digi time
-  Double_t fPrevTimeT0   = 0.;
+  Double_t fPrevTimeBmon = 0.;
   Double_t fPrevTimeSts  = 0.;
   Double_t fPrevTimeMuch = 0.;
   Double_t fPrevTimeTrd  = 0.;
@@ -159,19 +159,19 @@ private:
   Double_t fPrevTimeRich = 0.;
   Double_t fPrevTimePsd  = 0.;
 
-  /// Variables to store the first digi fitting the previous T0 hits
+  /// Variables to store the first digi fitting the previous Bmon hits
   /// => Time-order means the time window for following one can only be in a later digi
-  Int_t fPrevT0FirstDigiSts  = 0;
-  Int_t fPrevT0FirstDigiMuch = 0;
-  Int_t fPrevT0FirstDigiTrd  = 0;
-  Int_t fPrevT0FirstDigiTof  = 0;
-  Int_t fPrevT0FirstDigiRich = 0;
-  Int_t fPrevT0FirstDigiPsd  = 0;
+  Int_t fPrevBmonFirstDigiSts  = 0;
+  Int_t fPrevBmonFirstDigiMuch = 0;
+  Int_t fPrevBmonFirstDigiTrd  = 0;
+  Int_t fPrevBmonFirstDigiTof  = 0;
+  Int_t fPrevBmonFirstDigiRich = 0;
+  Int_t fPrevBmonFirstDigiPsd  = 0;
 
   /// User settings: Data correction parameters
   /// Charge cut
-  UInt_t fuMinTotPulserT0     = 182;
-  UInt_t fuMaxTotPulserT0     = 190;
+  UInt_t fuMinTotPulserBmon   = 182;
+  UInt_t fuMaxTotPulserBmon   = 190;
   UInt_t fuMinAdcPulserSts    = 90;
   UInt_t fuMaxAdcPulserSts    = 100;
   UInt_t fuMinAdcPulserMuch   = 5;
@@ -207,37 +207,37 @@ private:
 
   Int_t fBinWidth = 1;
 
-  TH1* fT0StsDiff       = nullptr;
-  TH1* fT0MuchDiff      = nullptr;
-  TH1* fT0TrdDiff       = nullptr;
-  TH1* fT0TofDiff       = nullptr;
-  TH1* fT0RichDiff      = nullptr;
-  TH1* fT0PsdDiff       = nullptr;
-  TH2* fT0PsdDiffCharge = nullptr;
-
-  TH2* fT0StsDiffEvo  = nullptr;
-  TH2* fT0MuchDiffEvo = nullptr;
-  TH2* fT0TrdDiffEvo  = nullptr;
-  TH2* fT0TofDiffEvo  = nullptr;
-  TH2* fT0RichDiffEvo = nullptr;
-  TH2* fT0PsdDiffEvo  = nullptr;
-
-  TH2* fT0StsDiffEvoLong  = nullptr;
-  TH2* fT0MuchDiffEvoLong = nullptr;
-  TH2* fT0TrdDiffEvoLong  = nullptr;
-  TH2* fT0TofDiffEvoLong  = nullptr;
-  TH2* fT0RichDiffEvoLong = nullptr;
-  TH2* fT0PsdDiffEvoLong  = nullptr;
+  TH1* fBmonStsDiff       = nullptr;
+  TH1* fBmonMuchDiff      = nullptr;
+  TH1* fBmonTrdDiff       = nullptr;
+  TH1* fBmonTofDiff       = nullptr;
+  TH1* fBmonRichDiff      = nullptr;
+  TH1* fBmonPsdDiff       = nullptr;
+  TH2* fBmonPsdDiffCharge = nullptr;
+
+  TH2* fBmonStsDiffEvo  = nullptr;
+  TH2* fBmonMuchDiffEvo = nullptr;
+  TH2* fBmonTrdDiffEvo  = nullptr;
+  TH2* fBmonTofDiffEvo  = nullptr;
+  TH2* fBmonRichDiffEvo = nullptr;
+  TH2* fBmonPsdDiffEvo  = nullptr;
+
+  TH2* fBmonStsDiffEvoLong  = nullptr;
+  TH2* fBmonMuchDiffEvoLong = nullptr;
+  TH2* fBmonTrdDiffEvoLong  = nullptr;
+  TH2* fBmonTofDiffEvoLong  = nullptr;
+  TH2* fBmonRichDiffEvoLong = nullptr;
+  TH2* fBmonPsdDiffEvoLong  = nullptr;
 
   Double_t fdStartTime     = -1;
-  TProfile* fT0StsMeanEvo  = nullptr;
-  TProfile* fT0MuchMeanEvo = nullptr;
-  TProfile* fT0TrdMeanEvo  = nullptr;
-  TProfile* fT0TofMeanEvo  = nullptr;
-  TProfile* fT0RichMeanEvo = nullptr;
-  TProfile* fT0PsdMeanEvo  = nullptr;
-
-  TH1* fT0T0Diff     = nullptr;
+  TProfile* fBmonStsMeanEvo  = nullptr;
+  TProfile* fBmonMuchMeanEvo = nullptr;
+  TProfile* fBmonTrdMeanEvo  = nullptr;
+  TProfile* fBmonTofMeanEvo  = nullptr;
+  TProfile* fBmonRichMeanEvo = nullptr;
+  TProfile* fBmonPsdMeanEvo  = nullptr;
+
+  TH1* fBmonBmonDiff = nullptr;
   TH1* fStsStsDiff   = nullptr;
   TH1* fMuchMuchDiff = nullptr;
   TH1* fTrdTrdDiff   = nullptr;
@@ -245,14 +245,14 @@ private:
   TH1* fRichRichDiff = nullptr;
   TH1* fPsdPsdDiff   = nullptr;
 
-  TH2* fT0StsNb  = nullptr;
-  TH2* fT0MuchNb = nullptr;
-  TH2* fT0TrdNb  = nullptr;
-  TH2* fT0TofNb  = nullptr;
-  TH2* fT0RichNb = nullptr;
-  TH2* fT0PsdNb  = nullptr;
+  TH2* fBmonStsNb  = nullptr;
+  TH2* fBmonMuchNb = nullptr;
+  TH2* fBmonTrdNb  = nullptr;
+  TH2* fBmonTofNb  = nullptr;
+  TH2* fBmonRichNb = nullptr;
+  TH2* fBmonPsdNb  = nullptr;
 
-  Int_t fiT0Nb   = 0;
+  Int_t fiBmonNb = 0;
   Int_t fiStsNb  = 0;
   Int_t fiMuchNb = 0;
   Int_t fiTrdNb  = 0;
@@ -260,25 +260,25 @@ private:
   Int_t fiRichNb = 0;
   Int_t fiPsdNb  = 0;
 
-  TH1* fT0Address = nullptr;
-  TH1* fT0Channel = nullptr;
+  TH1* fBmonAddress = nullptr;
+  TH1* fBmonChannel = nullptr;
 
-  TH2* fT0StsDpbDiff = nullptr;
-  TH2* fT0StsDpbDiffEvo[kuMaxNbStsDpbs];
+  TH2* fBmonStsDpbDiff = nullptr;
+  TH2* fBmonStsDpbDiffEvo[kuMaxNbStsDpbs];
   TH1* fStsDpbCntsEvo[kuMaxNbStsDpbs];
 
-  TH2* fT0MuchRocDiff  = nullptr;
-  TH2* fT0MuchAsicDiff = nullptr;
-  TH2* fT0MuchAsicDiffEvo[kuMaxNbMuchAsics];
+  TH2* fBmonMuchRocDiff  = nullptr;
+  TH2* fBmonMuchAsicDiff = nullptr;
+  TH2* fBmonMuchAsicDiffEvo[kuMaxNbMuchAsics];
 
   TH2* fDigisPerAsicEvo = nullptr;
   Double_t fdLastMuchDigi[kuMaxNbMuchAsics][kuNbChanSMX];
   Double_t fdLastMuchDigiPulser[kuMaxNbMuchAsics][kuNbChanSMX];
   TH2* fSameChanDigisDistEvo = nullptr;
 
-  Double_t fdLastT0DigiPulser = 0;
+  Double_t fdLastBmonDigiPulser = 0;
 
-  TH2* fDigiTimeEvoT0   = nullptr;
+  TH2* fDigiTimeEvoBmon = nullptr;
   TH2* fDigiTimeEvoSts  = nullptr;
   TH2* fDigiTimeEvoMuch = nullptr;
   TH2* fDigiTimeEvoTof  = nullptr;
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019CheckTimingPairs.cxx b/fles/mcbm2018/tasks/CbmMcbm2019CheckTimingPairs.cxx
index 278f1ff6847db953b35e9eea104aa1d1b48b3b03..7df847415600f92a81e32da53d1caffb831d9825 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019CheckTimingPairs.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2019CheckTimingPairs.cxx
@@ -56,16 +56,16 @@ InitStatus CbmMcbm2019CheckTimingPairs::Init()
   fDigiMan->UseMuchBeamTimeDigi();
   fDigiMan->Init();
 
-  // T0 is not included in DigiManager; have to take care here
+  // Bmon is not included in DigiManager; have to take care here
   // Try to find a vector branch for the digi
-  fT0DigiVector = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("T0Digi");
-  if (!fT0DigiVector) {
-    LOG(info) << "No T0 digi vector found; trying TClonesArray";
+  fBmonDigiVector = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("BmonDigi");
+  if (!fBmonDigiVector) {
+    LOG(info) << "No Bmon digi vector found; trying TClonesArray";
     if (std::is_convertible<TObject*, CbmTofDigi*>::value) {
-      fT0DigiArray = dynamic_cast<TClonesArray*>(ioman->GetObject("T0Digi"));
-      if (!fT0DigiArray) LOG(info) << "No T0 digi input found.";
+      fBmonDigiArray = dynamic_cast<TClonesArray*>(ioman->GetObject("BmonDigi"));
+      if (!fBmonDigiArray) LOG(info) << "No Bmon digi input found.";
     }  //? CbmTofDigi derives from TObject
-  }    //? No vector for T0 digis
+  }    //? No vector for Bmon digis
 
   if (!fDigiMan->IsPresent(ECbmModuleId::kSts)) { LOG(info) << "No STS digi input found."; }
 
@@ -99,7 +99,7 @@ void CbmMcbm2019CheckTimingPairs::CreateHistos()
   for (UInt_t uDetA = 0; uDetA < fvsDetectors.size(); ++uDetA) {
     for (UInt_t uDetB = uDetA; uDetB < fvsDetectors.size(); ++uDetB) {
       std::string sName  = Form("hDt%s_Vs_%s", fvsDetectors[uDetA].c_str(), fvsDetectors[uDetB].c_str());
-      std::string sTitle = Form("Time diff to T0 for %s VS for %s; Dt %s [ns]; "
+      std::string sTitle = Form("Time diff to Bmon for %s VS for %s; Dt %s [ns]; "
                                 "dT %s [ns]; Possible pairs []",
                                 fvsDetectors[uDetA].c_str(), fvsDetectors[uDetB].c_str(), fvsDetectors[uDetA].c_str(),
                                 fvsDetectors[uDetB].c_str());
@@ -130,11 +130,11 @@ void CbmMcbm2019CheckTimingPairs::Exec(Option_t* /*option*/)
 
   if (0 < fNrTs && 0 == fNrTs % 1000) LOG(info) << Form("Processing TS %6d", fNrTs);
 
-  /// Fill buffers of hits in correlation to T0
-  UInt_t uNbT0Digis = 0;
-  if (fT0DigiVector) uNbT0Digis = fT0DigiVector->size();
-  else if (fT0DigiArray)
-    uNbT0Digis = fT0DigiArray->GetEntriesFast();
+  /// Fill buffers of hits in correlation to Bmon
+  UInt_t uNbBmonDigis = 0;
+  if (fBmonDigiVector) uNbBmonDigis = fBmonDigiVector->size();
+  else if (fBmonDigiArray)
+    uNbBmonDigis = fBmonDigiArray->GetEntriesFast();
 
   /*
    UInt_t uNbStsDigis  = fDigiMan->GetNofDigis(ECbmModuleId::kSts);
@@ -145,16 +145,16 @@ void CbmMcbm2019CheckTimingPairs::Exec(Option_t* /*option*/)
    UInt_t uNbPsdDigis  = fDigiMan->GetNofDigis(ECbmModuleId::kPsd);
 */
 
-  fuNbDigisWithCoincT0 = 0;
-  for (UInt_t uT0Digi = 0; uT0Digi < uNbT0Digis; ++uT0Digi) {
-    const CbmTofDigi* pDigiT0 = nullptr;
-    if (fT0DigiVector) pDigiT0 = &(fT0DigiVector->at(uT0Digi));
-    else if (fT0DigiArray)
-      pDigiT0 = dynamic_cast<CbmTofDigi*>(fT0DigiArray->At(uT0Digi));
-    assert(pDigiT0);
+  fuNbDigisWithCoincBmon = 0;
+  for (UInt_t uBmonDigi = 0; uBmonDigi < uNbBmonDigis; ++uBmonDigi) {
+    const CbmTofDigi* pDigiBmon = nullptr;
+    if (fBmonDigiVector) pDigiBmon = &(fBmonDigiVector->at(uBmonDigi));
+    else if (fBmonDigiArray)
+      pDigiBmon = dynamic_cast<CbmTofDigi*>(fBmonDigiArray->At(uBmonDigi));
+    assert(pDigiBmon);
 
-    //      UInt_t uChannel = pDigiT0->GetChannel();
-    Double_t dTimeT0 = pDigiT0->GetTime();
+    //      UInt_t uChannel = pDigiBmon->GetChannel();
+    Double_t dTimeBmon = pDigiBmon->GetTime();
 
     fuNbCoincDigisSts  = 0;
     fuNbCoincDigisMuch = 0;
@@ -164,38 +164,40 @@ void CbmMcbm2019CheckTimingPairs::Exec(Option_t* /*option*/)
     fuNbCoincDigisPsd  = 0;
     for (UInt_t uIndexDet = 0; uIndexDet < fvsDetectors.size(); ++uIndexDet) {
       if ("STS" == fvsDetectors[uIndexDet]) {
-        fvuPrevT0FirstDigiDet[uIndexDet] = FillCorrBuffer<CbmStsDigi>(
-          dTimeT0, fvuPrevT0FirstDigiDet[uIndexDet], -fdStsTimeWin, fdStsTimeWin, fvDigisSts, ECbmModuleId::kSts);
+        fvuPrevBmonFirstDigiDet[uIndexDet] = FillCorrBuffer<CbmStsDigi>(
+          dTimeBmon, fvuPrevBmonFirstDigiDet[uIndexDet], -fdStsTimeWin, fdStsTimeWin, fvDigisSts, ECbmModuleId::kSts);
       }  // if( "STS" == fvsDetectors[ uIndexDet ] )
       else if ("MUCH" == fvsDetectors[uIndexDet]) {
-        fvuPrevT0FirstDigiDet[uIndexDet] = FillCorrBuffer<CbmMuchBeamTimeDigi>(
-          dTimeT0, fvuPrevT0FirstDigiDet[uIndexDet], -fdMuchTimeWin, fdMuchTimeWin, fvDigisMuch, ECbmModuleId::kMuch);
+        fvuPrevBmonFirstDigiDet[uIndexDet] =
+          FillCorrBuffer<CbmMuchBeamTimeDigi>(dTimeBmon, fvuPrevBmonFirstDigiDet[uIndexDet], -fdMuchTimeWin,
+                                              fdMuchTimeWin, fvDigisMuch, ECbmModuleId::kMuch);
       }  // else if( "MUCH" == fvsDetectors[ uIndexDet ] )
       else if ("TRD" == fvsDetectors[uIndexDet]) {
-        fvuPrevT0FirstDigiDet[uIndexDet] = FillCorrBuffer<CbmTrdDigi>(
-          dTimeT0, fvuPrevT0FirstDigiDet[uIndexDet], -fdTrdTimeWin, fdTrdTimeWin, fvDigisTrd, ECbmModuleId::kTrd);
+        fvuPrevBmonFirstDigiDet[uIndexDet] = FillCorrBuffer<CbmTrdDigi>(
+          dTimeBmon, fvuPrevBmonFirstDigiDet[uIndexDet], -fdTrdTimeWin, fdTrdTimeWin, fvDigisTrd, ECbmModuleId::kTrd);
       }  // else if( "TRD" == fvsDetectors[ uIndexDet ] )
       else if ("TOF" == fvsDetectors[uIndexDet]) {
-        fvuPrevT0FirstDigiDet[uIndexDet] = FillCorrBuffer<CbmTofDigi>(
-          dTimeT0, fvuPrevT0FirstDigiDet[uIndexDet], -fdTofTimeWin, fdTofTimeWin, fvDigisTof, ECbmModuleId::kTof);
+        fvuPrevBmonFirstDigiDet[uIndexDet] = FillCorrBuffer<CbmTofDigi>(
+          dTimeBmon, fvuPrevBmonFirstDigiDet[uIndexDet], -fdTofTimeWin, fdTofTimeWin, fvDigisTof, ECbmModuleId::kTof);
       }  // else if( "TOF" == fvsDetectors[ uIndexDet ] )
       else if ("RICH" == fvsDetectors[uIndexDet]) {
-        fvuPrevT0FirstDigiDet[uIndexDet] = FillCorrBuffer<CbmRichDigi>(
-          dTimeT0, fvuPrevT0FirstDigiDet[uIndexDet], -fdRichTimeWin, fdRichTimeWin, fvDigisRich, ECbmModuleId::kRich);
+        fvuPrevBmonFirstDigiDet[uIndexDet] =
+          FillCorrBuffer<CbmRichDigi>(dTimeBmon, fvuPrevBmonFirstDigiDet[uIndexDet], -fdRichTimeWin, fdRichTimeWin,
+                                      fvDigisRich, ECbmModuleId::kRich);
       }  // else if( "RICH" == fvsDetectors[ uIndexDet ] )
       else if ("PSD" == fvsDetectors[uIndexDet]) {
-        fvuPrevT0FirstDigiDet[uIndexDet] = FillCorrBuffer<CbmPsdDigi>(
-          dTimeT0, fvuPrevT0FirstDigiDet[uIndexDet], -fdPsdTimeWin, fdPsdTimeWin, fvDigisPsd, ECbmModuleId::kPsd);
+        fvuPrevBmonFirstDigiDet[uIndexDet] = FillCorrBuffer<CbmPsdDigi>(
+          dTimeBmon, fvuPrevBmonFirstDigiDet[uIndexDet], -fdPsdTimeWin, fdPsdTimeWin, fvDigisPsd, ECbmModuleId::kPsd);
       }  // else if( "PSD" == fvsDetectors[ uIndexDet ] )
       else
         LOG(fatal) << "CbmMcbm2019CheckTimingPairs => Unknown detector";
     }  // for( UInt_t uIndexDet = 0; uIndexDet < fvsDetectors.size(); ++uIndexDet )
 
-    /// Store also the T0 Hit if any STS or MUCH coincidence
+    /// Store also the Bmon Hit if any STS or MUCH coincidence
     if (0 < fuNbCoincDigisSts || 0 < fuNbCoincDigisMuch || 0 < fuNbCoincDigisTrd || 0 < fuNbCoincDigisTof
         || 0 < fuNbCoincDigisRich || 0 < fuNbCoincDigisPsd) {
-      fvDigisT0.push_back(*pDigiT0);
-      ++fuNbDigisWithCoincT0;
+      fvDigisBmon.push_back(*pDigiBmon);
+      ++fuNbDigisWithCoincBmon;
 
       /// Make sure we keep both vector in sync at the same size
       if (0 == fuNbCoincDigisSts) fvDigisSts.push_back(std::vector<CbmStsDigi>());
@@ -205,30 +207,30 @@ void CbmMcbm2019CheckTimingPairs::Exec(Option_t* /*option*/)
       if (0 == fuNbCoincDigisRich) fvDigisRich.push_back(std::vector<CbmRichDigi>());
       if (0 == fuNbCoincDigisPsd) fvDigisPsd.push_back(std::vector<CbmPsdDigi>());
     }  // if( 0 < uNbCoincDigisSts || 0 < uNbCoincDigisMuch )
-  }    // for( UInt_t uT0Digi = 0; uT0Digi < uNbT0Digis; ++uT0Digi )
+  }    // for( UInt_t uBmonDigi = 0; uBmonDigi < uNbBmonDigis; ++uBmonDigi )
 
   /// Fill plots from buffers f correlated hits
-  for (UInt_t uIndexT0 = 0; uIndexT0 < fvDigisT0.size(); ++uIndexT0) {
+  for (UInt_t uIndexBmon = 0; uIndexBmon < fvDigisBmon.size(); ++uIndexBmon) {
     UInt_t uHistoIdx = 0;
     for (UInt_t uIndexDetA = 0; uIndexDetA < fvsDetectors.size(); ++uIndexDetA) {
       for (UInt_t uIndexDetB = uIndexDetA; uIndexDetB < fvsDetectors.size(); ++uIndexDetB) {
         if ("STS" == fvsDetectors[uIndexDetA]) {
-          FillHistosInter<CbmStsDigi>(uIndexT0, uIndexDetA, uIndexDetB, fvDigisSts[uIndexT0], uHistoIdx);
+          FillHistosInter<CbmStsDigi>(uIndexBmon, uIndexDetA, uIndexDetB, fvDigisSts[uIndexBmon], uHistoIdx);
         }  // if( "STS" == fvsDetectors[ uIndexDetA ] )
         else if ("MUCH" == fvsDetectors[uIndexDetA]) {
-          FillHistosInter<CbmMuchBeamTimeDigi>(uIndexT0, uIndexDetA, uIndexDetB, fvDigisMuch[uIndexT0], uHistoIdx);
+          FillHistosInter<CbmMuchBeamTimeDigi>(uIndexBmon, uIndexDetA, uIndexDetB, fvDigisMuch[uIndexBmon], uHistoIdx);
         }  // else if( "MUCH" == fvsDetectors[ uIndexDetA ] )
         else if ("TRD" == fvsDetectors[uIndexDetA]) {
-          FillHistosInter<CbmTrdDigi>(uIndexT0, uIndexDetA, uIndexDetB, fvDigisTrd[uIndexT0], uHistoIdx);
+          FillHistosInter<CbmTrdDigi>(uIndexBmon, uIndexDetA, uIndexDetB, fvDigisTrd[uIndexBmon], uHistoIdx);
         }  // else if( "TRD" == fvsDetectors[ uIndexDetA ] )
         else if ("TOF" == fvsDetectors[uIndexDetA]) {
-          FillHistosInter<CbmTofDigi>(uIndexT0, uIndexDetA, uIndexDetB, fvDigisTof[uIndexT0], uHistoIdx);
+          FillHistosInter<CbmTofDigi>(uIndexBmon, uIndexDetA, uIndexDetB, fvDigisTof[uIndexBmon], uHistoIdx);
         }  // else if( "TOF" == fvsDetectors[ uIndexDetA ] )
         else if ("RICH" == fvsDetectors[uIndexDetA]) {
-          FillHistosInter<CbmRichDigi>(uIndexT0, uIndexDetA, uIndexDetB, fvDigisRich[uIndexT0], uHistoIdx);
+          FillHistosInter<CbmRichDigi>(uIndexBmon, uIndexDetA, uIndexDetB, fvDigisRich[uIndexBmon], uHistoIdx);
         }  // else if( "RICH" == fvsDetectors[ uIndexDetA ] )
         else if ("PSD" == fvsDetectors[uIndexDetA]) {
-          FillHistosInter<CbmPsdDigi>(uIndexT0, uIndexDetA, uIndexDetB, fvDigisPsd[uIndexT0], uHistoIdx);
+          FillHistosInter<CbmPsdDigi>(uIndexBmon, uIndexDetA, uIndexDetB, fvDigisPsd[uIndexBmon], uHistoIdx);
         }  // else if( "PSD" == fvsDetectors[ uIndexDetA ] )
         else
           LOG(fatal) << "CbmMcbm2019CheckTimingPairs => Unknown detector";
@@ -238,15 +240,15 @@ void CbmMcbm2019CheckTimingPairs::Exec(Option_t* /*option*/)
     }    // for( UInt_t uIndexDetA = 0; uIndexDetA < fvsDetectors.size(); ++uIndexDetA )
 
     /// Cleanup buffers
-    fvDigisSts[uIndexT0].clear();
-    fvDigisMuch[uIndexT0].clear();
-    fvDigisTrd[uIndexT0].clear();
-    fvDigisTof[uIndexT0].clear();
-    fvDigisRich[uIndexT0].clear();
-    fvDigisPsd[uIndexT0].clear();
-  }  // for( UInt_t uIndexT0 = 0; uIndexT0 < fvDigisT0.size(); ++uIndexT0 )
+    fvDigisSts[uIndexBmon].clear();
+    fvDigisMuch[uIndexBmon].clear();
+    fvDigisTrd[uIndexBmon].clear();
+    fvDigisTof[uIndexBmon].clear();
+    fvDigisRich[uIndexBmon].clear();
+    fvDigisPsd[uIndexBmon].clear();
+  }  // for( UInt_t uIndexBmon = 0; uIndexBmon < fvDigisBmon.size(); ++uIndexBmon )
   /// Cleanup buffers
-  fvDigisT0.clear();
+  fvDigisBmon.clear();
   fvDigisSts.clear();
   fvDigisMuch.clear();
   fvDigisTrd.clear();
@@ -260,7 +262,7 @@ void CbmMcbm2019CheckTimingPairs::Exec(Option_t* /*option*/)
 }
 
 template<class Digi>
-UInt_t CbmMcbm2019CheckTimingPairs::FillCorrBuffer(Double_t dTimeT0, UInt_t uIndexStart, Double_t dWinStartTime,
+UInt_t CbmMcbm2019CheckTimingPairs::FillCorrBuffer(Double_t dTimeBmon, UInt_t uIndexStart, Double_t dWinStartTime,
                                                    Double_t dWinStopTime, std::vector<std::vector<Digi>>& vDigi,
                                                    ECbmModuleId iDetId)
 {
@@ -272,7 +274,7 @@ UInt_t CbmMcbm2019CheckTimingPairs::FillCorrBuffer(Double_t dTimeT0, UInt_t uInd
     const Digi* digi = fDigiMan->Get<Digi>(iDigi);
 
     Double_t dTimeDet  = digi->GetTime();
-    Double_t dTimeDiff = dTimeDet - dTimeT0;
+    Double_t dTimeDiff = dTimeDet - dTimeBmon;
 
     if (dTimeDiff < dWinStartTime) {
       uFirstDigiInWin = iDigi;
@@ -305,7 +307,7 @@ UInt_t CbmMcbm2019CheckTimingPairs::FillCorrBuffer(Double_t dTimeT0, UInt_t uInd
         /// Concidence candidate, store it!
         if (0 == fuNbCoincDigisSts) vDigi.push_back(std::vector<Digi>());
 
-        vDigi[fuNbDigisWithCoincT0].push_back((*digi));
+        vDigi[fuNbDigisWithCoincBmon].push_back((*digi));
         ++fuNbCoincDigisSts;
 
         break;
@@ -332,7 +334,7 @@ UInt_t CbmMcbm2019CheckTimingPairs::FillCorrBuffer(Double_t dTimeT0, UInt_t uInd
         /// Concidence candidate, store it!
         if (0 == fuNbCoincDigisMuch) vDigi.push_back(std::vector<Digi>());
 
-        vDigi[fuNbDigisWithCoincT0].push_back((*digi));
+        vDigi[fuNbDigisWithCoincBmon].push_back((*digi));
         ++fuNbCoincDigisMuch;
 
         break;
@@ -352,7 +354,7 @@ UInt_t CbmMcbm2019CheckTimingPairs::FillCorrBuffer(Double_t dTimeT0, UInt_t uInd
         /// Concidence candidate, store it!
         if (0 == fuNbCoincDigisTrd) vDigi.push_back(std::vector<Digi>());
 
-        vDigi[fuNbDigisWithCoincT0].push_back((*digi));
+        vDigi[fuNbDigisWithCoincBmon].push_back((*digi));
         ++fuNbCoincDigisTrd;
 
         break;
@@ -365,7 +367,7 @@ UInt_t CbmMcbm2019CheckTimingPairs::FillCorrBuffer(Double_t dTimeT0, UInt_t uInd
         /// Concidence candidate, store it!
         if (0 == fuNbCoincDigisTof) vDigi.push_back(std::vector<Digi>());
 
-        vDigi[fuNbDigisWithCoincT0].push_back((*digi));
+        vDigi[fuNbDigisWithCoincBmon].push_back((*digi));
         ++fuNbCoincDigisTof;
 
         break;
@@ -378,7 +380,7 @@ UInt_t CbmMcbm2019CheckTimingPairs::FillCorrBuffer(Double_t dTimeT0, UInt_t uInd
         /// Concidence candidate, store it!
         if (0 == fuNbCoincDigisRich) vDigi.push_back(std::vector<Digi>());
 
-        vDigi[fuNbDigisWithCoincT0].push_back((*digi));
+        vDigi[fuNbDigisWithCoincBmon].push_back((*digi));
         ++fuNbCoincDigisRich;
 
         break;
@@ -397,7 +399,7 @@ UInt_t CbmMcbm2019CheckTimingPairs::FillCorrBuffer(Double_t dTimeT0, UInt_t uInd
         /// Concidence candidate, store it!
         if (0 == fuNbCoincDigisPsd) vDigi.push_back(std::vector<Digi>());
 
-        vDigi[fuNbDigisWithCoincT0].push_back((*digi));
+        vDigi[fuNbDigisWithCoincBmon].push_back((*digi));
         ++fuNbCoincDigisPsd;
 
         break;
@@ -410,37 +412,37 @@ UInt_t CbmMcbm2019CheckTimingPairs::FillCorrBuffer(Double_t dTimeT0, UInt_t uInd
 }
 
 template<class DigiA>
-void CbmMcbm2019CheckTimingPairs::FillHistosInter(UInt_t uIndexT0, UInt_t uIndexDetA, UInt_t uIndexDetB,
+void CbmMcbm2019CheckTimingPairs::FillHistosInter(UInt_t uIndexBmon, UInt_t uIndexDetA, UInt_t uIndexDetB,
                                                   std::vector<DigiA>& vCorrDigA, UInt_t uHistoIdx)
 {
   if ("STS" == fvsDetectors[uIndexDetB]) {
-    FillHistos<DigiA, CbmStsDigi>(uIndexT0, uIndexDetA, uIndexDetB, vCorrDigA, fvDigisSts[uIndexT0], uHistoIdx);
+    FillHistos<DigiA, CbmStsDigi>(uIndexBmon, uIndexDetA, uIndexDetB, vCorrDigA, fvDigisSts[uIndexBmon], uHistoIdx);
   }  // if( "STS" == fvsDetectors[ uIndexDetB ] )
   else if ("MUCH" == fvsDetectors[uIndexDetB]) {
-    FillHistos<DigiA, CbmMuchBeamTimeDigi>(uIndexT0, uIndexDetA, uIndexDetB, vCorrDigA, fvDigisMuch[uIndexT0],
+    FillHistos<DigiA, CbmMuchBeamTimeDigi>(uIndexBmon, uIndexDetA, uIndexDetB, vCorrDigA, fvDigisMuch[uIndexBmon],
                                            uHistoIdx);
   }  // else if( "MUCH" == fvsDetectors[ uIndexDetB ] )
   else if ("TRD" == fvsDetectors[uIndexDetB]) {
-    FillHistos<DigiA, CbmTrdDigi>(uIndexT0, uIndexDetA, uIndexDetB, vCorrDigA, fvDigisTrd[uIndexT0], uHistoIdx);
+    FillHistos<DigiA, CbmTrdDigi>(uIndexBmon, uIndexDetA, uIndexDetB, vCorrDigA, fvDigisTrd[uIndexBmon], uHistoIdx);
   }  // else if( "TRD" == fvsDetectors[ uIndexDetB ] )
   else if ("TOF" == fvsDetectors[uIndexDetB]) {
-    FillHistos<DigiA, CbmTofDigi>(uIndexT0, uIndexDetA, uIndexDetB, vCorrDigA, fvDigisTof[uIndexT0], uHistoIdx);
+    FillHistos<DigiA, CbmTofDigi>(uIndexBmon, uIndexDetA, uIndexDetB, vCorrDigA, fvDigisTof[uIndexBmon], uHistoIdx);
   }  // else if( "TOF" == fvsDetectors[ uIndexDetB ] )
   else if ("RICH" == fvsDetectors[uIndexDetB]) {
-    FillHistos<DigiA, CbmRichDigi>(uIndexT0, uIndexDetA, uIndexDetB, vCorrDigA, fvDigisRich[uIndexT0], uHistoIdx);
+    FillHistos<DigiA, CbmRichDigi>(uIndexBmon, uIndexDetA, uIndexDetB, vCorrDigA, fvDigisRich[uIndexBmon], uHistoIdx);
   }  // else if( "RICH" == fvsDetectors[ uIndexDetB ] )
   else if ("PSD" == fvsDetectors[uIndexDetB]) {
-    FillHistos<DigiA, CbmPsdDigi>(uIndexT0, uIndexDetA, uIndexDetB, vCorrDigA, fvDigisPsd[uIndexT0], uHistoIdx);
+    FillHistos<DigiA, CbmPsdDigi>(uIndexBmon, uIndexDetA, uIndexDetB, vCorrDigA, fvDigisPsd[uIndexBmon], uHistoIdx);
   }  // else if( "PSD" == fvsDetectors[ uIndexDetB ] )
   else
     LOG(fatal) << "CbmMcbm2019CheckTimingPairs => Unknown detector";
 }
 template<class DigiA, class DigiB>
-void CbmMcbm2019CheckTimingPairs::FillHistos(UInt_t uIndexT0, UInt_t /*uIndexDetA*/, UInt_t /*uIndexDetB*/,
+void CbmMcbm2019CheckTimingPairs::FillHistos(UInt_t uIndexBmon, UInt_t /*uIndexDetA*/, UInt_t /*uIndexDetB*/,
                                              std::vector<DigiA>& vCorrDigA, std::vector<DigiB>& vCorrDigB,
                                              UInt_t uHistoIdx)
 {
-  Double_t dTimeT0 = fvDigisT0[uIndexT0].GetTime();
+  Double_t dTimeBmon = fvDigisBmon[uIndexBmon].GetTime();
   /*
    std::vector< DigiA > vCorrDigA;
    std::vector< DigiB > vCorrDigB;
@@ -448,63 +450,63 @@ void CbmMcbm2019CheckTimingPairs::FillHistos(UInt_t uIndexT0, UInt_t /*uIndexDet
    /// Get detector A
    if( "STS" == fvsDetectors[ uIndexDetA ] )
    {
-      vCorrDigA = fvDigisSts[ uIndexT0 ];
+      vCorrDigA = fvDigisSts[ uIndexBmon ];
    } // if( "STS" == fvsDetectors[ uIndexDetA ] )
    else if( "MUCH" == fvsDetectors[ uIndexDetA ] )
    {
-      vCorrDigA = fvDigisMuch[ uIndexT0 ];
+      vCorrDigA = fvDigisMuch[ uIndexBmon ];
    } // else if( "MUCH" == fvsDetectors[ uIndexDetA ] )
    else if( "TRD" == fvsDetectors[ uIndexDetA ] )
    {
-      vCorrDigA = fvDigisTrd[ uIndexT0 ];
+      vCorrDigA = fvDigisTrd[ uIndexBmon ];
    } // else if( "TRD" == fvsDetectors[ uIndexDetA ] )
    else if( "TOF" == fvsDetectors[ uIndexDetA ] )
    {
-      vCorrDigA = fvDigisTof[ uIndexT0 ];
+      vCorrDigA = fvDigisTof[ uIndexBmon ];
    } // else if( "TOF" == fvsDetectors[ uIndexDetA ] )
    else if( "RICH" == fvsDetectors[ uIndexDetA ] )
    {
-      vCorrDigA = fvDigisRich[ uIndexT0 ];
+      vCorrDigA = fvDigisRich[ uIndexBmon ];
    } // else if( "RICH" == fvsDetectors[ uIndexDetA ] )
    else if( "PSD" == fvsDetectors[ uIndexDetA ] )
    {
-      vCorrDigA = fvDigisPsd[ uIndexT0 ];
+      vCorrDigA = fvDigisPsd[ uIndexBmon ];
    } // else if( "PSD" == fvsDetectors[ uIndexDetA ] )
       else LOG( fatal ) << "CbmMcbm2019CheckTimingPairs => Unknown detector";
 
    if( "STS" == fvsDetectors[ uIndexDetB ] )
    {
-      vCorrDigB = fvDigisSts[ uIndexT0 ];
+      vCorrDigB = fvDigisSts[ uIndexBmon ];
    } // if( "STS" == fvsDetectors[ uIndexDetB ] )
    else if( "MUCH" == fvsDetectors[ uIndexDetB ] )
    {
-      vCorrDigB = fvDigisMuch[ uIndexT0 ];
+      vCorrDigB = fvDigisMuch[ uIndexBmon ];
    } // else if( "MUCH" == fvsDetectors[ uIndexDetB ] )
    else if( "TRD" == fvsDetectors[ uIndexDetB ] )
    {
-      vCorrDigB = fvDigisTrd[ uIndexT0 ];
+      vCorrDigB = fvDigisTrd[ uIndexBmon ];
    } // else if( "TRD" == fvsDetectors[ uIndexDetB ] )
    else if( "TOF" == fvsDetectors[ uIndexDetB ] )
    {
-      vCorrDigB = fvDigisTof[ uIndexT0 ];
+      vCorrDigB = fvDigisTof[ uIndexBmon ];
    } // else if( "TOF" == fvsDetectors[ uIndexDetB ] )
    else if( "RICH" == fvsDetectors[ uIndexDetB ] )
    {
-      vCorrDigB = fvDigisRich[ uIndexT0 ];
+      vCorrDigB = fvDigisRich[ uIndexBmon ];
    } // else if( "RICH" == fvsDetectors[ uIndexDetB ] )
    else if( "PSD" == fvsDetectors[ uIndexDetB ] )
    {
-      vCorrDigB = fvDigisPsd[ uIndexT0 ];
+      vCorrDigB = fvDigisPsd[ uIndexBmon ];
    } // else if( "PSD" == fvsDetectors[ uIndexDetB ] )
       else LOG( fatal ) << "CbmMcbm2019CheckTimingPairs => Unknown detector";
 */
   for (UInt_t uIdxDetA = 0; uIdxDetA < vCorrDigA.size(); ++uIdxDetA) {
     Double_t dTimeDetA = vCorrDigA[uIdxDetA].GetTime();
-    Double_t dDtDetA   = dTimeDetA - dTimeT0;
+    Double_t dDtDetA   = dTimeDetA - dTimeBmon;
 
     for (UInt_t uIdxDetB = 0; uIdxDetB < vCorrDigB.size(); ++uIdxDetB) {
       Double_t dTimeDetB = vCorrDigB[uIdxDetB].GetTime();
-      Double_t dDtDetB   = dTimeDetB - dTimeT0;
+      Double_t dDtDetB   = dTimeDetB - dTimeBmon;
 
       fhDtADtB[uHistoIdx]->Fill(dDtDetA, dDtDetB);
     }  // for( UInt_t uIdxDetB = 0; uIdxDetB < vCoincDigisDetB[ uEvent ].size(); ++vCoincDigisDetB )
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019CheckTimingPairs.h b/fles/mcbm2018/tasks/CbmMcbm2019CheckTimingPairs.h
index ac85b3d631ec083bdb6759d4531cc53151f0982d..cbb7278b0bb185dad07d2ebf99bb11d5b62e5e07 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019CheckTimingPairs.h
+++ b/fles/mcbm2018/tasks/CbmMcbm2019CheckTimingPairs.h
@@ -74,10 +74,10 @@ public:
 
   void SetPsdOffsetSearchRange(Double_t val = 1000) { fdPsdTimeWin = val; }
 
-  inline void SetT0PulserTotLimits(UInt_t uMin, UInt_t uMax)
+  inline void SetBmonPulserTotLimits(UInt_t uMin, UInt_t uMax)
   {
-    fuMinTotPulserT0 = uMin;
-    fuMaxTotPulserT0 = uMax;
+    fuMinTotPulserBmon = uMin;
+    fuMaxTotPulserBmon = uMax;
   }
   inline void SetStsPulserAdcLimits(UInt_t uMin, UInt_t uMax)
   {
@@ -127,19 +127,19 @@ private:
   void WriteHistos();
 
   template<class Digi>
-  UInt_t FillCorrBuffer(Double_t dTimeT0, UInt_t uIndexStart, Double_t dWinStartTime, Double_t dWinStopTime,
+  UInt_t FillCorrBuffer(Double_t dTimeBmon, UInt_t uIndexStart, Double_t dWinStartTime, Double_t dWinStopTime,
                         std::vector<std::vector<Digi>>& vDigi, ECbmModuleId iDetId = ECbmModuleId::kLastModule);
   template<class DigiA>
-  void FillHistosInter(UInt_t uIndexT0, UInt_t uIndexA, UInt_t uIndexB, std::vector<DigiA>& vCorrDigA,
+  void FillHistosInter(UInt_t uIndexBmon, UInt_t uIndexA, UInt_t uIndexB, std::vector<DigiA>& vCorrDigA,
                        UInt_t uHistoIdx);
   template<class DigiA, class DigiB>
-  void FillHistos(UInt_t uIndexT0, UInt_t uIndexA, UInt_t uIndexB, std::vector<DigiA>& vCorrDigA,
+  void FillHistos(UInt_t uIndexBmon, UInt_t uIndexA, UInt_t uIndexB, std::vector<DigiA>& vCorrDigA,
                   std::vector<DigiB>& vCorrDigB, UInt_t uHistoIdx);
 
   /** Digi data **/
   CbmDigiManager* fDigiMan                     = nullptr;  //!
-  const std::vector<CbmTofDigi>* fT0DigiVector = nullptr;  //!
-  TClonesArray* fT0DigiArray                   = nullptr;  //!
+  const std::vector<CbmTofDigi>* fBmonDigiVector = nullptr;  //!
+  TClonesArray* fBmonDigiArray                   = nullptr;  //!
   TClonesArray* fTimeSliceMetaDataArray        = nullptr;  //!
   const TimesliceMetaData* pTsMetaData         = nullptr;
 
@@ -159,15 +159,15 @@ private:
   UInt_t fuNbDetectors                  = fvsDetectors.size();
 
   /// Variables to store the previous digi time
-  Double_t fPrevTimeT0                = 0.;
+  Double_t fPrevTimeBmon              = 0.;
   std::vector<Double_t> fvPrevTimeDet = std::vector<Double_t>(fuNbDetectors, 0.0);  //!
 
-  /// Variables to store the first digi fitting the previous T0 hits
+  /// Variables to store the first digi fitting the previous Bmon hits
   /// => Time-order means the time window for following one can only be in a later digi
-  std::vector<UInt_t> fvuPrevT0FirstDigiDet = std::vector<UInt_t>(fuNbDetectors, 0);  //!
+  std::vector<UInt_t> fvuPrevBmonFirstDigiDet = std::vector<UInt_t>(fuNbDetectors, 0);  //!
 
   /// Variable to store correlated Digis
-  std::vector<CbmTofDigi> fvDigisT0                         = {};  //!
+  std::vector<CbmTofDigi> fvDigisBmon                       = {};  //!
   std::vector<std::vector<CbmStsDigi>> fvDigisSts           = {};  //!
   std::vector<std::vector<CbmMuchBeamTimeDigi>> fvDigisMuch = {};  //!
   std::vector<std::vector<CbmTrdDigi>> fvDigisTrd           = {};  //!
@@ -175,9 +175,9 @@ private:
   std::vector<std::vector<CbmRichDigi>> fvDigisRich         = {};  //!
   std::vector<std::vector<CbmPsdDigi>> fvDigisPsd           = {};  //!
 
-  /// Variable to store counts of T0 with at least one coincidence
-  UInt_t fuNbDigisWithCoincT0 = 0;
-  /// Variable to store counts of T0 with at least one coincidence
+  /// Variable to store counts of Bmon with at least one coincidence
+  UInt_t fuNbDigisWithCoincBmon = 0;
+  /// Variable to store counts of Bmon with at least one coincidence
   UInt_t fuNbCoincDigisSts  = 0;
   UInt_t fuNbCoincDigisMuch = 0;
   UInt_t fuNbCoincDigisTrd  = 0;
@@ -187,8 +187,8 @@ private:
 
   /// User settings: Data correction parameters
   /// Charge cut
-  UInt_t fuMinTotPulserT0     = 182;
-  UInt_t fuMaxTotPulserT0     = 190;
+  UInt_t fuMinTotPulserBmon   = 182;
+  UInt_t fuMaxTotPulserBmon   = 190;
   UInt_t fuMinAdcPulserSts    = 90;
   UInt_t fuMaxAdcPulserSts    = 100;
   UInt_t fuMinAdcPulserMuch   = 5;
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx
index 55d2edf0808bb841fbff1f75ad8283860169640c..c0c9ca28c6c5cf30139fb00dfdc279c61b419097 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx
@@ -130,12 +130,12 @@ Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::CheckDataAvailable(EventBuilderDetect
   FairRootManager* ioman = FairRootManager::Instance();
 
   if (ECbmModuleId::kBmon == det.detId) {
-    // T0 is not included in DigiManager
-    fT0DigiVec = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("T0Digi");
-    if (!fT0DigiVec) {
-      LOG(info) << "No T0 digi input found.";
+    // Bmon is not included in DigiManager
+    fBmonDigiVec = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("BmonDigi");
+    if (!fBmonDigiVec) {
+      LOG(info) << "No Bmon digi input found.";
       return kFALSE;
-    }  // if( ! fT0DigiVec )
+    }  // if( ! fBmonDigiVec )
   }    // if( ECbmModuleId::kBmon == det.detId )
   else {
     if (!fDigiMan->IsPresent(det.detId)) {
@@ -194,7 +194,7 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::BuildEvents()
     case ECbmModuleId::kBmon: {
       LoopOnSeeds<CbmTofDigi>();
       break;
-    }  // case ECbmModuleId::kT0:
+    }  // case ECbmModuleId::kBmon:
     default: {
       LOG(fatal) << "CbmMcbm2019TimeWinEventBuilderAlgo::BuildEvents => "
                  << "Trying to search event seeds with unsupported det: " << fRefDet.sName;
@@ -240,22 +240,22 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::LoopOnSeeds()
   }  // if( fbIgnoreTsOverlap )
 
   if (ECbmModuleId::kBmon == fRefDet.detId) {
-    if (fT0DigiVec) {
+    if (fBmonDigiVec) {
       /// Loop on size of vector
-      UInt_t uNbRefDigis = fT0DigiVec->size();
+      UInt_t uNbRefDigis = fBmonDigiVec->size();
       /// Loop on size of vector
       for (UInt_t uDigi = 0; uDigi < uNbRefDigis; ++uDigi) {
         LOG(debug) << Form("Checking seed %6u / %6u", uDigi, uNbRefDigis);
 
-        Double_t dTime = fT0DigiVec->at(uDigi).GetTime();
+        Double_t dTime = fBmonDigiVec->at(uDigi).GetTime();
 
         /// Check Seed and build event if needed
         CheckSeed(dTime, uDigi);
       }  // for( UInt_t uDigi = 0; uDigi < uNbRefDigis; ++uDigi )
-    }    // if ( fT0DigiVec )
+    }    // if ( fBmonDigiVec )
     else
       LOG(fatal) << "CbmMcbm2019TimeWinEventBuilderAlgo::LoopOnSeeds => "
-                 << "T0 as reference detector but vector not found!";
+                 << "Bmon as reference detector but vector not found!";
   }  // if (ECbmModuleId::kBmon == fRefDet.detId)
   else {
     UInt_t uNbRefDigis = (0 < fDigiMan->GetNofDigis(fRefDet.detId) ? fDigiMan->GetNofDigis(fRefDet.detId) : 0);
@@ -277,7 +277,7 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::LoopOnSeeds()
         CheckSeed(dTime, uDigi);
       }  // if( nullptr != pDigi )
     }    // for( UInt_t uDigi = 0; uDigi < uNbRefDigis; ++uDigi )
-  }      // else of if (ECbmModuleId::kT0 == fRefDet.detId) => Digi containers controlled by DigiManager
+  }      // else of if (ECbmModuleId::kBmon == fRefDet.detId) => Digi containers controlled by DigiManager
 }
 
 void CbmMcbm2019TimeWinEventBuilderAlgo::CheckSeed(Double_t dSeedTime, UInt_t uSeedDigiIdx)
@@ -357,7 +357,7 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::CheckSeed(Double_t dSeedTime, UInt_t uS
       case ECbmModuleId::kBmon: {
         SearchMatches<CbmTofDigi>(dSeedTime, fRefDet);
         break;
-      }  // case ECbmModuleId::kT0:
+      }  // case ECbmModuleId::kBmon:
       default: {
         LOG(fatal) << "CbmMcbm2019TimeWinEventBuilderAlgo::LoopOnSeeds => "
                    << "Trying to search matches with unsupported det: " << fRefDet.sName << std::endl
@@ -408,7 +408,7 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::CheckSeed(Double_t dSeedTime, UInt_t uS
       case ECbmModuleId::kBmon: {
         SearchMatches<CbmTofDigi>(dSeedTime, *det);
         break;
-      }  // case ECbmModuleId::kT0:
+      }  // case ECbmModuleId::kBmon:
       default: {
         LOG(fatal) << "CbmMcbm2019TimeWinEventBuilderAlgo::LoopOnSeeds => "
                    << "Trying to search matches with unsupported det: " << (*det).sName << std::endl
@@ -451,12 +451,12 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::SearchMatches(Double_t dSeedTime, Event
 
   /// Check the Digis until out of window
   if (ECbmModuleId::kBmon == detMatch.detId) {
-    if (fT0DigiVec) {
+    if (fBmonDigiVec) {
       /// Loop on size of vector
-      UInt_t uNbSelDigis = fT0DigiVec->size();
+      UInt_t uNbSelDigis = fBmonDigiVec->size();
       /// Loop on size of vector
       for (UInt_t uDigi = detMatch.fuStartIndex; uDigi < uNbSelDigis; ++uDigi) {
-        Double_t dTime = fT0DigiVec->at(uDigi).GetTime();
+        Double_t dTime = fBmonDigiVec->at(uDigi).GetTime();
 
         Double_t dTimeDiff = dTime - dSeedTime;
 
@@ -479,10 +479,10 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::SearchMatches(Double_t dSeedTime, Event
 
       /// catch the case where we reach the end of the vector before being out of the time window
       if (uLocalIndexEnd < uLocalIndexStart) uLocalIndexEnd = uNbSelDigis;
-    }  // if ( fT0DigiVec )
+    }  // if ( fBmonDigiVec )
     else
       LOG(fatal) << "CbmMcbm2019TimeWinEventBuilderAlgo::SearchMatches => "
-                 << "T0 as selection detector but vector not found!";
+                 << "Bmon as selection detector but vector not found!";
   }  // if( ECbmModuleId::kBmon == detMatch.detId )
   else {
     UInt_t uNbSelDigis = (0 < fDigiMan->GetNofDigis(detMatch.detId) ? fDigiMan->GetNofDigis(detMatch.detId) : 0);
@@ -553,14 +553,14 @@ Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::CheckTriggerConditions(CbmEvent* even
 
   /// Check if detector present
   if (ECbmModuleId::kBmon == 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"
+    /// FIXME: special case to be removed once Bmon supported by DigiManager
+    if (!(fBmonDigiVec)) {
+      LOG(warning) << "Event does not have digis storage for Bmon"
                    << " while the following trigger minimum are defined: " << det.fuTriggerMinDigis << " "
                    << det.fiTriggerMaxDigis;
       return kFALSE;
-    }  // if( !(fT0DigiVec) )
-  }    // if( ECbmDataType::kT0Digi == det.detId )
+    }  // if( !(fBmonDigiVec) )
+  }    // if( ECbmDataType::kBmonDigi == det.detId )
   else {
     if (!fDigiMan->IsPresent(det.detId)) {
       LOG(warning) << "Event does not have digis storage for " << det.sName
@@ -568,7 +568,7 @@ Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::CheckTriggerConditions(CbmEvent* even
                    << det.fiTriggerMaxDigis;
       return kFALSE;
     }  // if( !fDigiMan->IsPresent( det ) )
-  }    // else of if( ECbmDataType::kT0Digi == det )
+  }    // else of if( ECbmDataType::kBmonDigi == det )
 
   /// Check trigger rejection by minimal number or absence
   Int_t iNbDigis = event->GetNofData(det.dataType);
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h
index 7ce44f3853e1c93f61da07452e655058028e52dc..5a978420b7f6ad3cb76fa113d1af4a5ec9fcaa96 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h
+++ b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h
@@ -93,7 +93,7 @@ static const EventBuilderDetector kEventBuilderDetRich =
 static const EventBuilderDetector kEventBuilderDetPsd =
   EventBuilderDetector(ECbmModuleId::kPsd, ECbmDataType::kPsdDigi, "Psd");
 static const EventBuilderDetector kEventBuilderDetBmon =
-  EventBuilderDetector(ECbmModuleId::kBmon, ECbmDataType::kT0Digi, "Bmon");
+  EventBuilderDetector(ECbmModuleId::kBmon, ECbmDataType::kBmonDigi, "Bmon");
 static const EventBuilderDetector kEventBuilderDetUndef = EventBuilderDetector();
 
 class CbmMcbm2019TimeWinEventBuilderAlgo {
@@ -196,7 +196,7 @@ private:
     /// Event building mode and detectors selection
   EOverlapMode fOverMode {EOverlapMode::AllowOverlap};
 
-  EventBuilderDetector fRefDet             = EventBuilderDetector(ECbmModuleId::kBmon, ECbmDataType::kT0Digi, "Bmon");
+  EventBuilderDetector fRefDet             = EventBuilderDetector(ECbmModuleId::kBmon, ECbmDataType::kBmonDigi, "Bmon");
   std::vector<EventBuilderDetector> fvDets = {
     EventBuilderDetector(ECbmModuleId::kSts, ECbmDataType::kStsDigi, "kSts"),
     EventBuilderDetector(ECbmModuleId::kMuch, ECbmDataType::kMuchDigi, "kMuch"),
@@ -217,7 +217,7 @@ private:
   /// FIXME: usage of CbmDigiManager in FairMq context?!?
   ///        => Maybe by registering vector (or vector reference) to ioman in Device?
   CbmDigiManager* fDigiMan                  = nullptr;  //!
-  const std::vector<CbmTofDigi>* fT0DigiVec = nullptr;  //!
+  const std::vector<CbmTofDigi>* fBmonDigiVec = nullptr;  //!
   TClonesArray* fTimeSliceMetaDataArray     = nullptr;  //!
   const TimesliceMetaData* pTsMetaData      = nullptr;
 
diff --git a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx
index ddbac9020dd8b7f81875ef1e9f3644fc2e1752db..219f32f1978cf30036dd8ac44faa59c473b24a44 100644
--- a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx
@@ -79,14 +79,14 @@ void CbmMcbmCheckTimingAlgo::CheckDataPresence(CheckTimingDetector detToCheck)
   fDigiMan->UseMuchBeamTimeDigi();
   fDigiMan->Init();
 
-  /// Handle special case for T0 as not yet supported in DigiManager
+  /// Handle special case for Bmon as not yet supported in DigiManager
   if (ECbmModuleId::kBmon == detToCheck.detId) {
     // Get a pointer to the previous already existing data level
-    fpT0DigiVec = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("T0Digi");
-    if (!fpT0DigiVec) {
-      LOG(fatal) << "No storage with T0 digis found while it should be used. "
+    fpBmonDigiVec = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("BmonDigi");
+    if (!fpBmonDigiVec) {
+      LOG(fatal) << "No storage with Bmon digis found while it should be used. "
                     "Stopping there!";
-    }  // if ( ! fpT0DigiVec )
+    }  // if ( ! fpBmonDigiVec )
   }    // if( ECbmModuleId::kBmon == detToCheck.detId )
   else if (!fDigiMan->IsPresent(detToCheck.detId)) {
     LOG(fatal) << "No " << detToCheck.sName << " digis found while it should be used. Stopping there!";
@@ -233,7 +233,7 @@ void CbmMcbmCheckTimingAlgo::CheckInterSystemOffset()
       break;
     }  // Digi containers controlled by DigiManager
     case ECbmModuleId::kBmon: {
-      uNbRefDigis = fpT0DigiVec->size();
+      uNbRefDigis = fpBmonDigiVec->size();
       break;
     }  // case ECbmModuleId::kBmon
     default: {
@@ -254,8 +254,8 @@ void CbmMcbmCheckTimingAlgo::CheckInterSystemOffset()
     Double_t dRefCharge = 0;
     UInt_t uRefAddress  = 0;
     if (ECbmModuleId::kBmon == fRefDet.detId) {
-      dRefTime   = fpT0DigiVec->at(uDigi).GetTime();
-      dRefCharge = fpT0DigiVec->at(uDigi).GetCharge();
+      dRefTime   = fpBmonDigiVec->at(uDigi).GetTime();
+      dRefCharge = fpBmonDigiVec->at(uDigi).GetCharge();
     }
     else {
       dRefTime   = fDigiMan->Get<DigiRef>(uDigi)->GetTime();
@@ -343,7 +343,7 @@ void CbmMcbmCheckTimingAlgo::FillTimeOffsetHistos(const Double_t dRefTime, const
       break;
     }  // Digi containers controlled by DigiManager
     case ECbmModuleId::kBmon: {
-      uNbDigis = fpT0DigiVec->size();
+      uNbDigis = fpBmonDigiVec->size();
       break;
     }  // case ECbmModuleId::kBmon
     default: {
@@ -441,11 +441,11 @@ template<>
 uint CbmMcbmCheckTimingAlgo::GetDigiInfo<CbmTofDigi>(UInt_t uDigi, std::vector<std::tuple<double, double, uint>>* vec,
                                                      ECbmModuleId detId)
 {
-  /** Template specialization for ToF in order to distinguish T0 digis.
+  /** Template specialization for ToF in order to distinguish Bmon digis.
    */
   vec->clear();
   const CbmTofDigi* pDigi(nullptr);
-  if (detId == ECbmModuleId::kBmon) pDigi = &fpT0DigiVec->at(uDigi);
+  if (detId == ECbmModuleId::kBmon) pDigi = &fpBmonDigiVec->at(uDigi);
   else
     pDigi = fDigiMan->Get<CbmTofDigi>(uDigi);
 
diff --git a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h
index 12096d0359b32571bff7db79f3857abe37fd063f..cb837ccb6614de5333b4d7d495840485f51862ec 100644
--- a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h
+++ b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h
@@ -108,7 +108,7 @@ private:
   void CheckInterSystemOffset();
   template<class Digi>
   void FillTimeOffsetHistos(const Double_t dRefTime, const Double_t dRefCharge, UInt_t uDetIdx);
-  /** @brief Retrieve digi (time,charge,addres) info. Use template specialization for special cases (e.g. T0, TRD, PSD)
+  /** @brief Retrieve digi (time,charge,addres) info. Use template specialization for special cases (e.g. Bmon, TRD, PSD)
    * @param iDigi digi index in the digi array
    * @param vec on return contains the signal(s), time(s) and address pairs. Should be allocated by the user
    * @param detId if needed spec
@@ -128,8 +128,8 @@ private:
   /** Input array from previous already existing data level **/
   CbmDigiManager* fDigiMan = nullptr;  //!
 
-  /** T0 is not included in CbmDigiManager, so add it explicitly here **/
-  const std::vector<CbmTofDigi>* fpT0DigiVec = nullptr;  //!
+  /** Bmon is not included in CbmDigiManager, so add it explicitly here **/
+  const std::vector<CbmTofDigi>* fpBmonDigiVec = nullptr;  //!
 
   /** @brief Pointer to the Timeslice start time used to write it to the output tree
       @remark since we hand this to the FairRootManager it also wants to delete it and we do not have to take care of deletion
diff --git a/fles/mcbm2018/tasks/CbmMcbmSpillFindAlgo.cxx b/fles/mcbm2018/tasks/CbmMcbmSpillFindAlgo.cxx
index aa40909ea95b83a616cab488a388563c17f0d0ce..4ddec775ab0998f2dd671884bc3054932c8d05ab 100644
--- a/fles/mcbm2018/tasks/CbmMcbmSpillFindAlgo.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbmSpillFindAlgo.cxx
@@ -45,7 +45,7 @@ CbmMcbmSpillFindAlgo::~CbmMcbmSpillFindAlgo() {}
 // -------------------------------------------------------------------------
 Bool_t CbmMcbmSpillFindAlgo::Init()
 {
-  LOG(info) << "Initializing mCBM T0 2019 monitor algo";
+  LOG(info) << "Initializing mCBM Bmon 2019 monitor algo";
 
   return kTRUE;
 }
@@ -366,8 +366,8 @@ Bool_t CbmMcbmSpillFindAlgo::ProcessMs(const fles::Timeslice& ts, size_t uMsComp
 
     fuGet4Id = mess.getGdpbGenChipId();
     fuGet4Nr = fuGet4Id / 2;
-    // UInt_t uChannelT0 = ( fuGet4Id < 32 ) ? ( fuGet4Id / 8 ) : (fuGet4Id / 8 - 1); /// December 2018 mapping
-    // UInt_t uChannelT0 = fuGet4Id / 2 + 4 * fuCurrDpbIdx;  /// 2019 mapping with 320/640 Mb/s FW
+    // UInt_t uChannelBmon = ( fuGet4Id < 32 ) ? ( fuGet4Id / 8 ) : (fuGet4Id / 8 - 1); /// December 2018 mapping
+    // UInt_t uChannelBmon = fuGet4Id / 2 + 4 * fuCurrDpbIdx;  /// 2019 mapping with 320/640 Mb/s FW
 
     if (fuNrOfGet4PerGdpb <= fuGet4Id && !mess.isStarTrigger() && (gdpbv100::kuChipIdMergedEpoch != fuGet4Id))
       LOG(warning) << "Message with Get4 ID too high: " << fuGet4Id << " VS " << fuNrOfGet4PerGdpb
@@ -425,7 +425,7 @@ Bool_t CbmMcbmSpillFindAlgo::CreateHistograms()
 {
   std::string sFolder = "SpillFinder";
 
-  LOG(info) << "create Histos for T0 monitoring ";
+  LOG(info) << "create Histos for Bmon monitoring ";
 
   /// Logarithmic bining
   uint32_t iNbBinsLog = 0;
@@ -459,7 +459,7 @@ Bool_t CbmMcbmSpillFindAlgo::CreateHistograms()
 
   /*******************************************************************/
   /*
-  /// Map of hits over T0 detector and same vs time in run
+  /// Map of hits over Bmon detector and same vs time in run
   fcHitMaps = new TCanvas("cHitMaps", "Hit maps", w, h);
   fcHitMaps->Divide(2);
 
diff --git a/fles/mcbm2018/tasks/CbmMcbmSpillFindTask.cxx b/fles/mcbm2018/tasks/CbmMcbmSpillFindTask.cxx
index ff9f624413204b090fab74932c7b6819ce5fd76a..565a0c5349545f3a651f334753c926007f279b9f 100644
--- a/fles/mcbm2018/tasks/CbmMcbmSpillFindTask.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbmSpillFindTask.cxx
@@ -42,7 +42,7 @@ CbmMcbmSpillFindTask::CbmMcbmSpillFindTask()
   , fbMonitorMode(kTRUE)
   , fbDebugMonitorMode(kFALSE)
   , fuHistoryHistoSize(3600)
-  , fsHistoFileName("data/HistosMonitorT0.root")
+  , fsHistoFileName("data/HistosMonitorBmon.root")
   , fuMinTotPulser(90)
   , fuMaxTotPulser(100)
   , fuOffSpillCountLimit(200)
@@ -57,7 +57,7 @@ CbmMcbmSpillFindTask::~CbmMcbmSpillFindTask() { delete fMonitorAlgo; }
 Bool_t CbmMcbmSpillFindTask::Init()
 {
   LOG(info) << "CbmMcbmSpillFindTask::Init";
-  LOG(info) << "Initializing mCBM T0 2019 Monitor";
+  LOG(info) << "Initializing mCBM Bmon 2019 Monitor";
 
   return kTRUE;
 }
@@ -132,8 +132,8 @@ Bool_t CbmMcbmSpillFindTask::InitContainers()
                        gROOT->FindObject((vCanvases[uCanv].first)->GetName()));
     }  //  for( UInt_t uCanv = 0; uCanv < vCanvases.size(); ++uCanv )
 
-    server->RegisterCommand("/Reset_MoniT0_Hist", "bMcbmSpillFindResetHistos=kTRUE");
-    server->Restrict("/Reset_MoniT0_Hist", "allow=admin");
+    server->RegisterCommand("/Reset_MoniBmon_Hist", "bMcbmSpillFindResetHistos=kTRUE");
+    server->Restrict("/Reset_MoniBmon_Hist", "allow=admin");
   }  // if( nullptr != server )
 
   return initOK;
@@ -155,7 +155,7 @@ void CbmMcbmSpillFindTask::AddMsComponentToList(size_t component, UShort_t usDet
 Bool_t CbmMcbmSpillFindTask::DoUnpack(const fles::Timeslice& ts, size_t /*component*/)
 {
   if (fbMonitorMode && bMcbmSpillFindResetHistos) {
-    LOG(info) << "Reset T0 Monitor histos ";
+    LOG(info) << "Reset Bmon Monitor histos ";
     fMonitorAlgo->ResetHistograms();
     bMcbmSpillFindResetHistos = kFALSE;
   }  // if( fbMonitorMode && bMcbmSpillFindResetHistos )
diff --git a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoRich2020.cxx b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoRich2020.cxx
index cae047fee5f72319ec32af434d97de8257f3d2c4..52ecf9e9dcaae1ee41f03e1540e4967daffc4c5e 100644
--- a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoRich2020.cxx
+++ b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoRich2020.cxx
@@ -1585,7 +1585,7 @@ Bool_t CbmMcbm2018UnpackerAlgoRich2020::CreateHistograms()
 
     /*******************************************************************/
 
-    /// Map of hits over T0 detector and same vs time in run
+    /// Map of hits over Bmon detector and same vs time in run
     {  //if (iTDC == 0){
       Double_t w = 10;
       Double_t h = 10;
diff --git a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoTof.cxx b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoTof.cxx
index dd14e5c6531ef347a94a59c92cce35497da6dc86..8d2becd529818fe54bc3222f9d51bbf5b61048b2 100644
--- a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoTof.cxx
+++ b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoTof.cxx
@@ -103,7 +103,7 @@ CbmMcbm2018UnpackerAlgoTof::CbmMcbm2018UnpackerAlgoTof()
   , fdLastDigiTime(0.)
   , fdFirstDigiTimeDif(0.)
   , fdEvTime0(0.)
-  , fhRawTDigEvT0(nullptr)
+  , fhRawTDigEvBmon(nullptr)
   , fhRawTDigRef0(nullptr)
   , fhRawTDigRef(nullptr)
   , fhRawTRefDig0(nullptr)
@@ -285,7 +285,7 @@ Bool_t CbmMcbm2018UnpackerAlgoTof::InitParameters()
         iCh += 64;
         break;
 
-        /// Special Treatment for the T0 diamond
+        /// Special Treatment for the Bmon diamond
       case 5: {
         LOG(info) << " Map diamond  at GBTX  -  iCh = " << iCh;
         for (UInt_t uFee = 0; uFee < fUnpackPar->GetNrOfFeePerGbtx(); ++uFee) {
@@ -296,7 +296,7 @@ Bool_t CbmMcbm2018UnpackerAlgoTof::InitParameters()
                                              fviModuleId[iGbtx],
                                              0, uFee + 4 * fviRpcSide[iGbtx],
                                              0, fviRpcType[iGbtx] );
-		  LOG(info) << Form( "Map T0 Ch %d to Address 0x%08x", iCh, fviRpcChUId[iCh] );
+		  LOG(info) << Form( "Map Bmon Ch %d to Address 0x%08x", iCh, fviRpcChUId[iCh] );
 	      }
 	      else fviRpcChUId[ iCh ] = 0;
 */
@@ -309,19 +309,19 @@ Bool_t CbmMcbm2018UnpackerAlgoTof::InitParameters()
                 case 4: {
                   /// 2019 mapping with 320/640 Mb/s FW
                   /// => 4 GET4 per GBTx
-                  /// => 1 T0 channel per GET4
+                  /// => 1 Bmon channel per GET4
                   /// => 1-2 eLinks per GET4 => GET4 ID = GET4 * 2 (+ 1)
-                  UInt_t uChannelT0 = uCh / 8 + 4 * fviRpcSide[iGbtx];
+                  UInt_t uChannelBmon = uCh / 8 + 4 * fviRpcSide[iGbtx];
                   fviRpcChUId[iCh] =
-                    CbmTofAddress::GetUniqueAddress(fviModuleId[iGbtx], 0, uChannelT0, 0, fviRpcType[iGbtx]);
-                  LOG(info) << Form("T0 channel: %u from GBTx %2u Fee %2u "
+                    CbmTofAddress::GetUniqueAddress(fviModuleId[iGbtx], 0, uChannelBmon, 0, fviRpcType[iGbtx]);
+                  LOG(info) << Form("Bmon channel: %u from GBTx %2u Fee %2u "
                                     "Channel %2u, indx %d address %08x",
-                                    uChannelT0, iGbtx, uFee, uCh, iCh, fviRpcChUId[iCh]);
+                                    uChannelBmon, iGbtx, uFee, uCh, iCh, fviRpcChUId[iCh]);
                   break;
-                }  // Valid T0 channel
+                }  // Valid Bmon channel
                 default: {
                   fviRpcChUId[iCh] = 0;
-                }  // Invalid T0 channel
+                }  // Invalid Bmon channel
               }    // switch( uCh % 4 )
             }      // if( 0 == uFee )
 
@@ -1166,7 +1166,7 @@ void CbmMcbm2018UnpackerAlgoTof::ProcessHit(const gdpbv100::FullMessage& mess)
   UInt_t uChanUId = fviRpcChUId[uRemappedChannelNrInSys];
   /*
    if( 5 == fviRpcType[uGbtxNrInSys] )
-      LOG(info) << "T0 mapping index " << uRemappedChannelNrInSys
+      LOG(info) << "Bmon mapping index " << uRemappedChannelNrInSys
                  << " UID " << std::hex << std::setw(8) << uChanUId << std::dec
                  << ", from GdpbNr " << fuCurrDpbIdx
                  << ", Get4 " << fuGet4Id
@@ -1185,7 +1185,7 @@ void CbmMcbm2018UnpackerAlgoTof::ProcessHit(const gdpbv100::FullMessage& mess)
     return;  // Hit not mapped to digi
   }
 
-  /// Apply offset to T0 only to TOF digis
+  /// Apply offset to Bmon only to TOF digis
   if (0x90 != fuCurrentMsSysId) dHitTime -= fdTimeOffsetNs;
 
   LOG(debug) << Form("Insert 0x%08x digi with time ", uChanUId) << dHitTime
@@ -1338,8 +1338,8 @@ Bool_t CbmMcbm2018UnpackerAlgoTof::CreateHistograms()
 
   LOG(info) << "create Histos for " << fuNrOfGdpbs << " gDPBs ";
 
-  fhRawTDigEvT0 =
-    new TH1F(Form("Raw_TDig-EvT0"), Form("Raw digi time difference to 1st digi ; time [ns]; cts"), 500, 0, 100.);
+  fhRawTDigEvBmon =
+    new TH1F(Form("Raw_TDig-EvBmon"), Form("Raw digi time difference to 1st digi ; time [ns]; cts"), 500, 0, 100.);
 
   fhRawTDigRef0 =
     new TH1F(Form("Raw_TDig-Ref0"), Form("Raw digi time difference to Ref ; time [ns]; cts"), 6000, -10000, 50000);
@@ -1357,7 +1357,7 @@ Bool_t CbmMcbm2018UnpackerAlgoTof::CreateHistograms()
                                Form("Raw Digi time difference to last digi  ; time [ns]; cts"), 9999, -5000, 5000);
 
   /// Add pointers to the vector with all histo for access by steering class
-  AddHistoToVector(fhRawTDigEvT0, sFolder);
+  AddHistoToVector(fhRawTDigEvBmon, sFolder);
   AddHistoToVector(fhRawTDigRef0, sFolder);
   AddHistoToVector(fhRawTDigRef, sFolder);
   AddHistoToVector(fhRawTRefDig0, sFolder);
diff --git a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoTof.h b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoTof.h
index 536f2757ad181970d6069c3914fea0ccb8ebfc8c..c3329cd762a8085bac1f179256b1835c33be3402 100644
--- a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoTof.h
+++ b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoTof.h
@@ -151,7 +151,7 @@ private:
   Double_t fdLastDigiTime;
   Double_t fdFirstDigiTimeDif;
   Double_t fdEvTime0;
-  TH1* fhRawTDigEvT0;
+  TH1* fhRawTDigEvBmon;
   TH1* fhRawTDigRef0;
   TH1* fhRawTDigRef;
   TH1* fhRawTRefDig0;
diff --git a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoTrdR.h b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoTrdR.h
index c1b91aac9612ab928eb213083a13244f18a89a63..b794cf25f683476b53ffae06831e7f509a1bd701 100644
--- a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoTrdR.h
+++ b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoTrdR.h
@@ -121,7 +121,7 @@ public:
     fmapTimeshifts.clear();
     fmapTimeshifts.insert(setvalue->begin(), setvalue->end());
   }
-  ///< In the mCbm 2020 beamtime timeshifts changing during the run of the correlation time to the T0 have been observed. This is part of their correction
+  ///< In the mCbm 2020 beamtime timeshifts changing during the run of the correlation time to the Bmon have been observed. This is part of their correction
 
   /**
 	 *  @brief Call this when Spadic Average-Baseline feature is enabled.
diff --git a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTof.cxx b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTof.cxx
index 0181fa51d26da516d3c1121fe749700b9bb92f40..624d36a2d94d860d5575c4785ca38a13ecf5fcfb 100644
--- a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTof.cxx
+++ b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTof.cxx
@@ -41,9 +41,9 @@ CbmMcbm2018UnpackerTaskTof::CbmMcbm2018UnpackerTaskTof(UInt_t /*uNbGdpb*/)
   : CbmMcbmUnpack()
   , fbMonitorMode(kFALSE)
   , fbDebugMonitorMode(kFALSE)
-  , fbSeparateArrayT0(kFALSE)
+  , fbSeparateArrayBmon(kFALSE)
   , fbWriteOutput(kTRUE)
-  , fuDigiMaskedIdT0(0x00002806)
+  , fuDigiMaskedIdBmon(0x00002806)
   , fuDigiMaskId(0x001FFFFF)
   , fulTsCounter(0)
   , fUnpackerAlgo(nullptr)
@@ -64,10 +64,10 @@ Bool_t CbmMcbm2018UnpackerTaskTof::Init()
   fpvDigiTof = new std::vector<CbmTofDigi>();
   ioman->RegisterAny("TofDigi", fpvDigiTof, fbWriteOutput);
 
-  if (kTRUE == fbSeparateArrayT0) {
-    fpvDigiT0 = new std::vector<CbmTofDigi>();
-    ioman->RegisterAny("T0Digi", fpvDigiT0, fbWriteOutput);
-  }  // if( kTRUE == fbSeparateArrayT0 )
+  if (kTRUE == fbSeparateArrayBmon) {
+    fpvDigiBmon = new std::vector<CbmTofDigi>();
+    ioman->RegisterAny("BmonDigi", fpvDigiBmon, fbWriteOutput);
+  }  // if( kTRUE == fbSeparateArrayBmon )
 
   return kTRUE;
 }
@@ -191,29 +191,29 @@ Bool_t CbmMcbm2018UnpackerTaskTof::DoUnpack(const fles::Timeslice& ts, size_t /*
 */
 
   for (auto digi : vDigi) {
-    if (kTRUE == fbSeparateArrayT0 && fuDigiMaskedIdT0 == (digi.GetAddress() & fuDigiMaskId)) {
-      /// Insert data in T0 output container
-      LOG(debug) << "Fill digi T0 vector with " << Form("0x%08x", digi.GetAddress()) << " at " << fpvDigiT0->size();
-      fpvDigiT0->emplace_back(digi);
-    }  // if( kTRUE == fbSeparateArrayT0 && fuDigiMaskedIdT0 == ( digi.GetAddress() & fuDigiMaskId ) )
+    if (kTRUE == fbSeparateArrayBmon && fuDigiMaskedIdBmon == (digi.GetAddress() & fuDigiMaskId)) {
+      /// Insert data in Bmon output container
+      LOG(debug) << "Fill digi Bmon vector with " << Form("0x%08x", digi.GetAddress()) << " at " << fpvDigiBmon->size();
+      fpvDigiBmon->emplace_back(digi);
+    }  // if( kTRUE == fbSeparateArrayBmon && fuDigiMaskedIdBmon == ( digi.GetAddress() & fuDigiMaskId ) )
     else {
       /// Insert data in TOF output container
       LOG(debug) << "Fill digi TOF vector with " << Form("0x%08x", digi.GetAddress()) << " at " << fpvDigiTof->size();
       fpvDigiTof->emplace_back(digi);
-    }  // else of if( kTRUE == fbSeparateArrayT0 && fuDigiMaskedIdT0 == ( digi.GetAddress() & fuDigiMaskId ) )
+    }  // else of if( kTRUE == fbSeparateArrayBmon && fuDigiMaskedIdBmon == ( digi.GetAddress() & fuDigiMaskId ) )
   }
 
   vDigi.clear();
   fUnpackerAlgo->ClearVector();
   if (kTRUE == fbMonitorMode) {
-    if (kTRUE == fbSeparateArrayT0) {
-      fhArraySize->Fill(fulTsCounter, fpvDigiTof->size() + fpvDigiT0->size());
-      fhArrayCapacity->Fill(fulTsCounter, fpvDigiTof->capacity() + fpvDigiT0->capacity());
-    }  // if( kTRUE == fbSeparateArrayT0 )
+    if (kTRUE == fbSeparateArrayBmon) {
+      fhArraySize->Fill(fulTsCounter, fpvDigiTof->size() + fpvDigiBmon->size());
+      fhArrayCapacity->Fill(fulTsCounter, fpvDigiTof->capacity() + fpvDigiBmon->capacity());
+    }  // if( kTRUE == fbSeparateArrayBmon )
     else {
       fhArraySize->Fill(fulTsCounter, fpvDigiTof->size());
       fhArrayCapacity->Fill(fulTsCounter, fpvDigiTof->capacity());
-    }  // else of if( kTRUE == fbSeparateArrayT0 )
+    }  // else of if( kTRUE == fbSeparateArrayBmon )
   }    // if( kTRUE == fbMonitorMode )
 
   if (0 == fulTsCounter % 10000) LOG(info) << "Processed " << fulTsCounter << "TS";
@@ -226,7 +226,7 @@ void CbmMcbm2018UnpackerTaskTof::Reset()
 {
   fpvDigiTof->clear();
 
-  if (kTRUE == fbSeparateArrayT0) { fpvDigiT0->clear(); }  // if( kTRUE == fbSeparateArrayT0 )
+  if (kTRUE == fbSeparateArrayBmon) { fpvDigiBmon->clear(); }  // if( kTRUE == fbSeparateArrayBmon )
 }
 
 
diff --git a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTof.h b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTof.h
index f7909a17ff661269165822cebb25b1f829b6f5fd..d02e5856a9a4b5117a28dc3940633d88d4ecd6de 100644
--- a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTof.h
+++ b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTof.h
@@ -53,11 +53,11 @@ public:
   void SetDiamondDpbIdx(UInt_t uIdx = 2);
 
   /// Task settings
-  void SetSeparateArrayT0(Bool_t bFlagIn = kTRUE) { fbSeparateArrayT0 = bFlagIn; }
-  void SetDigiMaskAndIdT0(UInt_t uMask, UInt_t uMaskedIdT0)
+  void SetSeparateArrayBmon(Bool_t bFlagIn = kTRUE) { fbSeparateArrayBmon = bFlagIn; }
+  void SetDigiMaskAndIdBmon(UInt_t uMask, UInt_t uMaskedIdBmon)
   {
     fuDigiMaskId     = uMask;
-    fuDigiMaskedIdT0 = uMaskedIdT0;
+    fuDigiMaskedIdBmon = uMaskedIdBmon;
   }
   void SetWriteOutputFlag(Bool_t bFlagIn) { fbWriteOutput = bFlagIn; }
 
@@ -65,11 +65,11 @@ private:
   /// Control flags
   Bool_t fbMonitorMode;       //! Switch ON the filling of a minimal set of histograms
   Bool_t fbDebugMonitorMode;  //! Switch ON the filling of a additional set of histograms
-  Bool_t fbSeparateArrayT0;   //! If ON, T0 digis are saved in separate TClonesArray
+  Bool_t fbSeparateArrayBmon;  //! If ON, Bmon digis are saved in separate TClonesArray
   Bool_t fbWriteOutput;       //! If ON the output TClonesArray of digi is written to disk
 
   /// Parameters
-  UInt_t fuDigiMaskedIdT0;
+  UInt_t fuDigiMaskedIdBmon;
   UInt_t fuDigiMaskId;
 
   /// Statistics & first TS rejection
@@ -77,7 +77,7 @@ private:
 
   /// Output vectors
   std::vector<CbmTofDigi>* fpvDigiTof = nullptr;
-  std::vector<CbmTofDigi>* fpvDigiT0  = nullptr;
+  std::vector<CbmTofDigi>* fpvDigiBmon = nullptr;
 
   /// Histograms
   TH1* fhArraySize     = nullptr;
diff --git a/fles/star2019/monitor/CbmStar2019MonitorAlgo.cxx b/fles/star2019/monitor/CbmStar2019MonitorAlgo.cxx
index 60f97a81b95fcda4da6bff547661d4ece49a3d17..517d3afbe15c5c91ad3365d3d3db8ae7ac43b6a3 100644
--- a/fles/star2019/monitor/CbmStar2019MonitorAlgo.cxx
+++ b/fles/star2019/monitor/CbmStar2019MonitorAlgo.cxx
@@ -173,7 +173,7 @@ CbmStar2019MonitorAlgo::~CbmStar2019MonitorAlgo()
 // -------------------------------------------------------------------------
 Bool_t CbmStar2019MonitorAlgo::Init()
 {
-  LOG(info) << "Initializing mCBM T0 2019 monitor algo";
+  LOG(info) << "Initializing mCBM Bmon 2019 monitor algo";
 
   return kTRUE;
 }
diff --git a/fles/star2019/monitor/CbmStar2019MonitorPulserAlgo.cxx b/fles/star2019/monitor/CbmStar2019MonitorPulserAlgo.cxx
index 84e170b8f2f07344e876e806b03edba94faa5be5..c0d82af9ab8d00ef98c1e7617a9f0fa2dcf22512 100644
--- a/fles/star2019/monitor/CbmStar2019MonitorPulserAlgo.cxx
+++ b/fles/star2019/monitor/CbmStar2019MonitorPulserAlgo.cxx
@@ -95,7 +95,7 @@ CbmStar2019MonitorPulserAlgo::~CbmStar2019MonitorPulserAlgo()
 // -------------------------------------------------------------------------
 Bool_t CbmStar2019MonitorPulserAlgo::Init()
 {
-  LOG(info) << "Initializing mCBM T0 2019 monitor algo";
+  LOG(info) << "Initializing mCBM Bmon 2019 monitor algo";
 
   return kTRUE;
 }
diff --git a/macro/L1/run_reco_L1global.C b/macro/L1/run_reco_L1global.C
index a1f6a0780812a2d85a681dfe7e647b8dd8825f9b..2ed03688c5e2fcfedd8807eadb90af755c1def3e 100644
--- a/macro/L1/run_reco_L1global.C
+++ b/macro/L1/run_reco_L1global.C
@@ -220,7 +220,7 @@ void run_reco_L1global(TString input = "", Int_t nTimeSlices = -1, Int_t firstTi
       evBuildRaw->SetReferenceDetector(kRawEventBuilderDetSts);
 
       // Make Bmon (previous reference detector) a selected detector (with default parameters)
-      evBuildRaw->AddDetector(kRawEventBuilderDetT0);
+      evBuildRaw->AddDetector(kRawEventBuilderDetBmon);
 
       // Use sliding window seed builder with STS
       //evBuildRaw->SetReferenceDetector(kRawEventBuilderDetUndef);
diff --git a/macro/L1/run_reco_LITglobal.C b/macro/L1/run_reco_LITglobal.C
index 500efede3422185bd962c722aa008a36bb8ff4bd..9b870e1aac8b105fb72379d370e5a5431562d52c 100644
--- a/macro/L1/run_reco_LITglobal.C
+++ b/macro/L1/run_reco_LITglobal.C
@@ -231,7 +231,7 @@ void run_reco_LITglobal(TString input = "", Int_t nTimeSlices = -1, Int_t firstT
       evBuildRaw->SetReferenceDetector(kRawEventBuilderDetSts);
 
       // Make Bmon (previous reference detector) a selected detector (with default parameters)
-      evBuildRaw->AddDetector(kRawEventBuilderDetT0);
+      evBuildRaw->AddDetector(kRawEventBuilderDetBmon);
 
       // Use sliding window seed builder with STS
       //evBuildRaw->SetReferenceDetector(kRawEventBuilderDetUndef);
diff --git a/macro/PWG/common/production/run_reco_json_config.C b/macro/PWG/common/production/run_reco_json_config.C
index 2a0188ac5312434134e4b753da973e2e5380f304..f7beeadc4618be4d7555feae1e79c6921d3f6aec 100644
--- a/macro/PWG/common/production/run_reco_json_config.C
+++ b/macro/PWG/common/production/run_reco_json_config.C
@@ -29,8 +29,8 @@
 #include "CbmPVFinderKF.h"
 #include "CbmPrimaryVertexFinder.h"
 #include "CbmPsdHitProducer.h"
-#include "CbmRecoBmon.h"
 #include "CbmRecoSts.h"
+#include "CbmRecoT0.h"
 #include "CbmRichHitProducer.h"
 #include "CbmRichReconstruction.h"
 #include "CbmSetup.h"
@@ -259,7 +259,7 @@ void run_reco_json_config(TString input = "", Int_t nTimeSlices = -1, Int_t firs
       // Set STS as reference detector
       evBuildRaw->SetReferenceDetector(kRawEventBuilderDetSts);
       // Make Bmon (previous reference detector) a selected detector (with default parameters)
-      evBuildRaw->AddDetector(kRawEventBuilderDetT0);
+      evBuildRaw->AddDetector(kRawEventBuilderDetBmon);
 
       // Use sliding window seed builder with STS
       //evBuildRaw->SetReferenceDetector(kRawEventBuilderDetUndef);
@@ -499,10 +499,10 @@ void run_reco_json_config(TString input = "", Int_t nTimeSlices = -1, Int_t firs
     }
     // ----------------------------------------------------------------------
 
-    // -----  T0 reconstruction ----------------------------------------------
-    CbmRecoBmon* recoT0 = new CbmRecoBmon();
-    run->AddTask(recoT0);
-    std::cout << "-I-: Added task " << recoT0->GetName() << std::endl;
+    // -----  Bmon reconstruction ----------------------------------------------
+    CbmRecoT0* recoBmon = new CbmRecoT0();
+    run->AddTask(recoBmon);
+    std::cout << "-I-: Added task " << recoBmon->GetName() << std::endl;
     // -----------------------------------------------------------------------
 
     // -----   Track matching  -----------------------------------------------
diff --git a/macro/beamtime/cosy2019/FindHodoOrCoinc.C b/macro/beamtime/cosy2019/FindHodoOrCoinc.C
index 5b55da267b73107904ddd478db6712dc28c24631..20f55f3934fc33babd06455e0133238ac743297a 100644
--- a/macro/beamtime/cosy2019/FindHodoOrCoinc.C
+++ b/macro/beamtime/cosy2019/FindHodoOrCoinc.C
@@ -5,7 +5,7 @@
 Bool_t FindHodoOrCoinc(Long64_t liNbEntryToRead = -1, UInt_t uRunId = 25, Double_t dWinStart = -100.,
                        Double_t dWinStop = 100., TString sInputFileName = "data/unp_cosy")
 {
-  /// Ignore runs where the T0 FEE was not used
+  /// Ignore runs where the Bmon FEE was not used
   if (uRunId < 14) return kFALSE;
 
   /// Axis variables
@@ -50,7 +50,7 @@ Bool_t FindHodoOrCoinc(Long64_t liNbEntryToRead = -1, UInt_t uRunId = 25, Double
                                  1200, 0, 120, uNbTimeBins, dWinStart, dWinStop);
 
   /// Input arrays
-  std::vector<CbmTofDigi>* vDigisT0 = new std::vector<CbmTofDigi>();
+  std::vector<CbmTofDigi>* vDigisBmon = new std::vector<CbmTofDigi>();
 
   /// Input initiaalization
   sInputFileName += Form("_%04u.root", uRunId);
@@ -59,7 +59,7 @@ Bool_t FindHodoOrCoinc(Long64_t liNbEntryToRead = -1, UInt_t uRunId = 25, Double
 
   TTree* pTree = (TTree*) pFile->Get("cbmsim");
 
-  pTree->SetBranchAddress("T0Digi", &vDigisT0);
+  pTree->SetBranchAddress("BmonDigi", &vDigisBmon);
 
   /// Temp storage
   std::vector<CbmTofDigi*> vDigisHodoAX;
@@ -79,13 +79,14 @@ Bool_t FindHodoOrCoinc(Long64_t liNbEntryToRead = -1, UInt_t uRunId = 25, Double
   for (Long64_t liEntry = 1; liEntry < liNbEntryToRead; liEntry++) {
     pTree->GetEntry(liEntry);
 
-    UInt_t uNbDigisT0 = vDigisT0->size();
+    UInt_t uNbDigisBmon = vDigisBmon->size();
 
     if (0 == liEntry % 100)
-      std::cout << "Event " << std::setw(6) << liEntry << " Nb T0 digis is " << std::setw(6) << uNbDigisT0 << std::endl;
+      std::cout << "Event " << std::setw(6) << liEntry << " Nb Bmon digis is " << std::setw(6) << uNbDigisBmon
+                << std::endl;
 
-    for (UInt_t uT0Digi = 0; uT0Digi < uNbDigisT0; ++uT0Digi) {
-      CbmTofDigi& pDigi = vDigisT0->at(uT0Digi) UInt_t uChannel = pDigi.GetChannel();
+    for (UInt_t uBmonDigi = 0; uBmonDigi < uNbDigisBmon; ++uBmonDigi) {
+      CbmTofDigi& pDigi = vDigisBmon->at(uBmonDigi) UInt_t uChannel = pDigi.GetChannel();
       Double_t dTime                                            = pDigi.GetTime();
 
       hDigisNbEvoTs->Fill(liEntry, uChannel);
@@ -98,7 +99,7 @@ Bool_t FindHodoOrCoinc(Long64_t liNbEntryToRead = -1, UInt_t uRunId = 25, Double
         case 3: vDigisHodoBY.push_back(pDigi); break;
         default: break;
       }  // switch( uChannel )
-    }    // for( UInt_t uT0Digi = 0; uT0Digi < uNbDigisT0; ++uT0Digi )
+    }    // for( UInt_t uBmonDigi = 0; uBmonDigi < uNbDigisBmon; ++uBmonDigi )
 
     /// Efficient detection rely on time sorted arrays!
     /// Sort the Hodo A X array respective to time
diff --git a/macro/beamtime/cosy2019/FindHodoOrHitOffsetsCosy2019.C b/macro/beamtime/cosy2019/FindHodoOrHitOffsetsCosy2019.C
index 1acd9bd24f1c47a4219791514f56fa13220be407..6a6295eeb2c6bb5fe2d8b0a0f45bc86b5c5d0c9e 100644
--- a/macro/beamtime/cosy2019/FindHodoOrHitOffsetsCosy2019.C
+++ b/macro/beamtime/cosy2019/FindHodoOrHitOffsetsCosy2019.C
@@ -7,7 +7,7 @@ Bool_t FindHodoOrHitOffsetsCosy2019(Long64_t liNbEntryToRead = -1, UInt_t uRunId
                                     TString sInputFileName     = "data/unp_cosy",
                                     TString sInputFileNameHits = "data/cosy2019")
 {
-  /// Ignore runs where the T0 FEE was not used
+  /// Ignore runs where the Bmon FEE was not used
   if (uRunId < 13) return kFALSE;
 
   /// Constants
@@ -119,7 +119,7 @@ Bool_t FindHodoOrHitOffsetsCosy2019(Long64_t liNbEntryToRead = -1, UInt_t uRunId
                               180, -4.0, 4.0, 700, -4.0, 4.0);
 
   /// Input arrays
-  std::vector<CbmTofDigi>* vDigisT0 = new std::vector<CbmTofDigi>();
+  std::vector<CbmTofDigi>* vDigisBmon = new std::vector<CbmTofDigi>();
 
   /// Input initiaalization
   sInputFileName += Form("_%04u.root", uRunId);
@@ -128,7 +128,7 @@ Bool_t FindHodoOrHitOffsetsCosy2019(Long64_t liNbEntryToRead = -1, UInt_t uRunId
 
   TTree* pTree = (TTree*) pFile->Get("cbmsim");
 
-  pTree->SetBranchAddress("T0Digi", &vDigisT0);
+  pTree->SetBranchAddress("BmonDigi", &vDigisBmon);
 
   /// Temp storage
   std::vector<CbmTofDigi*> vDigisHodoAX;
@@ -148,13 +148,14 @@ Bool_t FindHodoOrHitOffsetsCosy2019(Long64_t liNbEntryToRead = -1, UInt_t uRunId
   for (Long64_t liEntry = 1; liEntry < liNbEntryToRead; liEntry++) {
     pTree->GetEntry(liEntry);
 
-    UInt_t uNbDigisT0 = vDigisT0->size();
+    UInt_t uNbDigisBmon = vDigisBmon->size();
 
     if (0 == liEntry % 100)
-      std::cout << "Event " << std::setw(6) << liEntry << " Nb T0 digis is " << std::setw(6) << uNbDigisT0 << std::endl;
+      std::cout << "Event " << std::setw(6) << liEntry << " Nb Bmon digis is " << std::setw(6) << uNbDigisBmon
+                << std::endl;
 
-    for (UInt_t uT0Digi = 0; uT0Digi < uNbDigisT0; ++uT0Digi) {
-      CbmTofDigi& pDigi = vDigisT0->at(uT0Digi) UInt_t uChannel = pDigi.GetChannel();
+    for (UInt_t uBmonDigi = 0; uBmonDigi < uNbDigisBmon; ++uBmonDigi) {
+      CbmTofDigi& pDigi = vDigisBmon->at(uBmonDigi) UInt_t uChannel = pDigi.GetChannel();
       Double_t dTime                                            = pDigi.GetTime();
 
       hDigisNbEvoTs->Fill(liEntry, uChannel);
@@ -167,7 +168,7 @@ Bool_t FindHodoOrHitOffsetsCosy2019(Long64_t liNbEntryToRead = -1, UInt_t uRunId
         case 3: vDigisHodoBY.push_back(pDigi); break;
         default: break;
       }  // switch( uChannel )
-    }    // for( UInt_t uT0Digi = 0; uT0Digi < uNbDigisT0; ++uT0Digi )
+    }    // for( UInt_t uBmonDigi = 0; uBmonDigi < uNbDigisBmon; ++uBmonDigi )
 
     /// Efficient detection rely on time sorted arrays!
     /// Sort the Hodo A X array respective to time
diff --git a/macro/beamtime/cosy2019/FindHodoOrOffsetsCosy2019.C b/macro/beamtime/cosy2019/FindHodoOrOffsetsCosy2019.C
index ad13fb559b0fcc5ca519d72a9927f75813aa747d..e8fdb30902203361ea60b3c038b4202788f47ab6 100644
--- a/macro/beamtime/cosy2019/FindHodoOrOffsetsCosy2019.C
+++ b/macro/beamtime/cosy2019/FindHodoOrOffsetsCosy2019.C
@@ -6,7 +6,7 @@ Bool_t FindHodoOrOffsetsCosy2019(Long64_t liNbEntryToRead = -1, UInt_t uRunId =
                                  Double_t dWinStop = 100., UInt_t uHodoWinLimClk = 100, UInt_t uStsWinLimClk = 500,
                                  TString sInputFileName = "data/unp_cosy")
 {
-  /// Ignore runs where the T0 FEE was not used
+  /// Ignore runs where the Bmon FEE was not used
   if (uRunId < 13) return kFALSE;
 
   /// Constants
@@ -87,7 +87,7 @@ Bool_t FindHodoOrOffsetsCosy2019(Long64_t liNbEntryToRead = -1, UInt_t uRunId =
                                (2 * uStsWinLimClk + 1), dStsWinStart, dStsWinStop, kuNbAsics, -0.5, kuNbAsics - 0.5);
 
   /// Input arrays
-  std::vector<CbmTofDigi>* vDigisT0  = new std::vector<CbmTofDigi>();
+  std::vector<CbmTofDigi>* vDigisBmon = new std::vector<CbmTofDigi>();
   std::vector<CbmStsDigi>* vDigisSts = new std::vector<CbmStsDigi>();
 
   /// Input initiaalization
@@ -96,7 +96,7 @@ Bool_t FindHodoOrOffsetsCosy2019(Long64_t liNbEntryToRead = -1, UInt_t uRunId =
   gROOT->cd();
 
   TTree* pTree = (TTree*) pFile->Get("cbmsim");
-  pTree->SetBranchAddress("T0Digi", &vDigisT0);
+  pTree->SetBranchAddress("BmonDigi", &vDigisBmon);
   pTree->SetBranchAddress("StsDigi", &vDigisSts);
 
   /// Temp storage
@@ -123,15 +123,15 @@ Bool_t FindHodoOrOffsetsCosy2019(Long64_t liNbEntryToRead = -1, UInt_t uRunId =
   for (Long64_t liEntry = 1; liEntry < liNbEntryToRead; liEntry++) {
     pTree->GetEntry(liEntry);
 
-    UInt_t uNbDigisT0  = vDigisT0->size();
+    UInt_t uNbDigisBmon = vDigisBmon->size();
     UInt_t uNbDigisSts = vDigisSts->size();
 
     if (0 == liEntry % 100)
-      std::cout << "Event " << std::setw(6) << liEntry << " Nb T0 digis is " << std::setw(6) << uNbDigisT0
+      std::cout << "Event " << std::setw(6) << liEntry << " Nb Bmon digis is " << std::setw(6) << uNbDigisBmon
                 << " Nb Sts Digis is " << std::setw(6) << uNbDigisSts << std::endl;
 
-    for (UInt_t uT0Digi = 0; uT0Digi < uNbDigisT0; ++uT0Digi) {
-      CbmTofDigi& pDigi = vDigisT0->at(uT0Digi) UInt_t uChannel = pDigi.GetChannel();
+    for (UInt_t uBmonDigi = 0; uBmonDigi < uNbDigisBmon; ++uBmonDigi) {
+      CbmTofDigi& pDigi = vDigisBmon->at(uBmonDigi) UInt_t uChannel = pDigi.GetChannel();
       Double_t dTime                                            = pDigi.GetTime();
 
       hDigisNbEvoTs->Fill(liEntry, uChannel);
@@ -144,7 +144,7 @@ Bool_t FindHodoOrOffsetsCosy2019(Long64_t liNbEntryToRead = -1, UInt_t uRunId =
         case 3: vDigisHodoBY.push_back(pDigi); break;
         default: break;
       }  // switch( uChannel )
-    }    // for( UInt_t uT0Digi = 0; uT0Digi < uNbDigisT0; ++uT0Digi )
+    }    // for( UInt_t uBmonDigi = 0; uBmonDigi < uNbDigisBmon; ++uBmonDigi )
 
     /// Efficient detection rely on time sorted arrays!
     /// Sort the Hodo A X array respective to time
diff --git a/macro/beamtime/cosy2019/FindOffsetsCosy2019.C b/macro/beamtime/cosy2019/FindOffsetsCosy2019.C
index 6751af0089356b0d52cc6846acad21e1284da368..e02847a4ee546682236a2b8a48b3a4333de673a7 100644
--- a/macro/beamtime/cosy2019/FindOffsetsCosy2019.C
+++ b/macro/beamtime/cosy2019/FindOffsetsCosy2019.C
@@ -18,7 +18,7 @@ Bool_t FindOffsetsCosy2019(Long64_t liNbEntryToRead = -1, UInt_t uRunId = 12, UI
   std::vector<std::vector<CbmStsDigi*>> vDigisStsFirstChan;
   std::vector<std::vector<CbmStsDigi*>> vDigisStsLastChan;
   std::vector<CbmStsDigi*> vDigisHodoB;
-  std::vector<CbmTofDigi*> vDigisHodoT0;
+  std::vector<CbmTofDigi*> vDigisHodoBmon;
 
   vDigisSts.resize(kuNbAsics);
   vDigisStsFirstChan.resize(kuNbAsics);
diff --git a/macro/beamtime/cosy2019/MonitorT0.C b/macro/beamtime/cosy2019/MonitorBmon.C
similarity index 80%
rename from macro/beamtime/cosy2019/MonitorT0.C
rename to macro/beamtime/cosy2019/MonitorBmon.C
index dc805176590616b87f0e75c63e4617218efc5494..d5cf66f3434633971c5f2ba35a5fc9035109082a 100644
--- a/macro/beamtime/cosy2019/MonitorT0.C
+++ b/macro/beamtime/cosy2019/MonitorBmon.C
@@ -14,8 +14,8 @@
 // In order to call later Finish, we make this global
 FairRunOnline* run = NULL;
 
-void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServerHttpPort = 8082,
-               Int_t iServerRefreshRate = 100, UInt_t uRunId = 0, UInt_t nrEvents = 0)
+void MonitorBmon(TString inFile = "", TString sHostname = "localhost", Int_t iServerHttpPort = 8082,
+                 Int_t iServerRefreshRate = 100, UInt_t uRunId = 0, UInt_t nrEvents = 0)
 {
   TString srcDir = gSystem->Getenv("VMCWORKDIR");
 
@@ -37,7 +37,7 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   TList* parFileList = new TList();
   TString paramDir   = "./";
 
-  TString paramFileTof       = paramDir + "mT0Par.par";
+  TString paramFileTof       = paramDir + "mBmonPar.par";
   TObjString* parTofFileName = new TObjString(paramFileTof);
   parFileList->Add(parTofFileName);
 
@@ -45,17 +45,17 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   gDebug = 0;
 
   std::cout << std::endl;
-  std::cout << ">>> MonitorT0: output file is " << outFile << std::endl;
+  std::cout << ">>> MonitorBmon: output file is " << outFile << std::endl;
 
   // ========================================================================
   // ========================================================================
   std::cout << std::endl;
-  std::cout << ">>> MonitorT0: Initialising..." << std::endl;
-  CbmMcbm2018MonitorTaskT0* monitor_t0 = new CbmMcbm2018MonitorTaskT0();
+  std::cout << ">>> MonitorBmon: Initialising..." << std::endl;
+  CbmMcbm2018MonitorTaskBmon* monitor_t0 = new CbmMcbm2018MonitorTaskBmon();
 
   monitor_t0->SetIgnoreOverlapMs();
   monitor_t0->SetHistoryHistoSize(1800);
-  if (0 < uRunId) monitor_t0->SetHistoFilename(Form("data/HistosMonitorT0_%03u.root", uRunId));
+  if (0 < uRunId) monitor_t0->SetHistoFilename(Form("data/HistosMonitorBmon_%03u.root", uRunId));
   if (uRunId < 87) monitor_t0->SetPulserTotLimits(90, 100);  // for runs <= 86
   else
     monitor_t0->SetPulserTotLimits(180, 210);  // for runs  >  86
@@ -69,7 +69,7 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   }  // else of if( "" != inFile )
 
   //  source->AddUnpacker(monitor_t0,  0x60, 9  );//gDPB TOF
-  source->AddUnpacker(monitor_t0, 0x90, 9);  //gDPB T0
+  source->AddUnpacker(monitor_t0, 0x90, 9);  //gDPB Bmon
 
   source->SetSubscriberHwm(1000);
 
@@ -94,7 +94,7 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   // --- Start run
   TStopwatch timer;
   timer.Start();
-  std::cout << ">>> MonitorT0: Starting run..." << std::endl;
+  std::cout << ">>> MonitorBmon: Starting run..." << std::endl;
   if (0 == nrEvents) {
     run->Run(nEvents, 0);  // run until end of input file
   }
@@ -111,9 +111,9 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   Double_t rtime = timer.RealTime();
   Double_t ctime = timer.CpuTime();
   std::cout << std::endl << std::endl;
-  std::cout << ">>> MonitorT0: Macro finished successfully." << std::endl;
-  std::cout << ">>> MonitorT0: Output file is " << outFile << std::endl;
-  std::cout << ">>> MonitorT0: Real time " << rtime << " s, CPU time " << ctime << " s" << std::endl;
+  std::cout << ">>> MonitorBmon: Macro finished successfully." << std::endl;
+  std::cout << ">>> MonitorBmon: Output file is " << outFile << std::endl;
+  std::cout << ">>> MonitorBmon: Real time " << rtime << " s, CPU time " << ctime << " s" << std::endl;
   std::cout << std::endl;
 
   /// --- Screen output for automatic tests
diff --git a/macro/beamtime/cosy2019/PlotStsPosWithHodoCoinc.C b/macro/beamtime/cosy2019/PlotStsPosWithHodoCoinc.C
index 4a8d10dc2b93734dd30d6353719f4778f92b2a47..a9f656c1fba17218783d79690acb6f9248c76e10 100644
--- a/macro/beamtime/cosy2019/PlotStsPosWithHodoCoinc.C
+++ b/macro/beamtime/cosy2019/PlotStsPosWithHodoCoinc.C
@@ -8,13 +8,13 @@ Bool_t PlotStsPosWithHodoCoinc(Long64_t liNbEntryToRead = -1, UInt_t uRunId = 12
   /// Data Input
   TClonesArray* pHitsArraySts =
     new TClonesArray("CbmStsHit",
-                     5000);  //   TClonesArray * pHitsArrayT0   = new TClonesArray("CbmTofHit",5000);
+                     5000);  //   TClonesArray * pHitsArrayBmon   = new TClonesArray("CbmTofHit",5000);
 
   /// Temp storage
   std::vector<CbmStsHit*> vHitsHodoA;
   std::vector<CbmStsHit*> vHitsSts;
   std::vector<CbmStsHit*> vHitsHodoB;
-  std::vector<CbmTofHit*> vHitsHodoT0;
+  std::vector<CbmTofHit*> vHitsHodoBmon;
 
   /// Histograms
   /// Raw
@@ -77,8 +77,8 @@ Bool_t PlotStsPosWithHodoCoinc(Long64_t liNbEntryToRead = -1, UInt_t uRunId = 12
   TBranch* pBranchSts = pTree->GetBranch("StsHit");
   pBranchSts->SetAddress(&pHitsArraySts);
   /*
-   TBranch *pBranchT0  = pTree->GetBranch("T0Hit");
-   pBranchT0->SetAddress( &pHitsArrayT0 );
+   TBranch *pBranchBmon  = pTree->GetBranch("BmonHit");
+   pBranchBmon->SetAddress( &pHitsArrayBmon );
 */
   //read the number of entries in the tree
   Long64_t liNbEntries = pTree->GetEntries();
@@ -94,16 +94,16 @@ Bool_t PlotStsPosWithHodoCoinc(Long64_t liNbEntryToRead = -1, UInt_t uRunId = 12
     pTree->GetEntry(liEntry);
 
     UInt_t uNbHitsSts = pHitsArraySts->GetEntriesFast();
-    //      UInt_t uNbHitsT0   = pHitsArrayT0->GetEntriesFast();
+    //      UInt_t uNbHitsBmon   = pHitsArrayBmon->GetEntriesFast();
 
     if (0 == liEntry % 1000)
       std::cout << "Event " << std::setw(6) << liEntry << " Nb Sts hits is " << std::setw(6)
                 << uNbHitsSts
-                //                << " Nb T0 hits is "   << std::setw( 6 ) << uNbHitsT0
+                //                << " Nb Bmon hits is "   << std::setw( 6 ) << uNbHitsBmon
                 << std::endl;
 
     hHitsNbEvoTs->Fill(liEntry, 0., uNbHitsSts);
-    //      hHitsNbEvoTs->Fill( liEntry, 1., uNbHitsT0 );
+    //      hHitsNbEvoTs->Fill( liEntry, 1., uNbHitsBmon );
 
     vHitsHodoA.clear();
     vHitsSts.clear();
@@ -143,14 +143,14 @@ Bool_t PlotStsPosWithHodoCoinc(Long64_t liNbEntryToRead = -1, UInt_t uRunId = 12
       }  // switch( uAddress )
     }    // for( UInt_t uStsHit = 0; uStsHit < uNbHitsSts; ++uStsHit )
          /*
-      for( UInt_t uT0Hit = 0; uT0Hit < uNbHitsT0; ++uT0Hit )
+      for( UInt_t uBmonHit = 0; uBmonHit < uNbHitsBmon; ++uBmonHit )
       {
-         Double_t dTime = static_cast<const CbmTofHitExp*>( pHitsArrayT0->At(uT0Hit) )->GetTime();
+         Double_t dTime = static_cast<const CbmTofHitExp*>( pHitsArrayBmon->At(uBmonHit) )->GetTime();
          hHitsNbEvo->Fill( dTime * 1e-9, 1 );
 
          hDetHitsNbEvoTs->Fill( liEntry, 3. );
          hDetHitsNbEvo->Fill( dTime * 1e-9, 3 );
-      } // for( UInt_t uT0Hit = 0; uT0Hit < uNbHitsT0; ++uT0Hit )
+      } // for( UInt_t uBmonHit = 0; uBmonHit < uNbHitsBmon; ++uBmonHit )
 */
 
     /// Efficient detection rely on time sorted arrays!
diff --git a/macro/beamtime/cosy2019/mT0Par.par b/macro/beamtime/cosy2019/mBmonPar.par
similarity index 100%
rename from macro/beamtime/cosy2019/mT0Par.par
rename to macro/beamtime/cosy2019/mBmonPar.par
diff --git a/macro/beamtime/cosy2019/unpack_tsa_cosy2019.C b/macro/beamtime/cosy2019/unpack_tsa_cosy2019.C
index 54124dfe6fc19c5c0c4b0da69029924968323408..de66ffe9b1d3705e56992999202a34ad0b447369 100644
--- a/macro/beamtime/cosy2019/unpack_tsa_cosy2019.C
+++ b/macro/beamtime/cosy2019/unpack_tsa_cosy2019.C
@@ -41,7 +41,7 @@ void unpack_tsa_cosy2019(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEvents
   TObjString* parStsFileName = new TObjString(paramFileSts);
   parFileList->Add(parStsFileName);
 
-  TString paramFileTof       = paramDir + "mT0Par.par";
+  TString paramFileTof       = paramDir + "mBmonPar.par";
   TObjString* parTofFileName = new TObjString(paramFileTof);
   parFileList->Add(parTofFileName);
 
@@ -70,7 +70,7 @@ void unpack_tsa_cosy2019(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEvents
   unpacker_tof->SetIgnoreOverlapMs();
   unpacker_hodo->SetIgnoreOverlapMs();
 
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   switch (uRunId) {
     case 1:  // No correlation and missing ASICs?
@@ -911,7 +911,7 @@ void unpack_tsa_cosy2019(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEvents
 
   source->SetFileName(inFile);
   if (13 <= uRunId) {
-    source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);  //gDPB T0
+    source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);  //gDPB Bmon
   }                                                               // if (13 <= uRunId)
   source->AddUnpacker(unpacker_hodo, 0x10, ECbmModuleId::kHodo);  //HODO + STS xyter
 
diff --git a/macro/beamtime/cosy2019/unpack_tsa_cosy2019_sts.C b/macro/beamtime/cosy2019/unpack_tsa_cosy2019_sts.C
index 0dfd55bc07c11f115a378fcc94ae1d4309974b56..83145e5c9a28f63adb38411ee03dc193bdcc3fe8 100644
--- a/macro/beamtime/cosy2019/unpack_tsa_cosy2019_sts.C
+++ b/macro/beamtime/cosy2019/unpack_tsa_cosy2019_sts.C
@@ -73,7 +73,7 @@ void unpack_tsa_cosy2019_sts(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEv
   //  unpacker_tof ->SetIgnoreOverlapMs();
   //  unpacker_hodo->SetIgnoreOverlapMs();
 
-  //  unpacker_tof ->SetSeparateArrayT0();
+  //  unpacker_tof ->SetSeparateArrayBmon();
 
   switch (uRunId) {
       /*
@@ -136,7 +136,7 @@ void unpack_tsa_cosy2019_sts(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEv
 
   source->SetFileName(inFile);
   source->AddUnpacker(unpacker_sts, 0x10, kSts);  //STS xyter
-  //  source->AddUnpacker(unpacker_tof,  0x90, kTof  );//gDPB T0
+  //  source->AddUnpacker(unpacker_tof,  0x90, kTof  );//gDPB Bmon
   //  source->AddUnpacker(unpacker_hodo, 0x10, kHodo );//HODO xyter
 
   // --- Event header
diff --git a/macro/beamtime/hd2020/ana_digi_cal.C b/macro/beamtime/hd2020/ana_digi_cal.C
index 48b52f071b37308dc5546ef41941f803b6124e28..41643fa8b4cdb2710c5f89c435ff3efb5ba731f3 100644
--- a/macro/beamtime/hd2020/ana_digi_cal.C
+++ b/macro/beamtime/hd2020/ana_digi_cal.C
@@ -94,7 +94,7 @@ void ana_digi_cal(Int_t nEvents = 10000000, Int_t calMode = 53, Int_t calSel = 0
   // tofClust->SetTimePeriod(25600.);       // ignore coarse time
   // tofClust->SetCorMode(iBugCor);         // correct missing hits
   tofClust->SetIdMode(0);  // 1 = calibrate on module level
-  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for T0M3,Rpc0,Strip 23
+  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for BmonM3,Rpc0,Strip 23
   //   tofClust->SetDeadStrips(27,30);   // declare dead strip for T6M0,Rpc1,Strip 30
   //   tofClust->SetDeadStrips(28,19);   // declare dead strip for T7M0,Rpc0,Strip 19
   //tofClust->SetDeadStrips(25,16);   // declare non-existant diamond strip (#5) dead
diff --git a/macro/beamtime/mcbm2018/AnalyzeDigiMcbmFull.C b/macro/beamtime/mcbm2018/AnalyzeDigiMcbmFull.C
index aa2056645aa518f9225e00db4dd342a4db0a70f0..4ec7525cf7301a6108a594c6709a8195fd0ed961 100644
--- a/macro/beamtime/mcbm2018/AnalyzeDigiMcbmFull.C
+++ b/macro/beamtime/mcbm2018/AnalyzeDigiMcbmFull.C
@@ -14,7 +14,7 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
   std::vector<UInt_t> vuNbStsDigisBin(uNbBinsTs, 0);
   std::vector<UInt_t> vuNbMuchDigisBin(uNbBinsTs, 0);
   std::vector<UInt_t> vuNbTofDigisBin(uNbBinsTs, 0);
-  std::vector<UInt_t> vuNbT0DigisBin(uNbBinsTs, 0);
+  std::vector<UInt_t> vuNbBmonDigisBin(uNbBinsTs, 0);
   std::vector<UInt_t> vuNbAllDigisBin(uNbBinsTs, 0);
   std::vector<Double_t> vdDigisMeanTimeBin(uNbBinsTs, 0);
 
@@ -22,7 +22,7 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
   UInt_t uThrNbStsDigi  = 1;
   UInt_t uThrNbMuchDigi = 1;
   UInt_t uThrNbTofDigi  = 7;
-  UInt_t uThrNbT0Digi   = 0;
+  UInt_t uThrNbBmonDigi = 0;
   UInt_t uThrNbAllDigi  = 9;
 
   std::vector<Double_t> vdBinsWithEventStartTime;
@@ -35,10 +35,10 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
   std::vector<std::vector<Double_t>> vdStsDigiTimePerEvent;
   std::vector<std::vector<Double_t>> vdMuchDigiTimePerEvent;
   std::vector<std::vector<Double_t>> vdTofDigiTimePerEvent;
-  std::vector<std::vector<Double_t>> vdT0DigiTimePerEvent;
+  std::vector<std::vector<Double_t>> vdBmonDigiTimePerEvent;
 
   /// Histograms
-  std::vector<CbmTofDigi>* vDigisT0            = new std::vector<CbmTofDigi>();
+  std::vector<CbmTofDigi>* vDigisBmon          = new std::vector<CbmTofDigi>();
   std::vector<CbmStsDigi>* vDigisSts           = new std::vector<CbmStsDigi>();
   std::vector<CbmMuchBeamTimeDigi>* vDigisMuch = new std::vector<CbmMuchBeamTimeDigi>();
   std::vector<CbmTofDigi>* vDigisTof           = new std::vector<CbmTofDigi>();
@@ -65,10 +65,10 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
                                   "TOF digi counts per time bin vs Tree entry "
                                   "(TS); Entry []; Digi counts []; Bins []",
                                   10000, 0, 10000, 200, 0, 200);
-  TH2* hBinCntT0EvoTs   = new TH2D("hBinCntT0EvoTs",
-                                 "T0 digi counts per time bin vs Tree entry "
-                                 "(TS); Entry []; Digi counts []; Bins []",
-                                 10000, 0, 10000, 200, 0, 200);
+  TH2* hBinCntBmonEvoTs = new TH2D("hBinCntBmonEvoTs",
+                                   "Bmon digi counts per time bin vs Tree entry "
+                                   "(TS); Entry []; Digi counts []; Bins []",
+                                   10000, 0, 10000, 200, 0, 200);
   TH2* hBinCntAllEvoTs  = new TH2D("hBinCntAllEvoTs",
                                   "Global digi counts per time bin vs Tree entry (TS); Entry []; "
                                   "Digi counts []; Bins []",
@@ -100,10 +100,10 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
                                 "Global digi counts per time bin vs same for TOF; TOF Digi count "
                                 "[]; ALL Digi counts []; Bins []",
                                 200, 0, 200, 200, 0, 200);
-  TH2* hBinCntT0All   = new TH2D("hBinCntT0All",
-                               "Global digi counts per time bin vs same for T0; T0 Digi count "
-                               "[]; ALL Digi counts []; Bins []",
-                               200, 0, 200, 200, 0, 200);
+  TH2* hBinCntBmonAll = new TH2D("hBinCntBmonAll",
+                                 "Global digi counts per time bin vs same for Bmon; Bmon Digi count "
+                                 "[]; ALL Digi counts []; Bins []",
+                                 200, 0, 200, 200, 0, 200);
 
   /// Event detection
   TH1* hEventSeedEvo =
@@ -128,18 +128,18 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
 
   TH1* hStsT0TimeCorr =
     new TH1D("hStsT0TimeCorr",
-             "Time difference between each STS and T0 Digi pair in event; tSts "
-             "- tT0 [ns]; Digi pairs []",
+             "Time difference between each STS and Bmon Digi pair in event; tSts "
+             "- tBmon [ns]; Digi pairs []",
              (Int_t)(dEventWinToMeanMaxNs - dEventWinToMeanMinNs) / 5, dEventWinToMeanMinNs, dEventWinToMeanMaxNs);
   TH1* hMuchT0TimeCorr =
     new TH1D("hMuchT0TimeCorr",
-             "Time difference between each MUCH and T0 Digi pair in event; "
-             "tSts - tT0 [ns]; Digi pairs []",
+             "Time difference between each MUCH and Bmon Digi pair in event; "
+             "tSts - tBmon [ns]; Digi pairs []",
              (Int_t)(dEventWinToMeanMaxNs - dEventWinToMeanMinNs) / 5, dEventWinToMeanMinNs, dEventWinToMeanMaxNs);
   TH1* hTofT0TimeCorr =
     new TH1D("hTofT0TimeCorr",
-             "Time difference between each Tof and T0 Digi pair in event; tTof "
-             "- tT0 [ns]; Digi pairs []",
+             "Time difference between each Tof and Bmon Digi pair in event; tTof "
+             "- tBmon [ns]; Digi pairs []",
              (Int_t)(dEventWinToMeanMaxNs - dEventWinToMeanMinNs) / 5, dEventWinToMeanMinNs, dEventWinToMeanMaxNs);
 
   TFile* pFile = new TFile(sInputFileName, "READ");
@@ -147,7 +147,7 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
 
   TTree* pTree = (TTree*) pFile->Get("cbmsim");
 
-  pTree->SetBranchAddress("T0Digi", &vDigisT0);
+  pTree->SetBranchAddress("BmonDigi", &vDigisBmon);
   pTree->SetBranchAddress("StsDigi", &vDigisSts);
   pTree->SetBranchAddress("MuchBeamTimeDigi", &vDigisMuch);
   pTree->SetBranchAddress("TofDigi", &vDigisTof);
@@ -162,7 +162,7 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
   for (Long64_t liEntry = 3; liEntry < liNbEntryToRead; liEntry++) {
     pTree->GetEntry(liEntry);
 
-    UInt_t uNbDigisT0   = vDigisT0->size();
+    UInt_t uNbDigisBmon = vDigisBmon->size();
     UInt_t uNbDigisSts  = vDigisSts->size();
     UInt_t uNbDigisMuch = vDigisMuch->size();
     UInt_t uNbDigisTof  = vDigisTof->size();
@@ -170,17 +170,17 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
     if (0 == liEntry % 1000)
       std::cout << "Event " << std::setw(6) << liEntry << " Nb Sts digis is " << std::setw(6) << uNbDigisSts
                 << " Nb Much digis is " << std::setw(6) << uNbDigisMuch << " Nb Tof digis is " << std::setw(6)
-                << uNbDigisTof << " Nb T0 digis is " << std::setw(6) << uNbDigisT0 << std::endl;
+                << uNbDigisTof << " Nb Bmon digis is " << std::setw(6) << uNbDigisBmon << std::endl;
 
     hDigisNbEvoTs->Fill(liEntry, 0., uNbDigisSts);
     hDigisNbEvoTs->Fill(liEntry, 1., uNbDigisMuch);
     hDigisNbEvoTs->Fill(liEntry, 2., uNbDigisTof);
-    hDigisNbEvoTs->Fill(liEntry, 3., uNbDigisT0);
+    hDigisNbEvoTs->Fill(liEntry, 3., uNbDigisBmon);
     /*
       if( 0 < uNbDigisSts )
       {
-         std::cout << " First STS digi time is " << std::setw(12) << ( vDigisT0->at( 0 ) ).GetTime() - 3.4e10
-                   << " Last  STS digi time is " << std::setw(12) << ( vDigisT0->at( uNbDigisSts - 1) ).GetTime()- 3.4e10
+         std::cout << " First STS digi time is " << std::setw(12) << ( vDigisBmon->at( 0 ) ).GetTime() - 3.4e10
+                   << " Last  STS digi time is " << std::setw(12) << ( vDigisBmon->at( uNbDigisSts - 1) ).GetTime()- 3.4e10
                    << " Diff is " << ( pDigiLast->GetTime() - pDigiFirst->GetTime() )
                    << std::endl;
       } //if( 0 < uNbDigisSts )
@@ -205,7 +205,7 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
       dOffsetRunStartNs + liEntry * dTsDurationNs - uExtraBins * dBinLengthNs;  /// Add bins for the offset of STS/MUCH!
 
     for (UInt_t uStsDigi = 0; uStsDigi < uNbDigisSts; ++uStsDigi) {
-      Double_t dTime = (vDigisT0->at(uStsDigi)).GetTime();
+      Double_t dTime = (vDigisBmon->at(uStsDigi)).GetTime();
       hDigisNbEvo->Fill(dTime * 1e-9, 0);
 
       UInt_t uBin = (dTime - dTsStartNs) / dBinLengthNs;
@@ -249,20 +249,20 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
       vdDigisMeanTimeBin[uBin] += dTime;
     }  // for( UInt_t uTofDigi = 0; uTofDigi < uNbDigisTof; ++uTofDigi )
 
-    for (UInt_t uT0Digi = 0; uT0Digi < uNbDigisT0; ++uT0Digi) {
-      Double_t dTime = (vDigisT0->at(uT0Digi)).GetTime();
+    for (UInt_t uBmonDigi = 0; uBmonDigi < uNbDigisBmon; ++uBmonDigi) {
+      Double_t dTime = (vDigisBmon->at(uBmonDigi)).GetTime();
       hDigisNbEvo->Fill(dTime * 1e-9, 3);
 
       UInt_t uBin = (dTime - dTsStartNs) / dBinLengthNs;
       if (uNbBinsTs <= uBin) {
-        std::cout << "T0 " << uBin << " / " << uNbBinsTs << " " << uT0Digi << " / " << uNbDigisT0 << std::endl;
+        std::cout << "Bmon " << uBin << " / " << uNbBinsTs << " " << uBmonDigi << " / " << uNbDigisBmon << std::endl;
         continue;
       }  // if( uNbBinsTs <= uBin )
-      vuNbT0DigisBin[uBin]++;
+      vuNbBmonDigisBin[uBin]++;
       vuNbAllDigisBin[uBin]++;
 
       vdDigisMeanTimeBin[uBin] += dTime;
-    }  // for( UInt_t uT0Digi = 0; uT0Digi < uNbDigisT0; ++uT0Digi )
+    }  // for( UInt_t uBmonDigi = 0; uBmonDigi < uNbDigisBmon; ++uBmonDigi )
 
     for (UInt_t uBin = 0; uBin < uNbBinsTs; ++uBin) {
       if (0 < vuNbStsDigisBin[uBin]) {
@@ -283,8 +283,8 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
         hBinCntTofEvoTs->Fill(liEntry, vuNbTofDigisBin[uBin]);
       }  // if( 0 < vuNbTofDigisBin[ uBin ] )
 
-      if (0 < vuNbT0DigisBin[uBin]) {
-        hBinCntT0EvoTs->Fill(liEntry, vuNbT0DigisBin[uBin]);
+      if (0 < vuNbBmonDigisBin[uBin]) {
+        hBinCntBmonEvoTs->Fill(liEntry, vuNbBmonDigisBin[uBin]);
       }  // if( 0 < vuNbTofDigisBin[ uBin ] )
 
       if (0 < vuNbAllDigisBin[uBin]) {
@@ -293,12 +293,12 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
         hBinCntStsAll->Fill(vuNbStsDigisBin[uBin], vuNbAllDigisBin[uBin]);
         hBinCntMuchAll->Fill(vuNbMuchDigisBin[uBin], vuNbAllDigisBin[uBin]);
         hBinCntTofAll->Fill(vuNbTofDigisBin[uBin], vuNbAllDigisBin[uBin]);
-        hBinCntT0All->Fill(vuNbT0DigisBin[uBin], vuNbAllDigisBin[uBin]);
+        hBinCntBmonAll->Fill(vuNbBmonDigisBin[uBin], vuNbAllDigisBin[uBin]);
       }  // if( 0 < vuNbAllDigisBin[ uBin ] )
 
       /// Event detection
       if (uThrNbStsDigi <= vuNbStsDigisBin[uBin] && uThrNbMuchDigi <= vuNbMuchDigisBin[uBin]
-          && uThrNbTofDigi <= vuNbTofDigisBin[uBin] && uThrNbT0Digi <= vuNbT0DigisBin[uBin]
+          && uThrNbTofDigi <= vuNbTofDigisBin[uBin] && uThrNbBmonDigi <= vuNbBmonDigisBin[uBin]
           && uThrNbAllDigi <= vuNbAllDigisBin[uBin]
           && (0 == vdBinsWithEventStopTime.size()
               || vdBinsWithEventStopTime[vdBinsWithEventStopTime.size() - 1] < (dTsStartNs + uBin * dBinLengthNs))) {
@@ -311,7 +311,7 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
       vuNbStsDigisBin[uBin]    = 0;
       vuNbMuchDigisBin[uBin]   = 0;
       vuNbTofDigisBin[uBin]    = 0;
-      vuNbT0DigisBin[uBin]     = 0;
+      vuNbBmonDigisBin[uBin]   = 0;
       vuNbAllDigisBin[uBin]    = 0;
       vdDigisMeanTimeBin[uBin] = 0;
     }  // for( UInt_t uBin = 0; uBin < uNbBinsTs; ++uBin )
@@ -334,13 +334,13 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
       Bool_t bStsDone  = kFALSE;
       Bool_t bMuchDone = kFALSE;
       Bool_t bTofDone  = kFALSE;
-      Bool_t bT0Done   = kFALSE;
+      Bool_t bBmonDone   = kFALSE;
 
       for( ; liEntry < liNbEntryToRead; liEntry++)
       {
          pTree->GetEntry(liEntry);
 
-         UInt_t uNbDigisT0   = vDigisT0->size();
+         UInt_t uNbDigisBmon   = vDigisBmon->size();
          UInt_t uNbDigisSts  = vDigisSts->size();
          UInt_t uNbDigisMuch = vDigisMuch->size();
          UInt_t uNbDigisTof  = vDigisTof->size();
@@ -349,7 +349,7 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
 
          for( UInt_t uStsDigi = 0; uStsDigi < uNbDigisSts; ++uStsDigi )
          {
-            Double_t dTime = ( vDigisT0->at( uStsDigi) ).GetTime();
+            Double_t dTime = ( vDigisBmon->at( uStsDigi) ).GetTime();
             if( dBinStartTime <= dTime && dTime < dBinStopTime )
             {
                dMeanTime += dTime;
@@ -396,9 +396,9 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
             } // if( dBinStopTime <= dTime )
          } // for( UInt_t uTofDigi = 0; uTofDigi < uNbDigisTof; ++uTofDigi )
 
-         for( UInt_t uT0Digi = 0; uT0Digi < uNbDigisT0; ++uT0Digi )
+         for( UInt_t uBmonDigi = 0; uBmonDigi < uNbDigisBmon; ++uBmonDigi )
          {
-            Double_t dTime = ( vDigisT0->at( uT0Digi ) ).GetTime();
+            Double_t dTime = ( vDigisBmon->at( uBmonDigi ) ).GetTime();
             if( dBinStartTime <= dTime && dTime < dBinStopTime )
             {
                dMeanTime += dTime;
@@ -407,12 +407,12 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
 
             if( dBinStopTime <= dTime )
             {
-               bT0Done = kTRUE;
+               bBmonDone = kTRUE;
                break;
             } // if( dBinStopTime <= dTime )
-         } // for( UInt_t uT0Digi = 0; uT0Digi < uNbDigisT0; ++uT0Digi )
+         } // for( UInt_t uBmonDigi = 0; uBmonDigi < uNbDigisBmon; ++uBmonDigi )
 
-         if( kTRUE == bStsDone && kTRUE == bMuchDone && kTRUE == bTofDone && kTRUE == bT0Done )
+         if( kTRUE == bStsDone && kTRUE == bMuchDone && kTRUE == bTofDone && kTRUE == bBmonDone )
             break;
       } // for( ; liEntry < nentries; liEntry++)
 
@@ -427,7 +427,7 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
   vdStsDigiTimePerEvent.resize(uNbEventSeeds);
   vdMuchDigiTimePerEvent.resize(uNbEventSeeds);
   vdTofDigiTimePerEvent.resize(uNbEventSeeds);
-  vdT0DigiTimePerEvent.resize(uNbEventSeeds);
+  vdBmonDigiTimePerEvent.resize(uNbEventSeeds);
   Long64_t liEntry = 3;
   for (UInt_t uEventSeed = 0; uEventSeed < uNbEventSeeds; ++uEventSeed) {
     if (0 == uEventSeed % 1000) std::cout << uEventSeed << " / " << uNbEventSeeds << std::endl;
@@ -438,18 +438,18 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
     Bool_t bStsDone  = kFALSE;
     Bool_t bMuchDone = kFALSE;
     Bool_t bTofDone  = kFALSE;
-    Bool_t bT0Done   = kFALSE;
+    Bool_t bBmonDone = kFALSE;
 
     for (; liEntry < liNbEntryToRead; liEntry++) {
       pTree->GetEntry(liEntry);
 
-      UInt_t uNbDigisT0   = vDigisT0->size();
+      UInt_t uNbDigisBmon = vDigisBmon->size();
       UInt_t uNbDigisSts  = vDigisSts->size();
       UInt_t uNbDigisMuch = vDigisMuch->size();
       UInt_t uNbDigisTof  = vDigisTof->size();
 
       for (UInt_t uStsDigi = 0; uStsDigi < uNbDigisSts; ++uStsDigi) {
-        Double_t dTime = (vDigisT0->at(uStsDigi)).GetTime();
+        Double_t dTime = (vDigisBmon->at(uStsDigi)).GetTime();
         if (dEvtStartTime <= dTime && dTime < dEvtStopTime) {
           vdStsDigiTimePerEvent[uEventSeed].push_back(dTime);
         }  // if( dEvtStartTime <= dTime && dTime < dEvtStopTime )
@@ -484,19 +484,19 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
         }  // if( dEvtStopTime <= dTime )
       }    // for( UInt_t uTofDigi = 0; uTofDigi < uNbDigisTof; ++uTofDigi )
 
-      for (UInt_t uT0Digi = 0; uT0Digi < uNbDigisT0; ++uT0Digi) {
-        Double_t dTime = (vDigisT0->at(uT0Digi)).GetTime();
+      for (UInt_t uBmonDigi = 0; uBmonDigi < uNbDigisBmon; ++uBmonDigi) {
+        Double_t dTime = (vDigisBmon->at(uBmonDigi)).GetTime();
         if (dEvtStartTime <= dTime && dTime < dEvtStopTime) {
-          vdT0DigiTimePerEvent[uEventSeed].push_back(dTime);
+          vdBmonDigiTimePerEvent[uEventSeed].push_back(dTime);
         }  // if( dEvtStartTime <= dTime && dTime < dEvtStopTime )
 
         if (dEvtStopTime <= dTime) {
-          bT0Done = kTRUE;
+          bBmonDone = kTRUE;
           break;
         }  // if( dEvtStopTime <= dTime )
-      }    // for( UInt_t uT0Digi = 0; uT0Digi < uNbDigisT0; ++uT0Digi )
+      }    // for( UInt_t uBmonDigi = 0; uBmonDigi < uNbDigisBmon; ++uBmonDigi )
 
-      if (kTRUE == bStsDone && kTRUE == bMuchDone && kTRUE == bTofDone && kTRUE == bT0Done) break;
+      if (kTRUE == bStsDone && kTRUE == bMuchDone && kTRUE == bTofDone && kTRUE == bBmonDone) break;
     }  // for( ; liEntry < nentries; liEntry++)
 
     for (UInt_t uStsTime = 0; uStsTime < vdStsDigiTimePerEvent[uEventSeed].size(); ++uStsTime) {
@@ -519,20 +519,20 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
     }    // for( UInt_t uMuchTime = 0; uMuchTime < vdMuchDigiTimePerEvent[ uEventSeed ].size(); ++uMuchTime )
 
 
-    for (UInt_t uT0Time = 0; uT0Time < vdT0DigiTimePerEvent[uEventSeed].size(); ++uT0Time) {
+    for (UInt_t uT0Time = 0; uT0Time < vdBmonDigiTimePerEvent[uEventSeed].size(); ++uT0Time) {
       for (UInt_t uStsTime = 0; uStsTime < vdStsDigiTimePerEvent[uEventSeed].size(); ++uStsTime) {
-        hStsT0TimeCorr->Fill(vdStsDigiTimePerEvent[uEventSeed][uStsTime] - vdT0DigiTimePerEvent[uEventSeed][uT0Time]);
+        hStsT0TimeCorr->Fill(vdStsDigiTimePerEvent[uEventSeed][uStsTime] - vdBmonDigiTimePerEvent[uEventSeed][uT0Time]);
       }  // for( UInt_t uStsTime = 0; uStsTime < vdStsDigiTimePerEvent[ uEventSeed ].size(); ++uStsTime )
 
       for (UInt_t uMuchTime = 0; uMuchTime < vdMuchDigiTimePerEvent[uEventSeed].size(); ++uMuchTime) {
         hMuchT0TimeCorr->Fill(vdMuchDigiTimePerEvent[uEventSeed][uMuchTime]
-                              - vdT0DigiTimePerEvent[uEventSeed][uT0Time]);
+                              - vdBmonDigiTimePerEvent[uEventSeed][uT0Time]);
       }  // for( UInt_t uMuchTime = 0; uMuchTime < vdMuchDigiTimePerEvent[ uEventSeed ].size(); ++uMuchTime )
 
       for (UInt_t uTofTime = 0; uTofTime < vdTofDigiTimePerEvent[uEventSeed].size(); ++uTofTime) {
-        hTofT0TimeCorr->Fill(vdTofDigiTimePerEvent[uEventSeed][uTofTime] - vdT0DigiTimePerEvent[uEventSeed][uT0Time]);
+        hTofT0TimeCorr->Fill(vdTofDigiTimePerEvent[uEventSeed][uTofTime] - vdBmonDigiTimePerEvent[uEventSeed][uT0Time]);
       }  // for( UInt_t uTofTime = 0; uTofTime < vdTofDigiTimePerEvent[ uEventSeed ].size(); ++uTofTime )
-    }    // for( UInt_t uT0Time = 0; uT0Time < vdT0DigiTimePerEvent[ uEventSeed ].size(); ++uT0Time )
+    }    // for( UInt_t uT0Time = 0; uT0Time < vdBmonDigiTimePerEvent[ uEventSeed ].size(); ++uT0Time )
   }      // for( UInt_t uEventSeed = 0; uEventSeed < uNbEventSeeds; ++uEventSeed )
 
 
@@ -578,7 +578,7 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
   gPad->SetGridx();
   gPad->SetGridy();
   gPad->SetLogz();
-  hBinCntT0EvoTs->Draw("colz");
+  hBinCntBmonEvoTs->Draw("colz");
 
   cBinCntEvo->cd(6);
   gPad->SetGridx();
@@ -632,7 +632,7 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
   gPad->SetGridx();
   gPad->SetGridy();
   gPad->SetLogz();
-  hBinCntT0All->Draw("colz");
+  hBinCntBmonAll->Draw("colz");
 
   TCanvas* cEventSeedEvo = new TCanvas("cEventSeedEvo", "Event seed number vs time in run");
   cEventSeedEvo->cd();
@@ -658,20 +658,20 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
   gPad->SetGridy();
   hStsMuchTimeCorr->Draw("");
 
-  TCanvas* cEventTimeCorrT0 = new TCanvas("cEventTimeCorrT0", "Time correlation between systems in events");
-  cEventTimeCorrT0->Divide(2, 2);
+  TCanvas* cEventTimeCorrBmon = new TCanvas("cEventTimeCorrBmon", "Time correlation between systems in events");
+  cEventTimeCorrBmon->Divide(2, 2);
 
-  cEventTimeCorrT0->cd(1);
+  cEventTimeCorrBmon->cd(1);
   gPad->SetGridx();
   gPad->SetGridy();
   hStsT0TimeCorr->Draw("");
 
-  cEventTimeCorrT0->cd(2);
+  cEventTimeCorrBmon->cd(2);
   gPad->SetGridx();
   gPad->SetGridy();
   hMuchT0TimeCorr->Draw("");
 
-  cEventTimeCorrT0->cd(3);
+  cEventTimeCorrBmon->cd(3);
   gPad->SetGridx();
   gPad->SetGridy();
   hTofT0TimeCorr->Draw("");
@@ -684,7 +684,7 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
   hBinCntStsEvoTs->Write();
   hBinCntMuchEvoTs->Write();
   hBinCntTofEvoTs->Write();
-  hBinCntT0EvoTs->Write();
+  hBinCntBmonEvoTs->Write();
   hBinCntAllEvoTs->Write();
   hBinCntStsMuch->Write();
   hBinCntStsTof->Write();
@@ -692,7 +692,7 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
   hBinCntStsAll->Write();
   hBinCntMuchAll->Write();
   hBinCntTofAll->Write();
-  hBinCntT0All->Write();
+  hBinCntBmonAll->Write();
   hEventSeedEvo->Write();
   hStsTofTimeCorr->Write();
   hMuchTofTimeCorr->Write();
@@ -707,7 +707,7 @@ Bool_t AnalyzeDigiMcbmFull(Long64_t liNbEntryToRead = -1, TString sInputFileName
   cBinCntAll->Write();
   cEventSeedEvo->Write();
   cEventTimeCorr->Write();
-  cEventTimeCorrT0->Write();
+  cEventTimeCorrBmon->Write();
 
   gROOT->cd();
   outFile->Close();
diff --git a/macro/beamtime/mcbm2018/BmonCoincPlotSingleRun.C b/macro/beamtime/mcbm2018/BmonCoincPlotSingleRun.C
new file mode 100644
index 0000000000000000000000000000000000000000..51a2b678740aa35b01add89d59cca9fbead307bf
--- /dev/null
+++ b/macro/beamtime/mcbm2018/BmonCoincPlotSingleRun.C
@@ -0,0 +1,150 @@
+/* Copyright (C) 2019 Facility for Antiproton and Ion Research in Europe, Darmstadt
+   SPDX-License-Identifier: GPL-3.0-only
+   Authors: Pierre-Alain Loizeau [committer] */
+
+Bool_t BmonCoincPlotSingleRun(UInt_t uRunId)
+{
+  /// Obtaining the plots
+  TH1* tempH1 = NULL;
+  TH1* phStsBmon;
+  TH1* phMuchBmon;
+  TH1* phTofBmon;
+  TH1* phRichBmon;
+
+  /// Open File
+  TFile* pFile = TFile::Open(Form("HistosTimeCheck_%03u.root", uRunId));
+  gROOT->cd();
+
+  if (nullptr == pFile) return kFALSE;
+
+  phStsBmon = new TH1D();
+  tempH1    = (TH1*) (pFile->FindObjectAny("fBmonStsDiff"));
+  if (NULL != tempH1) {
+    tempH1->Copy(*(phStsBmon));  ///?
+  }                              //  if( NULL != tempH1 )
+  else
+    return kFALSE;
+
+  phMuchBmon = new TH1D();
+  tempH1     = (TH1*) (pFile->FindObjectAny("fBmonMuchDiff"));
+  if (NULL != tempH1) {
+    tempH1->Copy(*(phMuchBmon));  ///?
+  }                               //  if( NULL != tempH1 )
+  else
+    return kFALSE;
+
+  phTofBmon = new TH1D();
+  tempH1    = (TH1*) (pFile->FindObjectAny("fBmonTofDiff"));
+  if (NULL != tempH1) {
+    tempH1->Copy(*(phTofBmon));  ///?
+  }                              //  if( NULL != tempH1 )
+  else
+    return kFALSE;
+
+  phRichBmon = new TH1D();
+  tempH1     = (TH1*) (pFile->FindObjectAny("fBmonRichDiff"));
+  if (NULL != tempH1) {
+    tempH1->Copy(*(phRichBmon));  ///?
+  }                               //  if( NULL != tempH1 )
+  else
+    return kFALSE;
+
+  /// Plotting: THStacks with all available detectors VS Bmon
+  TCanvas* cBmonCoinc =
+    new TCanvas(Form("cBmonCoinc_%03u", uRunId), Form("Time Coincidence with Bmon in run %3u", uRunId));
+
+  THStack* pStacksBmonCoinc =
+    new THStack(Form("stackBmonCoinc_%02u", uRunId),
+                Form("Time Coincidence with Bmon in run %02u; tBmon - Tdet [ns]; Pairs []", uRunId));
+  TLegend* legend = new TLegend(0.1, 0.7, 0.3, 0.9);
+
+  phStsBmon->SetLineColor(kBlack);
+  phMuchBmon->SetLineColor(kRed);
+  phTofBmon->SetLineColor(kBlue);
+  phRichBmon->SetLineColor(kViolet);
+
+  phStsBmon->SetLineWidth(2);
+  phMuchBmon->SetLineWidth(2);
+  phTofBmon->SetLineWidth(2);
+  phRichBmon->SetLineWidth(2);
+
+  pStacksBmonCoinc->Add(phStsBmon);
+  pStacksBmonCoinc->Add(phMuchBmon);
+  pStacksBmonCoinc->Add(phTofBmon);
+  pStacksBmonCoinc->Add(phRichBmon);
+
+  legend->AddEntry(phStsBmon, "STS", "l");
+  legend->AddEntry(phMuchBmon, "MUCH", "l");
+  legend->AddEntry(phTofBmon, "TOF", "l");
+  legend->AddEntry(phRichBmon, "RICH", "l");
+
+  cBmonCoinc->cd();
+  gPad->SetGridx();
+  gPad->SetGridy();
+  gPad->SetLogy();
+  pStacksBmonCoinc->Draw("nostack,hist");
+  legend->Draw();
+  pStacksBmonCoinc->GetXaxis()->SetRangeUser(-2000.0, 2000.0);
+
+  /// Plotting: rescaled to baseline plots with all available detectors VS Bmon
+  /// => TODO: fit baseline out of sync peak
+  Double_t dBaselineSts;
+  Double_t dBaselineMuch;
+  Double_t dBaselineTof;
+  Double_t dBaselineRich;
+
+  /// TEMP solution: read bin at -5000 ns
+  dBaselineSts  = phStsBmon->GetBinContent(phStsBmon->FindBin(-5000));
+  dBaselineMuch = phMuchBmon->GetBinContent(phMuchBmon->FindBin(-5000));
+  dBaselineTof  = phTofBmon->GetBinContent(phTofBmon->FindBin(-5000));
+  dBaselineRich = phRichBmon->GetBinContent(phRichBmon->FindBin(-5000));
+
+  TH1* phRescaledStsBmon  = static_cast<TH1*>(phStsBmon->Clone("hRescaledStsBmon"));
+  TH1* phRescaledMuchBmon = static_cast<TH1*>(phMuchBmon->Clone("hRescaledMuchBmon"));
+  TH1* phRescaledTofBmon  = static_cast<TH1*>(phTofBmon->Clone("hRescaledTofBmon"));
+  TH1* phRescaledRichBmon = static_cast<TH1*>(phRichBmon->Clone("hRescaledRichBmon"));
+
+  phRescaledStsBmon->Scale(1 / dBaselineSts);
+  phRescaledMuchBmon->Scale(1 / dBaselineMuch);
+  phRescaledTofBmon->Scale(1 / dBaselineTof);
+  phRescaledRichBmon->Scale(1 / dBaselineRich);
+
+  TCanvas* cBmonCoincRescale =
+    new TCanvas(Form("cBmonCoincRescale_%03u", uRunId), Form("Time Coincidence with Bmon in run %3u", uRunId));
+
+  THStack* pStacksBmonCoincRescale = new THStack(Form("stackBmonCoincRescale_%02u", uRunId),
+                                                 Form("Time Coincidence with Bmon in run %02u; tBmon - Tdet [ns]; "
+                                                      "Pairs nb rescaled [1/baseline]",
+                                                      uRunId));
+  TLegend* legendRescale           = new TLegend(0.1, 0.7, 0.3, 0.9);
+
+  phRescaledStsBmon->SetLineColor(kBlack);
+  phRescaledMuchBmon->SetLineColor(kRed);
+  phRescaledTofBmon->SetLineColor(kBlue);
+  phRescaledRichBmon->SetLineColor(kViolet);
+
+  phRescaledStsBmon->SetLineWidth(2);
+  phRescaledMuchBmon->SetLineWidth(2);
+  phRescaledTofBmon->SetLineWidth(2);
+  phRescaledRichBmon->SetLineWidth(2);
+
+  pStacksBmonCoincRescale->Add(phRescaledStsBmon);
+  pStacksBmonCoincRescale->Add(phRescaledMuchBmon);
+  pStacksBmonCoincRescale->Add(phRescaledTofBmon);
+  pStacksBmonCoincRescale->Add(phRescaledRichBmon);
+
+  legendRescale->AddEntry(phRescaledStsBmon, "STS", "l");
+  legendRescale->AddEntry(phRescaledMuchBmon, "MUCH", "l");
+  legendRescale->AddEntry(phRescaledTofBmon, "TOF", "l");
+  legendRescale->AddEntry(phRescaledRichBmon, "RICH", "l");
+
+  cBmonCoincRescale->cd();
+  gPad->SetGridx();
+  gPad->SetGridy();
+  gPad->SetLogy();
+  pStacksBmonCoincRescale->Draw("nostack,hist");
+  legendRescale->Draw();
+  pStacksBmonCoincRescale->GetXaxis()->SetRangeUser(-2000.0, 2000.0);
+
+  return kTRUE;
+}
diff --git a/macro/beamtime/mcbm2018/T0MoniPlot.C b/macro/beamtime/mcbm2018/BmonMoniPlot.C
similarity index 84%
rename from macro/beamtime/mcbm2018/T0MoniPlot.C
rename to macro/beamtime/mcbm2018/BmonMoniPlot.C
index 7f362d64339bcdf0fc07742be8c9318b14ddcd80..d08162445403b9fe5473d8d9da7eeb7fb3b27bea 100644
--- a/macro/beamtime/mcbm2018/T0MoniPlot.C
+++ b/macro/beamtime/mcbm2018/BmonMoniPlot.C
@@ -2,7 +2,7 @@
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Pierre-Alain Loizeau [committer] */
 
-Bool_t T0MoniPlot()
+Bool_t BmonMoniPlot()
 {
   /// 23/03/2019
   const UInt_t kuNbRunPerStack = 4;
@@ -12,7 +12,7 @@ Bool_t T0MoniPlot()
     94,  95,  96,  97,  // Detectors parameters scan
     98,  99,  100, 101, 102,
     103, 104, 105, 106,  // Beam intensity and target scan (=> collision rate scan up, empty, no beam)
-    107, 109, 110,       // T0 threshold scan
+    107, 109, 110,       // Bmon threshold scan
     111                  // Cooldown run
   };
 
@@ -22,7 +22,7 @@ Bool_t T0MoniPlot()
   TH1* phHitCntEvo[kuNbRuns];
   TFile* pFile[kuNbRuns];
   for (UInt_t uRun = 0; uRun < kuNbRuns; ++uRun) {
-    pFile[uRun] = TFile::Open(Form("data/HistosMonitorT0_%03u.root", uRunId[uRun]));
+    pFile[uRun] = TFile::Open(Form("data/HistosMonitorBmon_%03u.root", uRunId[uRun]));
     gROOT->cd();
 
     phHitsPerSpill[uRun] = new TH1D();
@@ -43,16 +43,16 @@ Bool_t T0MoniPlot()
   }  // for( UInt_t uRun = 0; uRun < kuNbRuns; ++ uRun )
 
   /// Plotting: THStacks with 4 runs per pad, 3*2 Pads per Canvas, 1 Canvas per plot
-  TCanvas* cHitsSpill = new TCanvas("cHitsSpill", "T0 hits per spill");
+  TCanvas* cHitsSpill = new TCanvas("cHitsSpill", "Bmon hits per spill");
   cHitsSpill->Divide(3, 2);
 
-  TCanvas* cHitsCnt = new TCanvas("cHitsCnt", "T0 hits count vs Time in Run");
+  TCanvas* cHitsCnt = new TCanvas("cHitsCnt", "Bmon hits count vs Time in Run");
   cHitsCnt->Divide(3, 2);
 
-  TCanvas* cHitsSpillAll = new TCanvas("cHitsSpillAll", "T0 hits per spill");
+  TCanvas* cHitsSpillAll = new TCanvas("cHitsSpillAll", "Bmon hits per spill");
   cHitsSpillAll->Divide(6, 4);
 
-  TCanvas* cHitsCntAll = new TCanvas("cHitsCntAll", "T0 hits count vs Time in Run");
+  TCanvas* cHitsCntAll = new TCanvas("cHitsCntAll", "Bmon hits count vs Time in Run");
   cHitsCntAll->Divide(6, 4);
 
   THStack* pStacksHitSpill[kuNbRuns / kuNbRunPerStack + (kuNbRuns % kuNbRunPerStack ? 1 : 0)];
@@ -60,8 +60,8 @@ Bool_t T0MoniPlot()
   for (UInt_t uRun = 0; uRun < kuNbRuns; ++uRun) {
     if (0 == uRun % kuNbRunPerStack) {
       pStacksHitSpill[uRun / kuNbRunPerStack] = new THStack(
-        Form("stackHitSpill_%02u", uRunId[uRun]),
-        Form("Evolution of T0 hits per spill for runs %02u to %02u", uRunId[uRun], uRunId[uRun + kuNbRunPerStack - 1]));
+        Form("stackHitSpill_%02u", uRunId[uRun]), Form("Evolution of Bmon hits per spill for runs %02u to %02u",
+                                                       uRunId[uRun], uRunId[uRun + kuNbRunPerStack - 1]));
       pStacksHitEvo[uRun / kuNbRunPerStack] =
         new THStack(Form("stackHitCnt_%02u", uRunId[uRun]), Form("Evolution of To hits count for runs %02u to %02u",
                                                                  uRunId[uRun], uRunId[uRun + kuNbRunPerStack - 1]));
diff --git a/macro/beamtime/mcbm2018/CheckDataFormatGdpb.C b/macro/beamtime/mcbm2018/CheckDataFormatGdpb.C
index 240b5dda22960a2b8751ae303d72779531ab7b0a..81b6e6b2ff0f0f31802769e693252b8a82a48a0c 100644
--- a/macro/beamtime/mcbm2018/CheckDataFormatGdpb.C
+++ b/macro/beamtime/mcbm2018/CheckDataFormatGdpb.C
@@ -75,7 +75,7 @@ void CheckDataFormatGdpb(TString inFile = "", TString sHostname = "localhost", I
   }
 
   source->AddUnpacker(test_monitor_tof, 0x60, 6);  //gDPBs
-  source->AddUnpacker(test_monitor_tof, 0x90, 6);  //gDPBs T0
+  source->AddUnpacker(test_monitor_tof, 0x90, 6);  //gDPBs Bmon
 
   // --- Run
   run = new FairRunOnline(source);
diff --git a/macro/beamtime/mcbm2018/DataRateMoniPlot.C b/macro/beamtime/mcbm2018/DataRateMoniPlot.C
index b74993c10d2437d234c095cfed55d295548a1f20..da470a435cd14c031180c21e4a152e40c9246b48 100644
--- a/macro/beamtime/mcbm2018/DataRateMoniPlot.C
+++ b/macro/beamtime/mcbm2018/DataRateMoniPlot.C
@@ -14,7 +14,7 @@ Bool_t DataRateMoniPlot()
     94,  95,  96,  97,  // Detectors parameters scan
     98,  99,  100, 101, 102,
     103, 104, 105, 106,  // Beam intensity and target scan (=> collision rate scan up, empty, no beam)
-    107, 109, 110,       // T0 threshold scan
+    107, 109, 110,       // Bmon threshold scan
     111                  // Cooldown run
   };
 
diff --git a/macro/beamtime/mcbm2018/MonitorT0.C b/macro/beamtime/mcbm2018/MonitorBmon.C
similarity index 80%
rename from macro/beamtime/mcbm2018/MonitorT0.C
rename to macro/beamtime/mcbm2018/MonitorBmon.C
index 721246bab4665f34ed260a6f4bf9d1d736b8ba00..b333432b784ad157dcc80902dd87b858b4f01f59 100644
--- a/macro/beamtime/mcbm2018/MonitorT0.C
+++ b/macro/beamtime/mcbm2018/MonitorBmon.C
@@ -14,8 +14,8 @@
 // In order to call later Finish, we make this global
 FairRunOnline* run = NULL;
 
-void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServerHttpPort = 8080,
-               Int_t iServerRefreshRate = 100, UInt_t uRunId = 0, UInt_t nrEvents = 0)
+void MonitorBmon(TString inFile = "", TString sHostname = "localhost", Int_t iServerHttpPort = 8080,
+                 Int_t iServerRefreshRate = 100, UInt_t uRunId = 0, UInt_t nrEvents = 0)
 {
   TString srcDir = gSystem->Getenv("VMCWORKDIR");
 
@@ -37,7 +37,7 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   TList* parFileList = new TList();
   TString paramDir   = "./";
 
-  TString paramFileTof       = paramDir + "mT0Par.par";
+  TString paramFileTof       = paramDir + "mBmonPar.par";
   TObjString* parTofFileName = new TObjString(paramFileTof);
   parFileList->Add(parTofFileName);
 
@@ -45,17 +45,17 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   gDebug = 0;
 
   std::cout << std::endl;
-  std::cout << ">>> MonitorT0: output file is " << outFile << std::endl;
+  std::cout << ">>> MonitorBmon: output file is " << outFile << std::endl;
 
   // ========================================================================
   // ========================================================================
   std::cout << std::endl;
-  std::cout << ">>> MonitorT0: Initialising..." << std::endl;
-  CbmMcbm2018MonitorTaskT0* monitor_t0 = new CbmMcbm2018MonitorTaskT0();
+  std::cout << ">>> MonitorBmon: Initialising..." << std::endl;
+  CbmMcbm2018MonitorTaskBmon* monitor_t0 = new CbmMcbm2018MonitorTaskBmon();
 
   monitor_t0->SetIgnoreOverlapMs();
   monitor_t0->SetHistoryHistoSize(1800);
-  if (0 < uRunId) monitor_t0->SetHistoFilename(Form("data/HistosMonitorT0_%03u.root", uRunId));
+  if (0 < uRunId) monitor_t0->SetHistoFilename(Form("data/HistosMonitorBmon_%03u.root", uRunId));
   if (uRunId < 87) monitor_t0->SetPulserTotLimits(90, 100);  // for runs <= 86
   else
     monitor_t0->SetPulserTotLimits(180, 210);  // for runs  >  86
@@ -69,7 +69,7 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   }  // else of if( "" != inFile )
 
   //  source->AddUnpacker(monitor_t0,  0x60, 9  );//gDPB TOF
-  source->AddUnpacker(monitor_t0, 0x90, 9);  //gDPB T0
+  source->AddUnpacker(monitor_t0, 0x90, 9);  //gDPB Bmon
 
   source->SetSubscriberHwm(1000);
 
@@ -94,7 +94,7 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   // --- Start run
   TStopwatch timer;
   timer.Start();
-  std::cout << ">>> MonitorT0: Starting run..." << std::endl;
+  std::cout << ">>> MonitorBmon: Starting run..." << std::endl;
   if (0 == nrEvents) {
     run->Run(nEvents, 0);  // run until end of input file
   }
@@ -111,9 +111,9 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   Double_t rtime = timer.RealTime();
   Double_t ctime = timer.CpuTime();
   std::cout << std::endl << std::endl;
-  std::cout << ">>> MonitorT0: Macro finished successfully." << std::endl;
-  std::cout << ">>> MonitorT0: Output file is " << outFile << std::endl;
-  std::cout << ">>> MonitorT0: Real time " << rtime << " s, CPU time " << ctime << " s" << std::endl;
+  std::cout << ">>> MonitorBmon: Macro finished successfully." << std::endl;
+  std::cout << ">>> MonitorBmon: Output file is " << outFile << std::endl;
+  std::cout << ">>> MonitorBmon: Real time " << rtime << " s, CPU time " << ctime << " s" << std::endl;
   std::cout << std::endl;
 
   /// --- Screen output for automatic tests
diff --git a/macro/beamtime/mcbm2018/MonitorDataRates.C b/macro/beamtime/mcbm2018/MonitorDataRates.C
index 688e4293e633ae1146f6f358c6777595bb04a9a9..9b87cbe6b9980108091ad3e2f6158ded77349533 100644
--- a/macro/beamtime/mcbm2018/MonitorDataRates.C
+++ b/macro/beamtime/mcbm2018/MonitorDataRates.C
@@ -62,8 +62,8 @@ void MonitorDataRates(TString inFile = "", TString sHostname = "localhost", Int_
   monitor->AddEqIdChannelNumber(0x1980, 960);       // TOF 3 stack
   monitor->AddEqIdChannelNumber(0x1922, 960);       // TOF 2 stack
   monitor->AddEqIdChannelNumber(0x1949, 48 + 8);    // TOF guests
-  monitor->AddEqIdChannelNumber(0x18c5, 4);         // T0 A
-  monitor->AddEqIdChannelNumber(0x1925, 3);         // T0 B
+  monitor->AddEqIdChannelNumber(0x18c5, 4);         // Bmon A
+  monitor->AddEqIdChannelNumber(0x1925, 3);         // Bmon B
 
   // --- Source task
   CbmMcbm2018Source* source = new CbmMcbm2018Source();
@@ -76,7 +76,7 @@ void MonitorDataRates(TString inFile = "", TString sHostname = "localhost", Int_
   source->AddUnpacker(monitor, 0x10, 9);  //sDPB STS + MUCH
   source->AddUnpacker(monitor, 0x30, 9);  //rDPB RICH
   source->AddUnpacker(monitor, 0x60, 9);  //gDPB TOF
-  source->AddUnpacker(monitor, 0x90, 9);  //gDPB T0
+  source->AddUnpacker(monitor, 0x90, 9);  //gDPB Bmon
 
   source->SetSubscriberHwm(10000);
 
diff --git a/macro/beamtime/mcbm2018/MonitorPsd.C b/macro/beamtime/mcbm2018/MonitorPsd.C
index 6c3b2cf4427ef0fbd1e164a683164e30c236989e..4700f7a6d76acaa3eac9e186abb8c6bd247f89b2 100644
--- a/macro/beamtime/mcbm2018/MonitorPsd.C
+++ b/macro/beamtime/mcbm2018/MonitorPsd.C
@@ -5,7 +5,7 @@
 /** @file MCBM PSD DATA monitoring
  ** @author Nikolay Karpushkin <karpushkin@inr.ru>
  ** @date 09.10.2019
- ** Based on MonitorT0 by P.-A. Loizeau
+ ** Based on MonitorBmon by P.-A. Loizeau
  ** ROOT macro to read tsa files which have been produced with the new data transport
  ** Convert data into cbmroot format.
  ** Uses CbmMcbm2018Source as source task.
@@ -67,7 +67,7 @@ void MonitorPsd(TString inFile = "", TString sHostname = "localhost", Int_t iSer
   }  // else of if( "" != inFile )
 
 
-  source->AddUnpacker(monitor_psd, 0x80, kPsd);  //gDPB T0
+  source->AddUnpacker(monitor_psd, 0x80, kPsd);  //gDPB Bmon
 
   source->SetSubscriberHwm(1000);
 
diff --git a/macro/beamtime/mcbm2018/MonitorRich.C b/macro/beamtime/mcbm2018/MonitorRich.C
index 03a3c190b15ea6a04a16cd3290d279318605d62c..c35302d7c4ee84a94a838bc82ab287e5a0027a64 100644
--- a/macro/beamtime/mcbm2018/MonitorRich.C
+++ b/macro/beamtime/mcbm2018/MonitorRich.C
@@ -3,7 +3,7 @@
    Authors: Andrey Lebedev [committer] */
 
 /** @file MCBM RICH DATA monitoring
- ** Based on MonitorT0 by P.-A. Loizeau
+ ** Based on MonitorBmon by P.-A. Loizeau
  ** ROOT macro to read tsa files which have been produced with the new data transport
  ** Convert data into cbmroot format.
  ** Uses CbmMcbm2018Source as source task.
diff --git a/macro/beamtime/mcbm2018/MonitorTof.C b/macro/beamtime/mcbm2018/MonitorTof.C
index 0b57abae680f89ac803785a98374487edc391de7..415e6fbef9ab1a9572dc11593b10a6856d8f30e6 100644
--- a/macro/beamtime/mcbm2018/MonitorTof.C
+++ b/macro/beamtime/mcbm2018/MonitorTof.C
@@ -92,7 +92,7 @@ void MonitorTof(TString inFile = "", TString sHostname = "localhost", Int_t iSer
   }
 
   source->AddUnpacker(test_monitor_tof, 0x60, 6);  //gDPBs
-  source->AddUnpacker(test_monitor_tof, 0x90, 6);  //gDPBs T0
+  source->AddUnpacker(test_monitor_tof, 0x90, 6);  //gDPBs Bmon
 
   // --- Run
   run = new FairRunOnline(source);
diff --git a/macro/beamtime/mcbm2018/SpillRatePlot.C b/macro/beamtime/mcbm2018/SpillRatePlot.C
index a81ce51cfa866c14b2db9b18a326dfcdfd5c2a62..ac3651c6d50039f217bf97caf7dec43d3dcc70ae 100644
--- a/macro/beamtime/mcbm2018/SpillRatePlot.C
+++ b/macro/beamtime/mcbm2018/SpillRatePlot.C
@@ -63,8 +63,8 @@ Bool_t SpillRatePlot(TString sFilename)
                                    6e7, 7e7, 8e7, 9e7, 1e8, 2e8, 3e8, 4e8, 5e8, 6e8, 7e8, 8e8, 9e8, 1e9};
 
   TH2* hMcbmHitsCountPerSpillTofVsDiam = new TH2D("hMcbmHitsCountPerSpillTofVsDiam",
-                                                  "Hits count per spill as in TOF (2 DPBs) vs T0; Hit nb per spill "
-                                                  "T0[]; Hit nb per spill TOF []; Spills []",
+                                                  "Hits count per spill as in TOF (2 DPBs) vs Bmon; Hit nb per spill "
+                                                  "Bmon[]; Hit nb per spill TOF []; Spills []",
                                                   iNbBinsLog - 1, dBinsLog, iNbBinsLog - 1, dBinsLog);
   ///------------------------------------------------------------------
 
@@ -150,7 +150,7 @@ Bool_t SpillRatePlot(TString sFilename)
   hMcbmHitsCountPerSpillEvo->Draw("colz");
 
   TCanvas* cSpillCountsComp =
-    new TCanvas("cSpillCountsComp", "Hits count per spill for each TOF VS same for T0-Diamond");
+    new TCanvas("cSpillCountsComp", "Hits count per spill for each TOF VS same for Bmon-Diamond");
 
   cSpillCountsComp->cd();
   gPad->SetGridx();
diff --git a/macro/beamtime/mcbm2018/T0CoincPlotSingleRun.C b/macro/beamtime/mcbm2018/T0CoincPlotSingleRun.C
deleted file mode 100644
index daccf5d8df50e0e299d8a3b4e03e920695079091..0000000000000000000000000000000000000000
--- a/macro/beamtime/mcbm2018/T0CoincPlotSingleRun.C
+++ /dev/null
@@ -1,148 +0,0 @@
-/* Copyright (C) 2019 Facility for Antiproton and Ion Research in Europe, Darmstadt
-   SPDX-License-Identifier: GPL-3.0-only
-   Authors: Pierre-Alain Loizeau [committer] */
-
-Bool_t T0CoincPlotSingleRun(UInt_t uRunId)
-{
-  /// Obtaining the plots
-  TH1* tempH1 = NULL;
-  TH1* phStsT0;
-  TH1* phMuchT0;
-  TH1* phTofT0;
-  TH1* phRichT0;
-
-  /// Open File
-  TFile* pFile = TFile::Open(Form("HistosTimeCheck_%03u.root", uRunId));
-  gROOT->cd();
-
-  if (nullptr == pFile) return kFALSE;
-
-  phStsT0 = new TH1D();
-  tempH1  = (TH1*) (pFile->FindObjectAny("fT0StsDiff"));
-  if (NULL != tempH1) {
-    tempH1->Copy(*(phStsT0));  ///?
-  }                            //  if( NULL != tempH1 )
-  else
-    return kFALSE;
-
-  phMuchT0 = new TH1D();
-  tempH1   = (TH1*) (pFile->FindObjectAny("fT0MuchDiff"));
-  if (NULL != tempH1) {
-    tempH1->Copy(*(phMuchT0));  ///?
-  }                             //  if( NULL != tempH1 )
-  else
-    return kFALSE;
-
-  phTofT0 = new TH1D();
-  tempH1  = (TH1*) (pFile->FindObjectAny("fT0TofDiff"));
-  if (NULL != tempH1) {
-    tempH1->Copy(*(phTofT0));  ///?
-  }                            //  if( NULL != tempH1 )
-  else
-    return kFALSE;
-
-  phRichT0 = new TH1D();
-  tempH1   = (TH1*) (pFile->FindObjectAny("fT0RichDiff"));
-  if (NULL != tempH1) {
-    tempH1->Copy(*(phRichT0));  ///?
-  }                             //  if( NULL != tempH1 )
-  else
-    return kFALSE;
-
-  /// Plotting: THStacks with all available detectors VS T0
-  TCanvas* cT0Coinc = new TCanvas(Form("cT0Coinc_%03u", uRunId), Form("Time Coincidence with T0 in run %3u", uRunId));
-
-  THStack* pStacksT0Coinc = new THStack(
-    Form("stackT0Coinc_%02u", uRunId), Form("Time Coincidence with T0 in run %02u; tT0 - Tdet [ns]; Pairs []", uRunId));
-  TLegend* legend = new TLegend(0.1, 0.7, 0.3, 0.9);
-
-  phStsT0->SetLineColor(kBlack);
-  phMuchT0->SetLineColor(kRed);
-  phTofT0->SetLineColor(kBlue);
-  phRichT0->SetLineColor(kViolet);
-
-  phStsT0->SetLineWidth(2);
-  phMuchT0->SetLineWidth(2);
-  phTofT0->SetLineWidth(2);
-  phRichT0->SetLineWidth(2);
-
-  pStacksT0Coinc->Add(phStsT0);
-  pStacksT0Coinc->Add(phMuchT0);
-  pStacksT0Coinc->Add(phTofT0);
-  pStacksT0Coinc->Add(phRichT0);
-
-  legend->AddEntry(phStsT0, "STS", "l");
-  legend->AddEntry(phMuchT0, "MUCH", "l");
-  legend->AddEntry(phTofT0, "TOF", "l");
-  legend->AddEntry(phRichT0, "RICH", "l");
-
-  cT0Coinc->cd();
-  gPad->SetGridx();
-  gPad->SetGridy();
-  gPad->SetLogy();
-  pStacksT0Coinc->Draw("nostack,hist");
-  legend->Draw();
-  pStacksT0Coinc->GetXaxis()->SetRangeUser(-2000.0, 2000.0);
-
-  /// Plotting: rescaled to baseline plots with all available detectors VS T0
-  /// => TODO: fit baseline out of sync peak
-  Double_t dBaselineSts;
-  Double_t dBaselineMuch;
-  Double_t dBaselineTof;
-  Double_t dBaselineRich;
-
-  /// TEMP solution: read bin at -5000 ns
-  dBaselineSts  = phStsT0->GetBinContent(phStsT0->FindBin(-5000));
-  dBaselineMuch = phMuchT0->GetBinContent(phMuchT0->FindBin(-5000));
-  dBaselineTof  = phTofT0->GetBinContent(phTofT0->FindBin(-5000));
-  dBaselineRich = phRichT0->GetBinContent(phRichT0->FindBin(-5000));
-
-  TH1* phRescaledStsT0  = static_cast<TH1*>(phStsT0->Clone("hRescaledStsT0"));
-  TH1* phRescaledMuchT0 = static_cast<TH1*>(phMuchT0->Clone("hRescaledMuchT0"));
-  TH1* phRescaledTofT0  = static_cast<TH1*>(phTofT0->Clone("hRescaledTofT0"));
-  TH1* phRescaledRichT0 = static_cast<TH1*>(phRichT0->Clone("hRescaledRichT0"));
-
-  phRescaledStsT0->Scale(1 / dBaselineSts);
-  phRescaledMuchT0->Scale(1 / dBaselineMuch);
-  phRescaledTofT0->Scale(1 / dBaselineTof);
-  phRescaledRichT0->Scale(1 / dBaselineRich);
-
-  TCanvas* cT0CoincRescale =
-    new TCanvas(Form("cT0CoincRescale_%03u", uRunId), Form("Time Coincidence with T0 in run %3u", uRunId));
-
-  THStack* pStacksT0CoincRescale =
-    new THStack(Form("stackT0CoincRescale_%02u", uRunId), Form("Time Coincidence with T0 in run %02u; tT0 - Tdet [ns]; "
-                                                               "Pairs nb rescaled [1/baseline]",
-                                                               uRunId));
-  TLegend* legendRescale = new TLegend(0.1, 0.7, 0.3, 0.9);
-
-  phRescaledStsT0->SetLineColor(kBlack);
-  phRescaledMuchT0->SetLineColor(kRed);
-  phRescaledTofT0->SetLineColor(kBlue);
-  phRescaledRichT0->SetLineColor(kViolet);
-
-  phRescaledStsT0->SetLineWidth(2);
-  phRescaledMuchT0->SetLineWidth(2);
-  phRescaledTofT0->SetLineWidth(2);
-  phRescaledRichT0->SetLineWidth(2);
-
-  pStacksT0CoincRescale->Add(phRescaledStsT0);
-  pStacksT0CoincRescale->Add(phRescaledMuchT0);
-  pStacksT0CoincRescale->Add(phRescaledTofT0);
-  pStacksT0CoincRescale->Add(phRescaledRichT0);
-
-  legendRescale->AddEntry(phRescaledStsT0, "STS", "l");
-  legendRescale->AddEntry(phRescaledMuchT0, "MUCH", "l");
-  legendRescale->AddEntry(phRescaledTofT0, "TOF", "l");
-  legendRescale->AddEntry(phRescaledRichT0, "RICH", "l");
-
-  cT0CoincRescale->cd();
-  gPad->SetGridx();
-  gPad->SetGridy();
-  gPad->SetLogy();
-  pStacksT0CoincRescale->Draw("nostack,hist");
-  legendRescale->Draw();
-  pStacksT0CoincRescale->GetXaxis()->SetRangeUser(-2000.0, 2000.0);
-
-  return kTRUE;
-}
diff --git a/macro/beamtime/mcbm2018/TofFeeThr.C b/macro/beamtime/mcbm2018/TofFeeThr.C
index ba7fbf21d7de4520993235a284f3d5c7d325a2d5..505e2f1148136805a62de114534a30aad301bcfe 100644
--- a/macro/beamtime/mcbm2018/TofFeeThr.C
+++ b/macro/beamtime/mcbm2018/TofFeeThr.C
@@ -68,7 +68,7 @@ void TofFeeThr(TString inFile = "", TString sHostname = "localhost", TString sHi
   }
 
   source->AddUnpacker(test_monitor_tof, 0x60, 6);  //gDPBs TOF
-  source->AddUnpacker(test_monitor_tof, 0x90, 6);  //gDPBs T0
+  source->AddUnpacker(test_monitor_tof, 0x90, 6);  //gDPBs Bmon
 
   source->SetSubscriberHwm(1000);
 
diff --git a/macro/beamtime/mcbm2018/TofTestFee.C b/macro/beamtime/mcbm2018/TofTestFee.C
index 7f73acd1490f53f0c2944d4fa6e03f85ee25dbab..e9dfdf3b908ede4adb6b23a246175c334f28ad11 100644
--- a/macro/beamtime/mcbm2018/TofTestFee.C
+++ b/macro/beamtime/mcbm2018/TofTestFee.C
@@ -74,7 +74,7 @@ void TofTestFee(TString inFile = "", TString sHostname = "localhost", TString sH
   }
 
   source->AddUnpacker(test_monitor_tof, 0x60, 6);  //gDPBs TOF
-  source->AddUnpacker(test_monitor_tof, 0x90, 6);  //gDPBs T0
+  source->AddUnpacker(test_monitor_tof, 0x90, 6);  //gDPBs Bmon
 
   // --- Run
   run = new FairRunOnline(source);
diff --git a/macro/beamtime/mcbm2018/ana_digi_cal.C b/macro/beamtime/mcbm2018/ana_digi_cal.C
index c49c14b9920b9bf82fa78d15c27e60bc261c8749..fe378f4d6e44eeaaec781e86a0980fb913917582 100644
--- a/macro/beamtime/mcbm2018/ana_digi_cal.C
+++ b/macro/beamtime/mcbm2018/ana_digi_cal.C
@@ -95,7 +95,7 @@ void ana_digi_cal(Int_t nEvents = 10000000, Int_t calMode = 53, Int_t calSel = 0
   // tofClust->SetTimePeriod(25600.);       // ignore coarse time
   // tofClust->SetCorMode(iBugCor);         // correct missing hits
   tofClust->SetIdMode(1);  // calibrate on module level
-  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for T0M3,Rpc0,Strip 23
+  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for BmonM3,Rpc0,Strip 23
   //   tofClust->SetDeadStrips(27,30);   // declare dead strip for T6M0,Rpc1,Strip 30
   //   tofClust->SetDeadStrips(28,19);   // declare dead strip for T7M0,Rpc0,Strip 19
   //tofClust->SetDeadStrips(25,16);   // declare non-existant diamond strip (#5) dead
diff --git a/macro/beamtime/mcbm2018/ana_digi_cal_all.C b/macro/beamtime/mcbm2018/ana_digi_cal_all.C
index 1c7e4e571fa0ad14409f89722ec4d976b7917aa2..7e6d3991b43c644be43d9d62da9c3f7d5cef7332 100644
--- a/macro/beamtime/mcbm2018/ana_digi_cal_all.C
+++ b/macro/beamtime/mcbm2018/ana_digi_cal_all.C
@@ -99,7 +99,7 @@ void ana_digi_cal_all(Int_t nEvents = 10000000, Int_t calMode = 53, Int_t calSel
   // tofClust->SetCorMode(iBugCor);         // correct missing hits
   //tofClust->SetIdMode(0);                  // calibrate on counter level
   tofClust->SetIdMode(1);  // calibrate on module level
-  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for T0M3,Rpc0,Strip 23
+  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for BmonM3,Rpc0,Strip 23
   //tofClust->SetDeadStrips(25,16);   // declare non-existant diamond strip (#5) dead
 
   Int_t calSelRead = calSel;
diff --git a/macro/beamtime/mcbm2018/ana_digi_cali.C b/macro/beamtime/mcbm2018/ana_digi_cali.C
index 21f966774bf446d3740d91200707a3316968e43b..ef637ebd900625e32a6e4e858a4565d6311f5ea7 100644
--- a/macro/beamtime/mcbm2018/ana_digi_cali.C
+++ b/macro/beamtime/mcbm2018/ana_digi_cali.C
@@ -96,7 +96,7 @@ void ana_digi_cali(Int_t nEvents = 10000000, Int_t calMode = 53, Int_t calSel =
   // tofClust->SetTimePeriod(25600.);       // ignore coarse time
   // tofClust->SetCorMode(iBugCor);         // correct missing hits
   tofClust->SetIdMode(1);  // calibrate on module level
-  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for T0M3,Rpc0,Strip 23
+  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for BmonM3,Rpc0,Strip 23
   //   tofClust->SetDeadStrips(27,30);   // declare dead strip for T6M0,Rpc1,Strip 30
   //   tofClust->SetDeadStrips(28,19);   // declare dead strip for T7M0,Rpc0,Strip 19
   //tofClust->SetDeadStrips(25,16);   // declare non-existant diamond strip (#5) dead
diff --git a/macro/beamtime/mcbm2018/build_events.C b/macro/beamtime/mcbm2018/build_events.C
index 473d642a428914c5177fce812db188405d15a2c9..aa168a3b05caa32235eebbabbc98a13fbea6d176 100644
--- a/macro/beamtime/mcbm2018/build_events.C
+++ b/macro/beamtime/mcbm2018/build_events.C
@@ -1,6 +1,6 @@
-/* Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
+/* Copyright (C) 2019-2023 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
    SPDX-License-Identifier: GPL-3.0-only
-   Authors: Florian Uhlig [orginator] */
+   Authors: Florian Uhlig [committer] */
 
 void build_events(Int_t nEvents = 1, UInt_t uRunId = 0, TString fileName = "", TString outDir = "data/")
 {
@@ -49,7 +49,7 @@ void build_events(Int_t nEvents = 1, UInt_t uRunId = 0, TString fileName = "", T
   //  eventBuilder->SetMaximumTimeGap(100.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(50.);
-  eventBuilder->SetTriggerMinNumberT0(1);
+  eventBuilder->SetTriggerMinNumberBmon(1);
   eventBuilder->SetTriggerMinNumberSts(0);
   eventBuilder->SetTriggerMinNumberMuch(0);
   eventBuilder->SetTriggerMinNumberTof(1);
diff --git a/macro/beamtime/mcbm2018/convert_tsa_gdpb.C b/macro/beamtime/mcbm2018/convert_tsa_gdpb.C
index 799fe2fead9e2614b57e9c9db67da33caafc07e7..13b87af983797c3423baffcd059f8ff326b09109 100644
--- a/macro/beamtime/mcbm2018/convert_tsa_gdpb.C
+++ b/macro/beamtime/mcbm2018/convert_tsa_gdpb.C
@@ -55,7 +55,7 @@ void convert_tsa_gdpb(TString inFile = "", Int_t nrEvents = 0)
   CbmMcbm2018Source* source = new CbmMcbm2018Source();
   source->SetFileName(inFile);
   source->AddUnpacker(raw_conv_gdpb, 0x60, kTof);  //gDPB A & B & C
-  source->AddUnpacker(raw_conv_gdpb, 0x90, kTof);  //gDPB T0 A & B
+  source->AddUnpacker(raw_conv_gdpb, 0x90, kTof);  //gDPB Bmon A & B
 
   // --- Event header
   FairEventHeader* event = new CbmTbEvent();
diff --git a/macro/beamtime/mcbm2018/convert_tsa_mcbm.C b/macro/beamtime/mcbm2018/convert_tsa_mcbm.C
index 5380836db4dada3b1dcd9e54d3aef63c5717b79e..aae9cb9a1e0e29e5e2d1eec011493d914b021975 100644
--- a/macro/beamtime/mcbm2018/convert_tsa_mcbm.C
+++ b/macro/beamtime/mcbm2018/convert_tsa_mcbm.C
@@ -62,7 +62,7 @@ void convert_tsa_mcbm(TString inFile = "", Int_t nrEvents = 0)
   source->SetFileName(inFile);
   source->AddUnpacker(raw_conv_sdpb, 0x10, kSts);  //STS xyter from STS and MUCH
   source->AddUnpacker(raw_conv_gdpb, 0x60, kTof);  //gDPB A & B & C
-  source->AddUnpacker(raw_conv_gdpb, 0x90, kTof);  //gDPB T0 A & B
+  source->AddUnpacker(raw_conv_gdpb, 0x90, kTof);  //gDPB Bmon A & B
 
   // --- Event header
   FairEventHeader* event = new CbmTbEvent();
diff --git a/macro/beamtime/mcbm2018/mT0Par.par b/macro/beamtime/mcbm2018/mBmonPar.par
similarity index 100%
rename from macro/beamtime/mcbm2018/mT0Par.par
rename to macro/beamtime/mcbm2018/mBmonPar.par
diff --git a/macro/beamtime/mcbm2018/unpack_tsa_build_events.C b/macro/beamtime/mcbm2018/unpack_tsa_build_events.C
index f12d1c77af29d481690a44abc54b5037d4069cf1..54b56fd8f1b69d40a1c01947af775c654da6cb0c 100644
--- a/macro/beamtime/mcbm2018/unpack_tsa_build_events.C
+++ b/macro/beamtime/mcbm2018/unpack_tsa_build_events.C
@@ -72,7 +72,7 @@ void unpack_tsa_build_events(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEv
   unpacker_tof->SetIgnoreOverlapMs();
 
   //  unpacker_tof ->SetDiamondDpbIdx( 2 ); /// Only for Dec 2018 data
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   switch (uRunId) {
     case 48:
@@ -109,7 +109,7 @@ void unpack_tsa_build_events(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEv
   source->AddUnpacker(unpacker_sts, 0x10, kSts);    //STS xyter
   source->AddUnpacker(unpacker_much, 0x10, kMuch);  //MUCH xyter
   source->AddUnpacker(unpacker_tof, 0x60, kTof);    //gDPB A & B & C
-  source->AddUnpacker(unpacker_tof, 0x90, kTof);    //gDPB T0 A & B
+  source->AddUnpacker(unpacker_tof, 0x90, kTof);    //gDPB Bmon A & B
   source->EnableDataOutput();
 
   // --- Event header
@@ -132,7 +132,7 @@ void unpack_tsa_build_events(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEv
   eventBuilder->SetMaximumTimeGap(100.);
   //  eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   //  eventBuilder->SetFixedTimeWindow(60.);
-  eventBuilder->SetTriggerMinNumberT0(1);
+  eventBuilder->SetTriggerMinNumberBmon(1);
   eventBuilder->SetTriggerMinNumberSts(0);
   eventBuilder->SetTriggerMinNumberMuch(0);
   eventBuilder->SetTriggerMinNumberTof(1);
diff --git a/macro/beamtime/mcbm2018/unpack_tsa_check_time.C b/macro/beamtime/mcbm2018/unpack_tsa_check_time.C
index 370e6f8a99f902406a44e73168185373c243ba55..c3f4802bccc9ca034e2d51d6c47390b257a2ef33 100644
--- a/macro/beamtime/mcbm2018/unpack_tsa_check_time.C
+++ b/macro/beamtime/mcbm2018/unpack_tsa_check_time.C
@@ -84,7 +84,7 @@ void unpack_tsa_check_time(TString inFile = "", TString sHostname = "", UInt_t u
   unpacker_rich->SetWriteOutputFlag(kFALSE);
 
   //  unpacker_tof ->SetDiamondDpbIdx( 2 );
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   switch (uRunId) {
     case 48:
@@ -152,10 +152,10 @@ void unpack_tsa_check_time(TString inFile = "", TString sHostname = "", UInt_t u
   timeChecker->SetTofOffsetSearchRange(10000);
   timeChecker->SetRichOffsetSearchRange(10000);
   ;
-  if (uRunId < 87) timeChecker->SetT0PulserTotLimits(90, 100);  // for runs <= 86
+  if (uRunId < 87) timeChecker->SetBmonPulserTotLimits(90, 100);  // for runs <= 86
   else                                                          //if( uRunId < )
-    timeChecker->SetT0PulserTotLimits(180, 210);                // for runs  >  86
-  //    else timeChecker->SetT0PulserTotLimits( 90, 100 ); // for runs <= 86
+    timeChecker->SetBmonPulserTotLimits(180, 210);              // for runs  >  86
+  //    else timeChecker->SetBmonPulserTotLimits( 90, 100 ); // for runs <= 86
   if (0 < uRunId) timeChecker->SetOutFilename(Form("HistosTimeCheck_%03u.root", uRunId));
   run->AddTask(timeChecker);
 
diff --git a/macro/beamtime/mcbm2018/unpack_tsa_mcbm.C b/macro/beamtime/mcbm2018/unpack_tsa_mcbm.C
index a313504463eea7f0b700253244c9cb65b5bbb793..2a7c96e74c25c313a7a233ff1b8ea7564ebb82c7 100644
--- a/macro/beamtime/mcbm2018/unpack_tsa_mcbm.C
+++ b/macro/beamtime/mcbm2018/unpack_tsa_mcbm.C
@@ -86,7 +86,7 @@ void unpack_tsa_mcbm(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEvents = 0
   unpacker_rich->SetIgnoreOverlapMs();
 
   //  unpacker_tof ->SetDiamondDpbIdx( 2 ); /// Only for Dec 2018 data
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   switch (uRunId) {
     case 48:
@@ -282,7 +282,7 @@ void unpack_tsa_mcbm(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEvents = 0
   source->AddUnpacker(unpacker_sts, 0x10, kSts);    //STS xyter
   source->AddUnpacker(unpacker_much, 0x10, kMuch);  //MUCH xyter
   source->AddUnpacker(unpacker_tof, 0x60, kTof);    //gDPB A & B & C
-  source->AddUnpacker(unpacker_tof, 0x90, kTof);    //gDPB T0 A & B
+  source->AddUnpacker(unpacker_tof, 0x90, kTof);    //gDPB Bmon A & B
   source->AddUnpacker(unpacker_rich, 0x30, kRich);  //RICH trb
 
   // --- Event header
diff --git a/macro/beamtime/mcbm2018/unpack_tsa_tof.C b/macro/beamtime/mcbm2018/unpack_tsa_tof.C
index 017396c3fa738c96c6e445d0289d222af37b426e..e17da746cdea2d06f09c1d6bde99a419295cdff2 100644
--- a/macro/beamtime/mcbm2018/unpack_tsa_tof.C
+++ b/macro/beamtime/mcbm2018/unpack_tsa_tof.C
@@ -58,7 +58,7 @@ void unpack_tsa_tof(TString inFile = "")
 
   unpacker_tof->SetIgnoreOverlapMs();
   unpacker_tof->SetDiamondDpbIdx(2);
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   // --- Source task
   CbmMcbm2018Source* source = new CbmMcbm2018Source();
diff --git a/macro/beamtime/mcbm2019/CMakeLists.txt b/macro/beamtime/mcbm2019/CMakeLists.txt
index 9f389a2b2f523948aca65642811f322159c94aa8..427c9653ff9284135d8b43c859fc1f4be8190034 100644
--- a/macro/beamtime/mcbm2019/CMakeLists.txt
+++ b/macro/beamtime/mcbm2019/CMakeLists.txt
@@ -20,7 +20,7 @@ GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2019/check_st
 GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2019/check_pulser.C )     # CbmMcbm2019CheckPulser.h
 GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2019/build_events.C )     # CbmMcbm2018EventBuilder.h
 GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2019/check_events.C )     # CbmCheckEvents.h
-GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2019/MonitorT0.C )        # CbmMcbm2018MonitorTaskT0 + CbmMcbm2018MonitorAlgoT
+GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2019/MonitorBmon.C )        # CbmMcbm2018MonitorTaskBmon + CbmMcbm2018MonitorAlgoT
 GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2019/MonitorSts.C )       # CbmMcbm2018MonitorSts.h
 GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2019/MonitorMuch.C )      # CbmMcbm2018MonitorMuchLite.h
 GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2019/MonitorTof.C )       # CbmMcbm2018MonitorTaskTof + CbmMcbm2018MonitorAlgoTof
@@ -47,7 +47,7 @@ set_tests_properties(${testname} PROPERTIES DEPENDS mcbm_convert_2019)
 Set(testname mcbm_check_timing_2019)
 Add_Test(${testname} ${CBMROOT_BINARY_DIR}/macro/beamtime/mcbm2019/check_timing.sh \"data/unp_mcbm_399.root\" 399 )
 Set_Tests_Properties(${testname} PROPERTIES TIMEOUT "600")
-Set_Tests_Properties(${testname} PROPERTIES PASS_REGULAR_EXPRESSION "Total number of T0 digis: 18")
+Set_Tests_Properties(${testname} PROPERTIES PASS_REGULAR_EXPRESSION "Total number of Bmon digis: 18")
 Set_Tests_Properties(${testname} PROPERTIES PASS_REGULAR_EXPRESSION "Total number of Sts digis: 1061912")
 Set_Tests_Properties(${testname} PROPERTIES PASS_REGULAR_EXPRESSION "Total number of Much digis: 319732")
 Set_Tests_Properties(${testname} PROPERTIES PASS_REGULAR_EXPRESSION "Total number of Tof digis: 246711")
@@ -94,7 +94,7 @@ set_tests_properties(${testname} PROPERTIES FIXTURES_REQUIRED ${fixture_built_ev
 set_tests_properties(${testname} PROPERTIES DEPENDS mcbm_build_event_2019)
 
 Set(testname mcbm_monit0_2019)
-Add_Test(${testname} ${CBMROOT_BINARY_DIR}/macro/beamtime/mcbm2019/MonitorT0.sh \"${CBMROOT_SOURCE_DIR}/input/mcbm_run399_first20Ts.tsa\" )
+Add_Test(${testname} ${CBMROOT_BINARY_DIR}/macro/beamtime/mcbm2019/MonitorBmon.sh \"${CBMROOT_SOURCE_DIR}/input/mcbm_run399_first20Ts.tsa\" )
 Set_Tests_Properties(${testname} PROPERTIES TIMEOUT "600")
 Set_Tests_Properties(${testname} PROPERTIES PASS_REGULAR_EXPRESSION "Test Passed;All ok")
 set_tests_properties(${testname} PROPERTIES DEPENDS mcbm_check_event_2019)
diff --git a/macro/beamtime/mcbm2019/CheckDataFormatGdpb.C b/macro/beamtime/mcbm2019/CheckDataFormatGdpb.C
index 26d14ddf323ae0533c05539d84804e6fad07717a..3a79c5137b728dbf741314939d07b3a5e8139099 100644
--- a/macro/beamtime/mcbm2019/CheckDataFormatGdpb.C
+++ b/macro/beamtime/mcbm2019/CheckDataFormatGdpb.C
@@ -75,7 +75,7 @@ void CheckDataFormatGdpb(TString inFile = "", TString sHostname = "localhost", I
   }
 
   source->AddUnpacker(test_monitor_tof, 0x60, ECbmModuleId::kTof);  //gDPBs
-  source->AddUnpacker(test_monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs T0
+  source->AddUnpacker(test_monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs Bmon
 
   // --- Run
   run = new FairRunOnline(source);
diff --git a/macro/beamtime/mcbm2019/MonitorT0.C b/macro/beamtime/mcbm2019/MonitorBmon.C
similarity index 81%
rename from macro/beamtime/mcbm2019/MonitorT0.C
rename to macro/beamtime/mcbm2019/MonitorBmon.C
index 84dd222b0b2341cd03449d2518676c801063dc2f..5e882470d21c1b7d1850671008fa14045990a909 100644
--- a/macro/beamtime/mcbm2019/MonitorT0.C
+++ b/macro/beamtime/mcbm2019/MonitorBmon.C
@@ -14,8 +14,8 @@
 // In order to call later Finish, we make this global
 FairRunOnline* run = NULL;
 
-void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServerHttpPort = 8080,
-               Int_t iServerRefreshRate = 100, UInt_t uRunId = 0, UInt_t nrEvents = 0)
+void MonitorBmon(TString inFile = "", TString sHostname = "localhost", Int_t iServerHttpPort = 8080,
+                 Int_t iServerRefreshRate = 100, UInt_t uRunId = 0, UInt_t nrEvents = 0)
 {
   TString srcDir = gSystem->Getenv("VMCWORKDIR");
 
@@ -37,7 +37,7 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   TList* parFileList = new TList();
   TString paramDir   = srcDir + "/macro/beamtime/mcbm2019/";
 
-  TString paramFileTof       = paramDir + "mT0Par.par";
+  TString paramFileTof       = paramDir + "mBmonPar.par";
   TObjString* parTofFileName = new TObjString(paramFileTof);
   parFileList->Add(parTofFileName);
 
@@ -49,12 +49,12 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   // ========================================================================
   // ========================================================================
   std::cout << std::endl;
-  std::cout << ">>> MonitorT0: Initialising..." << std::endl;
-  CbmMcbm2018MonitorTaskT0* monitor_t0 = new CbmMcbm2018MonitorTaskT0();
+  std::cout << ">>> MonitorBmon: Initialising..." << std::endl;
+  CbmMcbm2018MonitorTaskBmon* monitor_t0 = new CbmMcbm2018MonitorTaskBmon();
 
   monitor_t0->SetIgnoreOverlapMs();
   monitor_t0->SetHistoryHistoSize(1800);
-  if (0 < uRunId) monitor_t0->SetHistoFilename(Form("data/HistosMonitorT0_%03u.root", uRunId));
+  if (0 < uRunId) monitor_t0->SetHistoFilename(Form("data/HistosMonitorBmon_%03u.root", uRunId));
   monitor_t0->SetPulserTotLimits(180, 210);  // for runs  >  86
 
   // --- Source task
@@ -65,10 +65,10 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
     source->SetHostName(sHostname);
   }  // else of if( "" != inFile )
 
-  // Use kHodo since there is no entry for T0 in the enum yet
+  // Use kHodo since there is no entry for Bmon in the enum yet
   //  source->AddUnpacker(monitor_t0,  0x60, 9  );//gDPB TOF
-  //  source->AddUnpacker(monitor_t0,  0x90, 9  );//gDPB T0
-  source->AddUnpacker(monitor_t0, 0x90, ECbmModuleId::kHodo);  //gDPB T0
+  //  source->AddUnpacker(monitor_t0,  0x90, 9  );//gDPB Bmon
+  source->AddUnpacker(monitor_t0, 0x90, ECbmModuleId::kHodo);  //gDPB Bmon
 
   source->SetSubscriberHwm(1000);
 
@@ -95,7 +95,7 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   // --- Start run
   TStopwatch timer;
   timer.Start();
-  std::cout << ">>> MonitorT0: Starting run..." << std::endl;
+  std::cout << ">>> MonitorBmon: Starting run..." << std::endl;
   if (0 == nrEvents) {
     run->Run(nEvents, 0);  // run until end of input file
   }
@@ -112,8 +112,8 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   Double_t rtime = timer.RealTime();
   Double_t ctime = timer.CpuTime();
   std::cout << std::endl << std::endl;
-  std::cout << ">>> MonitorT0: Macro finished successfully." << std::endl;
-  std::cout << ">>> MonitorT0: Real time " << rtime << " s, CPU time " << ctime << " s" << std::endl;
+  std::cout << ">>> MonitorBmon: Macro finished successfully." << std::endl;
+  std::cout << ">>> MonitorBmon: Real time " << rtime << " s, CPU time " << ctime << " s" << std::endl;
   std::cout << std::endl;
 
   /// --- Screen output for automatic tests
diff --git a/macro/beamtime/mcbm2019/MonitorPsd.C b/macro/beamtime/mcbm2019/MonitorPsd.C
index 54a0ac04589e25b56a1b003900b524dcde21337d..96bc769fea30abe54b3bfb3559ecc49514a4d47b 100644
--- a/macro/beamtime/mcbm2019/MonitorPsd.C
+++ b/macro/beamtime/mcbm2019/MonitorPsd.C
@@ -5,7 +5,7 @@
 /** @file MCBM PSD DATA monitoring
  ** @author Nikolay Karpushkin <karpushkin@inr.ru>
  ** @date 09.10.2019
- ** Based on MonitorT0 by P.-A. Loizeau
+ ** Based on MonitorBmon by P.-A. Loizeau
  ** ROOT macro to read tsa files which have been produced with the new data transport
  ** Convert data into cbmroot format.
  ** Uses CbmMcbm2018Source as source task.
@@ -73,7 +73,7 @@ void MonitorPsd(TString inFile = "", TString sHostname = "localhost", Int_t iSer
   }  // else of if( "" != inFile )
 
 
-  source->AddUnpacker(monitor_psd, 0x80, ECbmModuleId::kPsd);  //gDPB T0
+  source->AddUnpacker(monitor_psd, 0x80, ECbmModuleId::kPsd);  //gDPB Bmon
 
   source->SetSubscriberHwm(1000);
 
diff --git a/macro/beamtime/mcbm2019/MonitorRich.C b/macro/beamtime/mcbm2019/MonitorRich.C
index 02ae590a3109ae6f508c44fd0069dab0b9044b27..241022587065ef08967fd7596fd220d51e1ce20e 100644
--- a/macro/beamtime/mcbm2019/MonitorRich.C
+++ b/macro/beamtime/mcbm2019/MonitorRich.C
@@ -3,7 +3,7 @@
    Authors: Adrian Amatus Weber [committer] */
 
 /** @file MCBM RICH DATA monitoring
- ** Based on MonitorT0 by P.-A. Loizeau
+ ** Based on MonitorBmon by P.-A. Loizeau
  ** ROOT macro to read tsa files which have been produced with the new data transport
  ** Convert data into cbmroot format.
  ** Uses CbmMcbm2018Source as source task.
diff --git a/macro/beamtime/mcbm2019/MonitorTof.C b/macro/beamtime/mcbm2019/MonitorTof.C
index 8bfe2090a16356c2c64f25c6e015b8c0bdec642b..397bbf27694bdbde6855fd528ecc22ce5dc4f548 100644
--- a/macro/beamtime/mcbm2019/MonitorTof.C
+++ b/macro/beamtime/mcbm2019/MonitorTof.C
@@ -69,7 +69,7 @@ void MonitorTof(TString inFile = "", TString sHostname = "localhost", Int_t iSer
   }  // else of if( "" != inFile )
   source->SetSubscriberHwm(10);
   source->AddUnpacker(monitor_tof, 0x60, ECbmModuleId::kTof);  //gDPBs
-  source->AddUnpacker(monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs T0
+  source->AddUnpacker(monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs Bmon
 
   // --- Run
   run = new FairRunOnline(source);
diff --git a/macro/beamtime/mcbm2019/MonitorTofPulser.C b/macro/beamtime/mcbm2019/MonitorTofPulser.C
index 9e93987b10499fbc93c3f879d6ca3d779ca3a081..fdddf710e7cba6b548ccb37bfe1a17fde3276529 100644
--- a/macro/beamtime/mcbm2019/MonitorTofPulser.C
+++ b/macro/beamtime/mcbm2019/MonitorTofPulser.C
@@ -66,7 +66,7 @@ void MonitorTofPulser(TString inFile = "", TString sHostname = "etofin001", Int_
   }  // else of if( "" != inFile )
   source->SetSubscriberHwm(10);
   source->AddUnpacker(monitor_tof, 0x60, ECbmModuleId::kTof);  //gDPBs
-  source->AddUnpacker(monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs T0
+  source->AddUnpacker(monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs Bmon
 
   // --- Run
   run = new FairRunOnline(source);
diff --git a/macro/beamtime/mcbm2019/build_events.C b/macro/beamtime/mcbm2019/build_events.C
index e6768006f10ca4b52012e6b98f8f70e1e7d94372..4b0ac4e7fcc24646d2cc545542650e24d38dd2e9 100644
--- a/macro/beamtime/mcbm2019/build_events.C
+++ b/macro/beamtime/mcbm2019/build_events.C
@@ -1,6 +1,6 @@
-/* Copyright (C) 2020 Facility for Antiproton and Ion Research in Europe, Darmstadt
+/* Copyright (C) 2020-2023 Facility for Antiproton and Ion Research in Europe, Darmstadt
    SPDX-License-Identifier: GPL-3.0-only
-   Authors: Pierre-Alain Loizeau [orginator] */
+   Authors: Pierre-Alain Loizeau [committer] */
 
 void build_events(TString fileName, UInt_t uRunId = 0, Int_t nEvents = 0, TString outDir = "data/")
 {
@@ -49,7 +49,7 @@ void build_events(TString fileName, UInt_t uRunId = 0, Int_t nEvents = 0, TStrin
   //  eventBuilder->SetMaximumTimeGap(100.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(50.);
-  eventBuilder->SetTriggerMinNumberT0(1);
+  eventBuilder->SetTriggerMinNumberBmon(1);
   eventBuilder->SetTriggerMinNumberSts(0);
   eventBuilder->SetTriggerMinNumberMuch(0);
   eventBuilder->SetTriggerMinNumberTof(1);
diff --git a/macro/beamtime/mcbm2019/check_pulser.C b/macro/beamtime/mcbm2019/check_pulser.C
index 62edc36e45db249fba2327527d42b2a42454f232..74849a32b1edbfaf7f9b8391148f2d0ed4d5d81f 100644
--- a/macro/beamtime/mcbm2019/check_pulser.C
+++ b/macro/beamtime/mcbm2019/check_pulser.C
@@ -47,7 +47,7 @@ void check_pulser(UInt_t uRunId = 0, Int_t nrEvents = 0, TString sDir = "data")
   // ------------------------------------------------------------------------
 
   CbmMcbm2019CheckPulser* pulserChecker = new CbmMcbm2019CheckPulser();
-  pulserChecker->SetT0PulserTotLimits(184, 191);
+  pulserChecker->SetBmonPulserTotLimits(184, 191);
   pulserChecker->SetStsPulserAdcLimits(31, 0);
   pulserChecker->SetMuchPulserAdcLimits(5, 10);
   pulserChecker->SetTofPulserTotLimits(184, 191);
diff --git a/macro/beamtime/mcbm2019/check_timing.C b/macro/beamtime/mcbm2019/check_timing.C
index 421fcdfb280a26df1252c148e40cedd13cd5547f..bb436d4783c6ed55d9fc3bddf2e897a0f27cdd47 100644
--- a/macro/beamtime/mcbm2019/check_timing.C
+++ b/macro/beamtime/mcbm2019/check_timing.C
@@ -48,7 +48,7 @@ void check_timing(TString fileName, UInt_t uRunId = 0, Int_t nEvents = 0, TStrin
   timeChecker->SetTofOffsetSearchRange(2000);
   timeChecker->SetRichOffsetSearchRange(1000);
   timeChecker->SetPsdOffsetSearchRange(10000);
-  timeChecker->SetT0PulserTotLimits(185, 191);
+  timeChecker->SetBmonPulserTotLimits(185, 191);
   if (0 < uRunId) timeChecker->SetOutFilename(Form("%sHistosTimeCheck_%03u.root", outDir.Data(), uRunId));
   fRun->AddTask(timeChecker);
 
diff --git a/macro/beamtime/mcbm2019/convert_tsa_gdpb.C b/macro/beamtime/mcbm2019/convert_tsa_gdpb.C
index 748ba65c3b73d7aa97a3ca3c175755a4eb0039fe..529c0d37d1c78484b9bacb279c29e66115b134e3 100644
--- a/macro/beamtime/mcbm2019/convert_tsa_gdpb.C
+++ b/macro/beamtime/mcbm2019/convert_tsa_gdpb.C
@@ -55,7 +55,7 @@ void convert_tsa_gdpb(TString inFile = "", Int_t nrEvents = 0)
   CbmMcbm2018Source* source = new CbmMcbm2018Source();
   source->SetFileName(inFile);
   source->AddUnpacker(raw_conv_gdpb, 0x60, ECbmModuleId::kTof);  //gDPB A & B & C
-  source->AddUnpacker(raw_conv_gdpb, 0x90, ECbmModuleId::kTof);  //gDPB T0 A & B
+  source->AddUnpacker(raw_conv_gdpb, 0x90, ECbmModuleId::kTof);  //gDPB Bmon A & B
 
   // --- Event header
   FairEventHeader* event = new FairEventHeader();
diff --git a/macro/beamtime/mcbm2019/convert_tsa_mcbm.C b/macro/beamtime/mcbm2019/convert_tsa_mcbm.C
index 5895409d355d28661a62ec8a2dce3c399df05ca3..88ec52bbed62ec45c5790cbdadaddbcf410fcef8 100644
--- a/macro/beamtime/mcbm2019/convert_tsa_mcbm.C
+++ b/macro/beamtime/mcbm2019/convert_tsa_mcbm.C
@@ -63,7 +63,7 @@ void convert_tsa_mcbm(TString inFile = "", Int_t nrEvents = 0)
   source->AddUnpacker(raw_conv_sdpb, 0x10, ECbmModuleId::kSts);   //STS xyter from STS
   source->AddUnpacker(raw_conv_sdpb, 0x40, ECbmModuleId::kMuch);  //STS xyter from MUCH
   source->AddUnpacker(raw_conv_gdpb, 0x60, ECbmModuleId::kTof);   //gDPB A & B & C
-  source->AddUnpacker(raw_conv_gdpb, 0x90, ECbmModuleId::kTof);   //gDPB T0 A & B
+  source->AddUnpacker(raw_conv_gdpb, 0x90, ECbmModuleId::kTof);   //gDPB Bmon A & B
 
   // --- Event header
   FairEventHeader* event = new FairEventHeader();
diff --git a/macro/beamtime/mcbm2019/mT0Par.par b/macro/beamtime/mcbm2019/mBmonPar.par
similarity index 100%
rename from macro/beamtime/mcbm2019/mT0Par.par
rename to macro/beamtime/mcbm2019/mBmonPar.par
diff --git a/macro/beamtime/mcbm2019/unpack_pulser_mcbm.C b/macro/beamtime/mcbm2019/unpack_pulser_mcbm.C
index 03d26fa0dbdc3a935dc3a5d2a564c27fc894d8e3..2468463d18d1a3a30d6b04adcf59475ebe959f17 100644
--- a/macro/beamtime/mcbm2019/unpack_pulser_mcbm.C
+++ b/macro/beamtime/mcbm2019/unpack_pulser_mcbm.C
@@ -103,7 +103,7 @@ void unpack_pulser_mcbm(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEvents
 
   unpacker_sts->SetAdcCut(3);
   unpacker_sts->SeparatePulserOutput(kFALSE);
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   // ------------------------------ //
   // Enable Asic type for MUCH data.
@@ -261,7 +261,7 @@ void unpack_pulser_mcbm(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEvents
   source->AddUnpacker(unpacker_sts, 0x10, ECbmModuleId::kSts);    //STS xyter
   source->AddUnpacker(unpacker_much, 0x40, ECbmModuleId::kMuch);  //MUCH xyter
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);    //gDPB A & B & C
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);    //gDPB T0 A & B
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);    //gDPB Bmon A & B
   source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);  //RICH trb
   source->AddUnpacker(unpacker_psd, 0x80, ECbmModuleId::kPsd);    //PSD
 
@@ -274,7 +274,7 @@ void unpack_pulser_mcbm(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEvents
   run->SetAutoFinish(kFALSE);
 
   CbmMcbm2019CheckPulser* pulserChecker = new CbmMcbm2019CheckPulser();
-  pulserChecker->SetT0PulserTotLimits(184, 191);
+  pulserChecker->SetBmonPulserTotLimits(184, 191);
   pulserChecker->SetStsPulserAdcLimits(31, 0);
   pulserChecker->SetMuchPulserAdcLimits(5, 25);  /// mCBM 2019
   pulserChecker->SetTofPulserTotLimits(184, 191);
diff --git a/macro/beamtime/mcbm2019/unpack_tsa_mcbm.C b/macro/beamtime/mcbm2019/unpack_tsa_mcbm.C
index 7ba1ad77765727b2f04c29f01639545345f8a79a..e315e42afd55209c0e8a638399a0677cced5db46 100644
--- a/macro/beamtime/mcbm2019/unpack_tsa_mcbm.C
+++ b/macro/beamtime/mcbm2019/unpack_tsa_mcbm.C
@@ -95,7 +95,7 @@ void unpack_tsa_mcbm(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEvents = 0
   unpacker_rich->SetIgnoreOverlapMs();
   unpacker_psd->SetIgnoreOverlapMs();
 
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   // ------------------------------ //
   // Enable Asic type for MUCH data.
@@ -253,7 +253,7 @@ void unpack_tsa_mcbm(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEvents = 0
   source->AddUnpacker(unpacker_sts, 0x10, ECbmModuleId::kSts);    //STS xyter
   source->AddUnpacker(unpacker_much, 0x40, ECbmModuleId::kMuch);  //MUCH xyter
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);    //gDPB A & B & C
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);    //gDPB T0 A & B
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);    //gDPB Bmon A & B
   source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);  //RICH trb
   source->AddUnpacker(unpacker_psd, 0x80, ECbmModuleId::kPsd);    //PSD
 
diff --git a/macro/beamtime/mcbm2019/unpack_tsa_mcbm_kronos.C b/macro/beamtime/mcbm2019/unpack_tsa_mcbm_kronos.C
index 4431ebee9a2eafdd2a0c0dde5c8890849cbc5735..66e4ef5f8d92f9d7ba7a66fb23f86ba7582adb00 100644
--- a/macro/beamtime/mcbm2019/unpack_tsa_mcbm_kronos.C
+++ b/macro/beamtime/mcbm2019/unpack_tsa_mcbm_kronos.C
@@ -93,7 +93,7 @@ void unpack_tsa_mcbm_kronos(UInt_t uRunId = 0, UInt_t nrEvents = 0, TString outD
   unpacker_psd->SetIgnoreOverlapMs();
 
   //  unpacker_sts ->SetAdcCut( 3 );
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
   /*
   /// Mask all channels in FEB 1 end even channels in FEB 2 in mSTS
   for( UInt_t uChan = 0; uChan < 1024; ++uChan )
@@ -233,7 +233,7 @@ void unpack_tsa_mcbm_kronos(UInt_t uRunId = 0, UInt_t nrEvents = 0, TString outD
   source->AddUnpacker(unpacker_sts, 0x10, ECbmModuleId::kSts);    //STS xyter
   source->AddUnpacker(unpacker_much, 0x40, ECbmModuleId::kMuch);  //MUCH xyter
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);    //gDPB A & B & C
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);    //gDPB T0 A & B
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);    //gDPB Bmon A & B
   source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);  //RICH trb
   source->AddUnpacker(unpacker_psd, 0x80, ECbmModuleId::kPsd);    //PSD
 
diff --git a/macro/beamtime/mcbm2019/unpack_tsa_mcbm_mfles.C b/macro/beamtime/mcbm2019/unpack_tsa_mcbm_mfles.C
index b9fa8e0ff03a38c549dd8ef209acb2f22d892cc4..83a84f0d09d33419eb1a09479a51b6a7c12b17f5 100644
--- a/macro/beamtime/mcbm2019/unpack_tsa_mcbm_mfles.C
+++ b/macro/beamtime/mcbm2019/unpack_tsa_mcbm_mfles.C
@@ -93,7 +93,7 @@ void unpack_tsa_mcbm_mfles(UInt_t uRunId = 0, UInt_t nrEvents = 0, TString outDi
   unpacker_psd->SetIgnoreOverlapMs();
 
   unpacker_sts->SetAdcCut(3);
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
   /*
   /// Mask channels with >10k mean rate in more than 1/2 of the runs
   unpacker_sts ->MaskNoisyChannel( 1,   65, true );
@@ -1601,7 +1601,7 @@ void unpack_tsa_mcbm_mfles(UInt_t uRunId = 0, UInt_t nrEvents = 0, TString outDi
   source->AddUnpacker(unpacker_sts, 0x10, ECbmModuleId::kSts);    //STS xyter
   source->AddUnpacker(unpacker_much, 0x40, ECbmModuleId::kMuch);  //MUCH xyter
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);    //gDPB A & B & C
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);    //gDPB T0 A & B
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);    //gDPB Bmon A & B
   /// Avoid unpacking runs with RICH calibration triggers in first file until unpacker fixed
   if (358 != uRunId && 361 != uRunId && 367 != uRunId && 369 != uRunId)
     source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);  //RICH trb
diff --git a/macro/beamtime/mcbm2020/CMakeLists.txt b/macro/beamtime/mcbm2020/CMakeLists.txt
index bc297189e424bbf5bc1f641df2be52137e7423e9..388151acf302de753cacd73697740d13250ace57 100644
--- a/macro/beamtime/mcbm2020/CMakeLists.txt
+++ b/macro/beamtime/mcbm2020/CMakeLists.txt
@@ -26,7 +26,7 @@ If(DEFINED ENV{RAW_DATA_PATH} )
   GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2020/mcbm_event_reco.C )  # Digi dt event building + Cluster Finding + Hit reconstruction, Event based
   GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2020/mcbm_event_ana.C )   # TOF Track extension toward other detectors
   GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2020/mcbm_tof_tracking.C ) # TOF Tracking, Event based
-  GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2020/MonitorT0.C )        # CbmMcbm2018MonitorTaskT0 + CbmMcbm2018MonitorAlgoT0
+  GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2020/MonitorBmon.C )        # CbmMcbm2018MonitorTaskBmon + CbmMcbm2018MonitorAlgoBmon
   GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2020/MonitorSts.C )       # CbmMcbm2018MonitorSts.h
   GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2020/MonitorMuch.C )      # CbmMcbm2018MonitorMuchLite.h
   GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/beamtime/mcbm2020/MonitorTrd.C )       # CbmMcbm2018UnpackerTaskTrd.h in monitor mode
@@ -55,7 +55,7 @@ If(DEFINED ENV{RAW_DATA_PATH} )
       Set(testname mcbm_check_timing_2020_${RUN})
       Add_Test(${testname} ${CBMROOT_BINARY_DIR}/macro/beamtime/mcbm2020/check_timing.sh \"data/unp_mcbm_${RUN}.root\" ${RUN} )
       Set_Tests_Properties(${testname} PROPERTIES TIMEOUT "600")
-  #    Set_Tests_Properties(${testname} PROPERTIES PASS_REGULAR_EXPRESSION "Total number of T0 digis: 18")
+  #    Set_Tests_Properties(${testname} PROPERTIES PASS_REGULAR_EXPRESSION "Total number of Bmon digis: 18")
   #    Set_Tests_Properties(${testname} PROPERTIES PASS_REGULAR_EXPRESSION "Total number of Sts digis: 1061912")
   #    Set_Tests_Properties(${testname} PROPERTIES PASS_REGULAR_EXPRESSION "Total number of Much digis: 319732")
   #    Set_Tests_Properties(${testname} PROPERTIES PASS_REGULAR_EXPRESSION "Total number of Tof digis: 246711")
@@ -163,7 +163,7 @@ If(DEFINED ENV{RAW_DATA_PATH} )
 
       ### Monitors tests => Should run 1 by 1 after unpacker test to avoid concurrent access to tsa file
       Set(testname mcbm_monit0_2020_${RUN})
-      Add_Test(${testname} ${CBMROOT_BINARY_DIR}/macro/beamtime/mcbm2020/MonitorT0.sh \"${RAW_DATA_PATH}/${RUN}_first20Ts.tsa\" )
+      Add_Test(${testname} ${CBMROOT_BINARY_DIR}/macro/beamtime/mcbm2020/MonitorBmon.sh \"${RAW_DATA_PATH}/${RUN}_first20Ts.tsa\" )
       Set_Tests_Properties(${testname} PROPERTIES TIMEOUT "300")
       Set_Tests_Properties(${testname} PROPERTIES PASS_REGULAR_EXPRESSION "Test Passed;All ok")
       set_tests_properties(${testname} PROPERTIES DEPENDS mcbm_unpack_2020_${RUN})
diff --git a/macro/beamtime/mcbm2020/CheckDataFormatGdpb.C b/macro/beamtime/mcbm2020/CheckDataFormatGdpb.C
index 02dba35172bc3d38c625b0e82cdc8a5b002d0ed4..7c73f9ae2594a3dfda6c3934dccc6ac0334f220d 100644
--- a/macro/beamtime/mcbm2020/CheckDataFormatGdpb.C
+++ b/macro/beamtime/mcbm2020/CheckDataFormatGdpb.C
@@ -75,7 +75,7 @@ void CheckDataFormatGdpb(TString inFile = "", TString sHostname = "localhost", I
   }
 
   source->AddUnpacker(test_monitor_tof, 0x60, ECbmModuleId::kTof);  //gDPBs
-  source->AddUnpacker(test_monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs T0
+  source->AddUnpacker(test_monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs Bmon
 
   // --- Run
   run = new FairRunOnline(source);
diff --git a/macro/beamtime/mcbm2020/MonitorT0.C b/macro/beamtime/mcbm2020/MonitorBmon.C
similarity index 82%
rename from macro/beamtime/mcbm2020/MonitorT0.C
rename to macro/beamtime/mcbm2020/MonitorBmon.C
index aa1eb6fce2c93110ff53b3b82e198d58691e531d..6c369d8064e2c295bd18cd294c100fdba464cd84 100644
--- a/macro/beamtime/mcbm2020/MonitorT0.C
+++ b/macro/beamtime/mcbm2020/MonitorBmon.C
@@ -14,8 +14,8 @@
 // In order to call later Finish, we make this global
 FairRunOnline* run = NULL;
 
-void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServerHttpPort = 8080,
-               Int_t iServerRefreshRate = 100, UInt_t uRunId = 0, UInt_t nrEvents = 0)
+void MonitorBmon(TString inFile = "", TString sHostname = "localhost", Int_t iServerHttpPort = 8080,
+                 Int_t iServerRefreshRate = 100, UInt_t uRunId = 0, UInt_t nrEvents = 0)
 {
   TString srcDir = gSystem->Getenv("VMCWORKDIR");
 
@@ -36,7 +36,7 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   TList* parFileList = new TList();
   TString paramDir   = srcDir + "/macro/beamtime/mcbm2020/";
 
-  TString paramFileTof       = paramDir + "mT0Par.par";
+  TString paramFileTof       = paramDir + "mBmonPar.par";
   TObjString* parTofFileName = new TObjString(paramFileTof);
   parFileList->Add(parTofFileName);
 
@@ -48,12 +48,12 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   // ========================================================================
   // ========================================================================
   std::cout << std::endl;
-  std::cout << ">>> MonitorT0: Initialising..." << std::endl;
-  CbmMcbm2018MonitorTaskT0* monitor_t0 = new CbmMcbm2018MonitorTaskT0();
+  std::cout << ">>> MonitorBmon: Initialising..." << std::endl;
+  CbmMcbm2018MonitorTaskBmon* monitor_t0 = new CbmMcbm2018MonitorTaskBmon();
 
   monitor_t0->SetIgnoreOverlapMs();
   monitor_t0->SetHistoryHistoSize(1800);
-  if (0 < uRunId) monitor_t0->SetHistoFilename(Form("data/HistosMonitorT0_%03u.root", uRunId));
+  if (0 < uRunId) monitor_t0->SetHistoFilename(Form("data/HistosMonitorBmon_%03u.root", uRunId));
   monitor_t0->SetPulserTotLimits(180, 210);  // for runs  >  86
 
   // --- Source task
@@ -64,8 +64,8 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
     source->SetHostName(sHostname);
   }  // else of if( "" != inFile )
 
-  // Use kHodo since there is no entry for T0 in the enum yet
-  source->AddUnpacker(monitor_t0, 0x90, ECbmModuleId::kHodo);  //gDPB T0
+  // Use kHodo since there is no entry for Bmon in the enum yet
+  source->AddUnpacker(monitor_t0, 0x90, ECbmModuleId::kHodo);  //gDPB Bmon
 
   source->SetSubscriberHwm(1000);
 
@@ -90,7 +90,7 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   // --- Start run
   TStopwatch timer;
   timer.Start();
-  std::cout << ">>> MonitorT0: Starting run..." << std::endl;
+  std::cout << ">>> MonitorBmon: Starting run..." << std::endl;
   if (0 == nrEvents) {
     run->Run(nEvents, 0);  // run until end of input file
   }
@@ -107,8 +107,8 @@ void MonitorT0(TString inFile = "", TString sHostname = "localhost", Int_t iServ
   Double_t rtime = timer.RealTime();
   Double_t ctime = timer.CpuTime();
   std::cout << std::endl << std::endl;
-  std::cout << ">>> MonitorT0: Macro finished successfully." << std::endl;
-  std::cout << ">>> MonitorT0: Real time " << rtime << " s, CPU time " << ctime << " s" << std::endl;
+  std::cout << ">>> MonitorBmon: Macro finished successfully." << std::endl;
+  std::cout << ">>> MonitorBmon: Real time " << rtime << " s, CPU time " << ctime << " s" << std::endl;
   std::cout << std::endl;
 
   /// --- Screen output for automatic tests
diff --git a/macro/beamtime/mcbm2020/MonitorPsd.C b/macro/beamtime/mcbm2020/MonitorPsd.C
index b9c4f2305d8361c4cd9e9e2829225ad04df9fa6f..80369c62f2c9ab554f1f6958f122d5650cbecc08 100644
--- a/macro/beamtime/mcbm2020/MonitorPsd.C
+++ b/macro/beamtime/mcbm2020/MonitorPsd.C
@@ -5,7 +5,7 @@
 /** @file MCBM PSD DATA monitoring
  ** @author Nikolay Karpushkin <karpushkin@inr.ru>
  ** @date 09.10.2019
- ** Based on MonitorT0 by P.-A. Loizeau
+ ** Based on MonitorBmon by P.-A. Loizeau
  ** ROOT macro to read tsa files which have been produced with the new data transport
  ** Convert data into cbmroot format.
  ** Uses CbmMcbm2018Source as source task.
@@ -76,7 +76,7 @@ void MonitorPsd(TString inFile = "", TString sHostname = "localhost", Int_t iSer
   }  // else of if( "" != inFile )
 
 
-  source->AddUnpacker(monitor_psd, 0x80, ECbmModuleId::kPsd);  //gDPB T0
+  source->AddUnpacker(monitor_psd, 0x80, ECbmModuleId::kPsd);  //gDPB Bmon
 
   source->SetSubscriberHwm(1000);
 
diff --git a/macro/beamtime/mcbm2020/MonitorRich.C b/macro/beamtime/mcbm2020/MonitorRich.C
index 623f383de8e1fc731674637ca2ff9146fec39955..326c05f7ec6084ac57191dfce2027daab00544cd 100644
--- a/macro/beamtime/mcbm2020/MonitorRich.C
+++ b/macro/beamtime/mcbm2020/MonitorRich.C
@@ -3,7 +3,7 @@
    Authors: Pierre-Alain Loizeau [committer] */
 
 /** @file MCBM RICH DATA monitoring
- ** Based on MonitorT0 by P.-A. Loizeau
+ ** Based on MonitorBmon by P.-A. Loizeau
  ** ROOT macro to read tsa files which have been produced with the new data transport
  ** Convert data into cbmroot format.
  ** Uses CbmMcbm2018Source as source task.
diff --git a/macro/beamtime/mcbm2020/MonitorTof.C b/macro/beamtime/mcbm2020/MonitorTof.C
index cc5d62a0a65453902afb21c1e901b07b326442ed..fa15786699412e89b0da29260d1dff8cb5f67e1f 100644
--- a/macro/beamtime/mcbm2020/MonitorTof.C
+++ b/macro/beamtime/mcbm2020/MonitorTof.C
@@ -69,7 +69,7 @@ void MonitorTof(TString inFile = "", TString sHostname = "localhost", Int_t iSer
   }  // else of if( "" != inFile )
   source->SetSubscriberHwm(10);
   source->AddUnpacker(monitor_tof, 0x60, ECbmModuleId::kTof);  //gDPBs
-  source->AddUnpacker(monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs T0
+  source->AddUnpacker(monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs Bmon
 
   // --- Run
   run = new FairRunOnline(source);
diff --git a/macro/beamtime/mcbm2020/MonitorTofPulser.C b/macro/beamtime/mcbm2020/MonitorTofPulser.C
index b2729ba783c0f3f532b00eb14aac07b418c6d9aa..2d47ec36445c93b3041e55107a4c962bb0e6826c 100644
--- a/macro/beamtime/mcbm2020/MonitorTofPulser.C
+++ b/macro/beamtime/mcbm2020/MonitorTofPulser.C
@@ -66,7 +66,7 @@ void MonitorTofPulser(TString inFile = "", TString sHostname = "etofin001", Int_
   }  // else of if( "" != inFile )
   source->SetSubscriberHwm(10);
   source->AddUnpacker(monitor_tof, 0x60, ECbmModuleId::kTof);  //gDPBs
-  source->AddUnpacker(monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs T0
+  source->AddUnpacker(monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs Bmon
 
   // --- Run
   run = new FairRunOnline(source);
diff --git a/macro/beamtime/mcbm2020/ana_digi_cal.C b/macro/beamtime/mcbm2020/ana_digi_cal.C
index 2353d8d8a1a519d110e7d4ed96cb5422574efe80..4c1d4d67ee3ac1ed7f0a0e7b3076da155e45e9ec 100644
--- a/macro/beamtime/mcbm2020/ana_digi_cal.C
+++ b/macro/beamtime/mcbm2020/ana_digi_cal.C
@@ -103,7 +103,7 @@ void ana_digi_cal(Int_t nEvents = 10000000, Int_t calMode = 53, Int_t calSel = 0
   // tofClust->SetCorMode(iBugCor);         // correct missing hits
   //tofClust->SetIdMode(0);  // calibrate on counter level
   tofClust->SetIdMode(1);  // calibrate on module level
-  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for T0M3,Rpc0,Strip 23
+  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for BmonM3,Rpc0,Strip 23
   //tofClust->SetDeadStrips(25,16);   // declare non-existant diamond strip (#5) dead
 
   Int_t calSelRead = calSel;
diff --git a/macro/beamtime/mcbm2020/ana_digi_cal_all.C b/macro/beamtime/mcbm2020/ana_digi_cal_all.C
index 1623dd5892b403dcb3f456e17570c1109372c49d..0b4e23f52229ef6bac3c769db1fdf1d087ca2c00 100644
--- a/macro/beamtime/mcbm2020/ana_digi_cal_all.C
+++ b/macro/beamtime/mcbm2020/ana_digi_cal_all.C
@@ -104,7 +104,7 @@ void ana_digi_cal_all(Int_t nEvents = 10000000, Int_t calMode = 53, Int_t calSel
   // tofClust->SetCorMode(iBugCor);         // correct missing hits
   //tofClust->SetIdMode(0);                  // calibrate on counter level
   tofClust->SetIdMode(1);  // calibrate on module level
-  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for T0M3,Rpc0,Strip 23
+  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for BmonM3,Rpc0,Strip 23
   //tofClust->SetDeadStrips(25,16);   // declare non-existant diamond strip (#5) dead
 
   Int_t calSelRead = calSel;
diff --git a/macro/beamtime/mcbm2020/ana_digi_cali.C b/macro/beamtime/mcbm2020/ana_digi_cali.C
index f57e7f3fb9aff28fd5defc8735a81efe7993a852..68b06e0a1951904fa9225c8a8fab268e5bacf4f0 100644
--- a/macro/beamtime/mcbm2020/ana_digi_cali.C
+++ b/macro/beamtime/mcbm2020/ana_digi_cali.C
@@ -98,7 +98,7 @@ void ana_digi_cali(Int_t nEvents = 10000000, Int_t calMode = 53, Int_t calSel =
   // tofClust->SetCorMode(iBugCor);         // correct missing hits
   //tofClust->SetIdMode(0);  // calibrate on counter level
   tofClust->SetIdMode(1);  // calibrate on module level
-  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for T0M3,Rpc0,Strip 23
+  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for BmonM3,Rpc0,Strip 23
   //tofClust->SetDeadStrips(25,16);   // declare non-existant diamond strip (#5) dead
 
   Int_t calSelRead = calSel;
diff --git a/macro/beamtime/mcbm2020/build_event_win.C b/macro/beamtime/mcbm2020/build_event_win.C
index 8aecd079359ef78d47b89434bc7957771e3b6d91..f5de65771b6bb6ab5c65b6929196a6574308dee9 100644
--- a/macro/beamtime/mcbm2020/build_event_win.C
+++ b/macro/beamtime/mcbm2020/build_event_win.C
@@ -96,27 +96,27 @@ Bool_t build_event_win(UInt_t uRunId        = 0,
  * kEventBuilderDetTof
  * kEventBuilderDetRich
  * kEventBuilderDetPsd
- * kEventBuilderDetT0
+ * kEventBuilderDetBmon
  */
 
-  /// Change the selection window limits for T0 as ref
+  /// Change the selection window limits for Bmon as ref
   eventBuilder->SetTriggerWindow(ECbmModuleId::kSts, -50, 100);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kMuch, -150, 50);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kTrd, -50, 250);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kTof, -50, 50);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kRich, -50, 50);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kPsd, -50, 50);
-  /// To get T0 Digis (seed + close digis) in the event
+  /// To get Bmon Digis (seed + close digis) in the event
   eventBuilder->SetTriggerWindow(ECbmModuleId::kBmon, -1, 10);
 
   /*
   /// Use TOF as reference
   eventBuilder->SetReferenceDetector( kEventBuilderDetTof );
-  eventBuilder->AddDetector(kEventBuilderDetT0);
+  eventBuilder->AddDetector(kEventBuilderDetBmon);
 
   /// Change the selection window limits for TOF as ref
   /// => Should always be after changes of detector lists!
-  eventBuilder->SetTriggerWindow(ECbmModuleId::kT0, -150, 0);
+  eventBuilder->SetTriggerWindow(ECbmModuleId::kBmon, -150, 0);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kSts, -50, 100);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kMuch, -50, 200);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kTrd, -50, 300);
diff --git a/macro/beamtime/mcbm2020/build_events.C b/macro/beamtime/mcbm2020/build_events.C
index c8b71e170725d69a879ccd3c3063c73f17df510b..829bbae24a8fc9a38b3a433718d93d5fc2826033 100644
--- a/macro/beamtime/mcbm2020/build_events.C
+++ b/macro/beamtime/mcbm2020/build_events.C
@@ -1,6 +1,6 @@
-/* Copyright (C) 2020 Facility for Antiproton and Ion Research in Europe, Darmstadt
+/* Copyright (C) 2020-2023 Facility for Antiproton and Ion Research in Europe, Darmstadt
    SPDX-License-Identifier: GPL-3.0-only
-   Authors: Pierre-Alain Loizeau [orginator] */
+   Authors: Pierre-Alain Loizeau [committer] */
 
 void build_events(TString fileName, UInt_t uRunId = 0, Int_t nEvents = 0, TString outDir = "data/")
 {
@@ -49,7 +49,7 @@ void build_events(TString fileName, UInt_t uRunId = 0, Int_t nEvents = 0, TStrin
   //  eventBuilder->SetMaximumTimeGap(100.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(50.);
-  eventBuilder->SetTriggerMinNumberT0(1);
+  eventBuilder->SetTriggerMinNumberBmon(1);
   eventBuilder->SetTriggerMinNumberSts(0);
   eventBuilder->SetTriggerMinNumberMuch(0);
   eventBuilder->SetTriggerMinNumberTof(1);
diff --git a/macro/beamtime/mcbm2020/check_pulser.C b/macro/beamtime/mcbm2020/check_pulser.C
index 8c141ef0b5ed7863b5d8cfac36ec7378365eab98..08011780d29e51455af9ad5c1a611a58a2f8d293 100644
--- a/macro/beamtime/mcbm2020/check_pulser.C
+++ b/macro/beamtime/mcbm2020/check_pulser.C
@@ -42,7 +42,7 @@ void check_pulser(UInt_t uRunId = 0, Int_t nrEvents = 0, TString sDir = "data")
   // ------------------------------------------------------------------------
 
   CbmMcbm2019CheckPulser* pulserChecker = new CbmMcbm2019CheckPulser();
-  pulserChecker->SetT0PulserTotLimits(184, 191);
+  pulserChecker->SetBmonPulserTotLimits(184, 191);
   pulserChecker->SetStsPulserAdcLimits(31, 0);
   pulserChecker->SetMuchPulserAdcLimits(5, 10);
   pulserChecker->SetTofPulserTotLimits(184, 191);
diff --git a/macro/beamtime/mcbm2020/check_timing.C b/macro/beamtime/mcbm2020/check_timing.C
index bd1d8ae989117e1a24f9183a71a60d268bbcbfbf..3b2c9ee0835de5fed3f5a9221fa0fffbc78502b6 100644
--- a/macro/beamtime/mcbm2020/check_timing.C
+++ b/macro/beamtime/mcbm2020/check_timing.C
@@ -41,7 +41,7 @@ void check_timing(TString fileName, UInt_t uRunId = 0, Int_t nEvents = 0, TStrin
   timeChecker->SetTofOffsetSearchRange(2000);
   timeChecker->SetRichOffsetSearchRange(1000);
   timeChecker->SetPsdOffsetSearchRange(10000);
-  timeChecker->SetT0PulserTotLimits(185, 191);
+  timeChecker->SetBmonPulserTotLimits(185, 191);
   timeChecker->SetNrTsForFit(-1);  //Positive values: iterative peak fitting
   if (0 < uRunId) timeChecker->SetOutFilename(Form("%sHistosTimeCheck_%03u.root", outDir.Data(), uRunId));
   fRun->AddTask(timeChecker);
diff --git a/macro/beamtime/mcbm2020/check_timing_any.C b/macro/beamtime/mcbm2020/check_timing_any.C
index cc8b86e337670cf431d14846c8e51e4c4fda1165..06e53874df2e428a84e0e73ad71036dc65ea6cb1 100644
--- a/macro/beamtime/mcbm2020/check_timing_any.C
+++ b/macro/beamtime/mcbm2020/check_timing_any.C
@@ -34,16 +34,16 @@ void check_timing_any(TString fileName, UInt_t uRunId = 0, Int_t nEvents = 0, TS
   // ------------------------------------------------------------------------
 
   CbmMcbmCheckTimingTask* timeChecker = new CbmMcbmCheckTimingTask();
-  /// Default is using T0 as reference
+  /// Default is using Bmon as reference
   /// With Pulser rejection
   /*
-  timeChecker->SetReferenceDetector( ECbmModuleId::kT0, "T0",
+  timeChecker->SetReferenceDetector( ECbmModuleId::kBmon, "Bmon",
                                      -1000., 1000., 320.,
                                      182, 190 );
 */
   /// With pulser selection
   /*
-  timeChecker->SetReferenceDetector( ECbmModuleId::kT0, "T0",
+  timeChecker->SetReferenceDetector( ECbmModuleId::kBmon, "Bmon",
                                      -1000., 1000., 320.,
                                      190, 182 );
 */
@@ -51,13 +51,13 @@ void check_timing_any(TString fileName, UInt_t uRunId = 0, Int_t nEvents = 0, TS
 
   timeChecker->SetReferenceDetector(ECbmModuleId::kTof, "Tof");
   timeChecker->RemoveCheckDetector(ECbmModuleId::kTof);
-  timeChecker->AddCheckDetector(ECbmModuleId::kBmon, "T0");
+  timeChecker->AddCheckDetector(ECbmModuleId::kBmon, "Bmon");
 
   /// Here swapping with MUCH
   /*
   timeChecker->SetReferenceDetector(ECbmModuleId::kMuch, "Much");
   timeChecker->RemoveCheckDetector(ECbmModuleId::kMuch);
-  timeChecker->AddCheckDetector(ECbmModuleId::kT0, "T0");
+  timeChecker->AddCheckDetector(ECbmModuleId::kBmon, "Bmon");
 */
 
   if (0 < uRunId) timeChecker->SetOutFilename(Form("%s/HistosTimeCheck_%03u.root", outDir.Data(), uRunId));
diff --git a/macro/beamtime/mcbm2020/find_spills.C b/macro/beamtime/mcbm2020/find_spills.C
index a945c062783305ab01033580bc237ccf2ed11b37..b3389ac2115bb16d7707ec70820d88bdea1b5b5d 100644
--- a/macro/beamtime/mcbm2020/find_spills.C
+++ b/macro/beamtime/mcbm2020/find_spills.C
@@ -2,10 +2,10 @@
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Pierre-Alain Loizeau [committer] */
 
-/** @file MCBM spill detection with T0
+/** @file MCBM spill detection with Bmon
  ** @author Pierre-Alain Loizeau <p.-a.loizeau@gsi.de>
  ** @date 16.02.2021
- ** ROOT macro to read tsa files which have been produced in mCBM and use the T0 detector to
+ ** ROOT macro to read tsa files which have been produced in mCBM and use the Bmon detector to
  ** find the spill breaks beginning, middle and end TS index
  */
 // In order to call later Finish, we make this global
@@ -33,7 +33,7 @@ Bool_t find_spills(TString inFile = "", UInt_t uRunId = 0, TString sOutDir = "da
   TList* parFileList = new TList();
   TString paramDir   = srcDir + "/macro/beamtime/mcbm2020/";
 
-  TString paramFileTof       = paramDir + "mT0Par.par";
+  TString paramFileTof       = paramDir + "mBmonPar.par";
   TObjString* parTofFileName = new TObjString(paramFileTof);
   parFileList->Add(parTofFileName);
 
@@ -62,8 +62,8 @@ Bool_t find_spills(TString inFile = "", UInt_t uRunId = 0, TString sOutDir = "da
     source->SetHostName(sHostname);
   }  // else of if( "" != inFile )
 
-  // Use kHodo since there is no entry for T0 in the enum yet
-  source->AddUnpacker(spill_finder_t0, 0x90, ECbmModuleId::kHodo);  //gDPB T0
+  // Use kHodo since there is no entry for Bmon in the enum yet
+  source->AddUnpacker(spill_finder_t0, 0x90, ECbmModuleId::kHodo);  //gDPB Bmon
 
   source->SetSubscriberHwm(1000);
 
diff --git a/macro/beamtime/mcbm2020/find_spills_kronos.C b/macro/beamtime/mcbm2020/find_spills_kronos.C
index 778ced4d89d40a4f70fd25fba5860c3a3a01b924..ede0983fa56a0d8fc763c6244eeef5d7a58630f0 100644
--- a/macro/beamtime/mcbm2020/find_spills_kronos.C
+++ b/macro/beamtime/mcbm2020/find_spills_kronos.C
@@ -2,10 +2,10 @@
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Pierre-Alain Loizeau [committer] */
 
-/** @file MCBM spill detection with T0, wrapper for lustre runs
+/** @file MCBM spill detection with Bmon, wrapper for lustre runs
  ** @author Pierre-Alain Loizeau <p.-a.loizeau@gsi.de>
  ** @date 16.02.2021
- ** ROOT macro to read tsa files which have been produced in mCBM and use the T0 detector to
+ ** ROOT macro to read tsa files which have been produced in mCBM and use the Bmon detector to
  ** find the spill breaks beginning, middle and end TS index
  ** This wrapper macro provides all lustre paths + easy [0; n] run index mapping
  */
diff --git a/macro/beamtime/mcbm2020/mT0Par.par b/macro/beamtime/mcbm2020/mBmonPar.par
similarity index 100%
rename from macro/beamtime/mcbm2020/mT0Par.par
rename to macro/beamtime/mcbm2020/mBmonPar.par
diff --git a/macro/beamtime/mcbm2020/mcbm_build_and_reco.C b/macro/beamtime/mcbm2020/mcbm_build_and_reco.C
index ceca3409cd0e6cb0dd0231116c27820c41ac6509..27a6ebb9de437afe217c7e6026cf132a094c769c 100644
--- a/macro/beamtime/mcbm2020/mcbm_build_and_reco.C
+++ b/macro/beamtime/mcbm2020/mcbm_build_and_reco.C
@@ -132,30 +132,30 @@ Bool_t mcbm_build_and_reco(UInt_t uRunId        = 831,
  * kEventBuilderDetTof
  * kEventBuilderDetRich
  * kEventBuilderDetPsd
- * kEventBuilderDetT0
+ * kEventBuilderDetBmon
  */
-  /// Use T0 as reference
-  /// The default (hardcoded) settings are T0 as reference detector and
+  /// Use Bmon as reference
+  /// The default (hardcoded) settings are Bmon as reference detector and
   /// STS, MUCH, TRD, TOF, RICH and PSD as selected detectors
 
-  /// Change the selection window limits for T0 as ref
+  /// Change the selection window limits for Bmon as ref
   eventBuilder->SetTriggerWindow(ECbmModuleId::kSts, -50, 100);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kMuch, -150, 50);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kTrd, -50, 250);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kTof, -50, 50);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kRich, -50, 50);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kPsd, -50, 50);
-  /// To get T0 Digis (seed + close digis) in the event
+  /// To get Bmon Digis (seed + close digis) in the event
   eventBuilder->SetTriggerWindow(ECbmModuleId::kBmon, -1, 10);
 
   /*
   /// Use TOF as reference
   eventBuilder->SetReferenceDetector( kEventBuilderDetTof );
-  eventBuilder->AddDetector(kEventBuilderDetT0);
+  eventBuilder->AddDetector(kEventBuilderDetBmon);
 
   /// Change the selection window limits for TOF as ref
   /// => Should always be after changes of detector lists!
-  eventBuilder->SetTriggerWindow(ECbmModuleId::kT0, -150, 0);
+  eventBuilder->SetTriggerWindow(ECbmModuleId::kBmon, -150, 0);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kSts, -50, 100);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kMuch, -50, 200);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kTrd, -50, 300);
diff --git a/macro/beamtime/mcbm2020/mcbm_event_ana.C b/macro/beamtime/mcbm2020/mcbm_event_ana.C
index 442287da45f6b935f6d2d82228c487e335351a5b..5defa44d039bcc3cf939b58112c244f9c4431ddf 100644
--- a/macro/beamtime/mcbm2020/mcbm_event_ana.C
+++ b/macro/beamtime/mcbm2020/mcbm_event_ana.C
@@ -106,7 +106,7 @@ void mcbm_event_ana(UInt_t uRunId         = 831,
   //eventBuilder->SetMaximumTimeGap(50.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(200.);
-  eventBuilder->SetTriggerMinNumberT0(1);
+  eventBuilder->SetTriggerMinNumberBmon(1);
   //eventBuilder->SetTriggerMinNumberSts(0);
   eventBuilder->SetTriggerMinNumberMuch(1);
   eventBuilder->SetTriggerMinNumberTof(10);
diff --git a/macro/beamtime/mcbm2020/mcbm_event_reco.C b/macro/beamtime/mcbm2020/mcbm_event_reco.C
index 57331286060f44187cf6faefb7d1db835cd1225c..484c01cad0e67040504b4c7a291b4745558f01e9 100644
--- a/macro/beamtime/mcbm2020/mcbm_event_reco.C
+++ b/macro/beamtime/mcbm2020/mcbm_event_reco.C
@@ -114,7 +114,7 @@ Bool_t mcbm_event_reco(UInt_t uRunId        = 831,
   //eventBuilder->SetMaximumTimeGap(50.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(200.);
-  eventBuilder->SetTriggerMinNumberT0(1);
+  eventBuilder->SetTriggerMinNumberBmon(1);
   //eventBuilder->SetTriggerMinNumberSts(0);
   eventBuilder->SetTriggerMinNumberMuch(1);
   // eventBuilder->SetTriggerMinNumberTrd(1);
diff --git a/macro/beamtime/mcbm2020/mcbm_event_reco_ana.C b/macro/beamtime/mcbm2020/mcbm_event_reco_ana.C
index e242f794d6bf7a39ed7b1cd852d48e79bc3350a4..5a8ee43679e9ea6e421358b6bfbd3c8fe99d3167 100644
--- a/macro/beamtime/mcbm2020/mcbm_event_reco_ana.C
+++ b/macro/beamtime/mcbm2020/mcbm_event_reco_ana.C
@@ -72,7 +72,7 @@ void mcbm_event_reco_ana(Int_t runId = 831, Int_t nTimeslices = 1000)
   //eventBuilder->SetMaximumTimeGap(50.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(200.);
-  eventBuilder->SetTriggerMinNumberT0(1);
+  eventBuilder->SetTriggerMinNumberBmon(1);
   //eventBuilder->SetTriggerMinNumberSts(0);
   eventBuilder->SetTriggerMinNumberMuch(1);
   eventBuilder->SetTriggerMinNumberTof(10);
diff --git a/macro/beamtime/mcbm2020/mrich_reco.C b/macro/beamtime/mcbm2020/mrich_reco.C
index 7ffa8c2ec9826bf13bdf3081f3da7e33a0554b40..9463986ac00acfadb70aee6a8b0b74fed962be6a 100644
--- a/macro/beamtime/mcbm2020/mrich_reco.C
+++ b/macro/beamtime/mcbm2020/mrich_reco.C
@@ -12,7 +12,7 @@ void mrich_reco(const string srcfolder = "/lustre/cbm/users/adrian/mcbmbeamtime/
   const string& recoFile = Form("reco_mcbm_mar20_%d.root", runId);
 
   const Double_t eb_fixedTimeWindow {200.};
-  const Int_t eb_TriggerMinNumberT0 {1};
+  const Int_t eb_TriggerMinNumberBmon {1};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {10};
@@ -64,7 +64,7 @@ void mrich_reco(const string srcfolder = "/lustre/cbm/users/adrian/mcbmbeamtime/
   //  eventBuilder->SetMaximumTimeGap(100.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(eb_fixedTimeWindow);
-  eventBuilder->SetTriggerMinNumberT0(eb_TriggerMinNumberT0);
+  eventBuilder->SetTriggerMinNumberBmon(eb_TriggerMinNumberBmon);
   eventBuilder->SetTriggerMinNumberSts(eb_TriggerMinNumberSts);
   eventBuilder->SetTriggerMinNumberMuch(eb_TriggerMinNumberMuch);
   eventBuilder->SetTriggerMinNumberTof(eb_TriggerMinNumberTof);
@@ -149,7 +149,7 @@ void mrich_reco(const string srcfolder = "/lustre/cbm/users/adrian/mcbmbeamtime/
   outfile << "Geometry: " << geoFile << std::endl;
   outfile << "Trigger:" << std::endl;
   outfile << "  fixedTimeWindow :" << eb_fixedTimeWindow << std::endl;
-  outfile << "  MinNumberT0   :" << eb_TriggerMinNumberT0 << std::endl;
+  outfile << "  MinNumberBmon   :" << eb_TriggerMinNumberBmon << std::endl;
   outfile << "  MinNumberSts  :" << eb_TriggerMinNumberSts << std::endl;
   outfile << "  MinNumberMuch :" << eb_TriggerMinNumberMuch << std::endl;
   outfile << "  MinNumberTof  :" << eb_TriggerMinNumberTof << std::endl;
diff --git a/macro/beamtime/mcbm2020/mtof_build_and_reco.C b/macro/beamtime/mcbm2020/mtof_build_and_reco.C
index 0e69761644197e5dfeccee9ce3689033ef2faf74..69050f79bca173402520e530ddf0332831844d70 100644
--- a/macro/beamtime/mcbm2020/mtof_build_and_reco.C
+++ b/macro/beamtime/mcbm2020/mtof_build_and_reco.C
@@ -4,12 +4,12 @@
 
 void mtof_build_and_reco_kronos(Int_t nEvents = -1,  // number of Timeslices
                                 UInt_t uRunId = 831, TString setup = "mcbm_beam_2020_03", TString cCalId = "831.50.3.0",
-                                Int_t iCalSet      = 12022500,  // calibration settings
-                                TString outDir     = "data/",
-                                Double_t Tint      = 50.,  // coincidence time interval
-                                Double_t ReqTofMul = 10.,  // requested TOF digi multiplicity
-                                Int_t iTrackMode   = 2,    // 2 for TofTracker
-                                Double_t ReqT0Mul  = 1.)
+                                Int_t iCalSet       = 12022500,  // calibration settings
+                                TString outDir      = "data/",
+                                Double_t Tint       = 50.,  // coincidence time interval
+                                Double_t ReqTofMul  = 10.,  // requested TOF digi multiplicity
+                                Int_t iTrackMode    = 2,    // 2 for TofTracker
+                                Double_t ReqBmonMul = 1.)
 {
   // ========================================================================
   //          Adjust this part according to your requirements
@@ -136,27 +136,27 @@ void mtof_build_and_reco_kronos(Int_t nEvents = -1,  // number of Timeslices
  * kEventBuilderDetTof
  * kEventBuilderDetRich
  * kEventBuilderDetPsd
- * kEventBuilderDetT0
+ * kEventBuilderDetBmon
  */
 
-  /// Change the selection window limits for T0 as ref
+  /// Change the selection window limits for Bmon as ref
   eventBuilder->SetTriggerWindow(ECbmModuleId::kSts, -50, 100);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kMuch, -150, 50);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kTrd, -250, 100);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kTof, -Tint, Tint);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kRich, -50, 50);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kPsd, -50, 50);
-  /// To get T0 Digis (seed + close digis) in the event
+  /// To get Bmon Digis (seed + close digis) in the event
   eventBuilder->SetTriggerWindow(ECbmModuleId::kBmon, -1, 10);
 
   /*
   /// Use TOF as reference
   eventBuilder->SetReferenceDetector( kEventBuilderDetTof );
-  eventBuilder->AddDetector( kEventBuilderDetT0 );
+  eventBuilder->AddDetector( kEventBuilderDetBmon );
 
   /// Change the selection window limits for TOF as ref
   /// => Should always be after changes of detector lists!
-  eventBuilder->SetTriggerWindow(ECbmModuleId::kT0, -150, 0);
+  eventBuilder->SetTriggerWindow(ECbmModuleId::kBmon, -150, 0);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kSts, -50, 100);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kMuch, -50, 200);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kTrd, -50, 300);
@@ -168,7 +168,7 @@ void mtof_build_and_reco_kronos(Int_t nEvents = -1,  // number of Timeslices
   /// Change the trigger requirements
   /// => Should always be after changes of detector lists!
   /// --- Minimum
-  eventBuilder->SetTriggerMinNumber(ECbmModuleId::kBmon, ReqT0Mul);
+  eventBuilder->SetTriggerMinNumber(ECbmModuleId::kBmon, ReqBmonMul);
   eventBuilder->SetTriggerMinNumber(ECbmModuleId::kSts, 0);
   eventBuilder->SetTriggerMinNumber(ECbmModuleId::kMuch, 0);
   eventBuilder->SetTriggerMinNumber(ECbmModuleId::kTrd, 0);
diff --git a/macro/beamtime/mcbm2020/mtof_build_and_reco_kronos.C b/macro/beamtime/mcbm2020/mtof_build_and_reco_kronos.C
index defd43878f63f4c756b0648d1060fe00421b4575..61f9120fcf71352433510d26a4e638e430c82062 100644
--- a/macro/beamtime/mcbm2020/mtof_build_and_reco_kronos.C
+++ b/macro/beamtime/mcbm2020/mtof_build_and_reco_kronos.C
@@ -4,12 +4,12 @@
 
 void mtof_build_and_reco_kronos(Int_t nEvents = -1,  // number of Timeslices
                                 UInt_t uRunId = 831, TString setup = "mcbm_beam_2020_03", TString cCalId = "831.50.3.0",
-                                Int_t iCalSet      = 12022500,  // calibration settings
-                                TString outDir     = "data/",
-                                Double_t Tint      = 50.,  // coincidence time interval
-                                Double_t ReqTofMul = 10.,  // requested TOF digi multiplicity
-                                Int_t iTrackMode   = 2,    // 2 for TofTracker
-                                Double_t ReqT0Mul  = 1.)
+                                Int_t iCalSet       = 12022500,  // calibration settings
+                                TString outDir      = "data/",
+                                Double_t Tint       = 50.,  // coincidence time interval
+                                Double_t ReqTofMul  = 10.,  // requested TOF digi multiplicity
+                                Int_t iTrackMode    = 2,    // 2 for TofTracker
+                                Double_t ReqBmonMul = 1.)
 {
   // ========================================================================
   //          Adjust this part according to your requirements
@@ -136,27 +136,27 @@ void mtof_build_and_reco_kronos(Int_t nEvents = -1,  // number of Timeslices
  * kEventBuilderDetTof
  * kEventBuilderDetRich
  * kEventBuilderDetPsd
- * kEventBuilderDetT0
+ * kEventBuilderDetBmon
  */
 
-  /// Change the selection window limits for T0 as ref
+  /// Change the selection window limits for Bmon as ref
   eventBuilder->SetTriggerWindow(ECbmModuleId::kSts, -50, 100);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kMuch, -150, 50);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kTrd, -250, 100);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kTof, -Tint, Tint);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kRich, -50, 50);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kPsd, -50, 50);
-  /// To get T0 Digis (seed + close digis) in the event
+  /// To get Bmon Digis (seed + close digis) in the event
   eventBuilder->SetTriggerWindow(ECbmModuleId::kBmon, -1, 10);
 
   /*
   /// Use TOF as reference
   eventBuilder->SetReferenceDetector( kEventBuilderDetTof );
-  eventBuilder->AddDetector( kEventBuilderDetT0 );
+  eventBuilder->AddDetector( kEventBuilderDetBmon );
 
   /// Change the selection window limits for TOF as ref
   /// => Should always be after changes of detector lists!
-  eventBuilder->SetTriggerWindow(ECbmModuleId::kT0, -150, 0);
+  eventBuilder->SetTriggerWindow(ECbmModuleId::kBmon, -150, 0);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kSts, -50, 100);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kMuch, -50, 200);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kTrd, -50, 300);
@@ -168,7 +168,7 @@ void mtof_build_and_reco_kronos(Int_t nEvents = -1,  // number of Timeslices
   /// Change the trigger requirements
   /// => Should always be after changes of detector lists!
   /// --- Minimum
-  eventBuilder->SetTriggerMinNumber(ECbmModuleId::kBmon, ReqT0Mul);
+  eventBuilder->SetTriggerMinNumber(ECbmModuleId::kBmon, ReqBmonMul);
   eventBuilder->SetTriggerMinNumber(ECbmModuleId::kSts, 0);
   eventBuilder->SetTriggerMinNumber(ECbmModuleId::kMuch, 0);
   eventBuilder->SetTriggerMinNumber(ECbmModuleId::kTrd, 0);
diff --git a/macro/beamtime/mcbm2020/mtof_reco.C b/macro/beamtime/mcbm2020/mtof_reco.C
index b252118a20cc3e4878eea4296548c3796992533f..d675ea48ae6565c24bbd6ce4975634a1d17491a6 100644
--- a/macro/beamtime/mcbm2020/mtof_reco.C
+++ b/macro/beamtime/mcbm2020/mtof_reco.C
@@ -9,12 +9,12 @@
 
 void mtof_reco(Int_t nEvents   = -1,  // number of Timeslices
                TString dataset = "data/unp_mcbm_831", TString setup = "mcbm_beam_2020_03",
-               TString cCalId     = "831.50.3.0",
-               Int_t iCalSet      = 12022500,  // calibration settings
-               Double_t ReqTofMul = 5.,        // requested TOF digi multiplicity
-               Double_t Tint      = 100.,      // coincidence time interval
-               Int_t iTrackMode   = 2,         // 2 for TofTracker
-               Double_t ReqT0Mul  = 1.)
+               TString cCalId      = "831.50.3.0",
+               Int_t iCalSet       = 12022500,  // calibration settings
+               Double_t ReqTofMul  = 5.,        // requested TOF digi multiplicity
+               Double_t Tint       = 100.,      // coincidence time interval
+               Int_t iTrackMode    = 2,         // 2 for TofTracker
+               Double_t ReqBmonMul = 1.)
 {
   // ========================================================================
   //          Adjust this part according to your requirements
@@ -127,7 +127,7 @@ void mtof_reco(Int_t nEvents   = -1,  // number of Timeslices
   //  eventBuilder->SetMaximumTimeGap(100.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(Tint);
-  eventBuilder->SetTriggerMinNumberT0(ReqT0Mul);
+  eventBuilder->SetTriggerMinNumberBmon(ReqBmonMul);
   eventBuilder->SetTriggerMinNumberSts(0);
   eventBuilder->SetTriggerMinNumberMuch(0);
   eventBuilder->SetTriggerMinNumberTof(ReqTofMul);
diff --git a/macro/beamtime/mcbm2020/unpack_check_time_mcbm_kronos.C b/macro/beamtime/mcbm2020/unpack_check_time_mcbm_kronos.C
index 7e3fc9dcdee04828abdf6e4e63ac9970c9d018ee..88aa3508282c7e44ebef53678468bfa917aa503c 100644
--- a/macro/beamtime/mcbm2020/unpack_check_time_mcbm_kronos.C
+++ b/macro/beamtime/mcbm2020/unpack_check_time_mcbm_kronos.C
@@ -153,7 +153,7 @@ void unpack_check_time_mcbm_kronos(UInt_t uRunIdx = 99999, UInt_t nrEvents = 0,
   unpacker_sts->SetAdcCut(20);
   unpacker_much->SetAdcCut(20);
 
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   unpacker_sts->SetWriteOutputFlag(kFALSE);
   unpacker_much->SetWriteOutputFlag(kFALSE);
@@ -529,7 +529,7 @@ void unpack_check_time_mcbm_kronos(UInt_t uRunIdx = 99999, UInt_t nrEvents = 0,
   source->AddUnpacker(unpacker_much, 0x50, ECbmModuleId::kMuch);                  //MUCH xyter
   if (isActiveTrd) source->AddUnpacker(unpacker_trdR, 0x40, ECbmModuleId::kTrd);  // Trd
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);                    //gDPB A & B & C
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    //gDPB T0 A & B
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    //gDPB Bmon A & B
   source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);                  //RICH trb
   source->AddUnpacker(unpacker_psd, 0x80, ECbmModuleId::kPsd);                    //PSD
 
@@ -560,7 +560,7 @@ void unpack_check_time_mcbm_kronos(UInt_t uRunIdx = 99999, UInt_t nrEvents = 0,
   timeChecker->SetTofOffsetSearchRange(10000);
   timeChecker->SetRichOffsetSearchRange(10000);
   timeChecker->SetPsdOffsetSearchRange(10000);
-  timeChecker->SetT0PulserTotLimits(185, 191);
+  timeChecker->SetBmonPulserTotLimits(185, 191);
   if (0 < uRunId) timeChecker->SetOutFilename(Form("%s/HistosTimeCheck_%03u.root", outDir.Data(), uRunId));
   run->AddTask(timeChecker);
 
diff --git a/macro/beamtime/mcbm2020/unpack_check_timing_any_mcbm.C b/macro/beamtime/mcbm2020/unpack_check_timing_any_mcbm.C
index e2114809fff6547cb982e7025846e4c3758d7987..fb67803b00ef8b68082e12e1a19849944326991e 100644
--- a/macro/beamtime/mcbm2020/unpack_check_timing_any_mcbm.C
+++ b/macro/beamtime/mcbm2020/unpack_check_timing_any_mcbm.C
@@ -134,7 +134,7 @@ void unpack_check_timing_any_mcbm(TString inFile = "", UInt_t uRunId = 0, UInt_t
   //  unpacker_sts->SetAdcCut(20);
   //  unpacker_much->SetAdcCut(20);
 
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   unpacker_sts->SetWriteOutputFlag(kFALSE);
   unpacker_much->SetWriteOutputFlag(kFALSE);
@@ -499,7 +499,7 @@ void unpack_check_timing_any_mcbm(TString inFile = "", UInt_t uRunId = 0, UInt_t
   source->AddUnpacker(unpacker_much, 0x50, ECbmModuleId::kMuch);                  //MUCH xyter
   if (isActiveTrd) source->AddUnpacker(unpacker_trdR, 0x40, ECbmModuleId::kTrd);  // Trd
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);                    //gDPB A & B & C
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    //gDPB T0 A & B
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    //gDPB Bmon A & B
   source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);                  //RICH trb
   source->AddUnpacker(unpacker_psd, 0x80, ECbmModuleId::kPsd);                    //PSD
 
@@ -522,13 +522,13 @@ void unpack_check_timing_any_mcbm(TString inFile = "", UInt_t uRunId = 0, UInt_t
 
 
   CbmMcbmCheckTimingTask* timeChecker = new CbmMcbmCheckTimingTask();
-  /// Default is using T0 as reference
+  /// Default is using Bmon as reference
   /// With Pulser rejection
   timeChecker->SetReferenceDetector(ECbmModuleId::kBmon, "BMON", -1000., 1000., 320., 182, 190);
 
   /// With pulser selection
   /*
-  timeChecker->SetReferenceDetector( ECbmModuleId::kT0, "T0",
+  timeChecker->SetReferenceDetector( ECbmModuleId::kBmon, "Bmon",
                                      -1000., 1000., 320.,
                                      190, 182 );
 */
@@ -536,7 +536,7 @@ void unpack_check_timing_any_mcbm(TString inFile = "", UInt_t uRunId = 0, UInt_t
   /*
   timeChecker->SetReferenceDetector( ECbmModuleId::kMuch, "Much" );
   timeChecker->RemoveCheckDetector( ECbmModuleId::kMuch );
-  timeChecker->AddCheckDetector( ECbmModuleId::kT0, "T0" );
+  timeChecker->AddCheckDetector( ECbmModuleId::kBmon, "Bmon" );
 */
   if (0 < uRunId) timeChecker->SetOutFilename(Form("%s/HistosTimeCheck_%03u.root", outDir.Data(), uRunId));
   run->AddTask(timeChecker);
diff --git a/macro/beamtime/mcbm2020/unpack_pulser_mcbm.C b/macro/beamtime/mcbm2020/unpack_pulser_mcbm.C
index 3034561ab9d412924498fb18e6e53970f12d9faa..0d719f19b5e84b09924a88a7a2b02cbd88f3f472 100644
--- a/macro/beamtime/mcbm2020/unpack_pulser_mcbm.C
+++ b/macro/beamtime/mcbm2020/unpack_pulser_mcbm.C
@@ -174,7 +174,7 @@ Bool_t unpack_pulser_mcbm(TString inFile       = "",
   unpacker_sts->SetAdcCut(3);
   unpacker_sts->SeparatePulserOutput(kFALSE);
 
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   // ------------------------------ //
   // Enable Asic type for MUCH data.
@@ -607,7 +607,7 @@ Bool_t unpack_pulser_mcbm(TString inFile       = "",
   source->AddUnpacker(unpacker_much, 0x50, ECbmModuleId::kMuch);                  // MUCH xyter
   if (isActiveTrd) source->AddUnpacker(unpacker_trdR, 0x40, ECbmModuleId::kTrd);  // Trd
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);                    // gDPB TOF
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    // gDPB T0
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    // gDPB Bmon
   source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);                  // RICH trb
   source->AddUnpacker(unpacker_psd, 0x80, ECbmModuleId::kPsd);                    // PSD
 
@@ -647,7 +647,7 @@ Bool_t unpack_pulser_mcbm(TString inFile       = "",
   run->SetAutoFinish(kFALSE);
 
   CbmMcbm2019CheckPulser* pulserChecker = new CbmMcbm2019CheckPulser();
-  pulserChecker->SetT0PulserTotLimits(182, 191);
+  pulserChecker->SetBmonPulserTotLimits(182, 191);
   pulserChecker->SetStsPulserAdcLimits(0, 31);
   pulserChecker->SetMuchPulserAdcLimits(5, 25);  /// mCBM 2019
   pulserChecker->SetTrdPulserChargeLimits(0, 100000);
diff --git a/macro/beamtime/mcbm2020/unpack_pulser_mcbm_stsbinning.C b/macro/beamtime/mcbm2020/unpack_pulser_mcbm_stsbinning.C
index 983b0d9ee864185558b530546e6ed674cd08f6bd..a66ac381e6187683bfddfe8d77a83b7db9a0d05d 100644
--- a/macro/beamtime/mcbm2020/unpack_pulser_mcbm_stsbinning.C
+++ b/macro/beamtime/mcbm2020/unpack_pulser_mcbm_stsbinning.C
@@ -125,7 +125,7 @@ void unpack_pulser_mcbm_stsbinning(UInt_t uRunId = 0, TString sHostname = "local
 
   unpacker_sts->SetAdcCut(3);
   unpacker_sts->SeparatePulserOutput(kFALSE);
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   unpacker_sts->SetBinningFwFlag(kTRUE);
 
@@ -296,7 +296,7 @@ void unpack_pulser_mcbm_stsbinning(UInt_t uRunId = 0, TString sHostname = "local
   source->AddUnpacker(unpacker_much, 0x50, ECbmModuleId::kMuch);                  //MUCH xyter
   if (isActiveTrd) source->AddUnpacker(unpacker_trdR, 0x40, ECbmModuleId::kTrd);  // Trd
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);                    //gDPB A & B & C
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    //gDPB T0 A & B
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    //gDPB Bmon A & B
   source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);                  //RICH trb
   source->AddUnpacker(unpacker_psd, 0x80, ECbmModuleId::kPsd);                    //PSD
 
@@ -311,7 +311,7 @@ void unpack_pulser_mcbm_stsbinning(UInt_t uRunId = 0, TString sHostname = "local
   run->SetAutoFinish(kFALSE);
 
   CbmMcbm2019CheckPulser* pulserChecker = new CbmMcbm2019CheckPulser();
-  pulserChecker->SetT0PulserTotLimits(182, 191);
+  pulserChecker->SetBmonPulserTotLimits(182, 191);
   pulserChecker->SetStsPulserAdcLimits(0, 31);
   pulserChecker->SetMuchPulserAdcLimits(5, 25);  /// mCBM 2019
   pulserChecker->SetTrdPulserChargeLimits(0, 100000);
diff --git a/macro/beamtime/mcbm2020/unpack_tsa_mcbm.C b/macro/beamtime/mcbm2020/unpack_tsa_mcbm.C
index 1c1843096fd1f15c62432493a15dafcdbbb5bf81..27842a2b53a6880870bf7b6a32ccc12844445796 100644
--- a/macro/beamtime/mcbm2020/unpack_tsa_mcbm.C
+++ b/macro/beamtime/mcbm2020/unpack_tsa_mcbm.C
@@ -165,7 +165,7 @@ Bool_t unpack_tsa_mcbm(TString inFile       = "",
 
   unpacker_sts ->MaskNoisyChannel(3,770 ,  true );
 
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   // ------------------------------ //
   // Enable Asic type for MUCH data.
@@ -599,7 +599,7 @@ Bool_t unpack_tsa_mcbm(TString inFile       = "",
   source->AddUnpacker(unpacker_much, 0x50, ECbmModuleId::kMuch);                  // MUCH xyter
   if (isActiveTrd) source->AddUnpacker(unpacker_trdR, 0x40, ECbmModuleId::kTrd);  // Trd
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);                    // gDPB TOF
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    // gDPB T0
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    // gDPB Bmon
   source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);                  // RICH trb
   source->AddUnpacker(unpacker_psd, 0x80, ECbmModuleId::kPsd);                    // PSD
 
diff --git a/macro/beamtime/mcbm2020/unpack_tsa_mcbm_mfles.C b/macro/beamtime/mcbm2020/unpack_tsa_mcbm_mfles.C
index 455129b1b323c2384c7a7108223b4be74a423e79..576eed12222a4faf7d41edb944020ee21fce8000 100644
--- a/macro/beamtime/mcbm2020/unpack_tsa_mcbm_mfles.C
+++ b/macro/beamtime/mcbm2020/unpack_tsa_mcbm_mfles.C
@@ -140,7 +140,7 @@ void unpack_tsa_mcbm_mfles(UInt_t uRunId = 0, UInt_t nrEvents = 0, TString outDi
 
   unpacker_sts ->MaskNoisyChannel(3,770 ,  true );
 
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   // ------------------------------ //
   // Enable Asic type for MUCH data.
@@ -596,7 +596,7 @@ void unpack_tsa_mcbm_mfles(UInt_t uRunId = 0, UInt_t nrEvents = 0, TString outDi
   source->AddUnpacker(unpacker_much, 0x50, ECbmModuleId::kMuch);                  // MUCH xyter
   if (isActiveTrd) source->AddUnpacker(unpacker_trdR, 0x40, ECbmModuleId::kTrd);  // Trd
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);                    // gDPB TOF
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    // gDPB T0
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    // gDPB Bmon
   source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);                  // RICH trb
   source->AddUnpacker(unpacker_psd, 0x80, ECbmModuleId::kPsd);                    // PSD
 
diff --git a/macro/beamtime/mcbm2020/unpack_tsa_mcbm_stsbinning.C b/macro/beamtime/mcbm2020/unpack_tsa_mcbm_stsbinning.C
index 89661c4583c1e9fa0d7399c3554c1ab702bea456..6091faa40a197b8216d5a05ab6efa431dfe5785c 100644
--- a/macro/beamtime/mcbm2020/unpack_tsa_mcbm_stsbinning.C
+++ b/macro/beamtime/mcbm2020/unpack_tsa_mcbm_stsbinning.C
@@ -94,7 +94,7 @@ void unpack_tsa_mcbm_stsbinning(TString inFile = "", UInt_t uRunId = 0, UInt_t n
 
   unpacker_sts->SetBinningFwFlag(kTRUE);
 
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   // ------------------------------ //
   // Enable Asic type for MUCH data.
@@ -244,7 +244,7 @@ void unpack_tsa_mcbm_stsbinning(TString inFile = "", UInt_t uRunId = 0, UInt_t n
   source->AddUnpacker(unpacker_sts, 0x10, ECbmModuleId::kSts);    //STS xyter
   source->AddUnpacker(unpacker_much, 0x40, ECbmModuleId::kMuch);  //MUCH xyter
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);    //gDPB A & B & C
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);    //gDPB T0 A & B
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);    //gDPB Bmon A & B
   source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);  //RICH trb
   source->AddUnpacker(unpacker_psd, 0x80, ECbmModuleId::kPsd);    //PSD
 
diff --git a/macro/beamtime/mcbm2020/unpack_tsa_mcbm_stsmuchbinning.C b/macro/beamtime/mcbm2020/unpack_tsa_mcbm_stsmuchbinning.C
index 19ada4bdb71e38cf98206ab952aae8560919e9ec..e52d842d87f4fa0be02717085d855b00dd485632 100644
--- a/macro/beamtime/mcbm2020/unpack_tsa_mcbm_stsmuchbinning.C
+++ b/macro/beamtime/mcbm2020/unpack_tsa_mcbm_stsmuchbinning.C
@@ -117,7 +117,7 @@ void unpack_tsa_mcbm_stsmuchbinning(TString inFile = "", UInt_t uRunId = 0, UInt
   unpacker_sts->SetBinningFwFlag(kTRUE);
   unpacker_much->SetBinningFwFlag(kTRUE);
 
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   // ------------------------------ //
   // Enable Asic type for MUCH data.
@@ -268,7 +268,7 @@ void unpack_tsa_mcbm_stsmuchbinning(TString inFile = "", UInt_t uRunId = 0, UInt
   source->AddUnpacker(unpacker_much, 0x50, ECbmModuleId::kMuch);                  //MUCH xyter
   if (isActiveTrd) source->AddUnpacker(unpacker_trdR, 0x40, ECbmModuleId::kTrd);  // Trd
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);                    //gDPB A & B & C
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    //gDPB T0 A & B
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    //gDPB Bmon A & B
   source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);                  //RICH trb
   source->AddUnpacker(unpacker_psd, 0x80, ECbmModuleId::kPsd);                    //PSD
 
diff --git a/macro/beamtime/mcbm2020/unpack_tsa_mcbm_with_eb.C b/macro/beamtime/mcbm2020/unpack_tsa_mcbm_with_eb.C
index 2b2f906c0f1337d0b03238ab4e7d0f9f7d0b5397..57dd7b5ddd54ddb0b59946eaee058b89483e6604 100644
--- a/macro/beamtime/mcbm2020/unpack_tsa_mcbm_with_eb.C
+++ b/macro/beamtime/mcbm2020/unpack_tsa_mcbm_with_eb.C
@@ -165,7 +165,7 @@ Bool_t unpack_tsa_mcbm_with_eb(TString inFile       = "",
 
   unpacker_sts ->MaskNoisyChannel(3,770 ,  true );
 
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   // ------------------------------ //
   // Enable Asic type for MUCH data.
@@ -599,7 +599,7 @@ Bool_t unpack_tsa_mcbm_with_eb(TString inFile       = "",
   source->AddUnpacker(unpacker_much, 0x50, ECbmModuleId::kMuch);                  // MUCH xyter
   if (isActiveTrd) source->AddUnpacker(unpacker_trdR, 0x40, ECbmModuleId::kTrd);  // Trd
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);                    // gDPB TOF
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    // gDPB T0
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    // gDPB Bmon
   source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);                  // RICH trb
   source->AddUnpacker(unpacker_psd, 0x80, ECbmModuleId::kPsd);                    // PSD
 
@@ -652,27 +652,27 @@ Bool_t unpack_tsa_mcbm_with_eb(TString inFile       = "",
  * kEventBuilderDetTof
  * kEventBuilderDetRich
  * kEventBuilderDetPsd
- * kEventBuilderDetT0
+ * kEventBuilderDetBmon
  */
 
-  /// Change the selection window limits for T0 as ref
+  /// Change the selection window limits for Bmon as ref
   eventBuilder->SetTriggerWindow(ECbmModuleId::kSts, -50, 100);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kMuch, -150, 50);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kTrd, -50, 250);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kTof, -50, 50);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kRich, -50, 50);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kPsd, -50, 50);
-  /// To get T0 Digis (seed + close digis) in the event
+  /// To get Bmon Digis (seed + close digis) in the event
   eventBuilder->SetTriggerWindow(ECbmModuleId::kBmon, -1, 10);
 
   /*
   /// Use TOF as reference
   eventBuilder->SetReferenceDetector( kEventBuilderDetTof );
-  eventBuilder->AddDetector(kEventBuilderDetT0);
+  eventBuilder->AddDetector(kEventBuilderDetBmon);
 
   /// Change the selection window limits for TOF as ref
   /// => Should always be after changes of detector lists!
-  eventBuilder->SetTriggerWindow(ECbmModuleId::kT0, -150, 0);
+  eventBuilder->SetTriggerWindow(ECbmModuleId::kBmon, -150, 0);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kSts, -50, 100);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kMuch, -50, 200);
   eventBuilder->SetTriggerWindow(ECbmModuleId::kTrd, -50, 300);
diff --git a/macro/beamtime/mcbm2021/MonitorT0.C b/macro/beamtime/mcbm2021/MonitorBmon.C
similarity index 86%
rename from macro/beamtime/mcbm2021/MonitorT0.C
rename to macro/beamtime/mcbm2021/MonitorBmon.C
index f90e6016a801d1b4868451a35a52ffe26c1ab405..acb12511a7aa09a2ab9085fea26ca4d1e5ff8500 100644
--- a/macro/beamtime/mcbm2021/MonitorT0.C
+++ b/macro/beamtime/mcbm2021/MonitorBmon.C
@@ -16,7 +16,7 @@ FairRunOnline* run = NULL;
 
 /// FIXME: Disable clang formatting to keep easy parameters overview
 /* clang-format off */
-void MonitorT0(TString inFile           = "",
+void MonitorBmon(TString inFile           = "",
                TString sHostname        = "cbmflesnode8:5558;cbmflesnode9:5559",
                Int_t iServerHttpPort    = 8080,
                Int_t iServerRefreshRate = 100,
@@ -44,7 +44,7 @@ void MonitorT0(TString inFile           = "",
   TList* parFileList = new TList();
   TString paramDir   = srcDir + "/macro/beamtime/mcbm2021/";
 
-  TString paramFileTof       = paramDir + "mT0Par.par";
+  TString paramFileTof       = paramDir + "mBmonPar.par";
   TObjString* parTofFileName = new TObjString(paramFileTof);
   parFileList->Add(parTofFileName);
 
@@ -56,12 +56,12 @@ void MonitorT0(TString inFile           = "",
   // ========================================================================
   // ========================================================================
   std::cout << std::endl;
-  std::cout << ">>> MonitorT0: Initialising..." << std::endl;
-  CbmMcbm2018MonitorTaskT0* monitor_t0 = new CbmMcbm2018MonitorTaskT0();
+  std::cout << ">>> MonitorBmon: Initialising..." << std::endl;
+  CbmMcbm2018MonitorTaskBmon* monitor_t0 = new CbmMcbm2018MonitorTaskBmon();
 
   monitor_t0->SetIgnoreOverlapMs();
   monitor_t0->SetHistoryHistoSize(1800);
-  if (0 < uRunId) monitor_t0->SetHistoFilename(Form("data/HistosMonitorT0_%03u.root", uRunId));
+  if (0 < uRunId) monitor_t0->SetHistoFilename(Form("data/HistosMonitorBmon_%03u.root", uRunId));
   monitor_t0->SetPulserTotLimits(180, 210);  // for runs  >  86
 
   // --- Source task
@@ -72,8 +72,8 @@ void MonitorT0(TString inFile           = "",
     source->SetHostName(sHostname);
   }  // else of if( "" != inFile )
 
-  // Use kHodo since there is no entry for T0 in the enum yet
-  source->AddUnpacker(monitor_t0, 0x90, ECbmModuleId::kHodo);  //gDPB T0
+  // Use kHodo since there is no entry for Bmon in the enum yet
+  source->AddUnpacker(monitor_t0, 0x90, ECbmModuleId::kHodo);  //gDPB Bmon
 
   source->SetSubscriberHwm(1000);
 
@@ -98,7 +98,7 @@ void MonitorT0(TString inFile           = "",
   // --- Start run
   TStopwatch timer;
   timer.Start();
-  std::cout << ">>> MonitorT0: Starting run..." << std::endl;
+  std::cout << ">>> MonitorBmon: Starting run..." << std::endl;
   if (0 == nrEvents) {
     run->Run(nEvents, 0);  // run until end of input file
   }
@@ -115,8 +115,8 @@ void MonitorT0(TString inFile           = "",
   Double_t rtime = timer.RealTime();
   Double_t ctime = timer.CpuTime();
   std::cout << std::endl << std::endl;
-  std::cout << ">>> MonitorT0: Macro finished successfully." << std::endl;
-  std::cout << ">>> MonitorT0: Real time " << rtime << " s, CPU time " << ctime << " s" << std::endl;
+  std::cout << ">>> MonitorBmon: Macro finished successfully." << std::endl;
+  std::cout << ">>> MonitorBmon: Real time " << rtime << " s, CPU time " << ctime << " s" << std::endl;
   std::cout << std::endl;
 
   /// --- Screen output for automatic tests
diff --git a/macro/beamtime/mcbm2021/MonitorPsd.C b/macro/beamtime/mcbm2021/MonitorPsd.C
index bc5eac47510d609a471ac3fc0f88a0d4e54790b4..2404ae59dbd90f21439dadd4c4c9186097817697 100644
--- a/macro/beamtime/mcbm2021/MonitorPsd.C
+++ b/macro/beamtime/mcbm2021/MonitorPsd.C
@@ -5,7 +5,7 @@
 /** @file MCBM PSD DATA monitoring
  ** @author Nikolay Karpushkin <karpushkin@inr.ru>
  ** @date 09.10.2019
- ** Based on MonitorT0 by P.-A. Loizeau
+ ** Based on MonitorBmon by P.-A. Loizeau
  ** ROOT macro to read tsa files which have been produced with the new data transport
  ** Convert data into cbmroot format.
  ** Uses CbmMcbm2018Source as source task.
diff --git a/macro/beamtime/mcbm2021/MonitorRich.C b/macro/beamtime/mcbm2021/MonitorRich.C
index c2828c31662779cc89f2d084c463c7d97ad7dfc6..fb043cc6ef052bffa5594486c3c1fb49cd6c1ae8 100644
--- a/macro/beamtime/mcbm2021/MonitorRich.C
+++ b/macro/beamtime/mcbm2021/MonitorRich.C
@@ -3,7 +3,7 @@
    Authors: Pierre-Alain Loizeau [committer] */
 
 /** @file MCBM RICH DATA monitoring
- ** Based on MonitorT0 by P.-A. Loizeau
+ ** Based on MonitorBmon by P.-A. Loizeau
  ** ROOT macro to read tsa files which have been produced with the new data transport
  ** Convert data into cbmroot format.
  ** Uses CbmMcbm2018Source as source task.
diff --git a/macro/beamtime/mcbm2021/MonitorTof.C b/macro/beamtime/mcbm2021/MonitorTof.C
index 2746f8a494e88f086285d1d60776f0b9b4b843be..806583af8beefa234a6ac23e8d0bb169d5f78d34 100644
--- a/macro/beamtime/mcbm2021/MonitorTof.C
+++ b/macro/beamtime/mcbm2021/MonitorTof.C
@@ -82,7 +82,7 @@ void MonitorTof(TString inFile               = "",
   }  // else of if( "" != inFile )
   source->SetSubscriberHwm(10);
   source->AddUnpacker(monitor_tof, 0x60, ECbmModuleId::kTof);  //gDPBs
-  source->AddUnpacker(monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs T0
+  source->AddUnpacker(monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs Bmon
 
   // --- Run
   run = new FairRunOnline(source);
diff --git a/macro/beamtime/mcbm2021/check_timing_any.C b/macro/beamtime/mcbm2021/check_timing_any.C
index 3be7176b8e9cd49a4e467d87ac7a024fafa5941e..1148f290f22e6c87e4202952287eb4de98b70ee0 100644
--- a/macro/beamtime/mcbm2021/check_timing_any.C
+++ b/macro/beamtime/mcbm2021/check_timing_any.C
@@ -34,29 +34,29 @@ void check_timing_any(TString fileName, UInt_t uRunId = 0, Int_t nEvents = 0, TS
   // ------------------------------------------------------------------------
 
   CbmMcbmCheckTimingTask* timeChecker = new CbmMcbmCheckTimingTask();
-  /// Default is using T0 as reference
+  /// Default is using Bmon as reference
   /// With Pulser rejection
   /*
-  timeChecker->SetReferenceDetector( ECbmModuleId::kT0, "T0",
+  timeChecker->SetReferenceDetector( ECbmModuleId::kBmon, "Bmon",
                                      -1000., 1000., 320.,
                                      182, 190 );
 */
   /// With pulser selection
   /*
-  timeChecker->SetReferenceDetector( ECbmModuleId::kT0, "T0",
+  timeChecker->SetReferenceDetector( ECbmModuleId::kBmon, "Bmon",
                                      -1000., 1000., 320.,
                                      190, 182 );
 */
   /// Here swapping with TOF
   timeChecker->SetReferenceDetector(ECbmModuleId::kPsd, "Psd", -300000, 300000, 320 * 300);
   timeChecker->RemoveCheckDetector(ECbmModuleId::kPsd);
-  //timeChecker->AddCheckDetector(ECbmModuleId::kT0, "T0");
+  //timeChecker->AddCheckDetector(ECbmModuleId::kBmon, "Bmon");
 
   /// Here swapping with MUCH
   /*
   timeChecker->SetReferenceDetector(ECbmModuleId::kMuch, "Much");
   timeChecker->RemoveCheckDetector(ECbmModuleId::kMuch);
-  timeChecker->AddCheckDetector(ECbmModuleId::kT0, "T0");
+  timeChecker->AddCheckDetector(ECbmModuleId::kBmon, "Bmon");
   */
 
   /// Remove detectors not present in 2021
diff --git a/macro/beamtime/mcbm2021/ini_Clusterizer.C b/macro/beamtime/mcbm2021/ini_Clusterizer.C
index 33c93c44d1be7cbe14958846d7d97007bd0f59dd..4721f7be7aae35a10c9dfaacc7bd6bce805ec93e 100644
--- a/macro/beamtime/mcbm2021/ini_Clusterizer.C
+++ b/macro/beamtime/mcbm2021/ini_Clusterizer.C
@@ -32,7 +32,7 @@ void ini_Clusterizer(Int_t calMode = 53, Int_t calSel = 0, Int_t calSm = 900, In
   // tofClust->SetCorMode(iBugCor);         // correct missing hits
   //tofClust->SetIdMode(0);                  // calibrate on counter level
   tofClust->SetIdMode(1);  // calibrate on module level
-  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for T0M3,Rpc0,Strip 23
+  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for BmonM3,Rpc0,Strip 23
   //tofClust->SetDeadStrips(25,16);   // declare non-existant diamond strip (#5) dead
 
   Int_t calSelRead = calSel;
diff --git a/macro/beamtime/mcbm2021/mT0Par.par b/macro/beamtime/mcbm2021/mBmonPar.par
similarity index 100%
rename from macro/beamtime/mcbm2021/mT0Par.par
rename to macro/beamtime/mcbm2021/mBmonPar.par
diff --git a/macro/beamtime/mcbm2021/mcbm_event_reco.C b/macro/beamtime/mcbm2021/mcbm_event_reco.C
index a8933241005d68db9c9d6b2b3c3e9289df2ecc41..e9ed2873f96feaa17d0739fb9851981828facfb5 100644
--- a/macro/beamtime/mcbm2021/mcbm_event_reco.C
+++ b/macro/beamtime/mcbm2021/mcbm_event_reco.C
@@ -67,7 +67,7 @@ Bool_t mcbm_event_reco(UInt_t uRunId                   = 1588,
   // ---------------------------------------------
 
   // -----   EventBuilder Settings----------------
-  const Int_t eb_TriggerMinNumberT0 {0};
+  const Int_t eb_TriggerMinNumberBmon {0};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {2};
@@ -529,7 +529,7 @@ Bool_t mcbm_event_reco(UInt_t uRunId                   = 1588,
     tofFindTracks->UseFitter(tofTrackFitter);
     tofFindTracks->SetCalOpt(iCalOpt);           // 1 - update offsets, 2 - update walk, 0 - bypass
     tofFindTracks->SetCorMode(iGenCor);          // valid options: 0,1,2,3,4,5,6, 10 - 19
-    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after T0 fix (double stack run 1058)
+    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after Bmon fix (double stack run 1058)
     tofFindTracks->SetCalParFileName(cTrkFile);  // Tracker parameter value file name
     tofFindTracks->SetBeamCounter(5, 0, 0);      // default beam counter
     tofFindTracks->SetR0Lim(20.);
diff --git a/macro/beamtime/mcbm2021/mcbm_inspect_alignment.C b/macro/beamtime/mcbm2021/mcbm_inspect_alignment.C
index d05efabe7f354e98374bae1dd934a93323eb0891..85656808ebd18c282725abaa7cce6693410ec4d9 100644
--- a/macro/beamtime/mcbm2021/mcbm_inspect_alignment.C
+++ b/macro/beamtime/mcbm2021/mcbm_inspect_alignment.C
@@ -559,7 +559,7 @@ void mcbm_inspect_alignment(Int_t runId = 1588, Int_t nofEvents = 200)
 
         fHM->H1("fhTofHitsPerTrack")->Fill(tofTrack->GetNofHits());
         //std::cout<< tofTrack->GetT0() << "  " << tofTrack->GetTt() << "  " << tofTrack->GetT0()-tofTrack->GetTt() <<std::endl;
-        fHM->H1("fhTofTracksT0")->Fill(tofTrack->GetT0() - eventStartTime);
+        fHM->H1("fhTofTracksBmon")->Fill(tofTrack->GetT0() - eventStartTime);
         fHM->H1("fhTofTracksTt")->Fill(tofTrack->GetTt());             // invers velocity
         fHM->H1("fhTofTracksVelocity")->Fill(1. / tofTrack->GetTt());  // invers velocity
         fHM->H1("fhTofTracksTdiff")->Fill(tofTrack->GetTime() - eventStartTime);
@@ -607,14 +607,14 @@ void mcbm_inspect_alignment(Int_t runId = 1588, Int_t nofEvents = 200)
           CbmStsHit* closeStsHit = static_cast<CbmStsHit*>(fStsHit->At(closestStsIndx));
           fHM->H1("fhTofTrackStsR")->Fill(closestStsR);
 
-          // 1.) calculate length from T0 to Sts Hit
-          auto stsT0Length = std::sqrt(std::pow((closeStsHit->GetX() - tofTrack->GetTrackX()), 2)
-                                       + std::pow((closeStsHit->GetY() - tofTrack->GetTrackY()), 2)
-                                       + std::pow((closeStsHit->GetZ() - 0.0), 2));
-          fHM->H1("fhTofTracksLength")->Fill(stsT0Length);
+          // 1.) calculate length from Bmon to Sts Hit
+          auto stsBmonLength = std::sqrt(std::pow((closeStsHit->GetX() - tofTrack->GetTrackX()), 2)
+                                         + std::pow((closeStsHit->GetY() - tofTrack->GetTrackY()), 2)
+                                         + std::pow((closeStsHit->GetZ() - 0.0), 2));
+          fHM->H1("fhTofTracksLength")->Fill(stsBmonLength);
 
           // 2.) calculate time in Tof system with length and velocity
-          auto stsTrackTime = stsT0Length * tofTrack->GetTt();  // time (of flight) in ns
+          auto stsTrackTime = stsBmonLength * tofTrack->GetTt();  // time (of flight) in ns
           fHM->H1("fhStsTrackTime")->Fill(stsTrackTime);
 
           // 3.) compare to Sts hit Time
@@ -795,7 +795,7 @@ void initHists(CbmHistManager* fHM, Int_t nofEvents)
   fHM->Create1<TH1D>("fhTofTrackMulti", "fhTofTrackMulti;Tracks/Event;Entries", 20, -0.5, 19.5);
   fHM->Create1<TH1D>("fhTofHitsZ", "fhTofHitsZ;Z[cm];Entries", 100, 250, 300);
   fHM->Create1<TH1D>("fhTofHitsPerTrack", "fhTofHitsPerTrack;Hits/Track;Entries", 11, -0.5, 10.5);
-  fHM->Create1<TH1D>("fhTofTracksT0", "fhTofTracksT0;T0 time [ns];Entries", 100, -50, 50);
+  fHM->Create1<TH1D>("fhTofTracksBmon", "fhTofTracksBmon;Bmon time [ns];Entries", 100, -50, 50);
   fHM->Create1<TH1D>("fhTofTracksTime", "fhTofTracksTime;Track time [ns];Entries", 30000, -50, 3.0e8);
   fHM->Create1<TH1D>("fhTofTracksTt", "fhTofTracksTt;inv. velocity [ns/cm];Entries", 100, -50, 50);
   fHM->Create1<TH1D>("fhTofTracksVelocity", "fhTofTracksVelocity;velocity [cm/ns];Entries", 100, -50, 50);
diff --git a/macro/beamtime/mcbm2021/unpack_tsa_mcbm.C b/macro/beamtime/mcbm2021/unpack_tsa_mcbm.C
index 5d4105ea34145d1cdda61ab841a2d1f8d5607b53..d366cb7752f3b4c148d2fc486313a410641886c5 100644
--- a/macro/beamtime/mcbm2021/unpack_tsa_mcbm.C
+++ b/macro/beamtime/mcbm2021/unpack_tsa_mcbm.C
@@ -146,7 +146,7 @@ void unpack_tsa_mcbm(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEvents = 0
 
   unpacker_sts ->MaskNoisyChannel(3,770 ,  true );
 
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   // ------------------------------ //
   // Enable Asic type for MUCH data.
@@ -579,7 +579,7 @@ void unpack_tsa_mcbm(TString inFile = "", UInt_t uRunId = 0, UInt_t nrEvents = 0
   source->AddUnpacker(unpacker_much, 0x50, ECbmModuleId::kMuch);                  // MUCH xyter
   if (isActiveTrd) source->AddUnpacker(unpacker_trdR, 0x40, ECbmModuleId::kTrd);  // Trd
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);                    // gDPB TOF
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    // gDPB T0
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    // gDPB Bmon
   source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);                  // RICH trb
   source->AddUnpacker(unpacker_psd, 0x80, ECbmModuleId::kPsd);                    // PSD
 
diff --git a/macro/beamtime/mcbm2021/unpack_tsa_mcbm_kronos.C b/macro/beamtime/mcbm2021/unpack_tsa_mcbm_kronos.C
index 7323d7cacd60e700129385c52e26074642f35ab6..a540a4cc95343fa021f5c728de2ee238df6e80da 100644
--- a/macro/beamtime/mcbm2021/unpack_tsa_mcbm_kronos.C
+++ b/macro/beamtime/mcbm2021/unpack_tsa_mcbm_kronos.C
@@ -172,7 +172,7 @@ void unpack_tsa_mcbm_kronos(UInt_t uRunIdx = 99999, UInt_t nrEvents = 0, TString
 
   unpacker_sts ->MaskNoisyChannel(3,770 ,  true );
 
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   // ------------------------------ //
   // Enable Asic type for MUCH data.
@@ -607,7 +607,7 @@ void unpack_tsa_mcbm_kronos(UInt_t uRunIdx = 99999, UInt_t nrEvents = 0, TString
   source->AddUnpacker(unpacker_much, 0x50, ECbmModuleId::kMuch);                  // MUCH xyter
   if (isActiveTrd) source->AddUnpacker(unpacker_trdR, 0x40, ECbmModuleId::kTrd);  // Trd
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);                    // gDPB TOF
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    // gDPB T0
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);                    // gDPB Bmon
   source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);                  // RICH trb
   source->AddUnpacker(unpacker_psd, 0x80, ECbmModuleId::kPsd);                    // PSD
 
diff --git a/macro/beamtime/mcbm2022/CheckTimingSis18.C b/macro/beamtime/mcbm2022/CheckTimingSis18.C
index c922fd18c19bf9cafd8527c1d6305902bc8f342c..e86304f338b3913c535d4cd927cd4e48e44ae283 100644
--- a/macro/beamtime/mcbm2022/CheckTimingSis18.C
+++ b/macro/beamtime/mcbm2022/CheckTimingSis18.C
@@ -281,7 +281,7 @@ void CheckTimingSis18(std::string sDigiFileName, std::string sEventFileName = ""
   std::vector<CbmRichDigi>* pVectRich = nullptr;
   TClonesArray* pArrayEvents          = new TClonesArray("CbmEvent", 100);
 
-  pTree->SetBranchAddress("T0Digi", &pVectBmon);
+  pTree->SetBranchAddress(CbmBmonDigi::GetBranchName(), &pVectBmon);
   pTree->SetBranchAddress("StsDigi", &pVectSts);
   pTree->SetBranchAddress("MuchDigi", &pVectMuch);
   pTree->SetBranchAddress("TrdDigi", &pVectTrd);
@@ -448,8 +448,8 @@ void CheckTimingSis18(std::string sDigiFileName, std::string sEventFileName = ""
       phCountsEvts->Fill(dEvtTimeInRun);
 
       /// Fill counts of selected Digis in each detector
-      if (-1 < pEvt->GetNofData(ECbmDataType::kT0Digi)) {
-        phCountsEvtBmon->Fill(dEvtTimeInRun, pEvt->GetNofData(ECbmDataType::kT0Digi));
+      if (-1 < pEvt->GetNofData(ECbmDataType::kBmonDigi)) {
+        phCountsEvtBmon->Fill(dEvtTimeInRun, pEvt->GetNofData(ECbmDataType::kBmonDigi));
       }
       if (-1 < pEvt->GetNofData(ECbmDataType::kStsDigi)) {
         phCountsEvtSts->Fill(dEvtTimeInRun, pEvt->GetNofData(ECbmDataType::kStsDigi));
diff --git a/macro/beamtime/mcbm2022/check_timing_any.C b/macro/beamtime/mcbm2022/check_timing_any.C
index 52a5cd32368964cf23ab32e66dd89c97be5de0b1..e75594950564ffb7a02a02699ad444c03f91524d 100644
--- a/macro/beamtime/mcbm2022/check_timing_any.C
+++ b/macro/beamtime/mcbm2022/check_timing_any.C
@@ -34,30 +34,30 @@ void check_timing_any(TString fileName, UInt_t uRunId = 0, Int_t nEvents = 0, TS
   // ------------------------------------------------------------------------
 
   CbmMcbmCheckTimingTask* timeChecker = new CbmMcbmCheckTimingTask();
-  /// Default is using T0 as reference
+  /// Default is using Bmon as reference
   /// With Pulser rejection
-  timeChecker->SetReferenceDetector(ECbmModuleId::kBmon, "T0", -1000., 1000., 320., 182, 190);
+  timeChecker->SetReferenceDetector(ECbmModuleId::kBmon, "Bmon", -1000., 1000., 320., 182, 190);
 
   /// With pulser selection
   /*
-  timeChecker->SetReferenceDetector( ECbmModuleId::kT0, "T0",
+  timeChecker->SetReferenceDetector( ECbmModuleId::kBmon, "Bmon",
                                      -1000., 1000., 320.,
                                      190, 182 );
 */
   /// Here swapping with TOF
   //   timeChecker->SetReferenceDetector(ECbmModuleId::kTof, "Tof", -3000, 3000, 3000);
   //   timeChecker->RemoveCheckDetector(ECbmModuleId::kTof);
-  //   timeChecker->AddCheckDetector(ECbmModuleId::kT0, "T0");
+  //   timeChecker->AddCheckDetector(ECbmModuleId::kBmon, "Bmon");
 
   /// Here swapping with MUCH
   /*
   timeChecker->SetReferenceDetector(ECbmModuleId::kMuch, "Much");
   timeChecker->RemoveCheckDetector(ECbmModuleId::kMuch);
-  timeChecker->AddCheckDetector(ECbmModuleId::kT0, "T0");
+  timeChecker->AddCheckDetector(ECbmModuleId::kBmon, "Bmon");
   */
 
   /// Remove detectors not present in 2021
-  //timeChecker->RemoveCheckDetector(ECbmModuleId::kT0);
+  //timeChecker->RemoveCheckDetector(ECbmModuleId::kBmon);
   timeChecker->RemoveCheckDetector(ECbmModuleId::kMuch);
   //timeChecker->SetReferenceDetector(ECbmModuleId::kPsd, "Psd", -300000, 300000, 320 * 300);
   timeChecker->RemoveCheckDetector(ECbmModuleId::kPsd);
diff --git a/macro/beamtime/mcbm2022/ini_tof_clusterizer.C b/macro/beamtime/mcbm2022/ini_tof_clusterizer.C
index 3a795c078817b9a819f81fb8a764fea72dc3fede..e485b0868b5888b7222bbecaafa50388518f0f0b 100644
--- a/macro/beamtime/mcbm2022/ini_tof_clusterizer.C
+++ b/macro/beamtime/mcbm2022/ini_tof_clusterizer.C
@@ -32,7 +32,7 @@ void ini_tof_clusterizer(Int_t calMode = 53, Int_t calSel = 0, Int_t calSm = 900
   // tofClust->SetCorMode(iBugCor);         // correct missing hits
   //tofClust->SetIdMode(0);                  // calibrate on counter level
   tofClust->SetIdMode(1);  // calibrate on module level
-  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for T0M3,Rpc0,Strip 23
+  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for BmonM3,Rpc0,Strip 23
   //tofClust->SetDeadStrips(25,16);   // declare non-existant diamond strip (#5) dead
 
   Int_t calSelRead = calSel;
diff --git a/macro/beamtime/mcbm2022/mcbm_digievent_reco.C b/macro/beamtime/mcbm2022/mcbm_digievent_reco.C
index c4651259ea16729156e4878366647198051c1cc2..30d68d4d542395bf568484565c6a346a6c6340a8 100644
--- a/macro/beamtime/mcbm2022/mcbm_digievent_reco.C
+++ b/macro/beamtime/mcbm2022/mcbm_digievent_reco.C
@@ -89,8 +89,8 @@ Bool_t mcbm_digievent_reco(UInt_t uRunId               = 2365,
   // ---------------------------------------------
 
   // -----   EventBuilder Settings----------------
-  const Int_t eb_TriggerMinNumberT0 {1};
-  const Int_t eb_TriggerMaxNumberT0 {2};
+  const Int_t eb_TriggerMinNumberBmon {1};
+  const Int_t eb_TriggerMaxNumberBmon {2};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {16};
diff --git a/macro/beamtime/mcbm2022/mcbm_event.C b/macro/beamtime/mcbm2022/mcbm_event.C
index 5ff69a43363e10a7946323db8aba05232d4efe5e..d5a94745f0cad746794e5af3d907491209977e57 100644
--- a/macro/beamtime/mcbm2022/mcbm_event.C
+++ b/macro/beamtime/mcbm2022/mcbm_event.C
@@ -114,7 +114,7 @@ Bool_t mcbm_event(std::string infile,
       break;
     }
     case 1: {
-      // default,  Tof - T0 concidences (pulser)
+      // default,  Tof - Bmon concidences (pulser)
       eb_TriggerMinNumberBmon      =    1;
       eb_TriggerMaxNumberBMon      = 1000;
 
@@ -161,7 +161,7 @@ Bool_t mcbm_event(std::string infile,
       break;
     }
     case 3: {
-      // # Tof track trigger with T0
+      // # Tof track trigger with Bmon
       eb_TriggerMinNumberBmon      = 1;
       eb_TriggerMaxNumberBMon      = 2;
 
@@ -185,7 +185,7 @@ Bool_t mcbm_event(std::string infile,
       break;
     }
     case 4: {
-      // mCbm track trigger Tof, T0 & STS
+      // mCbm track trigger Tof, Bmon & STS
       eb_TriggerMinNumberBmon      = 1;
       eb_TriggerMaxNumberBMon      = 2;
 
@@ -270,14 +270,14 @@ Bool_t mcbm_event(std::string infile,
       break;
     }
     case 7: {
-      /// PAL default: T0 + STS + TOF, only digi cut
+      /// PAL default: Bmon + STS + TOF, only digi cut
       eb_TriggerMinNumberBmon      = 1;
       eb_TriggerMinNumberSts       = 2;
       eb_TriggerMinNumberTof       = 4;
       break;
     }
     case 8: {
-      // default,  Tof - T0 concidences (pulser)
+      // default,  Tof - Bmon concidences (pulser)
       eb_TriggerMinNumberBmon      = 4;
       eb_TriggerMinNumberTof       = 2;
       eb_TriggerMinLayersNumberTof = 1;
@@ -290,14 +290,14 @@ Bool_t mcbm_event(std::string infile,
       break;
     }
     case 10: {
-      // # Tof track trigger with T0
+      // # Tof track trigger with Bmon
       eb_TriggerMinNumberBmon      = 1;
       eb_TriggerMinNumberTof       = 8;
       eb_TriggerMinLayersNumberTof = 4;
       break;
     }
     case 11: {
-      // mCbm track trigger Tof, T0 & STS
+      // mCbm track trigger Tof, Bmon & STS
       eb_TriggerMinNumberBmon      = 1;
       eb_TriggerMinNumberSts       = 2;
       eb_TriggerMinNumberTof       = 8;
@@ -323,7 +323,7 @@ Bool_t mcbm_event(std::string infile,
       break;
     }
     case 14: {
-      /// PAL mCbm track trigger Tof, T0 & STS
+      /// PAL mCbm track trigger Tof, Bmon & STS
       eb_TriggerMinNumberBmon      = 1;
       eb_TriggerMinNumberSts       = 4;
       eb_TriggerMinNumberTof       = 8;
@@ -362,7 +362,7 @@ Bool_t mcbm_event(std::string infile,
       break;
     }
     case 16: {
-      // mCbm track trigger Tof, T0 & STS with STS monster events selector
+      // mCbm track trigger Tof, Bmon & STS with STS monster events selector
       eb_TriggerMinNumberBmon      = 1;
       eb_TriggerMaxNumberBMon      = 2;
 
@@ -425,7 +425,7 @@ Bool_t mcbm_event(std::string infile,
   evBuildRaw->SetReferenceDetector(kRawEventBuilderDetTof);
   evBuildRaw->AddDetector(kRawEventBuilderDetBmon);
 
-  // Set T0 as reference detector
+  // Set Bmon as reference detector
   evBuildRaw->SetReferenceDetector(kRawEventBuilderDetBmon);
   evBuildRaw->AddDetector(kRawEventBuilderDetTof);
 
diff --git a/macro/beamtime/mcbm2022/mcbm_event_reco.C b/macro/beamtime/mcbm2022/mcbm_event_reco.C
index 7a3982a00be39ebe66f0463126c30194b9d8f308..33f164fcd2c10cbe2dba77e511e917e9f840af20 100644
--- a/macro/beamtime/mcbm2022/mcbm_event_reco.C
+++ b/macro/beamtime/mcbm2022/mcbm_event_reco.C
@@ -67,8 +67,8 @@ Bool_t mcbm_event_reco(UInt_t uRunId                   = 2391,
   // ---------------------------------------------
 
   // -----   EventBuilder Settings----------------
-  const Int_t eb_TriggerMinNumberT0 {1};
-  const Int_t eb_TriggerMaxNumberT0 {2};
+  const Int_t eb_TriggerMinNumberBmon {1};
+  const Int_t eb_TriggerMaxNumberBmon {2};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {16};
@@ -257,8 +257,8 @@ Bool_t mcbm_event_reco(UInt_t uRunId                   = 2391,
   if (!geoSetup->IsActive(ECbmModuleId::kSts)) evBuildRaw->RemoveDetector(kRawEventBuilderDetSts);
   if (!geoSetup->IsActive(ECbmModuleId::kTof)) evBuildRaw->RemoveDetector(kRawEventBuilderDetTof);
 
-  // Set T0 as reference detector
-  evBuildRaw->SetReferenceDetector(kRawEventBuilderDetT0);
+  // Set Bmon as reference detector
+  evBuildRaw->SetReferenceDetector(kRawEventBuilderDetBmon);
 
   // void SetTsParameters(double TsStartTime, double TsLength, double TsOverLength):
   // => TsStartTime=0, TsLength=128 + 1.28 ms in 2022, TsOverLength=1.28 ms (1MS) in mCBM2022
@@ -270,8 +270,8 @@ Bool_t mcbm_event_reco(UInt_t uRunId                   = 2391,
     evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kTof, -1);
   }
 
-  evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kBmon, eb_TriggerMinNumberT0);
-  evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kBmon, eb_TriggerMaxNumberT0);
+  evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kBmon, eb_TriggerMinNumberBmon);
+  evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kBmon, eb_TriggerMaxNumberBmon);
 
   //if (geoSetup->IsActive(ECbmModuleId::kSts)) {
   //  evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kSts, eb_TriggerMinNumberSts);
@@ -568,7 +568,7 @@ Bool_t mcbm_event_reco(UInt_t uRunId                   = 2391,
     tofFindTracks->UseFitter(tofTrackFitter);
     tofFindTracks->SetCalOpt(iCalOpt);           // 1 - update offsets, 2 - update walk, 0 - bypass
     tofFindTracks->SetCorMode(iGenCor);          // valid options: 0,1,2,3,4,5,6, 10 - 19
-    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after T0 fix (double stack run 1058)
+    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after Bmon fix (double stack run 1058)
     tofFindTracks->SetCalParFileName(cTrkFile);  // Tracker parameter value file name
     tofFindTracks->SetBeamCounter(5, 0, 0);      // default beam counter
     tofFindTracks->SetR0Lim(20.);
diff --git a/macro/beamtime/mcbm2022/mcbm_event_reco_L1.C b/macro/beamtime/mcbm2022/mcbm_event_reco_L1.C
index 4fde023e8fefee72892277e5485a929341a8f88a..4482012a19a367c9df6509931103e45f97c1ca76 100644
--- a/macro/beamtime/mcbm2022/mcbm_event_reco_L1.C
+++ b/macro/beamtime/mcbm2022/mcbm_event_reco_L1.C
@@ -258,9 +258,9 @@ Bool_t mcbm_event_reco_L1(UInt_t uRunId                   = 2570,
 
   // --------------------event builder---------------------------------------
   // -----   EventBuilder Settings----------------
-  // mCbm track trigger Tof, T0 & STS (case 4 of mcbm_unp_event.C)
-  const Int_t eb_TriggerMinNumberT0 {1};
-  const Int_t eb_TriggerMaxNumberT0 {2};
+  // mCbm track trigger Tof, Bmon & STS (case 4 of mcbm_unp_event.C)
+  const Int_t eb_TriggerMinNumberBmon {1};
+  const Int_t eb_TriggerMaxNumberBmon {2};
   const Int_t eb_TriggerMinNumberSts {2};
   const Int_t eb_TriggerMinNumberStsLayers {1};
   const Int_t eb_TriggerMinNumberMuch {1};
@@ -268,8 +268,8 @@ Bool_t mcbm_event_reco_L1(UInt_t uRunId                   = 2570,
   const Int_t eb_TriggerMinNumberTofLayers {4};
   const Int_t eb_TriggerMinNumberRich {0};
 
-  const Int_t eb_TrigWinMinT0 {-50};
-  const Int_t eb_TrigWinMaxT0 {50};
+  const Int_t eb_TrigWinMinBmon {-50};
+  const Int_t eb_TrigWinMaxBmon {50};
   const Int_t eb_TrigWinMinSts {-60};
   const Int_t eb_TrigWinMaxSts {60};
   const Int_t eb_TrigWinMinMuch {-100};
@@ -301,8 +301,8 @@ Bool_t mcbm_event_reco_L1(UInt_t uRunId                   = 2570,
     if (!bTOF || !geoSetup->IsActive(ECbmModuleId::kTof)) evBuildRaw->RemoveDetector(kRawEventBuilderDetTof);
     if (!bFSD || !geoSetup->IsActive(ECbmModuleId::kFsd)) evBuildRaw->RemoveDetector(kRawEventBuilderDetFsd);
 
-    // Set T0 as reference detector
-    evBuildRaw->SetReferenceDetector(kRawEventBuilderDetT0);
+    // Set Bmon as reference detector
+    evBuildRaw->SetReferenceDetector(kRawEventBuilderDetBmon);
     // For making MuCh as seed detector
     // evBuildRaw->SetReferenceDetector(kRawEventBuilderDetMuch);
 
@@ -325,8 +325,8 @@ Bool_t mcbm_event_reco_L1(UInt_t uRunId                   = 2570,
       evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kTof, -1);
     }
 
-    evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kBmon, eb_TriggerMinNumberT0);
-    evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kBmon, eb_TriggerMaxNumberT0);
+    evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kBmon, eb_TriggerMinNumberBmon);
+    evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kBmon, eb_TriggerMaxNumberBmon);
 
     if (geoSetup->IsActive(ECbmModuleId::kSts)) {
       evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kSts, eb_TriggerMinNumberSts);
@@ -342,7 +342,7 @@ Bool_t mcbm_event_reco_L1(UInt_t uRunId                   = 2570,
       evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kRich, -1);
     }
 
-    evBuildRaw->SetTriggerWindow(ECbmModuleId::kBmon, eb_TrigWinMinT0, eb_TrigWinMaxT0);
+    evBuildRaw->SetTriggerWindow(ECbmModuleId::kBmon, eb_TrigWinMinBmon, eb_TrigWinMaxBmon);
     if (geoSetup->IsActive(ECbmModuleId::kTof))
       evBuildRaw->SetTriggerWindow(ECbmModuleId::kTof, eb_TrigWinMinTof, eb_TrigWinMaxTof);
     if (geoSetup->IsActive(ECbmModuleId::kSts))
diff --git a/macro/beamtime/mcbm2022/mcbm_unp_event.C b/macro/beamtime/mcbm2022/mcbm_unp_event.C
index 51a017e939ea3cfde2680b558fe5ef9d3757021d..ff719385174da4e1a91b6beeef40f005bad27eaf 100644
--- a/macro/beamtime/mcbm2022/mcbm_unp_event.C
+++ b/macro/beamtime/mcbm2022/mcbm_unp_event.C
@@ -119,7 +119,7 @@ Bool_t mcbm_unp_event(std::string infile,
       break;
     }
     case 1: {
-      // default,  Tof - T0 concidences (pulser)
+      // default,  Tof - Bmon concidences (pulser)
       eb_TriggerMinNumberBmon      =    1;
       eb_TriggerMaxNumberBMon      = 1000;
 
@@ -166,7 +166,7 @@ Bool_t mcbm_unp_event(std::string infile,
       break;
     }
     case 3: {
-      // # Tof track trigger with T0
+      // # Tof track trigger with Bmon
       eb_TriggerMinNumberBmon      = 1;
       eb_TriggerMaxNumberBMon      = 2;
 
@@ -190,7 +190,7 @@ Bool_t mcbm_unp_event(std::string infile,
       break;
     }
     case 4: {
-      // mCbm track trigger Tof, T0 & STS
+      // mCbm track trigger Tof, Bmon & STS
       eb_TriggerMinNumberBmon      = 1;
       eb_TriggerMaxNumberBMon      = 2;
 
@@ -275,14 +275,14 @@ Bool_t mcbm_unp_event(std::string infile,
       break;
     }
     case 7: {
-      /// PAL default: T0 + STS + TOF, only digi cut
+      /// PAL default: Bmon + STS + TOF, only digi cut
       eb_TriggerMinNumberBmon      = 1;
       eb_TriggerMinNumberSts       = 2;
       eb_TriggerMinNumberTof       = 4;
       break;
     }
     case 8: {
-      // default,  Tof - T0 concidences (pulser)
+      // default,  Tof - Bmon concidences (pulser)
       eb_TriggerMinNumberBmon      = 4;
       eb_TriggerMinNumberTof       = 2;
       eb_TriggerMinLayersNumberTof = 1;
@@ -295,14 +295,14 @@ Bool_t mcbm_unp_event(std::string infile,
       break;
     }
     case 10: {
-      // # Tof track trigger with T0
+      // # Tof track trigger with Bmon
       eb_TriggerMinNumberBmon      = 1;
       eb_TriggerMinNumberTof       = 8;
       eb_TriggerMinLayersNumberTof = 4;
       break;
     }
     case 11: {
-      // mCbm track trigger Tof, T0 & STS
+      // mCbm track trigger Tof, Bmon & STS
       eb_TriggerMinNumberBmon      = 1;
       eb_TriggerMinNumberSts       = 2;
       eb_TriggerMinNumberTof       = 8;
@@ -328,7 +328,7 @@ Bool_t mcbm_unp_event(std::string infile,
       break;
     }
     case 14: {
-      /// PAL mCbm track trigger Tof, T0 & STS
+      /// PAL mCbm track trigger Tof, Bmon & STS
       eb_TriggerMinNumberBmon      = 1;
       eb_TriggerMinNumberSts       = 4;
       eb_TriggerMinNumberTof       = 8;
@@ -716,10 +716,10 @@ Bool_t mcbm_unp_event(std::string infile,
 
   // Set TOF as reference detector
   evBuildRaw->SetReferenceDetector(kRawEventBuilderDetTof);
-  evBuildRaw->AddDetector(kRawEventBuilderDetT0);
+  evBuildRaw->AddDetector(kRawEventBuilderDetBmon);
 
-  // Set T0 as reference detector
-  evBuildRaw->SetReferenceDetector(kRawEventBuilderDetT0);
+  // Set Bmon as reference detector
+  evBuildRaw->SetReferenceDetector(kRawEventBuilderDetBmon);
   evBuildRaw->AddDetector(kRawEventBuilderDetTof);
 
   // Remove detectors not there in 2022
@@ -800,8 +800,8 @@ Bool_t mcbm_unp_event(std::string infile,
   // Use standard MUCH digis
   evBuildRaw->ChangeMuchBeamtimeDigiFlag();
 
-  // Set Det type to find T0 in TOF digis = Select storage of BMon digis
-  if (bBmoninTof) { evBuildRaw->SetT0InTofDetType(); }
+  // Set Det type to find Bmon in TOF digis = Select storage of BMon digis
+  if (bBmoninTof) { evBuildRaw->SetBmonInTofDetType(); }
 
   evBuildRaw->SetOutFilename(histosfilename);
   // evBuildRaw->SetOutputBranchPersistent("CbmEvent", kFALSE);
diff --git a/macro/beamtime/mcbm2022/pulser_dt_full.C b/macro/beamtime/mcbm2022/pulser_dt_full.C
index a15a293a7b9a4b07b44cc6e810841614dc8f3f8b..f7d4cc6e2ee6faa0db1b5e1f864658df2a312984 100644
--- a/macro/beamtime/mcbm2022/pulser_dt_full.C
+++ b/macro/beamtime/mcbm2022/pulser_dt_full.C
@@ -33,7 +33,7 @@ void pulser_dt_full(TString filename = "1935.digi.root", uint32_t uNbTs = 10)
   std::vector<CbmTofDigi> vNotPulserDigisTof {};
   std::vector<CbmRichDigi> vNotPulserDigisRich {};
 
-  tree->SetBranchAddress("T0Digi", &vDigisBmon);
+  tree->SetBranchAddress(CbmBmonDigi::GetBranchName(), &vDigisBmon);
   tree->SetBranchAddress("StsDigi", &vDigisSts);
   tree->SetBranchAddress("StsDigiPulser", &vDigisStsP);
   tree->SetBranchAddress("MuchDigi", &vDigisMuch);
@@ -271,8 +271,8 @@ void pulser_dt_full(TString filename = "1935.digi.root", uint32_t uNbTs = 10)
 
       /// Bmon - TOF
       for (uint32_t uPulsBmonIdx = uLastFirstMatchBmon; uPulsBmonIdx < vPulserDigisBmon.size(); ++uPulsBmonIdx) {
-        double_t dBmonTime = vPulserDigisBmon[uPulsBmonIdx].GetTime();
-        double_t dBmonDt   = dBmonTime - dTofTime;
+        double_t dT0Time = vPulserDigisBmon[uPulsBmonIdx].GetTime();
+        double_t dBmonDt = dT0Time - dTofTime;
 
         // Find beginning of match window (assume both vectors are fully time sorted)
         if (dBmonDt < -dHistoRange) {  //
@@ -390,8 +390,8 @@ void pulser_dt_full(TString filename = "1935.digi.root", uint32_t uNbTs = 10)
 
       /// Bmon - TOF
       for (uint32_t uBmonIdx = uLastFirstMatchBmon; uBmonIdx < vNotPulserDigisBmon.size(); ++uBmonIdx) {
-        double_t dBmonTime = vNotPulserDigisBmon[uBmonIdx].GetTime();
-        double_t dBmonDt   = dBmonTime - dTofTime;
+        double_t dT0Time = vNotPulserDigisBmon[uBmonIdx].GetTime();
+        double_t dBmonDt = dT0Time - dTofTime;
 
         // Find beginning of match window (assume both vectors are fully time sorted)
         if (dBmonDt < -dHistoRange) {  //
diff --git a/macro/beamtime/pl_TIS.C b/macro/beamtime/pl_TIS.C
index ae54252aef7bed304c56b8dded06f62d75461e07..6ede4af1e7785205442c5e17681874121ba61c35 100644
--- a/macro/beamtime/pl_TIS.C
+++ b/macro/beamtime/pl_TIS.C
@@ -140,12 +140,12 @@ void pl_TIS(Double_t dEffMin = 0.1, Double_t dEffMax = 1.01, TString sysinfo = "
 
   can->cd(5);
   gROOT->cd();
-  hname = "hTISDT04D4best";
+  hname = "hTISDBmon4D4best";
   h2    = (TH2*) gROOT->FindObjectAny(hname);
   if (h2 != NULL) {
     h2->Draw("colz");
     h2->GetYaxis()->SetTitleOffset(1.3);
-    h2pfx = (TProfile*) h2->ProfileX("hTISDT04D4best_pfs", 1, -1, "s");
+    h2pfx = (TProfile*) h2->ProfileX("hTISDBmon4D4best_pfs", 1, -1, "s");
   }
   else {
     cout << hname << " not found" << endl;
@@ -153,7 +153,7 @@ void pl_TIS(Double_t dEffMin = 0.1, Double_t dEffMax = 1.01, TString sysinfo = "
 
   can->cd(6);
   h2pfx->Draw();
-  TH1D* h2pfxes = (TH1D*) h2pfx->ProjectionX("hTISDT04D4best_RMS", "C=E");
+  TH1D* h2pfxes = (TH1D*) h2pfx->ProjectionX("hTISDBmon4D4best_RMS", "C=E");
   h2pfxes->Draw("");
   h2pfxes->GetYaxis()->SetTitle("RMS(#Deltat) [ns]");
   h2pfxes->GetYaxis()->SetTitleOffset(1.3);
diff --git a/macro/beamtime/pulser2020/MonitorTof.C b/macro/beamtime/pulser2020/MonitorTof.C
index 2c0a6945026bcf1f772640aae10fb8b9d5027579..e36ac549b0e7ee8bc30110117247783216922afe 100644
--- a/macro/beamtime/pulser2020/MonitorTof.C
+++ b/macro/beamtime/pulser2020/MonitorTof.C
@@ -67,7 +67,7 @@ void MonitorTof(TString inFile = "", TString sHostname = "localhost", Int_t iSer
   }  // else of if( "" != inFile )
   source->SetSubscriberHwm(10);
   source->AddUnpacker(monitor_tof, 0x60, ECbmModuleId::kTof);  //gDPBs
-  source->AddUnpacker(monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs T0
+  source->AddUnpacker(monitor_tof, 0x90, ECbmModuleId::kTof);  //gDPBs Bmon
 
   // --- Run
   run = new FairRunOnline(source);
diff --git a/macro/beamtime/pulser2020/mT0Par.par b/macro/beamtime/pulser2020/mBmonPar.par
similarity index 100%
rename from macro/beamtime/pulser2020/mT0Par.par
rename to macro/beamtime/pulser2020/mBmonPar.par
diff --git a/macro/beamtime/pulser2020/unpack_pulser_mcbm.C b/macro/beamtime/pulser2020/unpack_pulser_mcbm.C
index 40cd97979758b43eade0550416fd50a85bba892c..ae1fc031f4a22a26c2c0fc859e59494b5e35d211 100644
--- a/macro/beamtime/pulser2020/unpack_pulser_mcbm.C
+++ b/macro/beamtime/pulser2020/unpack_pulser_mcbm.C
@@ -98,7 +98,7 @@ void unpack_pulser_mcbm(UInt_t uRunId = 0, TString sHostname = "localhost", UInt
 
   //  unpacker_sts ->SetAdcCut( 3 );
   unpacker_sts->SeparatePulserOutput(kFALSE);
-  unpacker_tof->SetSeparateArrayT0();
+  unpacker_tof->SetSeparateArrayBmon();
 
   switch (uRunId) {
       /*
@@ -235,7 +235,7 @@ void unpack_pulser_mcbm(UInt_t uRunId = 0, TString sHostname = "localhost", UInt
   source->AddUnpacker(unpacker_sts, 0x10, ECbmModuleId::kSts);    //STS xyter
   source->AddUnpacker(unpacker_much, 0x40, ECbmModuleId::kMuch);  //MUCH xyter
   source->AddUnpacker(unpacker_tof, 0x60, ECbmModuleId::kTof);    //gDPB A & B & C
-  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);    //gDPB T0 A & B
+  source->AddUnpacker(unpacker_tof, 0x90, ECbmModuleId::kTof);    //gDPB Bmon A & B
   source->AddUnpacker(unpacker_rich, 0x30, ECbmModuleId::kRich);  //RICH trb
   source->AddUnpacker(unpacker_psd, 0x80, ECbmModuleId::kPsd);    //PSD
 
@@ -249,7 +249,7 @@ void unpack_pulser_mcbm(UInt_t uRunId = 0, TString sHostname = "localhost", UInt
   run->SetAutoFinish(kFALSE);
 
   CbmMcbm2019CheckPulser* pulserChecker = new CbmMcbm2019CheckPulser();
-  pulserChecker->SetT0PulserTotLimits(184, 191);
+  pulserChecker->SetBmonPulserTotLimits(184, 191);
   pulserChecker->SetStsPulserAdcLimits(11, 15);
   //  pulserChecker->SetMuchPulseradcLimits(     5,    25 );  /// mCBM 2019
   pulserChecker->SetMuchPulseradcLimits(15, 20);  /// EDC Setup
diff --git a/macro/mcbm/mcbm_reco_event_tb.C b/macro/mcbm/mcbm_reco_event_tb.C
index 8b3a7a845e75707cd610c7ec7c582b7bfc889200..597d1a302af9fa687aff54345360892222bd28d3 100644
--- a/macro/mcbm/mcbm_reco_event_tb.C
+++ b/macro/mcbm/mcbm_reco_event_tb.C
@@ -131,7 +131,7 @@ void mcbm_reco_event_tb(Int_t nEvents = 10, TString dataset = "data/mcbm_beam_20
   //  eventBuilder->SetMaximumTimeGap(100.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(200.);
-  eventBuilder->SetTriggerMinNumberT0(1);
+  eventBuilder->SetTriggerMinNumberBmon(1);
   eventBuilder->SetTriggerMinNumberSts(0);
   eventBuilder->SetTriggerMinNumberMuch(0);
   eventBuilder->SetTriggerMinNumberTof(10);
diff --git a/macro/mcbm/mcbm_reco_event_tb_nh.C b/macro/mcbm/mcbm_reco_event_tb_nh.C
index 3d16a3a5fafc682b7137985372e235ebc03f37ec..b8d6619e5d346a60ecb286c1128df99a04fdf774 100644
--- a/macro/mcbm/mcbm_reco_event_tb_nh.C
+++ b/macro/mcbm/mcbm_reco_event_tb_nh.C
@@ -155,7 +155,7 @@ void mcbm_reco_event_tb_nh(Int_t nEvents = 10, TString RunId = "test", TString I
   //  eventBuilder->SetMaximumTimeGap(100.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(200.);
-  eventBuilder->SetTriggerMinNumberT0(0);
+  eventBuilder->SetTriggerMinNumberBmon(0);
   eventBuilder->SetTriggerMinNumberSts(0);
   eventBuilder->SetTriggerMinNumberMuch(0);
   eventBuilder->SetTriggerMinNumberTof(1);
diff --git a/macro/psd/build_correlations_tof.C b/macro/psd/build_correlations_tof.C
index 5b5e16d5d80469a86d819b4517b8aac14c3a096e..3799b002cfc0f69368ff9c507f2ea0b750d0b7b7 100644
--- a/macro/psd/build_correlations_tof.C
+++ b/macro/psd/build_correlations_tof.C
@@ -1,6 +1,6 @@
 /* Copyright (C) 2020 Facility for Antiproton and Ion Research in Europe, Darmstadt
    SPDX-License-Identifier: GPL-3.0-only
-   Authors: Pierre-Alain Loizeau [orginator] */
+   Authors: Pierre-Alain Loizeau [committer] */
 
 //#include <FairParIo.h>
 #include <FairRuntimeDb.h>
@@ -30,7 +30,7 @@ void build_correlations_tof(const string& digiFile = "/home/nikolay/FairRoot/cbm
   TList* parFileList = new TList();
 
   const Double_t eb_fixedTimeWindow {200.};
-  const Int_t eb_TriggerMinNumberT0 {0};
+  const Int_t eb_TriggerMinNumberBmon {0};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {0};
@@ -103,7 +103,7 @@ void build_correlations_tof(const string& digiFile = "/home/nikolay/FairRoot/cbm
   CbmMcbm2018EventBuilder* eventBuilder = new CbmMcbm2018EventBuilder();
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(eb_fixedTimeWindow);
-  eventBuilder->SetTriggerMinNumberT0(eb_TriggerMinNumberT0);
+  eventBuilder->SetTriggerMinNumberBmon(eb_TriggerMinNumberBmon);
   eventBuilder->SetTriggerMinNumberSts(eb_TriggerMinNumberSts);
   eventBuilder->SetTriggerMinNumberMuch(eb_TriggerMinNumberMuch);
   eventBuilder->SetTriggerMinNumberTof(eb_TriggerMinNumberTof);
@@ -139,7 +139,7 @@ void build_correlations_tof(const string& digiFile = "/home/nikolay/FairRoot/cbm
   //tofClust->SetEnableMatchPosScaling(kFALSE); // turn off projection to nominal target
   tofClust->SetYFitMin(1.E4);
   tofClust->SetIdMode(1);  // calibrate on module level
-  //tofClust->SetDeadStrips(15,23);   // declare dead strip for T0M3,Rpc0,Strip 23
+  //tofClust->SetDeadStrips(15,23);   // declare dead strip for BmonM3,Rpc0,Strip 23
 
 
   TString cCalibFname = Form("/%s_set%09d_%02d_%01dtofClust.hst.root", cFileId.Data(), iCalSet, calMode, calSelRead);
diff --git a/macro/rich/mcbm/beamtime/run_aerogel_analysis.C b/macro/rich/mcbm/beamtime/run_aerogel_analysis.C
index 2e37d77a46cd0025073569403923252ee7c42bc9..8ec63ad00635cd2c8f22f1a51ff5e6afc0c5be43 100644
--- a/macro/rich/mcbm/beamtime/run_aerogel_analysis.C
+++ b/macro/rich/mcbm/beamtime/run_aerogel_analysis.C
@@ -55,7 +55,7 @@ void run_aerogel_analysis(const string& parFile = "/lustre/cbm/users/adrian/cbmg
   //  eventBuilder->SetMaximumTimeGap(100.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(200.);
-  eventBuilder->SetTriggerMinNumberT0(1);
+  eventBuilder->SetTriggerMinNumberBmon(1);
   eventBuilder->SetTriggerMinNumberSts(0);
   eventBuilder->SetTriggerMinNumberMuch(0);
   eventBuilder->SetTriggerMinNumberTof(10);
diff --git a/macro/rich/mcbm/beamtime/run_reco_mcbm_real.C b/macro/rich/mcbm/beamtime/run_reco_mcbm_real.C
index 8f93fe8b63323692b489c03f25aa3afe7f12e5e2..f316b66aba37552627562af007b48a05359dc2f2 100644
--- a/macro/rich/mcbm/beamtime/run_reco_mcbm_real.C
+++ b/macro/rich/mcbm/beamtime/run_reco_mcbm_real.C
@@ -38,7 +38,7 @@ void run_reco_mcbm_real(const string& parFile  = "/lustre/nyx/cbm/users/adrian/d
   //  eventBuilder->SetMaximumTimeGap(100.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(200.);
-  eventBuilder->SetTriggerMinNumberT0(0);
+  eventBuilder->SetTriggerMinNumberBmon(0);
   eventBuilder->SetTriggerMinNumberSts(0);
   eventBuilder->SetTriggerMinNumberMuch(0);
   eventBuilder->SetTriggerMinNumberTof(10);
diff --git a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF.C b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF.C
index f0ecc49cb1668724f966ad6dc173021c7f28efc9..fb66f62de76e7c3e8c5ec1a4af117a26f96add9e 100644
--- a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF.C
+++ b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF.C
@@ -96,7 +96,7 @@ void run_reco_mcbm_real_wToF(
   //  eventBuilder->SetMaximumTimeGap(100.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(200.);
-  eventBuilder->SetTriggerMinNumberT0(1);
+  eventBuilder->SetTriggerMinNumberBmon(1);
   eventBuilder->SetTriggerMinNumberSts(0);
   eventBuilder->SetTriggerMinNumberMuch(0);
   eventBuilder->SetTriggerMinNumberTof(10);
@@ -135,7 +135,7 @@ void run_reco_mcbm_real_wToF(
   //tofClust->SetEnableMatchPosScaling(kFALSE); // turn off projection to nominal target
   tofClust->SetYFitMin(1.E4);
   tofClust->SetIdMode(1);  // calibrate on module level
-  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for T0M3,Rpc0,Strip 23
+  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for BmonM3,Rpc0,Strip 23
 
 
   Int_t calSelRead = calSel;
diff --git a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_dec19.C b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_dec19.C
index 5bfb3a04f8104c14adcd22cc6a96c451ef24f416..dbba49b0de3c334a7dc186e26832bc4de4aa3966 100644
--- a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_dec19.C
+++ b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_dec19.C
@@ -14,7 +14,7 @@ void run_reco_mcbm_real_wToF_dec19(
   int nEvents = 1000, const int taskId = 00005)
 {
   const Double_t eb_fixedTimeWindow {200.};
-  const Int_t eb_TriggerMinNumberT0 {1};
+  const Int_t eb_TriggerMinNumberBmon {1};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {10};
@@ -106,7 +106,7 @@ void run_reco_mcbm_real_wToF_dec19(
   //  eventBuilder->SetMaximumTimeGap(100.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(eb_fixedTimeWindow);
-  eventBuilder->SetTriggerMinNumberT0(eb_TriggerMinNumberT0);
+  eventBuilder->SetTriggerMinNumberBmon(eb_TriggerMinNumberBmon);
   eventBuilder->SetTriggerMinNumberSts(eb_TriggerMinNumberSts);
   eventBuilder->SetTriggerMinNumberMuch(eb_TriggerMinNumberMuch);
   eventBuilder->SetTriggerMinNumberTof(eb_TriggerMinNumberTof);
@@ -145,7 +145,7 @@ void run_reco_mcbm_real_wToF_dec19(
   //tofClust->SetEnableMatchPosScaling(kFALSE); // turn off projection to nominal target
   tofClust->SetYFitMin(1.E4);
   tofClust->SetIdMode(1);  // calibrate on module level
-  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for T0M3,Rpc0,Strip 23
+  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for BmonM3,Rpc0,Strip 23
 
 
   Int_t calSelRead = calSel;
@@ -538,7 +538,7 @@ void run_reco_mcbm_real_wToF_dec19(
   outfile << "TofOutput :" << cOutFname << std::endl << std::endl;
   outfile << "Trigger:" << std::endl;
   outfile << "  fixedTimeWindow :" << eb_fixedTimeWindow << std::endl;
-  outfile << "  MinNumberT0   :" << eb_TriggerMinNumberT0 << std::endl;
+  outfile << "  MinNumberBmon   :" << eb_TriggerMinNumberBmon << std::endl;
   outfile << "  MinNumberSts  :" << eb_TriggerMinNumberSts << std::endl;
   outfile << "  MinNumberMuch :" << eb_TriggerMinNumberMuch << std::endl;
   outfile << "  MinNumberTof  :" << eb_TriggerMinNumberTof << std::endl;
diff --git a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_jun21.C b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_jun21.C
index 99677f3f189e6243bb04a2658fc2512ec69f7835..503170b7d596fabc4189c5fe200b542012028ca3 100644
--- a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_jun21.C
+++ b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_jun21.C
@@ -19,7 +19,7 @@ void run_reco_mcbm_real_wToF_jun21(const string srcfolder = "/lustre/cbm/users/p
 
   // -----   EventBuilder Settings-----------------------------------------
   const Double_t eb_fixedTimeWindow {200.};
-  const Int_t eb_TriggerMinNumberT0 {1};
+  const Int_t eb_TriggerMinNumberBmon {1};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {10};
@@ -192,7 +192,7 @@ void run_reco_mcbm_real_wToF_jun21(const string srcfolder = "/lustre/cbm/users/p
   eventBuilder->SetMaximumTimeGap(200.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(eb_fixedTimeWindow);
-  eventBuilder->SetTriggerMinNumberT0(eb_TriggerMinNumberT0);
+  eventBuilder->SetTriggerMinNumberBmon(eb_TriggerMinNumberBmon);
   eventBuilder->SetTriggerMinNumberSts(eb_TriggerMinNumberSts);
   eventBuilder->SetTriggerMinNumberMuch(eb_TriggerMinNumberMuch);
   eventBuilder->SetTriggerMinNumberTof(eb_TriggerMinNumberTof);
@@ -1094,7 +1094,7 @@ void run_reco_mcbm_real_wToF_jun21(const string srcfolder = "/lustre/cbm/users/p
   outfile << "TofOutput :" << cFname << std::endl << std::endl;
   outfile << "Trigger:" << std::endl;
   outfile << "  fixedTimeWindow :" << eb_fixedTimeWindow << std::endl;
-  outfile << "  MinNumberT0   :" << eb_TriggerMinNumberT0 << std::endl;
+  outfile << "  MinNumberBmon   :" << eb_TriggerMinNumberBmon << std::endl;
   outfile << "  MinNumberSts  :" << eb_TriggerMinNumberSts << std::endl;
   outfile << "  MinNumberMuch :" << eb_TriggerMinNumberMuch << std::endl;
   outfile << "  MinNumberTof  :" << eb_TriggerMinNumberTof << std::endl;
diff --git a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar20.C b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar20.C
index aac3d51352b704c4a5c157c86970bf394be59d2e..b6896ac25f5328fa38259a19ac6cb104ca71b1af 100644
--- a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar20.C
+++ b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar20.C
@@ -17,7 +17,7 @@ void run_reco_mcbm_real_wToF_mar20(const string srcfolder = "/lustre/cbm/users/a
 
   // -----   EventBuilder Settings-----------------------------------------
   const Double_t eb_fixedTimeWindow {200.};
-  const Int_t eb_TriggerMinNumberT0 {1};
+  const Int_t eb_TriggerMinNumberBmon {1};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {10};
@@ -174,7 +174,7 @@ void run_reco_mcbm_real_wToF_mar20(const string srcfolder = "/lustre/cbm/users/a
   eventBuilder->SetMaximumTimeGap(200.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(eb_fixedTimeWindow);
-  eventBuilder->SetTriggerMinNumberT0(eb_TriggerMinNumberT0);
+  eventBuilder->SetTriggerMinNumberBmon(eb_TriggerMinNumberBmon);
   eventBuilder->SetTriggerMinNumberSts(eb_TriggerMinNumberSts);
   eventBuilder->SetTriggerMinNumberMuch(eb_TriggerMinNumberMuch);
   eventBuilder->SetTriggerMinNumberTof(eb_TriggerMinNumberTof);
@@ -456,7 +456,7 @@ void run_reco_mcbm_real_wToF_mar20(const string srcfolder = "/lustre/cbm/users/a
   outfile << "TofOutput :" << cFname << std::endl << std::endl;
   outfile << "Trigger:" << std::endl;
   outfile << "  fixedTimeWindow :" << eb_fixedTimeWindow << std::endl;
-  outfile << "  MinNumberT0   :" << eb_TriggerMinNumberT0 << std::endl;
+  outfile << "  MinNumberBmon   :" << eb_TriggerMinNumberBmon << std::endl;
   outfile << "  MinNumberSts  :" << eb_TriggerMinNumberSts << std::endl;
   outfile << "  MinNumberMuch :" << eb_TriggerMinNumberMuch << std::endl;
   outfile << "  MinNumberTof  :" << eb_TriggerMinNumberTof << std::endl;
diff --git a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22.C b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22.C
index 4522e170fce56a6666dac669517c1ece109a1160..8fa42ff9d96a8923fadf267a87abb8d6ca88462b 100644
--- a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22.C
+++ b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22.C
@@ -17,7 +17,7 @@ void run_reco_mcbm_real_wToF_mar22(const unsigned int runId = 1981,  // used for
 
   // -----   EventBuilder Settings-----------------------------------------
   const Double_t eb_fixedTimeWindow {200.};
-  const Int_t eb_TriggerMinNumberT0 {1};
+  const Int_t eb_TriggerMinNumberBmon {1};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {4};
@@ -342,7 +342,7 @@ void run_reco_mcbm_real_wToF_mar22(const unsigned int runId = 1981,  // used for
     tofFindTracks->UseFitter(tofTrackFitter);
     tofFindTracks->SetCalOpt(iCalOpt);           // 1 - update offsets, 2 - update walk, 0 - bypass
     tofFindTracks->SetCorMode(iGenCor);          // valid options: 0,1,2,3,4,5,6, 10 - 19
-    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after T0 fix (double stack run 1058)
+    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after Bmon fix (double stack run 1058)
     tofFindTracks->SetCalParFileName(cTrkFile);  // Tracker parameter value file name
     tofFindTracks->SetBeamCounter(5, 0, 0);      // default beam counter
     tofFindTracks->SetR0Lim(20.);
@@ -680,7 +680,7 @@ void run_reco_mcbm_real_wToF_mar22(const unsigned int runId = 1981,  // used for
   outfile << "TofOutput :" << cFname << std::endl << std::endl;
   outfile << "Trigger:" << std::endl;
   outfile << "  fixedTimeWindow :" << eb_fixedTimeWindow << std::endl;
-  outfile << "  MinNumberT0   :" << eb_TriggerMinNumberT0 << std::endl;
+  outfile << "  MinNumberBmon   :" << eb_TriggerMinNumberBmon << std::endl;
   outfile << "  MinNumberSts  :" << eb_TriggerMinNumberSts << std::endl;
   outfile << "  MinNumberMuch :" << eb_TriggerMinNumberMuch << std::endl;
   outfile << "  MinNumberTof  :" << eb_TriggerMinNumberTof << std::endl;
diff --git a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron.C b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron.C
index e903639f3ee71509f9ca165bafc607911e6aadfd..41932b8b27cd7ed2b54285ccb2edd45458499009 100644
--- a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron.C
+++ b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron.C
@@ -17,7 +17,7 @@ void run_reco_mcbm_real_wToF_mar22_iron(const unsigned int runId = 2160,  // use
 
   // -----   EventBuilder Settings-----------------------------------------
   const Double_t eb_fixedTimeWindow {200.};
-  const Int_t eb_TriggerMinNumberT0 {1};
+  const Int_t eb_TriggerMinNumberBmon {1};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {4};
@@ -386,7 +386,7 @@ void run_reco_mcbm_real_wToF_mar22_iron(const unsigned int runId = 2160,  // use
     tofFindTracks->UseFitter(tofTrackFitter);
     tofFindTracks->SetCalOpt(iCalOpt);           // 1 - update offsets, 2 - update walk, 0 - bypass
     tofFindTracks->SetCorMode(iGenCor);          // valid options: 0,1,2,3,4,5,6, 10 - 19
-    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after T0 fix (double stack run 1058)
+    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after Bmon fix (double stack run 1058)
     tofFindTracks->SetCalParFileName(cTrkFile);  // Tracker parameter value file name
     tofFindTracks->SetBeamCounter(5, 0, 0);      // default beam counter
     tofFindTracks->SetR0Lim(20.);
@@ -724,7 +724,7 @@ void run_reco_mcbm_real_wToF_mar22_iron(const unsigned int runId = 2160,  // use
   outfile << "TofOutput :" << cFname << std::endl << std::endl;
   outfile << "Trigger:" << std::endl;
   outfile << "  fixedTimeWindow :" << eb_fixedTimeWindow << std::endl;
-  outfile << "  MinNumberT0   :" << eb_TriggerMinNumberT0 << std::endl;
+  outfile << "  MinNumberBmon   :" << eb_TriggerMinNumberBmon << std::endl;
   outfile << "  MinNumberSts  :" << eb_TriggerMinNumberSts << std::endl;
   outfile << "  MinNumberMuch :" << eb_TriggerMinNumberMuch << std::endl;
   outfile << "  MinNumberTof  :" << eb_TriggerMinNumberTof << std::endl;
diff --git a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_T0ref.C b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_Bmonref.C
similarity index 98%
rename from macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_T0ref.C
rename to macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_Bmonref.C
index 05dd77933d715fed072621c7b537f1888ab6d6a6..bcc329ca7fc3d411d297f547d70694b3fd739555 100644
--- a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_T0ref.C
+++ b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_Bmonref.C
@@ -2,9 +2,9 @@
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Florian Uhlig [committer] */
 
-void run_reco_mcbm_real_wToF_mar22_iron_T0ref(const unsigned int runId = 2160,  // used for the output folder
-                                              int nEvents = 50, const int taskId = 11,
-                                              const string srcfolder = "/data/cbmroot/mcbmsource/macro/run/data/")
+void run_reco_mcbm_real_wToF_mar22_iron_Bmonref(const unsigned int runId = 2160,  // used for the output folder
+                                                int nEvents = 50, const int taskId = 11,
+                                                const string srcfolder = "/data/cbmroot/mcbmsource/macro/run/data/")
 {
   // -----   File names   --------------------------------------------------
   const string& digiFile = Form("%s/%4d.digi.root", srcfolder.c_str(), runId);
@@ -20,8 +20,8 @@ void run_reco_mcbm_real_wToF_mar22_iron_T0ref(const unsigned int runId = 2160,
 
   // -----   EventBuilder Settings-----------------------------------------
   const Double_t eb_fixedTimeWindow {200.};
-  const Int_t eb_TriggerMinNumberT0 {1};
-  const Int_t eb_TriggerMaxNumberT0 {2};
+  const Int_t eb_TriggerMinNumberBmon {1};
+  const Int_t eb_TriggerMaxNumberBmon {2};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {16};
@@ -217,7 +217,7 @@ void run_reco_mcbm_real_wToF_mar22_iron_T0ref(const unsigned int runId = 2160,
 
   // Set TOF as reference detector
   //evBuildRaw->SetReferenceDetector(kRawEventBuilderDetTof);
-  evBuildRaw->SetReferenceDetector(kRawEventBuilderDetT0);
+  evBuildRaw->SetReferenceDetector(kRawEventBuilderDetBmon);
 
   // void SetTsParameters(double TsStartTime, double TsLength, double TsOverLength): TsStartTime=0, TsLength=256ms in 2021, TsOverLength=TS overlap, not used in mCBM2021
   evBuildRaw->SetTsParameters(0.0, 1.28e8, 0.0);
@@ -227,8 +227,8 @@ void run_reco_mcbm_real_wToF_mar22_iron_T0ref(const unsigned int runId = 2160,
   if (geoSetup->IsActive(ECbmModuleId::kTof))
     evBuildRaw->SetTriggerMinLayersNumber(ECbmModuleId::kTof, eb_TriggerMinNumberTofLayers);
 
-  evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kBmon, eb_TriggerMinNumberT0);
-  evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kBmon, eb_TriggerMaxNumberT0);
+  evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kBmon, eb_TriggerMinNumberBmon);
+  evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kBmon, eb_TriggerMaxNumberBmon);
   if (geoSetup->IsActive(ECbmModuleId::kTof)) evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kTof, -1);
 
   //evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kSts, eb_TriggerMinNumberSts);
@@ -399,7 +399,7 @@ void run_reco_mcbm_real_wToF_mar22_iron_T0ref(const unsigned int runId = 2160,
     tofFindTracks->UseFitter(tofTrackFitter);
     tofFindTracks->SetCalOpt(iCalOpt);           // 1 - update offsets, 2 - update walk, 0 - bypass
     tofFindTracks->SetCorMode(iGenCor);          // valid options: 0,1,2,3,4,5,6, 10 - 19
-    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after T0 fix (double stack run 1058)
+    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after Bmon fix (double stack run 1058)
     tofFindTracks->SetCalParFileName(cTrkFile);  // Tracker parameter value file name
     tofFindTracks->SetBeamCounter(5, 0, 0);      // default beam counter
     tofFindTracks->SetR0Lim(20.);
@@ -738,8 +738,8 @@ void run_reco_mcbm_real_wToF_mar22_iron_T0ref(const unsigned int runId = 2160,
   outfile << "TofOutput :" << cFname << std::endl << std::endl;
   outfile << "Trigger:" << std::endl;
   outfile << "  fixedTimeWindow :" << eb_fixedTimeWindow << std::endl;
-  outfile << "  MinNumberT0   :" << eb_TriggerMinNumberT0 << std::endl;
-  outfile << "  MaxNumberT0   :" << eb_TriggerMaxNumberT0 << std::endl;
+  outfile << "  MinNumberBmon   :" << eb_TriggerMinNumberBmon << std::endl;
+  outfile << "  MaxNumberBmon   :" << eb_TriggerMaxNumberBmon << std::endl;
   outfile << "  MinNumberSts  :" << eb_TriggerMinNumberSts << std::endl;
   outfile << "  MinNumberMuch :" << eb_TriggerMinNumberMuch << std::endl;
   outfile << "  MinNumberTof  :" << eb_TriggerMinNumberTof << std::endl;
diff --git a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_T0refnoTof.C b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_BmonrefnoTof.C
similarity index 98%
rename from macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_T0refnoTof.C
rename to macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_BmonrefnoTof.C
index c6dc77838fb529c5da6b4eb1391ef49b8fcf29aa..1d6219cd96589288321a63b659decdf2be7b8c95 100644
--- a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_T0refnoTof.C
+++ b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_BmonrefnoTof.C
@@ -2,9 +2,9 @@
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Florian Uhlig [committer] */
 
-void run_reco_mcbm_real_wToF_mar22_iron_T0refnoTof(const unsigned int runId = 2160,  // used for the output folder
-                                                   int nEvents = 10, const int taskId = 11,
-                                                   const string srcfolder = "/data/cbmroot/mcbmsource/macro/run/data/")
+void run_reco_mcbm_real_wToF_mar22_iron_BmonrefnoTof(
+  const unsigned int runId = 2160,  // used for the output folder
+  int nEvents = 10, const int taskId = 11, const string srcfolder = "/data/cbmroot/mcbmsource/macro/run/data/")
 {
   // -----   File names   --------------------------------------------------
   const string& digiFile = Form("%s/%4d.digi.root", srcfolder.c_str(), runId);
@@ -17,7 +17,7 @@ void run_reco_mcbm_real_wToF_mar22_iron_T0refnoTof(const unsigned int runId = 21
 
   // -----   EventBuilder Settings-----------------------------------------
   const Double_t eb_fixedTimeWindow {200.};
-  const Int_t eb_TriggerMinNumberT0 {1};
+  const Int_t eb_TriggerMinNumberBmon {1};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {4};
@@ -210,7 +210,7 @@ void run_reco_mcbm_real_wToF_mar22_iron_T0refnoTof(const unsigned int runId = 21
 
   // Set TOF as reference detector
   //evBuildRaw->SetReferenceDetector(kRawEventBuilderDetTof);
-  evBuildRaw->SetReferenceDetector(kRawEventBuilderDetT0);
+  evBuildRaw->SetReferenceDetector(kRawEventBuilderDetBmon);
 
   // void SetTsParameters(double TsStartTime, double TsLength, double TsOverLength): TsStartTime=0, TsLength=256ms in 2021, TsOverLength=TS overlap, not used in mCBM2021
   evBuildRaw->SetTsParameters(0.0, 1.28e8, 0.0);
@@ -218,7 +218,7 @@ void run_reco_mcbm_real_wToF_mar22_iron_T0refnoTof(const unsigned int runId = 21
   // if (geoSetup->IsActive(ECbmModuleId::kTof))
   //   evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kTof, eb_TriggerMinNumberTof);
 
-  evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kBmon, eb_TriggerMinNumberT0);
+  evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kBmon, eb_TriggerMinNumberBmon);
 
   // if (geoSetup->IsActive(ECbmModuleId::kTof)) evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kTof, -1);
 
@@ -389,7 +389,7 @@ void run_reco_mcbm_real_wToF_mar22_iron_T0refnoTof(const unsigned int runId = 21
     tofFindTracks->UseFitter(tofTrackFitter);
     tofFindTracks->SetCalOpt(iCalOpt);           // 1 - update offsets, 2 - update walk, 0 - bypass
     tofFindTracks->SetCorMode(iGenCor);          // valid options: 0,1,2,3,4,5,6, 10 - 19
-    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after T0 fix (double stack run 1058)
+    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after Bmon fix (double stack run 1058)
     tofFindTracks->SetCalParFileName(cTrkFile);  // Tracker parameter value file name
     tofFindTracks->SetBeamCounter(5, 0, 0);      // default beam counter
     tofFindTracks->SetR0Lim(20.);
@@ -727,7 +727,7 @@ void run_reco_mcbm_real_wToF_mar22_iron_T0refnoTof(const unsigned int runId = 21
   outfile << "TofOutput :" << cFname << std::endl << std::endl;
   outfile << "Trigger:" << std::endl;
   outfile << "  fixedTimeWindow :" << eb_fixedTimeWindow << std::endl;
-  outfile << "  MinNumberT0   :" << eb_TriggerMinNumberT0 << std::endl;
+  outfile << "  MinNumberBmon   :" << eb_TriggerMinNumberBmon << std::endl;
   outfile << "  MinNumberSts  :" << eb_TriggerMinNumberSts << std::endl;
   outfile << "  MinNumberMuch :" << eb_TriggerMinNumberMuch << std::endl;
   outfile << "  MinNumberTof  :" << eb_TriggerMinNumberTof << std::endl;
diff --git a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_Tofref_wT0.C b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_Tofref_wBmon.C
similarity index 97%
rename from macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_Tofref_wT0.C
rename to macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_Tofref_wBmon.C
index 9b5c0d5d1c3c5c652be4cecd876529c62b14c50e..703d12406c752ac7eef8fc1e47d103a044be5bcb 100644
--- a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_Tofref_wT0.C
+++ b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_mar22_iron_Tofref_wBmon.C
@@ -2,9 +2,9 @@
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Florian Uhlig [committer] */
 
-void run_reco_mcbm_real_wToF_mar22_iron_Tofref_wT0(const unsigned int runId = 2160,  // used for the output folder
-                                                   int nEvents = 10, const int taskId = 16,
-                                                   const string srcfolder = "/data/cbmroot/mcbmsource/macro/run/data/")
+void run_reco_mcbm_real_wToF_mar22_iron_Tofref_wBmon(
+  const unsigned int runId = 2160,  // used for the output folder
+  int nEvents = 10, const int taskId = 16, const string srcfolder = "/data/cbmroot/mcbmsource/macro/run/data/")
 {
   // -----   File names   --------------------------------------------------
   const string& digiFile = Form("%s/%4d.digi.root", srcfolder.c_str(), runId);
@@ -17,7 +17,7 @@ void run_reco_mcbm_real_wToF_mar22_iron_Tofref_wT0(const unsigned int runId = 21
 
   // -----   EventBuilder Settings-----------------------------------------
   const Double_t eb_fixedTimeWindow {200.};
-  const Int_t eb_TriggerMinNumberT0 {1};
+  const Int_t eb_TriggerMinNumberBmon {1};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {4};
@@ -212,9 +212,9 @@ void run_reco_mcbm_real_wToF_mar22_iron_Tofref_wT0(const unsigned int runId = 21
   // Set TOF as reference detector
   //evBuildRaw->SetReferenceDetector(kRawEventBuilderDetTof);
   evBuildRaw->SetReferenceDetector(kRawEventBuilderDetRich);
-  //evBuildRaw->SetReferenceDetector(kRawEventBuilderDetT0);
-  evBuildRaw->RemoveDetector(kRawEventBuilderDetT0);
-  //evBuildRaw->AddDetector(kRawEventBuilderDetT0);
+  //evBuildRaw->SetReferenceDetector(kRawEventBuilderDetBmon);
+  evBuildRaw->RemoveDetector(kRawEventBuilderDetBmon);
+  //evBuildRaw->AddDetector(kRawEventBuilderDetBmon);
 
   // void SetTsParameters(double TsStartTime, double TsLength, double TsOverLength): TsStartTime=0, TsLength=256ms in 2021, TsOverLength=TS overlap, not used in mCBM2021
   evBuildRaw->SetTsParameters(0.0, 1.28e8, 0.0);
@@ -222,8 +222,8 @@ void run_reco_mcbm_real_wToF_mar22_iron_Tofref_wT0(const unsigned int runId = 21
   if (geoSetup->IsActive(ECbmModuleId::kTof))
     evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kTof, eb_TriggerMinNumberTof);
 
-  // evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kT0, eb_TriggerMinNumberT0);
-  // evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kT0, -1);
+  // evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kBmon, eb_TriggerMinNumberBmon);
+  // evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kBmon, -1);
 
   if (geoSetup->IsActive(ECbmModuleId::kTof)) evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kTof, -1);
 
@@ -233,7 +233,7 @@ void run_reco_mcbm_real_wToF_mar22_iron_Tofref_wT0(const unsigned int runId = 21
   evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kRich, eb_TriggerMinNumberRich);
   evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kRich, -1);
 
-  //evBuildRaw->SetTriggerWindow(ECbmModuleId::kT0, -100, 100);
+  //evBuildRaw->SetTriggerWindow(ECbmModuleId::kBmon, -100, 100);
   if (geoSetup->IsActive(ECbmModuleId::kTof)) evBuildRaw->SetTriggerWindow(ECbmModuleId::kTof, -50, 50);
   if (geoSetup->IsActive(ECbmModuleId::kSts)) evBuildRaw->SetTriggerWindow(ECbmModuleId::kSts, -50, 50);
   if (geoSetup->IsActive(ECbmModuleId::kTrd)) evBuildRaw->SetTriggerWindow(ECbmModuleId::kTrd, -200, 200);
@@ -395,7 +395,7 @@ void run_reco_mcbm_real_wToF_mar22_iron_Tofref_wT0(const unsigned int runId = 21
     tofFindTracks->UseFitter(tofTrackFitter);
     tofFindTracks->SetCalOpt(iCalOpt);           // 1 - update offsets, 2 - update walk, 0 - bypass
     tofFindTracks->SetCorMode(iGenCor);          // valid options: 0,1,2,3,4,5,6, 10 - 19
-    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after T0 fix (double stack run 1058)
+    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after Bmon fix (double stack run 1058)
     tofFindTracks->SetCalParFileName(cTrkFile);  // Tracker parameter value file name
     tofFindTracks->SetBeamCounter(5, 0, 0);      // default beam counter
     tofFindTracks->SetR0Lim(20.);
@@ -734,7 +734,7 @@ void run_reco_mcbm_real_wToF_mar22_iron_Tofref_wT0(const unsigned int runId = 21
   outfile << "TofOutput :" << cFname << std::endl << std::endl;
   outfile << "Trigger:" << std::endl;
   outfile << "  fixedTimeWindow :" << eb_fixedTimeWindow << std::endl;
-  outfile << "  MinNumberT0   :" << eb_TriggerMinNumberT0 << std::endl;
+  outfile << "  MinNumberBmon   :" << eb_TriggerMinNumberBmon << std::endl;
   outfile << "  MinNumberSts  :" << eb_TriggerMinNumberSts << std::endl;
   outfile << "  MinNumberMuch :" << eb_TriggerMinNumberMuch << std::endl;
   outfile << "  MinNumberTof  :" << eb_TriggerMinNumberTof << std::endl;
diff --git a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_may22_Nickel_Bmon.C b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_may22_Nickel_Bmon.C
index dd32e8f95b839e56164af26b253b7691091e5dc4..edc9979598430ed46393ef8dbffeda788cd795e6 100644
--- a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_may22_Nickel_Bmon.C
+++ b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_may22_Nickel_Bmon.C
@@ -20,8 +20,8 @@ void run_reco_mcbm_real_wToF_may22_Nickel_Bmon(const unsigned int runId = 2160,
 
   // -----   EventBuilder Settings-----------------------------------------
   const Double_t eb_fixedTimeWindow {200.};
-  const Int_t eb_TriggerMinNumberT0 {1};
-  const Int_t eb_TriggerMaxNumberT0 {2};
+  const Int_t eb_TriggerMinNumberBmon {1};
+  const Int_t eb_TriggerMaxNumberBmon {2};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {16};
@@ -217,9 +217,9 @@ void run_reco_mcbm_real_wToF_may22_Nickel_Bmon(const unsigned int runId = 2160,
 
   // Set TOF as reference detector
   evBuildRaw->SetReferenceDetector(kRawEventBuilderDetTof);
-  // evBuildRaw->SetReferenceDetector(kRawEventBuilderDetT0);
+  // evBuildRaw->SetReferenceDetector(kRawEventBuilderDetBmon);
 
-  // evBuildRaw->AddDetector(kRawEventBuilderDetT0);
+  // evBuildRaw->AddDetector(kRawEventBuilderDetBmon);
   // void SetTsParameters(double TsStartTime, double TsLength, double TsOverLength): TsStartTime=0, TsLength=256ms in 2021, TsOverLength=TS overlap, not used in mCBM2021
   evBuildRaw->SetTsParameters(0.0, 1.28e8, 0.0);
 
@@ -228,8 +228,8 @@ void run_reco_mcbm_real_wToF_may22_Nickel_Bmon(const unsigned int runId = 2160,
   if (geoSetup->IsActive(ECbmModuleId::kTof))
     evBuildRaw->SetTriggerMinLayersNumber(ECbmModuleId::kTof, eb_TriggerMinNumberTofLayers);
 
-  evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kBmon, eb_TriggerMinNumberT0);
-  evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kBmon, eb_TriggerMaxNumberT0);
+  evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kBmon, eb_TriggerMinNumberBmon);
+  evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kBmon, eb_TriggerMaxNumberBmon);
   if (geoSetup->IsActive(ECbmModuleId::kTof)) evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kTof, -1);
 
   // evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kSts, eb_TriggerMinNumberSts);
@@ -400,7 +400,7 @@ void run_reco_mcbm_real_wToF_may22_Nickel_Bmon(const unsigned int runId = 2160,
     tofFindTracks->UseFitter(tofTrackFitter);
     tofFindTracks->SetCalOpt(iCalOpt);           // 1 - update offsets, 2 - update walk, 0 - bypass
     tofFindTracks->SetCorMode(iGenCor);          // valid options: 0,1,2,3,4,5,6, 10 - 19
-    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after T0 fix (double stack run 1058)
+    tofFindTracks->SetTtTarg(0.042);             // target value Mar2021, after Bmon fix (double stack run 1058)
     tofFindTracks->SetCalParFileName(cTrkFile);  // Tracker parameter value file name
     tofFindTracks->SetBeamCounter(5, 0, 0);      // default beam counter
     tofFindTracks->SetR0Lim(20.);
@@ -739,7 +739,7 @@ void run_reco_mcbm_real_wToF_may22_Nickel_Bmon(const unsigned int runId = 2160,
   outfile << "TofOutput :" << cFname << std::endl << std::endl;
   outfile << "Trigger:" << std::endl;
   outfile << "  fixedTimeWindow :" << eb_fixedTimeWindow << std::endl;
-  outfile << "  MinNumberT0   :" << eb_TriggerMinNumberT0 << std::endl;
+  outfile << "  MinNumberBmon   :" << eb_TriggerMinNumberBmon << std::endl;
   outfile << "  MinNumberSts  :" << eb_TriggerMinNumberSts << std::endl;
   outfile << "  MinNumberMuch :" << eb_TriggerMinNumberMuch << std::endl;
   outfile << "  MinNumberTof  :" << eb_TriggerMinNumberTof << std::endl;
diff --git a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_nov19.C b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_nov19.C
index 60ac31f1256ea9a0c7b1eff78948c4d54435e984..0f5d0ebcd29e67d5be006229f5a7591b085e4a5c 100644
--- a/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_nov19.C
+++ b/macro/rich/mcbm/beamtime/run_reco_mcbm_real_wToF_nov19.C
@@ -89,7 +89,7 @@ void run_reco_mcbm_real_wToF_nov19(
   //  eventBuilder->SetMaximumTimeGap(100.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(200.);
-  eventBuilder->SetTriggerMinNumberT0(1);
+  eventBuilder->SetTriggerMinNumberBmon(1);
   eventBuilder->SetTriggerMinNumberSts(0);
   eventBuilder->SetTriggerMinNumberMuch(0);
   eventBuilder->SetTriggerMinNumberTof(10);
@@ -128,7 +128,7 @@ void run_reco_mcbm_real_wToF_nov19(
   //tofClust->SetEnableMatchPosScaling(kFALSE); // turn off projection to nominal target
   tofClust->SetYFitMin(1.E4);
   tofClust->SetIdMode(1);  // calibrate on module level
-  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for T0M3,Rpc0,Strip 23
+  //   tofClust->SetDeadStrips(15,23);   // declare dead strip for BmonM3,Rpc0,Strip 23
 
 
   Int_t calSelRead = calSel;
diff --git a/macro/rich/mcbm/beamtime/run_reco_mcbm_richOnly.C b/macro/rich/mcbm/beamtime/run_reco_mcbm_richOnly.C
index dce3a69b7c55d77d521a62fc7dd6407d0bcd45b3..758009a774c4140e029e06718685e517e41241bd 100644
--- a/macro/rich/mcbm/beamtime/run_reco_mcbm_richOnly.C
+++ b/macro/rich/mcbm/beamtime/run_reco_mcbm_richOnly.C
@@ -12,7 +12,7 @@ void run_reco_mcbm_richOnly(
   const string& recoFile = Form("reco_mcbm_mar20_%d.root", runId);
 
   const Double_t eb_fixedTimeWindow {200.};
-  const Int_t eb_TriggerMinNumberT0 {0};
+  const Int_t eb_TriggerMinNumberBmon {0};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {0};
@@ -59,7 +59,7 @@ void run_reco_mcbm_richOnly(
   //  eventBuilder->SetMaximumTimeGap(100.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(eb_fixedTimeWindow);
-  eventBuilder->SetTriggerMinNumberT0(eb_TriggerMinNumberT0);
+  eventBuilder->SetTriggerMinNumberBmon(eb_TriggerMinNumberBmon);
   eventBuilder->SetTriggerMinNumberSts(eb_TriggerMinNumberSts);
   eventBuilder->SetTriggerMinNumberMuch(eb_TriggerMinNumberMuch);
   eventBuilder->SetTriggerMinNumberTof(eb_TriggerMinNumberTof);
diff --git a/macro/rich/mcbm/beamtime/run_reco_mcbm_richOnly2021.C b/macro/rich/mcbm/beamtime/run_reco_mcbm_richOnly2021.C
index cb4df8f09dcabf4bf7a433981d76c6a0dedc1937..e568767da4653f44d305bc4638d1aac8e6646275 100644
--- a/macro/rich/mcbm/beamtime/run_reco_mcbm_richOnly2021.C
+++ b/macro/rich/mcbm/beamtime/run_reco_mcbm_richOnly2021.C
@@ -11,7 +11,7 @@ void run_reco_mcbm_richOnly(const string srcfolder   = "/lustre/cbm/users/adrian
   const string& recoFile = Form("reco_mcbm_mar20_%d.root", runId);
 
   const Double_t eb_fixedTimeWindow {200.};
-  const Int_t eb_TriggerMinNumberT0 {0};
+  const Int_t eb_TriggerMinNumberBmon {0};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {0};
@@ -58,7 +58,7 @@ void run_reco_mcbm_richOnly(const string srcfolder   = "/lustre/cbm/users/adrian
   //  eventBuilder->SetMaximumTimeGap(100.);
   eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   eventBuilder->SetFixedTimeWindow(eb_fixedTimeWindow);
-  eventBuilder->SetTriggerMinNumberT0(eb_TriggerMinNumberT0);
+  eventBuilder->SetTriggerMinNumberBmon(eb_TriggerMinNumberBmon);
   eventBuilder->SetTriggerMinNumberSts(eb_TriggerMinNumberSts);
   eventBuilder->SetTriggerMinNumberMuch(eb_TriggerMinNumberMuch);
   eventBuilder->SetTriggerMinNumberTof(eb_TriggerMinNumberTof);
diff --git a/macro/rich/mcbm/beamtime/run_reco_mcbm_richOnly2022.C b/macro/rich/mcbm/beamtime/run_reco_mcbm_richOnly2022.C
index 7881ad8fbbeffd66dff56891c3ccb78a8fe3df7d..663448458ff895342b568293af4925a6749f8949 100644
--- a/macro/rich/mcbm/beamtime/run_reco_mcbm_richOnly2022.C
+++ b/macro/rich/mcbm/beamtime/run_reco_mcbm_richOnly2022.C
@@ -10,7 +10,7 @@ void run_reco_mcbm_richOnly2022(const string srcfolder   = "/data/cbmroot/cbmsou
   const string& recoFile = Form("reco_mcbm_mar22_%d.root", runId);
 
   const Double_t eb_fixedTimeWindow {200.};
-  const Int_t eb_TriggerMinNumberT0 {0};
+  const Int_t eb_TriggerMinNumberBmon {0};
   const Int_t eb_TriggerMinNumberSts {0};
   const Int_t eb_TriggerMinNumberMuch {0};
   const Int_t eb_TriggerMinNumberTof {0};
@@ -60,7 +60,7 @@ void run_reco_mcbm_richOnly2022(const string srcfolder   = "/data/cbmroot/cbmsou
   // //  eventBuilder->SetMaximumTimeGap(100.);
   // eventBuilder->SetEventBuilderAlgo(EventBuilderAlgo::FixedTimeWindow);
   // eventBuilder->SetFixedTimeWindow(eb_fixedTimeWindow);
-  // eventBuilder->SetTriggerMinNumberT0(eb_TriggerMinNumberT0);
+  // eventBuilder->SetTriggerMinNumberBmon(eb_TriggerMinNumberBmon);
   // eventBuilder->SetTriggerMinNumberSts(eb_TriggerMinNumberSts);
   // eventBuilder->SetTriggerMinNumberMuch(eb_TriggerMinNumberMuch);
   // eventBuilder->SetTriggerMinNumberTof(eb_TriggerMinNumberTof);
@@ -83,20 +83,20 @@ void run_reco_mcbm_richOnly2022(const string srcfolder   = "/data/cbmroot/cbmsou
   evBuildRaw->RemoveDetector(kRawEventBuilderDetTrd2D);
   evBuildRaw->RemoveDetector(kRawEventBuilderDetSts);
   evBuildRaw->RemoveDetector(kRawEventBuilderDetTof);
-  evBuildRaw->RemoveDetector(kRawEventBuilderDetT0);
+  evBuildRaw->RemoveDetector(kRawEventBuilderDetBmon);
   // Set TOF as reference detector
   evBuildRaw->SetReferenceDetector(kRawEventBuilderDetRich);
-  //evBuildRaw->SetReferenceDetector(kRawEventBuilderDetT0);
+  //evBuildRaw->SetReferenceDetector(kRawEventBuilderDetBmon);
 
-  //evBuildRaw->AddDetector(kRawEventBuilderDetT0);
+  //evBuildRaw->AddDetector(kRawEventBuilderDetBmon);
 
   // void SetTsParameters(double TsStartTime, double TsLength, double TsOverLength): TsStartTime=0, TsLength=256ms in 2021, TsOverLength=TS overlap, not used in mCBM2021
   evBuildRaw->SetTsParameters(0.0, 1.28e8, 0.0);
 
   //evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kTof, eb_TriggerMinNumberTof);
 
-  // evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kT0, eb_TriggerMinNumberT0);
-  // evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kT0, -1);
+  // evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kBmon, eb_TriggerMinNumberBmon);
+  // evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kBmon, -1);
 
   //evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kTof, -1);
 
@@ -106,7 +106,7 @@ void run_reco_mcbm_richOnly2022(const string srcfolder   = "/data/cbmroot/cbmsou
   evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kRich, eb_TriggerMinNumberRich);
   evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kRich, -1);
 
-  //evBuildRaw->SetTriggerWindow(ECbmModuleId::kT0, -100, 100);
+  //evBuildRaw->SetTriggerWindow(ECbmModuleId::kBmon, -100, 100);
   //if (geoSetup->IsActive(ECbmModuleId::kTof)) evBuildRaw->SetTriggerWindow(ECbmModuleId::kTof, -50, 50);
   //if (geoSetup->IsActive(ECbmModuleId::kSts)) evBuildRaw->SetTriggerWindow(ECbmModuleId::kSts, -50, 50);
   //if (geoSetup->IsActive(ECbmModuleId::kTrd)) evBuildRaw->SetTriggerWindow(ECbmModuleId::kTrd, -200, 200);
diff --git a/macro/rich/run/run_reco.C b/macro/rich/run/run_reco.C
index ffef6ba360a3bf08dc123f51599d35f8dcd82227..fd74221d42e1e68fea4475acbb1f17caae34d7d7 100644
--- a/macro/rich/run/run_reco.C
+++ b/macro/rich/run/run_reco.C
@@ -18,7 +18,7 @@
 #include "CbmPVFinderKF.h"
 #include "CbmPrimaryVertexFinder.h"
 #include "CbmRecoSts.h"
-#include "CbmRecoTzero.h"
+#include "CbmRecoT0.h"
 #include "CbmRichHitProducer.h"
 #include "CbmRichReconstruction.h"
 #include "CbmSetup.h"
@@ -168,7 +168,7 @@ void run_reco(TString traFile = "data/test.tra.root", TString parFile = "data/te
       // Set STS as reference detector
       evBuildRaw->SetReferenceDetector(kRawEventBuilderDetSts);
       // Make Bmon (previous reference detector) a selected detector (with default parameters)
-      evBuildRaw->AddDetector(kRawEventBuilderDetT0);
+      evBuildRaw->AddDetector(kRawEventBuilderDetBmon);
 
       // Use sliding window seed builder with STS
       //evBuildRaw->SetReferenceDetector(kRawEventBuilderDetUndef);
@@ -342,10 +342,10 @@ void run_reco(TString traFile = "data/test.tra.root", TString parFile = "data/te
     }
     // ----------------------------------------------------------------------
 
-    // ----- T0 reconstruction   --------------------------------------------
-    CbmRecoTzero* recoT0 = new CbmRecoTzero();
-    run->AddTask(recoT0);
-    std::cout << "-I- " << myName << ": Added task " << recoT0->GetName() << std::endl;
+    // ----- Bmon reconstruction   --------------------------------------------
+    CbmRecoT0* recoBmon = new CbmRecoT0();
+    run->AddTask(recoBmon);
+    std::cout << "-I- " << myName << ": Added task " << recoBmon->GetName() << std::endl;
     // ----------------------------------------------------------------------
 
     // -----   Match reco to MC   -------------------------------------------
diff --git a/macro/run/run_reco.C b/macro/run/run_reco.C
index c040579e58fac6590ecf36047a1bd79993574da6..0f3fcecacb245b35e3570ae8407df8459d091a20 100644
--- a/macro/run/run_reco.C
+++ b/macro/run/run_reco.C
@@ -30,8 +30,8 @@
 #include "CbmPVFinderKF.h"
 #include "CbmPrimaryVertexFinder.h"
 #include "CbmPsdHitProducer.h"
-#include "CbmRecoBmon.h"
 #include "CbmRecoSts.h"
+#include "CbmRecoT0.h"
 #include "CbmRichHitProducer.h"
 #include "CbmRichReconstruction.h"
 #include "CbmSetup.h"
@@ -478,10 +478,10 @@ void run_reco(TString input = "", Int_t nTimeSlices = -1, Int_t firstTimeSlice =
     // ----------------------------------------------------------------------
 
 
-    // ----- T0 reconstruction   --------------------------------------------
-    CbmRecoBmon* recoT0 = new CbmRecoBmon();
-    run->AddTask(recoT0);
-    std::cout << "-I- : Added task " << recoT0->GetName() << std::endl;
+    // ----- Bmon reconstruction   --------------------------------------------
+    CbmRecoT0* recoBmon = new CbmRecoT0();
+    run->AddTask(recoBmon);
+    std::cout << "-I- : Added task " << recoBmon->GetName() << std::endl;
     // ----------------------------------------------------------------------
 
   }  //? event-based reco
diff --git a/reco/L1/CbmCaTimeSliceReader.h b/reco/L1/CbmCaTimeSliceReader.h
index 29d07f3111a2bcf8a5d156da51f5b4e1d51c23e0..1cd565d605513f66ed0dd150ff2c65cc8ef9bafd 100644
--- a/reco/L1/CbmCaTimeSliceReader.h
+++ b/reco/L1/CbmCaTimeSliceReader.h
@@ -259,7 +259,7 @@ int cbm::ca::TimeSliceReader::ReadHitsForDetector()
       iStGeom = pDetInterface->GetTrackingStationIndex(pTofHit);
 
       // *** Additional cuts for TOF ***
-      // Skip T0 hits
+      // Skip Bmon hits
       if (5 == CbmTofAddress::GetSmType(pTofHit->GetAddress())) { continue; }
 
       // FIXME: Figure it out, if this cut is still needed (introduced a year ago for mCBM)
diff --git a/reco/L1/CbmL1ReadEvent.cxx b/reco/L1/CbmL1ReadEvent.cxx
index 03498cf157653331ed46ed4732c71827a56cc45f..5219a66bd95714aacd6da70ba307cdaf906b6be1 100644
--- a/reco/L1/CbmL1ReadEvent.cxx
+++ b/reco/L1/CbmL1ReadEvent.cxx
@@ -643,7 +643,7 @@ void CbmL1::ReadEvent(CbmEvent* event)
 
       if (0x00202806 == h->GetAddress() || 0x00002806 == h->GetAddress()) continue;  // TODO: Why? (S.Zharko)
 
-      if (5 == CbmTofAddress::GetSmType(h->GetAddress())) continue;  // Skip T0 hits from TOF
+      if (5 == CbmTofAddress::GetSmType(h->GetAddress())) continue;  // Skip Bmon hits from TOF
 
       th.iStation = fpAlgo->GetParameters().GetStationIndexActive(
         CbmTofTrackingInterface::Instance()->GetTrackingStationIndex(h), ca::EDetectorID::kTof);
diff --git a/reco/L1/qa/CbmCaInputQaBase.cxx b/reco/L1/qa/CbmCaInputQaBase.cxx
index 025e791c682a8a9737df88de046e47a32aa3fc9a..bc1f7d0b6b799cbc7e33842358b3b1b13adc281d 100644
--- a/reco/L1/qa/CbmCaInputQaBase.cxx
+++ b/reco/L1/qa/CbmCaInputQaBase.cxx
@@ -336,7 +336,7 @@ void CbmCaInputQaBase<DetID>::FillHistograms()
     if constexpr (ca::EDetectorID::kTof == DetID) {
       auto address = pHit->GetAddress();
       if (0x00202806 == address || 0x00002806 == address) { continue; }  // TEST
-      if (5 == CbmTofAddress::GetSmType(address)) { continue; }          // Skip T0 hits
+      if (5 == CbmTofAddress::GetSmType(address)) { continue; }          // Skip Bmon hits
     }
 
     // *************************
diff --git a/reco/L1/qa/CbmCaInputQaSetup.h b/reco/L1/qa/CbmCaInputQaSetup.h
index 2e8ebfe839a0a030af7ed2e0a0f062c5038606c4..f9a7664f48343ca9d10aca3e5161252d2c8c3930 100644
--- a/reco/L1/qa/CbmCaInputQaSetup.h
+++ b/reco/L1/qa/CbmCaInputQaSetup.h
@@ -127,7 +127,7 @@ namespace cbm::ca
       }
       auto address = pHit->GetAddress();
 
-      // skip T0 hits
+      // skip Bmon hits
       if constexpr (ca::EDetectorID::kTof == DetID) {
         if (5 == CbmTofAddress::GetSmType(address)) { continue; }
       }
diff --git a/reco/L1/qa/CbmCaInputQaTof.cxx b/reco/L1/qa/CbmCaInputQaTof.cxx
index e96f4398f8747e07b9ce7877410a6c26fd87d2ea..4d82766cfeb865d44ed1056029e12cd8c5b7c375 100644
--- a/reco/L1/qa/CbmCaInputQaTof.cxx
+++ b/reco/L1/qa/CbmCaInputQaTof.cxx
@@ -224,7 +224,7 @@ InitStatus CbmCaInputQaTof::InitCanvases()
     // NOTE: SZh 11.09.2023: Causes memory overconsumption
     //for (int iSt = 0; iSt < fpDetInterface->GetNtrackingStations(); ++iSt) {
     //  for (int iSmType = 0; iSmType < fDigiBdfPar->GetNbSmTypes(); ++iSmType) {
-    //    if (iSmType == 5) { continue; }  // skip T0
+    //    if (iSmType == 5) { continue; }  // skip Bmon
     //    for (int iSm = 0; iSm < fDigiBdfPar->GetNbSm(iSmType); ++iSm) {
     //      for (int iRpc = 0; iRpc < fDigiBdfPar->GetNbRpc(iSmType); ++iRpc) {
     //        for (int iCh = 0; iCh < fDigiBdfPar->GetNbChan(iSmType, iRpc); ++iCh) {
@@ -279,7 +279,7 @@ InitStatus CbmCaInputQaTof::InitHistograms()
   fvph_hit_zx_vs_cell.resize(nSmTypes);
   fvph_hit_zy_vs_cell.resize(nSmTypes);
   for (int iSmType = 0; iSmType < nSmTypes; ++iSmType) {
-    if (iSmType == 5) { continue; }  // skip T0
+    if (iSmType == 5) { continue; }  // skip Bmon
     MakeQaDirectory(Form("occup_cell/sm_type_%d", iSmType));
     int nSm  = fDigiBdfPar->GetNbSm(iSmType);
     int nRpc = fDigiBdfPar->GetNbRpc(iSmType);
diff --git a/reco/detectors/rich/mcbm/CbmRichMCbmAerogelAna.cxx b/reco/detectors/rich/mcbm/CbmRichMCbmAerogelAna.cxx
index 8c643852aedb940d4ace5210c1bf35fdddd3d97c..b255d14769895cd403615bc8d4ef9b23fa95e69a 100644
--- a/reco/detectors/rich/mcbm/CbmRichMCbmAerogelAna.cxx
+++ b/reco/detectors/rich/mcbm/CbmRichMCbmAerogelAna.cxx
@@ -97,10 +97,10 @@ InitStatus CbmRichMCbmAerogelAna::Init()
   //    fTofTracks =(TClonesArray*) ioman->GetObject("TofTracks");
   //    if (nullptr == fTofTracks) { Fatal("CbmRichMCbmQaReal::Init", "No Tof Tracks!");}
 
-  //     fT0Digis =(TClonesArray*) ioman->GetObject("CbmT0Digi");
-  //     if (nullptr == fT0Digis) { Fatal("CbmRichMCbmQaReal::Init", "No T0 Digis!");}
+  //     fBmonDigis =(TClonesArray*) ioman->GetObject("CbmBmonDigi");
+  //     if (nullptr == fBmonDigis) { Fatal("CbmRichMCbmQaReal::Init", "No Bmon Digis!");}
 
-  //fT0Digis = ioman->InitObjectAs<std::vector<CbmTofDigi> const *>("T0Digi");
+  //fBmonDigis = ioman->InitObjectAs<std::vector<CbmTofDigi> const *>("BmonDigi");
 
   fCbmEvent = dynamic_cast<TClonesArray*>(ioman->GetObject("CbmEvent"));
   if (nullptr == fCbmEvent) { Fatal("fTofDigis::Init", "No Event!"); }
diff --git a/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.cxx b/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.cxx
index b7e93adc98230841a38eceff7c38550a8422fa21..cda9c7665f53911c28b9c910ef91b4a904f3dacc 100644
--- a/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.cxx
+++ b/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.cxx
@@ -66,7 +66,7 @@ double RichZPos = 355.2;
 
 CbmRichMCbmQaReal::CbmRichMCbmQaReal()
   : FairTask("CbmRichMCbmQaReal")
-  , fT0Digis(nullptr)
+  , fBmonDigis(nullptr)
   , fRichHits(nullptr)
   , fRichRings(nullptr)
   , fTofHits(nullptr)
@@ -127,10 +127,10 @@ InitStatus CbmRichMCbmQaReal::Init()
     LOG(warning) << "CbmRichMCbmQaReal::Init: "
                  << "No Tof Tracks!";
 
-  fT0Digis = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("T0Digi");
-  if (nullptr == fT0Digis)
+  fBmonDigis = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("BmonDigi");
+  if (nullptr == fBmonDigis)
     LOG(warning) << "CbmRichMCbmQaReal::Init: "
-                 << "No T0 Digis!";
+                 << "No Bmon Digis!";
 
   fTSHeader = ioman->InitObjectAs<CbmTsEventHeader const*>("EventHeader.");
   if (nullptr == fTSHeader)
@@ -218,10 +218,10 @@ void CbmRichMCbmQaReal::InitHistograms()
   fHM->Create1<TH1D>("fhStsDigisTimeLogZoom", "fhStsDigisTimeLogZoom;Time [ns];Entries", 400, 0., 0.);
   fHM->Create1<TH1D>("fhStsDigisTimeLogZoom2", "fhStsDigisTimeLogZoom2;Time [ns];Entries", 400, 0., 0.);
 
-  //T0
-  fHM->Create1<TH1D>("fhT0DigisTimeLog", "fhT0DigisTimeLog;Time [ns];Entries", 400, 0., 0.);
-  fHM->Create1<TH1D>("fhT0DigisTimeLogZoom", "fhT0DigisTimeLogZoom;Time [ns];Entries", 400, 0., 0.);
-  fHM->Create1<TH1D>("fhT0DigisTimeLogZoom2", "fhT0DigisTimeLogZoom2;Time [ns];Entries", 400, 0., 0.);
+  //Bmon
+  fHM->Create1<TH1D>("fhBmonDigisTimeLog", "fhBmonDigisTimeLog;Time [ns];Entries", 400, 0., 0.);
+  fHM->Create1<TH1D>("fhBmonDigisTimeLogZoom", "fhBmonDigisTimeLogZoom;Time [ns];Entries", 400, 0., 0.);
+  fHM->Create1<TH1D>("fhBmonDigisTimeLogZoom2", "fhBmonDigisTimeLogZoom2;Time [ns];Entries", 400, 0., 0.);
 
   //TRD1D
   fHM->Create1<TH1D>("fhTrd1dDigisTimeLog", "fhTrd1dDigisTimeLog;Time [ns];Entries", 400, 0., 0.);
@@ -533,9 +533,9 @@ void CbmRichMCbmQaReal::InitHistograms()
     fHM->Create2<TH2D>(Form("fhTofHitXZ_Station_%u", i), Form("fhTofHitXZ_Station_%u;Z [cm];X [cm];Entries", i), 350,
                        -0.5, 349.5, 400, -50, 110);
 
-  fHM->Create1<TH1D>("fhT0DigiMultiplicity", "fhT0DigiMultiplicity;multiplicity; Entries", 16, -1.5, 14.5);
-  fHM->Create1<TH1D>("fhT0DigiTime", "fhT0DigiTime;time [ns]; Entries", 500, 0., 100.);
-  fHM->Create1<TH1D>("fhT0DigiTimeEvent", "fhT0DigiTimeEvent;time [ns]; Entries", 500, 0., 100.);
+  fHM->Create1<TH1D>("fhBmonDigiMultiplicity", "fhBmonDigiMultiplicity;multiplicity; Entries", 16, -1.5, 14.5);
+  fHM->Create1<TH1D>("fhBmonDigiTime", "fhBmonDigiTime;time [ns]; Entries", 500, 0., 100.);
+  fHM->Create1<TH1D>("fhBmonDigiTimeEvent", "fhBmonDigiTimeEvent;time [ns]; Entries", 500, 0., 100.);
 
   //Hit Time Plots
   if (fDoTimePlots) {
@@ -618,9 +618,9 @@ void CbmRichMCbmQaReal::Exec(Option_t* /*option*/)
         fHM->H1("fhTrd2dDigisTimeLogZoom")->GetXaxis()->SetLimits(minTime, minTime + dTZoom1);
         fHM->H1("fhTrd2dDigisTimeLogZoom2")->GetXaxis()->SetLimits(minTime, minTime + dTZoom2);
 
-        fHM->H1("fhT0DigisTimeLog")->GetXaxis()->SetLimits(minTime, minTime + dT);
-        fHM->H1("fhT0DigisTimeLogZoom")->GetXaxis()->SetLimits(minTime, minTime + dTZoom1);
-        fHM->H1("fhT0DigisTimeLogZoom2")->GetXaxis()->SetLimits(minTime, minTime + dTZoom2);
+        fHM->H1("fhBmonDigisTimeLog")->GetXaxis()->SetLimits(minTime, minTime + dT);
+        fHM->H1("fhBmonDigisTimeLogZoom")->GetXaxis()->SetLimits(minTime, minTime + dTZoom1);
+        fHM->H1("fhBmonDigisTimeLogZoom2")->GetXaxis()->SetLimits(minTime, minTime + dTZoom2);
 
         fTSMinTime           = tsStartTime;
         fDigiHitsInitialized = true;
@@ -686,19 +686,19 @@ void CbmRichMCbmQaReal::Exec(Option_t* /*option*/)
     }
 
     {
-      Int_t nrT0Digis = 0;
-      if (fT0Digis) nrT0Digis = fT0Digis->size();
-      //else if ( fT0DigiArr ) nrT0Digis = fT0DigiArr->GetEntriesFast();
-      LOG(debug) << "T0Digis: " << nrT0Digis;
-
-      for (Int_t iT0 = 0; iT0 < nrT0Digis; ++iT0) {
-        const CbmTofDigi* T0Digi = nullptr;
-        if (fT0Digis) T0Digi = &(fT0Digis->at(iT0));
-        //else if ( fT0DigiArr ) T0Digi = dynamic_cast<const CbmTofDigi*>(fT0DigiArr->At(iT0));
-        assert(T0Digi);
-        fHM->H1("fhT0DigisTimeLog")->Fill(T0Digi->GetTime() + TsTimeAfterStart);
-        fHM->H1("fhT0DigisTimeLogZoom")->Fill(T0Digi->GetTime() + TsTimeAfterStart);
-        fHM->H1("fhT0DigisTimeLogZoom2")->Fill(T0Digi->GetTime() + TsTimeAfterStart);
+      Int_t nrBmonDigis = 0;
+      if (fBmonDigis) nrBmonDigis = fBmonDigis->size();
+      //else if ( fBmonDigiArr ) nrBmonDigis = fBmonDigiArr->GetEntriesFast();
+      LOG(debug) << "BmonDigis: " << nrBmonDigis;
+
+      for (Int_t iBmon = 0; iBmon < nrBmonDigis; ++iBmon) {
+        const CbmTofDigi* BmonDigi = nullptr;
+        if (fBmonDigis) BmonDigi = &(fBmonDigis->at(iBmon));
+        //else if ( fBmonDigiArr ) BmonDigi = dynamic_cast<const CbmTofDigi*>(fBmonDigiArr->At(iBmon));
+        assert(BmonDigi);
+        fHM->H1("fhBmonDigisTimeLog")->Fill(BmonDigi->GetTime() + TsTimeAfterStart);
+        fHM->H1("fhBmonDigisTimeLogZoom")->Fill(BmonDigi->GetTime() + TsTimeAfterStart);
+        fHM->H1("fhBmonDigisTimeLogZoom2")->Fill(BmonDigi->GetTime() + TsTimeAfterStart);
       }
     }
   }
@@ -764,31 +764,31 @@ void CbmRichMCbmQaReal::Exec(Option_t* /*option*/)
     //        unsigned int flagRich = 0;
     Double_t startTime = std::numeric_limits<Double_t>::max();
 
-    fHM->H1("fhT0DigiMultiplicity")->Fill(ev->GetNofData(ECbmDataType::kT0Digi));
-    //std::cout<<ev->GetNofData(ECbmDataType::kT0Digi)<<std::endl;
-    for (size_t j = 0; j < ev->GetNofData(ECbmDataType::kT0Digi); j++) {
-      auto iT0Digi             = ev->GetIndex(ECbmDataType::kT0Digi, j);
-      const CbmTofDigi* T0Digi = nullptr;
-      if (fT0Digis) T0Digi = &(fT0Digis->at(iT0Digi));
-      assert(T0Digi);
-      fHM->H1("fhT0DigiTimeEvent")->Fill(T0Digi->GetTime() - fCbmEventStartTime);
+    fHM->H1("fhBmonDigiMultiplicity")->Fill(ev->GetNofData(ECbmDataType::kBmonDigi));
+    //std::cout<<ev->GetNofData(ECbmDataType::kBmonDigi)<<std::endl;
+    for (size_t j = 0; j < ev->GetNofData(ECbmDataType::kBmonDigi); j++) {
+      auto iBmonDigi             = ev->GetIndex(ECbmDataType::kBmonDigi, j);
+      const CbmTofDigi* BmonDigi = nullptr;
+      if (fBmonDigis) BmonDigi = &(fBmonDigis->at(iBmonDigi));
+      assert(BmonDigi);
+      fHM->H1("fhBmonDigiTimeEvent")->Fill(BmonDigi->GetTime() - fCbmEventStartTime);
     }
 
-    //std::cout<<"NofT0Digis in TS: "<< fT0Digis->size() <<std::endl;
+    //std::cout<<"NofBmonDigis in TS: "<< fBmonDigis->size() <<std::endl;
     Double_t minT0TimeDiff = std::numeric_limits<Double_t>::max();
     //Double_t T0Time        = std::numeric_limits<Double_t>::max();
-    for (uint32_t j = 0; j < fT0Digis->size(); j++) {
-      const CbmTofDigi* T0Digi = nullptr;
-      if (fT0Digis) T0Digi = &(fT0Digis->at(j));
-      assert(T0Digi);
-      Double_t timeDiffT0 = T0Digi->GetTime() - fCbmEventStartTime;
-      if (std::fabs(timeDiffT0) < std::fabs(minT0TimeDiff)) {
-        minT0TimeDiff = timeDiffT0;
-        //T0Time        = T0Digi->GetTime();
+    for (uint32_t j = 0; j < fBmonDigis->size(); j++) {
+      const CbmTofDigi* BmonDigi = nullptr;
+      if (fBmonDigis) BmonDigi = &(fBmonDigis->at(j));
+      assert(BmonDigi);
+      Double_t timeDiffBmon = BmonDigi->GetTime() - fCbmEventStartTime;
+      if (std::fabs(timeDiffBmon) < std::fabs(minT0TimeDiff)) {
+        minT0TimeDiff = timeDiffBmon;
+        //T0Time        = BmonDigi->GetTime();
       }
     }
-    //std::cout<<"T0Digistime: "<< T0Time << "  EventStartTime:" << fCbmEventStartTime <<"   Time DIff: "<< minT0TimeDiff <<std::endl;
-    fHM->H1("fhT0DigiTime")->Fill(minT0TimeDiff);
+    //std::cout<<"BmonDigistime: "<< T0Time << "  EventStartTime:" << fCbmEventStartTime <<"   Time DIff: "<< minT0TimeDiff <<std::endl;
+    fHM->H1("fhBmonDigiTime")->Fill(minT0TimeDiff);
 
     Double_t meanRichHitTime = 0.;
     if (fDoTimePlots) {
@@ -865,7 +865,7 @@ void CbmRichMCbmQaReal::Exec(Option_t* /*option*/)
         auto iTofHit      = ev->GetIndex(ECbmDataType::kTofHit, k);
         CbmTofHit* tofHit = static_cast<CbmTofHit*>(fTofHits->At(iTofHit));
         if (tofHit->GetTime() < startTime) { startTime = tofHit->GetTime(); /* flagRich = 0;*/ }
-        if (tofHit->GetZ() < 2.) continue;  // Cut T0 away!
+        if (tofHit->GetZ() < 2.) continue;  // Cut Bmon away!
 
         auto TofModulId   = (tofHit->GetAddress() >> 4) & 0x3F;
         auto TofModulType = (tofHit->GetAddress() >> 11) & 0xF;
@@ -1046,7 +1046,7 @@ void CbmRichMCbmQaReal::Exec(Option_t* /*option*/)
     for (size_t j = 0; j < ev->GetNofData(ECbmDataType::kTofHit); j++) {
       auto iTofHit      = ev->GetIndex(ECbmDataType::kTofHit, j);
       CbmTofHit* tofHit = static_cast<CbmTofHit*>(fTofHits->At(iTofHit));
-      if (tofHit->GetZ() < 2.) continue;  // Cut T0 away!
+      if (tofHit->GetZ() < 2.) continue;  // Cut Bmon away!
 
       fHM->H1("fhTofHitsZ")->Fill(tofHit->GetZ());
       fHM->H2("fhTofHitsXZ")->Fill(tofHit->GetZ(), tofHit->GetX());
@@ -1132,7 +1132,7 @@ void CbmRichMCbmQaReal::Exec(Option_t* /*option*/)
               //     if (fEventNum == 4) continue;
               //     if (iTofHit > -1) continue;
               //     const CbmTofHit* tofHit = static_cast<CbmTofHit*>(fTofHits->At(iTofHit));
-              //     if (tofHit->GetZ() < 2.) continue;  // Cut T0 away!
+              //     if (tofHit->GetZ() < 2.) continue;  // Cut Bmon away!
               //     fHM->H2("fhTofTrackHitRichHitX_oBetacuts_dtime")->Fill(richHit->GetX(), tofHit->GetX());
               //     fHM->H2("fhTofTrackHitRichHitY_oBetacuts_dtime")->Fill(richHit->GetY(), tofHit->GetY());
               //   }
@@ -1489,17 +1489,17 @@ void CbmRichMCbmQaReal::DrawHist()
     TCanvas* c = fHM->CreateCanvas("rich_mcbm_richDigisTimeLog", "rich_mcbm_richDigisTimeLog", 1200, 1200);
     c->Divide(1, 2);
     c->cd(1);
-    DrawH1({fHM->H1("fhRichDigisTimeLog"), fHM->H1("fhTofDigisTimeLog"), fHM->H1("fhT0DigisTimeLog"),
+    DrawH1({fHM->H1("fhRichDigisTimeLog"), fHM->H1("fhTofDigisTimeLog"), fHM->H1("fhBmonDigisTimeLog"),
             fHM->H1("fhStsDigisTimeLog"), fHM->H1("fhTrd1dDigisTimeLog"), fHM->H1("fhTrd2dDigisTimeLog")},
-           {"RICH", "TOF", "T0", "STS", "TRD", "TRD2D"}, kLinear, kLog, true, 0.87, 0.75, 0.99, 0.99);
+           {"RICH", "TOF", "Bmon", "STS", "TRD", "TRD2D"}, kLinear, kLog, true, 0.87, 0.75, 0.99, 0.99);
     gPad->SetLeftMargin(0.1);
     gPad->SetRightMargin(0.10);
     fHM->H1("fhStsDigisTimeLog")->GetYaxis()->SetTitleOffset(0.7);
     fHM->H1("fhStsDigisTimeLog")->SetMinimum(0.9);
     c->cd(2);
-    DrawH1({fHM->H1("fhRichDigisTimeLogZoom"), fHM->H1("fhTofDigisTimeLogZoom"), fHM->H1("fhT0DigisTimeLogZoom"),
+    DrawH1({fHM->H1("fhRichDigisTimeLogZoom"), fHM->H1("fhTofDigisTimeLogZoom"), fHM->H1("fhBmonDigisTimeLogZoom"),
             fHM->H1("fhStsDigisTimeLogZoom"), fHM->H1("fhTrd1dDigisTimeLogZoom"), fHM->H1("fhTrd2dDigisTimeLogZoom")},
-           {"RICH", "TOF", "T0", "STS", "TRD", "TRD2D"}, kLinear, kLog, true, 0.87, 0.75, 0.99, 0.99);
+           {"RICH", "TOF", "Bmon", "STS", "TRD", "TRD2D"}, kLinear, kLog, true, 0.87, 0.75, 0.99, 0.99);
     gPad->SetLeftMargin(0.1);
     gPad->SetRightMargin(0.1);
     fHM->H1("fhStsDigisTimeLogZoom")->GetYaxis()->SetTitleOffset(0.7);
@@ -1508,10 +1508,10 @@ void CbmRichMCbmQaReal::DrawHist()
 
   {
     fHM->CreateCanvas("rich_mcbm_richDigisTimeLog2", "rich_mcbm_richDigisTimeLog2", 1200, 600);
-    DrawH1({fHM->H1("fhRichDigisTimeLogZoom2"), fHM->H1("fhTofDigisTimeLogZoom2"), fHM->H1("fhT0DigisTimeLogZoom2"),
+    DrawH1({fHM->H1("fhRichDigisTimeLogZoom2"), fHM->H1("fhTofDigisTimeLogZoom2"), fHM->H1("fhBmonDigisTimeLogZoom2"),
             fHM->H1("fhStsDigisTimeLogZoom2"), fHM->H1("fhTrd1dDigisTimeLogZoom2"),
             fHM->H1("fhTrd2dDigisTimeLogZoom2")},
-           {"RICH", "TOF", "T0", "STS", "TRD", "TRD2D"}, kLinear, kLog, true, 0.87, 0.75, 0.99, 0.99);
+           {"RICH", "TOF", "Bmon", "STS", "TRD", "TRD2D"}, kLinear, kLog, true, 0.87, 0.75, 0.99, 0.99);
     gPad->SetLeftMargin(0.1);
     gPad->SetRightMargin(0.1);
     fHM->H1("fhStsDigisTimeLogZoom2")->GetYaxis()->SetTitleOffset(0.7);
@@ -1522,9 +1522,9 @@ void CbmRichMCbmQaReal::DrawHist()
     fHM->CreateCanvas("rich_mcbm_richDigisRingTimeLog", "rich_mcbm_richDigisRingTimeLog", 1200, 600);
     TH1D* copyRichDigi = (TH1D*) fHM->H1("fhRichDigisTimeLog")->Clone();
     TH1D* copyRichRing = (TH1D*) fHM->H1("fhRichRingsTimeLog")->Clone();
-    DrawH1({copyRichDigi, fHM->H1("fhTofDigisTimeLog"), fHM->H1("fhT0DigisTimeLog"), copyRichRing,
+    DrawH1({copyRichDigi, fHM->H1("fhTofDigisTimeLog"), fHM->H1("fhBmonDigisTimeLog"), copyRichRing,
             fHM->H1("fhStsDigisTimeLog"), fHM->H1("fhTrd1dDigisTimeLog"), fHM->H1("fhTrd2dDigisTimeLog")},
-           {"RICH", "TOF", "T0", "RICH RING", "STS", "TRD", "TRD2D"}, kLinear, kLog, true, 0.83, 0.75, 0.99, 0.99);
+           {"RICH", "TOF", "Bmon", "RICH RING", "STS", "TRD", "TRD2D"}, kLinear, kLog, true, 0.83, 0.75, 0.99, 0.99);
     gPad->SetLeftMargin(0.1);
     gPad->SetRightMargin(0.1);
     copyRichDigi->GetYaxis()->SetTitleOffset(0.7);
@@ -2211,15 +2211,15 @@ void CbmRichMCbmQaReal::DrawHist()
   }
 
   {
-    TCanvas* c = fHM->CreateCanvas("T0", "T0", 2400, 800);
+    TCanvas* c = fHM->CreateCanvas("Bmon", "Bmon", 2400, 800);
     //c->SetLogy();
     c->Divide(3, 1);
     c->cd(1);
-    DrawH1(fHM->H1("fhT0DigiMultiplicity"));
+    DrawH1(fHM->H1("fhBmonDigiMultiplicity"));
     c->cd(2);
-    DrawH1(fHM->H1("fhT0DigiTime"));
+    DrawH1(fHM->H1("fhBmonDigiTime"));
     c->cd(3);
-    DrawH1(fHM->H1("fhT0DigiTimeEvent"));
+    DrawH1(fHM->H1("fhBmonDigiTimeEvent"));
   }
 }
 
diff --git a/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.h b/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.h
index 5c1aa9d1a375e7b32832a940726bc3bbfddd6ecf..aee62c5a5cfeb318be53d5d578d10fe3c96bccf2 100644
--- a/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.h
+++ b/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.h
@@ -142,8 +142,8 @@ public:
 private:
   CbmDigiManager* fDigiMan = nullptr;
 
-  //TClonesArray* fT0Digis;
-  const std::vector<CbmTofDigi>* fT0Digis = nullptr;
+  //TClonesArray* fBmonDigis;
+  const std::vector<CbmTofDigi>* fBmonDigis = nullptr;
 
   TClonesArray* fRichHits;
 
diff --git a/reco/detectors/tof/CbmTofCalibrator.cxx b/reco/detectors/tof/CbmTofCalibrator.cxx
index 54146e1a37aaae699d56cc20bf8babe65263ed53..2656b9fe49b7c6a34f01fd49384cc0348d84a8ab 100644
--- a/reco/detectors/tof/CbmTofCalibrator.cxx
+++ b/reco/detectors/tof/CbmTofCalibrator.cxx
@@ -256,7 +256,6 @@ Bool_t CbmTofCalibrator::CreateCalHist()
 
     Double_t TSumMax = 2.;
     //if(iSmType == 5) TSumMax *= 2.; // enlarge for diamond / beamcounter
-
     fhCalTOff[iDetIndx] = new TH2F(
       Form("cal_SmT%01d_sm%03d_rpc%03d_TOff", iSmType, iSmId, iRpcId),
       Form("Clu T0 deviation of Rpc #%03d in Sm %03d of type %d; Strip []; TOff [ns]", iRpcId, iSmId, iSmType),
diff --git a/reco/detectors/tof/CbmTofEventClusterizer.cxx b/reco/detectors/tof/CbmTofEventClusterizer.cxx
index be5d21c4f377d4c9b73bb1bcba3ed116ec839fce..2536c3e4c6a203cb2bbbf1c438c7699c4847d4be 100644
--- a/reco/detectors/tof/CbmTofEventClusterizer.cxx
+++ b/reco/detectors/tof/CbmTofEventClusterizer.cxx
@@ -419,16 +419,16 @@ void CbmTofEventClusterizer::Exec(Option_t* option)
         LOG(info) << "New Ts " << iNbTs << ", size " << fEventsColl->GetSize() << " at " << fTsHeader->GetTsStartTime()
                   << " with " << fEventsColl->GetEntriesFast() << " events, "
                   << " Ev0 " << (int32_t) tEvent->GetNumber() << ", " << fDigiMan->GetNofDigis(ECbmModuleId::kTof)
-                  << " TOF digis + " << fDigiMan->GetNofDigis(ECbmModuleId::kBmon) << " T0 digis ";
+                  << " TOF digis + " << fDigiMan->GetNofDigis(ECbmModuleId::kBmon) << " Bmon digis ";
       }
       fTofDigiVec.clear();
       //if (fTofDigisColl) fTofDigisColl->Clear("C");
       //Int_t iNbDigis=0;  (VF) not used
-      LOG(debug) << "TS event " << iEvent << " with " << tEvent->GetNofData(ECbmDataType::kT0Digi) << " Bmon and "
+      LOG(debug) << "TS event " << iEvent << " with " << tEvent->GetNofData(ECbmDataType::kBmonDigi) << " BMON and "
                  << tEvent->GetNofData(ECbmDataType::kTofDigi) << " Tof digis ";
 
-      for (auto iDigi = 0; iDigi < (int) tEvent->GetNofData(ECbmDataType::kT0Digi); iDigi++) {
-        Int_t iDigiIndex       = static_cast<Int_t>(tEvent->GetIndex(ECbmDataType::kT0Digi, iDigi));
+      for (auto iDigi = 0; iDigi < (int) tEvent->GetNofData(ECbmDataType::kBmonDigi); iDigi++) {
+        Int_t iDigiIndex = static_cast<Int_t>(tEvent->GetIndex(ECbmDataType::kBmonDigi, iDigi));
         CbmTofDigi tDigi(fDigiMan->Get<CbmBmonDigi>(iDigiIndex));
         if (tDigi.GetType() != 5) {
           //LOG(fatal) << "Wrong T0 type " << tDigi.GetType() << ", Addr 0x" << std::hex << tDigi.GetAddress();
@@ -563,7 +563,7 @@ void CbmTofEventClusterizer::Exec(Option_t* option)
       }
     else {  // MC
       /*
-      for (Int_t iDigi = 0; iDigi < fDigiMan->GetNofDigis(ECbmModuleId::kT0); iDigi++) {
+      for (Int_t iDigi = 0; iDigi < fDigiMan->GetNofDigis(ECbmModuleId::kBmon); iDigi++) {
         const CbmTofDigi* tDigi = fDigiMan->Get<CbmTofDigi>(iDigi);
       }
       */
@@ -689,12 +689,12 @@ Bool_t CbmTofEventClusterizer::RegisterInputs()
     return kFALSE;
   }
   if (fDigiMan->IsPresent(ECbmModuleId::kBmon)) {
-    LOG(info) << GetName() << ": separate T0 digi input!";
-    //fT0DigiVec = fManager->InitObjectAs<std::vector<CbmTofDigi> const*>("TzdDigi");
+    LOG(info) << GetName() << ": separate BMON digi input!";
+    //fBmonDigiVec = fManager->InitObjectAs<std::vector<CbmTofDigi> const*>("TzdDigi");
   }
   else {
     LOG(info) << "No separate BMON digi input found.";
-  }  // if( ! fT0DigiVec )
+  }  // if( ! fBmonDigiVec )
 
   fTrbHeader = (TTrbHeader*) fManager->GetObject("TofTrbHeader.");
   if (NULL == fTrbHeader) {
@@ -2004,7 +2004,7 @@ Bool_t CbmTofEventClusterizer::CreateHistos()
                              1500, -750, 750, 1000, -500, 500);
     fhAllTrkMulPos    = new TH2D("Clus_AllTrkMulPos", "Position of all clusters generating the cluster; X [cm]; Y [cm]",
                               1500, -750, 750, 1000, -500, 500);
-    fhMultiTrkProbPos  = new TH2D("Clus_MultiTrkProbPos",
+    fhMultiTrkProbPos = new TH2D("Clus_MultiTrkProbPos",
                                  "Probability of having a cluster with multiple tracks as "
                                  "function of position; X [cm]; Y [cm]; Prob. [%]",
                                  1500, -750, 750, 1000, -500, 500); 
diff --git a/reco/detectors/tof/CbmTofExtendTracks.cxx b/reco/detectors/tof/CbmTofExtendTracks.cxx
index 4c30d873a81fbc42f7b4e3fcd3292378beb0abc5..810693da3ac2b901bc7a166ae33ce5f7df0efd39 100644
--- a/reco/detectors/tof/CbmTofExtendTracks.cxx
+++ b/reco/detectors/tof/CbmTofExtendTracks.cxx
@@ -584,7 +584,7 @@ void CbmTofExtendTracks::Exec(Option_t* opt)
     fiTS++;
     for (Int_t iEvent = 0; iEvent < fEventsColl->GetEntriesFast(); iEvent++) {
       CbmEvent* tEvent = dynamic_cast<CbmEvent*>(fEventsColl->At(iEvent));
-      LOG(debug) << "Process TS event " << iEvent << " with " << tEvent->GetNofData(ECbmDataType::kT0Hit) << " T0, "
+      LOG(debug) << "Process TS event " << iEvent << " with " << tEvent->GetNofData(ECbmDataType::kBmonHit) << " T0, "
                  << tEvent->GetNofData(ECbmDataType::kTofHit) << " TOF, " << tEvent->GetNofData(ECbmDataType::kStsHit)
                  << " STS, " << tEvent->GetNofData(ECbmDataType::kMuchPixelHit) << " MUCH hits";
 
diff --git a/reco/detectors/tof/CbmTofHitMaker.cxx b/reco/detectors/tof/CbmTofHitMaker.cxx
index d14bf4c6c1729721d434901ffa7b82505eb905ae..ce0dcdeee35d5f5e5f25c4b3c1f28e5ca67ef975 100644
--- a/reco/detectors/tof/CbmTofHitMaker.cxx
+++ b/reco/detectors/tof/CbmTofHitMaker.cxx
@@ -332,11 +332,11 @@ void CbmTofHitMaker::Exec(Option_t* option)
       fTofDigiVec.clear();
       //if (fTofDigisColl) fTofDigisColl->Clear("C");
       //Int_t iNbDigis=0;  (VF) not used
-      LOG(debug) << "TS event " << iEvent << " with " << tEvent->GetNofData(ECbmDataType::kT0Digi) << " T0 and "
+      LOG(debug) << "TS event " << iEvent << " with " << tEvent->GetNofData(ECbmDataType::kBmonDigi) << " Bmon and "
                  << tEvent->GetNofData(ECbmDataType::kTofDigi) << " Tof digis ";
 
-      for (size_t iDigi = 0; iDigi < tEvent->GetNofData(ECbmDataType::kT0Digi); iDigi++) {
-        Int_t iDigiIndex       = static_cast<Int_t>(tEvent->GetIndex(ECbmDataType::kT0Digi, iDigi));
+      for (size_t iDigi = 0; iDigi < tEvent->GetNofData(ECbmDataType::kBmonDigi); iDigi++) {
+        Int_t iDigiIndex = static_cast<Int_t>(tEvent->GetIndex(ECbmDataType::kBmonDigi, iDigi));
         CbmTofDigi tDigi(fDigiMan->Get<CbmBmonDigi>(iDigiIndex));
         if (tDigi.GetType() != 5)
           LOG(fatal) << "Wrong T0 type " << tDigi.GetType() << ", Addr 0x" << std::hex << tDigi.GetAddress();
@@ -477,9 +477,9 @@ Bool_t CbmTofHitMaker::RegisterInputs()
     LOG(error) << GetName() << ": No Tof digi input!";
     return kFALSE;
   }
-  if (fDigiMan->IsPresent(ECbmModuleId::kBmon)) { LOG(info) << GetName() << ": found separate T0 digi input!"; }
+  if (fDigiMan->IsPresent(ECbmModuleId::kBmon)) { LOG(info) << GetName() << ": found separate Bmon digi input!"; }
   else {
-    LOG(info) << "No separate T0 digi input found.";
+    LOG(info) << "No separate Bmon digi input found.";
   }  // if( ! fT0DigiVec )
 
   fTrbHeader = (TTrbHeader*) fManager->GetObject("TofTrbHeader.");
diff --git a/reco/detectors/trd/unpack/CbmTrdUnpackFaspAlgo.h b/reco/detectors/trd/unpack/CbmTrdUnpackFaspAlgo.h
index bbabbe278bfcf8e5fdcfcb82b48079b98f5da986..007781bf304d27e07ac224d46f631c211ca74794 100644
--- a/reco/detectors/trd/unpack/CbmTrdUnpackFaspAlgo.h
+++ b/reco/detectors/trd/unpack/CbmTrdUnpackFaspAlgo.h
@@ -133,7 +133,7 @@ protected:
   /** @brief Time offset for digi wrt the TS start, expressed in 80 MHz clks. It contains:
    *  - relative offset of the MS wrt the TS
    *  - FASP epoch offset for current CROB
-   *  - TRD2D system offset wrt to experiment time (e.g. T0)
+   *  - TRD2D system offset wrt to experiment time (e.g. Bmon)
    */
   ULong64_t fTime = 0;
 
diff --git a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
index 5366eb067de11bf37b8a33e304b181c309751a62..f0a7ca2eb11e21acea38ca38a199e0b85b5a9444 100644
--- a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
+++ b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
@@ -133,7 +133,7 @@ void CbmAlgoBuildRawEvents::ProcessTs()
     /// TODO: store start time of current event ?
     //        fCurrentEvent->SetStartTime( fPrevTime ); // Replace Seed time with time of first digi in event?
     fCurrentEvent->SetEndTime(fdPrevEvtEndTime);
-    SetBmonEventTime(fCurrentEvent);
+    SetT0EventTime(fCurrentEvent);
     fEventVector.push_back(fCurrentEvent);
     fuCurEv++;
 
@@ -355,7 +355,7 @@ void CbmAlgoBuildRawEvents::CheckSeed(Double_t dSeedTime, UInt_t uSeedDigiIdx)
       /// TODO: store start time of current event ?
       //        fCurrentEvent->SetStartTime( fPrevTime ); // Replace Seed time with time of first digi in event?
       fCurrentEvent->SetEndTime(fdPrevEvtEndTime);
-      SetBmonEventTime(fCurrentEvent);
+      SetT0EventTime(fCurrentEvent);
       fEventVector.push_back(fCurrentEvent);
 
       fuCurEv++;
@@ -477,7 +477,7 @@ const CbmFsdDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi)
 template<>
 const CbmBmonDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi)
 {
-  return &((*fT0Digis)[uDigi]);
+  return &((*fBmonDigis)[uDigi]);
 }
 
 
@@ -627,17 +627,17 @@ Bool_t CbmAlgoBuildRawEvents::HasTrigger(CbmEvent* event)
   return kTRUE;
 }
 
-void CbmAlgoBuildRawEvents::SetBmonEventTime(CbmEvent* event)
+void CbmAlgoBuildRawEvents::SetT0EventTime(CbmEvent* event)
 {
-  const int32_t iNbDigis = event->GetNofData(ECbmDataType::kT0Digi);
+  const int32_t iNbDigis = event->GetNofData(ECbmDataType::kBmonDigi);
 
   if (0 < iNbDigis) {
-    uint idx                 = event->GetIndex(ECbmDataType::kT0Digi, 0);
+    uint idx                 = event->GetIndex(ECbmDataType::kBmonDigi, 0);
     const CbmBmonDigi* pDigi = GetDigi<CbmBmonDigi>(idx);
     double eventTime         = pDigi->GetTime();
 
     for (int idigi = 1; idigi < iNbDigis; ++idigi) {
-      idx   = event->GetIndex(ECbmDataType::kT0Digi, idigi);
+      idx   = event->GetIndex(ECbmDataType::kBmonDigi, idigi);
       pDigi = GetDigi<CbmBmonDigi>(idx);
       if (nullptr == pDigi) continue;
       eventTime = std::min(pDigi->GetTime(), eventTime);
@@ -854,7 +854,7 @@ bool CbmAlgoBuildRawEvents::CheckDataAvailable(ECbmModuleId detId)
       return fFsdDigis != nullptr;
     }
     case ECbmModuleId::kBmon: {
-      return fT0Digis != nullptr;
+      return fBmonDigis != nullptr;
     }
     default: {
       LOG(fatal) << "CbmAlgoBuildRawEvents::CheckDataAvailable => "
@@ -893,7 +893,7 @@ UInt_t CbmAlgoBuildRawEvents::GetNofDigis(ECbmModuleId detId)
       return fFsdDigis->size();
     }
     case ECbmModuleId::kBmon: {
-      return fT0Digis->size();
+      return fBmonDigis->size();
     }
     default: {
       LOG(fatal) << "CbmAlgoBuildRawEvents::GetNofDigis => "
@@ -1261,7 +1261,7 @@ void CbmAlgoBuildRawEvents::FillHistos()
         double dTimeDiff = 1.E30;
         uint idx         = evt->GetIndex(fvDets[uDetIdx].dataType, idigi);
         switch (fvDets[uDetIdx].dataType) {
-          case ECbmDataType::kT0Digi: {
+          case ECbmDataType::kBmonDigi: {
             auto pDigi = GetDigi<CbmBmonDigi>(idx);
             if (nullptr == pDigi) continue;
             dTimeDiff = pDigi->GetTime() - evt->GetStartTime();
@@ -1338,7 +1338,7 @@ void CbmAlgoBuildRawEvents::FillHistos()
           double dTimeDiff = 1.E30;
           uint idx         = evt->GetIndex(fRefDet.dataType, idigi);
           switch (fRefDet.dataType) {
-            case ECbmDataType::kT0Digi: {
+            case ECbmDataType::kBmonDigi: {
               auto pDigi = GetDigi<CbmBmonDigi>(idx);
               if (nullptr == pDigi) continue;
               dTimeDiff = pDigi->GetTime() - evt->GetStartTime();
diff --git a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h
index 59b18342e8cdd16fb4e36b03532cc64afb2d59b5..9db01eb3cacbdee23810db65c2d1e9265576315c 100644
--- a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h
+++ b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h
@@ -117,7 +117,7 @@ static const RawEventBuilderDetector kRawEventBuilderDetPsd =
 static const RawEventBuilderDetector kRawEventBuilderDetFsd =
   RawEventBuilderDetector(ECbmModuleId::kFsd, ECbmDataType::kFsdDigi, "Fsd");
 static const RawEventBuilderDetector kRawEventBuilderDetBmon =
-  RawEventBuilderDetector(ECbmModuleId::kBmon, ECbmDataType::kT0Digi, "Bmon");
+  RawEventBuilderDetector(ECbmModuleId::kBmon, ECbmDataType::kBmonDigi, "Bmon");
 static const RawEventBuilderDetector kRawEventBuilderDetUndef = RawEventBuilderDetector();
 
 class CbmAlgoBuildRawEvents {
@@ -198,7 +198,7 @@ public:
   std::vector<std::pair<TCanvas*, std::string>> GetCanvasVector() { return fvpAllCanvasPointers; }
 
   /// Set digi containers
-  void SetDigis(std::vector<CbmBmonDigi>* T0Digis) { fT0Digis = T0Digis; }
+  void SetDigis(std::vector<CbmBmonDigi>* BmonDigis) { fBmonDigis = BmonDigis; }
   void SetDigis(std::vector<CbmStsDigi>* StsDigis) { fStsDigis = StsDigis; }
   void SetDigis(std::vector<CbmMuchDigi>* MuchDigis)
   {
@@ -257,7 +257,7 @@ private:
   void UpdateTimeWinBoundariesExtrema();
   void UpdateWidestTimeWinRange();
 
-  void SetBmonEventTime(CbmEvent* event);
+  void SetT0EventTime(CbmEvent* event);
 
   TFolder* outFolder;  // oputput folder to store histograms
 
@@ -296,7 +296,7 @@ private:
   /// Data input
   TClonesArray* fTimeSliceMetaDataArray = nullptr;  //!
 
-  const std::vector<CbmBmonDigi>* fT0Digis                   = nullptr;
+  const std::vector<CbmBmonDigi>* fBmonDigis                 = nullptr;
   const std::vector<CbmMuchDigi>* fMuchDigis                 = nullptr;
   const std::vector<CbmMuchBeamTimeDigi>* fMuchBeamTimeDigis = nullptr;
   const std::vector<CbmStsDigi>* fStsDigis                   = nullptr;
diff --git a/reco/eventbuilder/digis/CbmBuildEventsIdeal.cxx b/reco/eventbuilder/digis/CbmBuildEventsIdeal.cxx
index e0395f759c5dd696ce8d17b94731ae294355c748..932f4c944da12693af17e58651cbdabbda6e6a41 100644
--- a/reco/eventbuilder/digis/CbmBuildEventsIdeal.cxx
+++ b/reco/eventbuilder/digis/CbmBuildEventsIdeal.cxx
@@ -98,7 +98,7 @@ void CbmBuildEventsIdeal::Exec(Option_t*)
       case ECbmModuleId::kTof: digiType = ECbmDataType::kTofDigi; break;
       case ECbmModuleId::kPsd: digiType = ECbmDataType::kPsdDigi; break;
       case ECbmModuleId::kFsd: digiType = ECbmDataType::kFsdDigi; break;
-      case ECbmModuleId::kBmon: digiType = ECbmDataType::kT0Digi; break;
+      case ECbmModuleId::kBmon: digiType = ECbmDataType::kBmonDigi; break;
       default: break;
     }  //? detector
 
diff --git a/reco/eventbuilder/digis/CbmBuildEventsQa.cxx b/reco/eventbuilder/digis/CbmBuildEventsQa.cxx
index eb519f69aeca771976d700efa082c295cabea47f..62b6fee117ed7f1151606191bbeb50d03bf86f83 100644
--- a/reco/eventbuilder/digis/CbmBuildEventsQa.cxx
+++ b/reco/eventbuilder/digis/CbmBuildEventsQa.cxx
@@ -462,7 +462,7 @@ void CbmBuildEventsQa::Finish()
 ECbmDataType CbmBuildEventsQa::GetDigiType(ECbmModuleId system)
 {
   switch (system) {
-    case ECbmModuleId::kBmon: return ECbmDataType::kT0Digi;
+    case ECbmModuleId::kBmon: return ECbmDataType::kBmonDigi;
     case ECbmModuleId::kMvd: return ECbmDataType::kMvdDigi;
     case ECbmModuleId::kSts: return ECbmDataType::kStsDigi;
     case ECbmModuleId::kRich: return ECbmDataType::kRichDigi;
diff --git a/reco/eventbuilder/digis/CbmSeedFinderQa.cxx b/reco/eventbuilder/digis/CbmSeedFinderQa.cxx
index e2a6ca41f5906622b5cb8c096170d7f997650e00..0302ba42d8fd284a3bc0b6444cb1e9f567c4c8d4 100644
--- a/reco/eventbuilder/digis/CbmSeedFinderQa.cxx
+++ b/reco/eventbuilder/digis/CbmSeedFinderQa.cxx
@@ -114,7 +114,7 @@ void CbmSeedFinderQa::FillQaSeedInfo(const int32_t WinStart, const int32_t WinEn
     const CbmMatch* digiMatch = &(vDigiMatch->at(iDigi));
     digiCount++;
     if (digiMatch->GetNofLinks() == 0) {
-      //skip digis with no links to avoid T0 pollution
+      //skip digis with no links to avoid Bmon pollution
       noiseDigiCount++;
       continue;
     }
@@ -161,7 +161,7 @@ void CbmSeedFinderQa::FillQaSeedInfo(const int32_t WinStart, const int32_t WinEn
   //correct digis in seed window
   for (int32_t iDigi = WinStart; iDigi <= WinEnd; iDigi++) {
     const CbmMatch* digiMatch = &(vDigiMatch->at(iDigi));
-    if (digiMatch->GetNofLinks() == 0) { continue; }  //skip digis with no links to avoid T0 pollution
+    if (digiMatch->GetNofLinks() == 0) { continue; }  //skip digis with no links to avoid Bmon pollution
     const int32_t entry = digiMatch->GetMatchedLink().GetEntry();
     if (entry != -1)  // disregarding noise
     {
@@ -177,7 +177,7 @@ void CbmSeedFinderQa::FillQaSeedInfo(const int32_t WinStart, const int32_t WinEn
   //found digis of matched event in seed window
   for (uint32_t iDigi = 0; iDigi < vDigiMatch->size(); iDigi++) {
     const CbmMatch* digiMatch = &(vDigiMatch->at(iDigi));
-    if (digiMatch->GetNofLinks() == 0) { continue; }  //skip digis with no links to avoid T0 pollution
+    if (digiMatch->GetNofLinks() == 0) { continue; }  //skip digis with no links to avoid Bmon pollution
     const int matchedEvent = digiMatch->GetMatchedLink().GetEntry();
     if (matchedEvent == seedMatch.GetMatchedLink().GetEntry()) { matchedEventDigiCount++; }
   }
diff --git a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx
index a6976272347929b90400c662638378d5f54dcb9f..65ca582908a124ccb4574e2c5d794362c1e00659 100644
--- a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx
+++ b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx
@@ -132,7 +132,7 @@ InitStatus CbmTaskBuildRawEvents::Init()
   InitDigis(ECbmModuleId::kRich, &fRichDigis);
   InitDigis(ECbmModuleId::kPsd, &fPsdDigis);
   InitDigis(ECbmModuleId::kFsd, &fFsdDigis);
-  InitDigis(ECbmModuleId::kBmon, &fT0Digis);
+  InitDigis(ECbmModuleId::kBmon, &fBmonDigis);
 
   /// Register output (array of CbmEvent or vector of CbmDigiEvents)
   if (fbDigiEvtOut) {
@@ -255,7 +255,7 @@ void CbmTaskBuildRawEvents::BuildEvents()
   ReadDigis(ECbmModuleId::kRich, fRichDigis);
   ReadDigis(ECbmModuleId::kPsd, fPsdDigis);
   ReadDigis(ECbmModuleId::kFsd, fFsdDigis);
-  ReadDigis(ECbmModuleId::kBmon, fT0Digis);
+  ReadDigis(ECbmModuleId::kBmon, fBmonDigis);
 
   //Fill seeds
   if (fSeedFinderSlidingWindow != nullptr) { FillSeedTimesFromSlidingWindow(); }
@@ -368,7 +368,7 @@ void CbmTaskBuildRawEvents::FillSeedTimesFromSlidingWindow(const RawEventBuilder
     case ECbmModuleId::kRich: fSeedFinderSlidingWindow->FillSeedTimes(fRichDigis, fvDigiMatchQa); break;
     case ECbmModuleId::kPsd: fSeedFinderSlidingWindow->FillSeedTimes(fPsdDigis, fvDigiMatchQa); break;
     case ECbmModuleId::kFsd: fSeedFinderSlidingWindow->FillSeedTimes(fFsdDigis, fvDigiMatchQa); break;
-    case ECbmModuleId::kBmon: fSeedFinderSlidingWindow->FillSeedTimes(fT0Digis, fvDigiMatchQa); break;
+    case ECbmModuleId::kBmon: fSeedFinderSlidingWindow->FillSeedTimes(fBmonDigis, fvDigiMatchQa); break;
     default: break;
   }
 }
@@ -387,7 +387,7 @@ Double_t CbmTaskBuildRawEvents::GetDigiTime(ECbmModuleId _system, UInt_t _entry)
     case ECbmModuleId::kRich: return (fRichDigis->at(_entry)).GetTime();
     case ECbmModuleId::kPsd: return (fPsdDigis->at(_entry)).GetTime();
     case ECbmModuleId::kFsd: return (fFsdDigis->at(_entry)).GetTime();
-    case ECbmModuleId::kBmon: return (fT0Digis->at(_entry)).GetTime();
+    case ECbmModuleId::kBmon: return (fBmonDigis->at(_entry)).GetTime();
     default: break;
   }
   return -1;
@@ -407,7 +407,7 @@ UInt_t CbmTaskBuildRawEvents::GetNofDigis(ECbmModuleId _system)
     case ECbmModuleId::kRich: return fRichDigis->size();
     case ECbmModuleId::kPsd: return fPsdDigis->size();
     case ECbmModuleId::kFsd: return fFsdDigis->size();
-    case ECbmModuleId::kBmon: return fT0Digis->size();
+    case ECbmModuleId::kBmon: return fBmonDigis->size();
     default: break;
   }
   return 0;
@@ -559,13 +559,14 @@ void CbmTaskBuildRawEvents::ExtractSelectedData(std::vector<CbmEvent*> vEvents)
 
     /// for each detector, find the data in the Digi vectors and copy them
     /// TODO: Template + loop on list of data types?
-    /// ==> T0
-    uint32_t uNbDigis = (0 < event->GetNofData(ECbmDataType::kT0Digi) ? event->GetNofData(ECbmDataType::kT0Digi) : 0);
+    /// ==> Bmon
+    uint32_t uNbDigis =
+      (0 < event->GetNofData(ECbmDataType::kBmonDigi) ? event->GetNofData(ECbmDataType::kBmonDigi) : 0);
     if (0 < uNbDigis) {
-      auto startIt = fT0Digis->begin() + event->GetIndex(ECbmDataType::kT0Digi, 0);
-      auto stopIt  = fT0Digis->begin() + event->GetIndex(ECbmDataType::kT0Digi, uNbDigis - 1);
+      auto startIt = fBmonDigis->begin() + event->GetIndex(ECbmDataType::kBmonDigi, 0);
+      auto stopIt  = fBmonDigis->begin() + event->GetIndex(ECbmDataType::kBmonDigi, uNbDigis - 1);
       ++stopIt;
-      selEvent.fData.fT0.fDigis.assign(startIt, stopIt);
+      selEvent.fData.fBmon.fDigis.assign(startIt, stopIt);
     }
 
     /// ==> STS
diff --git a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h
index 21a2dbb6ad750909a8904da859af58408b8f3fa1..00d6d79a2cef6bc419efef8ed68e5ed80cb10bdd 100644
--- a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h
+++ b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h
@@ -162,7 +162,7 @@ private:
   std::vector<CbmRichDigi>* fRichDigis                 = nullptr;
   std::vector<CbmPsdDigi>* fPsdDigis                   = nullptr;
   std::vector<CbmFsdDigi>* fFsdDigis                   = nullptr;
-  std::vector<CbmBmonDigi>* fT0Digis                   = nullptr;
+  std::vector<CbmBmonDigi>* fBmonDigis                 = nullptr;
   std::vector<Double_t>* fSeedTimes                    = nullptr;
 
   /** Create digi vector and pass to algo **/
diff --git a/reco/global/CMakeLists.txt b/reco/global/CMakeLists.txt
index 8fbe9646b7ace5e23d2c095cbfd4ba22d1486ead..7f01a5c6827f69f4a86108619865648bd0b7bd1c 100644
--- a/reco/global/CMakeLists.txt
+++ b/reco/global/CMakeLists.txt
@@ -18,7 +18,7 @@ set(SRCS
   CbmGlobalTrackFitterIdeal.cxx 
   CbmPVFinderIdeal.cxx       
   CbmTrackMergerIdeal.cxx  
-  CbmRecoBmon.cxx  
+  CbmRecoT0.cxx  
   #CbmTofMergerIdeal.cxx 
   )
 
diff --git a/reco/global/CbmGlobalLinkDef.h b/reco/global/CbmGlobalLinkDef.h
index 886564f0b1c9ea6c228ee8b38e5033be404668e9..53ea77af5c40ca097af840276b103039ec43a397 100644
--- a/reco/global/CbmGlobalLinkDef.h
+++ b/reco/global/CbmGlobalLinkDef.h
@@ -19,7 +19,7 @@
 #pragma link C++ class CbmGlobalTrackFitterIdeal + ;
 #pragma link C++ class CbmPVFinderIdeal + ;
 #pragma link C++ class CbmTrackMergerIdeal + ;
-#pragma link C++ class CbmRecoBmon + ;
+#pragma link C++ class CbmRecoT0 + ;
 //#pragma link C++ class CbmTofMergerIdeal+;
 
 
diff --git a/reco/global/CbmRecoBmon.cxx b/reco/global/CbmRecoT0.cxx
similarity index 87%
rename from reco/global/CbmRecoBmon.cxx
rename to reco/global/CbmRecoT0.cxx
index 37077787c00c5a4c74d7be9553ce0f3c935693f9..dd603697b14aea7114a70fec13f7dabaab9530b6 100644
--- a/reco/global/CbmRecoBmon.cxx
+++ b/reco/global/CbmRecoT0.cxx
@@ -1,9 +1,9 @@
-/* Copyright (C) 2022 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
+/* Copyright (C) 2022-2023 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Volker Friese [committer] */
 
 
-#include "CbmRecoBmon.h"
+#include "CbmRecoT0.h"
 
 #include "CbmBmonDigi.h"
 #include "CbmEvent.h"
@@ -27,17 +27,17 @@ using std::setw;
 
 
 // -----   Constructor   ---------------------------------------------------
-CbmRecoBmon::CbmRecoBmon(const char* name) : FairTask(name) {}
+CbmRecoT0::CbmRecoT0(const char* name) : FairTask(name) {}
 // -------------------------------------------------------------------------
 
 
 // -----   Destructor   ----------------------------------------------------
-CbmRecoBmon::~CbmRecoBmon() {}
+CbmRecoT0::~CbmRecoT0() {}
 // -------------------------------------------------------------------------
 
 
 // -----   Initialization   ------------------------------------------------
-InitStatus CbmRecoBmon::Init()
+InitStatus CbmRecoT0::Init()
 {
 
   std::cout << std::endl;
@@ -49,8 +49,8 @@ InitStatus CbmRecoBmon::Init()
   assert(ioman);
 
   // --- Get BmonDigi array
-  fT0Digis = ioman->InitObjectAs<const std::vector<CbmBmonDigi>*>("T0Digi");
-  if (!fT0Digis) {
+  fBmonDigis = ioman->InitObjectAs<const std::vector<CbmBmonDigi>*>(CbmBmonDigi::GetBranchName());
+  if (!fBmonDigis) {
     LOG(error) << GetName() << ": No BmonDigi array!";
     return kERROR;
   }
@@ -77,20 +77,20 @@ InitStatus CbmRecoBmon::Init()
 
 
 // -----   Public method Exec   --------------------------------------------
-void CbmRecoBmon::Exec(Option_t*)
+void CbmRecoT0::Exec(Option_t*)
 {
 
   // Timer
   TStopwatch timer;
   timer.Start();
-  CbmRecoBmonMoniData tsMonitor {};
+  CbmRecoT0MoniData tsMonitor {};
 
   // Event loop
   Int_t nEvents = fEvents->GetEntriesFast();
   for (Int_t iEvent = 0; iEvent < nEvents; iEvent++) {
     CbmEvent* event = dynamic_cast<CbmEvent*>(fEvents->At(iEvent));
     assert(event);
-    Int_t nDigis = event->GetNofData(ECbmDataType::kT0Digi);
+    Int_t nDigis = event->GetNofData(ECbmDataType::kBmonDigi);
     double tzero = -999999.;
     switch (nDigis) {
 
@@ -103,8 +103,8 @@ void CbmRecoBmon::Exec(Option_t*)
 
       // If there is exactly one BMON digi, take the event time from there
       case 1: {
-        uint32_t digiIndex = event->GetIndex(ECbmDataType::kT0Digi, 0);
-        tzero              = fT0Digis->at(digiIndex).GetTime();
+        uint32_t digiIndex = event->GetIndex(ECbmDataType::kBmonDigi, 0);
+        tzero              = fBmonDigis->at(digiIndex).GetTime();
         tsMonitor.fNumEvtsBmon1++;
         break;
       }
@@ -142,7 +142,7 @@ void CbmRecoBmon::Exec(Option_t*)
 
 
 // -----   Public method Finish   ------------------------------------------
-void CbmRecoBmon::Finish()
+void CbmRecoT0::Finish()
 {
   double tExec     = fMonitor.fExecTime / double(fMonitor.fNumTs);
   double evtsPerTs = double(fMonitor.fNumEvents) / double(fMonitor.fNumTs);
@@ -163,4 +163,4 @@ void CbmRecoBmon::Finish()
 // -------------------------------------------------------------------------
 
 
-ClassImp(CbmRecoBmon)
+ClassImp(CbmRecoT0)
diff --git a/reco/global/CbmRecoBmon.h b/reco/global/CbmRecoT0.h
similarity index 73%
rename from reco/global/CbmRecoBmon.h
rename to reco/global/CbmRecoT0.h
index 421b3921e36b30529da998934b73f83c70dbd372..f4aa914a3fc03155147d29d77a2e24e9900f2372 100644
--- a/reco/global/CbmRecoBmon.h
+++ b/reco/global/CbmRecoT0.h
@@ -15,12 +15,12 @@
 class TClonesArray;
 
 
-/** @struct CbmRecoBmonMoniData
- ** @brief Monitor data for T0 reconstruction
+/** @struct CbmRecoT0MoniData
+ ** @brief Monitor data for Bmon reconstruction
  ** @author Volker Friese <v.friese@gsi.de>
  ** @since 10.11.2022
  **/
-struct CbmRecoBmonMoniData {
+struct CbmRecoT0MoniData {
   size_t fNumTs        = 0;
   size_t fNumEvents    = 0;
   size_t fNumEvtsBmon0 = 0;
@@ -28,7 +28,7 @@ struct CbmRecoBmonMoniData {
   size_t fNumEvtsBmonn = 0;
   double fExecTime     = 0.;
 
-  CbmRecoBmonMoniData& operator+=(const CbmRecoBmonMoniData& other)
+  CbmRecoT0MoniData& operator+=(const CbmRecoT0MoniData& other)
   {
     fNumTs += other.fNumTs;
     fNumEvents += other.fNumEvents;
@@ -40,7 +40,7 @@ struct CbmRecoBmonMoniData {
   }
 };
 
-/** @class CbmRecoBmon
+/** @class CbmRecoT0
  ** @brief Task class for reconstruction of the event t0
  ** @author Volker Friese <v.friese@gsi.de>
  ** @since 10.11.2022
@@ -48,7 +48,7 @@ struct CbmRecoBmonMoniData {
  ** The current implementation reads the t0 information from the TdzDigi object. t0 is set to -1. if
  ** no such object is in the event, and to -2. if there are several.
  **/
-class CbmRecoBmon : public FairTask {
+class CbmRecoT0 : public FairTask {
 
 public:
   /** @brief Constructor
@@ -56,11 +56,11 @@ public:
    ** @param name    Name of task
    ** @param title   Title of task
    **/
-  CbmRecoBmon(const char* name = "RecoBmon");
+  CbmRecoT0(const char* name = "RecoBmon");
 
 
   /** @brief Destructor **/
-  virtual ~CbmRecoBmon();
+  virtual ~CbmRecoT0();
 
 
   /** @brief Initialisation **/
@@ -77,14 +77,14 @@ public:
 
 private:
   // --- Data
-  const std::vector<CbmBmonDigi>* fT0Digis = nullptr;  ///< BMON digis
-  TClonesArray* fEvents                    = nullptr;  ///< CbmEvent
+  const std::vector<CbmBmonDigi>* fBmonDigis = nullptr;  ///< BMON digis
+  TClonesArray* fEvents                      = nullptr;  ///< CbmEvent
 
   // --- Monitor
-  CbmRecoBmonMoniData fMonitor = {};  ///< Monitor data
+  CbmRecoT0MoniData fMonitor = {};  ///< Monitor data
 
 
-  ClassDef(CbmRecoBmon, 1);
+  ClassDef(CbmRecoT0, 1);
 };
 
 #endif
diff --git a/reco/mq/CbmDevBuildEvents.cxx b/reco/mq/CbmDevBuildEvents.cxx
index 7ae4ba650d3a8d79d7e3b80d085fd22a606012aa..94f8ed16898887a1492eb006b4e9af87f1122546 100644
--- a/reco/mq/CbmDevBuildEvents.cxx
+++ b/reco/mq/CbmDevBuildEvents.cxx
@@ -211,7 +211,7 @@ bool CbmDevBuildEvents::HandleData(FairMQParts& parts, int /*index*/)
   //fpAlgo->SetTsParameters(0, fTsMetaDataOut->GetDuration(), fTsMetaDataOut->GetOverlapDuration());
   //}
 
-  LOG(debug) << "T0 Vector size: " << ts.fData.fT0.fDigis.size();
+  LOG(debug) << "Bmon Vector size: " << ts.fData.fBmon.fDigis.size();
   LOG(debug) << "STS Vector size: " << ts.fData.fSts.fDigis.size();
   LOG(debug) << "MUCH Vector size: " << ts.fData.fMuch.fDigis.size();
   LOG(debug) << "TRD Vector size: " << ts.fData.fTrd.fDigis.size();
diff --git a/reco/mq/CbmDevTrigger.cxx b/reco/mq/CbmDevTrigger.cxx
index e2b00ffa3f5e7c3aeb16729da9c7a32e42b5de84..8af405350ab323db867da6d4fbfd7b011b10ef1b 100644
--- a/reco/mq/CbmDevTrigger.cxx
+++ b/reco/mq/CbmDevTrigger.cxx
@@ -97,7 +97,7 @@ bool CbmDevTrigger::HandleData(FairMQParts& parts, int /*index*/)
   boost::archive::binary_iarchive inputArchiveTS(issTS);
   inputArchiveTS >> ts;
 
-  LOG(debug) << "T0 Vector size: " << ts.fData.fT0.fDigis.size();
+  LOG(debug) << "Bmon Vector size: " << ts.fData.fBmon.fDigis.size();
   LOG(debug) << "STS Vector size: " << ts.fData.fSts.fDigis.size();
   LOG(debug) << "MUCH Vector size: " << ts.fData.fMuch.fDigis.size();
   LOG(debug) << "TRD Vector size: " << ts.fData.fTrd.fDigis.size();
diff --git a/reco/offline/steer/Run.cxx b/reco/offline/steer/Run.cxx
index f23b09cc3c44c828d9b52662e73ca5a2f6332687..94d12c10bd808b7c2cf994656c5934f1e14affa1 100644
--- a/reco/offline/steer/Run.cxx
+++ b/reco/offline/steer/Run.cxx
@@ -126,7 +126,7 @@ namespace cbm::reco::offline
       fact.RegisterGlobalTracking();    // Global tracking
       fact.RegisterTrdPid();            // PID in TRD
       fact.RegisterRichReco();          // Local RICH reconstruction
-      fact.RegisterBmonReco();          // Reconstruction of T0 from BMON
+      fact.RegisterBmonReco();          // Reconstruction of Bmon from BMON
     }
 
     // --- Mode not defined
diff --git a/reco/offline/steer/TaskFactory.cxx b/reco/offline/steer/TaskFactory.cxx
index 8ca1560a188193cb1faaf474e6a0f6e314e67003..09916f94db88d290476376fa742e6c7fa0d995e9 100644
--- a/reco/offline/steer/TaskFactory.cxx
+++ b/reco/offline/steer/TaskFactory.cxx
@@ -22,8 +22,8 @@
 #include "CbmMvdClusterfinder.h"
 #include "CbmMvdHitfinder.h"
 #include "CbmPVFinderKF.h"
-#include "CbmRecoBmon.h"
 #include "CbmRecoSts.h"
+#include "CbmRecoT0.h"
 #include "CbmRichHitProducer.h"
 #include "CbmRichReconstruction.h"
 #include "CbmSetup.h"
@@ -325,7 +325,7 @@ namespace cbm::reco::offline
   void TaskFactory::RegisterBmonReco()
   {
     assert(fRun);
-    CbmRecoBmon* recoBmon = new CbmRecoBmon();
+    CbmRecoT0* recoBmon = new CbmRecoT0();
     fRun->AddTask(recoBmon);
   }
   // --------------------------------------------------------------------------
diff --git a/reco/offline/steer/TaskFactory.h b/reco/offline/steer/TaskFactory.h
index 4dd3f1564b33f0ca631aa9292d28847a388a2437..5d80e35b26ddf23b7b3adcbfe8c17bd7444a9e69 100644
--- a/reco/offline/steer/TaskFactory.h
+++ b/reco/offline/steer/TaskFactory.h
@@ -42,7 +42,7 @@ namespace cbm::reco::offline
     void RegisterTrackEventBuilder();  /// Event building from tracks
     void RegisterTrdReco();            /// Local reconstruction for TRD
     void RegisterTrdPid();             /// PID with TRD
-    void RegisterBmonReco();           /// Reconstruction of T0
+    void RegisterBmonReco();           /// Reconstruction of Bmon
 
   private:  //members
     Run* fRun = nullptr;
diff --git a/reco/tasks/CbmTaskBuildEvents.cxx b/reco/tasks/CbmTaskBuildEvents.cxx
index 89928c7aacdda926c089722171e5556b100f6d86..37d805f735b4d42d75aea52c3ad638fcc6f8a8ef 100644
--- a/reco/tasks/CbmTaskBuildEvents.cxx
+++ b/reco/tasks/CbmTaskBuildEvents.cxx
@@ -231,7 +231,7 @@ size_t CbmTaskBuildEvents::GetNumDigis(const CbmDigiData& data, ECbmModuleId sys
     case ECbmModuleId::kTrd2d: result = data.fTrd2d.fDigis.size(); break;
     case ECbmModuleId::kTof: result = data.fTof.fDigis.size(); break;
     case ECbmModuleId::kPsd: result = data.fPsd.fDigis.size(); break;
-    case ECbmModuleId::kBmon: result = data.fT0.fDigis.size(); break;
+    case ECbmModuleId::kBmon: result = data.fBmon.fDigis.size(); break;
     default: result = 0; break;
   }
   return result;
diff --git a/reco/tasks/CbmTaskMakeRecoEvents.cxx b/reco/tasks/CbmTaskMakeRecoEvents.cxx
index 17a183b3231f8d1ccfd25103370327aa8b09d698..980398d6c1016b2d95515a59cf2d579b5b44db55 100644
--- a/reco/tasks/CbmTaskMakeRecoEvents.cxx
+++ b/reco/tasks/CbmTaskMakeRecoEvents.cxx
@@ -45,7 +45,7 @@ void CbmTaskMakeRecoEvents::Exec(Option_t*)
   if (!fDigiEvents) return;
 
   // --- Clear output arrays
-  fT0Digis->clear();
+  fBmonDigis->clear();
   fStsDigis->clear();
   fRichDigis->clear();
   fMuchDigis->clear();
@@ -64,7 +64,7 @@ void CbmTaskMakeRecoEvents::Exec(Option_t*)
     CbmEvent* recoEvent = new ((*fRecoEvents)[eventNr]) CbmEvent(eventNr);
 
     // --- Copy Bmon digis
-    FillTree<CbmBmonDigi>(digiEvent.fData.fT0.fDigis, fT0Digis, recoEvent, ECbmDataType::kT0Digi);
+    FillTree<CbmBmonDigi>(digiEvent.fData.fBmon.fDigis, fBmonDigis, recoEvent, ECbmDataType::kBmonDigi);
 
     // --- Copy STS digis
     FillTree<CbmStsDigi>(digiEvent.fData.fSts.fDigis, fStsDigis, recoEvent, ECbmDataType::kStsDigi);
@@ -92,7 +92,7 @@ void CbmTaskMakeRecoEvents::Exec(Option_t*)
   stringstream logOut;
   logOut << setw(20) << left << GetName() << " [";
   logOut << fixed << setw(8) << setprecision(1) << right << timer.RealTime() * 1000. << " ms] ";
-  logOut << "TS " << fNumTs << ", events " << fDigiEvents->size() << ", Digis: Bmon " << fT0Digis->size() << " STS "
+  logOut << "TS " << fNumTs << ", events " << fDigiEvents->size() << ", Digis: Bmon " << fBmonDigis->size() << " STS "
          << fStsDigis->size() << " RICH " << fRichDigis->size() << " MUCH " << fMuchDigis->size() << " TRD "
          << fTrdDigis->size() << " TOF " << fTofDigis->size() << " PSD " << fPsdDigis->size();
   LOG(info) << logOut.str();
@@ -150,8 +150,8 @@ InitStatus CbmTaskMakeRecoEvents::Init()
     }
 
     // --- Bmon digis
-    fT0Digis = new std::vector<CbmBmonDigi>;
-    frm->RegisterAny("T0Digi", fT0Digis, kFALSE);
+    fBmonDigis = new std::vector<CbmBmonDigi>;
+    frm->RegisterAny("BmonDigi", fBmonDigis, kFALSE);
 
     // --- STS digis
     fStsDigis = new std::vector<CbmStsDigi>;
diff --git a/reco/tasks/CbmTaskMakeRecoEvents.h b/reco/tasks/CbmTaskMakeRecoEvents.h
index 70e5433f3d5e84831e76607336226b4fd5108fa1..f27c869518074204c3686c042aed3bc83c2247cc 100644
--- a/reco/tasks/CbmTaskMakeRecoEvents.h
+++ b/reco/tasks/CbmTaskMakeRecoEvents.h
@@ -93,7 +93,7 @@ private:  // methods
 private:  // members
   const std::vector<CbmDigiEvent>* fDigiEvents = nullptr;
   TClonesArray* fRecoEvents                    = nullptr;
-  std::vector<CbmBmonDigi>* fT0Digis           = nullptr;
+  std::vector<CbmBmonDigi>* fBmonDigis         = nullptr;
   std::vector<CbmStsDigi>* fStsDigis           = nullptr;
   std::vector<CbmRichDigi>* fRichDigis         = nullptr;
   std::vector<CbmMuchDigi>* fMuchDigis         = nullptr;
diff --git a/reco/tasks/CbmTaskTofClusterizer.cxx b/reco/tasks/CbmTaskTofClusterizer.cxx
index 1c323ec22934cad09069393ac7ce290631215e21..ceb8b33eff3921ccdd79c58b1cc5c22ac4bced04 100644
--- a/reco/tasks/CbmTaskTofClusterizer.cxx
+++ b/reco/tasks/CbmTaskTofClusterizer.cxx
@@ -74,7 +74,7 @@ void CbmTaskTofClusterizer::Exec(Option_t* option)
     if (NULL != fTsHeader)
       LOG(info) << "New Ts " << iNbTs << ", size " << fEventsColl->GetSize() << " at " << fTsHeader->GetTsStartTime()
                 << " with " << fEventsColl->GetEntriesFast() << " events, " << fDigiMan->GetNofDigis(ECbmModuleId::kTof)
-                << " TOF digis + " << fDigiMan->GetNofDigis(ECbmModuleId::kBmon) << " T0 digis ";
+                << " TOF digis + " << fDigiMan->GetNofDigis(ECbmModuleId::kBmon) << " Bmon digis ";
 
     TStopwatch timerTs;
     timerTs.Start();
@@ -89,11 +89,11 @@ void CbmTaskTofClusterizer::Exec(Option_t* option)
     for (int32_t iEvent = 0; iEvent < fEventsColl->GetEntriesFast(); iEvent++) {
       CbmEvent* tEvent = dynamic_cast<CbmEvent*>(fEventsColl->At(iEvent));
       fTofDigiVec.clear();
-      LOG(debug) << "TS event " << iEvent << " with " << tEvent->GetNofData(ECbmDataType::kT0Digi) << " T0 and "
+      LOG(debug) << "TS event " << iEvent << " with " << tEvent->GetNofData(ECbmDataType::kBmonDigi) << " Bmon and "
                  << tEvent->GetNofData(ECbmDataType::kTofDigi) << " Tof digis ";
 
-      for (int32_t iDigi = 0; iDigi < tEvent->GetNofData(ECbmDataType::kT0Digi); iDigi++) {
-        int32_t iDigiIndex = static_cast<int32_t>(tEvent->GetIndex(ECbmDataType::kT0Digi, iDigi));
+      for (int32_t iDigi = 0; iDigi < tEvent->GetNofData(ECbmDataType::kBmonDigi); iDigi++) {
+        int32_t iDigiIndex = static_cast<int32_t>(tEvent->GetIndex(ECbmDataType::kBmonDigi, iDigi));
         CbmTofDigi tDigi(fDigiMan->Get<CbmBmonDigi>(iDigiIndex));
         if (tDigi.GetType() != 5) {
           tDigi.SetAddress(0, 0, 0, 0, 5);  // convert to Tof Address
@@ -155,7 +155,7 @@ void CbmTaskTofClusterizer::Exec(Option_t* option)
     LOG(debug) << GetName() << "::Exec: real time=" << timerTs.RealTime() << " CPU time=" << timerTs.CpuTime();
     fProcessTime += timerTs.RealTime();
     fuNbDigis += fDigiMan->GetNofDigis(ECbmModuleId::kTof)      // TOF
-                 + fDigiMan->GetNofDigis(ECbmModuleId::kBmon);  // T0
+                 + fDigiMan->GetNofDigis(ECbmModuleId::kBmon);  // Bmon
     fuNbHits += fiHitStart;
 
     std::stringstream logOut;
@@ -175,11 +175,11 @@ void CbmTaskTofClusterizer::Exec(Option_t* option)
     // also the internal data representations are changed to std::vectors.
 
     fTofDigiVec.clear();
-    if (NULL != fT0DigiVec) {  // 2022 data
-      for (int32_t iDigi = 0; iDigi < (int) (fT0DigiVec->size()); iDigi++) {
-        CbmTofDigi tDigi = fT0DigiVec->at(iDigi);
+    if (NULL != fBmonDigiVec) {  // 2022 data
+      for (int32_t iDigi = 0; iDigi < (int) (fBmonDigiVec->size()); iDigi++) {
+        CbmTofDigi tDigi = fBmonDigiVec->at(iDigi);
         if (tDigi.GetType() != 5)
-          LOG(fatal) << "Wrong T0 type " << tDigi.GetType() << ", Addr 0x" << std::hex << tDigi.GetAddress();
+          LOG(fatal) << "Wrong Bmon type " << tDigi.GetType() << ", Addr 0x" << std::hex << tDigi.GetAddress();
         if (tDigi.GetSide() == 1) {  // HACK for May22 setup
           tDigi.SetAddress(tDigi.GetSm(), tDigi.GetRpc(), tDigi.GetChannel() + 6, 0, tDigi.GetType());
         }
@@ -260,12 +260,12 @@ bool CbmTaskTofClusterizer::RegisterInputs()
     return false;
   }
   if (fDigiMan->IsPresent(ECbmModuleId::kBmon)) {
-    LOG(info) << GetName() << ": separate T0 digi input!";
-    //fT0DigiVec = fManager->InitObjectAs<std::vector<CbmTofDigi> const*>("TzdDigi");
+    LOG(info) << GetName() << ": separate Bmon digi input!";
+    //fBmonDigiVec = fManager->InitObjectAs<std::vector<CbmTofDigi> const*>("TzdDigi");
   }
   else {
-    LOG(info) << "No separate T0 digi input found.";
-  }  // if( ! fT0DigiVec )
+    LOG(info) << "No separate Bmon digi input found.";
+  }  // if( ! fBmonDigiVec )
 
   fTsHeader = fManager->InitObjectAs<CbmTsEventHeader const*>("EventHeader.");  //for data
   if (NULL == fTsHeader) { LOG(info) << "CbmTaskTofClusterizer::RegisterInputs => Could not get TsHeader Object"; }
diff --git a/reco/tasks/CbmTaskTofClusterizer.h b/reco/tasks/CbmTaskTofClusterizer.h
index 049daf203a8a369142bb9865ef417cb00de086f0..549b3bd110de8e29c24f1f6b37128eb8953d3492 100644
--- a/reco/tasks/CbmTaskTofClusterizer.h
+++ b/reco/tasks/CbmTaskTofClusterizer.h
@@ -96,7 +96,7 @@ private:
   int fiHitStart               = 0;
   bool bAddBeamCounterSideDigi = true;
 
-  std::vector<CbmTofDigi>* fT0DigiVec = nullptr;  //! T0 Digis
+  std::vector<CbmTofDigi>* fBmonDigiVec = nullptr;  //! Bmon Digis
 
   /**
        ** @brief Copy constructor.
diff --git a/reco/tasks/CbmTaskTriggerDigi.cxx b/reco/tasks/CbmTaskTriggerDigi.cxx
index bb10a77761af0751004662a5b7b993c865e7b751..355fb85745c7e23bcb252d0f65303f2d50b2adfb 100644
--- a/reco/tasks/CbmTaskTriggerDigi.cxx
+++ b/reco/tasks/CbmTaskTriggerDigi.cxx
@@ -177,9 +177,9 @@ std::vector<double> CbmTaskTriggerDigi::GetDigiTimes(ECbmModuleId system)
       break;
     }
     case ECbmModuleId::kBmon: {
-      result.resize(fTimeslice->fData.fT0.fDigis.size());
-      auto it1 = fTimeslice->fData.fT0.fDigis.begin();
-      auto it2 = fTimeslice->fData.fT0.fDigis.end();
+      result.resize(fTimeslice->fData.fBmon.fDigis.size());
+      auto it1 = fTimeslice->fData.fBmon.fDigis.begin();
+      auto it2 = fTimeslice->fData.fBmon.fDigis.end();
       std::transform(it1, it2, result.begin(), [](const CbmTofDigi& digi) { return digi.GetTime(); });
       break;
     }
diff --git a/sim/detectors/trd/CbmTrdDigitizer.cxx b/sim/detectors/trd/CbmTrdDigitizer.cxx
index 023069fa2dc8a17bdd6f3edc496d081bbf9165fb..af9f1b4e812e372198f50449137448b343facd88 100644
--- a/sim/detectors/trd/CbmTrdDigitizer.cxx
+++ b/sim/detectors/trd/CbmTrdDigitizer.cxx
@@ -321,7 +321,7 @@ CbmTrdModuleSim* CbmTrdDigitizer::AddModule(Int_t detId)
     else
       SetUseFASP();
     module = fModuleMap[moduleAddress] = new CbmTrdModuleSim2D(moduleAddress, lyId, orientation, UseFASP());
-    // AB :: calibration wrt the Tof detector as the T0 simulation is still in development (14.07.2022)
+    // AB :: calibration wrt the Tof detector as the Bmon simulation is still in development (14.07.2022)
     module->SetTimeSysOffset(-400);
     Int_t rType(-1);
     if ((rType = geoHandler.GetRadiatorType(path)) >= 0) {
diff --git a/sim/detectors/trd/CbmTrdModuleSim.h b/sim/detectors/trd/CbmTrdModuleSim.h
index 777cae79e6f8d2ef775197c6bc88400a50339e3b..14a5f8ca55efce50580444611686e265a6222d59 100644
--- a/sim/detectors/trd/CbmTrdModuleSim.h
+++ b/sim/detectors/trd/CbmTrdModuleSim.h
@@ -93,7 +93,7 @@ protected:
   Int_t fPointId;               ///< MC point id being processed
   Int_t fEventId;               ///< MC event id being processed
   Int_t fInputId;               ///< MC input file number
-  Int_t fTimeSysOffset = 0;     ///< Time offset of TRD digis to align them with other detectors (T0, ToF)
+  Int_t fTimeSysOffset = 0;     ///< Time offset of TRD digis to align them with other detectors (Bmon, ToF)
   Double_t fXYZ[3];             ///< MC position of the point in module coordinates
   CbmTrdDigitizer* fDigitizer;  //! Pointer to digitizer