Warning, file /include/Acts/Seeding/BinnedGroup.hpp was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
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 #include "Acts/Utilities/GridIterator.hpp"
0014 #include "Acts/Utilities/Holders.hpp"
0015
0016 #include <memory>
0017 #include <vector>
0018
0019 namespace Acts {
0020
0021
0022
0023
0024
0025
0026
0027 template <typename grid_t>
0028 class BinnedGroup {
0029 public:
0030 friend BinnedGroupIterator<grid_t>;
0031
0032 static constexpr std::size_t DIM = grid_t::DIM;
0033
0034
0035 BinnedGroup() = delete;
0036
0037
0038 BinnedGroup(grid_t&& grid, const Acts::GridBinFinder<DIM>& bottomFinder,
0039 const Acts::GridBinFinder<DIM>& topFinder,
0040 std::array<std::vector<std::size_t>, DIM> navigation =
0041 std::array<std::vector<std::size_t>, DIM>());
0042
0043 BinnedGroup(grid_t&& grid, std::vector<bool> mask,
0044 const Acts::GridBinFinder<DIM>& bottomFinder,
0045 const Acts::GridBinFinder<DIM>& topFinder,
0046 std::array<std::vector<std::size_t>, DIM> navigation =
0047 std::array<std::vector<std::size_t>, DIM>());
0048
0049 BinnedGroup(grid_t& grid, const Acts::GridBinFinder<DIM>& bottomFinder,
0050 const Acts::GridBinFinder<DIM>& topFinder,
0051 std::array<std::vector<std::size_t>, DIM> navigation =
0052 std::array<std::vector<std::size_t>, DIM>()) = delete;
0053
0054
0055
0056 BinnedGroup(const BinnedGroup<grid_t>& other) = delete;
0057
0058
0059
0060 BinnedGroup<grid_t>& operator=(const BinnedGroup<grid_t>& other) = delete;
0061
0062
0063
0064 BinnedGroup(BinnedGroup<grid_t>&& other) noexcept = default;
0065
0066
0067
0068 BinnedGroup<grid_t>& operator=(BinnedGroup<grid_t>&& other) noexcept =
0069 default;
0070
0071
0072 ~BinnedGroup() = default;
0073
0074
0075
0076 const grid_t& grid() const;
0077
0078
0079 grid_t& grid();
0080
0081
0082
0083
0084 const std::vector<bool>& mask() const;
0085
0086
0087
0088 Acts::BinnedGroupIterator<grid_t> begin() const;
0089
0090
0091 Acts::BinnedGroupIterator<grid_t> end() const;
0092
0093 private:
0094
0095 grid_t m_grid;
0096
0097
0098 std::vector<bool> m_mask{};
0099
0100 const Acts::GridBinFinder<DIM>* m_bottomBinFinder{nullptr};
0101
0102 const Acts::GridBinFinder<DIM>* m_topBinFinder{nullptr};
0103
0104 std::array<std::vector<std::size_t>, DIM> m_bins{};
0105 };
0106
0107 }
0108
0109 #include "Acts/Seeding/BinnedGroup.ipp"