File Hit.hpp

namespace ActsFatras
class Hit
#include <ActsFatras/EventData/Hit.hpp>

A simulation hit on a surface.

This is the undigitized, truth hit, i.e. just a recording of the particle state at the surface intersection. Since Fatras is surface-based, the hit position is always constrained to a surface. Depending on the simulated interactions the momentum state before and after might differ and is thus stored as two separate four-vectors.

Public Types

using Scalar = Acts::ActsScalar
using Vector3 = Acts::ActsVector<3>
using Vector4 = Acts::ActsVector<4>

Public Functions

Hit() = default

Construct default hit with (mostly) invalid information.

inline Hit(Acts::GeometryIdentifier geometryId, Barcode particleId, const Vector4 &pos4, const Vector4 &before4, const Vector4 &after4, int32_t index_ = -1)

Construct from four-position and four-momenta.

All quantities are given in the global coordinate system. It is the users responsibility to ensure that the position correspond to a position on the given surface.

Parameters
  • geometryId – Geometry identifier of the surface

  • particleId – Particle identifier of the particle that created the hit

  • pos4 – Particle space-time four-vector on the surface

  • before4 – Particle four-momentum before the interaction

  • after4 – Particle four-momentum after the interaction

  • index_ – Hit index along the particle trajectory

Hit(const Hit&) = default
Hit(Hit&&) = default
inline Scalar depositedEnergy() const

Energy deposited by the hit.

Return values
  • positive – if the particle lost energy when it passed the surface

  • negative – if magic was involved

inline const Vector4 &fourPosition() const

Space-time position four-vector.

inline constexpr Acts::GeometryIdentifier geometryId() const

Geometry identifier of the hit surface.

inline constexpr int32_t index() const

Hit index along the particle trajectory.

Return values

negative – if the hit index is undefined.

inline const Vector4 &momentum4After() const

Particle four-momentum after the hit.

inline const Vector4 &momentum4Before() const

Particle four-momentum before the hit.

Hit &operator=(const Hit&) = default
Hit &operator=(Hit&&) = default
inline constexpr Barcode particleId() const

Particle identifier of the particle that generated the hit.

inline auto position() const

Three-position, i.e. spatial coordinates without the time.

inline Scalar time() const

Time coordinate.

inline Vector3 unitDirection() const

Average normalized particle direction vector through the surface.

inline Vector3 unitDirectionAfter() const

Normalized particle direction vector the hit.

inline Vector3 unitDirectionBefore() const

Normalized particle direction vector before the hit.

Private Members

Vector4 m_after4 = Vector4::Zero()

Global particle energy-momentum four-vector after the hit.

Vector4 m_before4 = Vector4::Zero()

Global particle energy-momentum four-vector before the hit.

Acts::GeometryIdentifier m_geometryId

Identifier of the surface.

int32_t m_index = -1

Index of the hit along the particle trajectory.

Barcode m_particleId

Identifier of the generating particle.

Vector4 m_pos4 = Vector4::Zero()

Global space-time position four-vector.