File BinnedSPGroup.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

Typedefs

using NeighborhoodVector = boost::container::small_vector<size_t, 10>
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>
BinnedSPGroup(spacepoint_iterator_t spBegin, spacepoint_iterator_t spEnd, std::function<std::pair<Acts::Vector3, Acts::Vector2>(const external_spacepoint_t&, float, float, float)>, std::shared_ptr<Acts::BinFinder<external_spacepoint_t>> botBinFinder, std::shared_ptr<Acts::BinFinder<external_spacepoint_t>> tBinFinder, std::unique_ptr<SpacePointGrid<external_spacepoint_t>> grid, const SeedfinderConfig<external_spacepoint_t> &_config)
inline BinnedSPGroupIterator<external_spacepoint_t> begin()
inline BinnedSPGroupIterator<external_spacepoint_t> end()
inline size_t size()

Private Members

std::unique_ptr<Acts::SpacePointGrid<external_spacepoint_t>> m_binnedSP
std::vector<size_t> m_bins
std::shared_ptr<BinFinder<external_spacepoint_t>> m_bottomBinFinder
std::shared_ptr<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

Public Functions

inline BinnedSPGroupIterator(const SpacePointGrid<external_spacepoint_t> *spgrid, BinFinder<external_spacepoint_t> *botBinFinder, BinFinder<external_spacepoint_t> *tBinFinder, std::vector<size_t> bins = {})
inline BinnedSPGroupIterator(const SpacePointGrid<external_spacepoint_t> *spgrid, BinFinder<external_spacepoint_t> *botBinFinder, BinFinder<external_spacepoint_t> *tBinFinder, size_t phiInd, size_t zInd, std::vector<size_t> bins = {})
inline Neighborhood<external_spacepoint_t> bottom()
inline Neighborhood<external_spacepoint_t> middle()
inline bool operator!=(const BinnedSPGroupIterator &otherState)
inline BinnedSPGroupIterator &operator++()
inline bool operator==(const BinnedSPGroupIterator &otherState)
inline Neighborhood<external_spacepoint_t> top()

Private Members

NeighborhoodVector bottomBinIndices
NeighborhoodVector currentBin
std::vector<size_t> customZorder
const SpacePointGrid<external_spacepoint_t> *grid
BinFinder<external_spacepoint_t> *m_bottomBinFinder
BinFinder<external_spacepoint_t> *m_topBinFinder
size_t outputIndex = 0
size_t phiIndex = 1
std::array<long unsigned int, 2ul> phiZbins
NeighborhoodVector topBinIndices
size_t zIndex = 1
template<typename external_spacepoint_t>
class Neighborhood
#include <Acts/Seeding/BinnedSPGroup.hpp>

Neighborhood Used to access iterators to access a group of bins returned by a BinFinder.

Fulfills the range_expression interface

Public Functions

Neighborhood() = delete
inline Neighborhood(NeighborhoodVector indices, const SpacePointGrid<external_spacepoint_t> *spgrid)
inline NeighborhoodIterator<external_spacepoint_t> begin()
inline NeighborhoodIterator<external_spacepoint_t> end()

Private Members

NeighborhoodVector m_indices
const SpacePointGrid<external_spacepoint_t> *m_spgrid
template<typename external_spacepoint_t>
class NeighborhoodIterator
#include <Acts/Seeding/BinnedSPGroup.hpp>

Iterates over the elements of all bins given by the indices parameter in the given SpacePointGrid.

Fullfills the forward iterator.

Public Types

using sp_it_t = typename std::vector<std::unique_ptr<InternalSpacePoint<external_spacepoint_t>>>::const_iterator

Public Functions

NeighborhoodIterator() = delete
inline NeighborhoodIterator(NeighborhoodVector indices, const SpacePointGrid<external_spacepoint_t> *spgrid)
inline NeighborhoodIterator(NeighborhoodVector indices, const SpacePointGrid<external_spacepoint_t> *spgrid, size_t curInd, sp_it_t curIt)
inline NeighborhoodIterator(const NeighborhoodIterator<external_spacepoint_t> &other)
inline bool operator!=(const NeighborhoodIterator<external_spacepoint_t> &other)
inline InternalSpacePoint<external_spacepoint_t> *operator*()
inline void operator++()

Public Members

sp_it_t m_binEnd
size_t m_curInd
sp_it_t m_curIt
const Acts::SpacePointGrid<external_spacepoint_t> *m_grid
NeighborhoodVector m_indices

Public Static Functions

static inline NeighborhoodIterator<external_spacepoint_t> begin(NeighborhoodVector indices, const SpacePointGrid<external_spacepoint_t> *spgrid)