diff --git a/mvd/CbmMvdDetector.cxx b/mvd/CbmMvdDetector.cxx index 75e5d5d308a5faf1d2b0f70f9686514195bcb6e0..a00cc45f985ffa13f7edaa946a9d1904711efb9e 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 3f31836f086c9800a7311831df44b5d568184761..6ad02200d9c99321a9f4a541e609ab105151e92b 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 1891f6cf370c779339e6828d15c9fa5e468085d6..218264b4ca5bc48b5f8ab3703d8fefdf74716ddd 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();