ATLAS Offline Software
MuonLayerSegmentFinderTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUON_MUONLAYERSEGMENTFINDERTOOL_H
6 #define MUON_MUONLAYERSEGMENTFINDERTOOL_H
7 
8 #include <string>
9 #include <vector>
10 
13 #include "GaudiKernel/ServiceHandle.h"
14 #include "GaudiKernel/ToolHandle.h"
26 
27 namespace Muon {
28 
29  class MuonSegment;
30  struct MuonLayerPrepRawData;
31  class MuonLayerROTs;
32  class MdtDriftCircleOnTrack;
33  class MuonClusterOnTrack;
35  public:
37  MuonLayerSegmentFinderTool(const std::string& type, const std::string& name, const IInterface* parent);
38  virtual ~MuonLayerSegmentFinderTool() = default;
39  StatusCode initialize() override;
40 
42  void find(const EventContext& ctx,
44  const MuonLayerPrepRawData& layerPrepRawData,
45  std::vector<std::shared_ptr<const Muon::MuonSegment> >& segments) const override;
46 
47  void findMdtSegmentsFromHough(const EventContext& ctx,
49  std::vector<std::shared_ptr<const Muon::MuonSegment> >& segments) const override;
50  private:
52  void findClusterSegments(const EventContext& ctx, const MuonSystemExtension::Intersection& intersection,
53  const MuonLayerPrepRawData& layerPrepRawData,
54  std::vector<std::shared_ptr<const Muon::MuonSegment> >& segments) const;
55 
57  void findCscSegments(const EventContext& ctx, const MuonLayerPrepRawData& layerPrepRawData,
58  std::vector<std::shared_ptr<const Muon::MuonSegment> >& segments) const;
59 
62  std::vector<std::shared_ptr<const Muon::MuonSegment> >& segments) const;
63 
65  void findMdtSegments(const MuonSystemExtension::Intersection& intersection, const std::vector<const MdtDriftCircleOnTrack*>& mdts,
66  const std::vector<const MuonClusterOnTrack*>& clusters,
67  std::vector<std::shared_ptr<const Muon::MuonSegment> >& segments) const;
68 
70  this,
71  "MuonIdHelperSvc",
72  "Muon::MuonIdHelperSvc/MuonIdHelperSvc",
73  };
74 
75  PublicToolHandle<MuonEDMPrinterTool> m_printer{
76  this,
77  "MuonEDMPrinterTool",
78  "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool",
79  };
80  ToolHandle<IMuonPRDSelectionTool> m_muonPRDSelectionTool{
81  this,
82  "MuonPRDSelectionTool",
83  "Muon::MuonPRDSelectionTool/MuonPRDSelectionTool",
84  };
85  ToolHandle<IMuonSegmentMaker> m_segmentMaker{
86  this,
87  "SegmentMaker",
88  "Muon::DCMathSegmentMaker/DCMathSegmentMaker",
89  };
90  ToolHandle<ICscSegmentFinder> m_csc2dSegmentFinder{
91  this,
92  "Csc2DSegmentMaker",
93  "Csc2dSegmentMaker/Csc2dSegmentMaker",
94  };
95  ToolHandle<ICscSegmentFinder> m_csc4dSegmentFinder{
96  this,
97  "Csc4DSegmentMaker",
98  "Csc4dSegmentMaker/Csc4dSegmentMaker",
99  };
100  ToolHandle<IMuonNSWSegmentFinderTool> m_clusterSegMakerNSW{
101  this,
102  "NSWMuonClusterSegmentFinderTool",
103  "",
104  };
105 
106  ToolHandle<Muon::IMuonLayerSegmentMatchingTool> m_segmentMatchingTool{
107  this, "MuonLayerSegmentMatchingTool", "Muon::MuonLayerSegmentMatchingTool/MuonLayerSegmentMatchingTool"};
108 
111  "", "HoughDataPerSectorVec key"};
112 
114  SG::ReadHandleKey<Trk::SegmentCollection> m_patternSegs{this,"InSegmentContainer","TrackMuonSegments"};
115 
117 
118  };
119 } // namespace Muon
120 
121 #endif
Muon::MuonLayerSegmentFinderTool::m_csc4dSegmentFinder
ToolHandle< ICscSegmentFinder > m_csc4dSegmentFinder
Definition: MuonLayerSegmentFinderTool.h:95
Muon::MuonLayerSegmentFinderTool::m_patternSegs
SG::ReadHandleKey< Trk::SegmentCollection > m_patternSegs
Do not rebuild the segments if the segment is already built upstream.
Definition: MuonLayerSegmentFinderTool.h:114
MuonEDMPrinterTool.h
IMuonPRDSelectionTool.h
Muon::MuonLayerSegmentFinderTool::m_clusterSegMakerNSW
ToolHandle< IMuonNSWSegmentFinderTool > m_clusterSegMakerNSW
Definition: MuonLayerSegmentFinderTool.h:100
Muon::MuonLayerSegmentFinderTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonLayerSegmentFinderTool.h:69
Muon::MuonLayerSegmentFinderTool::m_segmentMaker
ToolHandle< IMuonSegmentMaker > m_segmentMaker
Definition: MuonLayerSegmentFinderTool.h:85
Muon::MuonLayerSegmentFinderTool::findMdtSegments
void findMdtSegments(const MuonSystemExtension::Intersection &intersection, const MuonLayerPrepRawData &layerPrepRawData, std::vector< std::shared_ptr< const Muon::MuonSegment > > &segments) const
find mdt segments from hits in the layer
Muon::MuonLayerSegmentFinderTool::m_muonSectorMapping
const Muon::MuonSectorMapping m_muonSectorMapping
Definition: MuonLayerSegmentFinderTool.h:116
IMuonLayerSegmentMatchingTool.h
Muon::MuonLayerPrepRawData
Struct to hold all PrepRawData collections in a given layer.
Definition: MuonLayerPrepRawData.h:22
SG::ReadHandleKey< Muon::HoughDataPerSectorVec >
Muon::MuonLayerSegmentFinderTool
Definition: MuonLayerSegmentFinderTool.h:34
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
intersection
std::vector< std::string > intersection(std::vector< std::string > &v1, std::vector< std::string > &v2)
Definition: compareFlatTrees.cxx:25
xAOD::MuonSegment
MuonSegment_v1 MuonSegment
Reference the current persistent version:
Definition: Event/xAOD/xAODMuon/xAODMuon/MuonSegment.h:13
MuonLayerHoughTool.h
Muon::MuonLayerSegmentFinderTool::findClusterSegments
void findClusterSegments(const EventContext &ctx, const MuonSystemExtension::Intersection &intersection, const MuonLayerPrepRawData &layerPrepRawData, std::vector< std::shared_ptr< const Muon::MuonSegment > > &segments) const
find segments from PRD clusters
Definition: MuonLayerSegmentFinderTool.cxx:97
Muon::MuonLayerSegmentFinderTool::m_muonPRDSelectionTool
ToolHandle< IMuonPRDSelectionTool > m_muonPRDSelectionTool
Definition: MuonLayerSegmentFinderTool.h:80
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IMuonNSWSegmentFinderTool.h
Muon::MuonLayerSegmentFinderTool::~MuonLayerSegmentFinderTool
virtual ~MuonLayerSegmentFinderTool()=default
Muon::MuonLayerSegmentFinderTool::m_houghDataPerSectorVecKey
SG::ReadHandleKey< Muon::HoughDataPerSectorVec > m_houghDataPerSectorVecKey
Use the hough data to find sectors in the speectrometer traversed by a muon.
Definition: MuonLayerSegmentFinderTool.h:110
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
Muon::MuonLayerSegmentFinderTool::findCscSegments
void findCscSegments(const EventContext &ctx, const MuonLayerPrepRawData &layerPrepRawData, std::vector< std::shared_ptr< const Muon::MuonSegment > > &segments) const
find csc segments
Definition: MuonLayerSegmentFinderTool.cxx:172
Muon::MuonLayerSegmentFinderTool::m_printer
PublicToolHandle< MuonEDMPrinterTool > m_printer
Definition: MuonLayerSegmentFinderTool.h:75
IMuonLayerSegmentFinderTool.h
Muon::MuonLayerSegmentFinderTool::findMdtSegments
void findMdtSegments(const MuonSystemExtension::Intersection &intersection, const std::vector< const MdtDriftCircleOnTrack * > &mdts, const std::vector< const MuonClusterOnTrack * > &clusters, std::vector< std::shared_ptr< const Muon::MuonSegment > > &segments) const
find mdt segments main routine
MuonSystemExtension.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Muon::MuonLayerSegmentFinderTool::MuonLayerSegmentFinderTool
MuonLayerSegmentFinderTool(const std::string &type, const std::string &name, const IInterface *parent)
Default AlgTool functions.
Definition: MuonLayerSegmentFinderTool.cxx:22
Muon::MuonLayerSegmentFinderTool::findMdtSegmentsFromHough
void findMdtSegmentsFromHough(const EventContext &ctx, const MuonSystemExtension::Intersection &intersection, std::vector< std::shared_ptr< const Muon::MuonSegment > > &segments) const override
Definition: MuonLayerSegmentFinderTool.cxx:202
HoughDataPerSec.h
MuonSectorMapping.h
Muon::IMuonLayerSegmentFinderTool
Interface for tools calculating hit count summaries for track.
Definition: IMuonLayerSegmentFinderTool.h:19
Muon::MuonLayerSegmentFinderTool::find
void find(const EventContext &ctx, const MuonSystemExtension::Intersection &intersection, const MuonLayerPrepRawData &layerPrepRawData, std::vector< std::shared_ptr< const Muon::MuonSegment > > &segments) const override
IMuonLayerSegmentFinderTool interface: find.
Definition: MuonLayerSegmentFinderTool.cxx:42
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
Muon::MuonLayerSegmentFinderTool::initialize
StatusCode initialize() override
Definition: MuonLayerSegmentFinderTool.cxx:27
Muon::MuonLayerSegmentFinderTool::m_segmentMatchingTool
ToolHandle< Muon::IMuonLayerSegmentMatchingTool > m_segmentMatchingTool
Definition: MuonLayerSegmentFinderTool.h:106
Muon::MuonSectorMapping
Definition: MuonSectorMapping.h:20
Muon::MuonSystemExtension::Intersection
data per intersection
Definition: MuonSystemExtension.h:21
AthAlgTool
Definition: AthAlgTool.h:26
Muon::MuonLayerSegmentFinderTool::m_csc2dSegmentFinder
ToolHandle< ICscSegmentFinder > m_csc2dSegmentFinder
Definition: MuonLayerSegmentFinderTool.h:90
IMuonIdHelperSvc.h
ICscSegmentFinder.h
IMuonSegmentMaker.h
ServiceHandle< Muon::IMuonIdHelperSvc >