Belle II Software  release-08-01-10
TernaryRelationalNode< AVariableManager > Class Template Reference

BooleanNode which has three AbstractExpressionNodes nodes and two ComparisonOperator. More...

#include <CutNodes.h>

Inheritance diagram for TernaryRelationalNode< AVariableManager >:
Collaboration diagram for TernaryRelationalNode< AVariableManager >:

Public Types

typedef AVariableManager::Var Var
 Template argument dependent Variable type definition.
 

Public Member Functions

bool check (const Object *p) const override
 
void print () const override
 Print node.
 
std::string decompile () const override
 Decompile Node back to a string. More...
 
 ~TernaryRelationalNode ()
 Destructor.
 

Private Types

typedef AbstractBooleanNode< AVariableManager >::Object Object
 Template argument dependent Particle type definition.
 

Private Member Functions

 TernaryRelationalNode (Nodetuple left_node, Nodetuple center_node, Nodetuple right_node, ComparisonOperator lc_coperator, ComparisonOperator cr_coperator)
 Constructor. More...
 

Private Attributes

std::unique_ptr< const AbstractExpressionNode< AVariableManager > > m_left_enode
 left expression of the ternary relational expression
 
std::unique_ptr< const AbstractExpressionNode< AVariableManager > > m_center_enode
 center expression of the ternary relational expression
 
std::unique_ptr< const AbstractExpressionNode< AVariableManager > > m_right_enode
 right expression of the ternary relational expression
 
const ComparisonOperator m_lc_coperator
 comparison operator to be applied to the evaluations of the left and center expression
 
const ComparisonOperator m_cr_coperator
 comparison operator to be applied to the evaluations of the center and right expressions
 

Friends

class NodeFactory
 

Detailed Description

template<class AVariableManager>
class Belle2::TernaryRelationalNode< AVariableManager >

BooleanNode which has three AbstractExpressionNodes nodes and two ComparisonOperator.

This allows Ranges in the Cutstring e.g 2.0 < var < 4.3 Check() evaluates the children nodes and compares both sides with the specified operator.

Definition at line 523 of file CutNodes.h.

Constructor & Destructor Documentation

◆ TernaryRelationalNode()

TernaryRelationalNode ( Nodetuple  left_node,
Nodetuple  center_node,
Nodetuple  right_node,
ComparisonOperator  lc_coperator,
ComparisonOperator  cr_coperator 
)
inlineexplicitprivate

Constructor.

Parameters
left_node(const boost::python::tuple&): tuple containing an expression node
center_node(const boost::python::tuple&): tuple containing an expression node
right_node(const boost::python::tuple&): tuple containing an expression node
lc_coperator(ComparisonOperator): comparison operator enum value specifying the comparison between left and center expression
cr_coperator(ComparisonOperator): comparison operator enum value specifiying the comparison between center and right expression

Definition at line 628 of file CutNodes.h.

Member Function Documentation

◆ check()

bool check ( const Object p) const
inlineoverridevirtual
Parameters
ppointer to the object, that should be checked. Checking is done sequentially. At first the left-center condition is checked. If it evaluates to false we can directly return false. If it true we have to check to center-right condition.

Implements AbstractBooleanNode< AVariableManager >.

Definition at line 535 of file CutNodes.h.

◆ decompile()

std::string decompile ( ) const
inlineoverridevirtual

Decompile Node back to a string.

decompile(compile) should give the same result.

Implements AbstractBooleanNode< AVariableManager >.

Definition at line 603 of file CutNodes.h.


The documentation for this class was generated from the following file: