00001 #ifndef HLTSmartSinglet_h 00002 #define HLTSmartSinglet_h 00003 00020 #include "HLTrigger/HLTcore/interface/HLTFilter.h" 00021 #include<vector> 00022 00023 #include "CommonTools/Utils/interface/StringCutObjectSelector.h" 00024 #include<string> 00025 00026 // 00027 // class declaration 00028 // 00029 00030 template<typename T, int Tid> 00031 class HLTSmartSinglet : public HLTFilter { 00032 00033 public: 00034 00035 explicit HLTSmartSinglet(const edm::ParameterSet&); 00036 ~HLTSmartSinglet(); 00037 virtual bool filter(edm::Event&, const edm::EventSetup&); 00038 00039 private: 00040 edm::InputTag inputTag_; // input tag identifying product 00041 bool saveTag_; // whether to save this tag 00042 std::string cut_; // smart cut 00043 int min_N_; // number of objects passing cuts required 00044 00045 StringCutObjectSelector<T,true> select_; // smart selector 00046 }; 00047 00048 #endif //HLTSmartSinglet_h