File indexing completed on 2025-07-12 07:51:38
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/EventData/Seed.hpp"
0012 #include "Acts/Seeding/SeedFinderGbtsConfig.hpp"
0013 #include "Acts/TrackFinding/RoiDescriptor.hpp"
0014 #include "Acts/Utilities/Logger.hpp"
0015
0016 #include <memory>
0017 #include <string>
0018 #include <vector>
0019
0020 namespace Acts::Experimental {
0021
0022 template <typename external_spacepoint_t>
0023 struct GbtsTrigTracklet {
0024 public:
0025 GbtsTrigTracklet(std::vector<const GbtsSP<external_spacepoint_t> *> &vSP,
0026 std::vector<TrigInDetTriplet<external_spacepoint_t>> &tbuf)
0027 : m_track(vSP), m_seeds(tbuf) {}
0028
0029 std::vector<const GbtsSP<external_spacepoint_t> *> m_track;
0030 std::vector<TrigInDetTriplet<external_spacepoint_t>> m_seeds;
0031 };
0032
0033 template <typename external_spacepoint_t>
0034 class SeedFinderGbts {
0035 public:
0036 static constexpr std::size_t NDims = 3;
0037
0038 using seed_t = Seed<external_spacepoint_t>;
0039
0040
0041 SeedFinderGbts(const SeedFinderGbtsConfig<external_spacepoint_t> &config,
0042 const GbtsGeometry<external_spacepoint_t> &gbtsgeo,
0043 std::unique_ptr<const Acts::Logger> logger =
0044 Acts::getDefaultLogger("Finder",
0045 Acts::Logging::Level::INFO));
0046
0047 ~SeedFinderGbts() = default;
0048 SeedFinderGbts() = default;
0049 SeedFinderGbts(const SeedFinderGbts<external_spacepoint_t> &) = delete;
0050 SeedFinderGbts<external_spacepoint_t> &operator=(
0051 const SeedFinderGbts<external_spacepoint_t> &) = delete;
0052
0053 void loadSpacePoints(
0054 const std::vector<GbtsSP<external_spacepoint_t>> &gbtsSPvect);
0055
0056
0057 template <typename output_container_t>
0058 void createSeeds(const RoiDescriptor & ,
0059 const GbtsGeometry<external_spacepoint_t> & ,
0060 output_container_t & );
0061
0062 std::vector<seed_t> createSeeds(
0063 const RoiDescriptor & ,
0064 const GbtsGeometry<external_spacepoint_t> & );
0065
0066 private:
0067 enum Dim { DimPhi = 0, DimR = 1, DimZ = 2 };
0068
0069
0070 SeedFinderGbtsConfig<external_spacepoint_t> m_config;
0071
0072 void runGbts_TrackFinder(
0073 std::vector<GbtsTrigTracklet<external_spacepoint_t>> &vTracks,
0074 const RoiDescriptor &roi,
0075 const GbtsGeometry<external_spacepoint_t> &gbtsgeo);
0076
0077
0078 std::unique_ptr<GbtsDataStorage<external_spacepoint_t>> m_storage{nullptr};
0079
0080
0081 std::vector<TrigInDetTriplet<external_spacepoint_t>> m_triplets;
0082
0083 const Acts::Logger &logger() const { return *m_logger; }
0084 std::unique_ptr<const Acts::Logger> m_logger =
0085 Acts::getDefaultLogger("Finder", Acts::Logging::Level::INFO);
0086 };
0087
0088 }
0089
0090 #include "Acts/Seeding/SeedFinderGbts.ipp"