diff --git a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx
index f1191e94ad8fa8afb9c7e9b9b041cdbf3de842c2..0973a3c480ff57888936ed8949403ea7e9cdb03a 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx
@@ -67,17 +67,19 @@ Bool_t CbmMcbm2019TimeWinEventBuilderAlgo::InitAlgo() {
     }  // if( kFALSE == CheckDataAvailable( *det ) )
   }  // for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det)
 
-  /// Access the TS metadata to know TS start tim
-  fTimeSliceMetaDataArray =
-    dynamic_cast<TClonesArray*>(ioman->GetObject("TimesliceMetaData"));
-  if (!fTimeSliceMetaDataArray) {
-    LOG(fatal)
-      << "No TS metadata input found"
-      << " => Please check in the unpacking macro if the following line was "
-         "present!"
-      << std::endl
-      << "source->SetWriteOutputFlag(kTRUE);  // For writing TS metadata";
-  }  // if (!fTimeSliceMetaDataArray)
+  /// Access the TS metadata to know TS start time if needed
+  if (fdTsStartTime < 0 || fdTsLength < 0 || fdTsOverLength < 0) {
+    fTimeSliceMetaDataArray =
+      dynamic_cast<TClonesArray*>(ioman->GetObject("TimesliceMetaData"));
+    if (!fTimeSliceMetaDataArray) {
+      LOG(fatal)
+        << "No TS metadata input found"
+        << " => Please check in the unpacking macro if the following line was "
+           "present!"
+        << std::endl
+        << "source->SetWriteOutputFlag(kTRUE);  // For writing TS metadata";
+    }  // if (!fTimeSliceMetaDataArray)
+  } // if ( fdTsStartTime < 0 || fdTsLength < 0 || fdTsOverLength < 0 )
 
   if (fbFillHistos) { CreateHistograms(); }  // if( fbFillHistos )
 
@@ -209,37 +211,47 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::BuildEvents() {
 
 template<class DigiSeed>
 void CbmMcbm2019TimeWinEventBuilderAlgo::LoopOnSeeds() {
-  pTsMetaData =
-    dynamic_cast<TimesliceMetaData*>(fTimeSliceMetaDataArray->At(0));
-  if (nullptr == pTsMetaData)
-    LOG(fatal) << Form("CbmMcbm2019TimeWinEventBuilderAlgo::LoopOnSeeds => "
-                       "No TS metadata found for TS %6u.",
-                       fuNrTs);
+  /// Access the TS metadata if needed to know TS start time and overlap size
+  Double_t dTsStartTime  = fdTsStartTime;
+  Double_t dOverlapStart = fdTsStartTime + fdTsLength;
+  Double_t dOverlapSize  = fdTsOverLength;
+  if (fdTsStartTime < 0 || fdTsLength < 0 || fdTsOverLength < 0) {
+    pTsMetaData =
+      dynamic_cast<TimesliceMetaData*>(fTimeSliceMetaDataArray->At(0));
+    if (nullptr == pTsMetaData)
+      LOG(fatal) << Form("CbmMcbm2019TimeWinEventBuilderAlgo::LoopOnSeeds => "
+                         "No TS metadata found for TS %6u.",
+                         fuNrTs);
+
+    dTsStartTime  = pTsMetaData->GetStartTime();
+    dOverlapStart = pTsMetaData->GetOverlapStartTime();
+    dOverlapSize  = pTsMetaData->GetOverlapDuration();
+  } // if ( fdTsStartTime < 0 || fdTsLength < 0  || fdTsOverLength < 0 )
 
   /// Print warning in first TS if time window borders out of potential overlap
   if ((0.0 < fdEarliestTimeWinBeg
-       && pTsMetaData->GetOverlapDuration() < fdLatestTimeWinEnd)
-      || (pTsMetaData->GetOverlapDuration() < fdWidestTimeWinRange)) {
+       && dOverlapSize < fdLatestTimeWinEnd)
+      || (dOverlapSize < fdWidestTimeWinRange)) {
     LOG(warning) << "CbmMcbm2019TimeWinEventBuilderAlgo::LoopOnSeeds => "
                  << Form("Event window not fitting in TS overlap, risk of "
                          "incomplete events: %f %f %f %llu",
                          fdEarliestTimeWinBeg,
                          fdLatestTimeWinEnd,
                          fdWidestTimeWinRange,
-                         pTsMetaData->GetOverlapDuration());
+                         dOverlapSize);
   }  // if end of event window does not fit in overlap for a seed at edge of TS core
 
   /// Define an acceptance window for the seeds in order to use the overlap
   /// part of the TS to avoid incomplete events
   Double_t dSeedWindowBeg =
-    pTsMetaData->GetStartTime()
+    dTsStartTime
     + (0.0 < fdEarliestTimeWinBeg ? 0.0 : -fdEarliestTimeWinBeg);
   Double_t dSeedWindowEnd =
-    pTsMetaData->GetOverlapStartTime()
+    dOverlapStart
     + (0.0 < fdEarliestTimeWinBeg ? 0.0 : -fdEarliestTimeWinBeg);
   if (fbIgnoreTsOverlap) {
-    dSeedWindowBeg = pTsMetaData->GetStartTime();
-    dSeedWindowEnd = pTsMetaData->GetOverlapStartTime();
+    dSeedWindowBeg = dTsStartTime;
+    dSeedWindowEnd = dOverlapStart;
   }  // if( fbIgnoreTsOverlap )
 
   if (ECbmModuleId::kT0 == fRefDet.detId) {
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h
index af47dcd01b414888d19d1086ec3d2f62b0efc6dd..2173184714abd3a75899a7c0f980e5e37fb37c1e 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h
+++ b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h
@@ -153,6 +153,14 @@ public:
   void
   SetTriggerWindow(ECbmModuleId selDet, Double_t dWinBeg, Double_t dWinEnd);
 
+  void SetTsParameters(Double_t dTsStartTime,
+                       Double_t dTsLength,
+                       Double_t dTsOverLength) {
+    fdTsStartTime  = dTsStartTime;
+    fdTsLength     = dTsLength;
+    fdTsOverLength = fdTsOverLength;
+  }
+
   /// Control flags
   void SetEventOverlapMode(EOverlapMode mode) { fOverMode = mode; }
   void SetIgnoreTsOverlap(Bool_t bFlagIn = kTRUE) {
@@ -225,6 +233,10 @@ private:
   Double_t fdLatestTimeWinEnd   = kdDefaultTimeWinEnd;
   Double_t fdWidestTimeWinRange = kdDefaultTimeWinEnd - kdDefaultTimeWinBeg;
 
+  Double_t fdTsStartTime  = -1;
+  Double_t fdTsLength     = -1;
+  Double_t fdTsOverLength = -1;
+
   /// Data input
   /// FIXME: usage of CbmDigiManager in FairMq context?!?
   ///        => Maybe by registering vector (or vector reference) to ioman in Device?
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.cxx b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.cxx
index a3e7cd99b0f07109e25e115cceee3b128482467f..56792605a7303f52c0bbeac5ac659183dd21714a 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.cxx
@@ -169,6 +169,15 @@ void CbmMcbm2019TimeWinEventBuilderTask::SetTriggerWindow(ECbmModuleId det,
   if (nullptr != fpAlgo) fpAlgo->SetTriggerWindow(det, dWinBeg, dWinEnd);
 }
 
+
+void CbmMcbm2019TimeWinEventBuilderTask::SetTsParameters(Double_t dTsStartTime,
+                                                         Double_t dTsLength,
+                                                         Double_t dTsOverLength) {
+  if (nullptr != fpAlgo) fpAlgo->SetTsParameters(dTsStartTime,
+                                                 dTsLength,
+                                                 dTsOverLength);
+}
+
 void CbmMcbm2019TimeWinEventBuilderTask::SetEventOverlapMode(
   EOverlapMode mode) {
   if (nullptr != fpAlgo) fpAlgo->SetEventOverlapMode(mode);
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.h b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.h
index 4748f0c8c4d2990d498ffafa2581568531a87781..2c3b87dd97d41d6555e6c0b085402f6ef20deb59 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.h
+++ b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.h
@@ -72,6 +72,10 @@ public:
 
   void SetTriggerWindow(ECbmModuleId det, Double_t dWinBeg, Double_t dWinEnd);
 
+  void SetTsParameters(Double_t dTsStartTime,
+                       Double_t dTsLength,
+                       Double_t dTsOverLength);
+
   void SetEventOverlapMode(EOverlapMode mode);
   void SetIgnoreTsOverlap(Bool_t bFlagIn);