From c544d32c9b6418ff39af591cb5a975e0b0cb4c23 Mon Sep 17 00:00:00 2001 From: Dominik Smith <smith@th.physik.uni-frankfurt.de> Date: Tue, 2 Feb 2021 16:05:24 +0100 Subject: [PATCH] CbmBuildRawEvents: Moved initialization of T0 digi vector from Algo to Task. --- reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx | 4 ---- reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h | 9 ++++++--- reco/eventbuilder/digis/CbmTaskBuildRawEvents.cxx | 9 +++++++++ reco/eventbuilder/digis/CbmTaskBuildRawEvents.h | 1 + 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx index 4dc89a56..52366d5c 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 61a47bfa..5e686ab2 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 5b73309a..8ca20dc4 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 78f29d27..8eab5aab 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; -- GitLab