|
ACTS
Experiment-independent tracking
|
Multi-dimensional binning defined by a product of one-dimensional axes. More...
#include <Acts/Utilities/MultiAxis.hpp>
Public Types | |
| using | AxesTuple = std::tuple<Axes...> |
| Tuple type holding the concrete axes. | |
| using | Base = IMultiAxisXD<sizeof...(Axes)> |
| Base interface for this multi-axis' dimension. | |
| using | GlobalBin = typename Base::GlobalBin |
| Flattened global bin index across all axes. | |
| using | LocalBins = typename Base::LocalBins |
| Statically sized multi-index holding one local bin index per axis. | |
| using | Point = typename Base::Point |
| Statically sized point holding one coordinate per axis. | |
| using | VectorPoint = Vector<DIM> |
| Point holding one coordinate per axis as an Eigen (algebra) vector. | |
| Public Types inherited from Acts::IMultiAxisXD< sizeof...(Axes)> | |
| using | AnyAxesArray |
| Statically sized array of (non-owning) pointers to the contained axes. | |
| using | AnyAxesTuple |
| Tuple of const references to the contained axes. | |
| using | LocalBins |
| Statically sized multi-index holding one local bin index per axis. | |
| using | Point |
| 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 | |
| MultiAxis (Axes &&... axes) | |
| Construct from individual axes (forwarding). | |
| MultiAxis (const Axes &... axes) | |
| Construct from individual axes (copy). | |
| MultiAxis (const std::tuple< Axes... > &axes) | |
| Construct from a tuple of axes (copy). | |
| MultiAxis (std::tuple< Axes... > &&axes) | |
| Construct from a tuple of axes (move). | |
| const AxesTuple & | getAxesTuple () const |
| Get the tuple of concrete axes. | |
| const IAxis & | getAxis (std::size_t i) const final |
| Get the axis at the given dimension. | |
| Point | getBinCenter (const LocalBins &localBins) const final |
| Get the center of the bin given by a multi-index. | |
| Point | getBinWidth (const LocalBins &localBins) const final |
| Get the bin width along each axis for a given multi-index. | |
| template<typename Derived> | |
| detail::FlatNeighborHoodIndices< DIM > | getClosestPointsIndices (const Eigen::MatrixBase< Derived > &point) const |
| Get the global bin indices of the grid points closest to the given point. | |
| detail::FlatNeighborHoodIndices< DIM > | getClosestPointsIndices (const LocalBins &localBins) const override |
| Get the global bin indices of the grid points closest to the given bin. | |
| detail::FlatNeighborHoodIndices< DIM > | getClosestPointsIndices (const Point &point) const override |
| Get the global bin indices of the grid points closest to the given point. | |
| GlobalBin | getGlobalBinFromLocalBins (const LocalBins &localBins) const final |
| Determine the flattened global bin index from a multi-index. | |
| template<typename Derived> | |
| GlobalBin | getGlobalBinFromLowerLeftEdge (const Eigen::MatrixBase< Derived > &point) const |
| Determine the flattened global bin index of the bin with the lower left edge closest to the given point for each axis. | |
| GlobalBin | getGlobalBinFromLowerLeftEdge (const Point &point) const |
| Determine the flattened global bin index of the bin with the lower left edge closest to the given point for each axis. | |
| template<typename Derived> | |
| GlobalBin | getGlobalBinFromPoint (const Eigen::MatrixBase< Derived > &point) const |
| Determine the flattened global bin index for a given point. | |
| GlobalBin | getGlobalBinFromPoint (const Point &point) const final |
| Determine the flattened global bin index for a given point. | |
| LocalBins | getLocalBinsFromGlobalBin (GlobalBin globalBin) const final |
| Determine the multi-index of local bin indices from a flattened global bin index. | |
| template<typename Derived> | |
| LocalBins | getLocalBinsFromLowerLeftEdge (const Eigen::MatrixBase< Derived > &point) const |
| Determine the multi-index of local bin indices for a given point, where the point is interpreted as being shifted by half a bin width along each axis. | |
| LocalBins | getLocalBinsFromLowerLeftEdge (const Point &point) const |
| Determine the multi-index of local bin indices for a given point, where the point is interpreted as being shifted by half a bin width along each axis. | |
| template<typename Derived> | |
| LocalBins | getLocalBinsFromPoint (const Eigen::MatrixBase< Derived > &point) const |
| Determine the multi-index of local bin indices for a given point. | |
| LocalBins | getLocalBinsFromPoint (const Point &point) const final |
| Determine the multi-index of local bin indices for a given point. | |
| Point | getLowerLeftBinEdge (const LocalBins &localBins) const final |
| Get the lower-left corner of the bin given by a multi-index. | |
| Point | getMaxPoint () const final |
| Get the upper boundary of the grid range along each axis. | |
| Point | getMinPoint () const final |
| Get the lower boundary of the grid range along each axis. | |
| LocalBins | getNBins () const final |
| Get the number of bins along each axis. | |
| detail::FlatNeighborHoodIndices< DIM > | getNeighborHoodIndices (const LocalBins &localBins, const std::array< std::pair< int, int >, DIM > &sizePerAxis) const final |
| Get the global bin indices of the bins in the neighborhood of a bin, with a separate neighborhood size per axis. | |
| detail::FlatNeighborHoodIndices< DIM > | getNeighborHoodIndices (const LocalBins &localBins, const std::pair< int, int > &size) const final |
| Get the global bin indices of the bins in the neighborhood of a bin. | |
| detail::FlatNeighborHoodIndices< DIM > | getNeighborHoodIndices (const LocalBins &localBins, std::size_t size=1u) const final |
| Get the global bin indices of the bins in the neighborhood of a bin. | |
| Point | getUpperRightBinEdge (const LocalBins &localBins) const final |
| Get the upper-right corner of the bin given by a multi-index. | |
| template<typename Derived> | |
| bool | isInside (const Eigen::MatrixBase< Derived > &point) const |
| Check whether a point lies inside the grid limits. | |
| bool | isInside (const Point &point) const final |
| Check whether a point lies inside the grid limits. | |
| Public Member Functions inherited from Acts::IMultiAxisXD< sizeof...(Axes)> | |
| 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. | |
| std::size_t | getNAxes () const override |
| Get the number of axes spanning the grid. | |
| 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 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 = Base::DIM |
| Dimension of the grid (number of axes). | |
| Static Public Attributes inherited from Acts::IMultiAxisXD< sizeof...(Axes)> | |
| static constexpr std::size_t | 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. | |
Multi-dimensional binning defined by a product of one-dimensional axes.
This class stores a fixed set of concrete Axis objects in a tuple and implements the IMultiAxisXD interface for the resulting grid. The grid dimension and the concrete axis types (binning and boundary types) are fixed at compile time, while the IMultiAxis base allows handling different multi-axes through a common pointer. The grid index conventions (per-axis local bin indices starting at 1, under-/overflow bins at 0 and nBins + 1, and flattened global bin indices including those under-/overflow bins) are described on IMultiAxis.
| Axes | parameter pack of concrete Axis types spanning the grid |
|
explicit |
Construct from a tuple of axes (copy).
| axes | tuple of axes spanning the grid |
|
explicit |
Construct from a tuple of axes (move).
| axes | tuple of axes spanning the grid |
|
explicit |
Construct from individual axes (forwarding).
| axes | axes spanning the grid |
|
explicit |
Construct from individual axes (copy).
| axes | axes spanning the grid |
| const AxesTuple & Acts::MultiAxis< Axes >::getAxesTuple | ( | ) | const |
Get the tuple of concrete axes.
|
finalvirtual |
Get the axis at the given dimension.
| i | index of the axis |
Implements Acts::IMultiAxis.
|
finalvirtual |
Get the center of the bin given by a multi-index.
| localBins | local bin indices along each axis |
Reimplemented from Acts::IMultiAxisXD< sizeof...(Axes)>.
|
finalvirtual |
Get the bin width along each axis for a given multi-index.
| localBins | local bin indices along each axis |
Reimplemented from Acts::IMultiAxisXD< sizeof...(Axes)>.
| detail::FlatNeighborHoodIndices< DIM > Acts::MultiAxis< Axes >::getClosestPointsIndices | ( | const Eigen::MatrixBase< Derived > & | point | ) | const |
Get the global bin indices of the grid points closest to the given point.
| Derived | Eigen expression type of the point (e.g. VectorPoint) |
| point | coordinates to look up, one per axis |
|
overridevirtual |
Get the global bin indices of the grid points closest to the given bin.
| localBins | local bin indices of the bin of interest |
Implements Acts::IMultiAxisXD< sizeof...(Axes)>.
|
overridevirtual |
Get the global bin indices of the grid points closest to the given point.
| point | coordinates to look up, one per axis |
Reimplemented from Acts::IMultiAxisXD< sizeof...(Axes)>.
|
finalvirtual |
Determine the flattened global bin index from a multi-index.
| localBins | local bin indices along each axis (under-/overflow bins are allowed) |
Reimplemented from Acts::IMultiAxisXD< sizeof...(Axes)>.
| GlobalBin Acts::MultiAxis< Axes >::getGlobalBinFromLowerLeftEdge | ( | const Eigen::MatrixBase< Derived > & | point | ) | const |
Determine the flattened global bin index of the bin with the lower left edge closest to the given point for each axis.
| point | coordinates to look up, one per axis |
| Derived | Eigen expression type of the point (e.g. VectorPoint) |
| GlobalBin Acts::MultiAxis< Axes >::getGlobalBinFromLowerLeftEdge | ( | const Point & | point | ) | const |
Determine the flattened global bin index of the bin with the lower left edge closest to the given point for each axis.
| point | coordinates to look up, one per axis |
| GlobalBin Acts::MultiAxis< Axes >::getGlobalBinFromPoint | ( | const Eigen::MatrixBase< Derived > & | point | ) | const |
Determine the flattened global bin index for a given point.
| Derived | Eigen expression type of the point (e.g. VectorPoint) |
| point | coordinates to look up, one per axis |
|
finalvirtual |
Determine the flattened global bin index for a given point.
| point | coordinates to look up, one per axis |
Reimplemented from Acts::IMultiAxisXD< sizeof...(Axes)>.
|
finalvirtual |
Determine the multi-index of local bin indices from a flattened global bin index.
| globalBin | global bin index |
Reimplemented from Acts::IMultiAxisXD< sizeof...(Axes)>.
| LocalBins Acts::MultiAxis< Axes >::getLocalBinsFromLowerLeftEdge | ( | const Eigen::MatrixBase< Derived > & | point | ) | const |
Determine the multi-index of local bin indices for a given point, where the point is interpreted as being shifted by half a bin width along each axis.
| point | coordinates to look up, one per axis |
| Derived | Eigen expression type of the point (e.g. VectorPoint) |
| LocalBins Acts::MultiAxis< Axes >::getLocalBinsFromLowerLeftEdge | ( | const Point & | point | ) | const |
Determine the multi-index of local bin indices for a given point, where the point is interpreted as being shifted by half a bin width along each axis.
| point | coordinates to look up, one per axis |
| LocalBins Acts::MultiAxis< Axes >::getLocalBinsFromPoint | ( | const Eigen::MatrixBase< Derived > & | point | ) | const |
Determine the multi-index of local bin indices for a given point.
| Derived | Eigen expression type of the point (e.g. VectorPoint) |
| point | coordinates to look up, one per axis |
|
finalvirtual |
Determine the multi-index of local bin indices for a given point.
| point | coordinates to look up, one per axis |
Reimplemented from Acts::IMultiAxisXD< sizeof...(Axes)>.
|
finalvirtual |
Get the lower-left corner of the bin given by a multi-index.
| localBins | local bin indices along each axis |
Reimplemented from Acts::IMultiAxisXD< sizeof...(Axes)>.
|
finalvirtual |
Get the upper boundary of the grid range along each axis.
Reimplemented from Acts::IMultiAxisXD< sizeof...(Axes)>.
|
finalvirtual |
Get the lower boundary of the grid range along each axis.
Reimplemented from Acts::IMultiAxisXD< sizeof...(Axes)>.
|
finalvirtual |
Get the number of bins along each axis.
Reimplemented from Acts::IMultiAxisXD< sizeof...(Axes)>.
|
finalvirtual |
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 |
Implements Acts::IMultiAxisXD< sizeof...(Axes)>.
|
finalvirtual |
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 |
Implements Acts::IMultiAxisXD< sizeof...(Axes)>.
|
finalvirtual |
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) |
Implements Acts::IMultiAxisXD< sizeof...(Axes)>.
|
finalvirtual |
Get the upper-right corner of the bin given by a multi-index.
| localBins | local bin indices along each axis |
Reimplemented from Acts::IMultiAxisXD< sizeof...(Axes)>.
| bool Acts::MultiAxis< Axes >::isInside | ( | const Eigen::MatrixBase< Derived > & | point | ) | const |
Check whether a point lies inside the grid limits.
| Derived | Eigen expression type of the point (e.g. VectorPoint) |
| point | coordinates to check, one per axis |
true if the point is within range along every axis
|
finalvirtual |
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 from Acts::IMultiAxisXD< sizeof...(Axes)>.