ATLAS Offline Software
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 
13 #include "StoreGate/DataHandle.h"
14 
15 // data containers
21 
22 // Tool handles
23 #include "IGNNTrackReaderTool.h"
34 // MagField cache
36 
37 namespace InDet {
38 class TrackQualityCuts;
39 }
40 
41 namespace 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"};
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"};
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"};
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
InDet::GNNSeedingTrackMaker::m_xi2maxNoAdd
DoubleProperty m_xi2maxNoAdd
Definition: GNNSeedingTrackMaker.h:183
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
InDet::GNNSeedingTrackMaker
InDet::GNNSeedingTrackMaker is an algorithm that uses the GNN-based track finding tool to reconstruct...
Definition: GNNSeedingTrackMaker.h:51
ISeedFitter.h
InDet::GNNSeedingTrackMaker::m_boundaryStripKey
SG::ReadCondHandleKey< InDet::SiDetElementBoundaryLinks_xk > m_boundaryStripKey
Definition: GNNSeedingTrackMaker.h:82
IInDetConditionsTool.h
InDet::GNNSeedingTrackMaker::m_pixelDetElStatus
SG::ReadHandleKey< InDet::SiDetectorElementStatus > m_pixelDetElStatus
Optional read handle to get status data to test whether a pixel detector element is good.
Definition: GNNSeedingTrackMaker.h:96
InDet::GNNSeedingTrackMaker::getTrackQualityCuts
void getTrackQualityCuts(SiCombinatorialTrackFinderData_xk &data) const
Definition: GNNSeedingTrackMaker.cxx:438
InDet::GNNSeedingTrackMaker::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: GNNSeedingTrackMaker.cxx:78
InDet::GNNSeedingTrackMaker::m_SpacePointsPixelKey
SG::ReadHandleKey< SpacePointContainer > m_SpacePointsPixelKey
Definition: GNNSeedingTrackMaker.h:73
Trk::MagneticFieldProperties
Definition: MagneticFieldProperties.h:31
SiDetectorElementStatus.h
AtlasFieldCacheCondObj.h
InDet::GNNSeedingTrackMaker::m_gnnTrackFinder
ToolHandle< IGNNTrackFinder > m_gnnTrackFinder
Definition: GNNSeedingTrackMaker.h:114
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::GNNSeedingTrackMaker::m_gnnTrackReader
ToolHandle< IGNNTrackReaderTool > m_gnnTrackReader
Definition: GNNSeedingTrackMaker.h:123
IRIO_OnTrackCreator.h
InDet::GNNSeedingTrackMaker::m_fieldprop
Trk::MagneticFieldProperties m_fieldprop
Magnetic field properties.
Definition: GNNSeedingTrackMaker.h:153
InDet::GNNSeedingTrackMaker::initializeCombinatorialData
void initializeCombinatorialData(const EventContext &ctx, SiCombinatorialTrackFinderData_xk &data) const
Definition: GNNSeedingTrackMaker.cxx:393
InDet::GNNSeedingTrackMaker::initialize
virtual StatusCode initialize() override
Definition: GNNSeedingTrackMaker.cxx:19
InDet::GNNSeedingTrackMaker::m_nholesmax
IntegerProperty m_nholesmax
Definition: GNNSeedingTrackMaker.h:177
InDet::GNNSeedingTrackMaker::m_xi2maxlink
DoubleProperty m_xi2maxlink
Definition: GNNSeedingTrackMaker.h:185
SG::ReadHandleKey< InDet::PixelClusterContainer >
DataHandle.h
InDet::GNNSeedingTrackMaker::GNNSeedingTrackMaker
GNNSeedingTrackMaker(const std::string &name, ISvcLocator *pSvcLocator)
Definition: GNNSeedingTrackMaker.cxx:15
InDet::GNNSeedingTrackMaker::m_nclusmin
IntegerProperty m_nclusmin
Definition: GNNSeedingTrackMaker.h:174
SpacePointContainer.h
InDet::GNNSeedingTrackMaker::magneticFieldInit
void magneticFieldInit()
Definition: GNNSeedingTrackMaker.cxx:67
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
InDet::GNNSeedingTrackMaker::m_stripDetElStatus
SG::ReadHandleKey< InDet::SiDetectorElementStatus > m_stripDetElStatus
Optional read handle to get status data to test whether a Strip detector element is good.
Definition: GNNSeedingTrackMaker.h:103
InDet::GNNSeedingTrackMaker::m_roadmaker
ToolHandle< InDet::ISiDetElementsRoadMaker > m_roadmaker
Definition: GNNSeedingTrackMaker.h:146
InDet::GNNSeedingTrackMaker::m_xi2multitracks
DoubleProperty m_xi2multitracks
Definition: GNNSeedingTrackMaker.h:186
IGNNTrackReaderTool.h
ISiDetElementsRoadMaker.h
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
InDet::GNNSeedingTrackMaker::m_seedFitter
ToolHandle< ISeedFitter > m_seedFitter
GNN-based track finding tool that produces track candidates.
Definition: GNNSeedingTrackMaker.h:119
IGNNTrackFinder.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrackCollection.h
SiCombinatorialTrackFinderData_xk.h
InDet::GNNSeedingTrackMaker::m_riocreator
PublicToolHandle< Trk::IRIO_OnTrackCreator > m_riocreator
Definition: GNNSeedingTrackMaker.h:130
InDet::GNNSeedingTrackMaker::m_fieldmode
StringProperty m_fieldmode
Definition: GNNSeedingTrackMaker.h:150
InDet::GNNSeedingTrackMaker::spacePointsToClusters
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)
Definition: GNNSeedingTrackMaker.cxx:302
InDet::GNNSeedingTrackMaker::m_fieldCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
Definition: GNNSeedingTrackMaker.h:87
InDet::GNNSeedingTrackMaker::m_dholesmax
IntegerProperty m_dholesmax
Definition: GNNSeedingTrackMaker.h:178
AthReentrantAlgorithm.h
InDet::GNNSeedingTrackMaker::m_stripClusterKey
SG::ReadHandleKey< InDet::SCT_ClusterContainer > m_stripClusterKey
Definition: GNNSeedingTrackMaker.h:69
InDet::GNNSeedingTrackMaker::m_outputTracksKey
SG::WriteHandleKey< TrackCollection > m_outputTracksKey
Definition: GNNSeedingTrackMaker.h:107
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
PixelClusterContainer.h
InDet::GNNSeedingTrackMaker::m_boundaryCheckTool
ToolHandle< Trk::IBoundaryCheckTool > m_boundaryCheckTool
Definition: GNNSeedingTrackMaker.h:137
InDet::GNNSeedingTrackMaker::m_SpacePointsStripKey
SG::ReadHandleKey< SpacePointContainer > m_SpacePointsStripKey
Definition: GNNSeedingTrackMaker.h:75
InDet::GNNSeedingTrackMaker::m_stripCondSummaryTool
ToolHandle< IInDetConditionsTool > m_stripCondSummaryTool
Definition: GNNSeedingTrackMaker.h:142
SG::ReadCondHandleKey< InDet::SiDetElementBoundaryLinks_xk >
InDet::GNNSeedingTrackMaker::m_trackFitter
ToolHandle< Trk::ITrackFitter > m_trackFitter
Track Fitter.
Definition: GNNSeedingTrackMaker.h:126
InDet::GNNSeedingTrackMaker::m_proptool
PublicToolHandle< Trk::IPatternParametersPropagator > m_proptool
Definition: GNNSeedingTrackMaker.h:132
InDet::SiCombinatorialTrackFinderData_xk
Definition: SiCombinatorialTrackFinderData_xk.h:34
InDet::GNNSeedingTrackMaker::m_pTmin
DoubleProperty m_pTmin
Definition: GNNSeedingTrackMaker.h:180
IBoundaryCheckTool.h
SCT_ClusterContainer.h
InDet::GNNSeedingTrackMaker::m_pixelCondSummaryTool
ToolHandle< IInDetConditionsTool > m_pixelCondSummaryTool
Definition: GNNSeedingTrackMaker.h:140
InDet::GNNSeedingTrackMaker::m_xi2max
DoubleProperty m_xi2max
Definition: GNNSeedingTrackMaker.h:182
InDet::GNNSeedingTrackMaker::m_boundaryPixelKey
SG::ReadCondHandleKey< InDet::SiDetElementBoundaryLinks_xk > m_boundaryPixelKey
Definition: GNNSeedingTrackMaker.h:78
InDet::GNNSeedingTrackMaker::isClonable
virtual bool isClonable() const override
Make this algorithm clonable.
Definition: GNNSeedingTrackMaker.h:58
ITrackFitter.h
IPatternParametersPropagator.h
InDet::GNNSeedingTrackMaker::m_nwclusmin
IntegerProperty m_nwclusmin
Definition: GNNSeedingTrackMaker.h:175
InDet::GNNSeedingTrackMaker::m_updatortool
PublicToolHandle< Trk::IPatternParametersUpdator > m_updatortool
Definition: GNNSeedingTrackMaker.h:134
InDet::GNNSeedingTrackMaker::detectorElementLinks
void detectorElementLinks(std::vector< const InDetDD::SiDetectorElement * > &DE, std::vector< const InDet::SiDetElementBoundaryLink_xk * > &DEL, const EventContext &ctx) const
Definition: GNNSeedingTrackMaker.cxx:362
InDet::GNNSeedingTrackMaker::m_pTminBrem
DoubleProperty m_pTminBrem
Definition: GNNSeedingTrackMaker.h:181
InDet::GNNSeedingTrackMaker::m_doMultiTracksProd
IntegerProperty m_doMultiTracksProd
Definition: GNNSeedingTrackMaker.h:188
InDet::GNNSeedingTrackMaker::m_pixelClusterKey
SG::ReadHandleKey< InDet::PixelClusterContainer > m_pixelClusterKey
Definition: GNNSeedingTrackMaker.h:67