Go to the documentation of this file.
36 Any* clone()
const override;
42 bool valid()
const override;
64 Pid* clone()
const override;
70 bool valid()
const override;
106 CC* clone()
const override;
121 Lepton* clone()
const override;
136 Nu* clone()
const override;
153 Ell* clone()
const override;
170 EllPlus* clone()
const override;
203 Hadron* clone()
const override;
218 Meson* clone()
const override;
233 Baryon* clone()
const override;
248 Charged* clone()
const override;
293 Neutral* clone()
const override;
308 Nucleus* clone()
const override;
343 enum { InvalidSpin = 501 };
346 JSpin(
const int spin );
348 JSpin* clone()
const override;
355 bool valid()
const override;
359 int spin()
const {
return m_spin; }
374 SSpin(
const int spin );
376 SSpin* clone()
const override;
391 LSpin(
const int spin );
393 LSpin* clone()
const override;
410 CTau* clone()
const override;
417 bool valid()
const override;
424 double low()
const {
return m_low; }
426 double high()
const {
return m_high; }
431 template <
typename F,
typename = std::is_invocable_r<
bool, F, Gaudi::ParticleID>>
433 enum struct Classification { Accepted = +1, Rejected = -1, Unknown = 0 };
434 auto r = m_pids.with_lock(
438 : Classification::Unknown;
442 case Classification::Accepted:
444 case Classification::Rejected:
446 case Classification::Unknown:
447 return add_( pid, std::invoke( std::forward<F>( f ), pid ) );
449 __builtin_unreachable();
457 return m_pids.with_lock(
527 Stable* clone()
const override;
559 Mass* clone()
const override;
577 Light* clone()
const override;
593 Heavy* clone()
const override;
610 PosID* clone()
const override;
616 bool valid()
const override;
632 NegID* clone()
const override;
638 bool valid()
const override;
648 Symbol* clone()
const override;
655 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.
def check(causes, result)
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.
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.