Go to the documentation of this file.
43 constexpr
double s_LONGLIVED = s_SHORTLIVED;
152 return m_item.validate( svc );
242 return s <<
" HasQuark(" << (int)m_quark <<
") ";
247 return s <<
" Scalar ";
249 return s <<
" Spinor ";
251 return s <<
" Vector ";
253 return s <<
" ThreeHalf ";
255 return s <<
" Tensor ";
257 return s <<
" FiveHalf ";
260 return s <<
" JSpin(" << m_spin <<
") ";
267 : m_low( low ), m_high( high ) {
274 return s <<
" CTau(" << low() <<
"," << high() <<
") ";
280 return setService( svc );
286 if ( !ppSvc() ) {
return false; }
289 if ( !
pp ) {
return false; }
291 const auto ctau =
pp->ctau();
292 return low() <= ctau && ctau <= high();
296 return m_pids.with_lock(
298 auto&
c = ( acc ?
pids.accepted :
pids.rejected );
300 if (
c.end() == ifind || pid < ( *ifind ) ) {
c.insert( ifind, pid ); }
308 if ( m_ppSvc != svc ) {
310 pids.accepted.clear();
311 pids.rejected.clear();
330 return s <<
" Mass(" << low() <<
"," << high() <<
") ";
336 if ( !ppSvc() ) {
return false; }
339 if ( !
pp ) {
return false; }
341 const auto mass =
pp->mass();
342 return low() <= mass && mass <= high();
348 constexpr
bool essentiallyEqual(
double const a,
double const b ) {
365 if ( essentiallyEqual( high(), s_SHORTLIVED ) ) {
return s <<
" ShortLived "; }
366 return s <<
" ShortLived_( " << high() <<
") ";
379 if ( essentiallyEqual( low(), s_LONGLIVED ) ) {
return s <<
" LongLived "; }
380 return s <<
" LongLived_( " << low() <<
") ";
404 if ( !ppSvc() ) {
return false; }
407 if ( !
pp ) {
return false; }
409 return low() <=
pp->ctau() && 0 !=
id.threeCharge();
471 return m_symbol.validate( svc );
StableCharged(const Gaudi::Interfaces::IParticlePropertySvc *svc=0)
constructor service
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
bool valid() const override
MANDATORY: check the validity.
bool valid() const override
MANDATORY: check the validity.
Meson * clone() const override
MANDATORY: clone method ("virtual constructor")
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
StatusCode validate(const Gaudi::Interfaces::IParticlePropertySvc *svc) const override
MANDATORY: the proper validation of the node.
Decays::Nodes::And operator&&(const Decays::iNode &o1, const Decays::iNode &o2)
Create the "AND" of two nodes.
StatusCode validate(const Gaudi::Interfaces::IParticlePropertySvc *svc) const override
MANDATORY: the proper validation of the node.
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
Light(const double high, const Gaudi::Interfaces::IParticlePropertySvc *svc=0)
constructor from mass-range
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
Pid(const Decays::Decay::Item &item)
constructor from the decay item
ShortLived_ * clone() const override
MANDATORY: clone method ("virtual constructor")
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
static Symbols & instance()
static accessor to teh singleton
Gaudi::ParticleID abs(const Gaudi::ParticleID &p)
Return the absolute value for a PID.
LSpin * clone() const override
MANDATORY: clone method ("virtual constructor")
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
JSpin * clone() const override
MANDATORY: clone method ("virtual constructor")
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
Charged * clone() const override
MANDATORY: clone method ("virtual constructor")
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
bool operator()(const Gaudi::ParticleID &) const override
MANDATORY: the only one essential method.
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
Heavy * clone() const override
MANDATORY: clone method ("virtual constructor")
Symbol(const std::string &sym)
the constructor from the symbol
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
Symbol * clone() const override
MANDATORY: clone method ("virtual constructor")
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Decays::Nodes::Or operator||(const Decays::iNode &o1, const Decays::iNode &o2)
Create the "OR" of two nodes.
bool valid() const override
MANDATORY: check the validity.
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
NegID * clone() const override
MANDATORY: clone method ("virtual constructor")
Positive * clone() const override
MANDATORY: clone method ("virtual constructor")
ShortLived_(const double high, const Gaudi::Interfaces::IParticlePropertySvc *svc=0)
constructor with high edge and service
Nucleus * clone() const override
MANDATORY: clone method ("virtual constructor")
Stable(const Gaudi::Interfaces::IParticlePropertySvc *svc=0)
constructor service
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
SSpin(const int spin)
constructor from the 2S+1
StatusCode validate(Iterator begin, Iterator end, const Gaudi::Interfaces::IParticlePropertySvc *svc)
validate trees/nodes
StatusCode validate(const Gaudi::Interfaces::IParticlePropertySvc *svc) const override
MANDATORY: the proper validation of the node.
StatusCode validate(const Gaudi::Interfaces::IParticlePropertySvc *svc) const override
MANDATORY: the proper validation of the node.
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
StatusCode setService(const Gaudi::Interfaces::IParticlePropertySvc *svc) const
EllPlus * clone() const override
MANDATORY: clone method ("virtual constructor")
constexpr double micrometer
bool valid() const override
MANDATORY: check the validity.
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
LongLived_(const double high, const Gaudi::Interfaces::IParticlePropertySvc *svc=0)
constructor with high edge and service
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
bool add_(Gaudi::ParticleID pid, bool acc) const
Decays::Node m_symbol
the actual symbol
CTau(const double low, const double high, const Gaudi::Interfaces::IParticlePropertySvc *svc=nullptr)
constructor from c-tau range
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
Nu * clone() const override
MANDATORY: clone method ("virtual constructor")
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
LSpin(const int spin)
constructor from the 2L+1
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
Baryon * clone() const override
MANDATORY: clone method ("virtual constructor")
const StatusCode & ignore() const
Allow discarding a StatusCode without warning.
Negative * clone() const override
MANDATORY: clone method ("virtual constructor")
StableCharged * clone() const override
MANDATORY: clone method ("virtual constructor")
EllMinus * clone() const override
MANDATORY: clone method ("virtual constructor")
SSpin * clone() const override
MANDATORY: clone method ("virtual constructor")
Light * clone() const override
MANDATORY: clone method ("virtual constructor")
bool valid() const override
MANDATORY: check the validity.
constexpr static const auto SUCCESS
Hadron * clone() const override
MANDATORY: clone method ("virtual constructor")
int pid() const
Retrieve the PDG ID.
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
Neutral * clone() const override
MANDATORY: clone method ("virtual constructor")
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
bool valid(Iterator begin, Iterator end)
check the validness of the trees or nodes
Mass * clone() const override
MANDATORY: clone method ("virtual constructor")
Heavy(const double low, const Gaudi::Interfaces::IParticlePropertySvc *svc=0)
constructor from mass-range
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
bool operator()(const Gaudi::ParticleID &) const override
MANDATORY: the only one essential method.
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
Stable * clone() const override
MANDATORY: clone method ("virtual constructor")
JSpin(const int spin)
constructor from the 2J+1
CC(const Decays::Decay::Item &item)
constructor from the decay item
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
Service m_ppSvc
the service :
constexpr static const auto FAILURE
LongLived_ * clone() const override
MANDATORY: clone method ("virtual constructor")
StatusCode validate(const Gaudi::Interfaces::IParticlePropertySvc *svc) const override
MANDATORY: the proper validation of the node.
Ell * clone() const override
MANDATORY: clone method ("virtual constructor")
HasQuark(Gaudi::ParticleID::Quark quark)
constructor from the quark
const std::string & symbol(std::string sym) const
help for the basic primitive special symbol
CTau * clone() const override
MANDATORY: clone method ("virtual constructor")
Lepton * clone() const override
MANDATORY: clone method ("virtual constructor")
HasQuark * clone() const override
MANDATORY: clone method ("virtual constructor")
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
Mass(const double low, const double high, const Gaudi::Interfaces::IParticlePropertySvc *svc=0)
constructor from mass-range
PosID * clone() const override
MANDATORY: clone method ("virtual constructor")
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.