00001 #ifndef L1TdeECAL_H 00002 #define L1TdeECAL_H 00003 00004 /*\class L1TdeECAL 00005 *\description ECAL TPG data|emulation comparison DQM interface 00006 produces expert level DQM monitorable elements 00007 *\authors P.Paganini, N.Leonardo 00008 *\note et trigger tower map inspired from code in 00009 DQM/EcalBarrelMonitorTasks 00010 *\date 07.11 00011 */ 00012 00013 // system, common includes 00014 #include <memory> 00015 #include <string> 00016 #include "FWCore/ServiceRegistry/interface/Service.h" 00017 #include "FWCore/Framework/interface/Frameworkfwd.h" 00018 #include "FWCore/Framework/interface/EDAnalyzer.h" 00019 #include "FWCore/Framework/interface/Event.h" 00020 #include "FWCore/Framework/interface/MakerMacros.h" 00021 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00022 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00023 // dqm includes 00024 #include "DQMServices/Core/interface/DQMStore.h" 00025 #include "DQMServices/Core/interface/MonitorElement.h" 00026 // l1 dataformats, d|e record includes 00027 #include "L1Trigger/HardwareValidation/interface/DEtrait.h" 00028 00029 class L1TdeECAL : public edm::EDAnalyzer { 00030 00031 public: 00032 00033 explicit L1TdeECAL(const edm::ParameterSet&); 00034 ~L1TdeECAL(); 00035 00036 protected: 00037 00038 virtual void beginJob(const edm::EventSetup&) ; 00039 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00040 virtual void endJob() ; 00041 00042 public: 00043 00044 static const int nSM = 36; 00045 static const int nTTEta = 17; 00046 static const int nTTPhi = 4; 00047 00048 private: 00049 00050 // input d|e record 00051 edm::InputTag DEsource_; 00052 bool hasRecord_; 00053 00054 // debug verbose level 00055 int verbose_; 00056 int verbose() {return verbose_;} 00057 00058 // root output file name 00059 std::string histFile_; 00060 00061 // dqm histogram folder 00062 std::string histFolder_; 00063 00064 // dqm common 00065 DQMStore* dbe; 00066 bool monitorDaemon_; 00067 00068 // et eta-phi map, for data and emul, for individual supermodules 00069 std::vector<MonitorElement*> etmapData; 00070 std::vector<MonitorElement*> etmapEmul; 00071 std::vector<MonitorElement*> etmapDiff; 00072 MonitorElement * EcalEtMapDiff ; 00073 MonitorElement * EcalFGMapDiff ; 00074 00075 public: 00076 00077 //auxiliary converters 00078 int iEtaiPhiToSMid(int, int); 00079 int TCCidToSMid(int); 00080 00081 }; 00082 00083 #endif