00001 00002 #ifndef DQMMESSAGELOGGER_H 00003 #define DQMMESSAGELOGGER_H 00004 00005 #include "FWCore/Framework/interface/Frameworkfwd.h" 00006 #include "FWCore/Framework/interface/EDAnalyzer.h" 00007 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00008 #include "FWCore/ServiceRegistry/interface/Service.h" 00009 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00010 #include "DataFormats/FWLite/interface/Event.h" 00011 #include<vector> 00012 #include <string> 00013 #include <map> 00014 00015 class DQMStore; 00016 class MonitorElement; 00017 00018 class DQMMessageLogger : public edm::EDAnalyzer { 00019 public: 00020 00022 DQMMessageLogger(const edm::ParameterSet&); 00023 00025 virtual ~DQMMessageLogger(); 00026 00028 void beginJob(); 00029 00031 void analyze(const edm::Event&, const edm::EventSetup&); 00032 00033 00035 void endRun(const edm::Run & r, const edm::EventSetup & c); 00036 00038 void endJob(); 00039 00040 private: 00041 00042 00043 // ----------member data --------------------------- 00044 00045 DQMStore* theDbe; 00046 // Switch for verbosity 00047 std::string metname; 00048 00049 std::map<std::string,int> moduleMap; 00050 std::map<std::string,int> categoryMap; 00051 std::map<std::string,int> categoryWCount; 00052 std::map<std::string,int> categoryECount; 00053 // from parameters 00054 std::vector<std::string> categories_vector; 00055 std::string directoryName; 00056 00057 //The histos 00058 MonitorElement *categories_errors; 00059 MonitorElement *categories_warnings; 00060 MonitorElement *modules_errors; 00061 MonitorElement *modules_warnings; 00062 MonitorElement *total_errors; 00063 MonitorElement *total_warnings; 00064 00065 00066 }; 00067 #endif 00068 00069