From a35d699d92a738822ac5fad291c8492261b5d3cb Mon Sep 17 00:00:00 2001 From: Florian Uhlig <f.uhlig@gsi.de> Date: Tue, 17 Jan 2023 16:30:37 +0100 Subject: [PATCH] Add the digitizer plugins from digitizer tasks The digitizer plugings are now added to all sensors from the digitizer task. Before the change this was done from the CbmMvdDetector class which results in an unwanted dependency from CbmMvdSensorDigitizerTask. --- mvd/CbmMvdDetector.cxx | 6 ++++-- mvd/CbmMvdDetector.h | 5 +++++ mvd/CbmMvdDigitizer.cxx | 14 ++++++++++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/mvd/CbmMvdDetector.cxx b/mvd/CbmMvdDetector.cxx index 75e5d5d308..a00cc45f98 100644 --- a/mvd/CbmMvdDetector.cxx +++ b/mvd/CbmMvdDetector.cxx @@ -19,7 +19,7 @@ #include "plugins/tasks/CbmMvdSensorClusterfinderTask.h" //khun #include "plugins/tasks/CbmMvdSensorDigiToHitTask.h" #include "plugins/tasks/CbmMvdSensorDigitizerTBTask.h" -#include "plugins/tasks/CbmMvdSensorDigitizerTask.h" +//#include "plugins/tasks/CbmMvdSensorDigitizerTask.h" //#include "plugins/tasks/CbmMvdSensorFindHitTask.h" #include "CbmDigiManager.h" #include "plugins/tasks/CbmMvdSensorHitfinderTask.h" //khun @@ -204,19 +204,21 @@ void CbmMvdDetector::AddPlugin(CbmMvdSensorPlugin* plugin) const TString hitname = "CbmMvdSensorHitfinderTask"; //khun const TString digitohitname = "CbmMvdSensorDigiToHitTask"; - for (Int_t i = 0; i < nSensors; i++) { if (plugin->GetPluginType() == task) { if (plugin->ClassName() == digitizername) { + LOG(fatal) << "Should never come here. Tasks are now added in CbmMvdDigitizer class"; +/* CbmMvdSensorDigitizerTask* digiTask = new CbmMvdSensorDigitizerTask(); sensor = (CbmMvdSensor*) fSensorArray->At(i); sensor->AddPlugin(digiTask); sensor->SetDigiPlugin(fPluginCount); //cout << "Adding Task CbmMvdSensorDigitizerTask at Sensor " << sensor->GetName() << endl; +*/ } else if (plugin->ClassName() == digitizerTBname) { CbmMvdSensorDigitizerTBTask* digiTask = new CbmMvdSensorDigitizerTBTask(); diff --git a/mvd/CbmMvdDetector.h b/mvd/CbmMvdDetector.h index 3f31836f08..6ad02200d9 100644 --- a/mvd/CbmMvdDetector.h +++ b/mvd/CbmMvdDetector.h @@ -79,6 +79,8 @@ public: // TClonesArray* GetClonesArray(Int_t dataLevel){ return 0;} Int_t GetSensorArraySize() { return (fSensorArray->GetEntriesFast()); } Int_t GetPluginArraySize() { return fPluginCount - 1; } + UInt_t GetPluginCount() { return fPluginCount; } + void SetPluginCount(UInt_t count) { fPluginCount=count; } Int_t DetectPlugin(Int_t pluginID); @@ -99,6 +101,7 @@ public: void ShowDebugHistos(); /** Data Processing */ + std::map<int, CbmMvdSensor*>& GetSensorMap() { return fSensorMap;}; void ExecChain(); //Processes the full execution chain void Exec(UInt_t nLevel); //Processes Element nLevel of the chain @@ -119,6 +122,8 @@ public: static void SetSensorTyp(CbmMvdSensorTyp typ) { fSensorTyp = typ; }; + void SetSensorArrayFilled(Bool_t value = kTRUE) {fSensorArrayFilled=value;} + private: static CbmMvdSensorTyp fSensorTyp; diff --git a/mvd/CbmMvdDigitizer.cxx b/mvd/CbmMvdDigitizer.cxx index 1891f6cf37..218264b4ca 100644 --- a/mvd/CbmMvdDigitizer.cxx +++ b/mvd/CbmMvdDigitizer.cxx @@ -326,10 +326,20 @@ InitStatus CbmMvdDigitizer::Init() } } - CbmMvdSensorDigitizerTask* digiTask = new CbmMvdSensorDigitizerTask(); - fDetector->AddPlugin(digiTask); + // Add the digitizer plugin to all sensors + std::map<int, CbmMvdSensor*>& sensorMap = fDetector->GetSensorMap(); + + for (auto itr = sensorMap.begin(); + itr != sensorMap.end(); itr++) { + CbmMvdSensorDigitizerTask* digiTask = new CbmMvdSensorDigitizerTask(); + itr->second->AddPlugin(digiTask); + itr->second->SetDigiPlugin(plugincount); + } + fDetector->SetSensorArrayFilled(kTRUE); + fDetector->SetPluginCount(plugincount+1); fDigiPluginNr = (UInt_t)(fDetector->GetPluginArraySize()); + if (fShowDebugHistos) fDetector->ShowDebugHistos(); fDetector->Init(); -- GitLab