ATLAS Offline Software
Loading...
Searching...
No Matches
GNNSeedingTrackMaker.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 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
13
14// data containers
20
21// Tool handles
22#include "IGNNTrackReaderTool.h"
33// MagField cache
35
36namespace InDet {
38}
39
40namespace InDet {
51 public:
52 GNNSeedingTrackMaker(const std::string& name, ISvcLocator* pSvcLocator);
53 virtual StatusCode initialize() override;
54 virtual StatusCode execute(const EventContext& ctx) const override;
55
57 virtual bool isClonable() const override { return true; };
59
60 private:
64
65
67 this, "PixelClusterKey", "ITkPixelClusters"};
69 this, "StripClusterKey", "ITkStripClusters"};
70
71 // input containers
73 this, "SpacePointsPixelName", "ITkPixelSpacePoints"};
75 this, "SpacePointsStripName", "ITkStripSpacePoints"};
76
78 this, "PixelDetElementBoundaryLinks_xk",
79 "ITkPixelDetElementBoundaryLinks_xk",
80 "Key of InDet::SiDetElementBoundaryLinks_xk for Pixel"};
82 this, "StripDetElementBoundaryLinks_xk",
83 "ITkStripDetElementBoundaryLinks_xk",
84 "Key of InDet::SiDetElementBoundaryLinks_xk for Strip"};
85 // For P->T converter of SCT_Clusters
87 this, "AtlasFieldCacheCondObj", "fieldCondObj",
88 "Name of the Magnetic Field conditions object key"};
89
90
96 this, "PixelDetElStatus", "", "Key of SiDetectorElementStatus for Pixel"};
97
103 this, "StripDetElStatus", "", "Key of SiDetectorElementStatus for Strip"};
104
105 // output container
107 "SiSPGNNTracks"};
108
112
113 ToolHandle<IGNNTrackFinder> m_gnnTrackFinder{this, "GNNTrackFinderTool",
114 "InDet::SiGNNTrackFinderTool",
115 "Track Finder"};
116
118 ToolHandle<ISeedFitter> m_seedFitter{
119 this, "SeedFitterTool", "InDet::InDetGNNTracking/InDetSiSeedFitter",
120 "Seed Fitter"};
121
122 ToolHandle<IGNNTrackReaderTool> m_gnnTrackReader{
123 this, "GNNTrackReaderTool", "InDet::GNNTrackReaderTool", "Track Reader"};
124
125 ToolHandle<Trk::ITrackFitter> m_trackFitter{
126 this, "TrackFitter", "Trk::GlobalChi2Fitter/InDetTrackFitter",
127 "Track Fitter"};
128
129 PublicToolHandle<Trk::IRIO_OnTrackCreator> m_riocreator{
130 this, "RIOonTrackTool", "Trk::RIO_OnTrackCreator/RIO_OnTrackCreator"};
131 PublicToolHandle<Trk::IPatternParametersPropagator> m_proptool{
132 this, "PropagatorTool", "Trk::RungeKuttaPropagator/InDetPropagator"};
133 PublicToolHandle<Trk::IPatternParametersUpdator> m_updatortool{
134 this, "UpdatorTool", "Trk::KalmanUpdator_xk/InDetPatternUpdator"};
135
136 ToolHandle<Trk::IBoundaryCheckTool> m_boundaryCheckTool{
137 this, "BoundaryCheckTool", "InDet::InDetBoundaryCheckTool",
138 "Boundary checking tool for detector sensitivities"};
139 ToolHandle<IInDetConditionsTool> m_pixelCondSummaryTool{
140 this, "PixelSummaryTool", "PixelConditionsSummaryTool"};
141 ToolHandle<IInDetConditionsTool> m_stripCondSummaryTool{
142 this, "StripSummaryTool",
143 "InDetSCT_ConditionsSummaryTool/StripConditionsSummaryTool",
144 "Tool to retrieve Strip Conditions summary"};
145 ToolHandle<InDet::ISiDetElementsRoadMaker> m_roadmaker{
146 this, "RoadTool", "InDet::SiDetElementsRoadMaker_xk"};
147
149 StringProperty m_fieldmode{this, "MagneticFieldMode", "MapSolenoid",
150 "Mode of magnetic field"};
151
153
154 void magneticFieldInit();
155
156 static bool spacePointsToClusters(
157 const std::vector<const Trk::SpacePoint*>&,
158 std::vector<const InDet::SiCluster*>&,
159 std::optional<std::reference_wrapper<
160 std::vector<const InDetDD::SiDetectorElement*>>> = std::nullopt);
161
163 std::vector<const InDetDD::SiDetectorElement*>& DE,
164 std::vector<const InDet::SiDetElementBoundaryLink_xk*>& DEL,
165 const EventContext& ctx) const;
166
168 const EventContext& ctx, SiCombinatorialTrackFinderData_xk& data) const;
169
171
172 // define quality cuts for track selection
173 IntegerProperty m_nclusmin{this, "nClustersMin", 6, "Min number clusters"};
174 IntegerProperty m_nwclusmin{this, "nWeightedClustersMin", 6,
175 "Min number weighted clusters(pix=2 strip=1)"};
176 IntegerProperty m_nholesmax{this, "nHolesMax", 2, "Max number holes"};
177 IntegerProperty m_dholesmax{this, "nHolesGapMax", 2, "Max holes gap"};
178
179 DoubleProperty m_pTmin{this, "pTmin", 500., "min pT"};
180 DoubleProperty m_pTminBrem{this, "pTminBrem", 1000., "min pT for Brem mode"};
181 DoubleProperty m_xi2max{this, "Xi2max", 9., "max Xi2 for updators"};
182 DoubleProperty m_xi2maxNoAdd{this, "Xi2maxNoAdd", 25.,
183 "max Xi2 for clusters"};
184 DoubleProperty m_xi2maxlink{this, "Xi2maxlink", 200., "max Xi2 for clusters"};
185 DoubleProperty m_xi2multitracks{this, "Xi2maxMultiTracks", 9.,
186 "max Xi2 for multi tracks"};
187 IntegerProperty m_doMultiTracksProd{this, "doMultiTracksProd", 0,
188 "do multi tracks production"};
189};
190
191} // namespace InDet
192
193#endif
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.