ATLAS Offline Software
ITRT_TrackSegmentsMaker.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // Header file for class ITRT_TrackSegmentsMaker
8 // (c) ATLAS Detector software
10 //
11 // Base class for track candidates generation using TRT_DriftCircles information
12 //
13 // Example implementation
14 //
15 // segmentsmaker->newEvent();
16 //
17 // segmentsmaker->find();
18 //
19 // const Trk::TrackSegment* tracksegment = 0;
20 //
21 // while((tracksegment=segmentsmaker->next())) {
22 // do some method with TRT track segment;
23 // }
24 //
26 // Version 1.0 11/10/2005 I.Gavrilenko
28 
29 #ifndef ITRT_TrackSegmentsMaker_H
30 #define ITRT_TrackSegmentsMaker_H
31 
32 #include "GaudiKernel/AlgTool.h"
33 #include "GaudiKernel/EventContext.h"
36 #include "VxVertex/Vertex.h"
38 
39 class MsgStream;
40 
41 namespace InDet {
42 
43  static const InterfaceID IID_ITRT_TrackSegmentsMaker
44  ("InDet::ITRT_TrackSegmentsMaker",1,0);
45 
46  class ITRT_TrackSegmentsMaker : virtual public IAlgTool
47  {
49  // Public methods:
51 
52  public:
53  class IEventData {
54  public:
55  virtual ~IEventData() {}
56  };
57 
59  // Standard tool methods
61 
62  static const InterfaceID& interfaceID();
63  virtual StatusCode initialize ()=0;
64  virtual StatusCode finalize ()=0;
65 
67  // Methods to initialize tool for new event or region
69 
70  virtual std::unique_ptr<InDet::ITRT_TrackSegmentsMaker::IEventData> newEvent (const EventContext& ctx) const =0;
71  virtual std::unique_ptr<InDet::ITRT_TrackSegmentsMaker::IEventData> newRegion(const EventContext& ctx, const std::vector<IdentifierHash>&) const =0;
72  virtual void endEvent (InDet::ITRT_TrackSegmentsMaker::IEventData &event_data) const =0;
73 
75  // Methods of seeds production without vertex constraint
77 
78  virtual void find(
79  const EventContext& ctx,
82 
84  // Iterator through track segments pseudo collection produced
85  // accordingly methods find
87 
89 
91  // Print internal tool parameters and status
93 
94  virtual MsgStream& dump(MsgStream& out) const=0;
95  virtual std::ostream& dump(std::ostream& out) const=0;
96 
97  };
98 
100  // Overload of << operator for MsgStream and std::ostream
102 
103  MsgStream& operator << (MsgStream& ,const ITRT_TrackSegmentsMaker&);
104  std::ostream& operator << (std::ostream&,const ITRT_TrackSegmentsMaker&);
105 
107  // Inline methods
109 
110  inline const InterfaceID& ITRT_TrackSegmentsMaker::interfaceID()
111  {
112  return IID_ITRT_TrackSegmentsMaker;
113  }
114 
116  // Overload of << operator MsgStream
118 
119  inline MsgStream& operator <<
120  (MsgStream& sl,const ITRT_TrackSegmentsMaker& se)
121  {
122  return se.dump(sl);
123  }
124 
126  // Overload of << operator std::ostream
128 
129  inline std::ostream& operator <<
130  (std::ostream& sl,const ITRT_TrackSegmentsMaker& se)
131  {
132  return se.dump(sl);
133  }
134 } // end of name space
135 
136 
137 #endif // ITRT_TrackSegmentsMaker_H
138 
used
InDet::ITRT_TrackSegmentsMaker::next
virtual Trk::TrackSegment * next(InDet::ITRT_TrackSegmentsMaker::IEventData &event_data) const =0
InDet::operator<<
MsgStream & operator<<(MsgStream &, const GNNTrackReaderTool &)
InDet::ITRT_TrackSegmentsMaker::find
virtual void find(const EventContext &ctx, InDet::ITRT_TrackSegmentsMaker::IEventData &event_data, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const =0
InDet::ITRT_TrackSegmentsMaker::newRegion
virtual std::unique_ptr< InDet::ITRT_TrackSegmentsMaker::IEventData > newRegion(const EventContext &ctx, const std::vector< IdentifierHash > &) const =0
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::ITRT_TrackSegmentsMaker::initialize
virtual StatusCode initialize()=0
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
InDet::ITRT_TrackSegmentsMaker::finalize
virtual StatusCode finalize()=0
InDet::ITRT_TrackSegmentsMaker::dump
virtual MsgStream & dump(MsgStream &out) const =0
Trk::TrackSegment
Definition: TrackSegment.h:56
InDet::ITRT_TrackSegmentsMaker::IEventData::~IEventData
virtual ~IEventData()
Definition: ITRT_TrackSegmentsMaker.h:55
keylayer_zslicemap.se
se
Definition: keylayer_zslicemap.py:194
TrackSegment.h
InDet::ITRT_TrackSegmentsMaker
Definition: ITRT_TrackSegmentsMaker.h:47
InDet::ITRT_TrackSegmentsMaker::interfaceID
static const InterfaceID & interfaceID()
Definition: ITRT_TrackSegmentsMaker.h:110
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IdentifierHash.h
Vertex.h
InDet::ITRT_TrackSegmentsMaker::IEventData
Definition: ITRT_TrackSegmentsMaker.h:53
InDet::ITRT_TrackSegmentsMaker::newEvent
virtual std::unique_ptr< InDet::ITRT_TrackSegmentsMaker::IEventData > newEvent(const EventContext &ctx) const =0
InDet::ITRT_TrackSegmentsMaker::endEvent
virtual void endEvent(InDet::ITRT_TrackSegmentsMaker::IEventData &event_data) const =0
InDet::ITRT_TrackSegmentsMaker::dump
virtual std::ostream & dump(std::ostream &out) const =0