diff --git a/mvd/CbmMvd.h b/mvd/CbmMvd.h index a377ddc9986873d026afee9a6d0e61c0a3a5687e..f6dbbc68b5cf60c3d45fa2311d7236663711a24e 100644 --- a/mvd/CbmMvd.h +++ b/mvd/CbmMvd.h @@ -19,7 +19,7 @@ #define CBMMVD_H 1 -#include "SensorDataSheets/CbmMvdMimosa26AHR.h" +//#include "SensorDataSheets/CbmMvdMimosa26AHR.h" #include "FairDetector.h" diff --git a/mvd/CbmMvdClusterfinder.cxx b/mvd/CbmMvdClusterfinder.cxx index 9b566b3c89ecdbed919841afa5148dadaede4b7e..4e17674ba287f57345e888b3df08d2f20a4d5656 100644 --- a/mvd/CbmMvdClusterfinder.cxx +++ b/mvd/CbmMvdClusterfinder.cxx @@ -158,10 +158,22 @@ InitStatus CbmMvdClusterfinder::Init() LOG(fatal) << "Geometry couldn't be loaded from file. No MVD digitizer available."; } - CbmMvdSensorClusterfinderTask* clusterTask = new CbmMvdSensorClusterfinderTask(); - fDetector->AddPlugin(clusterTask); + // Add the digitizer plugin to all sensors + std::map<int, CbmMvdSensor*>& sensorMap = fDetector->GetSensorMap(); + UInt_t plugincount=fDetector->GetPluginCount(); + + for (auto itr = sensorMap.begin(); + itr != sensorMap.end(); itr++) { + CbmMvdSensorClusterfinderTask* clusterTask = new CbmMvdSensorClusterfinderTask(); + + itr->second->AddPlugin(clusterTask); + itr->second->SetDigiPlugin(plugincount); + } + fDetector->SetSensorArrayFilled(kTRUE); + fDetector->SetPluginCount(plugincount+1); fClusterPluginNr = (UInt_t)(fDetector->GetPluginArraySize()); + if (fShowDebugHistos) fDetector->ShowDebugHistos(); fDetector->Init(); diff --git a/mvd/CbmMvdDetector.cxx b/mvd/CbmMvdDetector.cxx index 21c151ed8246eec312f92f8cbffa27a0015bbe64..28ea7cd6ccfed81c52dbcd57bb7f869298792699 100644 --- a/mvd/CbmMvdDetector.cxx +++ b/mvd/CbmMvdDetector.cxx @@ -10,23 +10,27 @@ #include "CbmMvdDetector.h" /// includes from CbmRoot +#include "CbmDigiManager.h" +#include "CbmMvdDetectorId.h" #include "CbmMvdDigi.h" #include "CbmMvdSensor.h" #include "plugins/CbmMvdSensorPlugin.h" -#include "plugins/buffers/CbmMvdSensorBuffer.h" -#include "plugins/buffers/CbmMvdSensorFrameBuffer.h" -#include "plugins/buffers/CbmMvdSensorTrackingBuffer.h" -#include "plugins/tasks/CbmMvdSensorClusterfinderTask.h" //khun -#include "plugins/tasks/CbmMvdSensorDigiToHitTask.h" -#include "plugins/tasks/CbmMvdSensorDigitizerTBTask.h" -//#include "plugins/tasks/CbmMvdSensorDigitizerTask.h" -//#include "plugins/tasks/CbmMvdSensorFindHitTask.h" -#include "CbmDigiManager.h" -#include "plugins/tasks/CbmMvdSensorHitfinderTask.h" //khun #include "plugins/tasks/CbmMvdSensorTask.h" #include "tools/CbmMvdGeoHandler.h" -#include "CbmMvdDetectorId.h" + +// #include "plugins/buffers/CbmMvdSensorBuffer.h" +// #include "plugins/buffers/CbmMvdSensorFrameBuffer.h" +// #include "plugins/buffers/CbmMvdSensorTrackingBuffer.h" + +// #include "plugins/tasks/CbmMvdSensorClusterfinderTask.h" //khun +// #include "plugins/tasks/CbmMvdSensorDigiToHitTask.h" +// #include "plugins/tasks/CbmMvdSensorDigitizerTBTask.h" +// #include "plugins/tasks/CbmMvdSensorDigitizerTask.h" +// #include "plugins/tasks/CbmMvdSensorFindHitTask.h" +// #include "plugins/tasks/CbmMvdSensorHitfinderTask.h" //khun + + /// includes from FairRoot #include <Logger.h> @@ -35,6 +39,7 @@ #include "TGeoBBox.h" #include "TGeoMatrix.h" #include "TGeoVolume.h" +#include "TRandom.h" #include "TString.h" /// includes from c @@ -195,12 +200,12 @@ void CbmMvdDetector::AddPlugin(CbmMvdSensorPlugin* plugin) CbmMvdSensor* sensor; Int_t nSensors = fSensorArray->GetEntriesFast(); - const TString digitizername = "CbmMvdSensorDigitizerTask"; + const TString digitizername = "CbmMvdSensorDigitizerTask"; //done const TString digitizerTBname = "CbmMvdSensorDigitizerTBTask"; // const TString findername = "CbmMvdSensorFindHitTask"; //const TString framename = "CbmMvdSensorFrameBuffer"; //const TString trackingname = "CbmMvdSensorTrackingBuffer"; - const TString clustername = "CbmMvdSensorClusterfinderTask"; //khun + const TString clustername = "CbmMvdSensorClusterfinderTask"; //khun //done const TString hitname = "CbmMvdSensorHitfinderTask"; //khun const TString digitohitname = "CbmMvdSensorDigiToHitTask"; @@ -211,54 +216,22 @@ void CbmMvdDetector::AddPlugin(CbmMvdSensorPlugin* plugin) 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(); - sensor = (CbmMvdSensor*) fSensorArray->At(i); - sensor->AddPlugin(digiTask); - sensor->SetDigiPlugin(fPluginCount); - - //cout << "Adding Task CbmMvdSensorDigitizerTask at Sensor " << sensor->GetName() << endl; - /* } else if (plugin->ClassName() == findername) { - CbmMvdSensorFindHitTask* findTask = new CbmMvdSensorFindHitTask(); - sensor = (CbmMvdSensor*) fSensorArray->At(i); - sensor->AddPlugin(findTask); - sensor->SetHitPlugin(fPluginCount); - // cout << "Adding Task CbmMvdSensorFindHitTask at Sensor " << sensor->GetName() << endl; -*/ + LOG(fatal) << "Should never come here. Tasks are now added in CbmMvdDigitizerTB class"; } //Re-enable cluster and hit finder in addition to khun else if (plugin->ClassName() == clustername) { - CbmMvdSensorClusterfinderTask* clusterTask = new CbmMvdSensorClusterfinderTask(); - sensor = (CbmMvdSensor*) fSensorArray->At(i); - sensor->AddPlugin(clusterTask); - sensor->SetClusterPlugin(fPluginCount); - // cout << "Adding Task CbmMvdSensorClusterfinderTask at Sensor " << sensor->GetName() << endl; + LOG(fatal) << "Should never come here. Tasks are now added in CbmMvdClusterfinder class"; } else if (plugin->ClassName() == hitname) { - CbmMvdSensorHitfinderTask* hitTask = new CbmMvdSensorHitfinderTask(); - sensor = (CbmMvdSensor*) fSensorArray->At(i); - sensor->AddPlugin(hitTask); - sensor->SetHitPlugin(fPluginCount); - // cout << "Adding Task CbmMvdSensorHitfinderTask at Sensor " << sensor->GetName() << endl; + LOG(fatal) << "Should never come here. Tasks are now added in CbmMvdHitfinder class"; } //end: re-enable cluster and hit finder in addition to khun else if (plugin->ClassName() == digitohitname) { - CbmMvdSensorDigiToHitTask* digitohitTask = new CbmMvdSensorDigiToHitTask(); - sensor = (CbmMvdSensor*) fSensorArray->At(i); - sensor->AddPlugin(digitohitTask); - sensor->SetHitPlugin(fPluginCount); - // cout << "Adding Task CbmMvdSensorClusterfinderTask at Sensor " << sensor->GetName() << endl; + LOG(fatal) << "Should never come here. Tasks are now added in CbmMvdDigiToHit class"; } else { cout << endl << "task not included yet, adding standart task." << endl; diff --git a/mvd/CbmMvdDigiToHit.cxx b/mvd/CbmMvdDigiToHit.cxx index b40b9cd2c4a7cb81a7295e0f3d3972bdd307a711..955ca07e9d90b1d2184575afabe4e18eba8f585c 100644 --- a/mvd/CbmMvdDigiToHit.cxx +++ b/mvd/CbmMvdDigiToHit.cxx @@ -149,10 +149,21 @@ InitStatus CbmMvdDigiToHit::Init() LOG(fatal) << "Geometry couldn't be loaded from file. No MVD digitizer available."; } - CbmMvdSensorDigiToHitTask* hitTask = new CbmMvdSensorDigiToHitTask(); + // Add the digitizer plugin to all sensors + std::map<int, CbmMvdSensor*>& sensorMap = fDetector->GetSensorMap(); + UInt_t plugincount=fDetector->GetPluginCount(); - fDetector->AddPlugin(hitTask); + for (auto itr = sensorMap.begin(); + itr != sensorMap.end(); itr++) { + CbmMvdSensorDigiToHitTask* hitTask = new CbmMvdSensorDigiToHitTask(); + + itr->second->AddPlugin(hitTask); + itr->second->SetDigiPlugin(plugincount); + } + fDetector->SetSensorArrayFilled(kTRUE); + fDetector->SetPluginCount(plugincount+1); fHitPluginNr = (UInt_t)(fDetector->GetPluginArraySize()); + if (fShowDebugHistos) fDetector->ShowDebugHistos(); fDetector->Init(); diff --git a/mvd/CbmMvdDigitizer.cxx b/mvd/CbmMvdDigitizer.cxx index cbb8e4668b0b60f6c80777289a0c927a7e8e595b..bc2c46ffbebda2e6eb051b1df747e7d6aebbed7a 100644 --- a/mvd/CbmMvdDigitizer.cxx +++ b/mvd/CbmMvdDigitizer.cxx @@ -14,7 +14,7 @@ #include "CbmMvdDigi.h" #include "CbmMvdPileupManager.h" #include "CbmMvdPoint.h" -#include "SensorDataSheets/CbmMvdMimosa26AHR.h" +//#include "SensorDataSheets/CbmMvdMimosa26AHR.h" #include "plugins/tasks/CbmMvdSensorDigitizerTask.h" #include "tools/CbmMvdGeoHandler.h" diff --git a/mvd/CbmMvdDigitizerTB.cxx b/mvd/CbmMvdDigitizerTB.cxx index 3c011806c4cb9b587f037542a7b7d659e90536d2..451ed9095d0b057e2a6d05f6a8560a2668c42eb2 100644 --- a/mvd/CbmMvdDigitizerTB.cxx +++ b/mvd/CbmMvdDigitizerTB.cxx @@ -138,10 +138,21 @@ InitStatus CbmMvdDigitizerTB::Init() fDetector = CbmMvdDetector::Instance(); - CbmMvdSensorDigitizerTBTask* digiTask = new CbmMvdSensorDigitizerTBTask(); + // Add the digitizer plugin to all sensors + std::map<int, CbmMvdSensor*>& sensorMap = fDetector->GetSensorMap(); + UInt_t plugincount=fDetector->GetPluginCount(); - fDetector->AddPlugin(digiTask); + for (auto itr = sensorMap.begin(); + itr != sensorMap.end(); itr++) { + CbmMvdSensorDigitizerTBTask* digiTask = new CbmMvdSensorDigitizerTBTask(); + + itr->second->AddPlugin(digiTask); + itr->second->SetDigiPlugin(plugincount); + } + fDetector->SetSensorArrayFilled(kTRUE); + fDetector->SetPluginCount(plugincount+1); fDigiPluginNr = (UInt_t)(fDetector->GetPluginArraySize()); + fDetector->Init(); // Screen output diff --git a/mvd/CbmMvdHitfinder.cxx b/mvd/CbmMvdHitfinder.cxx index 2664b764cd96ac2886f97933681b72c336edc3ee..00205b6033ff26ee9ab7666c48cb1b117e508848 100644 --- a/mvd/CbmMvdHitfinder.cxx +++ b/mvd/CbmMvdHitfinder.cxx @@ -203,19 +203,22 @@ InitStatus CbmMvdHitfinder::Init() fDetector = CbmMvdDetector::Instance(); - // if(!useClusterfinder) - // { - // CbmMvdSensorFindHitTask* HitfinderTask = new CbmMvdSensorFindHitTask(); - // fDetector->AddPlugin(HitfinderTask); - // } - // else - // { - CbmMvdSensorHitfinderTask* HitfinderTask = new CbmMvdSensorHitfinderTask(); - fDetector->AddPlugin(HitfinderTask); - cout << endl << "running with external clusterfinder" << endl; - // } + // Add the digitizer plugin to all sensors + std::map<int, CbmMvdSensor*>& sensorMap = fDetector->GetSensorMap(); + UInt_t plugincount=fDetector->GetPluginCount(); + + for (auto itr = sensorMap.begin(); + itr != sensorMap.end(); itr++) { + CbmMvdSensorHitfinderTask* hitfinderTask = new CbmMvdSensorHitfinderTask(); + + itr->second->AddPlugin(hitfinderTask); + itr->second->SetDigiPlugin(plugincount); + } + fDetector->SetSensorArrayFilled(kTRUE); + fDetector->SetPluginCount(plugincount+1); fHitfinderPluginNr = (UInt_t)(fDetector->GetPluginArraySize()); + if (fShowDebugHistos) fDetector->ShowDebugHistos(); fDetector->Init();