CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ExpressionBinaryOperator.h
Go to the documentation of this file.
1 #ifndef CommonTools_Utils_ExpressionBinaryOperator_h
2 #define CommonTools_Utils_ExpressionBinaryOperator_h
3 /* \class reco::parser::ExpressionBinaryOperator
4  *
5  * Binary Operator expression
6  *
7  * \author original version: Chris Jones, Cornell,
8  * adapted by Luca Lista, INFN
9  *
10  * \version $Revision: 1.2 $
11  *
12  */
15 
16 namespace reco {
17  namespace parser {
18  template <typename Op>
20  double value(const edm::ObjectWithDict& o) const override { return op_((*lhs_).value(o), (*rhs_).value(o)); }
22  rhs_ = expStack.back();
23  expStack.pop_back();
24  lhs_ = expStack.back();
25  expStack.pop_back();
26  }
27 
28  private:
29  Op op_;
31  };
32  } // namespace parser
33 } // namespace reco
34 
35 #endif
std::shared_ptr< ExpressionBase > ExpressionPtr
std::vector< std::shared_ptr< ExpressionBase > > ExpressionStack
double value(const edm::ObjectWithDict &o) const override
ExpressionBinaryOperator(ExpressionStack &expStack)