The Gaudi Framework  master (ff829712)
Loading...
Searching...
No Matches
Gaudi::Decays Namespace Reference

Namespaces

namespace  CC
 
namespace  Nodes
 

Classes

class  Decay
 The simple representation of "simple 1-step" decay (there are no trees! More...
 
class  iNode
 The abstract class which represents the single "node" of decay tree. More...
 
class  Node
 The generic class to hold the pointer to other node. More...
 
class  NodeList
 
class  Symbols
 Helper class to obtain the information about the valid symbols for particles, decay descriptors and Nodes. More...
 

Functions

std::ostream & operator<< (std::ostream &s, const iNode &n)
 printout to the output stream
 
bool operator== (const Decays::iNode &node, const Gaudi::ParticleID &pid)
 equality The node is "equal" to the PID , if the given pid satisfies the node criteria
 
bool operator== (const Gaudi::ParticleID &pid, const Decays::iNode &node)
 "right" equality The node is "equal" to the PID , if the given pid satisfies the node criteria
 
bool operator!= (const Decays::iNode &node, const Gaudi::ParticleID &pid)
 non-equality The node is "equal" to the PID , if the given PID satisfies the node criteria
 
bool operator!= (const Gaudi::ParticleID &pid, const Decays::iNode &node)
 non-equality The node is "equal" to the PID , if the given PID satisfies the node criteria
 
StatusCode operator+ (const Decays::iNode &n, const Gaudi::Interfaces::IParticlePropertySvc *svc)
 "on-flight" validation of the node
 
StatusCode operator* (const Decays::iNode &n, const Gaudi::Interfaces::IParticlePropertySvc *svc)
 "on-flight" validation of the node
 
template<typename Iterator>
bool valid (Iterator begin, Iterator end)
 check the validness of the trees or nodes
 
template<typename Container>
bool valid (Container const &c)
 
template<class Iterator>
StatusCode validate (Iterator begin, Iterator end, const Gaudi::Interfaces::IParticlePropertySvc *svc)
 validate trees/nodes
 
template<class TREE>
StatusCode validate (TREE const &tree, const Gaudi::Interfaces::IParticlePropertySvc *svc)
 
Decays::Nodes::Or operator|| (const Decays::iNode &o1, const Decays::iNode &o2)
 Create the "OR" of two nodes.
 
Decays::Nodes::Or operator| (const Decays::iNode &o1, const Decays::iNode &o2)
 Create the "OR" of two nodes.
 
Decays::Nodes::And operator&& (const Decays::iNode &o1, const Decays::iNode &o2)
 Create the "AND" of two nodes.
 
Decays::Nodes::And operator& (const Decays::iNode &o1, const Decays::iNode &o2)
 Create the "AND" of two nodes.
 
Decays::Nodes::Not operator~ (const Decays::iNode &o)
 Create the "NOT" for the node.
 
GAUDI_API Decays::Nodes::Or operator|| (const Decays::iNode &o1, const std::string &o2)
 Create the "OR" of two nodes.
 
GAUDI_API Decays::Nodes::Or operator|| (const Decays::iNode &o1, const Gaudi::ParticleID &o2)
 Create the "OR" of two nodes.
 
GAUDI_API Decays::Nodes::Or operator|| (const Decays::iNode &o1, const Decays::Decay::Item &o2)
 Create the "OR" of two nodes.
 
GAUDI_API Decays::Nodes::Or operator|| (const Decays::iNode &o1, const Gaudi::ParticleProperty *o2)
 Create the "OR" of two nodes.
 
GAUDI_API Decays::Nodes::Or operator|| (const std::string &o2, const Decays::iNode &o1)
 Create the "OR" of two nodes.
 
GAUDI_API Decays::Nodes::Or operator|| (const Gaudi::ParticleID &o2, const Decays::iNode &o1)
 Create the "OR" of two nodes.
 
GAUDI_API Decays::Nodes::Or operator|| (const Decays::Decay::Item &o2, const Decays::iNode &o1)
 Create the "OR" of two nodes.
 
GAUDI_API Decays::Nodes::Or operator|| (const Gaudi::ParticleProperty *o2, const Decays::iNode &o1)
 Create the "OR" of two nodes.
 
GAUDI_API Decays::Nodes::And operator&& (const Decays::iNode &o1, const std::string &o2)
 Create the "AND" of two nodes.
 
GAUDI_API Decays::Nodes::And operator&& (const Decays::iNode &o1, const Gaudi::ParticleID &o2)
 Create the "AND" of two nodes.
 
GAUDI_API Decays::Nodes::And operator&& (const Decays::iNode &o1, const Decays::Decay::Item &o2)
 Create the "AND" of two nodes.
 
GAUDI_API Decays::Nodes::And operator&& (const Decays::iNode &o1, const Gaudi::ParticleProperty *o2)
 Create the "AND" of two nodes.
 
GAUDI_API Decays::Nodes::And operator&& (const std::string &o2, const Decays::iNode &o1)
 Create the "AND" of two nodes.
 
GAUDI_API Decays::Nodes::And operator&& (const Gaudi::ParticleID &o2, const Decays::iNode &o1)
 Create the "AND" of two nodes.
 
GAUDI_API Decays::Nodes::And operator&& (const Decays::Decay::Item &o2, const Decays::iNode &o1)
 Create the "AND" of two nodes.
 
GAUDI_API Decays::Nodes::And operator&& (const Gaudi::ParticleProperty *o2, const Decays::iNode &o1)
 Create the "AND" of two nodes.
 

Function Documentation

◆ operator!=() [1/2]

bool Gaudi::Decays::operator!= ( const Decays::iNode & node,
const Gaudi::ParticleID & pid )
inline

non-equality The node is "equal" to the PID , if the given PID satisfies the node criteria

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-21

Definition at line 142 of file iNode.h.

142{ return !( node == pid ); }

◆ operator!=() [2/2]

bool Gaudi::Decays::operator!= ( const Gaudi::ParticleID & pid,
const Decays::iNode & node )
inline

non-equality The node is "equal" to the PID , if the given PID satisfies the node criteria

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-21

Definition at line 149 of file iNode.h.

149{ return node != pid; }

◆ operator&()

Decays::Nodes::And Gaudi::Decays::operator& ( const Decays::iNode & o1,
const Decays::iNode & o2 )
inline

Create the "AND" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 371 of file Nodes.h.

371 {
372 return Decays::Nodes::And( o1, o2 );
373 }
the rather simple (but powerful) node in the decay tree: it matches .AND.
Definition Nodes.h:270

◆ operator&&() [1/9]

Decays::Nodes::And Gaudi::Decays::operator&& ( const Decays::Decay::Item & o2,
const Decays::iNode & o1 )

Create the "AND" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 110 of file NodePIDs.cpp.

110 {
111 return Decays::Nodes::Pid( o2 ) && o1;
112 }
The simple node in the decay tree: it matches to a certain particle ID.
Definition NodesPIDs.h:54

◆ operator&&() [2/9]

Decays::Nodes::And Gaudi::Decays::operator&& ( const Decays::iNode & o1,
const Decays::Decay::Item & o2 )

Create the "AND" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 98 of file NodePIDs.cpp.

98 {
99 return o1 && Decays::Nodes::Pid( o2 );
100 }

◆ operator&&() [3/9]

Decays::Nodes::And Gaudi::Decays::operator&& ( const Decays::iNode & o1,
const Decays::iNode & o2 )
inline

Create the "AND" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 363 of file Nodes.h.

363 {
364 return Decays::Nodes::And( o1, o2 );
365 }

◆ operator&&() [4/9]

Decays::Nodes::And Gaudi::Decays::operator&& ( const Decays::iNode & o1,
const Gaudi::ParticleID & o2 )

Create the "AND" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 95 of file NodePIDs.cpp.

95 {
96 return o1 && Decays::Nodes::Pid( o2 );
97 }

◆ operator&&() [5/9]

Decays::Nodes::And Gaudi::Decays::operator&& ( const Decays::iNode & o1,
const Gaudi::ParticleProperty * o2 )

Create the "AND" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 101 of file NodePIDs.cpp.

101 {
102 return o1 && Decays::Nodes::Pid( o2 );
103 }

◆ operator&&() [6/9]

Decays::Nodes::And Gaudi::Decays::operator&& ( const Decays::iNode & o1,
const std::string & o2 )

Create the "AND" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 92 of file NodePIDs.cpp.

92 {
93 return o1 && Decays::Nodes::Pid( o2 );
94 }

◆ operator&&() [7/9]

Decays::Nodes::And Gaudi::Decays::operator&& ( const Gaudi::ParticleID & o2,
const Decays::iNode & o1 )

Create the "AND" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 107 of file NodePIDs.cpp.

107 {
108 return Decays::Nodes::Pid( o2 ) && o1;
109 }

◆ operator&&() [8/9]

Decays::Nodes::And Gaudi::Decays::operator&& ( const Gaudi::ParticleProperty * o2,
const Decays::iNode & o1 )

Create the "AND" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 113 of file NodePIDs.cpp.

113 {
114 return Decays::Nodes::Pid( o2 ) && o1;
115 }

◆ operator&&() [9/9]

Decays::Nodes::And Gaudi::Decays::operator&& ( const std::string & o2,
const Decays::iNode & o1 )

Create the "AND" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 104 of file NodePIDs.cpp.

104 {
105 return Decays::Nodes::Pid( o2 ) && o1;
106 }

◆ operator*()

StatusCode Gaudi::Decays::operator* ( const Decays::iNode & n,
const Gaudi::Interfaces::IParticlePropertySvc * svc )
inline

"on-flight" validation of the node

Parameters
nthe node
svcparticle property service
Returns
status code
Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-21

Definition at line 169 of file iNode.h.

169 {
170 return n.validate( svc );
171 }

◆ operator+()

StatusCode Gaudi::Decays::operator+ ( const Decays::iNode & n,
const Gaudi::Interfaces::IParticlePropertySvc * svc )
inline

"on-flight" validation of the node

Parameters
nthe node
svcparticle property service
Returns
status code
Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-21

Definition at line 158 of file iNode.h.

158 {
159 return n.validate( svc );
160 }

◆ operator<<()

std::ostream & Gaudi::Decays::operator<< ( std::ostream & s,
const iNode & n )
inline

printout to the output stream

Parameters
sthe output stream
nthe node
Returns
the output stream (Reference)
Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-21

Definition at line 121 of file iNode.h.

121{ return n.fillStream( s ); }

◆ operator==() [1/2]

bool Gaudi::Decays::operator== ( const Decays::iNode & node,
const Gaudi::ParticleID & pid )
inline

equality The node is "equal" to the PID , if the given pid satisfies the node criteria

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-21

Definition at line 128 of file iNode.h.

128{ return node( pid ); }

◆ operator==() [2/2]

bool Gaudi::Decays::operator== ( const Gaudi::ParticleID & pid,
const Decays::iNode & node )
inline

"right" equality The node is "equal" to the PID , if the given pid satisfies the node criteria

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-21

Definition at line 135 of file iNode.h.

135{ return node == pid; }

◆ operator|()

Decays::Nodes::Or Gaudi::Decays::operator| ( const Decays::iNode & o1,
const Decays::iNode & o2 )
inline

Create the "OR" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 355 of file Nodes.h.

355 {
356 return Decays::Nodes::Or( o1, o2 );
357 }
the rather simple (but powerful) node in the decay tree: it matches .OR.
Definition Nodes.h:227

◆ operator||() [1/9]

Decays::Nodes::Or Gaudi::Decays::operator|| ( const Decays::Decay::Item & o2,
const Decays::iNode & o1 )

Create the "OR" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 82 of file NodePIDs.cpp.

82 {
83 return Decays::Nodes::Pid( o2 ) || o1;
84 }

◆ operator||() [2/9]

Decays::Nodes::Or Gaudi::Decays::operator|| ( const Decays::iNode & o1,
const Decays::Decay::Item & o2 )

Create the "OR" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 70 of file NodePIDs.cpp.

70 {
71 return o1 || Decays::Nodes::Pid( o2 );
72 }

◆ operator||() [3/9]

Decays::Nodes::Or Gaudi::Decays::operator|| ( const Decays::iNode & o1,
const Decays::iNode & o2 )
inline

Create the "OR" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 347 of file Nodes.h.

347 {
348 return Decays::Nodes::Or( o1, o2 );
349 }

◆ operator||() [4/9]

Decays::Nodes::Or Gaudi::Decays::operator|| ( const Decays::iNode & o1,
const Gaudi::ParticleID & o2 )

Create the "OR" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 67 of file NodePIDs.cpp.

67 {
68 return o1 || Decays::Nodes::Pid( o2 );
69 }

◆ operator||() [5/9]

Decays::Nodes::Or Gaudi::Decays::operator|| ( const Decays::iNode & o1,
const Gaudi::ParticleProperty * o2 )

Create the "OR" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 73 of file NodePIDs.cpp.

73 {
74 return o1 || Decays::Nodes::Pid( o2 );
75 }

◆ operator||() [6/9]

Decays::Nodes::Or Gaudi::Decays::operator|| ( const Decays::iNode & o1,
const std::string & o2 )

Create the "OR" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 64 of file NodePIDs.cpp.

64 {
65 return o1 || Decays::Nodes::Pid( o2 );
66 }

◆ operator||() [7/9]

Decays::Nodes::Or Gaudi::Decays::operator|| ( const Gaudi::ParticleID & o2,
const Decays::iNode & o1 )

Create the "OR" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 79 of file NodePIDs.cpp.

79 {
80 return Decays::Nodes::Pid( o2 ) || o1;
81 }

◆ operator||() [8/9]

Decays::Nodes::Or Gaudi::Decays::operator|| ( const Gaudi::ParticleProperty * o2,
const Decays::iNode & o1 )

Create the "OR" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 85 of file NodePIDs.cpp.

85 {
86 return Decays::Nodes::Pid( o2 ) || o1;
87 }

◆ operator||() [9/9]

Decays::Nodes::Or Gaudi::Decays::operator|| ( const std::string & o2,
const Decays::iNode & o1 )

Create the "OR" of two nodes.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 76 of file NodePIDs.cpp.

76 {
77 return Decays::Nodes::Pid( o2 ) || o1;
78 }

◆ operator~()

Decays::Nodes::Not Gaudi::Decays::operator~ ( const Decays::iNode & o)
inline

Create the "NOT" for the node.

Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-12

Definition at line 379 of file Nodes.h.

379{ return Decays::Nodes::Not( o ); }
Simple node which match "NOT" for the subnode.
Definition Nodes.h:309

◆ valid() [1/2]

template<typename Container>
bool Gaudi::Decays::valid ( Container const & c)

Definition at line 40 of file Nodes.h.

40 {
41 return valid( c.begin(), c.end() );
42 }
bool valid(Iterator begin, Iterator end)
check the validness of the trees or nodes
Definition Nodes.h:36

◆ valid() [2/2]

template<typename Iterator>
bool Gaudi::Decays::valid ( Iterator begin,
Iterator end )

check the validness of the trees or nodes

Parameters
beginbegin-iterator for the sequence of trees/nodes
endend-iterator for the sequence of trees/nodes
Returns
true of no invalid trees are found
Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-21

Definition at line 36 of file Nodes.h.

36 {
37 return std::all_of( begin, end, []( const auto& i ) { return i.valid(); } );
38 }

◆ validate() [1/2]

template<class Iterator>
StatusCode Gaudi::Decays::validate ( Iterator begin,
Iterator end,
const Gaudi::Interfaces::IParticlePropertySvc * svc )

validate trees/nodes

Parameters
beginbegin-iterator for the sequence of trees/nodes
endend-iterator for the sequence of trees/nodes
svcthe Particle Property Service for validation
Returns
statuis code
Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl
Date
2008-04-21

Definition at line 53 of file Nodes.h.

53 {
54 for ( ; begin != end; ++begin ) {
55 StatusCode sc = begin->validate( svc );
56 if ( sc.isFailure() ) { return sc; }
57 }
59 }
This class is used for returning status codes from appropriate routines.
Definition StatusCode.h:64
bool isFailure() const
Definition StatusCode.h:129
constexpr static const auto SUCCESS
Definition StatusCode.h:99

◆ validate() [2/2]

template<class TREE>
StatusCode Gaudi::Decays::validate ( TREE const & tree,
const Gaudi::Interfaces::IParticlePropertySvc * svc )

Definition at line 61 of file Nodes.h.

61 {
62 return validate( tree.begin(), tree.end(), svc );
63 }
StatusCode validate(Iterator begin, Iterator end, const Gaudi::Interfaces::IParticlePropertySvc *svc)
validate trees/nodes
Definition Nodes.h:53