diff --git a/macro/run/run_reco.C b/macro/run/run_reco.C
index b318ab8f944a0b3f9314324162e7d50954b97233..9bcac0d06b152d7a61224dd1be004b4cec82732b 100644
--- a/macro/run/run_reco.C
+++ b/macro/run/run_reco.C
@@ -222,8 +222,16 @@ void run_reco(TString input        = "",
       /* switch between 2019 and 2021 version here, which have the same interface
       CbmMcbm2019TimeWinEventBuilderTask* evBuildRaw =
         new CbmMcbm2019TimeWinEventBuilderTask();
-*/
-      Cbm2021EventBuilderTask* evBuildRaw = new Cbm2021EventBuilderTask();
+
+      //Choose between NoOverlap, MergeOverlap, AllowOverlap
+      evBuildRaw->SetEventOverlapMode(EOverlapMode::AllowOverlap);  // for 2019 version
+      */
+
+      CbmTaskBuildRawEvents* evBuildRaw = new CbmTaskBuildRawEvents();
+
+      //Choose between NoOverlap, MergeOverlap, AllowOverlap
+      evBuildRaw->SetEventOverlapMode(
+        EOverlapModeRaw::AllowOverlap);  // for raw version
 
       evBuildRaw->SetTsParameters(0.0, 1.e7, 0.0);
 
@@ -243,8 +251,6 @@ void run_reco(TString input        = "",
       // Set STS as reference detector
       evBuildRaw->SetReferenceDetector(kEventBuilderDetSts);
 
-      //Choose between NoOverlap, MergeOverlap, AllowOverlap
-      evBuildRaw->SetEventOverlapMode(EOverlapMode::AllowOverlap);
 
       evBuildRaw->SetTriggerMinNumber(ECbmModuleId::kSts, 10);
       evBuildRaw->SetTriggerMaxNumber(ECbmModuleId::kSts, -1);
diff --git a/reco/eventbuilder/CMakeLists.txt b/reco/eventbuilder/CMakeLists.txt
index 497cfe31ff6413256cfd962c36b0f820d481cc51..17f0aaa1af6f661c70b2b23a2d3d5318f393d875 100644
--- a/reco/eventbuilder/CMakeLists.txt
+++ b/reco/eventbuilder/CMakeLists.txt
@@ -67,8 +67,8 @@ link_directories( ${LINK_DIRECTORIES})
 
 set(SRCS
 
-digis/Cbm2021EventBuilderAlgo.cxx
-digis/Cbm2021EventBuilderTask.cxx
+digis/CbmAlgoBuildRawEvents.cxx
+digis/CbmTaskBuildRawEvents.cxx
 digis/CbmBuildEventsIdeal.cxx
 digis/CbmBuildEventsIdealNew.cxx
 digis/CbmBuildEventsQA.cxx
diff --git a/reco/eventbuilder/CbmEventBuilderLinkDef.h b/reco/eventbuilder/CbmEventBuilderLinkDef.h
index bdbb341089fe66e9bc0f60b15b90ecbf3c86dd56..1f6d5431ab5e6535572681af5dc6a41f3f47b566 100644
--- a/reco/eventbuilder/CbmEventBuilderLinkDef.h
+++ b/reco/eventbuilder/CbmEventBuilderLinkDef.h
@@ -4,14 +4,14 @@
 #pragma link off all classes;
 #pragma link off all functions;
 
-#pragma link C++ class Cbm2021EventBuilderAlgo + ;
-#pragma link C++ class Cbm2021EventBuilderTask + ;
+#pragma link C++ class CbmAlgoBuildRawEvents + ;
+#pragma link C++ class CbmTaskBuildRawEvents + ;
 #pragma link C++ class CbmBuildEventsFromTracksIdeal + ;
 #pragma link C++ class CbmBuildEventsFromTracksReal + ;
 #pragma link C++ class CbmEventBuilderQA + ;
 #pragma link C++ class CbmBuildEventsIdeal + ;
 #pragma link C++ class CbmBuildEventsIdealNew + ;
-#pragma link C++ class CbmBuildEventsQA+;
+#pragma link C++ class CbmBuildEventsQA + ;
 #pragma link C++ class CbmBuildEventsSimple + ;
 //#pragma link C++ class CbmEvBuildSource+;
 
diff --git a/reco/eventbuilder/digis/Cbm2021EventBuilderAlgo.cxx b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
similarity index 79%
rename from reco/eventbuilder/digis/Cbm2021EventBuilderAlgo.cxx
rename to reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
index 7900102945b552c38cb8ef5f83effc8db47a9495..4dc89a563a80f147277af123b03031de859adea5 100644
--- a/reco/eventbuilder/digis/Cbm2021EventBuilderAlgo.cxx
+++ b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
@@ -5,7 +5,7 @@
  *              GNU Lesser General Public Licence (LGPL) version 3,             *
  *                  copied verbatim in the file "LICENSE"                       *
  ********************************************************************************/
-#include "Cbm2021EventBuilderAlgo.h"
+#include "CbmAlgoBuildRawEvents.h"
 
 /// CBM headers
 #include "CbmEvent.h"
@@ -33,14 +33,14 @@
 /// C/C++ headers
 
 // ---- Default constructor --------------------------------------------
-Cbm2021EventBuilderAlgo::Cbm2021EventBuilderAlgo() {}
+CbmAlgoBuildRawEvents::CbmAlgoBuildRawEvents() {}
 
 // ---- Destructor -----------------------------------------------------
-Cbm2021EventBuilderAlgo::~Cbm2021EventBuilderAlgo() {}
+CbmAlgoBuildRawEvents::~CbmAlgoBuildRawEvents() {}
 
 // ---- Init -----------------------------------------------------------
-Bool_t Cbm2021EventBuilderAlgo::InitAlgo() {
-  LOG(info) << "Cbm2021EventBuilderAlgo::InitAlgo => Starting sequence";
+Bool_t CbmAlgoBuildRawEvents::InitAlgo() {
+  LOG(info) << "CbmAlgoBuildRawEvents::InitAlgo => Starting sequence";
 
   // Get a handle from the IO manager
   FairRootManager* ioman = FairRootManager::Instance();
@@ -51,14 +51,14 @@ Bool_t Cbm2021EventBuilderAlgo::InitAlgo() {
   }  // if( kFALSE == CheckDataAvailable( fRefDet ) )
 
   /// Check if data for detectors in selection list are available
-  for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
+  for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin();
        det != fvDets.end();
        ++det) {
     if (kFALSE == CheckDataAvailable(*det)) {
       LOG(fatal)
         << "No digi input for one of selection detector, stopping there!";
     }  // if( kFALSE == CheckDataAvailable( *det ) )
-  }  // for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det)
+  }  // for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det)
 
   /// Access the TS metadata to know TS start time if needed
   if (fdTsStartTime < 0 || fdTsLength < 0 || fdTsOverLength < 0) {
@@ -76,13 +76,13 @@ Bool_t Cbm2021EventBuilderAlgo::InitAlgo() {
 
   if (fbFillHistos) { CreateHistograms(); }  // if( fbFillHistos )
 
-  LOG(info) << "Cbm2021EventBuilderAlgo::InitAlgo => Done";
+  LOG(info) << "CbmAlgoBuildRawEvents::InitAlgo => Done";
 
   return kTRUE;
 }
 
 // ---- ProcessTs ------------------------------------------------------
-void Cbm2021EventBuilderAlgo::ProcessTs() {
+void CbmAlgoBuildRawEvents::ProcessTs() {
   LOG_IF(info, fuNrTs % 1000 == 0) << "Begin of TS " << fuNrTs;
 
   InitTs();
@@ -107,7 +107,7 @@ void Cbm2021EventBuilderAlgo::ProcessTs() {
 
   fuNrTs++;
 }
-void Cbm2021EventBuilderAlgo::ClearEventVector() {
+void CbmAlgoBuildRawEvents::ClearEventVector() {
   /// Need to delete the object the pointer points to first
   int counter = 0;
   for (CbmEvent* event : fEventVector) {
@@ -120,12 +120,12 @@ void Cbm2021EventBuilderAlgo::ClearEventVector() {
   fEventVector.clear();
 }
 // ---- Finish ---------------------------------------------------------
-void Cbm2021EventBuilderAlgo::Finish() {
+void CbmAlgoBuildRawEvents::Finish() {
   LOG(info) << "Total errors: " << fuErrors;
 }
 
 // ---------------------------------------------------------------------
-Bool_t Cbm2021EventBuilderAlgo::CheckDataAvailable(EventBuilderDetector& det) {
+Bool_t CbmAlgoBuildRawEvents::CheckDataAvailable(RawEventBuilderDetector& det) {
   // Get a handle from the IO manager
   FairRootManager* ioman = FairRootManager::Instance();
 
@@ -170,21 +170,21 @@ Bool_t Cbm2021EventBuilderAlgo::CheckDataAvailable(EventBuilderDetector& det) {
   return kTRUE;
 }
 // ---------------------------------------------------------------------
-void Cbm2021EventBuilderAlgo::InitTs() {
+void CbmAlgoBuildRawEvents::InitTs() {
   /// Reset TS based variables (analysis per TS = no building over the border)
   /// Reference detector
   fRefDet.fuStartIndex = 0;
   fRefDet.fuEndIndex   = 0;
   /// Loop on detectors in selection list
-  for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
+  for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin();
        det != fvDets.end();
        ++det) {
     (*det).fuStartIndex = 0;
     (*det).fuEndIndex   = 0;
-  }  // for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det)
+  }  // for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det)
 }
 
-void Cbm2021EventBuilderAlgo::BuildEvents() {
+void CbmAlgoBuildRawEvents::BuildEvents() {
   /// Call LoopOnSeed with proper template argument
   switch (fRefDet.detId) {
     case ECbmModuleId::kSts: {
@@ -221,7 +221,7 @@ void Cbm2021EventBuilderAlgo::BuildEvents() {
       break;
     }  // case ECbmModuleId::kT0:
     default: {
-      LOG(fatal) << "Cbm2021EventBuilderAlgo::BuildEvents => "
+      LOG(fatal) << "CbmAlgoBuildRawEvents::BuildEvents => "
                  << "Trying to search event seeds with unsupported det: "
                  << fRefDet.sName;
       break;
@@ -229,7 +229,7 @@ void Cbm2021EventBuilderAlgo::BuildEvents() {
   }    // switch( *det )
 }
 
-UInt_t Cbm2021EventBuilderAlgo::GetNofDigis(ECbmModuleId detId) {
+UInt_t CbmAlgoBuildRawEvents::GetNofDigis(ECbmModuleId detId) {
   switch (detId) {
     case ECbmModuleId::kSts: {
       return fStsDigis->size();
@@ -257,14 +257,14 @@ UInt_t Cbm2021EventBuilderAlgo::GetNofDigis(ECbmModuleId detId) {
       return fT0DigiVec->size();  //what to do here? Not in digi manager.
     }
     default: {
-      LOG(fatal) << "Cbm2021EventBuilderAlgo::GetNofDigis => "
+      LOG(fatal) << "CbmAlgoBuildRawEvents::GetNofDigis => "
                  << "Trying to get digi number with unsupported detector.";
       return -1;
     }
   }
 }
 
-bool Cbm2021EventBuilderAlgo::DetIsPresent(ECbmModuleId detId) {
+bool CbmAlgoBuildRawEvents::DetIsPresent(ECbmModuleId detId) {
   switch (detId) {
     case ECbmModuleId::kSts: {
       return fStsDigis != nullptr;
@@ -292,7 +292,7 @@ bool Cbm2021EventBuilderAlgo::DetIsPresent(ECbmModuleId detId) {
       return fT0DigiVec != nullptr;  //what to do here? Not in digi manager.
     }
     default: {
-      LOG(fatal) << "Cbm2021EventBuilderAlgo::GetNofDigis => "
+      LOG(fatal) << "CbmAlgoBuildRawEvents::GetNofDigis => "
                  << "Trying to get digi number with unsupported detector.";
       return -1;
     }
@@ -300,36 +300,36 @@ bool Cbm2021EventBuilderAlgo::DetIsPresent(ECbmModuleId detId) {
 }
 
 template<>
-const CbmStsDigi* Cbm2021EventBuilderAlgo::GetDigi(UInt_t uDigi) {
+const CbmStsDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) {
   return &((*fStsDigis)[uDigi]);
 }
 template<>
-const CbmMuchBeamTimeDigi* Cbm2021EventBuilderAlgo::GetDigi(UInt_t uDigi) {
+const CbmMuchBeamTimeDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) {
   return &((*fMuchBeamTimeDigis)[uDigi]);
 }
 template<>
-const CbmMuchDigi* Cbm2021EventBuilderAlgo::GetDigi(UInt_t uDigi) {
+const CbmMuchDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) {
   return &((*fMuchDigis)[uDigi]);
 }
 template<>
-const CbmTrdDigi* Cbm2021EventBuilderAlgo::GetDigi(UInt_t uDigi) {
+const CbmTrdDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) {
   return &((*fTrdDigis)[uDigi]);
 }
 template<>
-const CbmTofDigi* Cbm2021EventBuilderAlgo::GetDigi(UInt_t uDigi) {
+const CbmTofDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) {
   return &((*fTofDigis)[uDigi]);
 }
 template<>
-const CbmRichDigi* Cbm2021EventBuilderAlgo::GetDigi(UInt_t uDigi) {
+const CbmRichDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) {
   return &((*fRichDigis)[uDigi]);
 }
 template<>
-const CbmPsdDigi* Cbm2021EventBuilderAlgo::GetDigi(UInt_t uDigi) {
+const CbmPsdDigi* CbmAlgoBuildRawEvents::GetDigi(UInt_t uDigi) {
   return &((*fPsdDigis)[uDigi]);
 }
 
 template<class DigiSeed>
-void Cbm2021EventBuilderAlgo::LoopOnSeeds() {
+void CbmAlgoBuildRawEvents::LoopOnSeeds() {
   /// Access the TS metadata if needed to know TS start time and overlap size
   Double_t dTsStartTime  = fdTsStartTime;
   Double_t dOverlapStart = fdTsStartTime + fdTsLength;
@@ -338,7 +338,7 @@ void Cbm2021EventBuilderAlgo::LoopOnSeeds() {
     pTsMetaData =
       dynamic_cast<TimesliceMetaData*>(fTimeSliceMetaDataArray->At(0));
     if (nullptr == pTsMetaData)
-      LOG(fatal) << Form("Cbm2021EventBuilderAlgo::LoopOnSeeds => "
+      LOG(fatal) << Form("CbmAlgoBuildRawEvents::LoopOnSeeds => "
                          "No TS metadata found for TS %6u.",
                          fuNrTs);
 
@@ -350,7 +350,7 @@ void Cbm2021EventBuilderAlgo::LoopOnSeeds() {
   /// Print warning in first TS if time window borders out of potential overlap
   if ((0.0 < fdEarliestTimeWinBeg && dOverlapSize < fdLatestTimeWinEnd)
       || (dOverlapSize < fdWidestTimeWinRange)) {
-    LOG(warning) << "Cbm2021EventBuilderAlgo::LoopOnSeeds => "
+    LOG(warning) << "CbmAlgoBuildRawEvents::LoopOnSeeds => "
                  << Form("Event window not fitting in TS overlap, risk of "
                          "incomplete events: %f %f %f %f",
                          fdEarliestTimeWinBeg,
@@ -385,7 +385,7 @@ void Cbm2021EventBuilderAlgo::LoopOnSeeds() {
       }  // for( UInt_t uDigi = 0; uDigi < uNbRefDigis; ++uDigi )
     }    // if ( fT0DigiVec )
     else
-      LOG(fatal) << "Cbm2021EventBuilderAlgo::LoopOnSeeds => "
+      LOG(fatal) << "CbmAlgoBuildRawEvents::LoopOnSeeds => "
                  << "T0 as reference detector but vector not found!";
   }  // if (ECbmModuleId::kT0 == fRefDet.detId)
   else {
@@ -414,33 +414,32 @@ void Cbm2021EventBuilderAlgo::LoopOnSeeds() {
   }  // else of if (ECbmModuleId::kT0 == fRefDet.detId) => Digi containers controlled by DigiManager
 }
 
-void Cbm2021EventBuilderAlgo::CheckSeed(Double_t dSeedTime,
-                                        UInt_t uSeedDigiIdx) {
+void CbmAlgoBuildRawEvents::CheckSeed(Double_t dSeedTime, UInt_t uSeedDigiIdx) {
   /// If previous event valid and event overlap not allowed, check if we are in overlap
   /// and react accordingly
   if (nullptr != fCurrentEvent
-      && (EOverlapMode::AllowOverlap != fOverMode
+      && (EOverlapModeRaw::AllowOverlap != fOverMode
           || dSeedTime - fdPrevEvtTime < fRefDet.GetTimeWinRange())
       && dSeedTime - fdPrevEvtTime < fdWidestTimeWinRange) {
     /// Within overlap range
     switch (fOverMode) {
-      case EOverlapMode::NoOverlap: {
+      case EOverlapModeRaw::NoOverlap: {
         /// No overlap allowed => reject
         LOG(debug1) << "Reject seed due to overlap";
         return;
         break;
-      }  // case EOverlapMode::NoOverlap:
-      case EOverlapMode::MergeOverlap: {
+      }  // case EOverlapModeRaw::NoOverlap:
+      case EOverlapModeRaw::MergeOverlap: {
         /// Merge overlap mode => do nothing and go on filling current event
         break;
-      }  // case EOverlapMode::MergeOverlap:
-      case EOverlapMode::AllowOverlap: {
+      }  // case EOverlapModeRaw::MergeOverlap:
+      case EOverlapModeRaw::AllowOverlap: {
         /// In allow overlap mode => reject only if reference det is in overlap
         /// to avoid cloning events due to single seed cluster
         LOG(debug1) << "Reject seed because part of cluster of previous one";
         return;
         break;
-      }  // case EOverlapMode::AllowOverlap:
+      }  // case EOverlapModeRaw::AllowOverlap:
     }    // switch( fOverMode )
   }      // if( prev Event exists and mode forbiden overlap present )
   else {
@@ -494,7 +493,7 @@ void Cbm2021EventBuilderAlgo::CheckSeed(Double_t dSeedTime,
         break;
       }  // case ECbmModuleId::kT0:
       default: {
-        LOG(fatal) << "Cbm2021EventBuilderAlgo::LoopOnSeeds => "
+        LOG(fatal) << "CbmAlgoBuildRawEvents::LoopOnSeeds => "
                    << "Trying to search matches with unsupported det: "
                    << fRefDet.sName << std::endl
                    << "You may want to add support for it in the method.";
@@ -510,7 +509,7 @@ void Cbm2021EventBuilderAlgo::CheckSeed(Double_t dSeedTime,
   }  // else of if( fdRefTimeWinBeg < fdRefTimeWinEnd )
 
   /// Search for matches for each detector in selection list
-  for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
+  for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin();
        det != fvDets.end();
        ++det) {
     switch ((*det).detId) {
@@ -548,14 +547,14 @@ void Cbm2021EventBuilderAlgo::CheckSeed(Double_t dSeedTime,
         break;
       }  // case ECbmModuleId::kT0:
       default: {
-        LOG(fatal) << "Cbm2021EventBuilderAlgo::LoopOnSeeds => "
+        LOG(fatal) << "CbmAlgoBuildRawEvents::LoopOnSeeds => "
                    << "Trying to search matches with unsupported det: "
                    << (*det).sName << std::endl
                    << "You may want to add support for it in the method.";
         break;
       }  // default:
     }    // switch( *det )
-  }  // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
+  }  // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
 
   /// Check if event is filling trigger conditions and clear it if not
   if (HasTrigger(fCurrentEvent)) {
@@ -563,18 +562,18 @@ void Cbm2021EventBuilderAlgo::CheckSeed(Double_t dSeedTime,
 
     /// In case of NoOverlap or MergeOverlap, we can and should start checking the next window
     /// from end of current window in order to save CPU and avoid duplicating
-    if (EOverlapMode::NoOverlap == fOverMode
-        || EOverlapMode::MergeOverlap == fOverMode) {
+    if (EOverlapModeRaw::NoOverlap == fOverMode
+        || EOverlapModeRaw::MergeOverlap == fOverMode) {
 
       /// Update reference detector
       fRefDet.fuStartIndex = fRefDet.fuEndIndex;
 
       /// Loop on selection detectors
-      for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
+      for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin();
            det != fvDets.end();
            ++det) {
         (*det).fuStartIndex = (*det).fuEndIndex;
-      }  // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
+      }  // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
     }    // If no overlap or merge overlap
   }      // if( !HasTrigger( fCurrentEvent ) )
   else {
@@ -585,8 +584,8 @@ void Cbm2021EventBuilderAlgo::CheckSeed(Double_t dSeedTime,
 }
 
 template<class DigiCheck>
-void Cbm2021EventBuilderAlgo::SearchMatches(Double_t dSeedTime,
-                                            EventBuilderDetector& detMatch) {
+void CbmAlgoBuildRawEvents::SearchMatches(Double_t dSeedTime,
+                                          RawEventBuilderDetector& detMatch) {
   /// This algo relies on time sorted vectors for the selected detectors
   UInt_t uLocalIndexStart = detMatch.fuStartIndex;
   UInt_t uLocalIndexEnd   = detMatch.fuStartIndex;
@@ -623,7 +622,7 @@ void Cbm2021EventBuilderAlgo::SearchMatches(Double_t dSeedTime,
       if (uLocalIndexEnd < uLocalIndexStart) uLocalIndexEnd = uNbSelDigis;
     }  // if ( fT0DigiVec )
     else
-      LOG(fatal) << "Cbm2021EventBuilderAlgo::SearchMatches => "
+      LOG(fatal) << "CbmAlgoBuildRawEvents::SearchMatches => "
                  << "T0 as selection detector but vector not found!";
   }  // if( ECbmModuleId::kT0 == detMatch.detId )
   else {
@@ -670,31 +669,31 @@ void Cbm2021EventBuilderAlgo::SearchMatches(Double_t dSeedTime,
   detMatch.fuEndIndex   = uLocalIndexEnd;
 }
 
-void Cbm2021EventBuilderAlgo::AddDigiToEvent(EventBuilderDetector& det,
-                                             Int_t _entry) {
+void CbmAlgoBuildRawEvents::AddDigiToEvent(RawEventBuilderDetector& det,
+                                           Int_t _entry) {
   fCurrentEvent->AddData(det.dataType, _entry);
 }
 
-Bool_t Cbm2021EventBuilderAlgo::HasTrigger(CbmEvent* event) {
+Bool_t CbmAlgoBuildRawEvents::HasTrigger(CbmEvent* event) {
   /// Check first reference detector
   if (kFALSE == CheckTriggerConditions(event, fRefDet)) {
     return kFALSE;
   }  // if (kFALSE == CheckTriggerConditions(event, fRefDet) )
 
   /// Loop on selection detectors
-  for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
+  for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin();
        det != fvDets.end();
        ++det) {
     if (kFALSE == CheckTriggerConditions(event, *det)) return kFALSE;
-  }  // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
+  }  // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
 
   /// All Ok, trigger is there
   return kTRUE;
 }
 
 Bool_t
-Cbm2021EventBuilderAlgo::CheckTriggerConditions(CbmEvent* event,
-                                                EventBuilderDetector& det) {
+CbmAlgoBuildRawEvents::CheckTriggerConditions(CbmEvent* event,
+                                              RawEventBuilderDetector& det) {
   /// Check if both Trigger conditions disabled for this detector
   if (0 == det.fuTriggerMinDigis && det.fiTriggerMaxDigis < 0) {
     return kTRUE;
@@ -738,7 +737,7 @@ Cbm2021EventBuilderAlgo::CheckTriggerConditions(CbmEvent* event,
   }  // else of else if( iNbDigis < det.fiTriggerMaxDigis )
 }
 //----------------------------------------------------------------------
-void Cbm2021EventBuilderAlgo::CreateHistograms() {
+void CbmAlgoBuildRawEvents::CreateHistograms() {
   /// FIXME: Disable clang formatting for histograms declaration for now
   /* clang-format off */
   fhEventTime = new TH1F("hEventTime",
@@ -759,7 +758,7 @@ void Cbm2021EventBuilderAlgo::CreateHistograms() {
              1000, 0, 10000);
 
   /// Loop on selection detectors
-  for (std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det) {
+  for (std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det) {
     /// In case name not provided, do not create the histo to avoid name conflicts!
     if( "Invalid" == (*det).sName )
     {
@@ -774,7 +773,7 @@ void Cbm2021EventBuilderAlgo::CreateHistograms() {
                       (*det).sName.data() ),
                  600, 0,  600,
                 4000, 0, 4000) );
-  }  // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
+  }  // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
 
   AddHistoToVector(fhEventTime,            "evtbuild");
   AddHistoToVector(fhEventDt,              "evtbuild");
@@ -792,7 +791,7 @@ void Cbm2021EventBuilderAlgo::CreateHistograms() {
   /// FIXME: Re-enable clang formatting after histograms declaration
   /* clang-format on */
 }
-void Cbm2021EventBuilderAlgo::FillHistos() {
+void CbmAlgoBuildRawEvents::FillHistos() {
   Double_t dPreEvtTime = -1.0;
   for (CbmEvent* evt : fEventVector) {
     fhEventTime->Fill(evt->GetStartTime() * 1e-9);
@@ -808,12 +807,12 @@ void Cbm2021EventBuilderAlgo::FillHistos() {
 
       fvhNbDigiPerEvtTimeDet[uDetIdx]->Fill(
         evt->GetStartTime() * 1e-9, evt->GetNofData(fvDets[uDetIdx].dataType));
-    }  // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
+    }  // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
 
     dPreEvtTime = evt->GetStartTime();
   }  // for( CbmEvent * evt: fEventVector )
 }
-void Cbm2021EventBuilderAlgo::ResetHistograms(Bool_t /*bResetTime*/) {
+void CbmAlgoBuildRawEvents::ResetHistograms(Bool_t /*bResetTime*/) {
   fhEventTime->Reset();
   fhEventDt->Reset();
   fhEventSize->Reset();
@@ -835,50 +834,50 @@ void Cbm2021EventBuilderAlgo::ResetHistograms(Bool_t /*bResetTime*/) {
 */
 }
 //----------------------------------------------------------------------
-void Cbm2021EventBuilderAlgo::SetReferenceDetector(ECbmModuleId refDet,
-                                                   ECbmDataType dataTypeIn,
-                                                   std::string sNameIn,
-                                                   UInt_t uTriggerMinDigisIn,
-                                                   Int_t iTriggerMaxDigisIn,
-                                                   Double_t fdTimeWinBegIn,
-                                                   Double_t fdTimeWinEndIn) {
+void CbmAlgoBuildRawEvents::SetReferenceDetector(ECbmModuleId refDet,
+                                                 ECbmDataType dataTypeIn,
+                                                 std::string sNameIn,
+                                                 UInt_t uTriggerMinDigisIn,
+                                                 Int_t iTriggerMaxDigisIn,
+                                                 Double_t fdTimeWinBegIn,
+                                                 Double_t fdTimeWinEndIn) {
 
   /// FIXME: Deprecated method to be removed later. For now create temp object.
-  SetReferenceDetector(EventBuilderDetector(refDet,
-                                            dataTypeIn,
-                                            sNameIn,
-                                            uTriggerMinDigisIn,
-                                            iTriggerMaxDigisIn,
-                                            fdTimeWinBegIn,
-                                            fdTimeWinEndIn));
+  SetReferenceDetector(RawEventBuilderDetector(refDet,
+                                               dataTypeIn,
+                                               sNameIn,
+                                               uTriggerMinDigisIn,
+                                               iTriggerMaxDigisIn,
+                                               fdTimeWinBegIn,
+                                               fdTimeWinEndIn));
 }
-void Cbm2021EventBuilderAlgo::AddDetector(ECbmModuleId selDet,
-                                          ECbmDataType dataTypeIn,
-                                          std::string sNameIn,
-                                          UInt_t uTriggerMinDigisIn,
-                                          Int_t iTriggerMaxDigisIn,
-                                          Double_t fdTimeWinBegIn,
-                                          Double_t fdTimeWinEndIn) {
+void CbmAlgoBuildRawEvents::AddDetector(ECbmModuleId selDet,
+                                        ECbmDataType dataTypeIn,
+                                        std::string sNameIn,
+                                        UInt_t uTriggerMinDigisIn,
+                                        Int_t iTriggerMaxDigisIn,
+                                        Double_t fdTimeWinBegIn,
+                                        Double_t fdTimeWinEndIn) {
 
   /// FIXME: Deprecated method to be removed later. For now create temp object.
-  AddDetector(EventBuilderDetector(selDet,
-                                   dataTypeIn,
-                                   sNameIn,
-                                   uTriggerMinDigisIn,
-                                   iTriggerMaxDigisIn,
-                                   fdTimeWinBegIn,
-                                   fdTimeWinEndIn));
+  AddDetector(RawEventBuilderDetector(selDet,
+                                      dataTypeIn,
+                                      sNameIn,
+                                      uTriggerMinDigisIn,
+                                      iTriggerMaxDigisIn,
+                                      fdTimeWinBegIn,
+                                      fdTimeWinEndIn));
 }
 //----------------------------------------------------------------------
 //----------------------------------------------------------------------
-void Cbm2021EventBuilderAlgo::SetReferenceDetector(
-  EventBuilderDetector refDetIn) {
+void CbmAlgoBuildRawEvents::SetReferenceDetector(
+  RawEventBuilderDetector refDetIn) {
   /// Loop on selection detectors
-  for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
+  for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin();
        det != fvDets.end();
        ++det) {
     if ((*det) == refDetIn) {
-      LOG(warning) << "Cbm2021EventBuilderAlgo::SetReferenceDetector => "
+      LOG(warning) << "CbmAlgoBuildRawEvents::SetReferenceDetector => "
                       "Reference detector already in selection detector list!"
                    << refDetIn.sName;
       LOG(warning)
@@ -890,15 +889,15 @@ void Cbm2021EventBuilderAlgo::SetReferenceDetector(
            "clusters!";
       RemoveDetector(refDetIn);
     }  // if( (*det)  == refDetIn )
-  }  // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
+  }  // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
 
   if (fRefDet == refDetIn) {
     LOG(warning)
-      << "Cbm2021EventBuilderAlgo::SetReferenceDetector => "
+      << "CbmAlgoBuildRawEvents::SetReferenceDetector => "
          "Doing nothing, identical reference detector already in use";
   }  // if( fRefDet == refDetIn )
   else {
-    LOG(info) << "Cbm2021EventBuilderAlgo::SetReferenceDetector => "
+    LOG(info) << "CbmAlgoBuildRawEvents::SetReferenceDetector => "
               << "Replacing " << fRefDet.sName << " with " << refDetIn.sName
               << " as reference detector";
     LOG(warning)
@@ -917,9 +916,9 @@ void Cbm2021EventBuilderAlgo::SetReferenceDetector(
   /// Update the variable storing the size if widest time window for overlap detection
   UpdateWidestTimeWinRange();
 }
-void Cbm2021EventBuilderAlgo::AddDetector(EventBuilderDetector selDet) {
+void CbmAlgoBuildRawEvents::AddDetector(RawEventBuilderDetector selDet) {
   if (fRefDet == selDet) {
-    LOG(fatal) << "Cbm2021EventBuilderAlgo::AddDetector => Cannot "
+    LOG(fatal) << "CbmAlgoBuildRawEvents::AddDetector => Cannot "
                   "add the reference detector as selection detector!"
                << std::endl
                << "=> Maybe first change the reference detector with "
@@ -927,16 +926,16 @@ void Cbm2021EventBuilderAlgo::AddDetector(EventBuilderDetector selDet) {
   }  // if( fRefDet == selDet )
 
   /// Loop on selection detectors
-  for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
+  for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin();
        det != fvDets.end();
        ++det) {
     if ((*det) == selDet) {
-      LOG(warning) << "Cbm2021EventBuilderAlgo::AddDetector => "
+      LOG(warning) << "CbmAlgoBuildRawEvents::AddDetector => "
                       "Doing nothing, selection detector already in list!"
                    << selDet.sName;
       return;
     }  // if( (*det)  == selDet )
-  }  // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
+  }  // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
   fvDets.push_back(selDet);
 
   /// Update the variables storing the earliest and latest time window boundaries
@@ -944,23 +943,23 @@ void Cbm2021EventBuilderAlgo::AddDetector(EventBuilderDetector selDet) {
   /// Update the variable storing the size if widest time window for overlap detection
   UpdateWidestTimeWinRange();
 }
-void Cbm2021EventBuilderAlgo::RemoveDetector(EventBuilderDetector selDet) {
+void CbmAlgoBuildRawEvents::RemoveDetector(RawEventBuilderDetector selDet) {
   /// Loop on selection detectors
-  for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
+  for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin();
        det != fvDets.end();
        ++det) {
     if ((*det) == selDet) {
       fvDets.erase(det);
       return;
     }  // if( (*det)  == selDet )
-  }  // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
-  LOG(warning) << "Cbm2021EventBuilderAlgo::RemoveDetector => Doing "
+  }  // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
+  LOG(warning) << "CbmAlgoBuildRawEvents::RemoveDetector => Doing "
                   "nothing, selection detector not in list!"
                << selDet.sName;
 }
 //----------------------------------------------------------------------
-void Cbm2021EventBuilderAlgo::SetTriggerMinNumber(ECbmModuleId selDet,
-                                                  UInt_t uVal) {
+void CbmAlgoBuildRawEvents::SetTriggerMinNumber(ECbmModuleId selDet,
+                                                UInt_t uVal) {
   /// Check first if reference detector
   if (fRefDet.detId == selDet) {
     fRefDet.fuTriggerMinDigis = uVal;
@@ -972,7 +971,7 @@ void Cbm2021EventBuilderAlgo::SetTriggerMinNumber(ECbmModuleId selDet,
   }  // if( fRefDet == selDet )
 
   /// Loop on selection detectors
-  for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
+  for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin();
        det != fvDets.end();
        ++det) {
     if ((*det).detId == selDet) {
@@ -983,15 +982,15 @@ void Cbm2021EventBuilderAlgo::SetTriggerMinNumber(ECbmModuleId selDet,
 
       return;
     }  // if( (*det).detId  == selDet )
-  }  // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
+  }  // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
 
   LOG(warning)
-    << "Cbm2021EventBuilderAlgo::SetTriggerMinNumber => "
+    << "CbmAlgoBuildRawEvents::SetTriggerMinNumber => "
        "Doing nothing, detector neither reference nor in selection list!"
     << selDet;
 }
-void Cbm2021EventBuilderAlgo::SetTriggerMaxNumber(ECbmModuleId selDet,
-                                                  Int_t iVal) {
+void CbmAlgoBuildRawEvents::SetTriggerMaxNumber(ECbmModuleId selDet,
+                                                Int_t iVal) {
   /// Check first if reference detector
   if (fRefDet.detId == selDet) {
     fRefDet.fiTriggerMaxDigis = iVal;
@@ -1003,7 +1002,7 @@ void Cbm2021EventBuilderAlgo::SetTriggerMaxNumber(ECbmModuleId selDet,
   }  // if( fRefDet == selDet )
 
   /// Loop on selection detectors
-  for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
+  for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin();
        det != fvDets.end();
        ++det) {
     if ((*det).detId == selDet) {
@@ -1014,19 +1013,19 @@ void Cbm2021EventBuilderAlgo::SetTriggerMaxNumber(ECbmModuleId selDet,
 
       return;
     }  // if( (*det).detId  == selDet )
-  }  // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
+  }  // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
 
   LOG(warning)
-    << "Cbm2021EventBuilderAlgo::SetTriggerMaxNumber => "
+    << "CbmAlgoBuildRawEvents::SetTriggerMaxNumber => "
        "Doing nothing, detector neither reference nor in selection list!"
     << selDet;
 }
-void Cbm2021EventBuilderAlgo::SetTriggerWindow(ECbmModuleId selDet,
-                                               Double_t dWinBeg,
-                                               Double_t dWinEnd) {
+void CbmAlgoBuildRawEvents::SetTriggerWindow(ECbmModuleId selDet,
+                                             Double_t dWinBeg,
+                                             Double_t dWinEnd) {
   /// Check if valid time window: end strictly after beginning
   if (dWinEnd <= dWinBeg)
-    LOG(fatal) << "Cbm2021EventBuilderAlgo::SetTriggerWindow => "
+    LOG(fatal) << "CbmAlgoBuildRawEvents::SetTriggerWindow => "
                   "Invalid time window: [ "
                << dWinBeg << ", " << dWinEnd << " ]";
 
@@ -1040,7 +1039,7 @@ void Cbm2021EventBuilderAlgo::SetTriggerWindow(ECbmModuleId selDet,
   }  // if( fRefDet == selDet )
 
   /// Loop on selection detectors
-  for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
+  for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin();
        det != fvDets.end();
        ++det) {
     if ((*det).detId == selDet) {
@@ -1049,11 +1048,11 @@ void Cbm2021EventBuilderAlgo::SetTriggerWindow(ECbmModuleId selDet,
 
       bFound = kTRUE;
     }  // if( (*det).detId  == selDet )
-  }  // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
+  }  // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
 
   if (kFALSE == bFound) {
     LOG(warning)
-      << "Cbm2021EventBuilderAlgo::SetTriggerWindow => "
+      << "CbmAlgoBuildRawEvents::SetTriggerWindow => "
          "Doing nothing, detector neither reference nor in selection list!"
       << selDet;
   }  // if( kFALSE == bFound )
@@ -1063,31 +1062,31 @@ void Cbm2021EventBuilderAlgo::SetTriggerWindow(ECbmModuleId selDet,
   /// Update the variable storing the size if widest time window for overlap detection
   UpdateWidestTimeWinRange();
 }
-void Cbm2021EventBuilderAlgo::UpdateTimeWinBoundariesExtrema() {
+void CbmAlgoBuildRawEvents::UpdateTimeWinBoundariesExtrema() {
   /// Initialize with reference detector
   fdEarliestTimeWinBeg = fRefDet.fdTimeWinBeg;
   fdLatestTimeWinEnd   = fRefDet.fdTimeWinEnd;
 
   /// Loop on selection detectors
-  for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
+  for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin();
        det != fvDets.end();
        ++det) {
     fdEarliestTimeWinBeg = std::min(fdEarliestTimeWinBeg, (*det).fdTimeWinBeg);
     fdLatestTimeWinEnd   = std::max(fdLatestTimeWinEnd, (*det).fdTimeWinEnd);
-  }  // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
+  }  // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
 }
-void Cbm2021EventBuilderAlgo::UpdateWidestTimeWinRange() {
+void CbmAlgoBuildRawEvents::UpdateWidestTimeWinRange() {
   /// Initialize with reference detector
   fdWidestTimeWinRange = fRefDet.fdTimeWinEnd - fRefDet.fdTimeWinBeg;
 
   /// Loop on selection detectors
-  for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
+  for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin();
        det != fvDets.end();
        ++det) {
     fdWidestTimeWinRange =
       std::max(fdWidestTimeWinRange, (*det).fdTimeWinEnd - (*det).fdTimeWinBeg);
-  }  // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
+  }  // for( std::vector< RawEventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
 }
 //----------------------------------------------------------------------
 
-ClassImp(Cbm2021EventBuilderAlgo)
+ClassImp(CbmAlgoBuildRawEvents)
diff --git a/reco/eventbuilder/digis/Cbm2021EventBuilderAlgo.h b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h
similarity index 72%
rename from reco/eventbuilder/digis/Cbm2021EventBuilderAlgo.h
rename to reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h
index 0ccfd51b39ee4c23bdf53d2d90ec48f92649bc55..61a47bfa04b6285fafc3a5ab8ac79bee52a75bce 100644
--- a/reco/eventbuilder/digis/Cbm2021EventBuilderAlgo.h
+++ b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h
@@ -5,11 +5,10 @@
  *              GNU Lesser General Public Licence (LGPL) version 3,             *
  *                  copied verbatim in the file "LICENSE"                       *
  ********************************************************************************/
-#ifndef CBM2021EVENTBUILDERALGO_H
-#define CBM2021EVENTBUILDERALGO_H
+#ifndef CBMALGOBUILDRAWEVENTS_H
+#define CBMALGOBUILDRAWEVENTS_H
 
 /// CBM headers
-#include "../../fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h"  // for EOverlapMode and EventBuilderDetector
 #include "CbmMuchBeamTimeDigi.h"
 #include "CbmMuchDigi.h"
 #include "CbmPsdDigi.h"
@@ -40,27 +39,26 @@ class TH2;
 class TNamed;
 class TCanvas;
 
-/*    get from CbmMcbm2019TimeWinEventBuilderAlgo.h for now
-enum class EOverlapMode { NoOverlap, MergeOverlap, AllowOverlap };
+enum class EOverlapModeRaw { NoOverlap, MergeOverlap, AllowOverlap };
 
-class EventBuilderDetector {
+class RawEventBuilderDetector {
 public:
-  EventBuilderDetector() { ; }
-  EventBuilderDetector(ECbmModuleId detIdIn,
-                       ECbmDataType dataTypeIn,
-                       std::string sNameIn) {
+  RawEventBuilderDetector() { ; }
+  RawEventBuilderDetector(ECbmModuleId detIdIn,
+                          ECbmDataType dataTypeIn,
+                          std::string sNameIn) {
     detId    = detIdIn;
     dataType = dataTypeIn;
     sName    = sNameIn;
   }
-  EventBuilderDetector(ECbmModuleId detIdIn,
-                       ECbmDataType dataTypeIn,
-                       std::string sNameIn,
-                       UInt_t uTriggerMinDigisIn,
-                       Int_t iTriggerMaxDigisIn,
-                       Double_t fdTimeWinBegIn,
-                       Double_t fdTimeWinEndIn)
-    : EventBuilderDetector(detIdIn, dataTypeIn, sNameIn) {
+  RawEventBuilderDetector(ECbmModuleId detIdIn,
+                          ECbmDataType dataTypeIn,
+                          std::string sNameIn,
+                          UInt_t uTriggerMinDigisIn,
+                          Int_t iTriggerMaxDigisIn,
+                          Double_t fdTimeWinBegIn,
+                          Double_t fdTimeWinEndIn)
+    : RawEventBuilderDetector(detIdIn, dataTypeIn, sNameIn) {
     fuTriggerMinDigis = uTriggerMinDigisIn;
     fiTriggerMaxDigis = iTriggerMaxDigisIn;
 
@@ -68,10 +66,10 @@ public:
     fdTimeWinEnd = fdTimeWinEndIn;
   }
 
-  bool operator==(const EventBuilderDetector& other) const {
+  bool operator==(const RawEventBuilderDetector& other) const {
     return (other.detId == this->detId);
   }
-  bool operator!=(const EventBuilderDetector& other) const {
+  bool operator!=(const RawEventBuilderDetector& other) const {
     return (other.detId != this->detId);
   }
 
@@ -95,35 +93,34 @@ public:
 };
 
 /// Pre-defined detector types
-static const EventBuilderDetector kEventBuilderDetSts =
-  EventBuilderDetector(ECbmModuleId::kSts, ECbmDataType::kStsDigi, "Sts");
-static const EventBuilderDetector kEventBuilderDetMuch =
-  EventBuilderDetector(ECbmModuleId::kMuch, ECbmDataType::kMuchDigi, "Much");
-static const EventBuilderDetector kEventBuilderDetTrd =
-  EventBuilderDetector(ECbmModuleId::kTrd, ECbmDataType::kTrdDigi, "Trd");
-static const EventBuilderDetector kEventBuilderDetTof =
-  EventBuilderDetector(ECbmModuleId::kTof, ECbmDataType::kTofDigi, "Tof");
-static const EventBuilderDetector kEventBuilderDetRich =
-  EventBuilderDetector(ECbmModuleId::kRich, ECbmDataType::kRichDigi, "Rich");
-static const EventBuilderDetector kEventBuilderDetPsd =
-  EventBuilderDetector(ECbmModuleId::kPsd, ECbmDataType::kPsdDigi, "Psd");
-static const EventBuilderDetector kEventBuilderDetT0 =
-  EventBuilderDetector(ECbmModuleId::kT0, ECbmDataType::kT0Digi, "T0");
-static const EventBuilderDetector kEventBuilderDetUndef =
-  EventBuilderDetector();
-
-*/
-
-class Cbm2021EventBuilderAlgo {
+static const RawEventBuilderDetector kEventBuilderDetSts =
+  RawEventBuilderDetector(ECbmModuleId::kSts, ECbmDataType::kStsDigi, "Sts");
+static const RawEventBuilderDetector kEventBuilderDetMuch =
+  RawEventBuilderDetector(ECbmModuleId::kMuch, ECbmDataType::kMuchDigi, "Much");
+static const RawEventBuilderDetector kEventBuilderDetTrd =
+  RawEventBuilderDetector(ECbmModuleId::kTrd, ECbmDataType::kTrdDigi, "Trd");
+static const RawEventBuilderDetector kEventBuilderDetTof =
+  RawEventBuilderDetector(ECbmModuleId::kTof, ECbmDataType::kTofDigi, "Tof");
+static const RawEventBuilderDetector kEventBuilderDetRich =
+  RawEventBuilderDetector(ECbmModuleId::kRich, ECbmDataType::kRichDigi, "Rich");
+static const RawEventBuilderDetector kEventBuilderDetPsd =
+  RawEventBuilderDetector(ECbmModuleId::kPsd, ECbmDataType::kPsdDigi, "Psd");
+static const RawEventBuilderDetector kEventBuilderDetT0 =
+  RawEventBuilderDetector(ECbmModuleId::kT0, ECbmDataType::kT0Digi, "T0");
+static const RawEventBuilderDetector kEventBuilderDetUndef =
+  RawEventBuilderDetector();
+
+
+class CbmAlgoBuildRawEvents {
 public:
   /** Default constructor **/
-  Cbm2021EventBuilderAlgo();
+  CbmAlgoBuildRawEvents();
 
-  Cbm2021EventBuilderAlgo(const Cbm2021EventBuilderAlgo&) = delete;
-  Cbm2021EventBuilderAlgo operator=(const Cbm2021EventBuilderAlgo&) = delete;
+  CbmAlgoBuildRawEvents(const CbmAlgoBuildRawEvents&) = delete;
+  CbmAlgoBuildRawEvents operator=(const CbmAlgoBuildRawEvents&) = delete;
 
   /** Destructor **/
-  ~Cbm2021EventBuilderAlgo();
+  ~CbmAlgoBuildRawEvents();
 
   /** Initiliazation at the beginning of a run **/
   Bool_t InitAlgo();
@@ -152,9 +149,9 @@ public:
                    Double_t fdTimeWinBegIn   = -100,
                    Double_t fdTimeWinEndIn   = 100);
 
-  void SetReferenceDetector(EventBuilderDetector refDetIn);
-  void AddDetector(EventBuilderDetector selDet);
-  void RemoveDetector(EventBuilderDetector selDet);
+  void SetReferenceDetector(RawEventBuilderDetector refDetIn);
+  void AddDetector(RawEventBuilderDetector selDet);
+  void RemoveDetector(RawEventBuilderDetector selDet);
 
   void SetTriggerMinNumber(ECbmModuleId selDet, UInt_t uVal);
   void SetTriggerMaxNumber(ECbmModuleId selDet, Int_t iVal);
@@ -171,7 +168,7 @@ public:
   }
 
   /// Control flags
-  void SetEventOverlapMode(EOverlapMode mode) { fOverMode = mode; }
+  void SetEventOverlapMode(EOverlapModeRaw mode) { fOverMode = mode; }
   void SetIgnoreTsOverlap(Bool_t bFlagIn = kTRUE) {
     fbIgnoreTsOverlap = bFlagIn;
   }
@@ -218,7 +215,7 @@ public:
 
 private:
   /// Internal methods
-  Bool_t CheckDataAvailable(EventBuilderDetector& det);
+  Bool_t CheckDataAvailable(RawEventBuilderDetector& det);
   void InitTs();
   void BuildEvents();
 
@@ -229,10 +226,10 @@ private:
   void LoopOnSeeds();
   void CheckSeed(Double_t dSeedTime, UInt_t uSeedDigiIdx);
   template<class DigiCheck>
-  void SearchMatches(Double_t dSeedTime, EventBuilderDetector& detMatch);
-  void AddDigiToEvent(EventBuilderDetector& det, Int_t uIdx);
+  void SearchMatches(Double_t dSeedTime, RawEventBuilderDetector& detMatch);
+  void AddDigiToEvent(RawEventBuilderDetector& det, Int_t uIdx);
   Bool_t HasTrigger(CbmEvent*);
-  Bool_t CheckTriggerConditions(CbmEvent* event, EventBuilderDetector& det);
+  Bool_t CheckTriggerConditions(CbmEvent* event, RawEventBuilderDetector& det);
 
   void UpdateTimeWinBoundariesExtrema();
   void UpdateWidestTimeWinRange();
@@ -247,17 +244,23 @@ private:
   Bool_t fbFillHistos {kTRUE};        //! Switch ON/OFF filling of histograms
   Bool_t fbUseMuchBeamtimeDigi = kTRUE;  //! Switch between MUCH digi classes
     /// Event building mode and detectors selection
-  EOverlapMode fOverMode {EOverlapMode::AllowOverlap};
-
-  EventBuilderDetector fRefDet =
-    EventBuilderDetector(ECbmModuleId::kT0, ECbmDataType::kT0Digi, "T0");
-  std::vector<EventBuilderDetector> fvDets = {
-    EventBuilderDetector(ECbmModuleId::kSts, ECbmDataType::kStsDigi, "kSts"),
-    EventBuilderDetector(ECbmModuleId::kMuch, ECbmDataType::kMuchDigi, "kMuch"),
-    EventBuilderDetector(ECbmModuleId::kTrd, ECbmDataType::kTrdDigi, "kTrd"),
-    EventBuilderDetector(ECbmModuleId::kTof, ECbmDataType::kTofDigi, "kTof"),
-    EventBuilderDetector(ECbmModuleId::kRich, ECbmDataType::kRichDigi, "kRich"),
-    EventBuilderDetector(ECbmModuleId::kPsd, ECbmDataType::kPsdDigi, "kPsd")};
+  EOverlapModeRaw fOverMode {EOverlapModeRaw::AllowOverlap};
+
+  RawEventBuilderDetector fRefDet =
+    RawEventBuilderDetector(ECbmModuleId::kT0, ECbmDataType::kT0Digi, "T0");
+  std::vector<RawEventBuilderDetector> fvDets = {
+    RawEventBuilderDetector(ECbmModuleId::kSts, ECbmDataType::kStsDigi, "kSts"),
+    RawEventBuilderDetector(ECbmModuleId::kMuch,
+                            ECbmDataType::kMuchDigi,
+                            "kMuch"),
+    RawEventBuilderDetector(ECbmModuleId::kTrd, ECbmDataType::kTrdDigi, "kTrd"),
+    RawEventBuilderDetector(ECbmModuleId::kTof, ECbmDataType::kTofDigi, "kTof"),
+    RawEventBuilderDetector(ECbmModuleId::kRich,
+                            ECbmDataType::kRichDigi,
+                            "kRich"),
+    RawEventBuilderDetector(ECbmModuleId::kPsd,
+                            ECbmDataType::kPsdDigi,
+                            "kPsd")};
 
   Double_t fdEarliestTimeWinBeg = kdDefaultTimeWinBeg;
   Double_t fdLatestTimeWinEnd   = kdDefaultTimeWinEnd;
@@ -327,7 +330,7 @@ private:
   Double_t fdPrevEvtEndTime =
     0.;  //! Save previous event last digi time information
 
-  ClassDefNV(Cbm2021EventBuilderAlgo, 1);
+  ClassDefNV(CbmAlgoBuildRawEvents, 1);
 };
 
-#endif  //  CBM2021EVENTBUILDERALGO_H
+#endif  // CBMALGOBUILDRAWEVENTS_H
diff --git a/reco/eventbuilder/digis/Cbm2021EventBuilderTask.cxx b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx
similarity index 83%
rename from reco/eventbuilder/digis/Cbm2021EventBuilderTask.cxx
rename to reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx
index ecd723123f5e8dcc9f568605dfc86b9f513ae556..5b73309a155d70535e54e3cfb321137c5cb4deb2 100644
--- a/reco/eventbuilder/digis/Cbm2021EventBuilderTask.cxx
+++ b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx
@@ -5,8 +5,8 @@
  *              GNU Lesser General Public Licence (LGPL) version 3,             *
  *                  copied verbatim in the file "LICENSE"                       *
  ********************************************************************************/
-#include "Cbm2021EventBuilderTask.h"
-#include "Cbm2021EventBuilderAlgo.h"
+#include "CbmTaskBuildRawEvents.h"
+#include "CbmAlgoBuildRawEvents.h"
 
 #include "CbmDigiManager.h"
 #include "CbmEvent.h"
@@ -22,22 +22,22 @@
 #include <TFile.h>
 
 // ---- Default constructor -------------------------------------------
-Cbm2021EventBuilderTask::Cbm2021EventBuilderTask()
-  : FairTask("Cbm2021EventBuilderTask") {
+CbmTaskBuildRawEvents::CbmTaskBuildRawEvents()
+  : FairTask("CbmTaskBuildRawEvents") {
   /// Create Algo. To be made generic/switchable when more event building algo are available!
-  fpAlgo = new Cbm2021EventBuilderAlgo();
+  fpAlgo = new CbmAlgoBuildRawEvents();
 }
 
 // ---- Destructor ----------------------------------------------------
-Cbm2021EventBuilderTask::~Cbm2021EventBuilderTask() {}
+CbmTaskBuildRawEvents::~CbmTaskBuildRawEvents() {}
 
 // ----  Initialisation  ----------------------------------------------
-void Cbm2021EventBuilderTask::SetParContainers() {
+void CbmTaskBuildRawEvents::SetParContainers() {
   /// Nothing to do
 }
 
 // ---- Init ----------------------------------------------------------
-InitStatus Cbm2021EventBuilderTask::Init() {
+InitStatus CbmTaskBuildRawEvents::Init() {
   /// Get a handle from the IO manager
   FairRootManager* ioman = FairRootManager::Instance();
 
@@ -120,11 +120,11 @@ InitStatus Cbm2021EventBuilderTask::Init() {
 }
 
 // ---- ReInit  -------------------------------------------------------
-InitStatus Cbm2021EventBuilderTask::ReInit() { return kSUCCESS; }
+InitStatus CbmTaskBuildRawEvents::ReInit() { return kSUCCESS; }
 
 // ---- Exec ----------------------------------------------------------
-void Cbm2021EventBuilderTask::Exec(Option_t* /*option*/) {
-  LOG(debug2) << "Cbm2021EventBuilderTask::Exec => Starting sequence";
+void CbmTaskBuildRawEvents::Exec(Option_t* /*option*/) {
+  LOG(debug2) << "CbmTaskBuildRawEvents::Exec => Starting sequence";
 
   //Read STS digis
   if (fDigiMan->IsPresent(ECbmModuleId::kSts)) {
@@ -215,12 +215,12 @@ void Cbm2021EventBuilderTask::Exec(Option_t* /*option*/) {
 
   /// Save the resulting vector of events in TClonesArray
   FillOutput();
-  LOG(debug2) << "Cbm2021EventBuilderTask::Exec => Done";
+  LOG(debug2) << "CbmTaskBuildRawEvents::Exec => Done";
 }
 
 
 // ---- Finish --------------------------------------------------------
-void Cbm2021EventBuilderTask::Finish() {
+void CbmTaskBuildRawEvents::Finish() {
   if (fbFillHistos) { SaveHistos(); }  // if( fbFillHistos )
 
   /// Call Algo finish method
@@ -228,7 +228,7 @@ void Cbm2021EventBuilderTask::Finish() {
 }
 
 //----------------------------------------------------------------------
-void Cbm2021EventBuilderTask::FillOutput() {
+void CbmTaskBuildRawEvents::FillOutput() {
   /// Clear TClonesArray before usage.
   fEvents->Delete();
 
@@ -249,7 +249,7 @@ void Cbm2021EventBuilderTask::FillOutput() {
   fpAlgo->ClearEventVector();
 }
 //----------------------------------------------------------------------
-void Cbm2021EventBuilderTask::SaveHistos() {
+void CbmTaskBuildRawEvents::SaveHistos() {
   /// Obtain vector of pointers on each histo from the algo (+ optionally desired folder)
   std::vector<std::pair<TNamed*, std::string>> vHistos =
     fpAlgo->GetHistoVector();
@@ -281,59 +281,59 @@ void Cbm2021EventBuilderTask::SaveHistos() {
   histoFile->Close();
 }
 //----------------------------------------------------------------------
-void Cbm2021EventBuilderTask::SetFillHistos(Bool_t bFlag) {
+void CbmTaskBuildRawEvents::SetFillHistos(Bool_t bFlag) {
   fbFillHistos = bFlag;
   if (nullptr != fpAlgo) fpAlgo->SetFillHistos(fbFillHistos);
 }
-void Cbm2021EventBuilderTask::SetOutFilename(TString sNameIn) {
+void CbmTaskBuildRawEvents::SetOutFilename(TString sNameIn) {
   fsOutFileName = sNameIn;
 }
 
-void Cbm2021EventBuilderTask::SetReferenceDetector(
-  EventBuilderDetector refDet) {
+void CbmTaskBuildRawEvents::SetReferenceDetector(
+  RawEventBuilderDetector refDet) {
   if (nullptr != fpAlgo) fpAlgo->SetReferenceDetector(refDet);
 }
-void Cbm2021EventBuilderTask::AddDetector(EventBuilderDetector selDet) {
+void CbmTaskBuildRawEvents::AddDetector(RawEventBuilderDetector selDet) {
   if (nullptr != fpAlgo) fpAlgo->AddDetector(selDet);
 }
-void Cbm2021EventBuilderTask::RemoveDetector(EventBuilderDetector selDet) {
+void CbmTaskBuildRawEvents::RemoveDetector(RawEventBuilderDetector selDet) {
   if (nullptr != fpAlgo) fpAlgo->RemoveDetector(selDet);
 }
 
-void Cbm2021EventBuilderTask::SetTriggerMinNumber(ECbmModuleId selDet,
-                                                  UInt_t uVal) {
+void CbmTaskBuildRawEvents::SetTriggerMinNumber(ECbmModuleId selDet,
+                                                UInt_t uVal) {
   if (nullptr != fpAlgo) fpAlgo->SetTriggerMinNumber(selDet, uVal);
 }
-void Cbm2021EventBuilderTask::SetTriggerMaxNumber(ECbmModuleId selDet,
-                                                  Int_t iVal) {
+void CbmTaskBuildRawEvents::SetTriggerMaxNumber(ECbmModuleId selDet,
+                                                Int_t iVal) {
   if (nullptr != fpAlgo) fpAlgo->SetTriggerMaxNumber(selDet, iVal);
 }
 
-void Cbm2021EventBuilderTask::SetTriggerWindow(ECbmModuleId det,
-                                               Double_t dWinBeg,
-                                               Double_t dWinEnd) {
+void CbmTaskBuildRawEvents::SetTriggerWindow(ECbmModuleId det,
+                                             Double_t dWinBeg,
+                                             Double_t dWinEnd) {
   if (nullptr != fpAlgo) fpAlgo->SetTriggerWindow(det, dWinBeg, dWinEnd);
 }
 
 
-void Cbm2021EventBuilderTask::SetTsParameters(Double_t dTsStartTime,
-                                              Double_t dTsLength,
-                                              Double_t dTsOverLength) {
+void CbmTaskBuildRawEvents::SetTsParameters(Double_t dTsStartTime,
+                                            Double_t dTsLength,
+                                            Double_t dTsOverLength) {
   if (nullptr != fpAlgo)
     fpAlgo->SetTsParameters(dTsStartTime, dTsLength, dTsOverLength);
 }
 
-void Cbm2021EventBuilderTask::SetEventOverlapMode(EOverlapMode mode) {
+void CbmTaskBuildRawEvents::SetEventOverlapMode(EOverlapModeRaw mode) {
   if (nullptr != fpAlgo) fpAlgo->SetEventOverlapMode(mode);
 }
-void Cbm2021EventBuilderTask::SetIgnoreTsOverlap(Bool_t bFlagIn) {
+void CbmTaskBuildRawEvents::SetIgnoreTsOverlap(Bool_t bFlagIn) {
   if (nullptr != fpAlgo) fpAlgo->SetIgnoreTsOverlap(bFlagIn);
 }
-void Cbm2021EventBuilderTask::ChangeMuchBeamtimeDigiFlag(Bool_t bFlagIn) {
+void CbmTaskBuildRawEvents::ChangeMuchBeamtimeDigiFlag(Bool_t bFlagIn) {
   if (nullptr != fpAlgo) fpAlgo->ChangeMuchBeamtimeDigiFlag(bFlagIn);
   fbUseMuchBeamtimeDigi = bFlagIn;
 }
 
 //----------------------------------------------------------------------
 
-ClassImp(Cbm2021EventBuilderTask)
+ClassImp(CbmTaskBuildRawEvents)
diff --git a/reco/eventbuilder/digis/Cbm2021EventBuilderTask.h b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h
similarity index 77%
rename from reco/eventbuilder/digis/Cbm2021EventBuilderTask.h
rename to reco/eventbuilder/digis/CbmTaskBuildRawEvents.h
index 1f5ced7c2b24a189044c07ae448976f971fb6db7..78f29d270ba8f57edb2c494bfebcf745ecd20371 100644
--- a/reco/eventbuilder/digis/Cbm2021EventBuilderTask.h
+++ b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h
@@ -5,11 +5,8 @@
  *              GNU Lesser General Public Licence (LGPL) version 3,             *
  *                  copied verbatim in the file "LICENSE"                       *
  ********************************************************************************/
-#ifndef CBMM2021EVENTBUILDERTASK_H
-#define CBMM2021EVENTBUILDERTASK_H
-
-// CBM headers
-#include "../../fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h"  // for EOverlapMode and EventBuilderDetector
+#ifndef CBMTASKBUILDRAWEVENTS_H
+#define CBMTASKBUILDRAWEVENTS_H
 
 /// FAIRROOT headers
 #include "FairTask.h"
@@ -32,23 +29,26 @@
 #include <vector>
 
 class CbmDigiManager;
-class Cbm2021EventBuilderAlgo;
+class CbmAlgoBuildRawEvents;
+class RawEventBuilderDetector;
 class TClonesArray;
 
-class Cbm2021EventBuilderTask : public FairTask {
+enum class EOverlapModeRaw;
+
+class CbmTaskBuildRawEvents : public FairTask {
 public:
   /** Default constructor **/
-  Cbm2021EventBuilderTask();
+  CbmTaskBuildRawEvents();
 
-  Cbm2021EventBuilderTask(const Cbm2021EventBuilderTask&) = delete;
-  Cbm2021EventBuilderTask operator=(const Cbm2021EventBuilderTask&) = delete;
+  CbmTaskBuildRawEvents(const CbmTaskBuildRawEvents&) = delete;
+  CbmTaskBuildRawEvents operator=(const CbmTaskBuildRawEvents&) = delete;
 
   /** Constructor with parameters (Optional) **/
-  //  Cbm2021EventBuilderTask(Int_t verbose);
+  //  CbmTaskBuildRawEvents(Int_t verbose);
 
 
   /** Destructor **/
-  ~Cbm2021EventBuilderTask();
+  ~CbmTaskBuildRawEvents();
 
 
   /** Initiliazation of task at the beginning of a run **/
@@ -70,9 +70,9 @@ public:
   void SetFillHistos(Bool_t bFlag = kTRUE);
   void SetOutFilename(TString sNameIn);
 
-  void SetReferenceDetector(EventBuilderDetector refDet);
-  void AddDetector(EventBuilderDetector selDet);
-  void RemoveDetector(EventBuilderDetector selDet);
+  void SetReferenceDetector(RawEventBuilderDetector refDet);
+  void AddDetector(RawEventBuilderDetector selDet);
+  void RemoveDetector(RawEventBuilderDetector selDet);
 
   void SetTriggerMinNumber(ECbmModuleId selDet, UInt_t uVal);
   void SetTriggerMaxNumber(ECbmModuleId selDet, Int_t iVal);
@@ -83,7 +83,7 @@ public:
                        Double_t dTsLength,
                        Double_t dTsOverLength);
 
-  void SetEventOverlapMode(EOverlapMode mode);
+  void SetEventOverlapMode(EOverlapModeRaw mode);
   void SetIgnoreTsOverlap(Bool_t bFlagIn);
 
   void ChangeMuchBeamtimeDigiFlag(Bool_t bFlagIn = kFALSE);
@@ -103,7 +103,7 @@ private:
 
   Bool_t fbUseMuchBeamtimeDigi = kTRUE;  //! Switch between MUCH digi classes
 
-  Cbm2021EventBuilderAlgo* fpAlgo = nullptr;
+  CbmAlgoBuildRawEvents* fpAlgo = nullptr;
 
   TClonesArray* fEvents = nullptr;  //! output container of CbmEvents
 
@@ -112,7 +112,7 @@ private:
   /** Name of the histogram output file **/
   TString fsOutFileName {"data/HistosEvtWin.root"};
 
-  ClassDef(Cbm2021EventBuilderTask, 1);
+  ClassDef(CbmTaskBuildRawEvents, 1);
 };
 
-#endif  // CBMM2021EVENTBUILDERTASK_H
+#endif  // CBMTASKBUILDRAWEVENTS_H