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