CMS 3D CMS Logo

CutBinaryOperator.h
Go to the documentation of this file.
1 #ifndef CommonTools_Utils_CutBinaryOperator_h
2 #define CommonTools_Utils_CutBinaryOperator_h
3 /* \class reco::parser::CutBinaryOperator
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  */
13 #include "CommonTools/Utils/src/CutBase.h"
14 #include "CommonTools/Utils/src/CutStack.h"
15 
16 namespace reco {
17  namespace parser {
18  template<typename Op>
19  struct CutBinaryOperator : public CutBase {
20  virtual double value(const edm::ObjectWithDict& o) const {
21  return op_((*lhs_).value(o), (*rhs_).value(o));
22  }
23  CutBinaryOperator(CutStack & cutStack) {
24  rhs_ = cutStack.back(); cutStack.pop_back();
25  lhs_ = cutStack.back(); cutStack.pop_back();
26  }
27  private:
28  Op op_;
29  CutPtr lhs_, rhs_;
30  };
31  }
32 }
33 
34 #endif
edm::ObjectWithDict
Definition: ObjectWithDict.h:17
writedatasetfile.parser
parser
Definition: writedatasetfile.py:7
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
EcalTangentSkim_cfg.o
o
Definition: EcalTangentSkim_cfg.py:42
reco::parser::CutBinaryOperator::lhs_
CutPtr lhs_
Definition: CutBinaryOperator.h:29
reco::parser::CutBinaryOperator::rhs_
CutPtr rhs_
Definition: CutBinaryOperator.h:29
reco::parser::CutBinaryOperator::op_
Op op_
Definition: CutBinaryOperator.h:28
reco::parser::CutBinaryOperator
Definition: CutBinaryOperator.h:19
reco::parser::CutBinaryOperator::value
virtual double value(const edm::ObjectWithDict &o) const
Definition: CutBinaryOperator.h:20
reco::parser::CutBinaryOperator::CutBinaryOperator
CutBinaryOperator(CutStack &cutStack)
Definition: CutBinaryOperator.h:23