ATLAS Offline Software
Loading...
Searching...
No Matches
MuonLayerSegmentFinderTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 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
27namespace Muon {
28
29 class MuonSegment;
31 class MuonLayerROTs;
34 class MuonLayerSegmentFinderTool : public extends<AthAlgTool, IMuonLayerSegmentFinderTool> {
35 public:
37 using base_class::base_class;
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
This class represents the corrected MDT measurements, where the corrections include the effects of wi...
Base class for Muon cluster RIO_OnTracks.
struct holding RIO_OnTracks for a given layer
ToolHandle< IMuonNSWSegmentFinderTool > m_clusterSegMakerNSW
ToolHandle< Muon::IMuonLayerSegmentMatchingTool > m_segmentMatchingTool
ToolHandle< IMuonPRDSelectionTool > m_muonPRDSelectionTool
ToolHandle< IMuonSegmentMaker > m_segmentMaker
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
const Muon::MuonSectorMapping m_muonSectorMapping
SG::ReadHandleKey< Muon::HoughDataPerSectorVec > m_houghDataPerSectorVecKey
Use the hough data to find sectors in the speectrometer traversed by a muon.
void findCscSegments(const EventContext &ctx, const MuonLayerPrepRawData &layerPrepRawData, std::vector< std::shared_ptr< const Muon::MuonSegment > > &segments) const
find csc segments
void findMdtSegmentsFromHough(const EventContext &ctx, const MuonSystemExtension::Intersection &intersection, std::vector< std::shared_ptr< const Muon::MuonSegment > > &segments) const override
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
PublicToolHandle< MuonEDMPrinterTool > m_printer
ToolHandle< ICscSegmentFinder > m_csc4dSegmentFinder
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.
SG::ReadHandleKey< Trk::SegmentCollection > m_patternSegs
Do not rebuild the segments if the segment is already built upstream.
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
virtual ~MuonLayerSegmentFinderTool()=default
ToolHandle< ICscSegmentFinder > m_csc2dSegmentFinder
This is the common class for 3D segments used in the muon spectrometer.
Property holding a SG store/key/clid from which a ReadHandle is made.
std::vector< std::string > intersection(std::vector< std::string > &v1, std::vector< std::string > &v2)
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Struct to hold all PrepRawData collections in a given layer.