ATLAS Offline Software
ITRT_TrackExtensionTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // Header file for class ITRT_TrackExtensionTool
8 // (c) ATLAS Detector software
10 // Base class for track extension to TRT
12 // Version 1.0 22/08/2005 I.Gavrilenko
14 
15 #ifndef ITRT_TrackExtensionTool_H
16 #define ITRT_TrackExtensionTool_H
17 
18 #include "TrkParameters/TrackParameters.h" //typedef, cannot fwd declare
19 #include "GaudiKernel/IAlgTool.h"
21 #include <vector>
22 #include <memory> //for unique_ptr
23 
24 class MsgStream;
25 class EventContext;
26 namespace Trk{
27  class Track;
28  class TrackSegment;
29  class MeasurementBase; //only the ptr is template parameter
30 }
31 
32 namespace InDet {
33  static const InterfaceID IID_ITRT_TrackExtensionTool
34  ("InDet::ITRT_TrackExtensionTool",1,0);
35 
36  class ITRT_TrackExtensionTool : virtual public IAlgTool
37  {
39  // Public methods:
41 
42  public:
43  class IEventData {
44  public:
45  virtual ~IEventData() {}
46  };
47 
49  // Standard tool methods
51 
52  static const InterfaceID& interfaceID();
53 
55  // Main methods for track extension to TRT
57 
59  // Pixels and sct track extension to TRT
61 
62  virtual std::vector<const Trk::MeasurementBase*>& extendTrack
63  (const EventContext& ctx,
64  const Trk::Track&,
67 
68  virtual std::vector<const Trk::MeasurementBase*>& extendTrack
69  (const EventContext& ctx,
70  const Trk::TrackParameters * pTrackParams,
73 
75  (const EventContext& ctx,
76  const Trk::Track&,
79 
81  // TRT seed extension to TRT
83 
85  (const EventContext& ctx,
86  const Trk::TrackParameters *,
89 
91  // Tool initialisation for new event
93 
94  virtual std::unique_ptr<InDet::ITRT_TrackExtensionTool::IEventData> newEvent(const EventContext& ctx) const = 0;
95 
97  // Print internal tool parameters and status
99 
100  virtual MsgStream& dump(MsgStream& out) const=0;
101  virtual std::ostream& dump(std::ostream& out) const=0;
102 
103  };
104 
106  // Overload of << operator for MsgStream and std::ostream
108 
109  MsgStream& operator << (MsgStream& ,const ITRT_TrackExtensionTool&);
110  std::ostream& operator << (std::ostream&,const ITRT_TrackExtensionTool&);
111 
113  // Inline methods
115 
116  inline const InterfaceID& ITRT_TrackExtensionTool::interfaceID()
117  {
118  return IID_ITRT_TrackExtensionTool;
119  }
120 
122  // Overload of << operator MsgStream
124 
125  inline MsgStream& operator <<
126  (MsgStream& sl,const ITRT_TrackExtensionTool& se)
127  {
128  return se.dump(sl);
129  }
130 
132  // Overload of << operator std::ostream
134 
135  inline std::ostream& operator <<
136  (std::ostream& sl,const ITRT_TrackExtensionTool& se)
137  {
138  return se.dump(sl);
139  }
140 
141 } // end of name space
142 
143 
144 #endif // ITRT_TrackExtensionTool_H
145 
used
InDet::operator<<
MsgStream & operator<<(MsgStream &, const GNNTrackReaderTool &)
TrackParameters.h
InDet::ITRT_TrackExtensionTool::dump
virtual std::ostream & dump(std::ostream &out) const =0
InDet::ITRT_TrackExtensionTool::IEventData::~IEventData
virtual ~IEventData()
Definition: ITRT_TrackExtensionTool.h:45
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::ITRT_TrackExtensionTool::newTrack
virtual Trk::Track * newTrack(const EventContext &ctx, const Trk::Track &, InDet::ITRT_TrackExtensionTool::IEventData &virt_event_data, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const =0
InDet::ITRT_TrackExtensionTool::extendTrack
virtual std::vector< const Trk::MeasurementBase * > & extendTrack(const EventContext &ctx, const Trk::TrackParameters *pTrackParams, InDet::ITRT_TrackExtensionTool::IEventData &virt_event_data, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const =0
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
Trk::TrackSegment
Definition: TrackSegment.h:56
keylayer_zslicemap.se
se
Definition: keylayer_zslicemap.py:194
InDet::ITRT_TrackExtensionTool::extendTrack
virtual std::vector< const Trk::MeasurementBase * > & extendTrack(const EventContext &ctx, const Trk::Track &, InDet::ITRT_TrackExtensionTool::IEventData &virt_event_data, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const =0
InDet::ITRT_TrackExtensionTool
Definition: ITRT_TrackExtensionTool.h:37
InDet::ITRT_TrackExtensionTool::newEvent
virtual std::unique_ptr< InDet::ITRT_TrackExtensionTool::IEventData > newEvent(const EventContext &ctx) const =0
InDet::ITRT_TrackExtensionTool::findSegment
virtual Trk::TrackSegment * findSegment(const EventContext &ctx, const Trk::TrackParameters *, InDet::ITRT_TrackExtensionTool::IEventData &virt_event_data, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const =0
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
InDet::ITRT_TrackExtensionTool::IEventData
Definition: ITRT_TrackExtensionTool.h:43
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
InDet::ITRT_TrackExtensionTool::interfaceID
static const InterfaceID & interfaceID()
Definition: ITRT_TrackExtensionTool.h:116
InDet::ITRT_TrackExtensionTool::dump
virtual MsgStream & dump(MsgStream &out) const =0