diff --git a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
index 4dc89a563a80f147277af123b03031de859adea5..52366d5c086d4ac0f2320ea636279963cdcca3f3 100644
--- a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
+++ b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
@@ -126,12 +126,8 @@ void CbmAlgoBuildRawEvents::Finish() {
 
 // ---------------------------------------------------------------------
 Bool_t CbmAlgoBuildRawEvents::CheckDataAvailable(RawEventBuilderDetector& det) {
-  // Get a handle from the IO manager
-  FairRootManager* ioman = FairRootManager::Instance();
 
   if (ECbmModuleId::kT0 == 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.";
       return kFALSE;
diff --git a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h
index 61a47bfa04b6285fafc3a5ab8ac79bee52a75bce..5e686ab2e2d8c53d70f03f848481c8f6540a1089 100644
--- a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h
+++ b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h
@@ -194,6 +194,9 @@ public:
   }
 
   /// Set digi containers
+  void SetT0Digis(const std::vector<CbmTofDigi>* T0DigiVec) {
+    fT0DigiVec = T0DigiVec;
+  }
   void SetStsDigis(std::vector<CbmStsDigi>* StsDigis) { fStsDigis = StsDigis; }
   void SetMuchDigis(std::vector<CbmMuchDigi>* MuchDigis) {
     fMuchDigis = MuchDigis;
@@ -274,10 +277,10 @@ 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;  //!
-  TClonesArray* fTimeSliceMetaDataArray     = nullptr;  //!
-  const TimesliceMetaData* pTsMetaData      = nullptr;
+  TClonesArray* fTimeSliceMetaDataArray = nullptr;  //!
+  const TimesliceMetaData* pTsMetaData  = nullptr;
 
+  const std::vector<CbmTofDigi>* fT0DigiVec                  = 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/CbmTaskBuildRawEvents.cxx b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx
index 5b73309a155d70535e54e3cfb321137c5cb4deb2..8ca20dc44c181db7dbc3dcb57455ca81abe430a6 100644
--- a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx
+++ b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx
@@ -41,6 +41,15 @@ InitStatus CbmTaskBuildRawEvents::Init() {
   /// Get a handle from the IO manager
   FairRootManager* ioman = FairRootManager::Instance();
 
+  //T0 not included in digi manager.
+  fT0Digis = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("T0Digi");
+  if (!fT0Digis) {
+    LOG(info) << "No T0 digi input.";
+  } else {
+    LOG(info) << "T0 digi input.";
+    fpAlgo->SetT0Digis(fT0Digis);
+  }
+
   // Get a pointer to the previous already existing data level
   fDigiMan = CbmDigiManager::Instance();
   if (fbUseMuchBeamtimeDigi) { fDigiMan->UseMuchBeamTimeDigi(); }
diff --git a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h
index 78f29d270ba8f57edb2c494bfebcf745ecd20371..8eab5aab8a3e94207f8d43cb5983f5868f69810f 100644
--- a/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h
+++ b/reco/eventbuilder/digis/CbmTaskBuildRawEvents.h
@@ -93,6 +93,7 @@ private:
   void SaveHistos();
 
   CbmDigiManager* fDigiMan                             = nullptr;
+  const std::vector<CbmTofDigi>* fT0Digis              = nullptr;
   std::vector<CbmMuchDigi>* fMuchDigis                 = nullptr;
   std::vector<CbmMuchBeamTimeDigi>* fMuchBeamTimeDigis = nullptr;
   std::vector<CbmStsDigi>* fStsDigis                   = nullptr;