From 2b269663fbd255d0bd17f6b2fa72bdd1a92c020d Mon Sep 17 00:00:00 2001
From: Dominik Smith <smith@th.physik.uni-frankfurt.de>
Date: Tue, 13 Feb 2024 13:02:30 +0100
Subject: [PATCH] More cleanup.

---
 reco/detectors/trd/CbmTrdModuleRecR.cxx | 35 ++++++-------------------
 1 file changed, 8 insertions(+), 27 deletions(-)

diff --git a/reco/detectors/trd/CbmTrdModuleRecR.cxx b/reco/detectors/trd/CbmTrdModuleRecR.cxx
index 3e005d4504..5aa32e38f8 100644
--- a/reco/detectors/trd/CbmTrdModuleRecR.cxx
+++ b/reco/detectors/trd/CbmTrdModuleRecR.cxx
@@ -115,13 +115,7 @@ std::vector<CbmTrdCluster> CbmTrdModuleRecR::BuildClusters(bool)
       size_t count   = 0;
       double data[3] = {0, 0, 0};
       const double& operator[](size_t ind) const { return data[ind]; }
-      ///// To do: std::count invalid values instead
-
-      double& operator[](size_t ind)
-      {
-        count++;
-        return data[ind];
-      }
+      double& operator[](size_t ind) { return (count++, data[ind]); }
       double GetCoG() { return (data[2] / data[0]) - (data[1] / data[0]); }
     };
 
@@ -286,10 +280,8 @@ std::vector<CbmTrdCluster> CbmTrdModuleRecR::BuildClusters(bool)
     }  //!  while (true)
 
     addClusters(cluster, &clustersOut);
-
   }  //! for (auto mainit = fDigiMap.begin(); mainit != fDigiMap.end(); mainit++)
 
-
   return clustersOut;
 }
 
@@ -298,29 +290,18 @@ void CbmTrdModuleRecR::addClusters(std::deque<std::pair<Int_t, const CbmTrdDigi*
                                    std::vector<CbmTrdCluster>* clustersOut)
 {
   // create vector for indice matching
-  std::vector<Int_t> digiIndices(cluster.size());
-  Int_t idigi = 0;
+  std::vector<Int_t> digiIndices;
+  digiIndices.reserve(cluster.size());
 
-  CbmDigiManager::Instance()->Init();
+  // add digi ids to vector
+  std::transform(cluster.begin(), cluster.end(), std::back_inserter(digiIndices),
+                 [](const auto& pair) { return pair.first; });
 
-  for (std::deque<std::pair<Int_t, const CbmTrdDigi*>>::iterator iDigi = cluster.begin(); iDigi != cluster.end();
-       iDigi++) {
-    // add digi id to vector
-    digiIndices[idigi] = iDigi->first;
-    idigi++;
-  }
-
-  // add the clusters to the Array
-  //    const CbmDigi* digi = static_cast<const
-  //    CbmDigi*>(fDigis->At(digiIndices.front()));
+  // add the cluster to the Array
   CbmTrdCluster& newcluster = clustersOut->emplace_back();
-
-  //  std::cout<<idigi<<std::endl;
   newcluster.SetAddress(fModAddress);
   newcluster.SetDigis(digiIndices);
-  newcluster.SetNCols(idigi);
-
-  //  BuildChannelMap(cluster);
+  newcluster.SetNCols(digiIndices.size());
 }
 
 //_______________________________________________________________________________
-- 
GitLab