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 
16 // ATHENA
19 #include "ActsInterop/Logger.h"
21 
22 // ACTS CORE
23 #include "Acts/Definitions/Units.hpp"
24 #include "Acts/Definitions/Common.hpp"
25 #include "Acts/Definitions/Algebra.hpp"
26 #include "Acts/Seeding/SpacePointGrid.hpp"
27 #include "Acts/Utilities/GridBinFinder.hpp"
28 #include "Acts/Seeding/BinnedGroup.hpp"
29 #include "Acts/Seeding/SeedFinderConfig.hpp"
30 #include "Acts/Seeding/SeedFilterConfig.hpp"
31 #include "Acts/Seeding/SeedFilter.hpp"
32 #include "Acts/Seeding/SeedFinder.hpp"
33 #include "Acts/EventData/Seed.hpp"
34 
35 #include <numbers>
36 
37 namespace ActsTrk {
38 
39  class SeedingTool :
40  public extends<AthAlgTool, ActsTrk::ISeedingTool> {
41  public:
42  using value_type = typename Acts::SpacePointContainer<ActsTrk::SpacePointCollector, Acts::detail::RefHolder>::SpacePointProxyType;
43  using seed_type = Acts::Seed< value_type, 3ul >;
44  using external_type = typename std::conditional<
47  typename value_type::ValueType
48  >::type;
49 
50 
51  SeedingTool(const std::string& type,
52  const std::string& name,
53  const IInterface* parent);
54  virtual ~SeedingTool() = default;
55 
56  virtual StatusCode initialize() override;
57 
58  // Interface
59  virtual StatusCode
60  createSeeds(const EventContext& ctx,
61  const Acts::SpacePointContainer<ActsTrk::SpacePointCollector, Acts::detail::RefHolder>& spContainer,
62  const Acts::Vector3& beamSpotPos,
63  const Acts::Vector3& bField,
64  ActsTrk::SeedContainer& seedContainer ) const override;
65  protected:
66  // metafunction to obtain correct type in iterated container given the iterator type
67  template<typename spacepoint_iterator_t>
69  using type = typename std::conditional<
73  >::type;
74  };
75 
76  template< typename external_iterator_t >
78  createSeeds( external_iterator_t spBegin,
79  external_iterator_t spEnd,
80  const Acts::Vector3& beamSpotPos,
81  const Acts::Vector3& bField,
82  DataVector< Acts::Seed< external_type, 3ul > >& seeds ) const;
83 
85 
86  // *********************************************************************
87  // *********************************************************************
88 
89  protected:
90  Acts::SeedFinder< value_type, Acts::CylindricalSpacePointGrid<value_type> > m_finder;
91  Acts::SeedFinderConfig< value_type > m_finderCfg;
92  Acts::CylindricalSpacePointGridConfig m_gridCfg;
93 
94  // See quality selection
95  Gaudi::Property< bool > m_seedQualitySelection {this, "doSeedQualitySelection", true,
96  "Select seed according to quality criteria"};
97 
98  // Properties to set SpacePointGridConfig
99  Gaudi::Property< float > m_minPt {this, "minPt", 900. * Acts::UnitConstants::MeV,
100  "lower pT cutoff for seeds"}; // Used in SeedfinderConfig as well
101  Gaudi::Property< float > m_cotThetaMax {this, "cotThetaMax", 27.2899,
102  "cot of maximum theta angle"}; // Used in SeedfinderConfig as well
103  Gaudi::Property< float > m_zMin {this, "zMin", -3000. * Acts::UnitConstants::mm,
104  "limiting location of measurements"}; // Used in SeedfinderConfig as well
105  Gaudi::Property< float > m_zMax {this, "zMax", 3000. * Acts::UnitConstants::mm,
106  "limiting location of measurements"}; // Used in SeedfinderConfig as well
107  Gaudi::Property< float > m_deltaRMax {this, "deltaRMax", 280. * Acts::UnitConstants::mm,
108  "maximum distance in r between two measurements within one seed"}; // Used in SeedfinderConfig as well
109  Gaudi::Property< float > m_impactMax {this, "impactMax", 2. * Acts::UnitConstants::mm,
110  "maximum impact parameter"}; // Used in SeedfinderConfig as well
111  Gaudi::Property< std::vector< float > > m_zBinEdges {this, "zBinEdges",
112  {-3000., -2700., -2500., -1400., -925., -500., -250., 250., 500., 925., 1400., 2500., 2700, 3000.},
113  "enable non equidistant binning in z"}; // Used in SeedfinderConfig as well
114  Gaudi::Property< std::vector< float > > m_rBinEdges {this, "rBinEdges", {0., 1100 * Acts::UnitConstants::mm},
115  "enable non equidistant binning in radius"};
116  Gaudi::Property< float > m_gridRMax {this, "gridRMax", 320. * Acts::UnitConstants::mm,
117  "radial extension of subdetector to be used in grid building"};
118  Gaudi::Property< float > m_gridPhiMin {this, "gridPhiMin", -std::numbers::pi_v<float>,
119  "phi min for space point grid formation"};
120  Gaudi::Property< float > m_gridPhiMax {this, "gridPhiMax", std::numbers::pi_v<float>,
121  "phi max for space point grid formation"};
122  Gaudi::Property< int > m_phiBinDeflectionCoverage {this, "phiBinDeflectionCoverage", 3,
123  "sets of consecutive phi bins to cover full deflection of minimum pT particle"};
124  Gaudi::Property< int > m_maxPhiBins {this, "maxPhiBins", 200, "max number of bins"};
125 
126  // Properties to set SeedfinderConfig
127  Gaudi::Property< float > m_rMax {this, "rMax", 320. * Acts::UnitConstants::mm,
128  "limiting location of measurements"};
129  Gaudi::Property< float > m_binSizeR {this, "binSizeR", 1. * Acts::UnitConstants::mm,
130  "defining radial bin for space point sorting"};
131  Gaudi::Property< float > m_deltaRMin {this, "deltaRMin", 20. * Acts::UnitConstants::mm,
132  "minimum distance in r between two measurements within one seed"}; // Used in SeedFilterConfig as well
133  Gaudi::Property< float > m_deltaRMinTopSP {this, "deltaRMinTopSP", 6. * Acts::UnitConstants::mm,
134  "minimum distance in r between middle and top SP"};
135  Gaudi::Property< float > m_deltaRMaxTopSP {this, "deltaRMaxTopSP", 280. * Acts::UnitConstants::mm,
136  "maximum distance in r between middle and top SP"};
137  Gaudi::Property< float > m_deltaRMinBottomSP {this, "deltaRMinBottomSP", 6. * Acts::UnitConstants::mm,
138  "minimum distance in r between middle and top SP"};
139  Gaudi::Property< float > m_deltaRMaxBottomSP {this, "deltaRMaxBottomSP", 150. * Acts::UnitConstants::mm,
140  "maximum distance in r between middle and top SP"};
141  Gaudi::Property< float > m_deltaZMax {this, "deltaZMax", 600,
142  "maximum distance in z between two measurements within one seed"};
143  Gaudi::Property< float > m_collisionRegionMin {this, "collisionRegionMin", -200. * Acts::UnitConstants::mm,
144  "limiting location of collision region in z"};
145  Gaudi::Property< float > m_collisionRegionMax {this, "collisionRegionMax", 200. * Acts::UnitConstants::mm,
146  "limiting location of collision region in z"};
147  Gaudi::Property< float > m_sigmaScattering {this, "sigmaScattering", 2.,
148  "how many sigmas of scattering angle should be considered"};
149  Gaudi::Property< float > m_maxPtScattering {this, "maxPtScattering", 10e6,
150  "Upper pt limit for scattering calculation"};
151  Gaudi::Property< float > m_radLengthPerSeed {this, "radLengthPerSeed", 0.098045,
152  "average radiation lengths of material on the length of a seed. used for scattering"};
153  Gaudi::Property< int > m_maxSeedsPerSpM {this, "maxSeedsPerSpM", 4,
154  "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
155  Gaudi::Property< bool > m_interactionPointCut {this, "interactionPointCut", true,
156  "Enable cut on the compatibility between interaction point and SPs"};
157  Gaudi::Property< std::vector< size_t > > m_zBinsCustomLooping {this, "zBinsCustomLooping",
158  {2, 3, 4, 5, 12, 11, 10, 9, 7, 6, 8} , "defines order of z bins for looping"};
159  Gaudi::Property< std::vector<std::size_t> > m_rBinsCustomLooping {this, "rBinsCustomLooping", {1},
160  "defines order of r bins for looping"};
161  Gaudi::Property< bool > m_useVariableMiddleSPRange {this, "useVariableMiddleSPRange", true,
162  "Enable variable range to search for middle SPs"};
163  Gaudi::Property< std::vector<std::vector<double>> > m_rRangeMiddleSP {this, "rRangeMiddleSP",
164  {{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}},
165  "radial range for middle SP"};
166  Gaudi::Property< float > m_deltaRMiddleMinSPRange {this, "deltaRMiddleMinSPRange", 10.,
167  "delta R for middle SP range (min)"};
168  Gaudi::Property< float > m_deltaRMiddleMaxSPRange {this, "deltaRMiddleMaxSPRange", 10.,
169  "delta R for middle SP range (max)"};
170  Gaudi::Property< bool > m_seedConfirmation {this, "seedConfirmation", true,
171  "run seed confirmation"};
172  Gaudi::Property< float > m_seedConfCentralZMin {this, "seedConfCentralZMin", -250. * Acts::UnitConstants::mm,
173  "minimum z for central seed confirmation "};
174  // Used in SeedFilterConfig as well
175  Gaudi::Property< float > m_seedConfCentralZMax {this, "seedConfCentralZMax", 250. * Acts::UnitConstants::mm,
176  "maximum z for central seed confirmation "};
177  // Used in SeedFilterConfig as well
178  Gaudi::Property< float > m_seedConfCentralRMax {this, "seedConfCentralRMax", 140. * Acts::UnitConstants::mm,
179  "maximum r for central seed confirmation "};
180  // Used in SeedFilterConfig as well
181  Gaudi::Property< size_t > m_seedConfCentralNTopLargeR {this, "seedConfCentralNTopLargeR", 1,
182  "nTop for large R central seed confirmation"};
183  // Used in SeedFilterConfig as well
184  Gaudi::Property< size_t > m_seedConfCentralNTopSmallR {this, "seedConfCentralNTopSmallR", 2,
185  "nTop for small R central seed confirmation"};
186  // Used in SeedFilterConfig as well
187  Gaudi::Property< float > m_seedConfCentralMinBottomRadius {this, "seedConfCentralMinBottomRadius", 60 * Acts::UnitConstants::mm,
188  "Minimum radius for bottom SP in seed confirmation"};
189  // Used in SeedFilterConfig as well
190  Gaudi::Property< float > m_seedConfCentralMaxZOrigin {this, "seedConfCentralMaxZOrigin", 150 * Acts::UnitConstants::mm,
191  "Maximum zOrigin in seed confirmation"};
192  // Used in SeedFilterConfig as well
193  Gaudi::Property< float > m_seedConfCentralMinImpact {this, "seedConfCentralMinImpact", 1. * Acts::UnitConstants::mm,
194  "Minimum impact parameter for seed confirmation"};
195  // Used in SeedFilterConfig as well
196  Gaudi::Property< float > m_seedConfForwardZMin {this, "seedConfForwardZMin", -3000. * Acts::UnitConstants::mm,
197  "minimum z for forward seed confirmation "};
198  // Used in SeedFilterConfig as well
199  Gaudi::Property< float > m_seedConfForwardZMax {this, "seedConfForwardZMax", 3000. * Acts::UnitConstants::mm,
200  "maximum z for forward seed confirmation "};
201  // Used in SeedFilterConfig as well
202  Gaudi::Property< float > m_seedConfForwardRMax {this, "seedConfForwardRMax", 140. * Acts::UnitConstants::mm,
203  "maximum r for forward seed confirmation "};
204  // Used in SeedFilterConfig as well
205  Gaudi::Property< size_t > m_seedConfForwardNTopLargeR {this, "seedConfForwardNTopLargeR", 1,
206  "nTop for large R forward seed confirmation"};
207  // Used in SeedFilterConfig as well
208  Gaudi::Property< size_t > m_seedConfForwardNTopSmallR {this, "seedConfForwardNTopSmallR", 2,
209  "nTop for small R forward seed confirmation"};
210  // Used in SeedFilterConfig as well
211  Gaudi::Property< float > m_seedConfForwardMinBottomRadius {this, "seedConfForwardMinBottomRadius", 60 * Acts::UnitConstants::mm,
212  "Minimum radius for bottom SP in seed confirmation"};
213  // Used in SeedFilterConfig as well
214  Gaudi::Property< float > m_seedConfForwardMaxZOrigin {this, "seedConfForwardMaxZOrigin", 150 * Acts::UnitConstants::mm,
215  "Maximum zOrigin in seed confirmation"};
216  // Used in SeedFilterConfig as well
217  Gaudi::Property< float > m_seedConfForwardMinImpact {this, "seedConfForwardMinImpact", 1. * Acts::UnitConstants::mm,
218  "Minimum impact parameter for seed confirmation"};
219  // Used in SeedFilterConfig as well
220  Gaudi::Property< bool > m_useDetailedDoubleMeasurementInfo {this, "useDetailedDoubleMeasurementInfo", false,
221  "enable use of double measurement details"};
222 
223  Gaudi::Property<float> m_toleranceParam {this, "toleranceParam", 1.1 * Acts::UnitConstants::mm,
224  "tolerance parameter used to check the compatibility of SPs coordinates in xyz"};
225  Gaudi::Property<float> m_phiMin {this, "phiMin", -std::numbers::pi_v<float>, ""};
226  Gaudi::Property<float> m_phiMax {this, "phiMax", std::numbers::pi_v<float>, ""};
227  Gaudi::Property<float> m_rMin {this, "rMin", 0 * Acts::UnitConstants::mm, ""};
228  Gaudi::Property<float> m_zAlign {this, "zAlign", 0 * Acts::UnitConstants::mm, ""};
229  Gaudi::Property<float> m_rAlign {this, "rAlign", 0 * Acts::UnitConstants::mm, ""};
230  Gaudi::Property<float> m_sigmaError {this, "sigmaError", 5, ""};
231 
232  // Properties to set SeedFilterConfig
233  Gaudi::Property< float > m_impactWeightFactor {this, "impactWeightFactor", 100.,
234  "the impact parameters (d0) is multiplied by this factor and subtracted from weight"};
235  Gaudi::Property< float > m_zOriginWeightFactor {this, "zOriginWeightFactor", 1.};
236  Gaudi::Property< float > m_compatSeedWeight {this, "compatSeedWeight", 100.,
237  "seed weight increased by this value if a compatible seed has been found"};
238  Gaudi::Property< std::size_t > m_compatSeedLimit {this, "compatSeedLimit", 3,
239  "how often do you want to increase the weight of a seed for finding a compatible seed"};
240  Gaudi::Property< float > m_seedWeightIncrement {this, "seedWeightIncrement", 0.,
241  "increment in seed weight if needed"};
242  Gaudi::Property< float > m_numSeedIncrement {this, "numSeedIncrement", 10e6,
243  "increment in seed weight is applied if the number of compatible seeds is larger than numSeedIncrement"};
244  Gaudi::Property< bool > m_seedConfirmationInFilter {this, "seedConfirmationInFilter", true,
245  "run seed confirmation"};
246  Gaudi::Property< std::size_t > m_maxSeedsPerSpMConf {this, "maxSeedsPerSpMConf", 5,
247  "Maximum number of lower quality seeds in seed confirmation."};
248  Gaudi::Property< std::size_t > m_maxQualitySeedsPerSpMConf {this, "maxQualitySeedsPerSpMConf", 5,
249  "Maximum number of quality seeds for each middle-bottom SP-duplet in seed confirmation."};
250  Gaudi::Property< bool > m_useDeltaRorTopRadius {this, "useDeltaRorTopRadius", true,
251  "use deltaR (top radius - middle radius) instead of top radius"};
252  Gaudi::Property<float> m_deltaInvHelixDiameter {this, "deltaInvHelixDiameter", 0.00003 * 1. / Acts::UnitConstants::mm,
253  "the allowed delta between two inverted seed radii for them to be considered compatible"};
254 
255  // Properties to set other objects used in
256  // seeding algorithm
257  Gaudi::Property< std::vector<std::pair<int, int>> > m_zBinNeighborsTop{this,
258  "zBinNeighborsTop",
259  {{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}},
260  "vector containing the map of z bins in the top layers"};
261  Gaudi::Property< std::vector<std::pair<int, int>> > m_zBinNeighborsBottom{this, "zBinNeighborsBottom",
262  {{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}},
263  "vector containing the map of z bins in the top layers"};
264  Gaudi::Property< std::vector<std::pair<int, int>> > m_rBinNeighborsTop{this, "rBinNeighborsTop", {{0, 0}},
265  "vector containing the map of radius bins in the top layers"};
266  Gaudi::Property< std::vector<std::pair<int, int>> > m_rBinNeighborsBottom{this, "rBinNeighborsBottom", {{0, 0}},
267  "vector containing the map of radius bins in the bottom layers"};
268  Gaudi::Property< int > m_numPhiNeighbors {this, "numPhiNeighbors", 1,
269  "number of phi bin neighbors at each side of the current bin that will be used to search for SPs"};
270 
271  Gaudi::Property< bool > m_useExperimentCuts {this, "useExperimentCuts", false, ""};
272 
273  private:
274  std::unique_ptr< Acts::GridBinFinder< 3ul > > m_bottomBinFinder{nullptr};
275  std::unique_ptr< Acts::GridBinFinder< 3ul > > m_topBinFinder{nullptr};
276 
277  std::array<std::vector<std::size_t>, 3ul> m_navigation{};
278 
280  const Acts::Logger &logger() const { return *m_logger; }
282  std::unique_ptr<const Acts::Logger> m_logger {nullptr};
283 
284  static constexpr float m_ExpCutrMin = 45.;
285 
286  static inline bool itkFastTrackingSPselect(const value_type& sp) {
287  // At small r we remove points beyond |z| > 200.
288  float r = sp.radius();
289  float zabs = std::abs(sp.z());
290 
291  if (zabs > 200. && r < m_ExpCutrMin) {
292  return false;
293  }
294 
297  float cotTheta = 27.2899; // corresponds to eta=4
298  if ((zabs - 150.) > cotTheta * r) {
299  return false;
300  }
301  return true;
302  }
303 
304  static inline bool itkFastDoubletCut(float bottomRadius, float cotTheta) {
305  //float fastTrackingRMin = m_ExpCutrMin;
306  float fastTrackingCotThetaMax = 1.5;
307 
308  //if (bottomRadius < fastTrackingRMin and
309  if (bottomRadius < m_ExpCutrMin and
310  (cotTheta > fastTrackingCotThetaMax or
311  cotTheta < -fastTrackingCotThetaMax)) {
312  return false;
313  }
314  return true;
315  }
316  };
317 
318 
319 
320 } // namespace
321 
322 #endif
323 
ActsTrk::SeedingTool::m_deltaRMaxTopSP
Gaudi::Property< float > m_deltaRMaxTopSP
Definition: SeedingTool.h:135
ActsTrk::SeedingTool::m_gridPhiMax
Gaudi::Property< float > m_gridPhiMax
Definition: SeedingTool.h:120
beamspotman.r
def r
Definition: beamspotman.py:676
ActsTrk::SeedingTool::m_compatSeedLimit
Gaudi::Property< std::size_t > m_compatSeedLimit
Definition: SeedingTool.h:238
ActsTrk::SeedingTool::m_seedConfCentralMaxZOrigin
Gaudi::Property< float > m_seedConfCentralMaxZOrigin
Definition: SeedingTool.h:190
ActsTrk::SeedingTool::~SeedingTool
virtual ~SeedingTool()=default
ActsTrk::SeedingTool::m_finderCfg
Acts::SeedFinderConfig< value_type > m_finderCfg
Definition: SeedingTool.h:91
ActsTrk::SeedingTool::m_seedConfCentralMinBottomRadius
Gaudi::Property< float > m_seedConfCentralMinBottomRadius
Definition: SeedingTool.h:187
ActsTrk::SeedingTool::m_compatSeedWeight
Gaudi::Property< float > m_compatSeedWeight
Definition: SeedingTool.h:236
ActsTrk::SeedingTool::m_sigmaScattering
Gaudi::Property< float > m_sigmaScattering
Definition: SeedingTool.h:147
ActsTrk::SeedingTool::m_maxSeedsPerSpM
Gaudi::Property< int > m_maxSeedsPerSpM
Definition: SeedingTool.h:153
ActsTrk::SeedingTool::m_bottomBinFinder
std::unique_ptr< Acts::GridBinFinder< 3ul > > m_bottomBinFinder
Definition: SeedingTool.h:274
ActsTrk::SeedingTool::m_seedConfForwardMaxZOrigin
Gaudi::Property< float > m_seedConfForwardMaxZOrigin
Definition: SeedingTool.h:214
ActsTrk::SeedingTool::m_maxQualitySeedsPerSpMConf
Gaudi::Property< std::size_t > m_maxQualitySeedsPerSpMConf
Definition: SeedingTool.h:248
ActsTrk::SeedingTool::m_seedConfirmation
Gaudi::Property< bool > m_seedConfirmation
Definition: SeedingTool.h:170
ActsTrk::SeedingTool::m_phiBinDeflectionCoverage
Gaudi::Property< int > m_phiBinDeflectionCoverage
Definition: SeedingTool.h:122
ActsTrk::SeedingTool::m_phiMin
Gaudi::Property< float > m_phiMin
Definition: SeedingTool.h:225
ActsTrk::SeedingTool::m_deltaRMinTopSP
Gaudi::Property< float > m_deltaRMinTopSP
Definition: SeedingTool.h:133
ActsTrk::SeedingTool::m_deltaRMaxBottomSP
Gaudi::Property< float > m_deltaRMaxBottomSP
Definition: SeedingTool.h:139
ActsTrk::SeedingTool::itkFastTrackingSPselect
static bool itkFastTrackingSPselect(const value_type &sp)
Definition: SeedingTool.h:286
ActsTrk::SeedingTool
Definition: SeedingTool.h:40
ActsTrk::SeedingTool::m_useVariableMiddleSPRange
Gaudi::Property< bool > m_useVariableMiddleSPRange
Definition: SeedingTool.h:161
ISeedingTool.h
python.SystemOfUnits.MeV
int MeV
Definition: SystemOfUnits.py:154
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:73
ActsTrk::SeedingTool::m_rMin
Gaudi::Property< float > m_rMin
Definition: SeedingTool.h:227
ActsTrk::SeedingTool::m_rAlign
Gaudi::Property< float > m_rAlign
Definition: SeedingTool.h:229
ActsTrk::SeedingTool::m_seedConfCentralNTopLargeR
Gaudi::Property< size_t > m_seedConfCentralNTopLargeR
Definition: SeedingTool.h:181
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:18
ActsTrk::SeedingTool::m_deltaRMax
Gaudi::Property< float > m_deltaRMax
Definition: SeedingTool.h:107
ActsTrk::SeedingTool::m_deltaRMinBottomSP
Gaudi::Property< float > m_deltaRMinBottomSP
Definition: SeedingTool.h:137
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:48
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:206
ActsTrk::SeedingTool::m_finder
Acts::SeedFinder< value_type, Acts::CylindricalSpacePointGrid< value_type > > m_finder
Definition: SeedingTool.h:90
SeedContainer.h
ActsTrk::SeedingTool::m_useExperimentCuts
Gaudi::Property< bool > m_useExperimentCuts
Definition: SeedingTool.h:271
ActsTrk::SeedingTool::m_rMax
Gaudi::Property< float > m_rMax
Definition: SeedingTool.h:127
ActsTrk::SeedingTool::m_zAlign
Gaudi::Property< float > m_zAlign
Definition: SeedingTool.h:228
ActsTrk::SeedingTool::m_seedConfCentralZMax
Gaudi::Property< float > m_seedConfCentralZMax
Definition: SeedingTool.h:175
ActsTrk::SeedingTool::m_zBinNeighborsTop
Gaudi::Property< std::vector< std::pair< int, int > > > m_zBinNeighborsTop
Definition: SeedingTool.h:257
ActsTrk::SeedingTool::createSeeds
StatusCode createSeeds(external_iterator_t spBegin, external_iterator_t spEnd, const Acts::Vector3 &beamSpotPos, const Acts::Vector3 &bField, DataVector< Acts::Seed< external_type, 3ul > > &seeds) const
ActsTrk::SeedingTool::m_impactMax
Gaudi::Property< float > m_impactMax
Definition: SeedingTool.h:109
ActsTrk::SeedingTool::m_impactWeightFactor
Gaudi::Property< float > m_impactWeightFactor
Definition: SeedingTool.h:233
ActsTrk::SeedingTool::m_seedQualitySelection
Gaudi::Property< bool > m_seedQualitySelection
Definition: SeedingTool.h:95
ActsTrk::SeedingTool::m_zBinEdges
Gaudi::Property< std::vector< float > > m_zBinEdges
Definition: SeedingTool.h:111
ActsTrk::SeedingTool::m_zMax
Gaudi::Property< float > m_zMax
Definition: SeedingTool.h:105
ActsTrk::SeedingTool::m_seedConfForwardZMax
Gaudi::Property< float > m_seedConfForwardZMax
Definition: SeedingTool.h:199
ActsTrk::SeedingTool::m_minPt
Gaudi::Property< float > m_minPt
Definition: SeedingTool.h:99
ActsTrk::SeedingTool::m_deltaZMax
Gaudi::Property< float > m_deltaZMax
Definition: SeedingTool.h:141
ActsTrk::SeedingTool::m_maxSeedsPerSpMConf
Gaudi::Property< std::size_t > m_maxSeedsPerSpMConf
Definition: SeedingTool.h:246
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ActsTrk::SeedingTool::m_binSizeR
Gaudi::Property< float > m_binSizeR
Definition: SeedingTool.h:129
AthAlgTool.h
ActsTrk::SeedingTool::m_topBinFinder
std::unique_ptr< Acts::GridBinFinder< 3ul > > m_topBinFinder
Definition: SeedingTool.h:275
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ActsTrk::SeedingTool::m_seedConfForwardRMax
Gaudi::Property< float > m_seedConfForwardRMax
Definition: SeedingTool.h:202
detail::ul
unsigned long ul
Definition: PrimitiveHelpers.h:46
ActsTrk::SeedingTool::m_seedConfCentralMinImpact
Gaudi::Property< float > m_seedConfCentralMinImpact
Definition: SeedingTool.h:193
ActsTrk::SeedingTool::m_seedConfForwardMinImpact
Gaudi::Property< float > m_seedConfForwardMinImpact
Definition: SeedingTool.h:217
ActsTrk::SeedingTool::m_rBinNeighborsTop
Gaudi::Property< std::vector< std::pair< int, int > > > m_rBinNeighborsTop
Definition: SeedingTool.h:264
ActsTrk::SeedingTool::m_gridRMax
Gaudi::Property< float > m_gridRMax
Definition: SeedingTool.h:116
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
ActsTrk::SeedingTool::m_radLengthPerSeed
Gaudi::Property< float > m_radLengthPerSeed
Definition: SeedingTool.h:151
ActsTrk::SeedingTool::m_deltaInvHelixDiameter
Gaudi::Property< float > m_deltaInvHelixDiameter
Definition: SeedingTool.h:252
ActsTrk::SeedingTool::logger
const Acts::Logger & logger() const
Private access to the logger.
Definition: SeedingTool.h:280
ActsTrk::SeedingTool::m_seedConfCentralRMax
Gaudi::Property< float > m_seedConfCentralRMax
Definition: SeedingTool.h:178
ActsTrk::SeedingTool::m_collisionRegionMax
Gaudi::Property< float > m_collisionRegionMax
Definition: SeedingTool.h:145
ActsTrk::SeedingTool::m_rBinNeighborsBottom
Gaudi::Property< std::vector< std::pair< int, int > > > m_rBinNeighborsBottom
Definition: SeedingTool.h:266
ActsTrk::SeedingTool::m_rBinsCustomLooping
Gaudi::Property< std::vector< std::size_t > > m_rBinsCustomLooping
Definition: SeedingTool.h:159
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
ActsTrk::SeedingTool::m_deltaRMiddleMaxSPRange
Gaudi::Property< float > m_deltaRMiddleMaxSPRange
Definition: SeedingTool.h:168
ActsTrk::SeedingTool::m_deltaRMiddleMinSPRange
Gaudi::Property< float > m_deltaRMiddleMinSPRange
Definition: SeedingTool.h:166
ActsTrk::SeedingTool::m_navigation
std::array< std::vector< std::size_t >, 3ul > m_navigation
Definition: SeedingTool.h:277
ActsTrk::SeedingTool::m_seedConfCentralZMin
Gaudi::Property< float > m_seedConfCentralZMin
Definition: SeedingTool.h:172
ActsTrk::SeedingTool::itkFastDoubletCut
static bool itkFastDoubletCut(float bottomRadius, float cotTheta)
Definition: SeedingTool.h:304
ActsTrk::SeedingTool::m_zBinsCustomLooping
Gaudi::Property< std::vector< size_t > > m_zBinsCustomLooping
Definition: SeedingTool.h:157
ActsTrk::SeedingTool::prepareConfiguration
StatusCode prepareConfiguration()
Definition: SeedingTool.cxx:349
ActsTrk::SeedingTool::m_phiMax
Gaudi::Property< float > m_phiMax
Definition: SeedingTool.h:226
ActsTrk::SeedingTool::m_collisionRegionMin
Gaudi::Property< float > m_collisionRegionMin
Definition: SeedingTool.h:143
ActsTrk::SeedingTool::m_seedConfCentralNTopSmallR
Gaudi::Property< size_t > m_seedConfCentralNTopSmallR
Definition: SeedingTool.h:184
ActsTrk::SeedingTool::m_cotThetaMax
Gaudi::Property< float > m_cotThetaMax
Definition: SeedingTool.h:101
ActsTrk::SeedingTool::m_maxPhiBins
Gaudi::Property< int > m_maxPhiBins
Definition: SeedingTool.h:124
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
ActsTrk::SeedingTool::initialize
virtual StatusCode initialize() override
Definition: SeedingTool.cxx:24
ActsTrk::SeedingTool::m_toleranceParam
Gaudi::Property< float > m_toleranceParam
Definition: SeedingTool.h:223
ActsTrk::SeedingTool::external_spacepoint
Definition: SeedingTool.h:68
ActsTrk::SeedingTool::seed_type
Acts::Seed< value_type, 3ul > seed_type
Definition: SeedingTool.h:43
ActsTrk::SeedingTool::m_deltaRMin
Gaudi::Property< float > m_deltaRMin
Definition: SeedingTool.h:131
ActsTrk::SeedingTool::m_seedWeightIncrement
Gaudi::Property< float > m_seedWeightIncrement
Definition: SeedingTool.h:240
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
ActsTrk::SeedingTool::m_numPhiNeighbors
Gaudi::Property< int > m_numPhiNeighbors
Definition: SeedingTool.h:268
ActsTrk::SeedingTool::m_seedConfForwardNTopLargeR
Gaudi::Property< size_t > m_seedConfForwardNTopLargeR
Definition: SeedingTool.h:205
ActsTrk::SeedingTool::m_ExpCutrMin
static constexpr float m_ExpCutrMin
Definition: SeedingTool.h:284
ActsTrk::SeedingTool::m_seedConfForwardZMin
Gaudi::Property< float > m_seedConfForwardZMin
Definition: SeedingTool.h:196
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:244
ActsTrk::SeedingTool::m_rBinEdges
Gaudi::Property< std::vector< float > > m_rBinEdges
Definition: SeedingTool.h:114
ActsTrk::SeedingTool::m_interactionPointCut
Gaudi::Property< bool > m_interactionPointCut
Definition: SeedingTool.h:155
ActsTrk::SeedingTool::m_rRangeMiddleSP
Gaudi::Property< std::vector< std::vector< double > > > m_rRangeMiddleSP
Definition: SeedingTool.h:163
ActsTrk::SeedingTool::m_useDeltaRorTopRadius
Gaudi::Property< bool > m_useDeltaRorTopRadius
Definition: SeedingTool.h:250
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MuonDetectorBuilderTool.cxx:54
ActsTrk::SeedingTool::m_seedConfForwardNTopSmallR
Gaudi::Property< size_t > m_seedConfForwardNTopSmallR
Definition: SeedingTool.h:208
ActsTrk::SeedingTool::m_gridCfg
Acts::CylindricalSpacePointGridConfig m_gridCfg
Definition: SeedingTool.h:92
ActsTrk::SeedingTool::m_zOriginWeightFactor
Gaudi::Property< float > m_zOriginWeightFactor
Definition: SeedingTool.h:235
Logger.h
ActsTrk::SeedingTool::m_useDetailedDoubleMeasurementInfo
Gaudi::Property< bool > m_useDetailedDoubleMeasurementInfo
Definition: SeedingTool.h:220
ActsTrk::SeedingTool::m_zBinNeighborsBottom
Gaudi::Property< std::vector< std::pair< int, int > > > m_zBinNeighborsBottom
Definition: SeedingTool.h:261
value_type
Definition: EDM_MasterSearch.h:11
ActsTrk::SeedingTool::m_gridPhiMin
Gaudi::Property< float > m_gridPhiMin
Definition: SeedingTool.h:118
ActsTrk::SeedingTool::m_sigmaError
Gaudi::Property< float > m_sigmaError
Definition: SeedingTool.h:230
ActsTrk::SeedingTool::m_logger
std::unique_ptr< const Acts::Logger > m_logger
logging instance
Definition: SeedingTool.h:282
ActsTrk::SeedingTool::m_maxPtScattering
Gaudi::Property< float > m_maxPtScattering
Definition: SeedingTool.h:149
ActsTrk::SeedingTool::m_numSeedIncrement
Gaudi::Property< float > m_numSeedIncrement
Definition: SeedingTool.h:242
ActsTrk::SeedingTool::m_seedConfForwardMinBottomRadius
Gaudi::Property< float > m_seedConfForwardMinBottomRadius
Definition: SeedingTool.h:211
ActsTrk::SeedingTool::m_zMin
Gaudi::Property< float > m_zMin
Definition: SeedingTool.h:103