Go to the documentation of this file.
   35   template <
typename Iterator>
 
   39   template <
typename Container>
 
   41     return valid( 
c.begin(), 
c.end() );
 
   52   template <
class Iterator>
 
   62     return validate( tree.begin(), tree.end(), svc );
 
   79       Invalid* clone() 
const override;
 
   85       bool valid() 
const override;
 
  107       inline bool valid()
 const { 
return m_node.node().valid(); }
 
  110         return m_node.node().validate( svc );
 
  131         m_node = right.m_node;
 
  206     size_t         size()
 const { 
return m_nodes.size(); }
 
  207     bool           empty()
 const { 
return m_nodes.empty(); }
 
  213     operator const Nodes_&() 
const { 
return m_nodes; }
 
  238       Or* clone() 
const override;
 
  244       bool valid() 
const override;
 
  281       And* clone() 
const override;
 
  287       bool valid() 
const override;
 
  314       Not* clone() 
const override;
 
  320       bool valid() 
const override;
 
  
 
bool operator==(const Gaudi::ParticleID &pid) const
void push_back(Container &c, const Value &v, std::true_type)
std::vector< Decays::Nodes::_Node > Nodes_
the actual type of the sequence of nodes
Or()
the default constructor is disabled
_Node & operator=(const Node &right)
pseudo-assignment operator:
const_iterator begin() const
_Node(const iNode &node)
the constructor from iNode
Decays::Nodes::And operator&&(const Decays::iNode &o1, const Decays::iNode &o2)
Create the "AND" of two nodes.
Nodes_::const_iterator const_iterator
_Node & operator&=(const iNode &right)
const Decays::iNode & node() const
get the underlying node
Decays::Node m_node
the node holder itself
Decays::Nodes::And operator&(const Decays::iNode &o1, const Decays::iNode &o2)
Create the "AND" of two nodes.
NodeList m_nodes
the sub-nodes
StatusCode validate(const Gaudi::Interfaces::IParticlePropertySvc *svc) const
The proper validation of the node.
_Node & operator|=(const _Node &right)
bool operator!=(const Gaudi::ParticleID &pid) const
NodeList & operator+=(const Decays::Nodes::_Node &node)
Invalid()=default
MANDATORY: default constructor.
std::ostream & operator<<(std::ostream &s, const Decays::Nodes::_Node &n)
output operator
AttribStringParser::Iterator begin(const AttribStringParser &parser)
const_iterator end() const
NodeList & operator+=(const Nodes_ &nodes)
Decays::Nodes::Or operator||(const Decays::iNode &o1, const Decays::iNode &o2)
Create the "OR" of two nodes.
Decays::NodeList m_nodes
the sub-nodes
Nodes_::iterator iterator
StatusCode validate(Iterator begin, Iterator end, const Gaudi::Interfaces::IParticlePropertySvc *svc)
validate trees/nodes
const Decays::iNode & node() const
the accessor to the node
Decays::Nodes::Or operator|(const Decays::iNode &o1, const Decays::iNode &o2)
Create the "OR" of two nodes.
Decays::Node m_node
the node itself
Decays::Nodes::Not operator~(const Decays::iNode &o)
Create the "NOT" for the node.
NodeList & operator+=(const NodeList &nodes)
bool valid() const
Check the validity.
NodeList & operator+=(const Decays::iNode &node)
_Node & operator&=(const NodeList &right)
constexpr static const auto SUCCESS
bool valid(Iterator begin, Iterator end)
check the validness of the trees or nodes
_Node & operator=(const iNode &right)
pseudo-assignment from arbitrary node
_Node & operator&=(const _Node &right)
_Node & operator=(const _Node &right)
pseudo-assignment from arbitrary node
Nodes_::value_type value_type
_Node & operator|=(const iNode &right)
Nodes_ m_nodes
the actual list of nodes
_Node(const _Node &node)=default
Decays::Nodes::Not operator!(const Decays::Nodes::Not &o)
Create the "NOT" for the node.
_Node & operator|=(const NodeList &right)
bool operator()(const Gaudi::ParticleID &pid) const
The major method.
boost::spirit::classic::position_iterator2< ForwardIterator > Iterator
_Node(const Node &node)
the constructor from Node