File indexing completed on 2026-08-27 08:30:34
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Seeding/GbtsLayerConnection.hpp"
0012 #include "Acts/Seeding/GbtsLayerDescription.hpp"
0013 #include "Acts/Seeding/detail/GbtsLayer.hpp"
0014 #include "Acts/Utilities/Logger.hpp"
0015
0016 #include <cstdint>
0017 #include <map>
0018 #include <vector>
0019
0020 namespace Acts::Experimental {
0021
0022 class GbtsNodeStorage;
0023 class GbtsTrackingFilter;
0024 class GraphBasedTrackSeeder;
0025
0026
0027 class GbtsGeometry final {
0028 public:
0029
0030
0031
0032
0033 GbtsGeometry(const std::vector<GbtsLayerDescription>& layerDescriptions,
0034 const GbtsLayerConnectionMap& layerConnections,
0035 const Logger& logger = getDummyLogger());
0036
0037 private:
0038
0039 friend class GbtsNodeStorage;
0040 friend class GbtsTrackingFilter;
0041 friend class GraphBasedTrackSeeder;
0042
0043
0044
0045 std::uint32_t numBins() const { return m_nEtaBins; }
0046
0047
0048
0049 const std::vector<std::pair<std::uint32_t, std::vector<std::uint32_t>>>&
0050 binGroups() const {
0051 return m_binGroups;
0052 }
0053
0054
0055
0056
0057 const detail::GbtsLayer* layerById(std::uint32_t id) const;
0058
0059
0060
0061
0062 const detail::GbtsLayer& layerByIndex(std::int32_t idx) const;
0063
0064
0065
0066
0067 std::uint32_t layerIdByIndex(std::uint32_t idx) const {
0068 return m_layers.at(idx).layerDescription().id;
0069 }
0070
0071
0072
0073
0074 const detail::GbtsLayer& createLayer(
0075 const GbtsLayerDescription& layerDescription, std::uint32_t bin0);
0076
0077
0078 float m_etaBinWidth{};
0079
0080
0081 std::vector<detail::GbtsLayer> m_layers;
0082
0083 std::map<std::uint32_t, std::uint32_t> m_layerFromUserIdMap;
0084
0085 std::uint32_t m_nEtaBins{};
0086
0087
0088 std::vector<std::pair<std::uint32_t, std::vector<std::uint32_t>>> m_binGroups;
0089 };
0090
0091 }