00001 #ifndef HLTHighLevel_h 00002 #define HLTHighLevel_h 00003 00017 #include "FWCore/Framework/interface/ESWatcher.h" 00018 #include "HLTrigger/HLTcore/interface/HLTFilter.h" 00019 #include "FWCore/Common/interface/TriggerNames.h" 00020 #include "DataFormats/Provenance/interface/ParameterSetID.h" 00021 #include <vector> 00022 #include <string> 00023 00024 // forward declarations 00025 namespace edm { 00026 class TriggerResults; 00027 } 00028 class AlCaRecoTriggerBitsRcd; 00029 00030 // 00031 // class declaration 00032 // 00033 00034 class HLTHighLevel : public HLTFilter { 00035 00036 public: 00037 00038 explicit HLTHighLevel(const edm::ParameterSet&); 00039 ~HLTHighLevel(); 00040 virtual bool filter(edm::Event&, const edm::EventSetup&); 00041 00043 std::vector<std::string> pathsFromSetup(const std::string &key, 00044 const edm::EventSetup &iSetup) const; 00045 private: 00047 void init(const edm::TriggerResults & results, 00048 const edm::EventSetup &iSetup, 00049 const edm::TriggerNames & triggerNames); 00050 00052 edm::InputTag inputTag_; 00053 00055 edm::ParameterSetID triggerNamesID_; 00056 00058 bool andOr_; 00059 00061 bool throw_; 00062 00064 const std::string eventSetupPathsKey_; 00066 edm::ESWatcher<AlCaRecoTriggerBitsRcd> *watchAlCaRecoTriggerBitsRcd_; 00067 00069 std::vector<std::string> HLTPatterns_; 00070 00072 std::vector<std::string> HLTPathsByName_; 00073 00075 std::vector<unsigned int> HLTPathsByIndex_; 00076 }; 00077 00078 #endif //HLTHighLevel_h