From 8744da780eb9e9b249a12c30fcf47a91c1027cdd Mon Sep 17 00:00:00 2001
From: Tomasz Bold <tomasz.bold@cern.ch>
Date: Fri, 16 Feb 2024 19:57:08 +0100
Subject: [PATCH] Added module ID to space points info

Added module ID to space points info
---
 .../HIGlobal/python/RecordExtraInfoConfig.py   |  2 +-
 .../HIGlobal/src/SpacePointCopier.cxx          | 18 +++++++++++++++++-
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/Reconstruction/HeavyIonRec/HIGlobal/python/RecordExtraInfoConfig.py b/Reconstruction/HeavyIonRec/HIGlobal/python/RecordExtraInfoConfig.py
index a62f037a035d..917dfef98cb0 100644
--- a/Reconstruction/HeavyIonRec/HIGlobal/python/RecordExtraInfoConfig.py
+++ b/Reconstruction/HeavyIonRec/HIGlobal/python/RecordExtraInfoConfig.py
@@ -6,7 +6,7 @@ from AthenaConfiguration.Enums import ProductionStep
 from AthenaConfiguration.ComponentFactory import CompFactory
 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD, addToESD
 
-spacePointKeys = [ "xAOD::BaseContainer#SpacePoints", "xAOD::AuxContainerBase#SpacePointsAux.x.y.z.tot.csize" ]
+spacePointKeys = [ "xAOD::BaseContainer#SpacePoints", "xAOD::AuxContainerBase#SpacePointsAux.x.y.z.tot.csize.module1.module2" ]
 mbtsBitsKeys = [ "xAOD::TrigT2MbtsBitsContainer#MBTSBits", "xAOD::TrigT2MbtsBitsAuxContainer#MBTSBitsAux." ]
 
 def _inRecoOrLater(flags):
diff --git a/Reconstruction/HeavyIonRec/HIGlobal/src/SpacePointCopier.cxx b/Reconstruction/HeavyIonRec/HIGlobal/src/SpacePointCopier.cxx
index 61bc43250d35..d0a0a77b8f54 100644
--- a/Reconstruction/HeavyIonRec/HIGlobal/src/SpacePointCopier.cxx
+++ b/Reconstruction/HeavyIonRec/HIGlobal/src/SpacePointCopier.cxx
@@ -3,6 +3,8 @@
 */
 #include <algorithm>
 #include "InDetPrepRawData/PixelCluster.h"
+#include "InDetIdentifier/PixelID.h"
+#include "InDetIdentifier/SCT_ID.h"
 #include "SpacePointCopier.h"
 
 SpacePointCopier::SpacePointCopier(const std::string& name, ISvcLocator* pSvcLocator) :
@@ -64,6 +66,14 @@ StatusCode SpacePointCopier::execute(const EventContext& context) const
     static const SG::AuxElement::Accessor< float > z ("z");
     static const SG::AuxElement::Accessor< float > tot ("tot");
     static const SG::AuxElement::Accessor< short > csize ("csize");
+    static const SG::AuxElement::Accessor< unsigned int > module1 ("module1");
+    static const SG::AuxElement::Accessor< unsigned int > module2 ("module2");
+
+    const PixelID *pixelID = nullptr;
+    const SCT_ID *stripID = nullptr;
+    
+    ATH_CHECK(detStore()->retrieve(pixelID, "PixelID"));
+    ATH_CHECK(detStore()->retrieve(stripID, "SCT_ID"));
 
 
     for ( auto coll: *pixelSPContainer ) {
@@ -76,6 +86,9 @@ StatusCode SpacePointCopier::execute(const EventContext& context) const
         const InDet::PixelCluster* cluster = static_cast<const InDet::PixelCluster *>(sp->clusterList().first);
         tot(*item) = float(cluster->totalToT());
         csize(*item) = short(cluster->totList().size());
+        auto[hashId1, hashId2]  = sp->elementIdList();
+        module1(*item) = hashId1;
+        module2(*item) = hashId2;     
 
       }
     }
@@ -90,7 +103,10 @@ StatusCode SpacePointCopier::execute(const EventContext& context) const
         z(*item) =  float(sp->globalPosition().z());   
         tot(*item) = 0;
         csize(*item) = 0;
-     
+
+        auto[hashId1, hashId2]  = sp->elementIdList();
+        module1(*item) = hashId1;
+        module2(*item) = hashId2;     
       }
     }
     for ( size_t i = 0; i < std::min(10ul, output->size()); ++i ) {
-- 
GitLab