diff --git a/macro/analysis/dielectron/run_reco.C b/macro/analysis/dielectron/run_reco.C
index 09180a8480f694b83d21ee8bda49fde86bcff8c8..44c53b58bc2219eb2ee822871e48d23b07b09d74 100755
--- a/macro/analysis/dielectron/run_reco.C
+++ b/macro/analysis/dielectron/run_reco.C
@@ -331,7 +331,6 @@ void run_reco(const string& mcFile   = "/lustre/nyx/cbm/users/criesen/cbm/data/l
     else {
       l1 = new CbmL1("L1", 0);
     }
-    l1->SetDataMode(!eventBased);
 
     // --- Material budget file names
     TString mvdGeoTag;
diff --git a/macro/mcbm/mcbm_reco_event.C b/macro/mcbm/mcbm_reco_event.C
index bb86becafa7b8c9da81883135737104aa24ba2f4..4eb2aa1b755455fffc3c9f6723e0070558d5cc49 100644
--- a/macro/mcbm/mcbm_reco_event.C
+++ b/macro/mcbm/mcbm_reco_event.C
@@ -364,8 +364,8 @@ void mcbm_reco_event(Int_t nEvents = 10, TString dataset = "data/test", const ch
     CbmKF* kalman = new CbmKF();
     run->AddTask(kalman);
     CbmL1* l1 = new CbmL1();
-
-    l1->SetmCBMmode(1);
+    l1->SetLegacyEventMode(1);
+    l1->SetMcbmMode();
     l1->SetUseHitErrors(1);
 
     // --- Material budget file names
diff --git a/macro/rich/run/run_reco.C b/macro/rich/run/run_reco.C
index e7b0fe01911343a17218f57c55ff25337a0aa938..68ed3bfedeeda0d90d8c52d5ac20164d74e4566e 100644
--- a/macro/rich/run/run_reco.C
+++ b/macro/rich/run/run_reco.C
@@ -207,7 +207,6 @@ void run_reco(const string& traFile  = "/Users/slebedev/Development/cbm/data/sim
     else {
       l1 = new CbmL1("L1", 0);
     }
-    l1->SetDataMode(!eventBased);
 
     // --- Material budget file names
     TString mvdGeoTag;
diff --git a/macro/run/run_reco.C b/macro/run/run_reco.C
index a036e3209564d359ba9d0b144eb0cb6c585acc79..3c59f14f78c3e0f506fa0b4a537603b7e66551f0 100644
--- a/macro/run/run_reco.C
+++ b/macro/run/run_reco.C
@@ -372,7 +372,6 @@ void run_reco(TString input = "", Int_t nTimeSlices = -1, Int_t firstTimeSlice =
     else {
       l1 = new CbmL1("L1", 0);
     }
-    l1->SetDataMode(1);
 
     // --- Material budget file names
     TString mvdGeoTag;
diff --git a/reco/L1/CbmL1.cxx b/reco/L1/CbmL1.cxx
index 657f60eba174fa685d3ce29fedeedb80e8bdb7e8..72bb0abde759eaad3a4599979b99b9316ed07613 100644
--- a/reco/L1/CbmL1.cxx
+++ b/reco/L1/CbmL1.cxx
@@ -223,11 +223,11 @@ InitStatus CbmL1::Init()
   vFileEvent.clear();
 
 
-  if (fTimesliceMode) {  //  Time-slice mode selected
+  if (!fLegacyEventMode) {  //  Time-slice mode selected
     LOG(info) << GetName() << ": running in time-slice mode.";
     fTimeSlice = NULL;
     fTimeSlice = (CbmTimeSlice*) fManger->GetObject("TimeSlice.");
-    if (fTimeSlice == NULL) LOG(fatal) << GetName() << ": No time slice branch in tree!";
+    if (fTimeSlice == NULL) LOG(fatal) << GetName() << ": No time slice branch in the tree!";
 
   }  //? time-slice mode
 
@@ -287,7 +287,7 @@ InitStatus CbmL1::Init()
     if (NULL == fStsPoints) LOG(fatal) << GetName() << ": No StsPoint data!";
     if (NULL == fMCTracks) LOG(fatal) << GetName() << ": No MCTrack data!";
 
-    if (fTimesliceMode) {
+    if (!fLegacyEventMode) {
       fEventList = (CbmMCEventList*) fManger->GetObject("MCEventList.");
       if (NULL == fEventList) LOG(fatal) << GetName() << ": No MCEventList data!";
     }
@@ -1062,7 +1062,7 @@ void CbmL1::Reconstruct(CbmEvent* event)
     StsIndex.push_back(j);
   };
 
-  if (fTimesliceMode && fPerformance) {
+  if (!fLegacyEventMode && fPerformance) {
 
     int nofEvents = fEventList->GetNofEvents();
     for (int iE = 0; iE < nofEvents; iE++) {
@@ -1238,7 +1238,7 @@ void CbmL1::Reconstruct(CbmEvent* event)
     if (fVerbose > 1) { cout << "L1 Track fitter  ok" << endl; }
 
     // save recontstructed tracks
-    if (!fTimesliceMode) vRTracksCur.clear();
+    if (fLegacyEventMode) vRTracksCur.clear();
     int start_hit = 0;
 
     float TsStart_new = TsStart + TsLength - TsOverlap;
@@ -1270,7 +1270,7 @@ void CbmL1::Reconstruct(CbmEvent* event)
       for (int i = 0; i < it->NHits; i++) {
         int start_hit1 = start_hit;
         if (algo->fRecoHits[start_hit1] > vStsHits.size() - 1) start_hit++;
-        else if (fTimesliceMode) {
+        else if (!fLegacyEventMode) {
           t.StsHits.push_back(((*algo->vStsHits)[algo->fRecoHits[start_hit]]).ID);
         }
         else {
@@ -1312,7 +1312,7 @@ void CbmL1::Reconstruct(CbmEvent* event)
 
       if (indd == 1) continue;
 
-      if ((fTimesliceMode) && (isInOverlap == 1)) {
+      if ((!fLegacyEventMode) && (isInOverlap == 1)) {
 
         continue;  ///Discard tracks from overlap region
 
@@ -1337,9 +1337,9 @@ void CbmL1::Reconstruct(CbmEvent* event)
       }
     };
 
-    if (fTimesliceMode) TsStart = TsStart_new;  ///Set new TS strat to earliest discarted track
+    if (!fLegacyEventMode) TsStart = TsStart_new;  ///Set new TS strat to earliest discarted track
 
-    if (fTimesliceMode) cout << "CA Track Finder: " << algo->fCATime << " s/sub-ts" << endl << endl;
+    if (!fLegacyEventMode) cout << "CA Track Finder: " << algo->fCATime << " s/sub-ts" << endl << endl;
   }
 
 
@@ -1373,7 +1373,7 @@ void CbmL1::Reconstruct(CbmEvent* event)
   for (unsigned int iTrack = 0; iTrack < vRTracksCur.size(); iTrack++) {
 
     for (unsigned int iHit = 0; iHit < vRTracksCur[iTrack].StsHits.size(); iHit++)
-      if (fTimesliceMode) vRTracksCur[iTrack].StsHits[iHit] = SortedIndex[vRTracksCur[iTrack].StsHits[iHit]];
+      if (!fLegacyEventMode) vRTracksCur[iTrack].StsHits[iHit] = SortedIndex[vRTracksCur[iTrack].StsHits[iHit]];
 
     vRTracks.push_back(vRTracksCur[iTrack]);
   }
diff --git a/reco/L1/CbmL1.h b/reco/L1/CbmL1.h
index 118509a2b64da7842180407d8364bb50c35cf8b0..c7b40e570daeb6a201f948783db0f11e8a9f45df 100644
--- a/reco/L1/CbmL1.h
+++ b/reco/L1/CbmL1.h
@@ -152,7 +152,7 @@ public:
   void SetTrdMaterialBudgetFileName(TString fileName) { fTrdMatBudgetFileName = fileName; }
   void SetTofMaterialBudgetFileName(TString fileName) { fTofMatBudgetFileName = fileName; }
   void SetExtrapolateToTheEndOfSTS(bool b) { fExtrapolateToTheEndOfSTS = b; }
-  void SetDataMode(int TimesliceMode) { fTimesliceMode = TimesliceMode; }
+  void SetLegacyEventMode(bool b) { fLegacyEventMode = b; }
   void SetMuchPar(TString fileName) { fMuchDigiFile = fileName; }
   void SetUseHitErrors(bool value) { fUseHitErrors = value; }
   void SetStsOnlyMode() { fTrackingMode = L1Algo::TrackingMode::kSts; }
@@ -351,7 +351,7 @@ private:
   TString fTrdMatBudgetFileName {};
   TString fTofMatBudgetFileName {};
   bool fExtrapolateToTheEndOfSTS {false};
-  int fTimesliceMode {0};
+  bool fLegacyEventMode {false};
 
   KFTopoPerformance* fTopoPerformance {nullptr};
   L1EventEfficiencies fEventEfficiency {};  // average efficiencies
diff --git a/reco/L1/CbmL1Performance.cxx b/reco/L1/CbmL1Performance.cxx
index 39fc37db21d6410febc7be408ceba656bdcf5737..7f645050d713e467deb02c4f15f950aaf189927b 100644
--- a/reco/L1/CbmL1Performance.cxx
+++ b/reco/L1/CbmL1Performance.cxx
@@ -1,6 +1,6 @@
 /* Copyright (C) 2006-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
    SPDX-License-Identifier: GPL-3.0-only
-   Authors: Ivan Kisel,  Sergey Gorbunov, Igor Kulakov, Valentina Akishina, Grigory Kozlov */
+   Authors: Ivan Kisel,  Sergey Gorbunov [committer], Igor Kulakov, Valentina Akishina, Grigory Kozlov */
 
 /*
  *====================================================================
@@ -441,7 +441,7 @@ void CbmL1::EfficienciesPerformance()
     cout << "MC tracks/event found  : "
          << int(double(L1_NTRA.reco.counters[L1_NTRA.indices["total"]]) / double(L1_NEVENTS)) << endl;
     cout << endl;
-    cout << "CA Track Finder: " << L1_CATIME / L1_NEVENTS << (fTimesliceMode ? " s/time slice" : " s/ev") << endl
+    cout << "CA Track Finder: " << L1_CATIME / L1_NEVENTS << (fLegacyEventMode ? " s/ev" : " s/time slice") << endl
          << endl;
   }
 }  // void CbmL1::Performance()
@@ -1859,7 +1859,7 @@ void CbmL1::InputPerformance()
 
         double mcTime = pt->GetTime();
 
-        if (fTimesliceMode) mcTime += fEventList->GetEventTime(link.GetEntry(), link.GetFile());
+        if (!fLegacyEventMode) mcTime += fEventList->GetEventTime(link.GetEntry(), link.GetFile());
 
         // hit pulls and residuals
 
@@ -1967,7 +1967,7 @@ void CbmL1::InputPerformance()
       CbmMuchPoint* pt = (CbmMuchPoint*) fMuchPoints->Get(link.GetFile(), link.GetEntry(), link.GetIndex());
       double mcTime    = pt->GetTime();
 
-      if (fTimesliceMode) mcTime += fEventList->GetEventTime(link.GetEntry(), link.GetFile());
+      if (!fLegacyEventMode) mcTime += fEventList->GetEventTime(link.GetEntry(), link.GetFile());
       // mcTime+=20;
 
       // hit pulls and residuals
@@ -2036,7 +2036,7 @@ void CbmL1::InputPerformance()
       CbmTrdPoint* pt = (CbmTrdPoint*) fTrdPoints->Get(link.GetFile(), link.GetEntry(), link.GetIndex());
       double mcTime   = pt->GetTime();
 
-      if (fTimesliceMode) mcTime += fEventList->GetEventTime(link.GetEntry(), link.GetFile());
+      if (!fLegacyEventMode) mcTime += fEventList->GetEventTime(link.GetEntry(), link.GetFile());
 
       // hit pulls and residuals
       //      if ((sh->GetPlaneId()) == 0) continue;
@@ -2104,7 +2104,7 @@ void CbmL1::InputPerformance()
       CbmTofPoint* pt = (CbmTofPoint*) fTofPoints->Get(link.GetFile(), link.GetEntry(), link.GetIndex());
       double mcTime   = pt->GetTime();
 
-      if (fTimesliceMode) mcTime += fEventList->GetEventTime(link.GetEntry(), link.GetFile());
+      if (!fLegacyEventMode) mcTime += fEventList->GetEventTime(link.GetEntry(), link.GetFile());
 
       // hit pulls and residuals
 
diff --git a/reco/L1/CbmL1ReadEvent.cxx b/reco/L1/CbmL1ReadEvent.cxx
index 1e9d0d25a5926b900b813dc75c42fb1e3d4df046..c6433a5e7587f136265f506e10a7b2300b3ab94f 100644
--- a/reco/L1/CbmL1ReadEvent.cxx
+++ b/reco/L1/CbmL1ReadEvent.cxx
@@ -440,7 +440,7 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
       hitIndex       = (event ? event->GetIndex(ECbmDataType::kStsHit, j) : j);
 
       int hitIndexSort = 0;
-      if (fTimesliceMode) hitIndexSort = StsIndex[hitIndex];
+      if (!fLegacyEventMode) hitIndexSort = StsIndex[hitIndex];
       else
         hitIndexSort = j;
 
@@ -463,9 +463,10 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
         th.time = mh->GetTime();
         th.dt   = mh->GetTimeError();
 
-        if (fTimesliceMode) th.id = nMvdHits + hitIndex;
-        else
+        if (!fLegacyEventMode) { th.id = nMvdHits + hitIndex; }
+        else {
           th.id = tmpHits.size();
+        }
 
         /// stop if reco TS ends and many hits left
         if (!event)
@@ -524,7 +525,7 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
                 bestWeight   = stsHitMatch.GetLink(iLink).GetWeight();
                 Int_t iFile  = stsHitMatch.GetLink(iLink).GetFile();
                 Int_t iEvent = stsHitMatch.GetLink(iLink).GetEntry();
-                //                 if(!fTimesliceMode) //TODO Fix the event number in links
+                //                 if(fLegacyEventMode) //TODO Fix the event number in links
                 //                   iEvent+=1;
                 Int_t iIndex            = stsHitMatch.GetLink(iLink).GetIndex() + nMvdPoints;
                 Double_t dtrck          = dFEI(iFile, iEvent, iIndex);
@@ -1085,7 +1086,7 @@ bool CbmL1::ReadMCPoint(CbmL1MCPoint* MC, int iPoint, int file, int event, int M
   if (MVD == 0) {
     CbmStsPoint* pt = L1_DYNAMIC_CAST<CbmStsPoint*>(fStsPoints->Get(file, event, iPoint));  // file, event, object
     if (!pt) return 1;
-    //     if ( fTimesliceMode )
+    //     if ( !fLegacyEventMode )
     //     {
     //       Double_t StartTime = fTimeSlice->GetStartTime();
     //       Double_t EndTime = fTimeSlice->GetEndTime();
@@ -1095,7 +1096,7 @@ bool CbmL1::ReadMCPoint(CbmL1MCPoint* MC, int iPoint, int file, int event, int M
     //
     //       if (Time_MC_point > EndTime )
     //         return 1;
-    //     } //if ( fTimesliceMode )
+    //     }
 
     pt->Position(xyzI);
     pt->Momentum(PI);
@@ -1109,14 +1110,14 @@ bool CbmL1::ReadMCPoint(CbmL1MCPoint* MC, int iPoint, int file, int event, int M
   if (MVD == 2) {
     CbmMuchPoint* pt = L1_DYNAMIC_CAST<CbmMuchPoint*>(fMuchPoints->Get(file, event, iPoint));  // file, event, object
     if (!pt) return 1;
-    if (fTimesliceMode) {
+    if (!fLegacyEventMode) {
       Double_t StartTime     = fTimeSlice->GetStartTime();
       Double_t EndTime       = fTimeSlice->GetEndTime();
       Double_t Time_MC_point = pt->GetTime() + fEventList->GetEventTime(event, file);
       if (Time_MC_point < StartTime) return 1;
 
       if (Time_MC_point > EndTime) return 1;
-    }  //if ( fTimesliceMode )
+    }
 
     pt->Position(xyzI);
     pt->Momentum(PI);
@@ -1131,7 +1132,7 @@ bool CbmL1::ReadMCPoint(CbmL1MCPoint* MC, int iPoint, int file, int event, int M
     CbmTrdPoint* pt = L1_DYNAMIC_CAST<CbmTrdPoint*>(fTrdPoints->Get(file, event, iPoint));  // file, event, object
 
     if (!pt) return 1;
-    if (fTimesliceMode) {
+    if (!fLegacyEventMode) {
       //Double_t StartTime = fTimeSlice->GetStartTime();  // not used
       //Double_t EndTime = fTimeSlice->GetEndTime();      // not used
       //Double_t Time_MC_point =  pt->GetTime() + fEventList->GetEventTime(event, file); // not used
@@ -1140,7 +1141,7 @@ bool CbmL1::ReadMCPoint(CbmL1MCPoint* MC, int iPoint, int file, int event, int M
       //
       //       if (Time_MC_point > EndTime )
       //         return 1;
-    }  //if ( fTimesliceMode )
+    }
 
     pt->Position(xyzI);
     pt->Momentum(PI);
@@ -1154,14 +1155,14 @@ bool CbmL1::ReadMCPoint(CbmL1MCPoint* MC, int iPoint, int file, int event, int M
   if (MVD == 4) {
     CbmTofPoint* pt = L1_DYNAMIC_CAST<CbmTofPoint*>(fTofPoints->Get(file, event, iPoint));  // file, event, object
     if (!pt) return 1;
-    if (fTimesliceMode) {
+    if (!fLegacyEventMode) {
       Double_t StartTime     = fTimeSlice->GetStartTime();
       Double_t EndTime       = fTimeSlice->GetEndTime();
       Double_t Time_MC_point = pt->GetTime() + fEventList->GetEventTime(event, file);
       if (Time_MC_point < StartTime) return 1;
 
       if (Time_MC_point > EndTime) return 1;
-    }  //if ( fTimesliceMode )
+    }
 
     pt->Position(xyzI);
     pt->Momentum(PI);
@@ -1277,7 +1278,7 @@ void CbmL1::HitMatch()
           Int_t iEvent        = link.GetEntry();
           Int_t iIndex        = link.GetIndex();
 
-          if (!fTimesliceMode) {
+          if (fLegacyEventMode) {
             iFile  = vFileEvent.begin()->first;
             iEvent = vFileEvent.begin()->second;
           }
diff --git a/reco/L1/L1Algo/L1Algo.h b/reco/L1/L1Algo/L1Algo.h
index 4ede5572be511b6f6739b1ea7dc5ee07d4c52773..7d53a64af9cb74536417762c9d78ab00bf8ba708 100644
--- a/reco/L1/L1Algo/L1Algo.h
+++ b/reco/L1/L1Algo/L1Algo.h
@@ -1,6 +1,6 @@
 /* Copyright (C) 2007-2021 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
    SPDX-License-Identifier: GPL-3.0-only
-   Authors: Maksym Zyzak, Valentina Akishina, Igor Kulakov */
+   Authors: Maksym Zyzak, Valentina Akishina, Igor Kulakov [committer] */
 
 #ifndef L1Algo_h
 #define L1Algo_h