File Intersection.hpp
-
namespace Acts
Note
This file is foreseen for the
Geometry
module to replaceExtent
Typedefs
-
using Intersection2D = Intersection<2>
-
using Intersection3D = Intersection<3>
-
using MultiIntersection3D = boost::container::static_vector<Intersection3D, s_maximumNumberOfIntersections>
Enums
Functions
-
inline std::ostream &operator<<(std::ostream &os, IntersectionStatus status)
Ostream-operator for the IntersectionStatus enum.
Variables
-
static constexpr std::uint8_t s_maximumNumberOfIntersections = 2
-
template<unsigned int DIM>
struct Intersection - #include <Acts/Utilities/Intersection.hpp>
Intersection struct used for position.
Public Types
-
using Position = ActsVector<DIM>
Position type.
-
using Status = IntersectionStatus
Status enum.
Public Functions
-
inline constexpr Intersection(const Position &position, double pathLength, Status status)
Constructor with arguments.
- Parameters
position – is the position of the intersection
pathLength – is the path length to the intersection
status – is an enum indicating the status of the intersection
-
inline explicit constexpr operator bool() const
Returns whether the intersection was successful or not.
-
inline constexpr ActsScalar pathLength() const
Public Static Functions
-
static inline constexpr bool closestOrder(const Intersection &aIntersection, const Intersection &bIntersection)
Comparison function for closest order i.e.
intersection closest to 0 will be first.
-
static inline constexpr bool forwardOrder(const Intersection &aIntersection, const Intersection &bIntersection)
Comparison function for forward order i.e.
intersection closest to -inf will be first.
-
static inline constexpr Intersection invalid()
Private Functions
-
constexpr Intersection() = default
-
using Position = ActsVector<DIM>
-
template<typename object_t, typename representation_t = object_t>
class ObjectIntersection - #include <Acts/Utilities/Intersection.hpp>
class extensions to return also the object and a representation
Public Functions
-
inline constexpr ObjectIntersection(const Intersection3D &intersection, const object_t *object, const representation_t *representation, std::uint8_t index = 0)
Object intersection.
- Parameters
intersection – is the intersection
object – is the object to be instersected
representation – is the object representation
index – is the intersection index
-
template<typename T = representation_t, std::enable_if_t<std::is_same<T, object_t>::value, int> = 0>
inline constexpr ObjectIntersection(const Intersection3D &intersection, const object_t *object, std::uint8_t index = 0) Object intersection - symmetric setup.
- Parameters
intersection – is the intersection
object – is the object to be instersected
index – is the intersection index
-
inline constexpr std::uint8_t index() const
-
inline constexpr const Intersection3D &intersection() const
-
inline constexpr const object_t *object() const
-
inline explicit constexpr operator bool() const
Returns whether the intersection was successful or not.
-
inline constexpr ActsScalar pathLength() const
-
inline constexpr const Intersection3D::Position &position() const
-
inline constexpr const representation_t *representation() const
-
inline constexpr Intersection3D::Status status() const
Public Static Functions
-
static inline constexpr bool closestOrder(const ObjectIntersection &aIntersection, const ObjectIntersection &bIntersection)
-
static inline constexpr bool forwardOrder(const ObjectIntersection &aIntersection, const ObjectIntersection &bIntersection)
-
static inline constexpr ObjectIntersection invalid()
Private Functions
-
constexpr ObjectIntersection() = default
Private Members
-
std::uint8_t m_index = 0
The intersection index.
-
Intersection3D m_intersection = Intersection3D::invalid()
The intersection itself.
-
const representation_t *m_representation = nullptr
The representation of this object.
-
inline constexpr ObjectIntersection(const Intersection3D &intersection, const object_t *object, const representation_t *representation, std::uint8_t index = 0)
-
template<typename object_t, typename representation_t = object_t>
class ObjectMultiIntersection - #include <Acts/Utilities/Intersection.hpp>
class extensions to return also the object and a representation
Public Types
-
using SplitIntersections = boost::container::static_vector<ObjectIntersection<object_t, representation_t>, s_maximumNumberOfIntersections>
Public Functions
-
template<typename T = representation_t, std::enable_if_t<std::is_same<T, object_t>::value, int> = 0>
inline constexpr ObjectMultiIntersection(const MultiIntersection3D &intersections, const object_t *object) Object intersection - symmetric setup.
- Parameters
intersections – are the intersections
object – is the object to be instersected
-
inline constexpr ObjectMultiIntersection(const MultiIntersection3D &intersections, const object_t *object, const representation_t *representation)
Object intersection.
- Parameters
intersections – are the intersections
object – is the object to be instersected
representation – is the object representation
-
inline constexpr ObjectIntersection<object_t, representation_t> closest() const
-
inline constexpr const object_t *object() const
-
inline constexpr ObjectIntersection<object_t, representation_t> operator[](std::uint8_t index) const
-
inline constexpr const representation_t *representation() const
-
inline constexpr std::size_t size() const
-
inline constexpr SplitIntersections split() const
Private Members
-
MultiIntersection3D m_intersections
The intersections.
-
const representation_t *m_representation = nullptr
The representation of this object.
-
using SplitIntersections = boost::container::static_vector<ObjectIntersection<object_t, representation_t>, s_maximumNumberOfIntersections>
-
using Intersection2D = Intersection<2>