File Charge.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

class AnyCharge
#include <Acts/EventData/Charge.hpp>

Charge and momentum interpretation for arbitrarily charged particles.

Only a charge magnitude identical to zero is interpreted as representing a neutral particle. This avoids ambiguities that might arise from using an approximate comparison with an arbitrary epsilon.

Public Functions

AnyCharge() = delete

Delete default constructor to ensure charge is always explicitely given.

template<typename T>
inline constexpr AnyCharge(T absQ) noexcept

Construct with the magnitude of the input charge.

template<typename T>
inline constexpr T extractCharge(T qOverP) const noexcept
template<typename T>
inline constexpr T extractMomentum(T qOverP) const noexcept

Private Members

float m_magnitude

Friends

inline friend constexpr bool operator==(AnyCharge lhs, AnyCharge rhs) noexcept

Compare for equality.

struct Neutral
#include <Acts/EventData/Charge.hpp>

Charge and momentum interpretation for neutral particles.

Public Functions

Neutral() = default
template<typename T>
inline constexpr Neutral(T absQ) noexcept

Construct and verify the input charge magnitude (in debug builds).

This constructor is only provided to allow consistent construction.

template<typename T>
inline constexpr T extractCharge(T) const noexcept
template<typename T>
inline constexpr T extractMomentum(T pInv) const noexcept

Friends

inline friend constexpr bool operator==(Neutral, Neutral) noexcept

Compare for equality.

This is always true as Neutral has no internal state. Must be available to provide a consistent interface.

struct SinglyCharged
#include <Acts/EventData/Charge.hpp>

Charge and momentum interpretation for particles with +-e charge.

Public Functions

SinglyCharged() = default
template<typename T>
inline constexpr SinglyCharged(T absQ) noexcept

Construct and verify the input charge magnitude (in debug builds).

This constructor is only provided to allow consistent construction.

template<typename T>
inline constexpr T extractCharge(T qOverP) const noexcept
template<typename T>
inline constexpr T extractMomentum(T qOverP) const noexcept

Friends

inline friend constexpr bool operator==(SinglyCharged, SinglyCharged) noexcept

Compare for equality.

This is always true as SinglyCharged has no internal state. Must be available to provide a consistent interface.