26 template <ACTS_CONCEPT(ChargeConcept)
charge_t>
41 "pdg is expected to be absolute");
54 "pdg is expected to be absolute");
60 template <
typename other_
charge_t>
62 const GenericParticleHypothesis<other_charge_t>& other)
63 : m_absPdg{other.absolutePdg()},
68 constexpr
PdgParticle absolutePdg() const noexcept {
return m_absPdg; }
71 constexpr
float mass() const noexcept {
return m_mass; }
74 constexpr
float absoluteCharge() const noexcept {
83 constexpr
auto extractCharge(
T qOverP)
const noexcept {
92 constexpr
auto extractMomentum(
T qOverP)
const noexcept {
101 template <
typename P,
typename Q>
102 constexpr
auto qOverP(
P momentum,
Q signedQ)
const noexcept {
107 constexpr
const ChargeType& chargeType() const noexcept {
111 std::ostream& toStream(std::ostream&
os)
const {
112 os <<
"ParticleHypothesis{absPdg=";
118 os <<
", mass=" <<
mass() <<
", absCharge=" << absoluteCharge() <<
"}";
124 return particleHypothesis.toStream(os);
134 return (lhs.m_absPdg == rhs.m_absPdg) && (lhs.
m_mass == rhs.
m_mass) &&
139 return (lhs.m_absPdg != rhs.m_absPdg) || (lhs.
m_mass != rhs.
m_mass) ||