Analysis Software
Documentation for sPHENIX simulation software
|
An orthogonal range in an arbitrary number of dimensions. More...
#include <acts/blob/sPHENIX/Core/include/Acts/Utilities/RangeXD.hpp>
Public Types | |
using | coordinate_t = Vector< Type, Dims > |
The type used to describe coordinates in our range. | |
Public Member Functions | |
bool | degenerate (void) const |
Determine whether this range is degenerate. | |
bool | contains (const coordinate_t &v) const |
Determine whether the range contains a certain point. | |
Range1D< Type > & | operator[] (const std::size_t &i) |
Access one of the dimensional ranges of the volume. | |
const Range1D< Type > & | operator[] (const std::size_t &i) const |
Access one of the dimensional ranges of the volume. | |
bool | operator== (const RangeXD< Dims, Type, Vector > &o) const |
Determine whether two ranges are equal. | |
bool | operator<= (const RangeXD< Dims, Type, Vector > &o) const |
Determine whether one range is a subset of another range. | |
bool | operator>= (const RangeXD< Dims, Type, Vector > &o) const |
Determine whether one range is a superset of another range. | |
RangeXD< Dims, Type, Vector > | operator& (const RangeXD< Dims, Type, Vector > &o) const |
Compute the intersection of this range with another range. | |
RangeXD< Dims, Type, Vector > & | operator&= (const RangeXD< Dims, Type, Vector > &o) |
Update the range to the intersection with another range. | |
bool | operator&& (const RangeXD< Dims, Type, Vector > &r) const |
Determine whether this range intersects another. | |
std::string | toString (void) const |
Represent the range as a string. | |
Private Attributes | |
std::array< Range1D< Type >, Dims > | m_dims |
An orthogonal range in an arbitrary number of dimensions.
By combining a number one-dimensional ranges we can (under the assumption that our axes are orthogonal) construct an orthogonal range of values. In other words, a hyperrectangular volume in space.
Dims | The number of dimensions in our range |
Type | The scalar type of our ranges |
Vector | The vector type used to define coordinates |
Definition at line 31 of file RangeXD.hpp.
View newest version in sPHENIX GitHub at line 31 of file RangeXD.hpp
using Acts::RangeXD< Dims, Type, Vector >::coordinate_t = Vector<Type, Dims> |
The type used to describe coordinates in our range.
Definition at line 34 of file RangeXD.hpp.
View newest version in sPHENIX GitHub at line 34 of file RangeXD.hpp
|
inline |
Determine whether the range contains a certain point.
This is true if and only if the range contains the point in all of its dimensions.
v | The coordinate to check for membership in the range |
Definition at line 61 of file RangeXD.hpp.
View newest version in sPHENIX GitHub at line 61 of file RangeXD.hpp
Referenced by Acts::RangeXD< binValues, ActsScalar >::contains(), and Acts::KDTree< Dims, Type, Scalar, Vector, LeafSize >::KDTreeNode::rangeSearchMapDiscard().
|
inline |
Determine whether this range is degenerate.
A degenerate multi-dimensional range has no volume and cannot contain any values. This is the case if any of its dimensions are degenerate.
Definition at line 43 of file RangeXD.hpp.
View newest version in sPHENIX GitHub at line 43 of file RangeXD.hpp
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and Acts::RangeXD< binValues, ActsScalar >::degenerate().
|
inline |
Compute the intersection of this range with another range.
The intersection of one orthogonal range with another orthogonal range is in itself an orthogonal range. This operation is commutative. This intersection between two n-dimensional ranges is defined simply as the intersection in each dimension of the two ranges.
o | The orthogonal range to compute the intersection with |
Definition at line 159 of file RangeXD.hpp.
View newest version in sPHENIX GitHub at line 159 of file RangeXD.hpp
|
inline |
Determine whether this range intersects another.
Two n-dimensional ranges intersect if and only if they intersect in every one of their n dimensions. Otherwise, they are disjoint.
r | The other range to check |
Definition at line 197 of file RangeXD.hpp.
View newest version in sPHENIX GitHub at line 197 of file RangeXD.hpp
|
inline |
Update the range to the intersection with another range.
This is the assignment version of the operator& method, meaning that it updates the object on which it is called rather than producing a new range.
o | The range to compute the intersection with |
Definition at line 179 of file RangeXD.hpp.
View newest version in sPHENIX GitHub at line 179 of file RangeXD.hpp
|
inline |
Determine whether one range is a subset of another range.
One range is a subset of another range if and only if all points contained within the first set are also contained within the second set. Alternatively, this is equivalent to each of the first range's one-dimensional ranges being a subset of the second range's equivalent one-dimensional range.
o | The other range to compare to |
Definition at line 116 of file RangeXD.hpp.
View newest version in sPHENIX GitHub at line 116 of file RangeXD.hpp
|
inline |
Determine whether two ranges are equal.
Two n-dimensional ranges are equal if and only if they are equal in each of their n dimensions.
o | The other range to check for equality |
Definition at line 94 of file RangeXD.hpp.
View newest version in sPHENIX GitHub at line 94 of file RangeXD.hpp
|
inline |
Determine whether one range is a superset of another range.
One range is a superset of another range if and only if all points contained within the second range are also contained within the first range. Alternatively, this is equivalent to each of the one-dimensional ranges in the first range being a superset of the corresponding one-dimensional range in the second range.
o | The other range to compare to |
Definition at line 139 of file RangeXD.hpp.
View newest version in sPHENIX GitHub at line 139 of file RangeXD.hpp
|
inline |
Access one of the dimensional ranges of the volume.
i | The index of the dimension to access |
Definition at line 75 of file RangeXD.hpp.
View newest version in sPHENIX GitHub at line 75 of file RangeXD.hpp
|
inline |
Access one of the dimensional ranges of the volume.
i | The index of the dimension to access |
Definition at line 81 of file RangeXD.hpp.
View newest version in sPHENIX GitHub at line 81 of file RangeXD.hpp
|
inline |
Represent the range as a string.
This method produces a helpful string that can be used to debug the range if needed. Not really designed to be used in production code.
Definition at line 213 of file RangeXD.hpp.
View newest version in sPHENIX GitHub at line 213 of file RangeXD.hpp
Referenced by Acts::KDTreeTrackingGeometryBuilder::translateLayer().
|
private |
Definition at line 227 of file RangeXD.hpp.
View newest version in sPHENIX GitHub at line 227 of file RangeXD.hpp
Referenced by Acts::RangeXD< binValues, ActsScalar >::contains(), Acts::RangeXD< binValues, ActsScalar >::degenerate(), Acts::RangeXD< binValues, ActsScalar >::operator&(), Acts::RangeXD< binValues, ActsScalar >::operator&&(), Acts::RangeXD< binValues, ActsScalar >::operator&=(), Acts::RangeXD< binValues, ActsScalar >::operator<=(), Acts::RangeXD< binValues, ActsScalar >::operator==(), Acts::RangeXD< binValues, ActsScalar >::operator>=(), Acts::RangeXD< binValues, ActsScalar >::operator[](), and Acts::RangeXD< binValues, ActsScalar >::toString().