ATLAS Offline Software
Loading...
Searching...
No Matches
SiCombinatorialTrackFinder_xk.h
Go to the documentation of this file.
1// -*- C++ -*-
2
3/*
4 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5*/
6
8// Header file for class SiCombinatorialTrackFinder_xk
10// Version 1.0 10/04/2007 I.Gavrilenko
12
13#ifndef SiCombinatorialTrackFinder_xk_H
14#define SiCombinatorialTrackFinder_xk_H
15
18
28
29#include "GaudiKernel/ToolHandle.h"
30
32// MagField cache
35
36#include <list>
37#include <map>
38#include <vector>
39
40class MsgStream;
41
42namespace InDet {
43
59
61
62 public extends<AthAlgTool, ISiCombinatorialTrackFinder>
63 {
64 friend class SiTrajectory_xk;
65
67 // Public methods:
69
70 public:
71
75
76 SiCombinatorialTrackFinder_xk(const std::string&, const std::string&,
77 const IInterface*);
78 virtual ~SiCombinatorialTrackFinder_xk() = default;
79 virtual StatusCode initialize() override;
80 virtual StatusCode finalize() override;
82
86
87
88 virtual const std::list<Trk::Track*>& getTracks(
90 const std::vector<const Trk::SpacePoint*>&,
91 const std::vector<Amg::Vector3D>&,
92 std::vector<const InDetDD::SiDetectorElement*>&,
93 const TrackQualityCuts&,
94 const EventContext& ctx) const override;
95
96 virtual const std::list<Trk::Track*>& getTracks(
98 const std::vector<const Trk::SpacePoint*>&,
99 const std::vector<Amg::Vector3D>&,
100 std::vector<const InDetDD::SiDetectorElement*>&,
101 std::multimap<const Trk::PrepRawData*, const Trk::Track*>&,
102 const EventContext& ctx) const override;
103
104 virtual const std::list<Trk::Track*>& getTracksWithBrem(
106 const std::vector<const Trk::SpacePoint*>&,
107 const std::vector<Amg::Vector3D>&,
108 std::vector<const InDetDD::SiDetectorElement*>&,
109 std::multimap<const Trk::PrepRawData*, const Trk::Track*>&, bool,
110 const EventContext& ctx) const override;
111
114 const std::vector<const Trk::SpacePoint*>&,
115 const EventContext&) const override;
116
117 virtual void newEvent(
118 const EventContext& ctx,
120 virtual void newEvent(const EventContext& ctx,
123 const TrackQualityCuts&) const override;
124
125 virtual void endEvent(
128
132
134 MsgStream& out) const override;
136
137 private:
138
140 // Protected Data
142
144
145 ToolHandle<IInDetConditionsTool> m_pixelCondSummaryTool{this, "PixelSummaryTool",
146 "PixelConditionsSummaryTool"};
147 ToolHandle<IInDetConditionsTool> m_sctCondSummaryTool{this, "SctSummaryTool",
148 "InDetSCT_ConditionsSummaryTool/SCT_ConditionsSummaryTool", "Tool to retrieve SCT Conditions summary"};
149 ToolHandle<Trk::IBoundaryCheckTool> m_boundaryCheckTool{this, "BoundaryCheckTool",
150 "InDet::InDetBoundaryCheckTool", "Boundary checking tool for detector sensitivities"};
151
152 PublicToolHandle<Trk::IPatternParametersPropagator> m_proptool{this, "PropagatorTool",
153 "Trk::RungeKuttaPropagator/InDetPropagator"};
154 PublicToolHandle<Trk::IPatternParametersUpdator> m_updatortool{this, "UpdatorTool",
155 "Trk::KalmanUpdator_xk/InDetPatternUpdator"};
156 PublicToolHandle<Trk::IRIO_OnTrackCreator> m_riocreator{this, "RIOonTrackTool",
157 "Trk::RIO_OnTrackCreator/RIO_OnTrackCreator"};
158
159
161
163 "PixelClusters"};
165 "SCT_Clusters"};
167 "PixelDetElementBoundaryLinks_xk", "Key of InDet::SiDetElementBoundaryLinks_xk for Pixel"};
169 "SCT_DetElementBoundaryLinks_xk", "Key of InDet::SiDetElementBoundaryLinks_xk for SCT"};
170 // For P->T converter of SCT_Clusters
171 SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"};
173
178 {this, "PixelDetElStatus", "", "Key of SiDetectorElementStatus for Pixel"};
179
184 {this, "SCTDetElStatus", "", "Key of SiDetectorElementStatus for SCT"};
185
187
188 BooleanProperty m_usePIX{this, "usePixel", true};
189 BooleanProperty m_useSCT{this, "useSCT", true};
190 BooleanProperty m_ITkGeometry{this, "ITkGeometry", false};
191 BooleanProperty m_doFastTracking{this, "doFastTracking", false};
192 StringProperty m_fieldmode{this, "MagneticFieldMode", "MapSolenoid", "Mode of magnetic field"};
193 DoubleProperty m_qualityCut{this, "TrackQualityCut", 9.3, "Simple track quality cut"};
194 FloatProperty m_minPtCut{this, "MinFinalPtCut", 100, "Cut on the pt of the final track. Must be >0 to avoid NANs when computing eta."};
195 float m_minPt2Cut=0;
196 BooleanProperty m_writeHolesFromPattern{this, "writeHolesFromPattern", false,"Flag to activate writing hole info from the pattern recognition"};
198
200
204
216
218 // Methods
220
223 const std::vector<const Trk::SpacePoint*>&,
224 const std::vector<Amg::Vector3D>&,
225 std::vector<const InDetDD::SiDetectorElement*>&,
226 std::multimap<const Trk::PrepRawData*, const Trk::Track*>&,
227 const EventContext&) const;
228
230 const TrackQualityCuts&);
231
232 Trk::Track* convertToTrack(SiCombinatorialTrackFinderData_xk& data, const EventContext& ctx) const;
235
236 void magneticFieldInit();
237
238 static bool spacePointsToClusters(
239 const std::vector<const Trk::SpacePoint*>&,
240 std::vector<const InDet::SiCluster*>&,
241 std::optional<std::reference_wrapper<std::vector<const InDetDD::SiDetectorElement*>>> = std::nullopt);
242
244 std::vector<const InDetDD::SiDetectorElement*>&,
245 std::vector<const InDet::SiDetElementBoundaryLink_xk*>&,
246 const EventContext& ctx) const;
247
248 MsgStream& dumpconditions(MsgStream& out) const;
249 static MsgStream& dumpevent(SiCombinatorialTrackFinderData_xk& data, MsgStream& out) ;
250
251 void initializeCombinatorialData(const EventContext& ctx, SiCombinatorialTrackFinderData_xk& data) const;
252 virtual void fillStatistic(SiCombinatorialTrackFinderData_xk& data, std::array<bool,NumberOfStats>& information) const override;
253
254 };
255
256} // end of name space
257
258#endif // SiCombinatorialTrackFinder_xk_H
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
Property holding a SG store/key/clid from which a ReadHandle is made.
InDet::SiCombinatorialTrackFinderData_xk holds event dependent data used by SiCombinatorialTrackFinde...
PublicToolHandle< Trk::IPatternParametersPropagator > m_proptool
Trk::Track * convertToNextTrack(SiCombinatorialTrackFinderData_xk &data) const
ToolHandle< Trk::IBoundaryCheckTool > m_boundaryCheckTool
SG::ReadHandleKey< InDet::SCT_ClusterContainer > m_sctcontainerkey
static MsgStream & dumpevent(SiCombinatorialTrackFinderData_xk &data, MsgStream &out)
PublicToolHandle< Trk::IPatternParametersUpdator > m_updatortool
static void getTrackQualityCuts(SiCombinatorialTrackFinderData_xk &data, const TrackQualityCuts &)
virtual ~SiCombinatorialTrackFinder_xk()=default
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
ToolHandle< IInDetConditionsTool > m_pixelCondSummaryTool
Trk::Track * convertToTrack(SiCombinatorialTrackFinderData_xk &data, const EventContext &ctx) const
EStat_t findTrack(SiCombinatorialTrackFinderData_xk &data, const Trk::TrackParameters &, const std::vector< const Trk::SpacePoint * > &, const std::vector< Amg::Vector3D > &, std::vector< const InDetDD::SiDetectorElement * > &, std::multimap< const Trk::PrepRawData *, const Trk::Track * > &, const EventContext &) const
virtual void endEvent(SiCombinatorialTrackFinderData_xk &data) const override
virtual const std::list< Trk::Track * > & getTracks(SiCombinatorialTrackFinderData_xk &data, const Trk::TrackParameters &, const std::vector< const Trk::SpacePoint * > &, const std::vector< Amg::Vector3D > &, std::vector< const InDetDD::SiDetectorElement * > &, const TrackQualityCuts &, const EventContext &ctx) const override
SG::ReadHandleKey< InDet::SiDetectorElementStatus > m_sctDetElStatus
Optional read handle to get status data to test whether a SCT detector element is good.
SG::ReadHandleKey< InDet::SiDetectorElementStatus > m_pixelDetElStatus
Optional read handle to get status data to test whether a pixel detector element is good.
Trk::MagneticFieldProperties m_fieldprop
Magnetic field properties.
SG::ReadCondHandleKey< InDet::SiDetElementBoundaryLinks_xk > m_boundaryPixelKey
SG::ReadHandleKey< InDet::PixelClusterContainer > m_pixcontainerkey
void initializeCombinatorialData(const EventContext &ctx, SiCombinatorialTrackFinderData_xk &data) const
static bool spacePointsToClusters(const std::vector< const Trk::SpacePoint * > &, std::vector< const InDet::SiCluster * > &, std::optional< std::reference_wrapper< std::vector< const InDetDD::SiDetectorElement * > > >=std::nullopt)
SiCombinatorialTrackFinder_xk(const std::string &, const std::string &, const IInterface *)
SG::ReadCondHandleKey< InDet::SiDetElementBoundaryLinks_xk > m_boundarySCTKey
PublicToolHandle< Trk::IRIO_OnTrackCreator > m_riocreator
virtual void newEvent(const EventContext &ctx, SiCombinatorialTrackFinderData_xk &data) const override
ToolHandle< IInDetConditionsTool > m_sctCondSummaryTool
virtual const std::list< Trk::Track * > & getTracksWithBrem(SiCombinatorialTrackFinderData_xk &data, const Trk::TrackParameters &, const std::vector< const Trk::SpacePoint * > &, const std::vector< Amg::Vector3D > &, std::vector< const InDetDD::SiDetectorElement * > &, std::multimap< const Trk::PrepRawData *, const Trk::Track * > &, bool, const EventContext &ctx) const override
EStat_t
Array entries for data.statistic counter.
void detectorElementLinks(std::vector< const InDetDD::SiDetectorElement * > &, std::vector< const InDet::SiDetElementBoundaryLink_xk * > &, const EventContext &ctx) const
virtual double pTseed(SiCombinatorialTrackFinderData_xk &data, const Trk::TrackParameters &, const std::vector< const Trk::SpacePoint * > &, const EventContext &) const override
virtual void fillStatistic(SiCombinatorialTrackFinderData_xk &data, std::array< bool, NumberOfStats > &information) const override
Property holding a SG store/key/clid from which a ReadHandle is made.
magnetic field properties to steer the behavior of the extrapolation
Contains information about the 'fitter' of this track.
Primary Vertex Finder.
ParametersBase< TrackParametersDim, Charged > TrackParameters
-event-from-file