diff --git a/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx b/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx
index bca3bcc80b59218f9354854a9c8f346cc70743f3..b93da4712830685518d3a9dc583011d00f5ca960 100644
--- a/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx
+++ b/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx
@@ -136,6 +136,16 @@ template void CbmSeedFinderSlidingWindow::FillSeedTimes(const std::vector<CbmTof
 template void CbmSeedFinderSlidingWindow::FillSeedTimes(const std::vector<CbmTrdDigi>*, const std::vector<CbmMatch>*);
 template void CbmSeedFinderSlidingWindow::FillSeedTimes(const std::vector<double>*, const std::vector<CbmMatch>*);
 
+void CbmSeedFinderSlidingWindow::FillSeedTimes()
+{
+  if (!fbIdealMode) {
+    std::cout << "CbmSeedFinderSlidingWindow: Error, called algo without digi input, but ideal mode is not set."
+              << std::endl;
+    exit(1);
+  }
+  FillSeedTimes<double>(nullptr);
+}
+
 template<class inType>
 double CbmSeedFinderSlidingWindow::GetTime(const std::vector<inType>* vIn, int32_t i)
 {
diff --git a/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.h b/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.h
index 5c2b49b5bf740dbffcae5c7a67edfdf97803d435..7c891fcf88d6770995ae565ef11ae74416613127 100644
--- a/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.h
+++ b/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.h
@@ -63,6 +63,10 @@ public:
   template<class inType>
   void FillSeedTimes(const std::vector<inType>* vIn, const std::vector<CbmMatch>* vDigiMatch = nullptr);
 
+  /** @brief Function which builds event seeds without digi input. Can only be used in ideal mode.
+  **/
+  void FillSeedTimes();
+
   /** @brief Sets a global constant offset which is applied to each trigger time
    * @params Value of offset 
    **/
diff --git a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx
index 658e741aeecf57d816f2c6210a4e30f327d27929..fbbced420d682de1d2bfaab622fa19bf02783d02 100644
--- a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx
+++ b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx
@@ -59,11 +59,11 @@ void CbmTaskBuildRawEvents::SetSlidingWindowSeedFinder(int32_t minDigis, double
     delete fSeedFinderSlidingWindow;
     fSeedFinderSlidingWindow = nullptr;
   }
-  fSeedFinderSlidingWindow = new CbmSeedFinderSlidingWindow(fSeedTimes, minDigis, dWindDur, dDeadT);
-  fSeedFinderSlidingWindow->SetOffset(dOffset);
-
   if (fSeedTimes == nullptr) { fSeedTimes = new std::vector<Double_t>; }
   fpAlgo->SetSeedTimes(fSeedTimes);
+
+  fSeedFinderSlidingWindow = new CbmSeedFinderSlidingWindow(fSeedTimes, minDigis, dWindDur, dDeadT);
+  fSeedFinderSlidingWindow->SetOffset(dOffset);
 }
 
 void CbmTaskBuildRawEvents::SetSeedFinderQa(Bool_t bFlagIn)
@@ -186,7 +186,6 @@ InitStatus CbmTaskBuildRawEvents::Init()
     return kFATAL;
 }
 
-
 InitStatus CbmTaskBuildRawEvents::ReInit() { return kSUCCESS; }
 
 void CbmTaskBuildRawEvents::Exec(Option_t* /*option*/)
@@ -371,8 +370,14 @@ void CbmTaskBuildRawEvents::FillSeedTimesFromDetList(std::vector<Double_t>* vdSe
 void CbmTaskBuildRawEvents::FillSeedTimesFromSlidingWindow()
 {
   if (fSeedTimeDetList.size() == 0) {
-    std::cout << "FillSeedTimesFromSlidingWindow(): Error, seed detector list empty." << std::endl;
-    exit(1);
+    if (fSeedFinderSlidingWindow->IsIdealMode()) {
+      fSeedFinderSlidingWindow->FillSeedTimes();
+      return;
+    }
+    else {
+      std::cout << "FillSeedTimesFromSlidingWindow(): Error, seed detector list empty." << std::endl;
+      exit(1);
+    }
   }
   if (fSeedTimeDetList.size() == 1) {
     const RawEventBuilderDetector seedDet = fSeedTimeDetList.at(0);