File indexing completed on 2025-08-28 08:11:38
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/EventData/SeedContainer2.hpp"
0012 #include "Acts/EventData/SpacePointContainer2.hpp"
0013 #include "Acts/Seeding2/DoubletSeedFinder.hpp"
0014 #include "Acts/Seeding2/ITripletSeedFilter.hpp"
0015 #include "Acts/Seeding2/TripletSeedFinder.hpp"
0016 #include "Acts/Utilities/Logger.hpp"
0017
0018 #include <vector>
0019
0020 namespace Acts::Experimental {
0021
0022
0023
0024 class TripletSeeder {
0025 public:
0026
0027
0028 struct Cache {
0029 DoubletsForMiddleSp bottomDoublets;
0030 DoubletsForMiddleSp topDoublets;
0031
0032 std::vector<DoubletsForMiddleSp::IndexAndCotTheta> sortedBottoms;
0033 std::vector<DoubletsForMiddleSp::IndexAndCotTheta> sortedTops;
0034
0035 TripletTopCandidates tripletTopCandidates;
0036 };
0037
0038 explicit TripletSeeder(std::unique_ptr<const Logger> logger =
0039 getDefaultLogger("TripletSeeder",
0040 Logging::Level::INFO));
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054 void createSeedsFromGroup(Cache& cache, const DoubletSeedFinder& bottomFinder,
0055 const DoubletSeedFinder& topFinder,
0056 const TripletSeedFinder& tripletFinder,
0057 const ITripletSeedFilter& filter,
0058 const SpacePointContainer2& spacePoints,
0059 SpacePointContainer2::ConstSubset& bottomSps,
0060 const ConstSpacePointProxy2& middleSp,
0061 SpacePointContainer2::ConstSubset& topSps,
0062 SeedContainer2& outputSeeds) const;
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077 void createSeedsFromGroups(
0078 Cache& cache, const DoubletSeedFinder& bottomFinder,
0079 const DoubletSeedFinder& topFinder,
0080 const TripletSeedFinder& tripletFinder, const ITripletSeedFilter& filter,
0081 const SpacePointContainer2& spacePoints,
0082 const std::span<SpacePointContainer2::ConstRange>& bottomSpGroups,
0083 const SpacePointContainer2::ConstRange& middleSpGroup,
0084 const std::span<SpacePointContainer2::ConstRange>& topSpGroups,
0085 const std::pair<float, float>& radiusRangeForMiddle,
0086 SeedContainer2& outputSeeds) const;
0087
0088 private:
0089 std::unique_ptr<const Logger> m_logger;
0090
0091 const Logger& logger() const { return *m_logger; }
0092 };
0093
0094 }