ATLAS Offline Software
Loading...
Searching...
No Matches
GNNSeedingTrackMaker.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef GNNSeedingTrackMaker_H
6#define GNNSeedingTrackMaker_H
7
8#include <optional>
9#include <string>
10#include <vector>
11
14
15// data containers
21
22// Tool handles
23#include "IGNNTrackReaderTool.h"
34// MagField cache
36
37namespace InDet {
39}
40
41namespace InDet {
52 public:
53 GNNSeedingTrackMaker(const std::string& name, ISvcLocator* pSvcLocator);
54 virtual StatusCode initialize() override;
55 virtual StatusCode execute(const EventContext& ctx) const override;
56
58 virtual bool isClonable() const override { return true; };
60
61 private:
65
66
68 this, "PixelClusterKey", "ITkPixelClusters"};
70 this, "StripClusterKey", "ITkStripClusters"};
71
72 // input containers
74 this, "SpacePointsPixelName", "ITkPixelSpacePoints"};
76 this, "SpacePointsStripName", "ITkStripSpacePoints"};
77
79 this, "PixelDetElementBoundaryLinks_xk",
80 "ITkPixelDetElementBoundaryLinks_xk",
81 "Key of InDet::SiDetElementBoundaryLinks_xk for Pixel"};
83 this, "StripDetElementBoundaryLinks_xk",
84 "ITkStripDetElementBoundaryLinks_xk",
85 "Key of InDet::SiDetElementBoundaryLinks_xk for Strip"};
86 // For P->T converter of SCT_Clusters
88 this, "AtlasFieldCacheCondObj", "fieldCondObj",
89 "Name of the Magnetic Field conditions object key"};
90
91
97 this, "PixelDetElStatus", "", "Key of SiDetectorElementStatus for Pixel"};
98
104 this, "StripDetElStatus", "", "Key of SiDetectorElementStatus for Strip"};
105
106 // output container
108 "SiSPGNNTracks"};
109
113
114 ToolHandle<IGNNTrackFinder> m_gnnTrackFinder{this, "GNNTrackFinderTool",
115 "InDet::SiGNNTrackFinderTool",
116 "Track Finder"};
117
119 ToolHandle<ISeedFitter> m_seedFitter{
120 this, "SeedFitterTool", "InDet::InDetGNNTracking/InDetSiSeedFitter",
121 "Seed Fitter"};
122
123 ToolHandle<IGNNTrackReaderTool> m_gnnTrackReader{
124 this, "GNNTrackReaderTool", "InDet::GNNTrackReaderTool", "Track Reader"};
125
126 ToolHandle<Trk::ITrackFitter> m_trackFitter{
127 this, "TrackFitter", "Trk::GlobalChi2Fitter/InDetTrackFitter",
128 "Track Fitter"};
129
130 PublicToolHandle<Trk::IRIO_OnTrackCreator> m_riocreator{
131 this, "RIOonTrackTool", "Trk::RIO_OnTrackCreator/RIO_OnTrackCreator"};
132 PublicToolHandle<Trk::IPatternParametersPropagator> m_proptool{
133 this, "PropagatorTool", "Trk::RungeKuttaPropagator/InDetPropagator"};
134 PublicToolHandle<Trk::IPatternParametersUpdator> m_updatortool{
135 this, "UpdatorTool", "Trk::KalmanUpdator_xk/InDetPatternUpdator"};
136
137 ToolHandle<Trk::IBoundaryCheckTool> m_boundaryCheckTool{
138 this, "BoundaryCheckTool", "InDet::InDetBoundaryCheckTool",
139 "Boundary checking tool for detector sensitivities"};
140 ToolHandle<IInDetConditionsTool> m_pixelCondSummaryTool{
141 this, "PixelSummaryTool", "PixelConditionsSummaryTool"};
142 ToolHandle<IInDetConditionsTool> m_stripCondSummaryTool{
143 this, "StripSummaryTool",
144 "InDetSCT_ConditionsSummaryTool/StripConditionsSummaryTool",
145 "Tool to retrieve Strip Conditions summary"};
146 ToolHandle<InDet::ISiDetElementsRoadMaker> m_roadmaker{
147 this, "RoadTool", "InDet::SiDetElementsRoadMaker_xk"};
148
150 StringProperty m_fieldmode{this, "MagneticFieldMode", "MapSolenoid",
151 "Mode of magnetic field"};
152
154
155 void magneticFieldInit();
156
157 static bool spacePointsToClusters(
158 const std::vector<const Trk::SpacePoint*>&,
159 std::vector<const InDet::SiCluster*>&,
160 std::optional<std::reference_wrapper<
161 std::vector<const InDetDD::SiDetectorElement*>>> = std::nullopt);
162
164 std::vector<const InDetDD::SiDetectorElement*>& DE,
165 std::vector<const InDet::SiDetElementBoundaryLink_xk*>& DEL,
166 const EventContext& ctx) const;
167
169 const EventContext& ctx, SiCombinatorialTrackFinderData_xk& data) const;
170
172
173 // define quality cuts for track selection
174 IntegerProperty m_nclusmin{this, "nClustersMin", 6, "Min number clusters"};
175 IntegerProperty m_nwclusmin{this, "nWeightedClustersMin", 6,
176 "Min number weighted clusters(pix=2 strip=1)"};
177 IntegerProperty m_nholesmax{this, "nHolesMax", 2, "Max number holes"};
178 IntegerProperty m_dholesmax{this, "nHolesGapMax", 2, "Max holes gap"};
179
180 DoubleProperty m_pTmin{this, "pTmin", 500., "min pT"};
181 DoubleProperty m_pTminBrem{this, "pTminBrem", 1000., "min pT for Brem mode"};
182 DoubleProperty m_xi2max{this, "Xi2max", 9., "max Xi2 for updators"};
183 DoubleProperty m_xi2maxNoAdd{this, "Xi2maxNoAdd", 25.,
184 "max Xi2 for clusters"};
185 DoubleProperty m_xi2maxlink{this, "Xi2maxlink", 200., "max Xi2 for clusters"};
186 DoubleProperty m_xi2multitracks{this, "Xi2maxMultiTracks", 9.,
187 "max Xi2 for multi tracks"};
188 IntegerProperty m_doMultiTracksProd{this, "doMultiTracksProd", 0,
189 "do multi tracks production"};
190};
191
192} // namespace InDet
193
194#endif
defines an "iterator" over instances of a given type in StoreGateSvc
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
An algorithm that can be simultaneously executed in multiple threads.
void initializeCombinatorialData(const EventContext &ctx, SiCombinatorialTrackFinderData_xk &data) const
virtual bool isClonable() const override
Make this algorithm clonable.
ToolHandle< Trk::IBoundaryCheckTool > m_boundaryCheckTool
ToolHandle< IGNNTrackReaderTool > m_gnnTrackReader
virtual StatusCode execute(const EventContext &ctx) const override
ToolHandle< IGNNTrackFinder > m_gnnTrackFinder
SG::ReadCondHandleKey< InDet::SiDetElementBoundaryLinks_xk > m_boundaryPixelKey
ToolHandle< InDet::ISiDetElementsRoadMaker > m_roadmaker
SG::ReadHandleKey< InDet::SiDetectorElementStatus > m_stripDetElStatus
Optional read handle to get status data to test whether a Strip detector element is good.
PublicToolHandle< Trk::IPatternParametersPropagator > m_proptool
SG::ReadHandleKey< InDet::SCT_ClusterContainer > m_stripClusterKey
PublicToolHandle< Trk::IRIO_OnTrackCreator > m_riocreator
void getTrackQualityCuts(SiCombinatorialTrackFinderData_xk &data) const
void detectorElementLinks(std::vector< const InDetDD::SiDetectorElement * > &DE, std::vector< const InDet::SiDetElementBoundaryLink_xk * > &DEL, const EventContext &ctx) const
ToolHandle< ISeedFitter > m_seedFitter
GNN-based track finding tool that produces track candidates.
SG::ReadCondHandleKey< InDet::SiDetElementBoundaryLinks_xk > m_boundaryStripKey
ToolHandle< Trk::ITrackFitter > m_trackFitter
Track Fitter.
SG::ReadHandleKey< InDet::PixelClusterContainer > m_pixelClusterKey
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)
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
Trk::MagneticFieldProperties m_fieldprop
Magnetic field properties.
ToolHandle< IInDetConditionsTool > m_stripCondSummaryTool
PublicToolHandle< Trk::IPatternParametersUpdator > m_updatortool
SG::ReadHandleKey< SpacePointContainer > m_SpacePointsStripKey
GNNSeedingTrackMaker(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadHandleKey< SpacePointContainer > m_SpacePointsPixelKey
virtual StatusCode initialize() override
SG::ReadHandleKey< InDet::SiDetectorElementStatus > m_pixelDetElStatus
Optional read handle to get status data to test whether a pixel detector element is good.
SG::WriteHandleKey< TrackCollection > m_outputTracksKey
ToolHandle< IInDetConditionsTool > m_pixelCondSummaryTool
InDet::SiCombinatorialTrackFinderData_xk holds event dependent data used by SiCombinatorialTrackFinde...
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
magnetic field properties to steer the behavior of the extrapolation
Primary Vertex Finder.