ATLAS Offline Software
TRT_StandaloneTrackFinder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /**********************************************************************************
6  Header file for class TRT_StandaloneTrackFinder
7  (c) ATLAS Detector software
8  Algorithm for Trk::Track production in TRT only
9  Version 1.0: 09/28/2007
10  Authors : Thomas Koffas, Markus Elsing
11  email : Thomas.Koffas@cern.ch
12 **********************************************************************************/
13 
14 #ifndef TRT_StandaloneTrackFinder_H
15 #define TRT_StandaloneTrackFinder_H
16 
17 #include <array>
18 #include <string>
19 #include <mutex>
20 
22 #include "GaudiKernel/ToolHandle.h"
23 
28 
33 
34 
35 namespace InDet {
36 
45  class ITRT_SegmentToTrackTool;
46 
47  class TRT_StandaloneTrackFinder : public AthReentrantAlgorithm
48  {
49 
51  // Public methods:
53 
54  public:
55 
57 
58 
60  TRT_StandaloneTrackFinder(const std::string &name, ISvcLocator *pSvcLocator);
63  StatusCode execute(const EventContext& ctx) const;
65 
67 
68 
70  MsgStream& dump(MsgStream& out) const;
71 
72  private:
73 
75  /* Private data */
77 
78 
80  double m_minPt ;
81  bool m_oldLogic ;
82 
83  ToolHandle< ITRT_SegmentToTrackTool > m_segToTrackTool
84  {this,"TRT_SegToTrackTool","InDet::TRT_SegmentToTrackTool"};
85 
87  {this , "InputSegmentsLocation","TRTSegments"};
89  {this,"PRDtoTrackMap",""};
90 
94  {this,"OutputTracksLocation","TRTStandaloneTracks"};
95 
98  enum ECounter {kNTrtSeg,
99  kNUsedSeg,
101  kNTrtSegGood,
102  kNSegFailed,
107 
108  typedef std::array<int,kNCounter> Counter_t;
109 
110  mutable std::mutex m_statMutex ATLAS_THREAD_SAFE;
111  mutable Counter_t m_total ATLAS_THREAD_SAFE {};
112  MsgStream& dumpContainerNames(MsgStream& out) const;
113  static MsgStream& dumpevent(MsgStream&, const InDet::TRT_StandaloneTrackFinder::Counter_t&);
114  friend MsgStream& operator<< (MsgStream&, const InDet::TRT_StandaloneTrackFinder::Counter_t&);
115  };
116 
118 
119 }
120 
121 
122 MsgStream& operator<< (MsgStream&, const InDet::TRT_StandaloneTrackFinder&);
123 
124 #endif // TRT_StandaloneTrackFinder_H
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
InDet::TRT_StandaloneTrackFinder::operator<<
friend MsgStream & operator<<(MsgStream &, const InDet::TRT_StandaloneTrackFinder::Counter_t &)
PRDtoTrackMap.h
InDet::TRT_StandaloneTrackFinder::kNTrtSegGood
@ kNTrtSegGood
Number of input TRT segments after cuts per event.
Definition: TRT_StandaloneTrackFinder.h:108
InDet::operator<<
MsgStream & operator<<(MsgStream &, const GNNTrackReaderTool &)
InDet::TRT_StandaloneTrackFinder::kNSegFailed
@ kNSegFailed
Number of segments failing to translate to a track (inclusing refit)
Definition: TRT_StandaloneTrackFinder.h:109
InDet::TRT_StandaloneTrackFinder::kNTrtSeg
@ kNTrtSeg
Number of input TRT segments to be investigated per event.
Definition: TRT_StandaloneTrackFinder.h:105
InDet::TRT_StandaloneTrackFinder::m_minPt
double m_minPt
Minimum pt cut for TRT only (used in preselection * 0.9)
Definition: TRT_StandaloneTrackFinder.h:87
BeamSpot::mutex
std::mutex mutex
Definition: InDetBeamSpotVertex.cxx:18
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::TRT_StandaloneTrackFinder::kNUsedSeg
@ kNUsedSeg
Number of TRT segments excluded at input (by BackTracking tracks)
Definition: TRT_StandaloneTrackFinder.h:106
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
InDet::TRT_StandaloneTrackFinder::m_oldLogic
bool m_oldLogic
use old transition region hit logic
Definition: TRT_StandaloneTrackFinder.h:88
InDet::TRT_StandaloneTrackFinder::ECounter
ECounter
Global Counters for final algorithm statistics.
Definition: TRT_StandaloneTrackFinder.h:105
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
InDet::TRT_StandaloneTrackFinder::TRT_StandaloneTrackFinder
TRT_StandaloneTrackFinder(const std::string &name, ISvcLocator *pSvcLocator)
Standard Algotithm methods
Definition: TRT_StandaloneTrackFinder.cxx:31
InDet::TRT_StandaloneTrackFinder::m_prdToTrackMap
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
map between PRDs and tracks to identify shared hits.
Definition: TRT_StandaloneTrackFinder.h:96
operator<<
MsgStream & operator<<(MsgStream &, const InDet::TRT_StandaloneTrackFinder &)
Definition: TRT_StandaloneTrackFinder.cxx:277
InDet::TRT_StandaloneTrackFinder::execute
StatusCode execute(const EventContext &ctx) const
Definition: TRT_StandaloneTrackFinder.cxx:66
InDet::TRT_StandaloneTrackFinder::kNCounter
@ kNCounter
Definition: TRT_StandaloneTrackFinder.h:113
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
InDet::TRT_StandaloneTrackFinder::kNTrkSegUsedTotal
@ kNTrkSegUsedTotal
Number of excluded segments by other TRT segments.
Definition: TRT_StandaloneTrackFinder.h:111
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
InDet::TRT_StandaloneTrackFinder::kNRejectedSeg
@ kNRejectedSeg
Number of segments rejected in selection at input.
Definition: TRT_StandaloneTrackFinder.h:107
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
InDet::TRT_StandaloneTrackFinder::finalize
StatusCode finalize()
Definition: TRT_StandaloneTrackFinder.cxx:207
InDet::TRT_StandaloneTrackFinder::m_segToTrackTool
ToolHandle< ITRT_SegmentToTrackTool > m_segToTrackTool
Segment to track tool.
Definition: TRT_StandaloneTrackFinder.h:91
TrackCollection.h
InDet::TRT_StandaloneTrackFinder::dumpContainerNames
MsgStream & dumpContainerNames(MsgStream &out) const
Definition: TRT_StandaloneTrackFinder.cxx:236
InDet::TRT_StandaloneTrackFinder::m_finalTracks
SG::WriteHandleKey< TrackCollection > m_finalTracks
Tracks that will be passed out of AmbiProcessor.
Definition: TRT_StandaloneTrackFinder.h:101
AthReentrantAlgorithm.h
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
InDet::TRT_StandaloneTrackFinder
Definition: TRT_StandaloneTrackFinder.h:55
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
InDet::TRT_StandaloneTrackFinder::dump
MsgStream & dump(MsgStream &out) const
Print internal tool parameters and status
Definition: TRT_StandaloneTrackFinder.cxx:217
InDet::TRT_StandaloneTrackFinder::dumpevent
static MsgStream & dumpevent(MsgStream &, const InDet::TRT_StandaloneTrackFinder::Counter_t &)
Definition: TRT_StandaloneTrackFinder.cxx:225
InDet::TRT_StandaloneTrackFinder::kNTRTTrkTotal
@ kNTRTTrkTotal
Number of TRT-only tracks on output.
Definition: TRT_StandaloneTrackFinder.h:112
InDet::TRT_StandaloneTrackFinder::initialize
StatusCode initialize()
Definition: TRT_StandaloneTrackFinder.cxx:50
ITRT_SegmentToTrackTool.h
InDet::TRT_StandaloneTrackFinder::m_Segments
SG::ReadHandleKey< Trk::SegmentCollection > m_Segments
TRT segments to use.
Definition: TRT_StandaloneTrackFinder.h:94
InDet::TRT_StandaloneTrackFinder::Counter_t
std::array< int, kNCounter > Counter_t
Definition: TRT_StandaloneTrackFinder.h:115
InDet::TRT_StandaloneTrackFinder::ATLAS_THREAD_SAFE
std::mutex m_statMutex ATLAS_THREAD_SAFE
Definition: TRT_StandaloneTrackFinder.h:117
InDet::TRT_StandaloneTrackFinder::m_minNumDriftCircles
int m_minNumDriftCircles
Minimum number of drift circles for TRT segment tracks.
Definition: TRT_StandaloneTrackFinder.h:86
InDet::TRT_StandaloneTrackFinder::~TRT_StandaloneTrackFinder
virtual ~TRT_StandaloneTrackFinder()
SegmentCollection.h
InDet::TRT_StandaloneTrackFinder::kNTrkScoreZeroTotal
@ kNTrkScoreZeroTotal
Number of tracks rejected by score zero.
Definition: TRT_StandaloneTrackFinder.h:110