From 0e93a0ff7de4aebdf913d9a72ade0b09a57f96fa Mon Sep 17 00:00:00 2001
From: Florian Uhlig <f.uhlig@gsi.de>
Date: Wed, 18 Jan 2023 14:11:09 +0100
Subject: [PATCH] Set proper plugin information in sensors

---
 reco/detectors/mvd/CbmMvdClusterfinder.cxx   |  5 ++---
 reco/detectors/mvd/CbmMvdClusterfinderTB.cxx | 16 +++++++++++++---
 reco/detectors/mvd/CbmMvdDigiToHit.cxx       |  4 ++--
 reco/detectors/mvd/CbmMvdDigiToHitTB.cxx     | 17 ++++++++++++++---
 reco/detectors/mvd/CbmMvdHitfinder.cxx       |  4 ++--
 reco/detectors/mvd/CbmMvdHitfinderTB.cxx     | 17 +++++++++++++++--
 6 files changed, 48 insertions(+), 15 deletions(-)

diff --git a/reco/detectors/mvd/CbmMvdClusterfinder.cxx b/reco/detectors/mvd/CbmMvdClusterfinder.cxx
index 6cf8f5fb90..90c22458bf 100644
--- a/reco/detectors/mvd/CbmMvdClusterfinder.cxx
+++ b/reco/detectors/mvd/CbmMvdClusterfinder.cxx
@@ -162,8 +162,7 @@ InitStatus CbmMvdClusterfinder::Init()
     LOG(fatal) << "Geometry couldn't be loaded from file. No MVD digitizer available.";
   }
 
-
-  // Add the digitizer plugin to all sensors
+  // Add the cluster finder plugin to all sensors
   std::map<int, CbmMvdSensor*>& sensorMap = fDetector->GetSensorMap();
   UInt_t plugincount=fDetector->GetPluginCount();
 
@@ -172,7 +171,7 @@ InitStatus CbmMvdClusterfinder::Init()
     CbmMvdSensorClusterfinderTask* clusterTask = new CbmMvdSensorClusterfinderTask();
 
     itr->second->AddPlugin(clusterTask);
-    itr->second->SetDigiPlugin(plugincount);
+    itr->second->SetClusterPlugin(plugincount);
   }
   fDetector->SetSensorArrayFilled(kTRUE);
   fDetector->SetPluginCount(plugincount+1);
diff --git a/reco/detectors/mvd/CbmMvdClusterfinderTB.cxx b/reco/detectors/mvd/CbmMvdClusterfinderTB.cxx
index b38a693237..cdfbec700c 100644
--- a/reco/detectors/mvd/CbmMvdClusterfinderTB.cxx
+++ b/reco/detectors/mvd/CbmMvdClusterfinderTB.cxx
@@ -145,14 +145,24 @@ InitStatus CbmMvdClusterfinderTB::Init()
     LOG(fatal) << "Geometry couldn't be loaded from file. No MVD digitizer available.";
   }
 
-  CbmMvdSensorClusterfinderTask* clusterTask = new CbmMvdSensorClusterfinderTask();
+  // Add the cluster finder plugin to all sensors
+  std::map<int, CbmMvdSensor*>& sensorMap = fDetector->GetSensorMap();
+  UInt_t plugincount=fDetector->GetPluginCount();
 
-  fDetector->AddPlugin(clusterTask);
+  for (auto itr = sensorMap.begin();
+              itr != sensorMap.end(); itr++) {
+    CbmMvdSensorClusterfinderTask* clusterTask = new CbmMvdSensorClusterfinderTask();
+
+    itr->second->AddPlugin(clusterTask);
+    itr->second->SetClusterPlugin(plugincount);
+  }
+  fDetector->SetSensorArrayFilled(kTRUE);
+  fDetector->SetPluginCount(plugincount+1);
   fClusterPluginNr = (UInt_t)(fDetector->GetPluginArraySize());
+
   if (fShowDebugHistos) fDetector->ShowDebugHistos();
   fDetector->Init();
 
-
   // Screen output
   LOG(info) << GetName() << " initialised";
 
diff --git a/reco/detectors/mvd/CbmMvdDigiToHit.cxx b/reco/detectors/mvd/CbmMvdDigiToHit.cxx
index 955ca07e9d..0f1407799a 100644
--- a/reco/detectors/mvd/CbmMvdDigiToHit.cxx
+++ b/reco/detectors/mvd/CbmMvdDigiToHit.cxx
@@ -149,7 +149,7 @@ InitStatus CbmMvdDigiToHit::Init()
     LOG(fatal) << "Geometry couldn't be loaded from file. No MVD digitizer available.";
   }
 
-  // Add the digitizer plugin to all sensors
+  // Add the digi2hit plugin to all sensors
   std::map<int, CbmMvdSensor*>& sensorMap = fDetector->GetSensorMap();
   UInt_t plugincount=fDetector->GetPluginCount();
 
@@ -158,7 +158,7 @@ InitStatus CbmMvdDigiToHit::Init()
     CbmMvdSensorDigiToHitTask* hitTask = new CbmMvdSensorDigiToHitTask();
 
     itr->second->AddPlugin(hitTask);
-    itr->second->SetDigiPlugin(plugincount);
+    itr->second->SetHitPlugin(plugincount);
   }
   fDetector->SetSensorArrayFilled(kTRUE);
   fDetector->SetPluginCount(plugincount+1);
diff --git a/reco/detectors/mvd/CbmMvdDigiToHitTB.cxx b/reco/detectors/mvd/CbmMvdDigiToHitTB.cxx
index ae289816b8..e756b86277 100644
--- a/reco/detectors/mvd/CbmMvdDigiToHitTB.cxx
+++ b/reco/detectors/mvd/CbmMvdDigiToHitTB.cxx
@@ -141,10 +141,21 @@ InitStatus CbmMvdDigiToHitTB::Init()
     LOG(fatal) << "Geometry couldn't be loaded from file. No MVD digitizer available.";
   }
 
-  CbmMvdSensorDigiToHitTask* clusterTask = new CbmMvdSensorDigiToHitTask();
+  // Add the digi2hit 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++) {
+    CbmMvdSensorDigiToHitTask* hitTask = new CbmMvdSensorDigiToHitTask();
+
+    itr->second->AddPlugin(hitTask);
+    itr->second->SetHitPlugin(plugincount);
+  }
+  fDetector->SetSensorArrayFilled(kTRUE);
+  fDetector->SetPluginCount(plugincount+1);
+  fHitPluginNr = (UInt_t)(fDetector->GetPluginArraySize());
 
-  fDetector->AddPlugin(clusterTask);
-  fClusterPluginNr = (UInt_t)(fDetector->GetPluginArraySize());
   if (fShowDebugHistos) fDetector->ShowDebugHistos();
   fDetector->Init();
 
diff --git a/reco/detectors/mvd/CbmMvdHitfinder.cxx b/reco/detectors/mvd/CbmMvdHitfinder.cxx
index 6575309b66..626773fc18 100644
--- a/reco/detectors/mvd/CbmMvdHitfinder.cxx
+++ b/reco/detectors/mvd/CbmMvdHitfinder.cxx
@@ -208,7 +208,7 @@ InitStatus CbmMvdHitfinder::Init()
   fDetector = CbmMvdDetector::Instance();
 
 
-  // Add the digitizer plugin to all sensors
+  // Add the hit finder plugin to all sensors
   std::map<int, CbmMvdSensor*>& sensorMap = fDetector->GetSensorMap();
   UInt_t plugincount=fDetector->GetPluginCount();
 
@@ -217,7 +217,7 @@ InitStatus CbmMvdHitfinder::Init()
     CbmMvdSensorHitfinderTask* hitfinderTask = new CbmMvdSensorHitfinderTask();
 
     itr->second->AddPlugin(hitfinderTask);
-    itr->second->SetDigiPlugin(plugincount);
+    itr->second->SetHitPlugin(plugincount);
   }
   fDetector->SetSensorArrayFilled(kTRUE);
   fDetector->SetPluginCount(plugincount+1);
diff --git a/reco/detectors/mvd/CbmMvdHitfinderTB.cxx b/reco/detectors/mvd/CbmMvdHitfinderTB.cxx
index 1a85a987a9..9802db4010 100644
--- a/reco/detectors/mvd/CbmMvdHitfinderTB.cxx
+++ b/reco/detectors/mvd/CbmMvdHitfinderTB.cxx
@@ -153,10 +153,23 @@ InitStatus CbmMvdHitfinderTB::Init()
 
   fDetector = CbmMvdDetector::Instance();
 
-  CbmMvdSensorHitfinderTask* HitfinderTask = new CbmMvdSensorHitfinderTask();
-  fDetector->AddPlugin(HitfinderTask);
 
+
+  // Add the hit finder 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->SetHitPlugin(plugincount);
+  }
+  fDetector->SetSensorArrayFilled(kTRUE);
+  fDetector->SetPluginCount(plugincount+1);
   fHitfinderPluginNr = (UInt_t)(fDetector->GetPluginArraySize());
+
   if (fShowDebugHistos) fDetector->ShowDebugHistos();
   fDetector->Init();
 
-- 
GitLab