00001 /* 00002 * ===================================================================================== 00003 * 00004 * Filename: CSCHLTMonitorModule.h 00005 * 00006 * Description: Main object of CSC HLT DQM Monitor 00007 * 00008 * Version: 1.0 00009 * Created: 09/15/2008 01:30:00 PM 00010 * Revision: none 00011 * Compiler: gcc 00012 * 00013 * Author: Valdas Rapsevicius (VR), Valdas.Rapsevicius@cern.ch 00014 * Company: CERN, CH 00015 * 00016 * ===================================================================================== 00017 */ 00018 00019 #ifndef CSCHLTMonitorModule_H 00020 #define CSCHLTMonitorModule_H 00021 00026 #include <memory> 00027 #include <iostream> 00028 #include <sstream> 00029 #include <fstream> 00030 #include <string> 00031 #include <vector> 00032 #include <set> 00033 #include <map> 00034 #include <bitset> 00035 00036 #include <FWCore/Framework/interface/EDAnalyzer.h> 00037 #include <DQMServices/Core/interface/DQMStore.h> 00038 #include <DQMServices/Core/interface/MonitorElement.h> 00039 #include <FWCore/ServiceRegistry/interface/Service.h> 00040 #include <FWCore/ParameterSet/interface/ParameterSet.h> 00041 #include <FWCore/MessageLogger/interface/MessageLogger.h> 00042 00043 #include "FWCore/Framework/interface/Event.h" 00044 #include "FWCore/Framework/interface/EventSetup.h" 00045 #include "FWCore/Framework/interface/Frameworkfwd.h" 00046 #include "DataFormats/FEDRawData/interface/FEDRawData.h" 00047 #include "DataFormats/FEDRawData/interface/FEDNumbering.h" 00048 #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h" 00049 #include "EventFilter/CSCRawToDigi/interface/CSCDCCEventData.h" 00050 #include "EventFilter/CSCRawToDigi/interface/CSCDCCExaminer.h" 00051 #include "EventFilter/CSCRawToDigi/interface/CSCCFEBData.h" 00052 #include "EventFilter/CSCRawToDigi/interface/CSCCFEBTimeSlice.h" 00053 00054 #include "CondFormats/CSCObjects/interface/CSCCrateMap.h" 00055 00056 #include "FWCore/Framework/interface/ESHandle.h" 00057 #include "DQM/CSCMonitorModule/interface/CSCUtility.h" 00058 #include "CondFormats/DataRecord/interface/CSCCrateMapRcd.h" 00059 00064 #define LOGERROR(cat) edm::LogError (cat) 00065 #define LOGWARNING(cat) edm::LogWarning (cat) 00066 #define LOGINFO(cat) edm::LogInfo (cat) 00067 #define LOGDEBUG(cat) LogDebug (cat) 00068 00069 #define FED_FOLDER "FEDIntegrity" 00070 00075 typedef std::bitset<32> Bitset32; 00076 typedef std::map<const std::string, MonitorElement*> MeMap; 00077 00082 class CSCHLTMonitorModule: public edm::EDAnalyzer { 00083 00084 public: 00085 00086 CSCHLTMonitorModule(const edm::ParameterSet& ps); 00087 virtual ~CSCHLTMonitorModule(); 00088 00089 protected: 00090 00091 void beginJob(const edm::EventSetup& c); 00092 void beginRun(const edm::Run& r, const edm::EventSetup& c); 00093 void setup(); 00094 void analyze(const edm::Event& e, const edm::EventSetup& c) ; 00095 void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& context) ; 00096 void endRun(const edm::Run& r, const edm::EventSetup& c); 00097 void endJob(); 00098 00099 private: 00100 00102 void monitorEvent(const edm::Event& e) ; 00103 00105 MeMap mes; 00106 00108 edm::ParameterSet parameters; 00109 DQMStore* dbe; 00110 std::string monitorName; 00111 std::string rootDir; 00112 00114 bool init; 00115 00117 edm::InputTag inputObjectsTag; 00118 00120 unsigned int examinerMask; 00121 bool examinerForce; 00122 bool examinerOutput; 00123 Bitset32 examinerCRCKey; 00124 00126 uint32_t nEvents; 00127 uint32_t fedIdMin; 00128 uint32_t fedIdMax; 00129 00130 }; 00131 00132 #endif