ATLAS Offline Software
TRT_SeededTrackFinder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 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 
44 class MsgStream;
45 
46 namespace InDet {
47 
55 {
56 
58  // Public methods:
60 
61 public:
63 
64 
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 
74 
76  MsgStream& dump(MsgStream& out) const;
77  std::ostream& dump(std::ostream& out) const;
78 
79 protected:
80 
82  /* Protected data */
84  bool m_doRefit;
87  bool m_doStat;
88  bool m_saveTRT;
90  unsigned int m_minTRTonSegment;
91  unsigned int m_minTRTonly;
93  ToolHandle<ITRT_SeededTrackFinder> m_trackmaker;
94  ToolHandle<Trk::ITrackFitter> m_fitterTool;
95  ToolHandle<ITRT_TrackExtensionTool> m_trtExtension{
96  this,
97  "TrackExtensionTool",
98  "InDet::TRT_TrackExtensionTool_xk",
99  "TRT track extension tool "
100  };
101 
105 
107  "PRDtoTrackMap",
108  "" };
109  ToolHandle<Trk::IExtendedTrackSummaryTool> m_trackSummaryTool{
110  this,
111  "TrackSummaryTool",
112  "InDetTrackSummaryToolNoHoleSearch"
113  };
114 
115  ToolHandle<Trk::IExtrapolator> m_extrapolator;
117  this,
118  "BeamSpotKey",
119  "BeamSpotData",
120  "SG key for beam spot"
121  };
123  double m_minPt;
124  double m_maxEta;
125  double m_maxRPhiImp;
126  double m_maxZImp;
127 
130  this,
131  "EMROIPhiRZContainer",
132  "",
133  "Name of the calo cluster ROIs in Phi,R,Z parameterization"
134  };
135 
136  ToolHandle<IRegSelTool> m_regionSelector{
137  this,
138  "RegSelTool",
139  "RegSelTool/RegSel_SCT",
140  "Region selector service instance"
141  };
142 
143  float m_deltaEta;
144  float m_deltaPhi;
145  float m_deltaZ;
146 
147  struct Stat_t
148  {
149  enum ECounter
150  {
167  kNCounter
168  };
169  std::array<int, kNCounter> m_counter{};
170 
172  {
173  for (unsigned int i = 0; i < a.m_counter.size(); ++i) {
174  m_counter[i] += a.m_counter[i];
175  }
176  return *this;
177  }
178  };
179 
180  mutable std::mutex m_statMutex ATLAS_THREAD_SAFE;
181  mutable Stat_t m_totalStat ATLAS_THREAD_SAFE;
182 
184 
185 
189  Trk::Track* mergeSegments(const Trk::Track&, const Trk::TrackSegment&) const;
190 
194  std::vector<const Trk::MeasurementBase*>&) const;
195 
197  Trk::Track* segToTrack(const EventContext&, const Trk::TrackSegment&) const;
198 
200  void Analyze(TrackCollection*) const;
201 
202  MsgStream& dumptools(MsgStream& out) const;
203  MsgStream& dumpevent(MsgStream& out,
205 };
206 }
207 #endif // TRT_SeededTrackFinder_H
InDet::TRT_SeededTrackFinder::m_minTRTonly
unsigned int m_minTRTonly
Minimum number of TRT hits on segment.
Definition: TRT_SeededTrackFinder.h:91
InDet::TRT_SeededTrackFinder::Stat_t::m_counter
std::array< int, kNCounter > m_counter
Definition: TRT_SeededTrackFinder.h:169
InDet::TRT_SeededTrackFinder::Stat_t::kNTrtSeg
@ kNTrtSeg
Definition: TRT_SeededTrackFinder.h:151
InDet::TRT_SeededTrackFinder::m_maxEta
double m_maxEta
maximal Eta cut
Definition: TRT_SeededTrackFinder.h:124
InDet::TRT_SeededTrackFinder::Stat_t::kNTrtNoSiExt
@ kNTrtNoSiExt
Number of TRT segments lost in busy events.
Definition: TRT_SeededTrackFinder.h:156
IRegSelTool.h
PRDtoTrackMap.h
InDet::TRT_SeededTrackFinder::mergeExtension
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.
Definition: TRT_SeededTrackFinder.cxx:653
InDet::TRT_SeededTrackFinder::m_SegmentsKey
SG::ReadHandleKey< Trk::SegmentCollection > m_SegmentsKey
Definition: TRT_SeededTrackFinder.h:103
InDet::TRT_SeededTrackFinder::dump
std::ostream & dump(std::ostream &out) const
InDet::TRT_SeededTrackFinder::m_deltaZ
float m_deltaZ
delta Z used for RoI creation
Definition: TRT_SeededTrackFinder.h:145
InDet::TRT_SeededTrackFinder::m_doStat
bool m_doStat
use extension only if better than original track
Definition: TRT_SeededTrackFinder.h:87
InDet::TRT_SeededTrackFinder::m_outTracksKey
SG::WriteHandleKey< TrackCollection > m_outTracksKey
TRT segments to use.
Definition: TRT_SeededTrackFinder.h:104
InDet::TRT_SeededTrackFinder::Stat_t::kNCounter
@ kNCounter
Number of back tracks found with or without Si extension per event.
Definition: TRT_SeededTrackFinder.h:167
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
InDet::TRT_SeededTrackFinder::finalize
StatusCode finalize() override
Definition: TRT_SeededTrackFinder.cxx:448
BeamSpot::mutex
std::mutex mutex
Definition: InDetBeamSpotVertex.cxx:18
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::TRT_SeededTrackFinder::initialize
StatusCode initialize() override
Definition: TRT_SeededTrackFinder.cxx:82
InDet::TRT_SeededTrackFinder::m_trackSummaryTool
ToolHandle< Trk::IExtendedTrackSummaryTool > m_trackSummaryTool
Definition: TRT_SeededTrackFinder.h:109
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
ITRT_SeededTrackFinder.h
InDet::TRT_SeededTrackFinder::Stat_t::kNTrtLimit
@ kNTrtLimit
Number of TRT segments that will be investigated per event
Definition: TRT_SeededTrackFinder.h:155
InDet::TRT_SeededTrackFinder::m_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
the extrapoator
Definition: TRT_SeededTrackFinder.h:115
InDet::TRT_SeededTrackFinder::m_SiExtensionCuts
bool m_SiExtensionCuts
enable cuts after Si segment finding
Definition: TRT_SeededTrackFinder.h:122
IExtrapolator.h
InDet::TRT_SeededTrackFinder::Stat_t::kNExtCut
@ kNExtCut
Number of TRT segments not extended in Si.
Definition: TRT_SeededTrackFinder.h:157
InDet::TRT_SeededTrackFinder
Definition: TRT_SeededTrackFinder.h:55
Trk::TrackSegment
Definition: TrackSegment.h:56
InDet::TRT_SeededTrackFinder::m_doRefit
bool m_doRefit
Definition: TRT_SeededTrackFinder.h:84
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
InDet::TRT_SeededTrackFinder::m_minPt
double m_minPt
minimal Pt cut
Definition: TRT_SeededTrackFinder.h:123
InDet::TRT_SeededTrackFinder::m_MaxSegNum
int m_MaxSegNum
Output stand-alone TRT segments.
Definition: TRT_SeededTrackFinder.h:89
InDet::TRT_SeededTrackFinder::m_maxZImp
double m_maxZImp
maximal z impact parameter cut
Definition: TRT_SeededTrackFinder.h:126
InDet::TRT_SeededTrackFinder::Stat_t
Global Counters for final algorithm statistics.
Definition: TRT_SeededTrackFinder.h:148
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
InDet::TRT_SeededTrackFinder::dump
MsgStream & dump(MsgStream &out) const
Print internal tool parameters and status
InDet::TRT_SeededTrackFinder::m_maxRPhiImp
double m_maxRPhiImp
maximal RPhi impact parameter cut
Definition: TRT_SeededTrackFinder.h:125
InDet::TRT_SeededTrackFinder::Stat_t::kNTrtExtFail
@ kNTrtExtFail
Number of shorter TRT extensions.
Definition: TRT_SeededTrackFinder.h:163
InDet::TRT_SeededTrackFinder::Analyze
void Analyze(TrackCollection *) const
Do some statistics analysis at the end of each event.
Definition: TRT_SeededTrackFinder.cxx:701
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
InDet::TRT_SeededTrackFinder::Stat_t::kNBckTrk
@ kNBckTrk
Number of back tracks found with Si extension per event.
Definition: TRT_SeededTrackFinder.h:165
lumiFormat.i
int i
Definition: lumiFormat.py:92
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
InDet::TRT_SeededTrackFinder::mergeSegments
Trk::Track * mergeSegments(const Trk::Track &, const Trk::TrackSegment &) const
Protected methods
Definition: TRT_SeededTrackFinder.cxx:536
InDet::TRT_SeededTrackFinder::m_fitterTool
ToolHandle< Trk::ITrackFitter > m_fitterTool
Track maker tool.
Definition: TRT_SeededTrackFinder.h:94
TrackCollection.h
InDet::TRT_SeededTrackFinder::m_regionSelector
ToolHandle< IRegSelTool > m_regionSelector
Definition: TRT_SeededTrackFinder.h:136
InDet::TRT_SeededTrackFinder::m_doExtension
bool m_doExtension
Do final careful refit of tracks.
Definition: TRT_SeededTrackFinder.h:85
ITRT_TrackExtensionTool.h
InDet::TRT_SeededTrackFinder::m_trtExtension
ToolHandle< ITRT_TrackExtensionTool > m_trtExtension
Refitting tool.
Definition: TRT_SeededTrackFinder.h:95
InDet::TRT_SeededTrackFinder::m_deltaEta
float m_deltaEta
delta Eta used for RoI creation
Definition: TRT_SeededTrackFinder.h:143
InDet::TRT_SeededTrackFinder::Stat_t::kNTrtExt
@ kNTrtExt
Number of times the TRT extension is called.
Definition: TRT_SeededTrackFinder.h:161
ROIPhiRZContainer.h
InDet::TRT_SeededTrackFinder::Stat_t::kNTrtFailSel
@ kNTrtFailSel
Number of TRT segments to be investigated per event
Definition: TRT_SeededTrackFinder.h:152
DataVector< Trk::Track >
beamspotman.stat
stat
Definition: beamspotman.py:266
InDet::TRT_SeededTrackFinder::m_minTRTonSegment
unsigned int m_minTRTonSegment
Maximum number of segments to be handled.
Definition: TRT_SeededTrackFinder.h:90
InDet::TRT_SeededTrackFinder::ATLAS_THREAD_SAFE
std::mutex m_statMutex ATLAS_THREAD_SAFE
Definition: TRT_SeededTrackFinder.h:180
AthReentrantAlgorithm.h
InDet::TRT_SeededTrackFinder::Stat_t::kNBckTrkSi
@ kNBckTrkSi
Number of failed TRT extensions.
Definition: TRT_SeededTrackFinder.h:164
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
InDet::TRT_SeededTrackFinder::dumpevent
MsgStream & dumpevent(MsgStream &out, const InDet::TRT_SeededTrackFinder::Stat_t &stat) const
Definition: TRT_SeededTrackFinder.cxx:494
InDet::TRT_SeededTrackFinder::m_trackmaker
ToolHandle< ITRT_SeededTrackFinder > m_trackmaker
Minimum number of TRT hits on TRT only.
Definition: TRT_SeededTrackFinder.h:93
InDet::TRT_SeededTrackFinder::Stat_t::kNTrtExtCalls
@ kNTrtExtCalls
Number of back tracks found without a Si extension per event.
Definition: TRT_SeededTrackFinder.h:160
InDet::TRT_SeededTrackFinder::m_prdToTrackMap
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
Definition: TRT_SeededTrackFinder.h:106
InDet::TRT_SeededTrackFinder::segToTrack
Trk::Track * segToTrack(const EventContext &, const Trk::TrackSegment &) const
Transform a TRT track segment into a track
Definition: TRT_SeededTrackFinder.cxx:594
InDet::TRT_SeededTrackFinder::execute
StatusCode execute(const EventContext &ctx) const override
Definition: TRT_SeededTrackFinder.cxx:153
InDet::TRT_SeededTrackFinder::m_caloSeededRoI
bool m_caloSeededRoI
Definition: TRT_SeededTrackFinder.h:128
SG::ReadCondHandleKey< InDet::BeamSpotData >
InDet::TRT_SeededTrackFinder::m_saveTRT
bool m_saveTRT
Statistics of final tracks.
Definition: TRT_SeededTrackFinder.h:88
InDet::TRT_SeededTrackFinder::dumptools
MsgStream & dumptools(MsgStream &out) const
Definition: TRT_SeededTrackFinder.cxx:463
a
TList * a
Definition: liststreamerinfos.cxx:10
IExtendedTrackSummaryTool.h
InDet::TRT_SeededTrackFinder::m_deltaPhi
float m_deltaPhi
delta Phi used for RoI creation
Definition: TRT_SeededTrackFinder.h:144
InDet::TRT_SeededTrackFinder::Stat_t::ECounter
ECounter
Definition: TRT_SeededTrackFinder.h:150
InDet::TRT_SeededTrackFinder::ATLAS_THREAD_SAFE
Stat_t m_totalStat ATLAS_THREAD_SAFE
Definition: TRT_SeededTrackFinder.h:181
InDet::TRT_SeededTrackFinder::~TRT_SeededTrackFinder
virtual ~TRT_SeededTrackFinder()
Definition: TRT_SeededTrackFinder.h:67
InDet::TRT_SeededTrackFinder::Stat_t::kNTrtSegGood
@ kNTrtSegGood
Number of TRT segments failing input selection.
Definition: TRT_SeededTrackFinder.h:153
InDet::TRT_SeededTrackFinder::m_beamSpotKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Definition: TRT_SeededTrackFinder.h:116
BeamSpotData.h
InDet::TRT_SeededTrackFinder::m_caloClusterROIKey
SG::ReadHandleKey< ROIPhiRZContainer > m_caloClusterROIKey
Definition: TRT_SeededTrackFinder.h:129
InDet::TRT_SeededTrackFinder::Stat_t::kNBckTrkTrt
@ kNBckTrkTrt
Number of Si extensions failing cuts.
Definition: TRT_SeededTrackFinder.h:158
checker_macros.h
Define macros for attributes used to control the static checker.
InDet::TRT_SeededTrackFinder::Stat_t::kNTrtExtBad
@ kNTrtExtBad
Number of good TRT extensions.
Definition: TRT_SeededTrackFinder.h:162
InDet::TRT_SeededTrackFinder::Stat_t::operator+=
Stat_t & operator+=(const Stat_t &a)
Definition: TRT_SeededTrackFinder.h:171
ITrackFitter.h
SegmentCollection.h
InDet::TRT_SeededTrackFinder::m_rejectShortExten
bool m_rejectShortExten
Find the TRT extension of the Si track segment.
Definition: TRT_SeededTrackFinder.h:86
InDet::TRT_SeededTrackFinder::TRT_SeededTrackFinder
TRT_SeededTrackFinder(const std::string &name, ISvcLocator *pSvcLocator)
Standard Algorithm methods
Definition: TRT_SeededTrackFinder.cxx:39