5#ifndef ACTSTRK_ORTHOGONALSEEDINGTOOL_SEEDINGTOOL_H
6#define ACTSTRK_ORTHOGONALSEEDINGTOOL_SEEDINGTOOL_H 1
14#include "Acts/Utilities/KDTree.hpp"
15#include "Acts/Geometry/Extent.hpp"
16#include "Acts/EventData/Seed.hpp"
17#include "Acts/Seeding/SeedFilter.hpp"
18#include "Acts/Seeding/SeedFinderOrthogonal.hpp"
19#include "Acts/Definitions/Units.hpp"
20#include "Acts/Seeding/SeedFinderOrthogonalConfig.hpp"
21#include "Acts/Seeding/SeedFinderOrthogonal.hpp"
22#include "Acts/Seeding/SeedFinderConfig.hpp"
23#include "Acts/Seeding/SeedFilterConfig.hpp"
24#include "Acts/Seeding/SeedFilter.hpp"
31 public extends<AthAlgTool, ActsTrk::ISeedingTool> {
34 using value_type =
typename Acts::SpacePointContainer<ActsTrk::SpacePointCollector, Acts::detail::RefHolder>::SpacePointProxyType;
38 const IInterface* parent);
46 const Acts::SpacePointContainer<ActsTrk::SpacePointCollector, Acts::detail::RefHolder>& spContainer,
47 const Acts::Vector3& beamSpotPos,
48 const Acts::Vector3& bField,
58 Acts::SeedFinderOrthogonal<value_type>
m_finder;
63 Gaudi::Property<float>
m_minPt {
this,
"minPt", 900. * Acts::UnitConstants::MeV,
64 "Lower cutoff for seeds"};
66 "Cot of maximum theta angle"};
67 Gaudi::Property<float>
m_deltaRMinTopSP {
this,
"deltaRMinTopSP", 6 * Acts::UnitConstants::mm,
68 "minimum distance in r between middle and top SP in one seed"};
69 Gaudi::Property<float>
m_deltaRMaxTopSP {
this,
"deltaRMaxTopSP", 280 * Acts::UnitConstants::mm,
70 "maximum distance in r between middle and top SP in one seed"};
72 "minimum distance in r between middle and bottom SP in one seed"};
74 "maximum distance in r between middle and bottom SP in one seed"};
76 Gaudi::Property<float>
m_impactMax {
this,
"impactMax", 2. * Acts::UnitConstants::mm,
80 "how many sigmas of scattering angle should be considered"};
82 "Upper pt limit for scattering calculation"};
85 "For how many seeds can one SpacePoint be the middle SpacePoint"};
95 Gaudi::Property<float>
m_zMin {
this,
"zMin", -3000 * Acts::UnitConstants::mm};
96 Gaudi::Property<float>
m_zMax {
this,
"zMax", 3000 * Acts::UnitConstants::mm};
97 Gaudi::Property<float>
m_rMax {
this,
"rMax", 320 * Acts::UnitConstants::mm};
98 Gaudi::Property<float>
m_rMin {
this,
"rMin", 33 * Acts::UnitConstants::mm};
100 Gaudi::Property<float>
m_rMinMiddle {
this,
"rMinMiddle", 60.f * Acts::UnitConstants::mm};
101 Gaudi::Property<float>
m_rMaxMiddle {
this,
"rMaxMiddle", 120.f * Acts::UnitConstants::mm};
105 Gaudi::Property<float>
m_deltaZMax {
this,
"deltaZMax", 600 * Acts::UnitConstants::mm,
106 "Cut to the maximum value of delta z between SPs"};
109 "Enable cut on the compatibility between interaction point and SPs"};
112 "Seed Confirmation"};
115 "average radiation lengths of material on the length of a seed. used for scattering"};
119 "The allowed delta between two inverted seed radii for them to be considered compatible"};
121 "The transverse impact parameters (d0) is multiplied by this factor and subtracted from weight"};
123"The logitudinal impact parameters (z0) is multiplied by this factor and subtracted from weight"};
125 "Seed weight increased by this value if a compatible seed has been found."};
126 Gaudi::Property<float>
m_deltaRMin {
this,
"deltaRMin", 20. * Acts::UnitConstants::mm,
127 "Minimum distance between compatible seeds to be considered for weight boost"};
129 "How often do you want to increase the weight of a seed for finding a compatible seed"};
135 "Seed Confirmation"};
138 "maximum number of lower quality seeds in seed confirmation"};
140 "maximum number of quality seeds for each middle-bottom SP-duplet in seed confirmation if the limit is reached we check if there is a lower quality seed to be replaced"};
143 "use deltaR between top and middle SP instead of top radius to search for compatible SPs"};
147 "minimum z for central seed confirmation "};
149 "maximum z for central seed confirmation "};
151 "maximum r for central seed confirmation "};
153 "nTop for large R central seed confirmation"};
155 "nTop for small R central seed confirmation"};
157 "Minimum radius for bottom SP in seed confirmation"};
159 "Maximum zOrigin in seed confirmation"};
161 "Minimum impact parameter for seed confirmation"};
164 "minimum z for forward seed confirmation "};
166 "maximum z for forward seed confirmation "};
168 "maximum r for forward seed confirmation "};
170 "nTop for large R forward seed confirmation"};
172 "nTop for small R forward seed confirmation"};
174 "Minimum radius for bottom SP in seed confirmation"};
176 "Maximum zOrigin in seed confirmation"};
178 "Minimum impact parameter for seed confirmation"};
183 Gaudi::Property< std::vector<std::vector<double>> >
m_rRangeMiddleSP {
this,
"rRangeMiddleSP",
184 {{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}},
185 "radial range for middle SP"};
190 std::unique_ptr<const Acts::Logger>
m_logger {
nullptr};
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...