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