The Gaudi Framework  v38r1p1 (ae26267b)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
NodesPIDs.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2023 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #pragma once
12 
13 #include <Gaudi/Decays/Nodes.h>
15 #include <Gaudi/ParticleProperty.h>
17 #include <GaudiKernel/MsgStream.h>
18 
25 namespace Gaudi::Decays {
26  namespace Nodes {
33  class GAUDI_API Any : public Decays::iNode {
34  public:
36  Any* clone() const override;
38  bool operator()( const Gaudi::ParticleID& /* p */ ) const override;
40  std::ostream& fillStream( std::ostream& s ) const override;
42  bool valid() const override;
44  StatusCode validate( const Gaudi::Interfaces::IParticlePropertySvc* svc ) const override;
45  };
46 
53  class GAUDI_API Pid : public Decays::iNode {
54  public:
56  Pid( const Decays::Decay::Item& item );
58  Pid( const Gaudi::ParticleProperty* item );
60  Pid( const Gaudi::ParticleID& item );
62  Pid( const std::string& item );
64  Pid* clone() const override;
66  bool operator()( const Gaudi::ParticleID& pid ) const override { return check( pid ); }
68  std::ostream& fillStream( std::ostream& s ) const override;
70  bool valid() const override;
72  StatusCode validate( const Gaudi::Interfaces::IParticlePropertySvc* svc ) const override;
73 
74  public:
75  bool check( Gaudi::ParticleID pid ) const { return pid == m_item.pid(); }
76 
78  const Decays::Decay::Item& item() const { return m_item; }
80  operator const Decays::Decay::Item&() const { return item(); }
81 
82  private:
85  };
86 
93  class GAUDI_API CC : public Pid {
94  public:
96  CC( const Decays::Decay::Item& item );
98  CC( const Gaudi::ParticleProperty* item );
100  CC( Gaudi::ParticleID item );
102  CC( const std::string& item );
104  CC( const Decays::Nodes::Pid& pid );
106  CC* clone() const override;
108  bool operator()( const Gaudi::ParticleID& pid ) const override { return pid.abspid() == item().pid().abspid(); }
110  std::ostream& fillStream( std::ostream& s ) const override;
111  };
112 
118  class GAUDI_API Lepton : public Any {
119  public:
121  Lepton* clone() const override;
123  bool operator()( const Gaudi::ParticleID& pid ) const override { return pid.isLepton(); }
125  std::ostream& fillStream( std::ostream& s ) const override;
126  };
127 
133  class GAUDI_API Nu : public Lepton {
134  public:
136  Nu* clone() const override;
138  bool operator()( const Gaudi::ParticleID& pid ) const override {
139  return pid.isLepton() && ( 0 == pid.threeCharge() );
140  }
142  std::ostream& fillStream( std::ostream& s ) const override;
143  };
144 
150  class GAUDI_API Ell : public Lepton {
151  public:
153  Ell* clone() const override;
155  bool operator()( const Gaudi::ParticleID& pid ) const override {
156  return pid.isLepton() && ( 0 != pid.threeCharge() );
157  }
159  std::ostream& fillStream( std::ostream& s ) const override;
160  };
161 
167  class GAUDI_API EllPlus : public Ell {
168  public:
170  EllPlus* clone() const override;
172  bool operator()( const Gaudi::ParticleID& pid ) const override {
173  return pid.isLepton() && ( 0 < pid.threeCharge() );
174  }
176  std::ostream& fillStream( std::ostream& s ) const override;
177  };
183  class GAUDI_API EllMinus : public Ell {
184  public:
186  EllMinus* clone() const override;
188  bool operator()( const Gaudi::ParticleID& pid ) const override {
189  return pid.isLepton() && ( 0 > pid.threeCharge() );
190  }
192  std::ostream& fillStream( std::ostream& s ) const override;
193  };
194 
200  class GAUDI_API Hadron : public Any {
201  public:
203  Hadron* clone() const override;
205  bool operator()( const Gaudi::ParticleID& pid ) const override { return pid.isHadron(); }
207  std::ostream& fillStream( std::ostream& s ) const override;
208  };
209 
215  class GAUDI_API Meson : public Hadron {
216  public:
218  Meson* clone() const override;
220  bool operator()( const Gaudi::ParticleID& pid ) const override { return pid.isMeson(); }
222  std::ostream& fillStream( std::ostream& s ) const override;
223  };
224 
230  class GAUDI_API Baryon : public Hadron {
231  public:
233  Baryon* clone() const override;
235  bool operator()( const Gaudi::ParticleID& pid ) const override { return pid.isBaryon(); }
237  std::ostream& fillStream( std::ostream& s ) const override;
238  };
239 
245  class GAUDI_API Charged : public Any {
246  public:
248  Charged* clone() const override;
250  bool operator()( const Gaudi::ParticleID& pid ) const override { return 0 != pid.threeCharge(); }
252  std::ostream& fillStream( std::ostream& s ) const override;
253  };
254 
260  class GAUDI_API Positive : public Charged {
261  public:
263  Positive* clone() const override;
265  bool operator()( const Gaudi::ParticleID& pid ) const override { return 0 < pid.threeCharge(); }
267  std::ostream& fillStream( std::ostream& s ) const override;
268  };
269 
275  class GAUDI_API Negative : public Charged {
276  public:
278  Negative* clone() const override;
280  bool operator()( const Gaudi::ParticleID& pid ) const override { return 0 > pid.threeCharge(); }
282  std::ostream& fillStream( std::ostream& s ) const override;
283  };
284 
290  class GAUDI_API Neutral : public Charged {
291  public:
293  Neutral* clone() const override;
295  bool operator()( const Gaudi::ParticleID& pid ) const override { return 0 == pid.threeCharge(); }
297  std::ostream& fillStream( std::ostream& s ) const override;
298  };
299 
305  class GAUDI_API Nucleus : public Any {
306  public:
308  Nucleus* clone() const override;
310  bool operator()( const Gaudi::ParticleID& pid ) const override { return pid.isNucleus(); }
312  std::ostream& fillStream( std::ostream& s ) const override;
313  };
314 
320  class GAUDI_API HasQuark : public Any {
321  public:
325  HasQuark* clone() const override;
327  bool operator()( const Gaudi::ParticleID& pid ) const override { return pid.hasQuark( m_quark ); }
329  std::ostream& fillStream( std::ostream& s ) const override;
330 
331  private:
333  Gaudi::ParticleID::Quark m_quark; // the quark to be tested
334  };
335 
341  class GAUDI_API JSpin : public Any {
342  public:
343  enum { InvalidSpin = 501 };
344 
346  JSpin( const int spin );
348  JSpin* clone() const override;
350  bool operator()( const Gaudi::ParticleID& pid ) const override { return spin() == pid.jSpin(); }
352  std::ostream& fillStream( std::ostream& s ) const override;
353 
355  bool valid() const override;
357  StatusCode validate( const Gaudi::Interfaces::IParticlePropertySvc* /* svc */ ) const override;
358 
359  int spin() const { return m_spin; }
360 
361  private:
363  int m_spin;
364  };
365 
371  class GAUDI_API SSpin : public JSpin {
372  public:
374  SSpin( const int spin );
376  SSpin* clone() const override;
378  bool operator()( const Gaudi::ParticleID& pid ) const override { return spin() == pid.sSpin(); }
380  std::ostream& fillStream( std::ostream& s ) const override;
381  };
382 
388  class GAUDI_API LSpin : public SSpin {
389  public:
391  LSpin( const int spin );
393  LSpin* clone() const override;
395  bool operator()( const Gaudi::ParticleID& pid ) const override { return spin() == pid.lSpin(); }
397  std::ostream& fillStream( std::ostream& s ) const override;
398  };
399 
405  class GAUDI_API CTau : public Decays::iNode {
406  public:
408  CTau( const double low, const double high, const Gaudi::Interfaces::IParticlePropertySvc* svc = nullptr );
410  CTau* clone() const override;
411 
413  bool operator()( const Gaudi::ParticleID& pid ) const override;
415  std::ostream& fillStream( std::ostream& s ) const override;
417  bool valid() const override;
419  StatusCode validate( const Gaudi::Interfaces::IParticlePropertySvc* svc ) const override;
420 
421  const Gaudi::Interfaces::IParticlePropertySvc* ppSvc() const { return m_ppSvc; }
422 
424  double low() const { return m_low; }
426  double high() const { return m_high; }
427 
428  StatusCode setService( const Gaudi::Interfaces::IParticlePropertySvc* svc ) const;
429 
430  protected:
431  template <typename F, typename = std::is_invocable_r<bool, F, Gaudi::ParticleID>>
432  bool classify( Gaudi::ParticleID pid, F&& f ) const {
433  enum struct Classification { Accepted = +1, Rejected = -1, Unknown = 0 };
434  auto r = m_pids.with_lock(
435  []( const auto& pids, Gaudi::ParticleID pid ) {
436  return std::binary_search( pids.accepted.begin(), pids.accepted.end(), pid ) ? Classification::Accepted
437  : std::binary_search( pids.rejected.begin(), pids.rejected.end(), pid ) ? Classification::Rejected
438  : Classification::Unknown;
439  },
440  pid );
441  switch ( r ) {
442  case Classification::Accepted:
443  return true;
444  case Classification::Rejected:
445  return false;
446  case Classification::Unknown:
447  return add_( pid, std::invoke( std::forward<F>( f ), pid ) );
448  }
449  __builtin_unreachable();
450  }
451 
452  private:
453  bool add_( Gaudi::ParticleID pid, bool acc ) const;
454 
455  public:
457  return m_pids.with_lock(
458  [&]( const KnownPids& pids, MsgStream& s, auto const& ppSvc ) -> decltype( auto ) {
459  return Gaudi::ParticleProperties::printAsTable( pids.accepted, s, ppSvc );
460  },
461  s, m_ppSvc );
462  }
463 
464  private:
467  mutable Service m_ppSvc;
468 
469  public:
470  struct KnownPids {
473  };
474 
475  private:
477 
479  double m_low;
481  double m_high;
482  };
483 
489  class GAUDI_API ShortLived_ : public CTau {
490  public:
492  ShortLived_( const double high, const Gaudi::Interfaces::IParticlePropertySvc* svc = 0 );
496  ShortLived_* clone() const override;
498  std::ostream& fillStream( std::ostream& s ) const override;
499  };
500 
508  LongLived_( const double high, const Gaudi::Interfaces::IParticlePropertySvc* svc = 0 );
512  LongLived_* clone() const override;
514  std::ostream& fillStream( std::ostream& s ) const override;
515  };
516 
522  class GAUDI_API Stable : public LongLived_ {
523  public:
527  Stable* clone() const override;
529  std::ostream& fillStream( std::ostream& s ) const override;
530  };
531 
537  class GAUDI_API StableCharged : public Stable {
538  public:
542  StableCharged* clone() const override;
544  bool operator()( const Gaudi::ParticleID& pid ) const override;
546  std::ostream& fillStream( std::ostream& s ) const override;
547  };
548 
554  class GAUDI_API Mass : public CTau {
555  public:
557  Mass( const double low, const double high, const Gaudi::Interfaces::IParticlePropertySvc* svc = 0 );
559  Mass* clone() const override;
560 
562  bool operator()( const Gaudi::ParticleID& pid ) const override;
564  std::ostream& fillStream( std::ostream& s ) const override;
565  };
566 
572  class GAUDI_API Light : public Mass {
573  public:
575  Light( const double high, const Gaudi::Interfaces::IParticlePropertySvc* svc = 0 );
577  Light* clone() const override;
578 
580  std::ostream& fillStream( std::ostream& s ) const override;
581  };
582 
588  class GAUDI_API Heavy : public Mass {
589  public:
591  Heavy( const double low, const Gaudi::Interfaces::IParticlePropertySvc* svc = 0 );
593  Heavy* clone() const override;
594 
596  std::ostream& fillStream( std::ostream& s ) const override;
597  };
598 
607  class GAUDI_API PosID : public Decays::iNode {
608  public:
610  PosID* clone() const override;
612  bool operator()( const Gaudi::ParticleID& /* p */ ) const override;
614  std::ostream& fillStream( std::ostream& s ) const override;
616  bool valid() const override;
618  StatusCode validate( const Gaudi::Interfaces::IParticlePropertySvc* svc ) const override;
619  };
620 
629  class GAUDI_API NegID : public Decays::iNode {
630  public:
632  NegID* clone() const override;
634  bool operator()( const Gaudi::ParticleID& /* p */ ) const override;
636  std::ostream& fillStream( std::ostream& s ) const override;
638  bool valid() const override;
640  StatusCode validate( const Gaudi::Interfaces::IParticlePropertySvc* svc ) const override;
641  };
642 
643  class GAUDI_API Symbol : public Decays::iNode {
644  public:
646  Symbol( const std::string& sym );
648  Symbol* clone() const override;
649 
651  bool operator()( const Gaudi::ParticleID& pid ) const override;
653  std::ostream& fillStream( std::ostream& s ) const override;
655  bool valid() const override;
657  StatusCode validate( const Gaudi::Interfaces::IParticlePropertySvc* svc ) const override;
658 
659  private:
662  };
663  } // namespace Nodes
664 } // namespace Gaudi::Decays
Gaudi::Decays::Nodes::CTau::Service
SmartIF< Gaudi::Interfaces::IParticlePropertySvc > Service
Definition: NodesPIDs.h:465
Gaudi::Decays::Nodes::Any
Definition: NodesPIDs.h:33
Gaudi::Decays::Nodes::JSpin::m_spin
int m_spin
the j-spin to be tested
Definition: NodesPIDs.h:363
Gaudi::Decays::Nodes::Nucleus::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:310
Gaudi::Decays::Node
Definition: iNode.h:74
GaudiTests.Histograms.axes_labels.check
def check(causes, result)
Definition: axes_labels.py:47
Gaudi::Decays::Nodes::Lepton::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:123
Gaudi::ParticleID::Quark
Quark
Quark PDG IDs.
Definition: ParticleID.h:48
GaudiPartProp.Nodes.SSpin
SSpin
Definition: Nodes.py:265
Gaudi::Decays::Nodes::CTau::m_pids
Gaudi::cxx::SynchronizedValue< KnownPids > m_pids
Definition: NodesPIDs.h:476
std::string
STL class.
GaudiPartProp.Nodes.LongLived_
LongLived_
Definition: Nodes.py:303
Gaudi::ParticleID::isLepton
bool isLepton() const
Return if the PID is for a lepton.
Definition: ParticleID.cpp:243
Gaudi::Decays::Nodes::Pid::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:66
Gaudi::Decays::Nodes::Symbol
Definition: NodesPIDs.h:643
gaudirun.s
string s
Definition: gaudirun.py:346
Gaudi::Decays::Nodes::EllMinus
Definition: NodesPIDs.h:183
std::vector< Gaudi::ParticleID >
Gaudi::Decays::Nodes::CTau::KnownPids::accepted
std::vector< Gaudi::ParticleID > accepted
Definition: NodesPIDs.h:471
Gaudi::Decays::Nodes::Mass
Definition: NodesPIDs.h:554
Gaudi::Decays::Nodes::JSpin::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:350
Gaudi::Interfaces::IParticlePropertySvc
Definition: IParticlePropertySvc.h:29
Gaudi::Decays::Nodes::Positive::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:265
Gaudi::ParticleID::isHadron
bool isHadron() const
Return if the PID is for a hadron.
Definition: ParticleID.cpp:241
Gaudi::Decays::Nodes::LSpin
Definition: NodesPIDs.h:388
Gaudi::Decays::Nodes::LSpin::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:395
Gaudi::Decays::Nodes::CTau::classify
bool classify(Gaudi::ParticleID pid, F &&f) const
Definition: NodesPIDs.h:432
Nodes.h
Gaudi::Decays::Nodes::EllPlus::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:172
Gaudi::ParticleID::isMeson
bool isMeson() const
Return if the PID is for a meson.
Definition: ParticleID.cpp:202
IParticlePropertySvc.h
Gaudi::Decays::Nodes::Meson
Definition: NodesPIDs.h:215
Gaudi::Decays::Nodes::JSpin
Definition: NodesPIDs.h:341
GaudiPartProp.Nodes.Heavy
Heavy
Definition: Nodes.py:311
Gaudi::Decays::Nodes::EllPlus
Definition: NodesPIDs.h:167
Gaudi::Decays::Nodes::Baryon
Definition: NodesPIDs.h:230
Gaudi::Decays::Nodes::CTau::m_low
double m_low
low edge
Definition: NodesPIDs.h:479
GaudiPartProp.Nodes.JSpin
JSpin
Definition: Nodes.py:264
Gaudi::ParticleID::sSpin
int sSpin() const
Return 2S+1, where S is the spin, valid only for mesons.
Definition: ParticleID.cpp:361
GaudiPartProp.Nodes.ShortLived_
ShortLived_
Definition: Nodes.py:305
Gaudi::Decays::Nodes::Nu::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:138
Gaudi::ParticleProperties::printAsTable
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
Definition: ParticleProperty.cpp:319
Gaudi::Decays::Nodes::Stable
Definition: NodesPIDs.h:522
Gaudi::Decays::Nodes::Pid::m_item
Decays::Decay::Item m_item
the decay item itself
Definition: NodesPIDs.h:84
Gaudi::Decays::Nodes::Pid::item
const Decays::Decay::Item & item() const
get DaVinci Decay item
Definition: NodesPIDs.h:78
Gaudi::Decays::Nodes::CTau::printAcceptedAsTable
MsgStream & printAcceptedAsTable(MsgStream &s) const
Definition: NodesPIDs.h:456
Gaudi::Decays::Nodes::Meson::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:220
StatusCode
Definition: StatusCode.h:65
Gaudi::ParticleID::lSpin
int lSpin() const
Return 2L+1, where L is the orbital angular momentum, valid only for mesons.
Definition: ParticleID.cpp:382
Gaudi::Decays::Nodes::CTau::KnownPids
Definition: NodesPIDs.h:470
std::ostream
STL class.
Gaudi::Decays::Nodes::HasQuark
Definition: NodesPIDs.h:320
Gaudi::Decays::Nodes::Nu
Definition: NodesPIDs.h:133
Gaudi::Decays::validate
StatusCode validate(Iterator begin, Iterator end, const Gaudi::Interfaces::IParticlePropertySvc *svc)
validate trees/nodes
Definition: Nodes.h:52
ParticleID.pids
pids
Definition: ParticleID.py:70
Gaudi::ParticleID::isNucleus
bool isNucleus() const
Return if the PID is for a nucleus.
Definition: ParticleID.cpp:248
GaudiPartProp.Nodes.Mass
Mass
Definition: Nodes.py:309
SynchronizedValue.h
Gaudi::Decays::Nodes::StableCharged
Definition: NodesPIDs.h:537
GaudiPartProp.Nodes.Pid
Pid
Definition: Nodes.py:249
SmartIF< Gaudi::Interfaces::IParticlePropertySvc >
Gaudi::Decays::Nodes::Symbol::m_symbol
Decays::Node m_symbol
the actual symbol
Definition: NodesPIDs.h:661
Gaudi::ParticleProperty
Definition: ParticleProperty.h:37
Gaudi::Decays::Nodes::Hadron::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:205
MsgStream
Definition: MsgStream.h:34
Gaudi::Decays::Nodes::Hadron
Definition: NodesPIDs.h:200
Gaudi::Decays::Nodes::CTau::high
double high() const
get high edge
Definition: NodesPIDs.h:426
Gaudi::Decays::Nodes::Negative
Definition: NodesPIDs.h:275
Gaudi::Decays::Nodes::CTau::KnownPids::rejected
std::vector< Gaudi::ParticleID > rejected
Definition: NodesPIDs.h:472
GaudiPartProp.Nodes.CTau
CTau
Definition: Nodes.py:302
Gaudi::Decays::Nodes::Negative::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:280
Gaudi::ParticleID::isBaryon
bool isBaryon() const
Return if the PID is for a baryon.
Definition: ParticleID.cpp:215
Gaudi::Decays::Nodes::Lepton
Definition: NodesPIDs.h:118
Gaudi::Decays::Nodes::Neutral
Definition: NodesPIDs.h:290
Gaudi::Decays::Nodes::CTau
Definition: NodesPIDs.h:405
Gaudi::ParticleID::abspid
constexpr unsigned int abspid() const
Absolute value of the PDG ID.
Definition: ParticleID.h:56
Gaudi::Decays
Definition: CC.h:17
Gaudi::Decays::Nodes::Neutral::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:295
Gaudi::Decays::Nodes::Baryon::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:235
Gaudi::Decays::Nodes::SSpin
Definition: NodesPIDs.h:371
GaudiPartProp.Nodes.Symbol
Symbol
Definition: Nodes.py:312
Gaudi::ParticleID::pid
int pid() const
Retrieve the PDG ID.
Definition: ParticleID.h:54
GaudiPartProp.Nodes.StableCharged
StableCharged
Definition: Nodes.py:308
GaudiPartProp.Nodes.LSpin
LSpin
Definition: Nodes.py:266
Gaudi::Decays::Nodes::CC
Definition: NodesPIDs.h:93
GaudiPartProp.Nodes.HasQuark
HasQuark
Definition: Nodes.py:263
Gaudi::Decays::valid
bool valid(Iterator begin, Iterator end)
check the validness of the trees or nodes
Definition: Nodes.h:35
Gaudi::Decays::Nodes::Nucleus
Definition: NodesPIDs.h:305
Gaudi::ParticleID::jSpin
int jSpin() const
Return 2J+1, where J is the total spin, valid for all particles.
Definition: ParticleID.cpp:313
Gaudi::Decays::Nodes::SSpin::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:378
Gaudi::ParticleID
Definition: ParticleID.h:43
Gaudi::Decays::Nodes::Pid
Definition: NodesPIDs.h:53
Gaudi::cxx::SynchronizedValue
Definition: SynchronizedValue.h:35
Gaudi::Decays::Nodes::Pid::check
bool check(Gaudi::ParticleID pid) const
Definition: NodesPIDs.h:75
Gaudi::Decays::Nodes::NegID
Definition: NodesPIDs.h:629
Gaudi::Decays::Nodes::Positive
Definition: NodesPIDs.h:260
Gaudi::Decays::Decay::Item
Definition: Decay.h:39
Gaudi::Decays::iNode
Definition: iNode.h:35
Gaudi::Decays::Nodes::LongLived_
Definition: NodesPIDs.h:506
GaudiPartProp.Nodes.CC
CC
Definition: Nodes.py:250
GaudiPartProp.Nodes.Light
Light
Definition: Nodes.py:310
Gaudi::Decays::Nodes::JSpin::spin
int spin() const
Definition: NodesPIDs.h:359
Gaudi::Decays::Nodes::Charged
Definition: NodesPIDs.h:245
Gaudi::Decays::Nodes::CTau::m_ppSvc
Service m_ppSvc
the service :
Definition: NodesPIDs.h:467
Gaudi::Decays::Nodes::CTau::m_high
double m_high
high edge
Definition: NodesPIDs.h:481
DataOnDemand.Nodes
list Nodes
Definition: DataOnDemand.py:34
std::binary_search
T binary_search(T... args)
Gaudi::Decays::Nodes::Charged::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:250
Gaudi::Decays::Nodes::HasQuark::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:327
Gaudi::Decays::Nodes::Ell
Definition: NodesPIDs.h:150
Gaudi::Decays::Nodes::Ell::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:155
Gaudi::Decays::Nodes::CTau::low
double low() const
get low edge
Definition: NodesPIDs.h:424
Gaudi::Decays::Nodes::CTau::ppSvc
const Gaudi::Interfaces::IParticlePropertySvc * ppSvc() const
Definition: NodesPIDs.h:421
Gaudi::Decays::Nodes::EllMinus::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:188
ParticleProperty.h
Gaudi::Decays::Nodes::Light
Definition: NodesPIDs.h:572
GaudiPartProp.Nodes.Stable
Stable
Definition: Nodes.py:307
Gaudi::Decays::Nodes::Heavy
Definition: NodesPIDs.h:588
Gaudi::Decays::Nodes::HasQuark::m_quark
Gaudi::ParticleID::Quark m_quark
the quark to be tested
Definition: NodesPIDs.h:333
Gaudi::ParticleID::hasQuark
bool hasQuark(const Quark &q) const
Return if the PID is a particle containing a specified quark flavor.
Definition: ParticleID.cpp:257
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:81
Gaudi::Decays::Nodes::CC::operator()
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Definition: NodesPIDs.h:108
MsgStream.h
Gaudi::Decays::Nodes::PosID
Definition: NodesPIDs.h:607
Gaudi::Decays::Nodes::ShortLived_
Definition: NodesPIDs.h:489
Gaudi::ParticleID::threeCharge
int threeCharge() const
Return three times the charge, in units of e+, valid for all particles.
Definition: ParticleID.cpp:269