5#ifndef ACTSTRK_GRIDTRIPLETSEEDINGTOOL_GRIDTRIPLETSEEDINGTOOL_H
6#define ACTSTRK_GRIDTRIPLETSEEDINGTOOL_GRIDTRIPLETSEEDINGTOOL_H
15#include "Acts/EventData/SeedContainer2.hpp"
16#include "Acts/EventData/SpacePointContainer2.hpp"
17#include "Acts/Seeding2/BroadTripletSeedFilter.hpp"
18#include "Acts/Seeding2/CylindricalSpacePointGrid2.hpp"
19#include "Acts/Seeding2/TripletSeeder.hpp"
28 :
public extends<AthAlgTool, ActsTrk::ISeedingTool> {
31 const IInterface* parent);
36 const std::vector<const xAOD::SpacePointContainer*>&
37 spacePointCollections,
38 const Eigen::Vector3f& beamSpotPos,
float bFieldInZ,
43 this,
"doSeedQualitySelection",
true,
44 "Select seed according to quality criteria"};
48 Gaudi::Property<float>
m_minPt{
this,
"minPt", 900. * Acts::UnitConstants::MeV,
49 "lower pT cutoff for seeds"};
51 "cot of maximum theta angle"};
52 Gaudi::Property<float>
m_zMin{
this,
"zMin", -3000. * Acts::UnitConstants::mm,
53 "limiting location of measurements"};
54 Gaudi::Property<float>
m_zMax{
this,
"zMax", 3000. * Acts::UnitConstants::mm,
55 "limiting location of measurements"};
57 this,
"deltaRMax", 280. * Acts::UnitConstants::mm,
58 "maximum distance in r between two measurements within one "
61 2. * Acts::UnitConstants::mm,
62 "maximum impact parameter"};
66 {-3000., -2700., -2500., -1400., -925., -500., -250., 250., 500., 925.,
67 1400., 2500., 2700, 3000.},
68 "enable non equidistant binning in z"};
72 {0., 1100 * Acts::UnitConstants::mm},
73 "enable non equidistant binning in radius"};
75 this,
"gridRMax", 320. * Acts::UnitConstants::mm,
76 "radial extension of subdetector to be used in grid building"};
78 -std::numbers::pi_v<float>,
79 "phi min for space point grid formation"};
81 std::numbers::pi_v<float>,
82 "phi max for space point grid formation"};
84 this,
"phiBinDeflectionCoverage", 3,
85 "sets of consecutive phi bins to cover full deflection of minimum pT "
88 "max number of bins"};
91 Gaudi::Property<float>
m_rMax{
this,
"rMax", 320. * Acts::UnitConstants::mm,
92 "limiting location of measurements"};
94 this,
"binSizeR", 1. * Acts::UnitConstants::mm,
95 "defining radial bin for space point sorting"};
97 this,
"deltaRMin", 20. * Acts::UnitConstants::mm,
98 "minimum distance in r between two measurements within one "
101 this,
"deltaRMinTopSP", 6. * Acts::UnitConstants::mm,
102 "minimum distance in r between middle and top SP"};
104 this,
"deltaRMaxTopSP", 280. * Acts::UnitConstants::mm,
105 "maximum distance in r between middle and top SP"};
107 this,
"deltaRMinBottomSP", 6. * Acts::UnitConstants::mm,
108 "minimum distance in r between middle and top SP"};
110 this,
"deltaRMaxBottomSP", 150. * Acts::UnitConstants::mm,
111 "maximum distance in r between middle and top SP"};
113 this,
"deltaZMax", 600,
114 "maximum distance in z between two measurements within one seed"};
116 this,
"collisionRegionMin", -200. * Acts::UnitConstants::mm,
117 "limiting location of collision region in z"};
119 this,
"collisionRegionMax", 200. * Acts::UnitConstants::mm,
120 "limiting location of collision region in z"};
122 this,
"sigmaScattering", 2.,
123 "how many sigmas of scattering angle should be considered"};
125 this,
"maxPtScattering", 10e6,
126 "Upper pt limit for scattering calculation"};
128 this,
"radLengthPerSeed", 0.098045,
129 "average radiation lengths of material on the length of a seed. used for "
132 this,
"maxSeedsPerSpM", 4,
133 "In dense environments many seeds may be found per middle space point. "
134 "Only seeds with the highest weight will be kept if this limit is "
137 this,
"interactionPointCut",
true,
138 "Enable cut on the compatibility between interaction point and SPs"};
141 "zBinsCustomLooping",
142 {2, 3, 4, 5, 12, 11, 10, 9, 7, 6, 8},
143 "defines order of z bins for looping"};
145 this,
"rBinsCustomLooping", {1},
"defines order of r bins for looping"};
147 this,
"useVariableMiddleSPRange",
true,
148 "Enable variable range to search for middle SPs"};
165 "radial range for middle SP"};
167 this,
"deltaRMiddleMinSPRange", 10.,
"delta R for middle SP range (min)"};
169 this,
"deltaRMiddleMaxSPRange", 10.,
"delta R for middle SP range (max)"};
171 "run seed confirmation"};
173 this,
"seedConfCentralZMin", -250. * Acts::UnitConstants::mm,
174 "minimum z for central seed confirmation "};
176 this,
"seedConfCentralZMax", 250. * Acts::UnitConstants::mm,
177 "maximum z for central seed confirmation "};
179 this,
"seedConfCentralRMax", 140. * Acts::UnitConstants::mm,
180 "maximum r for central seed confirmation "};
182 this,
"seedConfCentralNTopLargeR", 1,
183 "nTop for large R central seed confirmation"};
185 this,
"seedConfCentralNTopSmallR", 2,
186 "nTop for small R central seed confirmation"};
188 this,
"seedConfCentralMinBottomRadius", 60 * Acts::UnitConstants::mm,
189 "Minimum radius for bottom SP in seed confirmation"};
191 this,
"seedConfCentralMaxZOrigin", 150 * Acts::UnitConstants::mm,
192 "Maximum zOrigin in seed confirmation"};
194 this,
"seedConfCentralMinImpact", 1. * Acts::UnitConstants::mm,
195 "Minimum impact parameter for seed confirmation"};
197 this,
"seedConfForwardZMin", -3000. * Acts::UnitConstants::mm,
198 "minimum z for forward seed confirmation "};
200 this,
"seedConfForwardZMax", 3000. * Acts::UnitConstants::mm,
201 "maximum z for forward seed confirmation "};
203 this,
"seedConfForwardRMax", 140. * Acts::UnitConstants::mm,
204 "maximum r for forward seed confirmation "};
206 this,
"seedConfForwardNTopLargeR", 1,
207 "nTop for large R forward seed confirmation"};
209 this,
"seedConfForwardNTopSmallR", 2,
210 "nTop for small R forward seed confirmation"};
212 this,
"seedConfForwardMinBottomRadius", 60 * Acts::UnitConstants::mm,
213 "Minimum radius for bottom SP in seed confirmation"};
215 this,
"seedConfForwardMaxZOrigin", 150 * Acts::UnitConstants::mm,
216 "Maximum zOrigin in seed confirmation"};
218 this,
"seedConfForwardMinImpact", 1. * Acts::UnitConstants::mm,
219 "Minimum impact parameter for seed confirmation"};
221 this,
"useDetailedDoubleMeasurementInfo",
false,
222 "enable use of double measurement details"};
225 this,
"toleranceParam", 1.1 * Acts::UnitConstants::mm,
226 "tolerance parameter used to check the compatibility of SPs coordinates "
228 Gaudi::Property<float>
m_phiMin{
this,
"phiMin", -std::numbers::pi_v<float>,
230 Gaudi::Property<float>
m_phiMax{
this,
"phiMax", std::numbers::pi_v<float>,
232 Gaudi::Property<float>
m_rMin{
this,
"rMin", 0 * Acts::UnitConstants::mm,
""};
233 Gaudi::Property<float>
m_zAlign{
this,
"zAlign", 0 * Acts::UnitConstants::mm,
235 Gaudi::Property<float>
m_rAlign{
this,
"rAlign", 0 * Acts::UnitConstants::mm,
241 this,
"impactWeightFactor", 100.,
242 "the impact parameters (d0) is multiplied by this factor and subtracted "
246 this,
"compatSeedWeight", 100.,
247 "seed weight increased by this value if a compatible seed has been "
250 this,
"compatSeedLimit", 3,
251 "how often do you want to increase the weight of a seed for finding a "
254 this,
"seedWeightIncrement", 0.,
"increment in seed weight if needed"};
256 this,
"numSeedIncrement", 10e6,
257 "increment in seed weight is applied if the number of compatible seeds "
258 "is larger than numSeedIncrement"};
260 this,
"seedConfirmationInFilter",
true,
"run seed confirmation"};
262 this,
"maxSeedsPerSpMConf", 5,
263 "Maximum number of lower quality seeds in seed confirmation."};
265 this,
"maxQualitySeedsPerSpMConf", 5,
266 "Maximum number of quality seeds for each middle-bottom SP-duplet in "
267 "seed confirmation."};
269 this,
"useDeltaRorTopRadius",
true,
270 "use deltaR (top radius - middle radius) instead of top radius"};
272 this,
"deltaInvHelixDiameter", 0.00003 * 1. / Acts::UnitConstants::mm,
273 "the allowed delta between two inverted seed radii for them to be "
274 "considered compatible"};
293 "vector containing the map of z bins in the top layers"};
296 "zBinNeighborsBottom",
310 "vector containing the map of z bins in the top layers"};
315 "vector containing the map of radius bins in the top layers"};
318 "rBinNeighborsBottom",
320 "vector containing the map of radius bins in the bottom layers"};
322 this,
"numPhiNeighbors", 1,
323 "number of phi bin neighbors at each side of the current bin that will "
324 "be used to search for SPs"};
330 this,
"stateVectorReserveSize", 500,
331 "Size of the initial Seeding State internal vectors"};
334 45. * Acts::UnitConstants::mm};
357 const Acts::ConstSpacePointProxy2& other,
358 float cotTheta,
bool isBottomCandidate)
const;
361 const Acts::ConstSpacePointProxy2& spM,
362 const Acts::Range1D<float>& rMiddleSpRange)
const;
This is an Identifier helper class for the Pixel subdetector.
This is an Identifier helper class for the Pixel subdetector.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...