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