File GeometryIdentifier.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

Functions

std::ostream &operator<<(std::ostream &os, GeometryIdentifier id)
class GeometryIdentifier
#include <Acts/Geometry/GeometryIdentifier.hpp>

Identifier for geometry nodes within the geometry hierarchy.

An identifier can be split into the following components. They define a hierarchy of objects starting from the high-level volumes:

  • Volume

  • Boundary surfaces (for a volume)

  • Layers (confined within a volume)

  • Approach surfaces (for a layer)

  • Sensitive surfaces (confined to a layer, also called modules)

Public Types

using Value = uint64_t

Public Functions

inline constexpr GeometryIdentifier(Value encoded)

Construct from an already encoded value.

GeometryIdentifier() = default

Construct default GeometryIdentifier with all values set to zero.

GeometryIdentifier(GeometryIdentifier&&) = default
GeometryIdentifier(const GeometryIdentifier&) = default
~GeometryIdentifier() = default
inline constexpr Value approach() const

Return the approach identifier.

inline constexpr Value boundary() const

Return the boundary identifier.

inline constexpr Value layer() const

Return the layer identifier.

GeometryIdentifier &operator=(GeometryIdentifier&&) = default
GeometryIdentifier &operator=(const GeometryIdentifier&) = default
inline constexpr Value sensitive() const

Return the sensitive identifier.

inline constexpr GeometryIdentifier &setApproach(Value approach)

Set the approach identifier.

inline constexpr GeometryIdentifier &setBoundary(Value boundary)

Set the boundary identifier.

inline constexpr GeometryIdentifier &setLayer(Value layer)

Set the layer identifier.

inline constexpr GeometryIdentifier &setSensitive(Value sensitive)

Set the sensitive identifier.

inline constexpr GeometryIdentifier &setVolume(Value volume)

Set the volume identifier.

inline constexpr Value value() const

Return the encoded value.

inline constexpr Value volume() const

Return the volume identifier.

Private Functions

inline constexpr Value getBits(Value mask) const

Extract the masked bits from the encoded value.

inline constexpr GeometryIdentifier &setBits(Value mask, Value id)

Set the masked bits to id in the encoded value.

Private Members

Value m_value = 0

Private Static Functions

static inline constexpr int extractShift(Value mask)

Extract the bit shift necessary to access the masked values.

Private Static Attributes

static constexpr Value kApproachMask = 0x0000000ff0000000
static constexpr Value kBoundaryMask = 0x00ff000000000000
static constexpr Value kLayerMask = 0x0000fff000000000
static constexpr Value kSensitiveMask = 0x000000000fffffff
static constexpr Value kVolumeMask = 0xff00000000000000

Friends

inline friend constexpr bool operator!=(GeometryIdentifier lhs, GeometryIdentifier rhs)
inline friend constexpr bool operator<(GeometryIdentifier lhs, GeometryIdentifier rhs)
inline friend constexpr bool operator==(GeometryIdentifier lhs, GeometryIdentifier rhs)