ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_SeededTrackFinder.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/**********************************************************************************
6 Header file for class TRT_SeededTrackFinder
7 (c) ATLAS Detector software
8 Algorithm for Trk::Track production in SCT and Pixels
9 Version 1.0: 04/12/2006
10 Authors : Thomas Koffas, Markus Elsing
11 email : Thomas.Koffas@cern.ch
12**********************************************************************************/
13
14#ifndef TRT_SeededTrackFinder_H
15#define TRT_SeededTrackFinder_H
16
18#include "GaudiKernel/ServiceHandle.h"
19#include "GaudiKernel/ToolHandle.h"
20
23
26
29
32
38
40
43
44class MsgStream;
45
46namespace InDet {
47
55{
56
58 // Public methods:
60
61public:
63
65
66 TRT_SeededTrackFinder(const std::string& name, ISvcLocator* pSvcLocator);
68 StatusCode initialize() override;
69 StatusCode execute(const EventContext& ctx) const override;
70 StatusCode finalize() override;
71
73
75
76 MsgStream& dump(MsgStream& out) const;
77 std::ostream& dump(std::ostream& out) const;
78
79protected:
80
82 /* Protected data */
84 BooleanProperty m_doRefit
85 {this, "FinalRefit", false, "Do a final careful refit of tracks"};
86 BooleanProperty m_doExtension
87 {this, "TrtExtension", false, "Find the TRT extension of the track"};
88 BooleanProperty m_rejectShortExten
89 {this, "RejectShortExtension", false, "Reject short extensions"};
90 BooleanProperty m_doStat
91 {this, "FinalStatistics", false, "Statistics of final tracks"};
92 BooleanProperty m_saveTRT
93 {this, "OutputSegments", true, "Save stand-alone TRT segments"};
94 IntegerProperty m_MaxSegNum
95 {this, "MaxNumberSegments", 5000,
96 "Maximum number of segments to be handled"};
97 UnsignedIntegerProperty m_minTRTonSegment
98 {this, "MinTRTonSegment", 10, "Minimum Number of TRT Hits on segment"};
99 UnsignedIntegerProperty m_minTRTonly
100 {this, "MinTRTonly", 15, "Minimum number of TRT hits on TRT only"};
101
102 ToolHandle<ITRT_SeededTrackFinder> m_trackmaker
103 {this, "TrackTool", "InDet::TRT_SeededTrackFinderTool",
104 "Back tracking tool"};
105 ToolHandle<Trk::ITrackFitter> m_fitterTool
106 {this, "RefitterTool", "Trk::GlobalChi2Fitter/InDetTrackFitter",
107 "Track refit tool"};
108 ToolHandle<ITRT_TrackExtensionTool> m_trtExtension
109 {this, "TrackExtensionTool", "InDet::TRT_TrackExtensionTool_xk",
110 "TRT track extension tool "};
111
113 {this, "InputSegmentsLocation", "TRTSegments", "TRT segments to use"};
115 {this, "OutputTracksLocation", "TRTSeededTracks",
116 "Output track collection"};
117
120 ToolHandle<Trk::IExtendedTrackSummaryTool> m_trackSummaryTool
121 {this, "TrackSummaryTool", "InDetTrackSummaryToolNoHoleSearch"};
122
123 ToolHandle<Trk::IExtrapolator> m_extrapolator{this, "Extrapolator", ""};
125 {this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"};
126
127 BooleanProperty m_SiExtensionCuts
128 {this, "SiExtensionCuts", false, "enable cuts after Si segment finding"};
129 DoubleProperty m_minPt{this, "minPt", 500., "minimal Pt cut"};
130 DoubleProperty m_maxEta{this, "maxEta", 2.7, "maximal Eta cut"};
131 DoubleProperty m_maxRPhiImp
132 {this, "maxRPhiImp", 10., "maximal RPhi impact parameter cut"};
133 DoubleProperty m_maxZImp
134 {this, "maxZImp", 250., "maximal z impact parameter cut"};
135
136 BooleanProperty m_caloSeededRoI{this, "CaloSeededRoI", false};
138 {this, "EMROIPhiRZContainer", "",
139 "Name of the calo cluster ROIs in Phi,R,Z parameterization"};
140
141 ToolHandle<IRegSelTool> m_regionSelector
142 {this, "RegSelTool", "RegSelTool/RegSel_SCT",
143 "Region selector service instance"};
144
145 FloatProperty m_deltaEta
146 {this, "dEtaCaloRoI", 0.1, "delta Eta used for RoI creation"};
147 FloatProperty m_deltaPhi
148 {this, "dPhiCaloRoI", 0.25, "delta Phi used for RoI creation"};
149 FloatProperty m_deltaZ
150 {this, "dZCaloRoI", 300., "delta Z used for RoI creation"};
151
153 struct Stat_t
154 {
175 std::array<int, kNCounter> m_counter{};
176
178 {
179 for (unsigned int i = 0; i < a.m_counter.size(); ++i) {
180 m_counter[i] += a.m_counter[i];
181 }
182 return *this;
183 }
184 };
185
186 mutable std::mutex m_statMutex ATLAS_THREAD_SAFE;
187 mutable Stat_t m_totalStat ATLAS_THREAD_SAFE;
188
190
192
196
200 std::vector<const Trk::MeasurementBase*>&) const;
201
203 Trk::Track* segToTrack(const EventContext&, const Trk::TrackSegment&) const;
204
206 void Analyze(TrackCollection*) const;
207
208 MsgStream& dumptools(MsgStream& out) const;
209 MsgStream& dumpevent(MsgStream& out,
210 const InDet::TRT_SeededTrackFinder::Stat_t& stat) const;
211};
212}
213#endif // TRT_SeededTrackFinder_H
static Double_t a
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
Define macros for attributes used to control the static checker.
An algorithm that can be simultaneously executed in multiple threads.
Trk::Track * segToTrack(const EventContext &, const Trk::TrackSegment &) const
Transform a TRT track segment into a track.
ToolHandle< Trk::IExtendedTrackSummaryTool > m_trackSummaryTool
std::ostream & dump(std::ostream &out) const
MsgStream & dump(MsgStream &out) const
Print internal tool parameters and status.
MsgStream & dumptools(MsgStream &out) const
std::mutex m_statMutex ATLAS_THREAD_SAFE
StatusCode execute(const EventContext &ctx) const override
TRT_SeededTrackFinder(const std::string &name, ISvcLocator *pSvcLocator)
Standard Algorithm methods.
Trk::Track * mergeSegments(const Trk::Track &, const Trk::TrackSegment &) const
Protected methods.
ToolHandle< ITRT_SeededTrackFinder > m_trackmaker
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
ToolHandle< ITRT_TrackExtensionTool > m_trtExtension
SG::ReadHandleKey< ROIPhiRZContainer > m_caloClusterROIKey
Trk::Track * mergeExtension(const Trk::Track &, std::vector< const Trk::MeasurementBase * > &) const
Merge a TRT track extension and a Si track component into one global ID track.
ToolHandle< Trk::IExtrapolator > m_extrapolator
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
UnsignedIntegerProperty m_minTRTonSegment
UnsignedIntegerProperty m_minTRTonly
void Analyze(TrackCollection *) const
Do some statistics analysis at the end of each event.
ToolHandle< Trk::ITrackFitter > m_fitterTool
SG::WriteHandleKey< TrackCollection > m_outTracksKey
SG::ReadHandleKey< Trk::SegmentCollection > m_SegmentsKey
ToolHandle< IRegSelTool > m_regionSelector
MsgStream & dumpevent(MsgStream &out, const InDet::TRT_SeededTrackFinder::Stat_t &stat) const
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.
Class for a generic track segment that holdes polymorphic Trk::MeasurementBase objects,...
Primary Vertex Finder.
Global Counters for final algorithm statistics.
@ kNTrtExtCalls
Number of back tracks found without a Si extension per event.
@ kNTrtExtBad
Number of good TRT extensions.
@ kNTrtFailSel
Number of TRT segments to be investigated per event.
@ kNTrtNoSiExt
Number of TRT segments lost in busy events.
@ kNBckTrk
Number of back tracks found with Si extension per event.
@ kNTrtLimit
Number of TRT segments that will be investigated per event.
@ kNBckTrkSi
Number of failed TRT extensions.
@ kNCounter
Number of back tracks found with or without Si extension per event.
@ kNBckTrkTrt
Number of Si extensions failing cuts.
@ kNExtCut
Number of TRT segments not extended in Si.
@ kNTrtSegGood
Number of TRT segments failing input selection.
@ kNTrtExtFail
Number of shorter TRT extensions.
@ kNTrtExt
Number of times the TRT extension is called.