ATLAS Offline Software
Loading...
Searching...
No Matches
MuonSegmentFinderAlg.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 MOOSEGMENTFINDERS_MUOSEGMENTFINDERALGS_H
6#define MOOSEGMENTFINDERS_MUOSEGMENTFINDERALGS_H
7
21
23public:
24 using AthReentrantAlgorithm::AthReentrantAlgorithm;
25
26 virtual ~MuonSegmentFinderAlg() = default;
27
28 virtual StatusCode initialize() override;
29 virtual StatusCode execute(const EventContext& ctx) const override;
30
31private:
33 this,
34 "MuonIdHelperSvc",
35 "Muon::MuonIdHelperSvc/MuonIdHelperSvc",
36 };
37
38 PublicToolHandle<Muon::MuonEDMPrinterTool> m_printer{
39 this,
40 "EDMPrinter",
41 "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool",
42 }; //<! helper printer tool
43 ToolHandle<Muon::IMuonPatternCalibration> m_patternCalibration{
44 this,
45 "MuonPatternCalibration",
46 "Muon::MuonPatternCalibration/MuonPatternCalibration",
47 };
48 ToolHandle<Muon::IMuonSegmentMaker> m_segmentMaker{
49 this,
50 "SegmentMaker",
51 "Muon::DCMathSegmentMaker/DCMathSegmentMaker",
52 };
53 ToolHandle<Muon::IMuonSegmentOverlapRemovalTool> m_segmentOverlapRemovalTool{
54 this,
55 "MuonSegmentOverlapRemovalTool",
56 "Muon::MuonSegmentOverlapRemovalTool/MuonSegmentOverlapRemovalTool",
57 };
58 ToolHandle<Muon::IMuonClusterOnTrackCreator> m_clusterCreator{
59 this,
60 "MuonClusterCreator",
61 "Muon::MuonClusterOnTrackCreator/MuonClusterOnTrackCreator",
62 }; //<! pointer to muon cluster rio ontrack creator
63 ToolHandle<Muon::IMuonNSWSegmentFinderTool> m_clusterSegMakerNSW{
64 this,
65 "NSWSegmentMaker",
66 "",
67 };
68 ToolHandle<ICscSegmentFinder> m_csc2dSegmentFinder{
69 this,
70 "Csc2dSegmentMaker",
71 "Csc2dSegmentMaker/Csc2dSegmentMaker",
72 };
73 ToolHandle<ICscSegmentFinder> m_csc4dSegmentFinder{
74 this,
75 "Csc4dSegmentMaker",
76 "Csc4dSegmentMaker/Csc4dSegmentMaker",
77 };
78
79 ToolHandle<Muon::IMuonSegmentSelectionTool> m_segmentSelector{this, "SegmentSelector",
80 "Muon::MuonSegmentSelectionTool/MuonSegmentSelectionTool"};
81
82 // the following Trk::SegmentCollection MuonSegments are standard MuonSegments, the MuGirl segments are stored in MuonCreatorAlg.h
84 this,
85 "SegmentCollectionName",
86 "TrackMuonSegments",
87 "Muon Segments",
88 };
89 SG::WriteHandleKey<Trk::SegmentCollection> m_segmentNSWCollectionKey{ //this collection of segments are used to perform the alignment of the NSW
90 this,
91 "NSWSegmentCollectionName",
92 "TrackMuonNSWSegments",
93 "WriteHandleKey for NSW Segments",
94 };
96 this,
97 "CSC_clusterkey",
98 "CSC_Clusters",
99 "CSC PRDs",
100 };
102 this,
103 "MuonLayerHoughCombisKey",
104 "MuonLayerHoughCombis",
105 "Hough combinations",
106 };
107
108 StatusCode createSegmentsWithMDTs(const EventContext& ctx, const Muon::MuonPatternCombination* patt, Trk::SegmentCollection* segs) const;
109
110
112 void createNSWSegments(const EventContext& ctx,
113 const Muon::MuonPatternCombination* patt,
114 NSWSegmentCache& cache) const;
115
117 StatusCode createCscSegments(const EventContext& ctx,
118 std::unique_ptr<MuonSegmentCombinationCollection>& csc4dSegmentCombinations) const;
119
120 void appendSegmentsFromCombi(const std::unique_ptr<MuonSegmentCombinationCollection>& combi_coll,
121 Trk::SegmentCollection* segments) const;
122
123
124 Gaudi::Property<bool> m_printSummary{this, "PrintSummary", false};
125
127 Gaudi::Property<bool> m_doFullFinder{this, "FullFinder", true};
129 Gaudi::Property<bool> m_runMdtSegments{this, "doMdtSegments", true};
131 Gaudi::Property<bool> m_doSTgcSegments{this, "doStgcSegments", true};
132 Gaudi::Property<bool> m_doMMSegments{this, "doMMSegments", true};
135 Gaudi::Property<bool> m_removeUsedNswHits{this, "removeUsedNSW", true};
137 Gaudi::Property<int> m_segQuality{this, "SegmentQuality", -1};
138
139};
140
141#endif
An algorithm that can be simultaneously executed in multiple threads.
Gaudi::Property< bool > m_runMdtSegments
Run the Mdt segment maker (Switched of the NCB systems)
virtual StatusCode initialize() override
Gaudi::Property< bool > m_doFullFinder
Run segment finding with eta / phi determination.
SG::ReadHandleKey< MuonPatternCombinationCollection > m_patternCollKey
StatusCode createCscSegments(const EventContext &ctx, std::unique_ptr< MuonSegmentCombinationCollection > &csc4dSegmentCombinations) const
Retrieve the raw outputs from the Csc segment makers for the curved combination.
void appendSegmentsFromCombi(const std::unique_ptr< MuonSegmentCombinationCollection > &combi_coll, Trk::SegmentCollection *segments) const
SG::WriteHandleKey< Trk::SegmentCollection > m_segmentCollectionKey
StatusCode createSegmentsWithMDTs(const EventContext &ctx, const Muon::MuonPatternCombination *patt, Trk::SegmentCollection *segs) const
ToolHandle< Muon::IMuonSegmentMaker > m_segmentMaker
Gaudi::Property< bool > m_doMMSegments
ToolHandle< Muon::IMuonPatternCalibration > m_patternCalibration
virtual StatusCode execute(const EventContext &ctx) const override
SG::WriteHandleKey< Trk::SegmentCollection > m_segmentNSWCollectionKey
SG::ReadHandleKey< Muon::CscPrepDataContainer > m_cscPrdsKey
Muon::IMuonNSWSegmentFinderTool::SegmentMakingCache NSWSegmentCache
virtual ~MuonSegmentFinderAlg()=default
ToolHandle< Muon::IMuonNSWSegmentFinderTool > m_clusterSegMakerNSW
Gaudi::Property< int > m_segQuality
Apply a preselection on the segments.
PublicToolHandle< Muon::MuonEDMPrinterTool > m_printer
Gaudi::Property< bool > m_printSummary
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
void createNSWSegments(const EventContext &ctx, const Muon::MuonPatternCombination *patt, NSWSegmentCache &cache) const
Gaudi::Property< bool > m_removeUsedNswHits
If switched to true, hits that have been already successfully combined to a segment are removed from ...
ToolHandle< ICscSegmentFinder > m_csc4dSegmentFinder
ToolHandle< Muon::IMuonClusterOnTrackCreator > m_clusterCreator
ToolHandle< Muon::IMuonSegmentOverlapRemovalTool > m_segmentOverlapRemovalTool
ToolHandle< ICscSegmentFinder > m_csc2dSegmentFinder
Gaudi::Property< bool > m_doSTgcSegments
Run the NSW segment maker.
ToolHandle< Muon::IMuonSegmentSelectionTool > m_segmentSelector
The MuonPatternCombination class provides the means to store the output of the initial global pattern...
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
DataVector< Trk::Segment > SegmentCollection