00001 #ifndef Utilities_BinaryCutSetter_h 00002 #define Utilities_BinaryCutSetter_h 00003 /* \class reco::parser::BinaryCutSetter 00004 * 00005 * Cut setter 00006 * 00007 * \author original version: Chris Jones, Cornell, 00008 * adapted to Reflex by Luca Lista, INFN 00009 * 00010 * \version $Revision: 1.1 $ 00011 * 00012 */ 00013 #include "PhysicsTools/Utilities/src/SelectorStack.h" 00014 #include "PhysicsTools/Utilities/src/LogicalBinaryOperator.h" 00015 00016 namespace reco { 00017 namespace parser { 00018 template<typename Op> 00019 struct BinaryCutSetter { 00020 BinaryCutSetter(SelectorStack & selStack) : 00021 selStack_(selStack) { } 00022 void operator()(const char*, const char*) const { 00023 selStack_.push_back(SelectorPtr(new LogicalBinaryOperator<Op>(selStack_))); 00024 } 00025 void operator()(const char&) const { 00026 const char * c; 00027 operator()(c, c); 00028 } 00029 SelectorStack & selStack_; 00030 }; 00031 } 00032 } 00033 00034 #endif