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;