00001 // -*-C++-*- 00002 #ifndef L1TECALTPG_H 00003 #define L1TECALTPG_H 00004 00005 /* 00006 * \file L1TECALTPG.h 00007 * 00008 * $Date: 2009/11/19 14:32:20 $ 00009 * $Revision: 1.8 $ 00010 * \author J. Berryhill 00011 * 00012 * $Log: L1TECALTPG.h,v $ 00013 * Revision 1.8 2009/11/19 14:32:20 puigh 00014 * modify beginJob 00015 * 00016 * Revision 1.7 2008/03/18 20:31:19 berryhil 00017 * 00018 * 00019 * update of ecal tpg dqm 00020 * 00021 * Revision 1.6 2008/03/01 00:40:00 lat 00022 * DQM core migration. 00023 * 00024 * Revision 1.5 2007/08/29 14:02:45 wittich 00025 * split into barrel and endcap 00026 * 00027 * Revision 1.4 2007/02/22 19:43:52 berryhil 00028 * 00029 * 00030 * 00031 * InputTag parameters added for all modules 00032 * 00033 * Revision 1.3 2007/02/20 22:48:59 wittich 00034 * - change from getByType to getByLabel in ECAL TPG, 00035 * and make it configurable. 00036 * - fix problem in the GCT with incorrect labels. Not the ultimate 00037 * solution - will probably have to go to many labels. 00038 * 00039 * Revision 1.2 2007/02/19 22:07:26 wittich 00040 * - Added three monitorables to the ECAL TPG monitoring (from GCTMonitor) 00041 * - other minor tweaks in GCT, etc 00042 * 00043 */ 00044 00045 // system include files 00046 #include <memory> 00047 #include <unistd.h> 00048 00049 // user include files 00050 #include "FWCore/Framework/interface/Frameworkfwd.h" 00051 #include "FWCore/Framework/interface/EDAnalyzer.h" 00052 00053 #include "FWCore/Framework/interface/Event.h" 00054 #include "FWCore/Framework/interface/MakerMacros.h" 00055 00056 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00057 00058 #include "DQMServices/Core/interface/DQMStore.h" 00059 #include "DQMServices/Core/interface/MonitorElement.h" 00060 #include "FWCore/ServiceRegistry/interface/Service.h" 00061 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00062 00063 #include <iostream> 00064 #include <fstream> 00065 #include <vector> 00066 00067 00068 // 00069 // class declaration 00070 // 00071 00072 class L1TECALTPG:public edm::EDAnalyzer { 00073 00074 public: 00075 00076 // Constructor 00077 L1TECALTPG(const edm::ParameterSet & ps); 00078 00079 // Destructor 00080 virtual ~ L1TECALTPG(); 00081 00082 protected: 00083 // Analyze 00084 void analyze(const edm::Event & e, const edm::EventSetup & c); 00085 00086 // BeginJob 00087 void beginJob(void); 00088 00089 // EndJob 00090 void endJob(void); 00091 00092 private: 00093 // ----------member data --------------------------- 00094 DQMStore * dbe; 00095 00096 // what we monitor 00097 MonitorElement *ecalTpEtEtaPhiB_; 00098 MonitorElement *ecalTpOccEtaPhiB_; 00099 MonitorElement *ecalTpRankB_; 00100 00101 MonitorElement *ecalTpEtEtaPhiE_; 00102 MonitorElement *ecalTpOccEtaPhiE_; 00103 MonitorElement *ecalTpRankE_; 00104 00105 int nev_; // Number of events processed 00106 std::string outputFile_; //file name for ROOT ouput 00107 bool verbose_; 00108 bool enableEE_; 00109 bool monitorDaemon_; 00110 ofstream logFile_; 00111 00112 edm::InputTag ecaltpgSourceB_; // barrel 00113 edm::InputTag ecaltpgSourceE_; // endcap 00114 00115 }; 00116 00117 #endif