From 86f0616e21b5ec4ef27c1c6c4071eeff4d6d8bd8 Mon Sep 17 00:00:00 2001 From: Michael Deveaux <deveaux@physik.uni-frankfurt.de> Date: Thu, 19 Jan 2023 12:53:49 +0100 Subject: [PATCH] Bringing HitFinder into operation. --- macro/mvd/qa/mvd_qa4_reco.C | 2 +- reco/detectors/mvd/CbmMvdHitfinder.cxx | 26 ++++++++++++++----- reco/detectors/mvd/CbmMvdHitfinder.h | 3 ++- .../tasks/CbmMvdSensorClusterfinderTask.cxx | 5 +--- .../plugins/tasks/CbmMvdSensorFindHitTask.cxx | 6 ++--- .../tasks/CbmMvdSensorHitfinderTask.cxx | 4 +-- .../plugins/tasks/CbmMvdSensorHitfinderTask.h | 6 +++++ 7 files changed, 34 insertions(+), 18 deletions(-) diff --git a/macro/mvd/qa/mvd_qa4_reco.C b/macro/mvd/qa/mvd_qa4_reco.C index f20c65b153..9d3de7e5fe 100644 --- a/macro/mvd/qa/mvd_qa4_reco.C +++ b/macro/mvd/qa/mvd_qa4_reco.C @@ -59,7 +59,7 @@ void mvd_qa4_reco(const char* setup = "sis100_electron") // ---- Debug option ------------------------------------------------- - gDebug = 0; + gDebug = 1; // ------------------------------------------------------------------------ diff --git a/reco/detectors/mvd/CbmMvdHitfinder.cxx b/reco/detectors/mvd/CbmMvdHitfinder.cxx index 626773fc18..343df77ec5 100644 --- a/reco/detectors/mvd/CbmMvdHitfinder.cxx +++ b/reco/detectors/mvd/CbmMvdHitfinder.cxx @@ -11,7 +11,7 @@ #include "CbmMvdPoint.h" #include "SensorDataSheets/CbmMvdMimosa26AHR.h" -//#include "plugins/tasks/CbmMvdSensorFindHitTask.h" +#include "plugins/tasks/CbmMvdSensorFindHitTask.h" #include "CbmDigiManager.h" #include "plugins/tasks/CbmMvdSensorHitfinderTask.h" #include "tools/CbmMvdGeoHandler.h" @@ -104,7 +104,7 @@ void CbmMvdHitfinder::Exec(Option_t* /*opt*/) fHits->Clear(); fTimer.Start(); - Int_t nTargetPlugin= fDetector->DetectPlugin(300); + Int_t nTargetPlugin= fDetector->DetectPlugin(fMyPluginID); Int_t nDigis=0; CbmMvdDigi* digi=0; CbmMvdCluster* cluster=0; @@ -212,13 +212,25 @@ InitStatus CbmMvdHitfinder::Init() 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(); + if (!fUseClusterfinder) { + for (auto itr = sensorMap.begin(); itr != sensorMap.end(); itr++) { + CbmMvdSensorFindHitTask* hitfinderTask = new CbmMvdSensorFindHitTask(); - itr->second->AddPlugin(hitfinderTask); - itr->second->SetHitPlugin(plugincount); + itr->second->AddPlugin(hitfinderTask); + itr->second->SetHitPlugin(plugincount); + fMyPluginID=400; + } } + else { + for (auto itr = sensorMap.begin(); itr != sensorMap.end(); itr++) { + CbmMvdSensorHitfinderTask* hitfinderTask = new CbmMvdSensorHitfinderTask(); + + itr->second->AddPlugin(hitfinderTask); + itr->second->SetHitPlugin(plugincount); + fMyPluginID=300; + } + } + fDetector->SetSensorArrayFilled(kTRUE); fDetector->SetPluginCount(plugincount+1); fHitfinderPluginNr = (UInt_t)(fDetector->GetPluginArraySize()); diff --git a/reco/detectors/mvd/CbmMvdHitfinder.h b/reco/detectors/mvd/CbmMvdHitfinder.h index 32439479c7..3383a47d66 100644 --- a/reco/detectors/mvd/CbmMvdHitfinder.h +++ b/reco/detectors/mvd/CbmMvdHitfinder.h @@ -41,9 +41,10 @@ public: { fUseClusterfinder = clusterfinderFlag; }; //* enable use of external clusterfinder - void ShowDebugHistos() { fShowDebugHistos = kTRUE; } + void ShowDebugHistos() { fShowDebugHistos = kTRUE; } protected: + Int_t fMyPluginID; private: CbmMvdDetector* fDetector; CbmDigiManager* fDigiMan; //! diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx index 674a656a86..a4e5ca56e0 100644 --- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx +++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx @@ -210,10 +210,7 @@ void CbmMvdSensorClusterfinderTask::Exec() } Int_t nDigis = fInputBuffer->GetEntriesFast(); - cout << " -I- CbmMvdClusterTrask::Exec(): Received following number of digis: " << nDigis << endl; - - - nDigis = fInputBuffer->GetEntriesFast(); + //cout << " -I- CbmMvdClusterTrask::Exec(): Received following number of digis: " << nDigis << endl; TArrayS* pixelUsed = new TArrayS(nDigis); for (iDigi = 0; iDigi < nDigis; iDigi++) { diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorFindHitTask.cxx b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorFindHitTask.cxx index c1adff8716..6d3b3e41d2 100644 --- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorFindHitTask.cxx +++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorFindHitTask.cxx @@ -204,9 +204,9 @@ void CbmMvdSensorFindHitTask::InitTask(CbmMvdSensor* mysensor) fSensor = mysensor; //cout << "-Start- " << GetName() << ": Initialisation of sensor " << fSensor->GetName() << endl; - fInputBuffer = new TClonesArray("CbmMvdDigi", 10000); - fOutputBuffer = new TClonesArray("CbmMvdHit", 10000); - fHits = new TClonesArray("CbmMvdHit", 10000); + fInputBuffer = new TClonesArray("CbmMvdDigi", 100); + fOutputBuffer = new TClonesArray("CbmMvdHit", 100); + fHits = new TClonesArray("CbmMvdHit", 100); //Add charge collection histograms diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx index 23988ca9ea..a819bc5653 100644 --- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx +++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx @@ -201,8 +201,8 @@ void CbmMvdSensorHitfinderTask::InitTask(CbmMvdSensor* mysensor) fSensor = mysensor; //cout << "-Start- " << GetName() << ": Initialisation of sensor " << fSensor->GetName() << endl; - fInputBuffer = new TClonesArray("CbmMvdCluster", 10000); - fOutputBuffer = new TClonesArray("CbmMvdHit", 10000); + fInputBuffer = new TClonesArray("CbmMvdCluster", 100); + fOutputBuffer = new TClonesArray("CbmMvdHit", 100); //Add charge collection histograms diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h index f94476bc03..6b7815ec1a 100644 --- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h +++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h @@ -71,6 +71,12 @@ public: inputSet = kTRUE; }; + void SetInput(TObject* cluster) + { + new ((*fInputBuffer)[fInputBuffer->GetEntriesFast()]) CbmMvdCluster(*((CbmMvdCluster*) cluster)); + inputSet = kTRUE; + }; + /** Accessors **/ //Double_t GetSigmaX() const { return fSigmaX; }; -- GitLab