00001 #ifndef HLTMonBitSummary_H 00002 #define HLTMonBitSummary_H 00003 00004 00005 // system include files 00006 #include <memory> 00007 #include <unistd.h> 00008 00009 // user include files 00010 #include "FWCore/Framework/interface/Frameworkfwd.h" 00011 #include "FWCore/Framework/interface/EDAnalyzer.h" 00012 00013 #include "FWCore/Framework/interface/Event.h" 00014 #include "FWCore/Framework/interface/MakerMacros.h" 00015 #include "DataFormats/HLTReco/interface/TriggerEventWithRefs.h" 00016 00017 #include "DataFormats/Common/interface/TriggerResults.h" 00018 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00019 #include "FWCore/Framework/interface/Run.h" 00020 00021 #include "DQMServices/Core/interface/DQMStore.h" 00022 #include "DQMServices/Core/interface/MonitorElement.h" 00023 #include "FWCore/ServiceRegistry/interface/Service.h" 00024 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00025 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00026 00027 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h" 00028 00029 class HLTMonBitSummary : public edm::EDAnalyzer { 00030 public: 00031 explicit HLTMonBitSummary(const edm::ParameterSet&); 00032 ~HLTMonBitSummary(); 00033 00034 private: 00035 virtual void beginJob(); 00036 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00037 virtual void endJob() ; 00038 virtual void beginRun(const edm::Run & r, const edm::EventSetup &); 00039 // virtual void endRun(const edm::Run &, const edm::EventSetup &); 00040 virtual void configSelector(std::vector<std::string > selectTriggers, std::vector<std::string > & theSelectTriggers ); 00041 00042 edm::InputTag inputTag_; 00043 DQMStore * dbe_; 00044 00045 HLTConfigProvider hltConfig_; 00046 bool hltchange_; 00047 00048 std::vector<std::string > HLTPathsByName_; 00049 std::vector<std::string > HLTPathNamesConfig_; 00050 std::vector<std::string > HLTPathNamesConfigPreVal_; 00051 std::vector<std::string > HLTPathNamesKey_; 00052 00053 std::vector<std::string > HLTPathDenomName_; 00054 std::vector<std::string > HLTPathDenomNamePreVal_; 00055 std::vector<std::string > filterTypes_; 00056 std::vector<unsigned int> HLTPathsByIndex_; 00057 std::string denominator_; 00058 std::string denominatorWild_; 00059 std::vector<std::string > dummyFilters_; 00060 std::string esPathsKey_; 00061 00062 00063 std::vector<unsigned int> count_; 00064 00065 std::vector <std::vector <std::string> > triggerFilters_; 00066 std::vector <std::vector <uint> > triggerFilterIndices_; 00067 00068 bool configFlag_; 00069 bool filterFlag_; 00070 00071 unsigned int total_; 00072 unsigned int nValidTriggers_; 00073 unsigned int nValidConfigTriggers_; 00074 //static const int NTRIG = 20; 00075 00076 //std::string out_; 00077 unsigned int ndenomAccept_; 00078 00079 std::string directory_; 00080 std::string histLabel_; 00081 //std::string label_; 00082 00083 //MonitorElement * hEffSummary; 00084 //MonitorElement * hCountSummary; 00085 //MonitorElement * hSubFilterCount[NTRIG]; 00086 //MonitorElement * hSubFilterEff[NTRIG]; 00087 std::vector<MonitorElement* > hSubFilterCount; 00088 std::vector<MonitorElement* > hSubFilterEff; 00089 00090 MonitorElement * h1_; 00091 MonitorElement * h2_; 00092 MonitorElement * pf_; 00093 MonitorElement * ratio_; 00094 00095 }; 00096 #endif