Go to the documentation of this file.
37 Any* clone()
const override;
43 bool valid()
const override;
65 Pid* clone()
const override;
71 bool valid()
const override;
107 CC* clone()
const override;
122 Lepton* clone()
const override;
137 Nu* clone()
const override;
154 Ell* clone()
const override;
171 EllPlus* clone()
const override;
204 Hadron* clone()
const override;
219 Meson* clone()
const override;
234 Baryon* clone()
const override;
249 Charged* clone()
const override;
294 Neutral* clone()
const override;
309 Nucleus* clone()
const override;
344 enum { InvalidSpin = 501 };
347 JSpin(
const int spin );
349 JSpin* clone()
const override;
356 bool valid()
const override;
360 int spin()
const {
return m_spin; }
375 SSpin(
const int spin );
377 SSpin* clone()
const override;
392 LSpin(
const int spin );
394 LSpin* clone()
const override;
411 CTau* clone()
const override;
418 bool valid()
const override;
425 double low()
const {
return m_low; }
427 double high()
const {
return m_high; }
432 template <
typename F,
typename = std::is_invocable_r<
bool, F, Gaudi::ParticleID>>
434 enum struct Classification { Accepted = +1, Rejected = -1, Unknown = 0 };
435 auto r = m_pids.with_lock(
439 : Classification::Unknown;
443 case Classification::Accepted:
445 case Classification::Rejected:
447 case Classification::Unknown:
448 return add_( pid, std::invoke( std::forward<F>( f ), pid ) );
450 __builtin_unreachable();
458 return m_pids.with_lock(
528 Stable* clone()
const override;
560 Mass* clone()
const override;
578 Light* clone()
const override;
594 Heavy* clone()
const override;
611 PosID* clone()
const override;
617 bool valid()
const override;
633 NegID* clone()
const override;
639 bool valid()
const override;
649 Symbol* clone()
const override;
656 bool valid()
const override;
SmartIF< Gaudi::Interfaces::IParticlePropertySvc > Service
int m_spin
the j-spin to be tested
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Gaudi::cxx::SynchronizedValue< KnownPids > m_pids
bool isLepton() const
Return if the PID is for a lepton.
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
std::vector< Gaudi::ParticleID > accepted
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
bool isHadron() const
Return if the PID is for a hadron.
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
bool classify(Gaudi::ParticleID pid, F &&f) const
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
bool isMeson() const
Return if the PID is for a meson.
int sSpin() const
Return 2S+1, where S is the spin, valid only for mesons.
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
GAUDI_API std::string printAsTable(const std::vector< const Gaudi::ParticleProperty * > &particles, const Gaudi::Interfaces::IParticlePropertySvc *service=0)
print a list of properties in a form of the table
Decays::Decay::Item m_item
the decay item itself
const Decays::Decay::Item & item() const
get DaVinci Decay item
MsgStream & printAcceptedAsTable(MsgStream &s) const
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
int lSpin() const
Return 2L+1, where L is the orbital angular momentum, valid only for mesons.
def check(causes, result)
StatusCode validate(Iterator begin, Iterator end, const Gaudi::Interfaces::IParticlePropertySvc *svc)
validate trees/nodes
bool isNucleus() const
Return if the PID is for a nucleus.
Decays::Node m_symbol
the actual symbol
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
double high() const
get high edge
std::vector< Gaudi::ParticleID > rejected
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
bool isBaryon() const
Return if the PID is for a baryon.
constexpr unsigned int abspid() const
Absolute value of the PDG ID.
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
int pid() const
Retrieve the PDG ID.
bool valid(Iterator begin, Iterator end)
check the validness of the trees or nodes
int jSpin() const
Return 2J+1, where J is the total spin, valid for all particles.
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
bool check(Gaudi::ParticleID pid) const
Service m_ppSvc
the service :
T binary_search(T... args)
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
double low() const
get low edge
const Gaudi::Interfaces::IParticlePropertySvc * ppSvc() const
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Gaudi::ParticleID::Quark m_quark
the quark to be tested
bool hasQuark(const Quark &q) const
Return if the PID is a particle containing a specified quark flavor.
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
int threeCharge() const
Return three times the charge, in units of e+, valid for all particles.