File indexing completed on 2025-07-15 08:11:59
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Seeding/BinnedGroupIterator.hpp"
0012 #include "Acts/Utilities/GridBinFinder.hpp"
0013
0014 #include <vector>
0015
0016 namespace Acts {
0017
0018
0019
0020
0021
0022
0023
0024 template <typename grid_t>
0025 class BinnedGroup {
0026 public:
0027 friend BinnedGroupIterator<grid_t>;
0028
0029 static constexpr std::size_t DIM = grid_t::DIM;
0030
0031
0032 BinnedGroup() = delete;
0033
0034
0035 BinnedGroup(grid_t&& grid, const GridBinFinder<DIM>& bottomFinder,
0036 const GridBinFinder<DIM>& topFinder,
0037 std::array<std::vector<std::size_t>, DIM> navigation =
0038 std::array<std::vector<std::size_t>, DIM>());
0039
0040 BinnedGroup(grid_t&& grid, std::vector<bool> mask,
0041 const GridBinFinder<DIM>& bottomFinder,
0042 const GridBinFinder<DIM>& topFinder,
0043 std::array<std::vector<std::size_t>, DIM> navigation =
0044 std::array<std::vector<std::size_t>, DIM>());
0045
0046 BinnedGroup(grid_t& grid, const GridBinFinder<DIM>& bottomFinder,
0047 const GridBinFinder<DIM>& topFinder,
0048 std::array<std::vector<std::size_t>, DIM> navigation =
0049 std::array<std::vector<std::size_t>, DIM>()) = delete;
0050
0051
0052
0053 BinnedGroup(const BinnedGroup<grid_t>& other) = delete;
0054
0055
0056
0057 BinnedGroup<grid_t>& operator=(const BinnedGroup<grid_t>& other) = delete;
0058
0059
0060
0061 BinnedGroup(BinnedGroup<grid_t>&& other) noexcept = default;
0062
0063
0064
0065 BinnedGroup<grid_t>& operator=(BinnedGroup<grid_t>&& other) noexcept =
0066 default;
0067
0068
0069 ~BinnedGroup() = default;
0070
0071
0072
0073 const grid_t& grid() const;
0074
0075
0076 grid_t& grid();
0077
0078
0079
0080
0081 const std::vector<bool>& mask() const;
0082
0083
0084
0085 BinnedGroupIterator<grid_t> begin() const;
0086
0087
0088 BinnedGroupIterator<grid_t> end() const;
0089
0090 private:
0091
0092 grid_t m_grid;
0093
0094
0095 std::vector<bool> m_mask{};
0096
0097 const GridBinFinder<DIM>* m_bottomBinFinder{nullptr};
0098
0099 const GridBinFinder<DIM>* m_topBinFinder{nullptr};
0100
0101 std::array<std::vector<std::size_t>, DIM> m_bins{};
0102 };
0103
0104 }
0105
0106 #include "Acts/Seeding/BinnedGroup.ipp"