File BinnedSPGroup.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

template<typename external_spacepoint_t>
class BinnedSPGroup
#include <Acts/Seeding/BinnedSPGroup.hpp>

BinnedSPGroup Provides access to begin and end BinnedSPGroupIterator for given BinFinders and SpacePointGrid.

Fulfills the range_expression interface.

Public Functions

BinnedSPGroup() = delete
template<typename spacepoint_iterator_t, typename callable_t>
BinnedSPGroup(spacepoint_iterator_t spBegin, spacepoint_iterator_t spEnd, callable_t &&toGlobal, std::shared_ptr<const Acts::BinFinder<external_spacepoint_t>> botBinFinder, std::shared_ptr<const Acts::BinFinder<external_spacepoint_t>> tBinFinder, std::unique_ptr<SpacePointGrid<external_spacepoint_t>> grid, Acts::Extent &rRangeSPExtent, const SeedFinderConfig<external_spacepoint_t> &_config, const SeedFinderOptions &_options)
BinnedSPGroup(const BinnedSPGroup&) = delete
BinnedSPGroup(BinnedSPGroup&&) noexcept = default
~BinnedSPGroup() = default
BinnedSPGroupIterator<external_spacepoint_t> begin()
BinnedSPGroupIterator<external_spacepoint_t> end()
inline Acts::SpacePointGrid<external_spacepoint_t> &grid()
BinnedSPGroup &operator=(const BinnedSPGroup&) = delete
BinnedSPGroup &operator=(BinnedSPGroup&&) noexcept = default
size_t size() const

Private Members

std::vector<size_t> m_bins
std::shared_ptr<const BinFinder<external_spacepoint_t>> m_bottomBinFinder
std::unique_ptr<Acts::SpacePointGrid<external_spacepoint_t>> m_grid
std::shared_ptr<const BinFinder<external_spacepoint_t>> m_topBinFinder
template<typename external_spacepoint_t>
class BinnedSPGroupIterator
#include <Acts/Seeding/BinnedSPGroup.hpp>

BinnedSPGroupIterator Allows to iterate over all groups of bins a provided BinFinder can generate for each bin of a provided SPGrid

SpacePointGrid is a very specific structure. We know it is 2D and what it contains No need to be too general with this class

Public Functions

BinnedSPGroupIterator(BinnedSPGroup<external_spacepoint_t> &&group, std::size_t) = delete
BinnedSPGroupIterator(BinnedSPGroup<external_spacepoint_t> &group, std::size_t index)
BinnedSPGroupIterator(const BinnedSPGroupIterator&) = delete
BinnedSPGroupIterator(BinnedSPGroupIterator&&) noexcept = default
~BinnedSPGroupIterator() = default
bool operator!=(const BinnedSPGroupIterator &other) const
std::tuple<boost::container::small_vector<size_t, 9>, std::size_t, boost::container::small_vector<size_t, 9>> operator*() const
BinnedSPGroupIterator &operator++()
BinnedSPGroupIterator &operator=(const BinnedSPGroupIterator&) = delete
BinnedSPGroupIterator &operator=(BinnedSPGroupIterator&&) noexcept = default
bool operator==(const BinnedSPGroupIterator &other) const

Private Types

enum INDEX

Values:

enumerator PHI
enumerator Z

Private Functions

void findNotEmptyBin()

Private Members

std::array<std::size_t, 2> m_current_localBins = {0, 0}

Current Local Bins.

Acts::detail::RefHolder<BinnedSPGroup<external_spacepoint_t>> m_group

The group, it contains the grid and the bin finders.

std::array<std::size_t, 2> m_max_localBins

Max Local Bins - limits of the grid.