CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
LogicalBinaryOperator.h
Go to the documentation of this file.
1 #ifndef CommonTools_Utils_LogicalBinaryOperator_h
2 #define CommonTools_Utils_LogicalBinaryOperator_h
3 /* \class reco::parser::LogicalBinaryOperator
4  *
5  * logical AND combiner
6  *
7  * \author original version: Chris Jones, Cornell,
8  * adapted to Reflex by Luca Lista, INFN
9  *
10  * \version $Revision: 1.1 $
11  *
12  */
15 
16 namespace reco {
17  namespace parser {
18  template<typename Op>
21  rhs_ = selStack.back(); selStack.pop_back();
22  lhs_ = selStack.back(); selStack.pop_back();
23  }
24  virtual bool operator()(const Reflex::Object& o) const ;
25  private:
26  Op op_;
28  };
29 
30 template <>
31 bool LogicalBinaryOperator<std::logical_and<bool> >::operator()(const Reflex::Object &o) const ;
32 template <>
33 bool LogicalBinaryOperator<std::logical_or<bool> >::operator()(const Reflex::Object &o) const ;
34  }
35 }
36 
37 #endif
virtual bool operator()(const Reflex::Object &o) const
return true if the Refle object is selected
std::vector< SelectorPtr > SelectorStack
Definition: SelectorStack.h:18
boost::shared_ptr< SelectorBase > SelectorPtr
Definition: SelectorPtr.h:17
LogicalBinaryOperator(SelectorStack &selStack)