ATLAS Offline Software
Loading...
Searching...
No Matches
GridTripletSeedingTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ACTSTRK_GRIDTRIPLETSEEDINGTOOL_GRIDTRIPLETSEEDINGTOOL_H
6#define ACTSTRK_GRIDTRIPLETSEEDINGTOOL_GRIDTRIPLETSEEDINGTOOL_H
7
8// ATHENA
15
16// ACTS CORE
17#include "Acts/EventData/SeedContainer.hpp"
18#include "Acts/EventData/SpacePointContainer.hpp"
19#include "Acts/Seeding/BroadTripletSeedFilter.hpp"
20#include "Acts/Seeding/CylindricalSpacePointGrid.hpp"
21#include "Acts/Seeding/SphericalSpacePointGrid.hpp"
22#include "Acts/Seeding/TripletSeeder.hpp"
23
24// Other
25#include <memory>
26#include <optional>
27#include <variant>
28#include <vector>
29
30namespace ActsTrk {
31
33 : public extends<AthAlgTool, ActsTrk::ISeedingTool> {
34public:
35 GridTripletSeedingTool(const std::string &type, const std::string &name,
36 const IInterface *parent);
37
38 virtual StatusCode initialize() override;
39
40 StatusCode createSeeds(const EventContext &ctx,
41 const std::vector<const xAOD::SpacePointContainer *>
42 &spacePointCollections,
43 const Eigen::Vector3f &beamSpotPos, float bFieldInZ,
44 ActsTrk::SeedContainer &seedContainer) const override;
45
46protected:
47 Gaudi::Property<bool> m_seedQualitySelection{
48 this, "doSeedQualitySelection", true,
49 "Select seed according to quality criteria"};
50
51 // Use spherical grid. Most of the configs are shared with Cylindrical
52 Gaudi::Property<bool> m_sphericalGrid{
53 this, "sphericalGrid", false,
54 "Use spherical grid instead of cylindrical grid for seeding"};
55
56 // Space point grid properties. Some are also used for the seed
57 // finder.
58 Gaudi::Property<float> m_minPt{this, "minPt", 900. * Acts::UnitConstants::MeV,
59 "lower pT cutoff for seeds"};
60 Gaudi::Property<float> m_cotThetaMax{this, "cotThetaMax", 27.2899,
61 "cot of maximum theta angle"};
62 Gaudi::Property<float> m_zMin{this, "zMin", -3000. * Acts::UnitConstants::mm,
63 "limiting location of measurements"};
64 Gaudi::Property<float> m_zMax{this, "zMax", 3000. * Acts::UnitConstants::mm,
65 "limiting location of measurements"};
66 // Spherical grid specialities
67 Gaudi::Property<float> m_etaMin{
68 this, "etaMin", -3., "Eta range minimum (for spherical grid only)"};
69 Gaudi::Property<float> m_etaMax{
70 this, "etaMax", 3., "Eta range maximum (for spherical grid only)"};
71 //
72 Gaudi::Property<float> m_deltaRMax{
73 this, "deltaRMax", 280. * Acts::UnitConstants::mm,
74 "maximum distance in r between two measurements within one "
75 "seed"};
76 Gaudi::Property<float> m_impactMax{this, "impactMax",
77 2. * Acts::UnitConstants::mm,
78 "maximum impact parameter"};
79 Gaudi::Property<std::vector<float>> m_zBinEdges{
80 this,
81 "zBinEdges",
82 {-3000., -2700., -2500., -1400., -925., -500., -250., 250., 500., 925.,
83 1400., 2500., 2700, 3000.},
84 "enable non equidistant binning in z"};
85 Gaudi::Property<std::vector<float>> m_etaBinEdges{
86 this,
87 "etaBinEdges",
88 {-3., -1.8, -0.6, 0.6, 1.8, 3.},
89 "enable non equidistant binning in eta (for spherical grid only)"};
90 Gaudi::Property<std::vector<float>> m_rBinEdges{
91 this,
92 "rBinEdges",
93 {0., 1100 * Acts::UnitConstants::mm},
94 "enable non equidistant binning in radius"};
95 Gaudi::Property<float> m_gridRMax{
96 this, "gridRMax", 320. * Acts::UnitConstants::mm,
97 "radial extension of subdetector to be used in grid building"};
98 Gaudi::Property<float> m_gridPhiMin{this, "gridPhiMin",
99 -std::numbers::pi_v<float>,
100 "phi min for space point grid formation"};
101 Gaudi::Property<float> m_gridPhiMax{this, "gridPhiMax",
102 std::numbers::pi_v<float>,
103 "phi max for space point grid formation"};
104 Gaudi::Property<int> m_phiBinDeflectionCoverage{
105 this, "phiBinDeflectionCoverage", 3,
106 "sets of consecutive phi bins to cover full deflection of minimum pT "
107 "particle"};
108 Gaudi::Property<int> m_maxPhiBins{this, "maxPhiBins", 200,
109 "max number of bins"};
110
111 // Seed finder properties. Some are also used for the seed filter.
112 Gaudi::Property<float> m_rMax{this, "rMax", 320. * Acts::UnitConstants::mm,
113 "limiting location of measurements"};
114 Gaudi::Property<float> m_binSizeR{
115 this, "binSizeR", 1. * Acts::UnitConstants::mm,
116 "defining radial bin for space point sorting"};
117 Gaudi::Property<float> m_deltaRMin{
118 this, "deltaRMin", 20. * Acts::UnitConstants::mm,
119 "minimum distance in r between two measurements within one "
120 "seed"};
121 Gaudi::Property<float> m_deltaRMinTopSP{
122 this, "deltaRMinTopSP", 6. * Acts::UnitConstants::mm,
123 "minimum distance in r between middle and top SP"};
124 Gaudi::Property<float> m_deltaRMaxTopSP{
125 this, "deltaRMaxTopSP", 280. * Acts::UnitConstants::mm,
126 "maximum distance in r between middle and top SP"};
127 Gaudi::Property<float> m_deltaRMinBottomSP{
128 this, "deltaRMinBottomSP", 6. * Acts::UnitConstants::mm,
129 "minimum distance in r between middle and top SP"};
130 Gaudi::Property<float> m_deltaRMaxBottomSP{
131 this, "deltaRMaxBottomSP", 150. * Acts::UnitConstants::mm,
132 "maximum distance in r between middle and top SP"};
133 Gaudi::Property<float> m_deltaZMax{
134 this, "deltaZMax", 600,
135 "maximum distance in z between two measurements within one seed"};
136 Gaudi::Property<float> m_collisionRegionMin{
137 this, "collisionRegionMin", -200. * Acts::UnitConstants::mm,
138 "limiting location of collision region in z"};
139 Gaudi::Property<float> m_collisionRegionMax{
140 this, "collisionRegionMax", 200. * Acts::UnitConstants::mm,
141 "limiting location of collision region in z"};
142 Gaudi::Property<bool> m_useHVCollisionRegion{
143 this, "useHVCollisionRegion", false,
144 "restrict collision region by Hough vertex position"};
145 Gaudi::Property<float> m_hvCollisionRegionTolerance{
146 this, "hvCollisionRegionTolerance", 10. * Acts::UnitConstants::mm,
147 "size of collision region when using Hough vertex"};
148 Gaudi::Property<float> m_sigmaScattering{
149 this, "sigmaScattering", 2.,
150 "how many sigmas of scattering angle should be considered"};
151 Gaudi::Property<float> m_maxPtScattering{
152 this, "maxPtScattering", 10e6,
153 "Upper pt limit for scattering calculation"};
154 Gaudi::Property<float> m_radLengthPerSeed{
155 this, "radLengthPerSeed", 0.098045,
156 "average radiation lengths of material on the length of a seed. used for "
157 "scattering"};
158 Gaudi::Property<int> m_maxSeedsPerSpM{
159 this, "maxSeedsPerSpM", 4,
160 "In dense environments many seeds may be found per middle space point. "
161 "Only seeds with the highest weight will be kept if this limit is "
162 "reached."};
163 Gaudi::Property<bool> m_interactionPointCut{
164 this, "interactionPointCut", true,
165 "Enable cut on the compatibility between interaction point and SPs"};
166 Gaudi::Property<std::vector<size_t>> m_zBinsCustomLooping{
167 this,
168 "zBinsCustomLooping",
169 {2, 3, 4, 5, 12, 11, 10, 9, 7, 6, 8},
170 "defines order of z bins for looping; entries are 1-based local bin "
171 "indices, i.e. within 1..(zBinEdges.size()-1), and must not repeat. "
172 "Listing a subset skips the remaining bins, empty means all bins in "
173 "their natural order"};
174 Gaudi::Property<std::vector<std::size_t>> m_rBinsCustomLooping{
175 this,
176 "rBinsCustomLooping",
177 {},
178 "defines order of r bins for looping; entries are 1-based local bin "
179 "indices, i.e. within 1..(rBinEdges.size()-1), and must not repeat. "
180 "Listing a subset skips the remaining bins, empty means all bins in "
181 "their natural order"};
182 Gaudi::Property<bool> m_useVariableMiddleSPRange{
183 this, "useVariableMiddleSPRange", true,
184 "Enable variable range to search for middle SPs"};
185 Gaudi::Property<std::vector<std::vector<double>>> m_rRangeMiddleSP{
186 this,
187 "rRangeMiddleSP",
188 {{40.0, 90.0},
189 {40.0, 90.0},
190 {40.0, 200.0},
191 {46.0, 200.0},
192 {46.0, 200.0},
193 {46.0, 250.0},
194 {46.0, 250.0},
195 {46.0, 250.0},
196 {46.0, 200.0},
197 {46.0, 200.0},
198 {40.0, 200.0},
199 {40.0, 90.0},
200 {40.0, 90.0}},
201 "radial range for middle SP"};
202 Gaudi::Property<float> m_deltaRMiddleMinSPRange{
203 this, "deltaRMiddleMinSPRange", 10., "delta R for middle SP range (min)"};
204 Gaudi::Property<float> m_deltaRMiddleMaxSPRange{
205 this, "deltaRMiddleMaxSPRange", 10., "delta R for middle SP range (max)"};
206 Gaudi::Property<bool> m_seedConfirmation{this, "seedConfirmation", true,
207 "run seed confirmation"};
208 Gaudi::Property<float> m_seedConfCentralZMin{
209 this, "seedConfCentralZMin", -250. * Acts::UnitConstants::mm,
210 "minimum z for central seed confirmation "};
211 Gaudi::Property<float> m_seedConfCentralZMax{
212 this, "seedConfCentralZMax", 250. * Acts::UnitConstants::mm,
213 "maximum z for central seed confirmation "};
214 Gaudi::Property<float> m_seedConfCentralRMax{
215 this, "seedConfCentralRMax", 140. * Acts::UnitConstants::mm,
216 "maximum r for central seed confirmation "};
217 Gaudi::Property<size_t> m_seedConfCentralNTopLargeR{
218 this, "seedConfCentralNTopLargeR", 1,
219 "nTop for large R central seed confirmation"};
220 Gaudi::Property<size_t> m_seedConfCentralNTopSmallR{
221 this, "seedConfCentralNTopSmallR", 2,
222 "nTop for small R central seed confirmation"};
223 Gaudi::Property<float> m_seedConfCentralMinBottomRadius{
224 this, "seedConfCentralMinBottomRadius", 60 * Acts::UnitConstants::mm,
225 "Minimum radius for bottom SP in seed confirmation"};
226 Gaudi::Property<float> m_seedConfCentralMaxZOrigin{
227 this, "seedConfCentralMaxZOrigin", 150 * Acts::UnitConstants::mm,
228 "Maximum zOrigin in seed confirmation"};
229 Gaudi::Property<float> m_seedConfCentralMinImpact{
230 this, "seedConfCentralMinImpact", 1. * Acts::UnitConstants::mm,
231 "Minimum impact parameter for seed confirmation"};
232 Gaudi::Property<float> m_seedConfForwardZMin{
233 this, "seedConfForwardZMin", -3000. * Acts::UnitConstants::mm,
234 "minimum z for forward seed confirmation "};
235 Gaudi::Property<float> m_seedConfForwardZMax{
236 this, "seedConfForwardZMax", 3000. * Acts::UnitConstants::mm,
237 "maximum z for forward seed confirmation "};
238 Gaudi::Property<float> m_seedConfForwardRMax{
239 this, "seedConfForwardRMax", 140. * Acts::UnitConstants::mm,
240 "maximum r for forward seed confirmation "};
241 Gaudi::Property<size_t> m_seedConfForwardNTopLargeR{
242 this, "seedConfForwardNTopLargeR", 1,
243 "nTop for large R forward seed confirmation"};
244 Gaudi::Property<size_t> m_seedConfForwardNTopSmallR{
245 this, "seedConfForwardNTopSmallR", 2,
246 "nTop for small R forward seed confirmation"};
247 Gaudi::Property<float> m_seedConfForwardMinBottomRadius{
248 this, "seedConfForwardMinBottomRadius", 60 * Acts::UnitConstants::mm,
249 "Minimum radius for bottom SP in seed confirmation"};
250 Gaudi::Property<float> m_seedConfForwardMaxZOrigin{
251 this, "seedConfForwardMaxZOrigin", 150 * Acts::UnitConstants::mm,
252 "Maximum zOrigin in seed confirmation"};
253 Gaudi::Property<float> m_seedConfForwardMinImpact{
254 this, "seedConfForwardMinImpact", 1. * Acts::UnitConstants::mm,
255 "Minimum impact parameter for seed confirmation"};
257 this, "useDetailedDoubleMeasurementInfo", false,
258 "enable use of double measurement details"};
259
260 Gaudi::Property<float> m_toleranceParam{
261 this, "toleranceParam", 1.1 * Acts::UnitConstants::mm,
262 "tolerance parameter used to check the compatibility of SPs coordinates "
263 "in xyz"};
264 Gaudi::Property<float> m_maxStripDeltaCotTheta{
265 this, "maxStripDeltaCotTheta", 1e10f,
266 "maximum allowed |cotTheta_bottom - cotTheta_top| pre-filter for strip "
267 "triplets before expensive coordinate checks"};
268
269 Gaudi::Property<float> m_phiMin{this, "phiMin", -std::numbers::pi_v<float>,
270 ""};
271 Gaudi::Property<float> m_phiMax{this, "phiMax", std::numbers::pi_v<float>,
272 ""};
273 Gaudi::Property<float> m_rMin{this, "rMin", 0 * Acts::UnitConstants::mm, ""};
274 Gaudi::Property<float> m_zAlign{this, "zAlign", 0 * Acts::UnitConstants::mm,
275 ""};
276 Gaudi::Property<float> m_rAlign{this, "rAlign", 0 * Acts::UnitConstants::mm,
277 ""};
278 Gaudi::Property<float> m_sigmaError{this, "sigmaError", 5, ""};
279
280 // Seed filter properties
281 Gaudi::Property<float> m_impactWeightFactor{
282 this, "impactWeightFactor", 100.,
283 "the impact parameters (d0) is multiplied by this factor and subtracted "
284 "from weight"};
285 Gaudi::Property<float> m_zOriginWeightFactor{this, "zOriginWeightFactor", 1.};
286 Gaudi::Property<float> m_compatSeedWeight{
287 this, "compatSeedWeight", 100.,
288 "seed weight increased by this value if a compatible seed has been "
289 "found"};
290 Gaudi::Property<std::size_t> m_compatSeedLimit{
291 this, "compatSeedLimit", 3,
292 "how often do you want to increase the weight of a seed for finding a "
293 "compatible seed"};
294 Gaudi::Property<float> m_seedWeightIncrement{
295 this, "seedWeightIncrement", 0., "increment in seed weight if needed"};
296 Gaudi::Property<float> m_numSeedIncrement{
297 this, "numSeedIncrement", 10e6,
298 "increment in seed weight is applied if the number of compatible seeds "
299 "is larger than numSeedIncrement"};
300 Gaudi::Property<bool> m_seedConfirmationInFilter{
301 this, "seedConfirmationInFilter", true, "run seed confirmation"};
302 Gaudi::Property<std::size_t> m_maxSeedsPerSpMConf{
303 this, "maxSeedsPerSpMConf", 5,
304 "Maximum number of lower quality seeds in seed confirmation."};
305 Gaudi::Property<std::size_t> m_maxQualitySeedsPerSpMConf{
306 this, "maxQualitySeedsPerSpMConf", 5,
307 "Maximum number of quality seeds for each middle-bottom SP-duplet in "
308 "seed confirmation."};
309 Gaudi::Property<bool> m_useDeltaRorTopRadius{
310 this, "useDeltaRorTopRadius", true,
311 "use deltaR (top radius - middle radius) instead of top radius"};
312 Gaudi::Property<float> m_deltaInvHelixDiameter{
313 this, "deltaInvHelixDiameter", 0.00003 * 1. / Acts::UnitConstants::mm,
314 "the allowed delta between two inverted seed radii for them to be "
315 "considered compatible"};
316 Gaudi::Property<float> m_absDeltaEtaWeightFactor{
317 this, "absDeltaEtaWeightFactor", 0.,
318 "weight factor for abs(delta-eta) penalty between seed direction and "
319 "beamspot-to-PCA direction (0 = disabled, typical LRT value: 10)"};
320 Gaudi::Property<float> m_absDeltaEtaMinImpact{
321 this, "absDeltaEtaMinImpact", 2. * Acts::UnitConstants::mm,
322 "minimum impact parameter to apply abs(delta-eta) weight"};
323
324 // Properties to set other objects used in seeding algorithm
325 Gaudi::Property<std::vector<std::pair<int, int>>> m_zBinNeighborsTop{
326 this,
327 "zBinNeighborsTop",
328 {{0, 0},
329 {-1, 0},
330 {-2, 0},
331 {-1, 0},
332 {-1, 0},
333 {-1, 0},
334 {-1, 1},
335 {0, 1},
336 {0, 1},
337 {0, 1},
338 {0, 2},
339 {0, 1},
340 {0, 0}},
341 "vector containing the map of z bins in the top layers"};
342 Gaudi::Property<std::vector<std::pair<int, int>>> m_zBinNeighborsBottom{
343 this,
344 "zBinNeighborsBottom",
345 {{0, 0},
346 {0, 1},
347 {0, 1},
348 {0, 1},
349 {0, 1},
350 {0, 1},
351 {0, 0},
352 {-1, 0},
353 {-1, 0},
354 {-1, 0},
355 {-1, 0},
356 {-1, 0},
357 {0, 0}},
358 "vector containing the map of z bins in the top layers"};
359
360 Gaudi::Property<int> m_numEtaNeighbors{
361 this, "numPhiNeighbors", 0,
362 "number of eta bin neighbors at each side of the current bin that will "
363 "be used to search for SPs"};
364
365 Gaudi::Property<std::vector<std::pair<int, int>>> m_rBinNeighborsTop{
366 this,
367 "rBinNeighborsTop",
368 {{0, 0}},
369 "vector containing the map of radius bins in the top layers"};
370 Gaudi::Property<std::vector<std::pair<int, int>>> m_rBinNeighborsBottom{
371 this,
372 "rBinNeighborsBottom",
373 {{0, 0}},
374 "vector containing the map of radius bins in the bottom layers"};
375 Gaudi::Property<int> m_numPhiNeighbors{
376 this, "numPhiNeighbors", 1,
377 "number of phi bin neighbors at each side of the current bin that will "
378 "be used to search for SPs"};
379
380 Gaudi::Property<bool> m_useExperimentCuts{this, "useExperimentCuts", false,
381 ""};
382
383 // per-pair azimuthal-swing doublet cut (displaced-aware, same physics as
384 // the GBTS phi window): independent of useExperimentCuts so that the
385 // pixel-specific experiment cuts stay off for strip instances
386 Gaudi::Property<bool> m_doubletDPhiCut{
387 this, "doubletDPhiCut", false,
388 "apply the per-pair azimuthal-swing doublet cut"};
389 Gaudi::Property<float> m_doubletDPhiD0Max{
390 this, "doubletDPhiD0Max", -1.,
391 "impact parameter bounding the doublet phi swing; negative uses "
392 "impactMax"};
393 Gaudi::Property<float> m_doubletDPhiCap{
394 this, "doubletDPhiCap", 10., "cap on the displaced phi-swing term [rad]"};
395 Gaudi::Property<float> m_doubletDPhiConst{
396 this, "doubletDPhiConst", 0.015,
397 "constant term of the prompt doublet phi window [rad]"};
398 Gaudi::Property<float> m_doubletDPhiSlope{
399 this, "doubletDPhiSlope", 2.0e-4,
400 "curvature term of the prompt doublet phi window [rad/mm]"};
401
402 Gaudi::Property<int> m_stateVectorReserveSize{
403 this, "stateVectorReserveSize", 500,
404 "Size of the initial Seeding State internal vectors"};
405
406 Gaudi::Property<float> m_expCutrMin{this, "SpSelectionExpCutrMin",
407 45. * Acts::UnitConstants::mm};
408
409private:
410 std::variant<Acts::CylindricalSpacePointGrid::Config,
411 Acts::Experimental::SphericalSpacePointGrid::Config>
413 Acts::DoubletSeedFinder::Config m_bottomDoubletFinderCfg;
414 Acts::DoubletSeedFinder::Config m_topDoubletFinderCfg;
415 Acts::TripletSeedFinder::Config m_tripletFinderCfg;
416 Acts::BroadTripletSeedFilter::Config m_filterCfg;
417
418 std::optional<Acts::TripletSeeder> m_finder;
419
421 std::unique_ptr<const Acts::Logger> m_logger;
422 std::unique_ptr<const Acts::Logger> m_loggerFilter;
423
424 const PixelID *m_pixelId{nullptr};
425
427 const Acts::Logger &logger() const { return *m_logger; }
428
429 bool spacePointSelectionFunction(const xAOD::SpacePoint *sp, float r) const;
430
433 bool doubletSelectionFunction(const std::vector<float> &spPhi,
434 const std::vector<float> &spAsinD0OverR,
435 const Acts::ConstSpacePointProxy &middle,
436 const Acts::ConstSpacePointProxy &other,
437 float cotTheta, bool isBottomCandidate) const;
438
439 std::pair<float, float> retrieveRadiusRangeForMiddle(
440 const Acts::ConstSpacePointProxy &spM,
441 const Acts::Range1D<float> &rMiddleSpRange) const;
442
443 template <typename GridType>
444 StatusCode createSeedsImpl(const EventContext &ctx,
445 const std::vector<const xAOD::SpacePointContainer *>
446 &spacePointCollections,
447 const Eigen::Vector3f &beamSpotPos, float bFieldInZ,
448 ActsTrk::SeedContainer &seedContainer,
449 GridType::Config gridCfg) const;
450
452 this, "inputHoughVtx", "", "input vertex container"};
453
454};
455
456} // namespace ActsTrk
457
458#endif
static Double_t sp
This is an Identifier helper class for the Pixel subdetector.
Property holding a SG store/key/clid from which a ReadHandle is made.
bool spacePointSelectionFunction(const xAOD::SpacePoint *sp, float r) const
Acts::TripletSeedFinder::Config m_tripletFinderCfg
Gaudi::Property< bool > m_useDeltaRorTopRadius
Gaudi::Property< bool > m_seedQualitySelection
Gaudi::Property< float > m_seedConfForwardMinImpact
Acts::DoubletSeedFinder::Config m_bottomDoubletFinderCfg
Gaudi::Property< std::vector< std::pair< int, int > > > m_rBinNeighborsTop
Gaudi::Property< float > m_impactWeightFactor
Acts::DoubletSeedFinder::Config m_topDoubletFinderCfg
Gaudi::Property< float > m_collisionRegionMax
Gaudi::Property< float > m_seedConfCentralMinBottomRadius
std::optional< Acts::TripletSeeder > m_finder
Gaudi::Property< int > m_phiBinDeflectionCoverage
Gaudi::Property< float > m_zOriginWeightFactor
Gaudi::Property< std::size_t > m_maxSeedsPerSpMConf
Gaudi::Property< float > m_maxPtScattering
Gaudi::Property< bool > m_useVariableMiddleSPRange
Gaudi::Property< std::vector< float > > m_etaBinEdges
Gaudi::Property< float > m_toleranceParam
Gaudi::Property< float > m_maxStripDeltaCotTheta
StatusCode createSeeds(const EventContext &ctx, const std::vector< const xAOD::SpacePointContainer * > &spacePointCollections, const Eigen::Vector3f &beamSpotPos, float bFieldInZ, ActsTrk::SeedContainer &seedContainer) const override
Gaudi::Property< float > m_deltaRMaxBottomSP
Gaudi::Property< float > m_seedConfForwardMinBottomRadius
Gaudi::Property< float > m_compatSeedWeight
Gaudi::Property< std::vector< std::vector< double > > > m_rRangeMiddleSP
Gaudi::Property< float > m_deltaRMinTopSP
Gaudi::Property< float > m_seedConfForwardZMin
Gaudi::Property< float > m_doubletDPhiSlope
Gaudi::Property< bool > m_sphericalGrid
Acts::BroadTripletSeedFilter::Config m_filterCfg
Gaudi::Property< std::vector< std::pair< int, int > > > m_rBinNeighborsBottom
std::variant< Acts::CylindricalSpacePointGrid::Config, Acts::Experimental::SphericalSpacePointGrid::Config > m_gridCfg
Gaudi::Property< bool > m_useDetailedDoubleMeasurementInfo
Gaudi::Property< std::vector< std::pair< int, int > > > m_zBinNeighborsBottom
Gaudi::Property< float > m_gridPhiMin
std::pair< float, float > retrieveRadiusRangeForMiddle(const Acts::ConstSpacePointProxy &spM, const Acts::Range1D< float > &rMiddleSpRange) const
Gaudi::Property< bool > m_interactionPointCut
Gaudi::Property< size_t > m_seedConfCentralNTopSmallR
Gaudi::Property< std::vector< float > > m_rBinEdges
Gaudi::Property< float > m_seedConfForwardRMax
Gaudi::Property< float > m_doubletDPhiCap
Gaudi::Property< float > m_deltaRMiddleMaxSPRange
GridTripletSeedingTool(const std::string &type, const std::string &name, const IInterface *parent)
Gaudi::Property< bool > m_useHVCollisionRegion
Gaudi::Property< std::vector< std::pair< int, int > > > m_zBinNeighborsTop
Gaudi::Property< float > m_deltaInvHelixDiameter
Gaudi::Property< float > m_collisionRegionMin
Gaudi::Property< float > m_seedConfCentralMaxZOrigin
Gaudi::Property< float > m_seedConfCentralMinImpact
Gaudi::Property< std::size_t > m_maxQualitySeedsPerSpMConf
Gaudi::Property< std::vector< float > > m_zBinEdges
Gaudi::Property< bool > m_seedConfirmation
Gaudi::Property< float > m_seedConfForwardMaxZOrigin
Gaudi::Property< float > m_hvCollisionRegionTolerance
Gaudi::Property< float > m_doubletDPhiD0Max
Gaudi::Property< float > m_seedWeightIncrement
Gaudi::Property< float > m_radLengthPerSeed
Gaudi::Property< float > m_absDeltaEtaMinImpact
Gaudi::Property< float > m_absDeltaEtaWeightFactor
Gaudi::Property< float > m_cotThetaMax
Gaudi::Property< float > m_deltaRMinBottomSP
StatusCode createSeedsImpl(const EventContext &ctx, const std::vector< const xAOD::SpacePointContainer * > &spacePointCollections, const Eigen::Vector3f &beamSpotPos, float bFieldInZ, ActsTrk::SeedContainer &seedContainer, GridType::Config gridCfg) const
Gaudi::Property< size_t > m_seedConfCentralNTopLargeR
Gaudi::Property< int > m_stateVectorReserveSize
virtual StatusCode initialize() override
Gaudi::Property< float > m_deltaRMiddleMinSPRange
Gaudi::Property< float > m_seedConfForwardZMax
Gaudi::Property< bool > m_seedConfirmationInFilter
Gaudi::Property< std::vector< std::size_t > > m_rBinsCustomLooping
const Acts::Logger & logger() const
Private access to the logger.
Gaudi::Property< float > m_seedConfCentralRMax
std::unique_ptr< const Acts::Logger > m_logger
logging instance
Gaudi::Property< float > m_sigmaScattering
std::unique_ptr< const Acts::Logger > m_loggerFilter
Gaudi::Property< std::vector< size_t > > m_zBinsCustomLooping
Gaudi::Property< float > m_seedConfCentralZMax
bool doubletSelectionFunction(const std::vector< float > &spPhi, const std::vector< float > &spAsinD0OverR, const Acts::ConstSpacePointProxy &middle, const Acts::ConstSpacePointProxy &other, float cotTheta, bool isBottomCandidate) const
doublet selection which caches per SP phi and asin(d0/r) values for the middle and other SPs
Gaudi::Property< float > m_deltaRMaxTopSP
Gaudi::Property< std::size_t > m_compatSeedLimit
Gaudi::Property< size_t > m_seedConfForwardNTopSmallR
SG::ReadHandleKey< xAOD::VertexContainer > m_inputHoughVtxKey
Gaudi::Property< float > m_seedConfCentralZMin
Gaudi::Property< bool > m_useExperimentCuts
Gaudi::Property< float > m_numSeedIncrement
Gaudi::Property< float > m_doubletDPhiConst
Gaudi::Property< size_t > m_seedConfForwardNTopLargeR
This is an Identifier helper class for the Pixel subdetector.
Definition PixelID.h:69
Property holding a SG store/key/clid from which a ReadHandle is made.
int r
Definition globals.cxx:22
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...