ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_TrackExtensionToolCosmics.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
6// Header file for class TRT_TrackExtensionToolCosmics
8// (c) ATLAS Detector software
10// Concret implementation for base class ITRT_TrackExtensionTool
12// Version 1.0 22/08/2005 I.Gavrilenko
14
15#ifndef TRT_TrackExtensionToolCosmics_H
16#define TRT_TrackExtensionToolCosmics_H
17
18
19
20#include "GaudiKernel/ToolHandle.h"
26
28#include <iosfwd>
29#include <vector>
30
31class MsgStream;
32class TRT_ID;
33class AtlasDetectorID;
34class PropDirection;
35
36namespace Trk{
37 class Surface;
38}
39
40namespace InDet {
41
47
49
50 virtual public ITRT_TrackExtensionTool, public AthAlgTool
51 {
53 // Public methods:
55
56 public:
57
59 // Standard tool methods
61
63 (const std::string&,const std::string&,const IInterface*);
65 virtual StatusCode initialize() override;
66 virtual StatusCode finalize () override;
67
69 // Main methods for track extension to TRT
71
72 virtual std::vector<const Trk::MeasurementBase*>& extendTrack
73 (const EventContext& ctx,
74 const Trk::Track&,
77
78 virtual std::vector<const Trk::MeasurementBase*>& extendTrack
79 (const EventContext& ctx,
83
85 (const EventContext& ctx,
89
90 virtual Trk::Track* newTrack
91 (const EventContext& ctx,
92 const Trk::Track&,
95
96 virtual std::unique_ptr<InDet::ITRT_TrackExtensionTool::IEventData> newEvent(const EventContext& ctx) const override;
97
99 // Print internal tool parameters and status
101
102 virtual MsgStream& dump(MsgStream& out) const override;
103 virtual std::ostream& dump(std::ostream& out) const override;
104
105 protected:
106
108 // Protected Data
110
111 ToolHandle<Trk::IExtrapolator> m_extrapolator
112 {this, "Extrapolator", "Trk::Extrapolator/InDetExtrapolator"};
113 ToolHandle<Trk::IRIO_OnTrackCreator> m_riontrackN
114 {this, "RIOonTrackToolNoDr", "InDet::TRT_DriftCircleOnTrackNoDriftTimeTool/TRT_DriftCircleOnTrackNoDriftTimeTool"}; //
115
116 int m_outputlevel{} ; // Print level
117 int m_nprint{} ; // Kind of print
118 DoubleProperty m_roadwidth{this, "RoadWidth", 10.,
119 "Max width of the road"};
120 DoubleProperty m_roadwidth_locz{this, "BoundaryLocZTolerance", 10.,
121 "Max width of the road along the straw"};
122 BooleanProperty m_searchNeighbour{this, "SearchNeighbour", false,
123 "Also search neighbouring detector elements?"};
124
125 SG::ReadHandleKey<TRT_DriftCircleContainer> m_trtname {this,"TRT_ClustersContainer","TRT_DriftCircles","RHK to retrieve TRT_DriftCircles"};
126
127 class EventData;
128 class EventData : public Trk::EventDataBase<EventData,InDet::ITRT_TrackExtensionTool::IEventData>
129 {
131 public:
132 EventData(const TRT_DriftCircleContainer *trtcontainer) : m_trtcontainer(trtcontainer) {}
133
135 delete m_trtcylinder;
136 delete m_trtdiscA;
137 delete m_trtdiscC;
138 }
139
140 protected:
141 const TRT_DriftCircleContainer *m_trtcontainer = nullptr;
145
146 std::vector<const Trk::MeasurementBase*> m_measurement ;
147 };
148
149
150 AtlasDetectorID* m_idHelper{}; //<! Detector ID helper
151
152 const TRT_ID* m_trtid{} ;
153
154 static MsgStream& dumpConditions(MsgStream & out) ;
155 static MsgStream& dumpEvent (MsgStream & out) ;
156
157
158
159 void analyze_tpars(const std::vector<const Trk::TrackParameters* >* tpars,
161
165
166 static Amg::Vector3D intersect(const Trk::Surface *surf,const Trk::Perigee *per);
167
168 };
169
170 MsgStream& operator << (MsgStream& ,const TRT_TrackExtensionToolCosmics&);
171 std::ostream& operator << (std::ostream&,const TRT_TrackExtensionToolCosmics&);
172
173} // end of name space
174
175#endif // TRT_TrackExtensionToolCosmics_H
176
Property holding a SG store/key/clid from which a ReadHandle is made.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
std::vector< const Trk::MeasurementBase * > m_measurement
EventData(const TRT_DriftCircleContainer *trtcontainer)
ToolHandle< Trk::IRIO_OnTrackCreator > m_riontrackN
Trk::Surface * findBoundarySurface(const Trk::TrackParameters &par, Trk::PropDirection dir, InDet::TRT_TrackExtensionToolCosmics::EventData &event_data) const
SG::ReadHandleKey< TRT_DriftCircleContainer > m_trtname
static MsgStream & dumpConditions(MsgStream &out)
void analyze_tpars(const std::vector< const Trk::TrackParameters * > *tpars, InDet::TRT_TrackExtensionToolCosmics::EventData &event_data) const
ToolHandle< Trk::IExtrapolator > m_extrapolator
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 override
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 override
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 override
static Amg::Vector3D intersect(const Trk::Surface *surf, const Trk::Perigee *per)
TRT_TrackExtensionToolCosmics(const std::string &, const std::string &, const IInterface *)
virtual std::unique_ptr< InDet::ITRT_TrackExtensionTool::IEventData > newEvent(const EventContext &ctx) const override
SiSpacePointsSeedMakerEventData EventData
Property holding a SG store/key/clid from which a ReadHandle is made.
This is an Identifier helper class for the TRT subdetector.
Definition TRT_ID.h:82
Base for a helper class to pass mutable storage to tools.
Abstract Base Class for tracking surfaces.
Class for a generic track segment that holdes polymorphic Trk::MeasurementBase objects,...
holding In fact this class is here in order to allow STL container for all features This class is sho...
Eigen::Matrix< double, 3, 1 > Vector3D
Primary Vertex Finder.
MsgStream & operator<<(MsgStream &, const GNNTrackFinderTritonTool &)
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
ParametersBase< TrackParametersDim, Charged > TrackParameters
-event-from-file