CMS 3D CMS Logo

ExpressionQuaterOperator.h
Go to the documentation of this file.
1 #ifndef CommonTools_Utils_ExpressionQuaterOperator_h
2 #define CommonTools_Utils_ExpressionQuaterOperator_h
3 /* \class reco::parser::ExpressionQuaterOperator
4  *
5  * Quater 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 {
21  return op_(args_[0]->value(o), args_[1]->value(o), args_[2]->value(o), args_[3]->value(o));
22  }
24  args_[3] = expStack.back();
25  expStack.pop_back();
26  args_[2] = expStack.back();
27  expStack.pop_back();
28  args_[1] = expStack.back();
29  expStack.pop_back();
30  args_[0] = expStack.back();
31  expStack.pop_back();
32  }
33 
34  private:
35  Op op_;
37  };
38  } // namespace parser
39 } // namespace reco
40 
41 #endif
edm::ObjectWithDict
Definition: ObjectWithDict.h:17
writedatasetfile.parser
parser
Definition: writedatasetfile.py:7
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
ExpressionBase.h
EcalTangentSkim_cfg.o
o
Definition: EcalTangentSkim_cfg.py:36
reco::parser::ExpressionQuaterOperator
Definition: ExpressionQuaterOperator.h:19
reco::parser::ExpressionBase
Definition: ExpressionBase.h:21
ExpressionStack.h
reco::parser::ExpressionPtr
std::shared_ptr< ExpressionBase > ExpressionPtr
Definition: ExpressionBase.h:25
reco::parser::ExpressionQuaterOperator::value
double value(const edm::ObjectWithDict &o) const override
Definition: ExpressionQuaterOperator.h:20
reco::parser::ExpressionStack
std::vector< std::shared_ptr< ExpressionBase > > ExpressionStack
Definition: ExpressionStack.h:19
reco::parser::ExpressionQuaterOperator::ExpressionQuaterOperator
ExpressionQuaterOperator(ExpressionStack &expStack)
Definition: ExpressionQuaterOperator.h:23
reco::parser::ExpressionQuaterOperator::args_
ExpressionPtr args_[4]
Definition: ExpressionQuaterOperator.h:36
reco::parser::ExpressionQuaterOperator::op_
Op op_
Definition: ExpressionQuaterOperator.h:35