File Charge.hpp
-
namespace Acts
Note
This file is foreseen for the
Geometry
module to replaceExtent
Functions
-
ACTS_STATIC_CHECK_CONCEPT(ChargeConcept, NonNeutralCharge)
-
ACTS_STATIC_CHECK_CONCEPT(ChargeConcept, SinglyCharged)
-
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
-
inline constexpr AnyCharge(float absQ) noexcept
Construct with the magnitude of the input charge.
-
inline constexpr AnyCharge(Neutral) noexcept
-
inline constexpr AnyCharge(SinglyCharged) noexcept
-
inline constexpr float absQ() const noexcept
-
template<typename T>
inline constexpr auto extractCharge(T qOverP) const noexcept
-
template<typename T>
inline constexpr auto extractMomentum(T qOverP) const noexcept
Private Members
-
float m_absQ = {}
Friends
- inline friend constexpr friend bool operator== (AnyCharge lhs, AnyCharge rhs) noexcept
Compare for equality.
-
inline constexpr AnyCharge(float absQ) noexcept
-
struct Neutral
- #include <Acts/EventData/Charge.hpp>
Charge and momentum interpretation for neutral particles.
Public Functions
-
constexpr Neutral() = default
-
inline constexpr Neutral(float absQ) noexcept
Construct and verify the input charge magnitude (in debug builds).
This constructor is only provided to allow consistent construction.
-
inline constexpr float absQ() const noexcept
Friends
- inline friend constexpr friend bool operator== (Neutral, Neutral) noexcept
Compare for equality.
This is always
true
asNeutral
has no internal state. Must be available to provide a consistent interface.
-
constexpr Neutral() = default
-
class NonNeutralCharge
- #include <Acts/EventData/Charge.hpp>
Charge and momentum interpretation for arbitrarily charged but not neutral particles.
Public Functions
-
inline constexpr NonNeutralCharge(float absQ) noexcept
Construct with the magnitude of the input charge.
-
inline constexpr NonNeutralCharge(SinglyCharged) noexcept
-
inline constexpr float absQ() const noexcept
-
template<typename T>
inline constexpr auto extractCharge(T qOverP) const noexcept
-
template<typename T>
inline constexpr auto extractMomentum(T qOverP) const noexcept
Private Members
-
float m_absQ = {}
Friends
- inline friend constexpr friend bool operator== (NonNeutralCharge lhs, NonNeutralCharge rhs) noexcept
Compare for equality.
-
inline constexpr NonNeutralCharge(float absQ) noexcept
-
struct SinglyCharged
- #include <Acts/EventData/Charge.hpp>
Charge and momentum interpretation for particles with +-e charge.
Public Functions
-
constexpr SinglyCharged() = default
-
inline constexpr SinglyCharged(float absQ) noexcept
Construct and verify the input charge magnitude (in debug builds).
This constructor is only provided to allow consistent construction.
-
inline constexpr float absQ() const noexcept
Friends
- inline friend constexpr friend bool operator== (SinglyCharged, SinglyCharged) noexcept
Compare for equality.
This is always
true
asSinglyCharged
has no internal state. Must be available to provide a consistent interface.
-
constexpr SinglyCharged() = default
-
ACTS_STATIC_CHECK_CONCEPT(ChargeConcept, NonNeutralCharge)