ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_TrackExtensionToolCosmics.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 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#include <memory>
31
32class MsgStream;
33class TRT_ID;
34class AtlasDetectorID;
35class PropDirection;
36
37namespace Trk{
38 class Surface;
39}
40
41namespace InDet {
42
48
50
51 virtual public ITRT_TrackExtensionTool, public AthAlgTool
52 {
54 // Public methods:
56
57 public:
58
60 // Standard tool methods
62
64 (const std::string&,const std::string&,const IInterface*);
66 virtual StatusCode initialize() override;
67 virtual StatusCode finalize () override;
68
70 // Main methods for track extension to TRT
72
73 virtual std::vector<const Trk::MeasurementBase*>& extendTrack
74 (const EventContext& ctx,
75 const Trk::Track&,
78
79 virtual std::vector<const Trk::MeasurementBase*>& extendTrack
80 (const EventContext& ctx,
84
86 (const EventContext& ctx,
90
91 virtual Trk::Track* newTrack
92 (const EventContext& ctx,
93 const Trk::Track&,
96
97 virtual std::unique_ptr<InDet::ITRT_TrackExtensionTool::IEventData> newEvent(const EventContext& ctx) const override;
98
100 // Print internal tool parameters and status
102
103 virtual MsgStream& dump(MsgStream& out) const override;
104 virtual std::ostream& dump(std::ostream& out) const override;
105
106 protected:
107
109 // Protected Data
111
112 ToolHandle<Trk::IExtrapolator> m_extrapolator
113 {this, "Extrapolator", "Trk::Extrapolator/InDetExtrapolator"};
114 ToolHandle<Trk::IRIO_OnTrackCreator> m_riontrackN
115 {this, "RIOonTrackToolNoDr", "InDet::TRT_DriftCircleOnTrackNoDriftTimeTool/TRT_DriftCircleOnTrackNoDriftTimeTool"}; //
116
117 int m_outputlevel{} ; // Print level
118 int m_nprint{} ; // Kind of print
119 DoubleProperty m_roadwidth{this, "RoadWidth", 10.,
120 "Max width of the road"};
121 DoubleProperty m_roadwidth_locz{this, "BoundaryLocZTolerance", 10.,
122 "Max width of the road along the straw"};
123 BooleanProperty m_searchNeighbour{this, "SearchNeighbour", false,
124 "Also search neighbouring detector elements?"};
125
126 SG::ReadHandleKey<TRT_DriftCircleContainer> m_trtname {this,"TRT_ClustersContainer","TRT_DriftCircles","RHK to retrieve TRT_DriftCircles"};
127
128 class EventData;
129 class EventData : public Trk::EventDataBase<EventData,InDet::ITRT_TrackExtensionTool::IEventData>
130 {
132 public:
133 EventData(const TRT_DriftCircleContainer *trtcontainer) : m_trtcontainer(trtcontainer) {}
134
136 }
137
138 protected:
139 const TRT_DriftCircleContainer *m_trtcontainer = nullptr;
140 std::unique_ptr<Trk::Surface> m_trtcylinder;
141 std::unique_ptr<Trk::Surface> m_trtdiscA;
142 std::unique_ptr<Trk::Surface> m_trtdiscC;
143
144 std::vector<const Trk::MeasurementBase*> m_measurement ;
145 };
146
147
148 AtlasDetectorID* m_idHelper{}; //<! Detector ID helper
149
150 const TRT_ID* m_trtid{} ;
151
152 static MsgStream& dumpConditions(MsgStream & out) ;
153 static MsgStream& dumpEvent (MsgStream & out) ;
154
155
156
157 void analyze_tpars(const std::vector<const Trk::TrackParameters* >* tpars,
159
163
164 static Amg::Vector3D intersect(const Trk::Surface *surf,const Trk::Perigee *per);
165
166 };
167
168 MsgStream& operator << (MsgStream& ,const TRT_TrackExtensionToolCosmics&);
169 std::ostream& operator << (std::ostream&,const TRT_TrackExtensionToolCosmics&);
170
171} // end of name space
172
173#endif // TRT_TrackExtensionToolCosmics_H
174
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