ATLAS Offline Software
SeedingTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ACTSTRKSEEDINGTOOL_SEEDINGTOOL_H
6 #define ACTSTRKSEEDINGTOOL_SEEDINGTOOL_H
7 
8 
9 
10 // gcc12 gives false positive warnings from copying boost::small_vector.
11 #if __GNUC__ >= 12
12 # pragma GCC diagnostic ignored "-Wstringop-overread"
13 #endif
14 
15 // Super-nasty hack to work round explicit uses of Acts::Seed in Acts Core Seeding.
16 // A better fix would be to change Acts::Seed to the templates that are used elsewhere in Acts Core.
17 // The even better fix would be to change Acts::Seed to support more than 3 SPs/seed.
18 #include "Acts/EventData/Seed.hpp"
19 #include "ActsEvent/Seed.h"
20 namespace Acts {
21  template <typename external_spacepoint_t, std::size_t N = 3ul>
23 }
24 
25 #define Seed AthenaSeed
26 #include "Acts/Seeding/SeedFinder.hpp"
27 #include "Acts/Seeding/SeedFilter.hpp"
28 #undef Seed
29 
30 // ATHENA
33 #include "ActsInterop/Logger.h"
35 
36 // ACTS CORE
37 #include "Acts/Definitions/Units.hpp"
38 #include "Acts/Definitions/Common.hpp"
39 #include "Acts/Definitions/Algebra.hpp"
40 #include "Acts/Seeding/SpacePointGrid.hpp"
41 #include "Acts/Utilities/GridBinFinder.hpp"
42 #include "Acts/Seeding/BinnedGroup.hpp"
43 #include "Acts/Seeding/SeedFinderConfig.hpp"
44 #include "Acts/Seeding/SeedFilterConfig.hpp"
45 #include "Acts/EventData/Seed.hpp"
46 
48 
49 #include <numbers>
50 
51 namespace ActsTrk {
52 
53  class SeedingTool :
54  public extends<AthAlgTool, ActsTrk::ISeedingTool> {
55  public:
56  using value_type = typename Acts::SpacePointContainer<ActsTrk::SpacePointCollector, Acts::detail::RefHolder>::SpacePointProxyType;
58  using external_type = typename std::conditional<
61  typename value_type::ValueType
62  >::type;
63 
64 
65  SeedingTool(const std::string& type,
66  const std::string& name,
67  const IInterface* parent);
68  virtual ~SeedingTool() = default;
69 
70  virtual StatusCode initialize() override;
71 
72  // Interface
73  virtual StatusCode
74  createSeeds(const EventContext& ctx,
75  const Acts::SpacePointContainer<ActsTrk::SpacePointCollector, Acts::detail::RefHolder>& spContainer,
76  const Acts::Vector3& beamSpotPos,
77  const Acts::Vector3& bField,
78  ActsTrk::SeedContainer& seedContainer ) const override;
79  protected:
80  // metafunction to obtain correct type in iterated container given the iterator type
81  template<typename spacepoint_iterator_t>
83  using type = typename std::conditional<
87  >::type;
88  };
89 
90  template< typename external_iterator_t >
92  createSeeds( external_iterator_t spBegin,
93  external_iterator_t spEnd,
94  const Acts::Vector3& beamSpotPos,
95  const Acts::Vector3& bField,
97 
99 
100  // *********************************************************************
101  // *********************************************************************
102 
103  protected:
104 
105  const PixelID* m_pixelId{ nullptr };
106 
107  Acts::SeedFinder< value_type, Acts::CylindricalSpacePointGrid<value_type> > m_finder;
108  Acts::SeedFinderConfig< value_type > m_finderCfg;
109  Acts::CylindricalSpacePointGridConfig m_gridCfg;
110 
111  // See quality selection
112  Gaudi::Property< bool > m_seedQualitySelection {this, "doSeedQualitySelection", true,
113  "Select seed according to quality criteria"};
114 
115  // Properties to set SpacePointGridConfig
116  Gaudi::Property< float > m_minPt {this, "minPt", 900. * Acts::UnitConstants::MeV,
117  "lower pT cutoff for seeds"}; // Used in SeedfinderConfig as well
118  Gaudi::Property< float > m_cotThetaMax {this, "cotThetaMax", 27.2899,
119  "cot of maximum theta angle"}; // Used in SeedfinderConfig as well
120  Gaudi::Property< float > m_zMin {this, "zMin", -3000. * Acts::UnitConstants::mm,
121  "limiting location of measurements"}; // Used in SeedfinderConfig as well
122  Gaudi::Property< float > m_zMax {this, "zMax", 3000. * Acts::UnitConstants::mm,
123  "limiting location of measurements"}; // Used in SeedfinderConfig as well
124  Gaudi::Property< float > m_deltaRMax {this, "deltaRMax", 280. * Acts::UnitConstants::mm,
125  "maximum distance in r between two measurements within one seed"}; // Used in SeedfinderConfig as well
126  Gaudi::Property< float > m_impactMax {this, "impactMax", 2. * Acts::UnitConstants::mm,
127  "maximum impact parameter"}; // Used in SeedfinderConfig as well
128  Gaudi::Property< std::vector< float > > m_zBinEdges {this, "zBinEdges",
129  {-3000., -2700., -2500., -1400., -925., -500., -250., 250., 500., 925., 1400., 2500., 2700, 3000.},
130  "enable non equidistant binning in z"}; // Used in SeedfinderConfig as well
131  Gaudi::Property< std::vector< float > > m_rBinEdges {this, "rBinEdges", {0., 1100 * Acts::UnitConstants::mm},
132  "enable non equidistant binning in radius"};
133  Gaudi::Property< float > m_gridRMax {this, "gridRMax", 320. * Acts::UnitConstants::mm,
134  "radial extension of subdetector to be used in grid building"};
135  Gaudi::Property< float > m_gridPhiMin {this, "gridPhiMin", -std::numbers::pi_v<float>,
136  "phi min for space point grid formation"};
137  Gaudi::Property< float > m_gridPhiMax {this, "gridPhiMax", std::numbers::pi_v<float>,
138  "phi max for space point grid formation"};
139  Gaudi::Property< int > m_phiBinDeflectionCoverage {this, "phiBinDeflectionCoverage", 3,
140  "sets of consecutive phi bins to cover full deflection of minimum pT particle"};
141  Gaudi::Property< int > m_maxPhiBins {this, "maxPhiBins", 200, "max number of bins"};
142 
143  // Properties to set SeedfinderConfig
144  Gaudi::Property< float > m_rMax {this, "rMax", 320. * Acts::UnitConstants::mm,
145  "limiting location of measurements"};
146  Gaudi::Property< float > m_binSizeR {this, "binSizeR", 1. * Acts::UnitConstants::mm,
147  "defining radial bin for space point sorting"};
148  Gaudi::Property< float > m_deltaRMin {this, "deltaRMin", 20. * Acts::UnitConstants::mm,
149  "minimum distance in r between two measurements within one seed"}; // Used in SeedFilterConfig as well
150  Gaudi::Property< float > m_deltaRMinTopSP {this, "deltaRMinTopSP", 6. * Acts::UnitConstants::mm,
151  "minimum distance in r between middle and top SP"};
152  Gaudi::Property< float > m_deltaRMaxTopSP {this, "deltaRMaxTopSP", 280. * Acts::UnitConstants::mm,
153  "maximum distance in r between middle and top SP"};
154  Gaudi::Property< float > m_deltaRMinBottomSP {this, "deltaRMinBottomSP", 6. * Acts::UnitConstants::mm,
155  "minimum distance in r between middle and top SP"};
156  Gaudi::Property< float > m_deltaRMaxBottomSP {this, "deltaRMaxBottomSP", 150. * Acts::UnitConstants::mm,
157  "maximum distance in r between middle and top SP"};
158  Gaudi::Property< float > m_deltaZMax {this, "deltaZMax", 600,
159  "maximum distance in z between two measurements within one seed"};
160  Gaudi::Property< float > m_collisionRegionMin {this, "collisionRegionMin", -200. * Acts::UnitConstants::mm,
161  "limiting location of collision region in z"};
162  Gaudi::Property< float > m_collisionRegionMax {this, "collisionRegionMax", 200. * Acts::UnitConstants::mm,
163  "limiting location of collision region in z"};
164  Gaudi::Property< float > m_sigmaScattering {this, "sigmaScattering", 2.,
165  "how many sigmas of scattering angle should be considered"};
166  Gaudi::Property< float > m_maxPtScattering {this, "maxPtScattering", 10e6,
167  "Upper pt limit for scattering calculation"};
168  Gaudi::Property< float > m_radLengthPerSeed {this, "radLengthPerSeed", 0.098045,
169  "average radiation lengths of material on the length of a seed. used for scattering"};
170  Gaudi::Property< int > m_maxSeedsPerSpM {this, "maxSeedsPerSpM", 4,
171  "In dense environments many seeds may be found per middle space point. Only seeds with the highest weight will be kept if this limit is reached."}; // Used in SeedFilterConfig as well
172  Gaudi::Property< bool > m_interactionPointCut {this, "interactionPointCut", true,
173  "Enable cut on the compatibility between interaction point and SPs"};
174  Gaudi::Property< std::vector< size_t > > m_zBinsCustomLooping {this, "zBinsCustomLooping",
175  {2, 3, 4, 5, 12, 11, 10, 9, 7, 6, 8} , "defines order of z bins for looping"};
176  Gaudi::Property< std::vector<std::size_t> > m_rBinsCustomLooping {this, "rBinsCustomLooping", {1},
177  "defines order of r bins for looping"};
178  Gaudi::Property< bool > m_useVariableMiddleSPRange {this, "useVariableMiddleSPRange", true,
179  "Enable variable range to search for middle SPs"};
180  Gaudi::Property< std::vector<std::vector<double>> > m_rRangeMiddleSP {this, "rRangeMiddleSP",
181  {{40.0, 90.0}, {40.0, 90.0}, {40.0, 200.0}, {46.0, 200.0}, {46.0, 200.0}, {46.0, 250.0}, {46.0, 250.0}, {46.0, 250.0}, {46.0, 200.0}, {46.0, 200.0}, {40.0, 200.0}, {40.0, 90.0}, {40.0, 90.0}},
182  "radial range for middle SP"};
183  Gaudi::Property< float > m_deltaRMiddleMinSPRange {this, "deltaRMiddleMinSPRange", 10.,
184  "delta R for middle SP range (min)"};
185  Gaudi::Property< float > m_deltaRMiddleMaxSPRange {this, "deltaRMiddleMaxSPRange", 10.,
186  "delta R for middle SP range (max)"};
187  Gaudi::Property< bool > m_seedConfirmation {this, "seedConfirmation", true,
188  "run seed confirmation"};
189  Gaudi::Property< float > m_seedConfCentralZMin {this, "seedConfCentralZMin", -250. * Acts::UnitConstants::mm,
190  "minimum z for central seed confirmation "};
191  // Used in SeedFilterConfig as well
192  Gaudi::Property< float > m_seedConfCentralZMax {this, "seedConfCentralZMax", 250. * Acts::UnitConstants::mm,
193  "maximum z for central seed confirmation "};
194  // Used in SeedFilterConfig as well
195  Gaudi::Property< float > m_seedConfCentralRMax {this, "seedConfCentralRMax", 140. * Acts::UnitConstants::mm,
196  "maximum r for central seed confirmation "};
197  // Used in SeedFilterConfig as well
198  Gaudi::Property< size_t > m_seedConfCentralNTopLargeR {this, "seedConfCentralNTopLargeR", 1,
199  "nTop for large R central seed confirmation"};
200  // Used in SeedFilterConfig as well
201  Gaudi::Property< size_t > m_seedConfCentralNTopSmallR {this, "seedConfCentralNTopSmallR", 2,
202  "nTop for small R central seed confirmation"};
203  // Used in SeedFilterConfig as well
204  Gaudi::Property< float > m_seedConfCentralMinBottomRadius {this, "seedConfCentralMinBottomRadius", 60 * Acts::UnitConstants::mm,
205  "Minimum radius for bottom SP in seed confirmation"};
206  // Used in SeedFilterConfig as well
207  Gaudi::Property< float > m_seedConfCentralMaxZOrigin {this, "seedConfCentralMaxZOrigin", 150 * Acts::UnitConstants::mm,
208  "Maximum zOrigin in seed confirmation"};
209  // Used in SeedFilterConfig as well
210  Gaudi::Property< float > m_seedConfCentralMinImpact {this, "seedConfCentralMinImpact", 1. * Acts::UnitConstants::mm,
211  "Minimum impact parameter for seed confirmation"};
212  // Used in SeedFilterConfig as well
213  Gaudi::Property< float > m_seedConfForwardZMin {this, "seedConfForwardZMin", -3000. * Acts::UnitConstants::mm,
214  "minimum z for forward seed confirmation "};
215  // Used in SeedFilterConfig as well
216  Gaudi::Property< float > m_seedConfForwardZMax {this, "seedConfForwardZMax", 3000. * Acts::UnitConstants::mm,
217  "maximum z for forward seed confirmation "};
218  // Used in SeedFilterConfig as well
219  Gaudi::Property< float > m_seedConfForwardRMax {this, "seedConfForwardRMax", 140. * Acts::UnitConstants::mm,
220  "maximum r for forward seed confirmation "};
221  // Used in SeedFilterConfig as well
222  Gaudi::Property< size_t > m_seedConfForwardNTopLargeR {this, "seedConfForwardNTopLargeR", 1,
223  "nTop for large R forward seed confirmation"};
224  // Used in SeedFilterConfig as well
225  Gaudi::Property< size_t > m_seedConfForwardNTopSmallR {this, "seedConfForwardNTopSmallR", 2,
226  "nTop for small R forward seed confirmation"};
227  // Used in SeedFilterConfig as well
228  Gaudi::Property< float > m_seedConfForwardMinBottomRadius {this, "seedConfForwardMinBottomRadius", 60 * Acts::UnitConstants::mm,
229  "Minimum radius for bottom SP in seed confirmation"};
230  // Used in SeedFilterConfig as well
231  Gaudi::Property< float > m_seedConfForwardMaxZOrigin {this, "seedConfForwardMaxZOrigin", 150 * Acts::UnitConstants::mm,
232  "Maximum zOrigin in seed confirmation"};
233  // Used in SeedFilterConfig as well
234  Gaudi::Property< float > m_seedConfForwardMinImpact {this, "seedConfForwardMinImpact", 1. * Acts::UnitConstants::mm,
235  "Minimum impact parameter for seed confirmation"};
236  // Used in SeedFilterConfig as well
237  Gaudi::Property< bool > m_useDetailedDoubleMeasurementInfo {this, "useDetailedDoubleMeasurementInfo", false,
238  "enable use of double measurement details"};
239 
240  Gaudi::Property<float> m_toleranceParam {this, "toleranceParam", 1.1 * Acts::UnitConstants::mm,
241  "tolerance parameter used to check the compatibility of SPs coordinates in xyz"};
242  Gaudi::Property<float> m_phiMin {this, "phiMin", -std::numbers::pi_v<float>, ""};
243  Gaudi::Property<float> m_phiMax {this, "phiMax", std::numbers::pi_v<float>, ""};
244  Gaudi::Property<float> m_rMin {this, "rMin", 0 * Acts::UnitConstants::mm, ""};
245  Gaudi::Property<float> m_zAlign {this, "zAlign", 0 * Acts::UnitConstants::mm, ""};
246  Gaudi::Property<float> m_rAlign {this, "rAlign", 0 * Acts::UnitConstants::mm, ""};
247  Gaudi::Property<float> m_sigmaError {this, "sigmaError", 5, ""};
248 
249  // Properties to set SeedFilterConfig
250  Gaudi::Property< float > m_impactWeightFactor {this, "impactWeightFactor", 100.,
251  "the impact parameters (d0) is multiplied by this factor and subtracted from weight"};
252  Gaudi::Property< float > m_zOriginWeightFactor {this, "zOriginWeightFactor", 1.};
253  Gaudi::Property< float > m_compatSeedWeight {this, "compatSeedWeight", 100.,
254  "seed weight increased by this value if a compatible seed has been found"};
255  Gaudi::Property< std::size_t > m_compatSeedLimit {this, "compatSeedLimit", 3,
256  "how often do you want to increase the weight of a seed for finding a compatible seed"};
257  Gaudi::Property< float > m_seedWeightIncrement {this, "seedWeightIncrement", 0.,
258  "increment in seed weight if needed"};
259  Gaudi::Property< float > m_numSeedIncrement {this, "numSeedIncrement", 10e6,
260  "increment in seed weight is applied if the number of compatible seeds is larger than numSeedIncrement"};
261  Gaudi::Property< bool > m_seedConfirmationInFilter {this, "seedConfirmationInFilter", true,
262  "run seed confirmation"};
263  Gaudi::Property< std::size_t > m_maxSeedsPerSpMConf {this, "maxSeedsPerSpMConf", 5,
264  "Maximum number of lower quality seeds in seed confirmation."};
265  Gaudi::Property< std::size_t > m_maxQualitySeedsPerSpMConf {this, "maxQualitySeedsPerSpMConf", 5,
266  "Maximum number of quality seeds for each middle-bottom SP-duplet in seed confirmation."};
267  Gaudi::Property< bool > m_useDeltaRorTopRadius {this, "useDeltaRorTopRadius", true,
268  "use deltaR (top radius - middle radius) instead of top radius"};
269  Gaudi::Property<float> m_deltaInvHelixDiameter {this, "deltaInvHelixDiameter", 0.00003 * 1. / Acts::UnitConstants::mm,
270  "the allowed delta between two inverted seed radii for them to be considered compatible"};
271 
272  // Properties to set other objects used in
273  // seeding algorithm
274  Gaudi::Property< std::vector<std::pair<int, int>> > m_zBinNeighborsTop{this,
275  "zBinNeighborsTop",
276  {{0, 0}, {-1, 0}, {-2, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 2} , {0, 1}, {0, 0}},
277  "vector containing the map of z bins in the top layers"};
278  Gaudi::Property< std::vector<std::pair<int, int>> > m_zBinNeighborsBottom{this, "zBinNeighborsBottom",
279  {{0, 0}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {0, 0}},
280  "vector containing the map of z bins in the top layers"};
281  Gaudi::Property< std::vector<std::pair<int, int>> > m_rBinNeighborsTop{this, "rBinNeighborsTop", {{0, 0}},
282  "vector containing the map of radius bins in the top layers"};
283  Gaudi::Property< std::vector<std::pair<int, int>> > m_rBinNeighborsBottom{this, "rBinNeighborsBottom", {{0, 0}},
284  "vector containing the map of radius bins in the bottom layers"};
285  Gaudi::Property< int > m_numPhiNeighbors {this, "numPhiNeighbors", 1,
286  "number of phi bin neighbors at each side of the current bin that will be used to search for SPs"};
287 
288  Gaudi::Property< bool > m_useExperimentCuts {this, "useExperimentCuts", false, ""};
289 
290  Gaudi::Property< int > m_stateVectorReserveSize {this, "stateVectorReserveSize", 500, "Size of the initial Seeding State internal vectors"};
291 
292  private:
293  std::unique_ptr< Acts::GridBinFinder< 3ul > > m_bottomBinFinder{nullptr};
294  std::unique_ptr< Acts::GridBinFinder< 3ul > > m_topBinFinder{nullptr};
295 
296  std::array<std::vector<std::size_t>, 3ul> m_navigation{};
297 
299  const Acts::Logger &logger() const { return *m_logger; }
301  std::unique_ptr<const Acts::Logger> m_logger {nullptr};
302 
303  // A conservative guess of the size of the vectors needed for seeding
304 
305  Gaudi::Property<float> m_ExpCutrMin {this, "SpSelectionExpCutrMin", 45. * Acts::UnitConstants::mm};
306 
307  inline bool spacePointSelectionFunction(const value_type& sp) const {
308 
309  float r = sp.radius();
310  float zabs = std::abs(sp.z());
311  float absCotTheta = zabs / r;
312 
313  // checking configuration to remove pixel space points
314  Identifier identifier = m_pixelId->wafer_id(sp.externalSpacePoint().elementIdList().at(0));
316  if (zabs > 200 and
317  r < 40)
318  return false;
319 
320  return true;
321  }
322 
323  // Inner layers
324  // Below 1.20 - accept all
325  static constexpr float cotThetaEta120 = 1.5095;
326  if (absCotTheta < cotThetaEta120)
327  return true;
328 
329  // Below 3.40 - remove if too close to beamline
330  static constexpr float cotThetaEta340 = 14.9654;
331  if (absCotTheta < cotThetaEta340 and
332  r < m_ExpCutrMin)
333  return false;
334 
335 
336  // Outer layers
337  // Above 2.20
338  static constexpr float cotThetaEta220 = 4.4571;
339  if (absCotTheta > cotThetaEta220 and
340  r > 260.)
341  return false;
342 
343  // Above 2.60
344  static constexpr float cotThetaEta260 = 6.6947;
345  if (absCotTheta > cotThetaEta260 and
346  r > 200.)
347  return false;
348 
349  // Above 3.20
350  static constexpr float cotThetaEta320 = 12.2459;
351  if (absCotTheta > cotThetaEta320 and
352  r > 140.)
353  return false;
354 
355  // Above 4.00
356  static constexpr float cotThetaEta400 = 27.2899;
357  if (absCotTheta > cotThetaEta400)
358  return false;
359 
360  return true;
361  }
362 
364  const value_type& middle,
365  const value_type& other,
366  float cotTheta, bool isBottomCandidate) const {
367  // We remove some doublets that have the middle space point in some specific areas
368  // This should eventually be moved inside ACTS and allow a veto mechanism according
369  // to the user desire.
370  // As of now we cannot really do this since we define a range of validity of the middle
371  // candidate, and if we want to veto some sub-regions inside it, we need to do it here.
372  if (std::abs(middle.z()) > 1500 and
373  middle.radius() > 100 and middle.radius() < 150) {
374  return false;
375  }
376 
377  // We remove here some seeds, in case the bottom space point radius is
378  // too small (i.e. < fastTrackingRMin)
379 
380  // This operation is done only within a specific eta window
381  // Instead of eta we use the doublet cottheta
382  static constexpr float cotThetaEta120 = 1.5095;
383  static constexpr float cotThetaEta360 = 18.2855;
384 
385  float absCotTheta = std::abs(cotTheta);
386  if (isBottomCandidate and other.radius() < m_ExpCutrMin and
387  absCotTheta > cotThetaEta120 and
388  absCotTheta < cotThetaEta360) {
389  return false;
390  }
391 
392  return true;
393  }
394  };
395 
396 } // namespace
397 
398 #endif
399 
ActsTrk::SeedingTool::m_deltaRMaxTopSP
Gaudi::Property< float > m_deltaRMaxTopSP
Definition: SeedingTool.h:152
ActsTrk::SeedingTool::m_gridPhiMax
Gaudi::Property< float > m_gridPhiMax
Definition: SeedingTool.h:137
PixelID.h
This is an Identifier helper class for the Pixel subdetector. This class is a factory for creating co...
beamspotman.r
def r
Definition: beamspotman.py:674
ActsTrk::SeedingTool::m_compatSeedLimit
Gaudi::Property< std::size_t > m_compatSeedLimit
Definition: SeedingTool.h:255
ActsTrk::SeedingTool::m_seedConfCentralMaxZOrigin
Gaudi::Property< float > m_seedConfCentralMaxZOrigin
Definition: SeedingTool.h:207
python.SystemOfUnits.mm
float mm
Definition: SystemOfUnits.py:98
ActsTrk::SeedingTool::~SeedingTool
virtual ~SeedingTool()=default
ActsTrk::SeedingTool::m_finderCfg
Acts::SeedFinderConfig< value_type > m_finderCfg
Definition: SeedingTool.h:108
ActsTrk::SeedingTool::m_seedConfCentralMinBottomRadius
Gaudi::Property< float > m_seedConfCentralMinBottomRadius
Definition: SeedingTool.h:204
ActsTrk::SeedingTool::m_compatSeedWeight
Gaudi::Property< float > m_compatSeedWeight
Definition: SeedingTool.h:253
ActsTrk::SeedingTool::m_sigmaScattering
Gaudi::Property< float > m_sigmaScattering
Definition: SeedingTool.h:164
ActsTrk::SeedingTool::m_maxSeedsPerSpM
Gaudi::Property< int > m_maxSeedsPerSpM
Definition: SeedingTool.h:170
ActsTrk::SeedingTool::m_bottomBinFinder
std::unique_ptr< Acts::GridBinFinder< 3ul > > m_bottomBinFinder
Definition: SeedingTool.h:293
ActsTrk::SeedingTool::m_seedConfForwardMaxZOrigin
Gaudi::Property< float > m_seedConfForwardMaxZOrigin
Definition: SeedingTool.h:231
ActsTrk::SeedingTool::m_maxQualitySeedsPerSpMConf
Gaudi::Property< std::size_t > m_maxQualitySeedsPerSpMConf
Definition: SeedingTool.h:265
ActsTrk::SeedingTool::m_seedConfirmation
Gaudi::Property< bool > m_seedConfirmation
Definition: SeedingTool.h:187
ActsTrk::SeedingTool::m_phiBinDeflectionCoverage
Gaudi::Property< int > m_phiBinDeflectionCoverage
Definition: SeedingTool.h:139
ActsTrk::SeedingTool::m_phiMin
Gaudi::Property< float > m_phiMin
Definition: SeedingTool.h:242
ActsTrk::SeedingTool::m_deltaRMinTopSP
Gaudi::Property< float > m_deltaRMinTopSP
Definition: SeedingTool.h:150
ActsTrk::SeedingTool::m_deltaRMaxBottomSP
Gaudi::Property< float > m_deltaRMaxBottomSP
Definition: SeedingTool.h:156
ActsTrk::SeedingTool
Definition: SeedingTool.h:54
ActsTrk::SeedingTool::m_useVariableMiddleSPRange
Gaudi::Property< bool > m_useVariableMiddleSPRange
Definition: SeedingTool.h:178
ISeedingTool.h
ActsTrk::SeedingTool::createSeeds
virtual StatusCode createSeeds(const EventContext &ctx, const Acts::SpacePointContainer< ActsTrk::SpacePointCollector, Acts::detail::RefHolder > &spContainer, const Acts::Vector3 &beamSpotPos, const Acts::Vector3 &bField, ActsTrk::SeedContainer &seedContainer) const override
Definition: SeedingTool.cxx:218
ActsTrk::SeedingTool::external_spacepoint::type
typename std::conditional< std::is_pointer< typename spacepoint_iterator_t::value_type >::value, typename std::remove_const< typename std::remove_pointer< typename spacepoint_iterator_t::value_type >::type >::type, typename std::remove_const< typename spacepoint_iterator_t::value_type >::type >::type type
Definition: SeedingTool.h:87
ActsTrk::SeedingTool::m_rMin
Gaudi::Property< float > m_rMin
Definition: SeedingTool.h:244
ActsTrk::SeedingTool::m_rAlign
Gaudi::Property< float > m_rAlign
Definition: SeedingTool.h:246
ActsTrk::SeedingTool::m_seedConfCentralNTopLargeR
Gaudi::Property< size_t > m_seedConfCentralNTopLargeR
Definition: SeedingTool.h:198
athena.value
value
Definition: athena.py:124
ActsTrk::SeedingTool::SeedingTool
SeedingTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: SeedingTool.cxx:24
ActsTrk::SeedingTool::m_deltaRMax
Gaudi::Property< float > m_deltaRMax
Definition: SeedingTool.h:124
ActsTrk::SeedingTool::m_deltaRMinBottomSP
Gaudi::Property< float > m_deltaRMinBottomSP
Definition: SeedingTool.h:154
ActsTrk::SeedingTool::external_type
typename std::conditional< std::is_const< typename value_type::ValueType >::value, typename std::remove_const< typename value_type::ValueType >::type, typename value_type::ValueType >::type external_type
Definition: SeedingTool.h:62
xAOD::identifier
identifier
Definition: UncalibratedMeasurement_v1.cxx:15
ActsTrk::SeedingTool::m_finder
Acts::SeedFinder< value_type, Acts::CylindricalSpacePointGrid< value_type > > m_finder
Definition: SeedingTool.h:107
SeedContainer.h
ActsTrk::SeedingTool::m_useExperimentCuts
Gaudi::Property< bool > m_useExperimentCuts
Definition: SeedingTool.h:288
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
ActsTrk::SeedingTool::m_rMax
Gaudi::Property< float > m_rMax
Definition: SeedingTool.h:144
PixelID::wafer_id
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
Definition: PixelID.h:364
ActsTrk::SeedingTool::doubletSelectionFunction
bool doubletSelectionFunction(const value_type &middle, const value_type &other, float cotTheta, bool isBottomCandidate) const
Definition: SeedingTool.h:363
ActsTrk::SeedingTool::m_zAlign
Gaudi::Property< float > m_zAlign
Definition: SeedingTool.h:245
ActsTrk::SeedingTool::m_seedConfCentralZMax
Gaudi::Property< float > m_seedConfCentralZMax
Definition: SeedingTool.h:192
ActsTrk::SeedingTool::m_zBinNeighborsTop
Gaudi::Property< std::vector< std::pair< int, int > > > m_zBinNeighborsTop
Definition: SeedingTool.h:274
python.SystemOfUnits.MeV
float MeV
Definition: SystemOfUnits.py:172
ActsTrk::SeedingTool::m_impactMax
Gaudi::Property< float > m_impactMax
Definition: SeedingTool.h:126
ActsTrk::SeedingTool::m_impactWeightFactor
Gaudi::Property< float > m_impactWeightFactor
Definition: SeedingTool.h:250
ActsTrk::SeedingTool::m_seedQualitySelection
Gaudi::Property< bool > m_seedQualitySelection
Definition: SeedingTool.h:112
ActsTrk::SeedingTool::m_zBinEdges
Gaudi::Property< std::vector< float > > m_zBinEdges
Definition: SeedingTool.h:128
PixelID::is_barrel
bool is_barrel(const Identifier &id) const
Test for barrel - WARNING: id MUST be pixel id, otherwise answer is not accurate. Use SiliconID for g...
Definition: PixelID.h:605
ActsTrk::SeedingTool::m_zMax
Gaudi::Property< float > m_zMax
Definition: SeedingTool.h:122
Acts::AthenaSeed
typename ActsTrk::ActsSeed< external_spacepoint_t, N > AthenaSeed
Definition: SeedingTool.h:22
ActsTrk::SeedingTool::m_seedConfForwardZMax
Gaudi::Property< float > m_seedConfForwardZMax
Definition: SeedingTool.h:216
Acts
Definition: MuonSpectrometer/MuonPhaseII/Event/xAOD/xAODMuonPrepData/xAODMuonPrepData/UtilFunctions.h:17
ActsTrk::SeedingTool::m_minPt
Gaudi::Property< float > m_minPt
Definition: SeedingTool.h:116
ActsTrk::SeedingTool::m_deltaZMax
Gaudi::Property< float > m_deltaZMax
Definition: SeedingTool.h:158
ActsTrk::SeedingTool::m_maxSeedsPerSpMConf
Gaudi::Property< std::size_t > m_maxSeedsPerSpMConf
Definition: SeedingTool.h:263
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ActsTrk::SeedingTool::spacePointSelectionFunction
bool spacePointSelectionFunction(const value_type &sp) const
Definition: SeedingTool.h:307
ActsTrk::SeedingTool::m_binSizeR
Gaudi::Property< float > m_binSizeR
Definition: SeedingTool.h:146
AthAlgTool.h
ActsTrk::SeedingTool::m_topBinFinder
std::unique_ptr< Acts::GridBinFinder< 3ul > > m_topBinFinder
Definition: SeedingTool.h:294
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ActsTrk::SeedingTool::m_seedConfForwardRMax
Gaudi::Property< float > m_seedConfForwardRMax
Definition: SeedingTool.h:219
detail::ul
unsigned long ul
Definition: PrimitiveHelpers.h:46
ActsTrk::SeedingTool::m_seedConfCentralMinImpact
Gaudi::Property< float > m_seedConfCentralMinImpact
Definition: SeedingTool.h:210
ActsTrk::SeedingTool::m_seedConfForwardMinImpact
Gaudi::Property< float > m_seedConfForwardMinImpact
Definition: SeedingTool.h:234
ActsTrk::SeedingTool::m_rBinNeighborsTop
Gaudi::Property< std::vector< std::pair< int, int > > > m_rBinNeighborsTop
Definition: SeedingTool.h:281
ActsTrk::SeedingTool::m_gridRMax
Gaudi::Property< float > m_gridRMax
Definition: SeedingTool.h:133
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
ActsTrk::SeedingTool::m_radLengthPerSeed
Gaudi::Property< float > m_radLengthPerSeed
Definition: SeedingTool.h:168
ActsTrk::SeedingTool::m_deltaInvHelixDiameter
Gaudi::Property< float > m_deltaInvHelixDiameter
Definition: SeedingTool.h:269
ActsTrk::SeedingTool::logger
const Acts::Logger & logger() const
Private access to the logger.
Definition: SeedingTool.h:299
ActsTrk::SeedingTool::m_seedConfCentralRMax
Gaudi::Property< float > m_seedConfCentralRMax
Definition: SeedingTool.h:195
ActsTrk::SeedingTool::m_collisionRegionMax
Gaudi::Property< float > m_collisionRegionMax
Definition: SeedingTool.h:162
ActsTrk::SeedingTool::m_rBinNeighborsBottom
Gaudi::Property< std::vector< std::pair< int, int > > > m_rBinNeighborsBottom
Definition: SeedingTool.h:283
ActsTrk::SeedingTool::m_rBinsCustomLooping
Gaudi::Property< std::vector< std::size_t > > m_rBinsCustomLooping
Definition: SeedingTool.h:176
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
Seed.h
ActsTrk::SeedingTool::m_deltaRMiddleMaxSPRange
Gaudi::Property< float > m_deltaRMiddleMaxSPRange
Definition: SeedingTool.h:185
ActsTrk::SeedingTool::m_deltaRMiddleMinSPRange
Gaudi::Property< float > m_deltaRMiddleMinSPRange
Definition: SeedingTool.h:183
ActsTrk::SeedingTool::m_ExpCutrMin
Gaudi::Property< float > m_ExpCutrMin
Definition: SeedingTool.h:305
ActsTrk::SeedingTool::m_navigation
std::array< std::vector< std::size_t >, 3ul > m_navigation
Definition: SeedingTool.h:296
ActsTrk::SeedingTool::m_seedConfCentralZMin
Gaudi::Property< float > m_seedConfCentralZMin
Definition: SeedingTool.h:189
ActsTrk::SeedingTool::m_zBinsCustomLooping
Gaudi::Property< std::vector< size_t > > m_zBinsCustomLooping
Definition: SeedingTool.h:174
ActsTrk::SeedingTool::prepareConfiguration
StatusCode prepareConfiguration()
Definition: SeedingTool.cxx:374
ActsTrk::SeedingTool::m_phiMax
Gaudi::Property< float > m_phiMax
Definition: SeedingTool.h:243
ActsTrk::SeedingTool::m_collisionRegionMin
Gaudi::Property< float > m_collisionRegionMin
Definition: SeedingTool.h:160
ActsTrk::SeedingTool::m_seedConfCentralNTopSmallR
Gaudi::Property< size_t > m_seedConfCentralNTopSmallR
Definition: SeedingTool.h:201
ActsTrk::ActsSeed
Definition: Seed.h:18
ActsTrk::SeedingTool::m_cotThetaMax
Gaudi::Property< float > m_cotThetaMax
Definition: SeedingTool.h:118
ActsTrk::SeedingTool::m_maxPhiBins
Gaudi::Property< int > m_maxPhiBins
Definition: SeedingTool.h:141
ActsTrk::SeedingTool::initialize
virtual StatusCode initialize() override
Definition: SeedingTool.cxx:30
ActsTrk::SeedingTool::m_toleranceParam
Gaudi::Property< float > m_toleranceParam
Definition: SeedingTool.h:240
ActsTrk::SeedingTool::external_spacepoint
Definition: SeedingTool.h:82
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
ActsTrk::SeedingTool::m_deltaRMin
Gaudi::Property< float > m_deltaRMin
Definition: SeedingTool.h:148
ActsTrk::SeedingTool::m_stateVectorReserveSize
Gaudi::Property< int > m_stateVectorReserveSize
Definition: SeedingTool.h:290
ActsTrk::SeedingTool::m_seedWeightIncrement
Gaudi::Property< float > m_seedWeightIncrement
Definition: SeedingTool.h:257
ActsTrk::SeedingTool::m_numPhiNeighbors
Gaudi::Property< int > m_numPhiNeighbors
Definition: SeedingTool.h:285
ActsTrk::SeedingTool::m_seedConfForwardNTopLargeR
Gaudi::Property< size_t > m_seedConfForwardNTopLargeR
Definition: SeedingTool.h:222
ActsTrk::SeedingTool::m_seedConfForwardZMin
Gaudi::Property< float > m_seedConfForwardZMin
Definition: SeedingTool.h:213
TRT::Track::cotTheta
@ cotTheta
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:65
ActsTrk::SeedingTool::m_seedConfirmationInFilter
Gaudi::Property< bool > m_seedConfirmationInFilter
Definition: SeedingTool.h:261
ActsTrk::SeedingTool::m_rBinEdges
Gaudi::Property< std::vector< float > > m_rBinEdges
Definition: SeedingTool.h:131
ActsTrk::SeedingTool::m_interactionPointCut
Gaudi::Property< bool > m_interactionPointCut
Definition: SeedingTool.h:172
ActsTrk::SeedingTool::m_rRangeMiddleSP
Gaudi::Property< std::vector< std::vector< double > > > m_rRangeMiddleSP
Definition: SeedingTool.h:180
ActsTrk::SeedingTool::m_useDeltaRorTopRadius
Gaudi::Property< bool > m_useDeltaRorTopRadius
Definition: SeedingTool.h:267
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MSTrackingVolumeBuilder.cxx:24
ActsTrk::SeedingTool::m_seedConfForwardNTopSmallR
Gaudi::Property< size_t > m_seedConfForwardNTopSmallR
Definition: SeedingTool.h:225
ActsTrk::SeedingTool::m_gridCfg
Acts::CylindricalSpacePointGridConfig m_gridCfg
Definition: SeedingTool.h:109
ActsTrk::SeedingTool::m_zOriginWeightFactor
Gaudi::Property< float > m_zOriginWeightFactor
Definition: SeedingTool.h:252
Logger.h
ActsTrk::SeedingTool::m_useDetailedDoubleMeasurementInfo
Gaudi::Property< bool > m_useDetailedDoubleMeasurementInfo
Definition: SeedingTool.h:237
ActsTrk::SeedingTool::m_zBinNeighborsBottom
Gaudi::Property< std::vector< std::pair< int, int > > > m_zBinNeighborsBottom
Definition: SeedingTool.h:278
PixelID
Definition: PixelID.h:67
value_type
Definition: EDM_MasterSearch.h:11
ActsTrk::SeedingTool::m_gridPhiMin
Gaudi::Property< float > m_gridPhiMin
Definition: SeedingTool.h:135
ActsTrk::SeedingTool::m_sigmaError
Gaudi::Property< float > m_sigmaError
Definition: SeedingTool.h:247
ActsTrk::SeedingTool::m_logger
std::unique_ptr< const Acts::Logger > m_logger
logging instance
Definition: SeedingTool.h:301
ActsTrk::SeedingTool::m_pixelId
const PixelID * m_pixelId
Definition: SeedingTool.h:105
ActsTrk::SeedingTool::m_maxPtScattering
Gaudi::Property< float > m_maxPtScattering
Definition: SeedingTool.h:166
ActsTrk::SeedingTool::m_numSeedIncrement
Gaudi::Property< float > m_numSeedIncrement
Definition: SeedingTool.h:259
ActsTrk::SeedingTool::m_seedConfForwardMinBottomRadius
Gaudi::Property< float > m_seedConfForwardMinBottomRadius
Definition: SeedingTool.h:228
ActsTrk::SeedingTool::m_zMin
Gaudi::Property< float > m_zMin
Definition: SeedingTool.h:120
Identifier
Definition: IdentifierFieldParser.cxx:14