|
ACTS
Experiment-independent tracking
|
Common base class for all multi-axes of a fixed, compile-time dimension. More...
#include <Acts/Utilities/IMultiAxis.hpp>
Public Types | |
| using | AnyAxesArray = std::array<const IAxis*, DIM> |
| Statically sized array of (non-owning) pointers to the contained axes. | |
| using | AnyAxesTuple |
| Tuple of const references to the contained axes. | |
| using | LocalBins = std::array<std::size_t, DIM> |
| Statically sized multi-index holding one local bin index per axis. | |
| using | Point = std::array<double, DIM> |
| Statically sized point holding one coordinate per axis. | |
| Public Types inherited from Acts::IMultiAxis | |
| using | AnyAxesVector = SmallVector<const IAxis*> |
| Dynamically sized vector of (non-owning) pointers to the contained axes. | |
| using | AnyLocalBins = SmallVector<std::size_t> |
| Dynamically sized multi-index holding one local bin index per axis. | |
| using | AnyPoint = SmallVector<double> |
| Dynamically sized point holding one coordinate per axis. | |
| using | GlobalBin = std::size_t |
| Flattened global bin index across all axes. | |
Public Member Functions | |
| virtual AnyAxesArray | getAnyAxesArray () const |
| Get (non-owning) pointers to all contained axes. | |
| virtual AnyAxesTuple | getAnyAxesTuple () const |
| Get const references to all contained axes as a tuple. | |
| virtual Point | getBinCenter (const LocalBins &localBins) const |
| Get the center of the bin given by a multi-index. | |
| virtual Point | getBinWidth (const LocalBins &localBins) const |
| Get the bin width along each axis for a given multi-index. | |
| virtual detail::FlatNeighborHoodIndices< DIM > | getClosestPointsIndices (const LocalBins &localBins) const =0 |
| Get the global bin indices of the grid points closest to the given bin. | |
| virtual detail::FlatNeighborHoodIndices< DIM > | getClosestPointsIndices (const Point &point) const |
| Get the global bin indices of the grid points closest to the given point. | |
| virtual GlobalBin | getGlobalBinFromLocalBins (const LocalBins &localBins) const |
| Determine the flattened global bin index from a multi-index. | |
| virtual GlobalBin | getGlobalBinFromPoint (const Point &point) const |
| Determine the flattened global bin index for a given point. | |
| virtual LocalBins | getLocalBinsFromGlobalBin (GlobalBin globalBin) const |
| Determine the multi-index of local bin indices from a flattened global bin index. | |
| virtual LocalBins | getLocalBinsFromPoint (const Point &point) const |
| Determine the multi-index of local bin indices for a given point. | |
| virtual Point | getLowerLeftBinEdge (const LocalBins &localBins) const |
| Get the lower-left corner of the bin given by a multi-index. | |
| virtual Point | getMaxPoint () const |
| Get the upper boundary of the grid range along each axis. | |
| virtual Point | getMinPoint () const |
| Get the lower boundary of the grid range along each axis. | |
| std::size_t | getNAxes () const override |
| Get the number of axes spanning the grid. | |
| virtual LocalBins | getNBins () const |
| Get the number of bins along each axis. | |
| virtual detail::FlatNeighborHoodIndices< DIM > | getNeighborHoodIndices (const LocalBins &localBins, const std::array< std::pair< int, int >, DIM > &sizePerAxis) const =0 |
| Get the global bin indices of the bins in the neighborhood of a bin, with a separate neighborhood size per axis. | |
| virtual detail::FlatNeighborHoodIndices< DIM > | getNeighborHoodIndices (const LocalBins &localBins, const std::pair< int, int > &size) const =0 |
| Get the global bin indices of the bins in the neighborhood of a bin. | |
| virtual detail::FlatNeighborHoodIndices< DIM > | getNeighborHoodIndices (const LocalBins &localBins, std::size_t size=1u) const =0 |
| Get the global bin indices of the bins in the neighborhood of a bin. | |
| virtual Point | getUpperRightBinEdge (const LocalBins &localBins) const |
| Get the upper-right corner of the bin given by a multi-index. | |
| virtual bool | isInside (const Point &point) const |
| Check whether a point lies inside the grid limits. | |
| Public Member Functions inherited from Acts::IMultiAxis | |
| iterator | begin () const |
| iterator | end () const |
| virtual AnyAxesVector | getAnyAxesVector () const |
| Get (non-owning) pointers to all contained axes. | |
| virtual const IAxis & | getAxis (std::size_t i) const =0 |
| Get the axis at the given dimension. | |
| virtual AnyPoint | getBinCenterAny (const AnyLocalBins &indices) const |
| Get the center of the bin given by a multi-index. | |
| virtual AnyPoint | getLowerLeftBinEdgeAny (const AnyLocalBins &indices) const |
| Get the lower-left corner of the bin given by a multi-index. | |
| virtual AnyPoint | getMaxPointAny () const |
| Get the upper boundary of the grid range along each axis. | |
| virtual AnyPoint | getMinPointAny () const |
| Get the lower boundary of the grid range along each axis. | |
| virtual AnyLocalBins | getNBinsAny () const |
| Get the number of bins along each axis. | |
| virtual std::size_t | getNTotalBins (bool includeOverflowBins=false) const |
| Get the total number of bins in the grid. | |
| virtual AnyPoint | getUpperRightBinEdgeAny (const AnyLocalBins &indices) const |
| Get the upper-right corner of the bin given by a multi-index. | |
| virtual bool | isInsideAny (const AnyPoint &point) const |
| Check whether a point lies inside the grid limits. | |
Static Public Attributes | |
| static constexpr std::size_t | DIM = _DIM |
| Dimension of the grid (number of axes). | |
Additional Inherited Members | |
| Static Public Member Functions inherited from Acts::IMultiAxis | |
| static std::unique_ptr< IMultiAxis1D > | create (const IAxis &axis1) |
| Factory method to create a multi-axis of dimension 1. | |
| static std::unique_ptr< IMultiAxis2D > | create (const IAxis &axis1, const IAxis &axis2) |
| Factory method to create a multi-axis of dimension 2. | |
| static std::unique_ptr< IMultiAxis3D > | create (const IAxis &axis1, const IAxis &axis2, const IAxis &axis3) |
| Factory method to create a multi-axis of dimension 3. | |
| Protected Member Functions inherited from Acts::IMultiAxis | |
| virtual void | toStream (std::ostream &os) const |
| Print the contained axes to the given stream. | |
Common base class for all multi-axes of a fixed, compile-time dimension.
On top of the dynamically sized IMultiAxis API this adds a statically sized API (using std::array of fixed length DIM) and the grid index conversions between points, multi-indices and flattened global indices. The actual axis storage is provided by the concrete MultiAxis derived class.
| _DIM | number of axes (dimension of the grid) |
| using Acts::IMultiAxisXD< _DIM >::AnyAxesTuple |
Tuple of const references to the contained axes.
|
virtual |
Get (non-owning) pointers to all contained axes.
|
virtual |
Get const references to all contained axes as a tuple.
|
virtual |
Get the center of the bin given by a multi-index.
| localBins | local bin indices along each axis |
Reimplemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
virtual |
Get the bin width along each axis for a given multi-index.
| localBins | local bin indices along each axis |
Reimplemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
pure virtual |
Get the global bin indices of the grid points closest to the given bin.
| localBins | local bin indices of the bin of interest |
Implemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
virtual |
Get the global bin indices of the grid points closest to the given point.
| point | coordinates to look up, one per axis |
Reimplemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
virtual |
Determine the flattened global bin index from a multi-index.
| localBins | local bin indices along each axis (under-/overflow bins are allowed) |
Reimplemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
virtual |
Determine the flattened global bin index for a given point.
| point | coordinates to look up, one per axis |
Reimplemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
virtual |
Determine the multi-index of local bin indices from a flattened global bin index.
| globalBin | global bin index |
Reimplemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
virtual |
Determine the multi-index of local bin indices for a given point.
| point | coordinates to look up, one per axis |
Reimplemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
virtual |
Get the lower-left corner of the bin given by a multi-index.
| localBins | local bin indices along each axis |
Reimplemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
virtual |
Get the upper boundary of the grid range along each axis.
Reimplemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
virtual |
Get the lower boundary of the grid range along each axis.
Reimplemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
overridevirtual |
Get the number of axes spanning the grid.
DIM Implements Acts::IMultiAxis.
|
virtual |
Get the number of bins along each axis.
Reimplemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
pure virtual |
Get the global bin indices of the bins in the neighborhood of a bin, with a separate neighborhood size per axis.
| localBins | local bin indices of the bin of interest |
| sizePerAxis | per-axis lower/upper number of adjacent bins to include |
Implemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
pure virtual |
Get the global bin indices of the bins in the neighborhood of a bin.
| localBins | local bin indices of the bin of interest |
| size | of neighborhood determining how many adjacent bins along each axis are considered |
Implemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
pure virtual |
Get the global bin indices of the bins in the neighborhood of a bin.
| localBins | local bin indices of the bin of interest |
| size | number of adjacent bins to include along each axis (symmetric) |
Implemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
virtual |
Get the upper-right corner of the bin given by a multi-index.
| localBins | local bin indices along each axis |
Reimplemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.
|
virtual |
Check whether a point lies inside the grid limits.
| point | coordinates to check, one per axis |
true if the point is within range along every axis Reimplemented in Acts::MultiAxis< Axes >, and Acts::MultiAxis< Axes... >.