ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_TrackExtensionTool_xk.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_TrackExtensionTool_xk
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_TrackExtensionTool_xk_H
16#define TRT_TrackExtensionTool_xk_H
17
18
19
20#include "GaudiKernel/ServiceHandle.h"
21#include "GaudiKernel/ToolHandle.h"
30#include <iosfwd>
31#include <vector>
32
33// MagField cache
36
37class MsgStream;
38class TRT_ID;
39
40namespace InDet{
41
49
51
52 virtual public ITRT_TrackExtensionTool, public AthAlgTool
53 {
55 // Public methods:
57
58 public:
59
61 // Standard tool methods
63
65 (const std::string&,const std::string&,const IInterface*);
67 virtual StatusCode initialize() override;
68 virtual StatusCode finalize () override;
69
71 // Main methods for track extension to TRT
73
74 virtual std::vector<const Trk::MeasurementBase*>& extendTrack(
75 const EventContext& ctx, const Trk::Track&,
78 const override;
79 virtual std::vector<const Trk::MeasurementBase*>& extendTrack(
80 const EventContext& ctx, const Trk::TrackParameters*,
83 const override;
85 const EventContext& ctx, const Trk::TrackParameters*,
88 const override;
89 virtual Trk::Track* newTrack(const EventContext& ctx, const Trk::Track&,
92 virtual std::unique_ptr<InDet::ITRT_TrackExtensionTool::IEventData>
93 newEvent(const EventContext& ctx) const override;
94
96 // Print internal tool parameters and status
98
99 virtual MsgStream& dump(MsgStream& out) const override;
100 virtual std::ostream& dump(std::ostream& out) const override;
101
102 protected:
103
104 class EventData;
105 class EventData : public Trk::EventDataBase<EventData,InDet::ITRT_TrackExtensionTool::IEventData>
106 {
108 public:
109 EventData(const TRT_DriftCircleContainer *trtcontainer,
110 double maxslope) : m_trtcontainer(trtcontainer),m_maxslope(maxslope) {}
111
113
114 protected:
115 const TRT_DriftCircleContainer *m_trtcontainer;
116 std::vector<const Trk::MeasurementBase*> m_measurement;
119 };
120
121
122 std::vector<const Trk::MeasurementBase*>& extendTrackFromParameters
123 (const EventContext& ctx,
124 const Trk::TrackParameters *,
127
129 // Protected Data
131
132 const TRT_ID *m_trtid{};
133 ToolHandle<ITRT_DetElementsRoadMaker> m_roadtool
134 {this, "RoadTool", "InDet::TRT_DetElementsRoadMaker_xk"}; // TRT road maker tool
135 PublicToolHandle<Trk::IPatternParametersPropagator> m_proptool
136 {this, "PropagatorTool", "Trk::RungeKuttaPropagator"};
137 PublicToolHandle<Trk::IPatternParametersUpdator> m_updatortool
138 {this, "UpdatorTool", "Trk::KalmanUpdator_xk"};
139 ToolHandle<ITrtDriftCircleCutTool> m_selectortool
140 {this, "DriftCircleCutTool", "InDet::InDetTrtDriftCircleCutTool"};// Segment selector tool
141 ToolHandle<Trk::IRIO_OnTrackCreator> m_riontrackD
142 {this, "RIOonTrackToolYesDr", "InDet::TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackTool"};
143 ToolHandle<Trk::IRIO_OnTrackCreator> m_riontrackN
144 {this, "RIOonTrackToolNoDr", "InDet::TRT_DriftCircleOnTrackNoDriftTimeTool/TRT_DriftCircleOnTrackNoDriftTimeTool"};
145
146 SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"};
147
148 int m_outputlevel{} ; // Print level
149
150 IntegerProperty m_segmentFindMode{this, "SegmentFindMode", 3,
151 "Method of segment find"};
152 IntegerProperty m_minNumberDCs{this, "MinNumberDriftCircles", 9,
153 "Min. number of DriftCircles"};
154 IntegerProperty m_minNumberSCT{this, "MinNumberSCTclusters", 5,
155 "Min. number SCT clusters for extension"};
156 IntegerProperty m_minNumberPIX{this, "MinNumberPIXclusters", 2,
157 "Min. number pixel clusters for extension"};
158 DoubleProperty m_roadwidth{this, "RoadWidth", 10.,
159 "Max width of the road"};
160 DoubleProperty m_maxslope{this, "Maxslope", .00005};
161 DoubleProperty m_zVertexWidth{this, "ZVertexHalfWidth", 150.,
162 "Z-vertex half width"};
163 DoubleProperty m_impact{this, "maxImpactParameter", 50,
164 "max impact parameter"};
165 BooleanProperty m_usedriftrad{this, "UseDriftRadius", true,
166 "Use drift time ?"};
167 BooleanProperty m_parameterization{this, "UseParameterization", true,
168 "Use table of min number DCs"};
169 DoubleProperty m_scale_error{this, "ScaleHitUncertainty", 2.,
170 "Scalefactor for hit uncertainty"};
171 StringProperty m_fieldmode{this, "MagneticFieldMode", "MapSolenoid",
172 "Mode of magnetic field"};
173
174 Trk::MagneticFieldProperties m_fieldprop ; // Magnetic field properties
175 SG::ReadHandleKey<TRT_DriftCircleContainer> m_trtname {this,"TRT_ClustersContainer","TRT_DriftCircles","RHK to retrieve TRT_DriftCircleContainer"};
176
177 DoubleProperty m_minTRTSegmentpT{this, "minTRTSegmentpT", 300.,
178 "Min pT cut required for TRT Segments"};
179
180 // Methods
182
185 bool isGoodExtension(const EventContext& ctx,
186 const Trk::TrackParameters *,
189 bool numberPIXandSCTclustersCut(const Trk::Track&) const;
190
191 MsgStream& dumpConditions(MsgStream & out) const;
192 };
193
194 MsgStream& operator << (MsgStream& ,const TRT_TrackExtensionTool_xk&);
195 std::ostream& operator << (std::ostream&,const TRT_TrackExtensionTool_xk&);
196
197} // end of name space
198
199#endif // TRT_TrackExtensionTool_xk_H
#define IOVSVC_CALLBACK_ARGS
short hand for IOVSvc call back argument list, to be used when no access to formal arguments is neede...
Definition IOVSvcDefs.h:24
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:
EventData(const TRT_DriftCircleContainer *trtcontainer, double maxslope)
std::vector< const Trk::MeasurementBase * > m_measurement
InDet::TRT_TrackExtensionTool_xk is algorithm which produce track extension to TRT.
ToolHandle< ITRT_DetElementsRoadMaker > m_roadtool
PublicToolHandle< Trk::IPatternParametersPropagator > m_proptool
SG::ReadHandleKey< TRT_DriftCircleContainer > m_trtname
bool numberPIXandSCTclustersCut(const Trk::Track &) const
PublicToolHandle< Trk::IPatternParametersUpdator > m_updatortool
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
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
ToolHandle< Trk::IRIO_OnTrackCreator > m_riontrackD
bool isGoodExtension(const EventContext &ctx, const Trk::TrackParameters *, InDet::TRT_TrackExtensionTool_xk::EventData &event_data, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const
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
TRT_TrackExtensionTool_xk(const std::string &, const std::string &, const IInterface *)
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 StatusCode initialize() override
std::vector< const Trk::MeasurementBase * > & extendTrackFromParameters(const EventContext &ctx, const Trk::TrackParameters *, InDet::TRT_TrackExtensionTool_xk::EventData &event_data, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const
virtual std::unique_ptr< InDet::ITRT_TrackExtensionTool::IEventData > newEvent(const EventContext &ctx) const override
ToolHandle< ITrtDriftCircleCutTool > m_selectortool
StatusCode magneticFieldInit(IOVSVC_CALLBACK_ARGS)
ToolHandle< Trk::IRIO_OnTrackCreator > m_riontrackN
MsgStream & dumpConditions(MsgStream &out) const
Trk::MagneticFieldProperties m_fieldprop
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.
magnetic field properties to steer the behavior of the extrapolation
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...
Primary Vertex Finder.
MsgStream & operator<<(MsgStream &, const GNNTrackFinderTritonTool &)
ParametersBase< TrackParametersDim, Charged > TrackParameters
-event-from-file