From dda99298f9036a6a61a03c43b541795baed11d23 Mon Sep 17 00:00:00 2001
From: Pascal Boeschoten <pascal.boeschoten@cern.ch>
Date: Thu, 23 May 2019 12:57:59 +0200
Subject: [PATCH] MuonLayerSegmentFinderTool: get HoughDataPerSectorVec from SG

---
 .../src/MuonLayerSegmentFinderTool.cxx             | 14 ++++++++++----
 .../src/MuonLayerSegmentFinderTool.h               |  7 ++++++-
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/MuonSpectrometer/MuonReconstruction/MuonSegmentMakers/MuonSegmentMakerTools/MuonLayerSegmentMakerTools/src/MuonLayerSegmentFinderTool.cxx b/MuonSpectrometer/MuonReconstruction/MuonSegmentMakers/MuonSegmentMakerTools/MuonLayerSegmentMakerTools/src/MuonLayerSegmentFinderTool.cxx
index 0c0f8c58498b..41edf201dda8 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonSegmentMakers/MuonSegmentMakerTools/MuonLayerSegmentMakerTools/src/MuonLayerSegmentFinderTool.cxx
+++ b/MuonSpectrometer/MuonReconstruction/MuonSegmentMakers/MuonSegmentMakerTools/MuonLayerSegmentMakerTools/src/MuonLayerSegmentFinderTool.cxx
@@ -100,20 +100,26 @@ namespace Muon {
     MuonStationIndex::DetectorRegionIndex regionIndex = intersection.layerSurface.regionIndex;
     MuonStationIndex::LayerIndex  layerIndex  = intersection.layerSurface.layerIndex;
 
+    // get hough data
+    SG::ReadHandle<MuonLayerHoughTool::HoughDataPerSectorVec> houghDataPerSectorVec {m_houghDataPerSectorVecKey};
+    if (!houghDataPerSectorVec.isValid()) {
+      ATH_MSG_ERROR("Hough data per sector vector not found");
+      return;
+    }
 
     // sanity check
-    if( static_cast<int>(m_layerHoughTool->houghData().size()) <= sector-1 ){
-      ATH_MSG_WARNING(" m_layerHoughTool->houghData().size() smaller than sector " << m_layerHoughTool->houghData().size()
+    if( static_cast<int>(houghDataPerSectorVec->size()) <= sector-1 ){
+      ATH_MSG_WARNING(" m_layerHoughTool->houghData().size() smaller than sector " << houghDataPerSectorVec->size()
                       << " sector " << sector );
       return;
     }
 
     // get hough maxima in the layer
     unsigned int sectorLayerHash = MuonStationIndex::sectorLayerHash( regionIndex,layerIndex );
-    const MuonLayerHoughTool::HoughDataPerSector& houghDataPerSector = m_layerHoughTool->houghData()[sector-1];
+    const MuonLayerHoughTool::HoughDataPerSector& houghDataPerSector = (*houghDataPerSectorVec)[sector-1];
     ATH_MSG_DEBUG(" findMdtSegmentsFromHough: sector " << sector << " " << MuonStationIndex::regionName(regionIndex)
                   << " " << MuonStationIndex::layerName(layerIndex) << " sector hash " << sectorLayerHash
-                  << " houghData " << m_layerHoughTool->houghData().size() << " " << houghDataPerSector.maxVec.size());
+                  << " houghData " << houghDataPerSectorVec->size() << " " << houghDataPerSector.maxVec.size());
 
     // sanity check
     if( houghDataPerSector.maxVec.size() <= sectorLayerHash ){
diff --git a/MuonSpectrometer/MuonReconstruction/MuonSegmentMakers/MuonSegmentMakerTools/MuonLayerSegmentMakerTools/src/MuonLayerSegmentFinderTool.h b/MuonSpectrometer/MuonReconstruction/MuonSegmentMakers/MuonSegmentMakerTools/MuonLayerSegmentMakerTools/src/MuonLayerSegmentFinderTool.h
index 43a860fd113a..8ca36cf34206 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonSegmentMakers/MuonSegmentMakerTools/MuonLayerSegmentMakerTools/src/MuonLayerSegmentFinderTool.h
+++ b/MuonSpectrometer/MuonReconstruction/MuonSegmentMakers/MuonSegmentMakerTools/MuonLayerSegmentMakerTools/src/MuonLayerSegmentFinderTool.h
@@ -16,6 +16,8 @@
 #include "MuonLayerEvent/MuonSystemExtension.h"
 #include "MuonDetDescrUtils/MuonSectorMapping.h"
 
+#include "MuonHoughPatternTools/MuonLayerHoughTool.h"
+
 class ICscSegmentFinder;
 namespace Muon {
   
@@ -29,7 +31,6 @@ namespace Muon {
   class IMuonClusterSegmentFinder;
   class IMuonClusterSegmentFinderTool;
   class IMuonRecoValidationTool;
-  class MuonLayerHoughTool;
   class MdtDriftCircleOnTrack;
   class MuonClusterOnTrack;
   class MuonLayerSegmentFinderTool : virtual public IMuonLayerSegmentFinderTool,  public AthAlgTool {
@@ -66,6 +67,10 @@ namespace Muon {
                           const std::vector<const MuonClusterOnTrack*>&    clusters,
                           std::vector< std::shared_ptr<const Muon::MuonSegment> >& segments ) const;
 
+    /** storegate */
+    SG::ReadHandleKey<MuonLayerHoughTool::HoughDataPerSectorVec> m_houghDataPerSectorVecKey {this, 
+        "Key_MuonLayerHoughToolHoughDataPerSectorVec", "HoughDataPerSectorVec", "HoughDataPerSectorVec key"};
+
     /** tool handles */
     ToolHandle<MuonIdHelperTool>                      m_idHelper; 
     ToolHandle<MuonEDMPrinterTool>                    m_printer; 
-- 
GitLab