00001 // -*-C++-*- 00002 #ifndef L1TGCT_H 00003 #define L1TGCT_H 00004 00005 /* 00006 * \file L1TGCT.h 00007 * 00008 * $Date: 2010/05/30 10:01:58 $ 00009 * $Revision: 1.23 $ 00010 * \author J. Berryhill 00011 * $Id: L1TGCT.h,v 1.23 2010/05/30 10:01:58 tapper Exp $ 00012 * $Log: L1TGCT.h,v $ 00013 * Revision 1.23 2010/05/30 10:01:58 tapper 00014 * Added one histogram, correlation of sum ET and HT and changed a few labels for the better. 00015 * 00016 * Revision 1.22 2009/11/19 14:33:13 puigh 00017 * modify beginJob 00018 * 00019 * Revision 1.21 2009/11/02 17:00:04 tapper 00020 * Changes to L1TdeGCT (to include energy sums), to L1TDEMON (should not make any difference now) and L1TGCT to add multiple BXs. 00021 * 00022 * Revision 1.20 2009/06/23 09:48:55 tapper 00023 * Added missing occupancy plot for central and forward jets. 00024 * 00025 * Revision 1.19 2009/06/22 15:58:20 tapper 00026 * Added MET vs MHT correlation plots (both for magnitude and phi). Still untested! 00027 * 00028 * Revision 1.18 2009/06/22 15:47:04 tapper 00029 * Removed rank difference histograms and added MHT. Untested so far! 00030 * 00031 * Revision 1.17 2009/05/27 21:49:26 jad 00032 * updated Total and Missing Energy histograms and added Overlow plots 00033 * 00034 * Revision 1.16 2008/11/11 13:20:31 tapper 00035 * A whole list of house keeping: 00036 * 1. New shifter histogram with central and forward jets together. 00037 * 2. Relabelled Ring 0 and Ring 1 to Ring 1 and Ring 2 for HF rings. 00038 * 3. Tidied up some histograms names to make all consistent. 00039 * 4. Switched eta and phi in 2D plots to match RCT. 00040 * 5. Removed 1D eta and phi plots. Will not be needed for Qtests in future. 00041 * 00042 * Revision 1.15 2008/09/21 14:33:12 jad 00043 * updated HF Sums & Counts and added individual Jet Candidates and differences 00044 * 00045 * Revision 1.14 2008/06/09 11:08:05 tapper 00046 * Removed electron sub-folders with histograms per eta and phi bin. 00047 * 00048 * Revision 1.13 2008/06/02 11:08:58 tapper 00049 * Added HF ring histograms.... 00050 * 00051 * Revision 1.12 2008/04/28 09:23:07 tapper 00052 * Added 1D eta and phi histograms for electrons and jets as input to Q tests. 00053 * 00054 * Revision 1.11 2008/04/25 15:40:21 tapper 00055 * Added histograms to EventInfo//errorSummarySegments. 00056 * 00057 * Revision 1.10 2008/03/01 00:40:00 lat 00058 * DQM core migration. 00059 * 00060 * Revision 1.9 2008/02/20 19:24:24 tapper 00061 * Removed noisy include. 00062 * 00063 * Revision 1.8 2008/02/20 18:59:29 tapper 00064 * Ported GCTMonitor histograms into L1TGCT 00065 * 00066 * Revision 1.7 2007/09/04 02:54:21 wittich 00067 * - fix dupe ME in RCT 00068 * - put in rank>0 req in GCT 00069 * - various small other fixes 00070 * 00071 * Revision 1.6 2007/08/31 18:14:20 wittich 00072 * update GCT packages to reflect GctRawToDigi, and move to raw plots 00073 * 00074 * Revision 1.5 2007/08/31 11:02:55 wittich 00075 * cerr -> LogInfo 00076 * 00077 * Revision 1.4 2007/02/22 19:43:52 berryhil 00078 * 00079 * 00080 * 00081 * InputTag parameters added for all modules 00082 * 00083 * Revision 1.3 2007/02/19 22:49:53 wittich 00084 * - Add RCT monitor 00085 * 00086 * Revision 1.2 2007/02/19 21:11:23 wittich 00087 * - Updates for integrating GCT monitor. 00088 * + Adapted right now only the L1E elements thereof. 00089 * + added DataFormats/L1Trigger to build file. 00090 * 00091 * 00092 */ 00093 00094 // system include files 00095 #include <memory> 00096 #include <unistd.h> 00097 00098 00099 #include <iostream> 00100 #include <fstream> 00101 #include <vector> 00102 00103 00104 // user include files 00105 #include "FWCore/Framework/interface/Frameworkfwd.h" 00106 #include "FWCore/Framework/interface/EDAnalyzer.h" 00107 00108 #include "FWCore/Framework/interface/Event.h" 00109 #include "FWCore/Framework/interface/MakerMacros.h" 00110 00111 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00112 00113 #include "FWCore/ServiceRegistry/interface/Service.h" 00114 00115 // DQM 00116 #include "DQMServices/Core/interface/DQMStore.h" 00117 #include "DQMServices/Core/interface/MonitorElement.h" 00118 00119 00120 00121 00122 00123 // 00124 // class declaration 00125 // 00126 00127 class L1TGCT : public edm::EDAnalyzer { 00128 00129 public: 00130 00131 // Constructor 00132 L1TGCT(const edm::ParameterSet& ps); 00133 00134 // Destructor 00135 virtual ~L1TGCT(); 00136 00137 protected: 00138 // Analyze 00139 void analyze(const edm::Event& e, const edm::EventSetup& c); 00140 00141 // BeginJob 00142 void beginJob(void); 00143 00144 // EndJob 00145 void endJob(void); 00146 00147 private: 00148 // ----------member data --------------------------- 00149 DQMStore * dbe; 00150 00151 // Jet and EM stuff 00152 MonitorElement* l1GctAllJetsEtEtaPhi_; 00153 MonitorElement* l1GctCenJetsEtEtaPhi_; 00154 MonitorElement* l1GctForJetsEtEtaPhi_; 00155 MonitorElement* l1GctTauJetsEtEtaPhi_; 00156 MonitorElement* l1GctIsoEmRankEtaPhi_; 00157 MonitorElement* l1GctNonIsoEmRankEtaPhi_; 00158 00159 MonitorElement* l1GctAllJetsOccEtaPhi_; 00160 MonitorElement* l1GctCenJetsOccEtaPhi_; 00161 MonitorElement* l1GctForJetsOccEtaPhi_; 00162 MonitorElement* l1GctTauJetsOccEtaPhi_; 00163 MonitorElement* l1GctIsoEmOccEtaPhi_; 00164 MonitorElement* l1GctNonIsoEmOccEtaPhi_; 00165 00166 MonitorElement* l1GctCenJetsRank_; 00167 MonitorElement* l1GctForJetsRank_; 00168 MonitorElement* l1GctTauJetsRank_; 00169 MonitorElement* l1GctIsoEmRank_; 00170 MonitorElement* l1GctNonIsoEmRank_; 00171 00172 MonitorElement* l1GctAllJetsOccRankBx_; 00173 MonitorElement* l1GctAllEmOccRankBx_; 00174 00175 // Energy sums stuff 00176 MonitorElement* l1GctEtMiss_; 00177 MonitorElement* l1GctEtMissPhi_; 00178 MonitorElement* l1GctEtMissOf_; 00179 MonitorElement* l1GctEtMissOccBx_; 00180 MonitorElement* l1GctHtMiss_; 00181 MonitorElement* l1GctHtMissPhi_; 00182 MonitorElement* l1GctHtMissOf_; 00183 MonitorElement* l1GctHtMissOccBx_; 00184 MonitorElement* l1GctEtMissHtMissCorr_; 00185 MonitorElement* l1GctEtMissHtMissCorrPhi_; 00186 MonitorElement* l1GctEtTotal_; 00187 MonitorElement* l1GctEtTotalOf_; 00188 MonitorElement* l1GctEtTotalOccBx_; 00189 MonitorElement* l1GctEtHad_; 00190 MonitorElement* l1GctEtHadOf_; 00191 MonitorElement* l1GctEtHadOccBx_; 00192 MonitorElement* l1GctEtTotalEtHadCorr_; 00193 00194 // HF Rings stuff 00195 MonitorElement* l1GctHFRing1PosEtaNegEta_; 00196 MonitorElement* l1GctHFRing2PosEtaNegEta_; 00197 MonitorElement* l1GctHFRing1TowerCountPosEtaNegEta_; 00198 MonitorElement* l1GctHFRing2TowerCountPosEtaNegEta_; 00199 MonitorElement* l1GctHFRing1TowerCountPosEta_; 00200 MonitorElement* l1GctHFRing1TowerCountNegEta_; 00201 MonitorElement* l1GctHFRing2TowerCountPosEta_; 00202 MonitorElement* l1GctHFRing2TowerCountNegEta_; 00203 MonitorElement* l1GctHFRing1ETSumPosEta_; 00204 MonitorElement* l1GctHFRing1ETSumNegEta_; 00205 MonitorElement* l1GctHFRing2ETSumPosEta_; 00206 MonitorElement* l1GctHFRing2ETSumNegEta_; 00207 MonitorElement* l1GctHFRingRatioPosEta_; 00208 MonitorElement* l1GctHFRingRatioNegEta_; 00209 MonitorElement* l1GctHFRingETSumOccBx_; 00210 MonitorElement* l1GctHFRingTowerCountOccBx_; 00211 00212 int nev_; // Number of events processed 00213 std::string outputFile_; //file name for ROOT ouput 00214 bool verbose_; 00215 bool monitorDaemon_; 00216 ofstream logFile_; 00217 00218 edm::InputTag gctCenJetsSource_; 00219 edm::InputTag gctForJetsSource_; 00220 edm::InputTag gctTauJetsSource_; 00221 edm::InputTag gctEnergySumsSource_; 00222 edm::InputTag gctIsoEmSource_; 00223 edm::InputTag gctNonIsoEmSource_; 00224 00225 }; 00226 00227 #endif