00001 // -*-C++-*- 00002 #ifndef L1TGCT_H 00003 #define L1TGCT_H 00004 00005 /* 00006 * \file L1TGCT.h 00007 * 00008 * $Date: 2008/09/21 14:33:12 $ 00009 * $Revision: 1.15 $ 00010 * \author J. Berryhill 00011 * $Id: L1TGCT.h,v 1.15 2008/09/21 14:33:12 jad Exp $ 00012 * $Log: L1TGCT.h,v $ 00013 * Revision 1.15 2008/09/21 14:33:12 jad 00014 * updated HF Sums & Counts and added individual Jet Candidates and differences 00015 * 00016 * Revision 1.14 2008/06/09 11:08:05 tapper 00017 * Removed electron sub-folders with histograms per eta and phi bin. 00018 * 00019 * Revision 1.13 2008/06/02 11:08:58 tapper 00020 * Added HF ring histograms.... 00021 * 00022 * Revision 1.12 2008/04/28 09:23:07 tapper 00023 * Added 1D eta and phi histograms for electrons and jets as input to Q tests. 00024 * 00025 * Revision 1.11 2008/04/25 15:40:21 tapper 00026 * Added histograms to EventInfo//errorSummarySegments. 00027 * 00028 * Revision 1.10 2008/03/01 00:40:00 lat 00029 * DQM core migration. 00030 * 00031 * Revision 1.9 2008/02/20 19:24:24 tapper 00032 * Removed noisy include. 00033 * 00034 * Revision 1.8 2008/02/20 18:59:29 tapper 00035 * Ported GCTMonitor histograms into L1TGCT 00036 * 00037 * Revision 1.7 2007/09/04 02:54:21 wittich 00038 * - fix dupe ME in RCT 00039 * - put in rank>0 req in GCT 00040 * - various small other fixes 00041 * 00042 * Revision 1.6 2007/08/31 18:14:20 wittich 00043 * update GCT packages to reflect GctRawToDigi, and move to raw plots 00044 * 00045 * Revision 1.5 2007/08/31 11:02:55 wittich 00046 * cerr -> LogInfo 00047 * 00048 * Revision 1.4 2007/02/22 19:43:52 berryhil 00049 * 00050 * 00051 * 00052 * InputTag parameters added for all modules 00053 * 00054 * Revision 1.3 2007/02/19 22:49:53 wittich 00055 * - Add RCT monitor 00056 * 00057 * Revision 1.2 2007/02/19 21:11:23 wittich 00058 * - Updates for integrating GCT monitor. 00059 * + Adapted right now only the L1E elements thereof. 00060 * + added DataFormats/L1Trigger to build file. 00061 * 00062 * 00063 */ 00064 00065 // system include files 00066 #include <memory> 00067 #include <unistd.h> 00068 00069 00070 #include <iostream> 00071 #include <fstream> 00072 #include <vector> 00073 00074 00075 // user include files 00076 #include "FWCore/Framework/interface/Frameworkfwd.h" 00077 #include "FWCore/Framework/interface/EDAnalyzer.h" 00078 00079 #include "FWCore/Framework/interface/Event.h" 00080 #include "FWCore/Framework/interface/MakerMacros.h" 00081 00082 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00083 00084 #include "FWCore/ServiceRegistry/interface/Service.h" 00085 00086 // DQM 00087 #include "DQMServices/Core/interface/DQMStore.h" 00088 #include "DQMServices/Core/interface/MonitorElement.h" 00089 00090 00091 00092 00093 00094 // 00095 // class declaration 00096 // 00097 00098 class L1TGCT : public edm::EDAnalyzer { 00099 00100 public: 00101 00102 // Constructor 00103 L1TGCT(const edm::ParameterSet& ps); 00104 00105 // Destructor 00106 virtual ~L1TGCT(); 00107 00108 protected: 00109 // Analyze 00110 void analyze(const edm::Event& e, const edm::EventSetup& c); 00111 00112 // BeginJob 00113 void beginJob(const edm::EventSetup& c); 00114 00115 // EndJob 00116 void endJob(void); 00117 00118 private: 00119 // ----------member data --------------------------- 00120 DQMStore * dbe; 00121 00122 // GCT stuff 00123 MonitorElement* l1GctCenJetsEtEtaPhi_; 00124 MonitorElement* l1GctForJetsEtEtaPhi_; 00125 MonitorElement* l1GctTauJetsEtEtaPhi_; 00126 MonitorElement* l1GctIsoEmRankEtaPhi_; 00127 MonitorElement* l1GctNonIsoEmRankEtaPhi_; 00128 00129 MonitorElement* l1GctCenJetsOccEtaPhi_; 00130 MonitorElement* l1GctForJetsOccEtaPhi_; 00131 MonitorElement* l1GctTauJetsOccEtaPhi_; 00132 MonitorElement* l1GctIsoEmOccEtaPhi_; 00133 MonitorElement* l1GctNonIsoEmOccEtaPhi_; 00134 00135 MonitorElement* l1GctCenJetsOccEta_; 00136 MonitorElement* l1GctForJetsOccEta_; 00137 MonitorElement* l1GctTauJetsOccEta_; 00138 MonitorElement* l1GctIsoEmOccEta_; 00139 MonitorElement* l1GctNonIsoEmOccEta_; 00140 00141 MonitorElement* l1GctCenJetsOccPhi_; 00142 MonitorElement* l1GctForJetsOccPhi_; 00143 MonitorElement* l1GctTauJetsOccPhi_; 00144 MonitorElement* l1GctIsoEmOccPhi_; 00145 MonitorElement* l1GctNonIsoEmOccPhi_; 00146 00147 MonitorElement* l1GctCenJetsRank_; 00148 MonitorElement* l1GctForJetsRank_; 00149 MonitorElement* l1GctTauJetsRank_; 00150 MonitorElement* l1GctIsoEmRank_; 00151 MonitorElement* l1GctNonIsoEmRank_; 00152 00153 MonitorElement* l1GctEtMiss_; 00154 MonitorElement* l1GctEtMissPhi_; 00155 MonitorElement* l1GctEtTotal_; 00156 MonitorElement* l1GctEtHad_; 00157 00158 //HF Rings stuff 00159 MonitorElement* l1GctHFRing0PosEtaNegEta_; 00160 MonitorElement* l1GctHFRing1PosEtaNegEta_; 00161 MonitorElement* l1GctHFRing0TowerCountPosEtaNegEta_; 00162 MonitorElement* l1GctHFRing1TowerCountPosEtaNegEta_; 00163 MonitorElement* l1GctHFRing0TowerCountPosEta_; 00164 MonitorElement* l1GctHFRing0TowerCountNegEta_; 00165 MonitorElement* l1GctHFRing1TowerCountPosEta_; 00166 MonitorElement* l1GctHFRing1TowerCountNegEta_; 00167 MonitorElement* l1GctHFRing0ETSumPosEta_; 00168 MonitorElement* l1GctHFRing0ETSumNegEta_; 00169 MonitorElement* l1GctHFRing1ETSumPosEta_; 00170 MonitorElement* l1GctHFRing1ETSumNegEta_; 00171 MonitorElement* l1GctHFRingRatioPosEta_; 00172 MonitorElement* l1GctHFRingRatioNegEta_; 00173 00174 // GCT electron stuff 00175 MonitorElement* l1GctIsoEmRankCand0_; 00176 MonitorElement* l1GctIsoEmRankCand1_; 00177 MonitorElement* l1GctIsoEmRankCand2_; 00178 MonitorElement* l1GctIsoEmRankCand3_; 00179 00180 MonitorElement* l1GctNonIsoEmRankCand0_; 00181 MonitorElement* l1GctNonIsoEmRankCand1_; 00182 MonitorElement* l1GctNonIsoEmRankCand2_; 00183 MonitorElement* l1GctNonIsoEmRankCand3_; 00184 00185 MonitorElement* l1GctIsoEmRankDiff01_; 00186 MonitorElement* l1GctIsoEmRankDiff12_; 00187 MonitorElement* l1GctIsoEmRankDiff23_; 00188 MonitorElement* l1GctNonIsoEmRankDiff01_; 00189 MonitorElement* l1GctNonIsoEmRankDiff12_; 00190 MonitorElement* l1GctNonIsoEmRankDiff23_; 00191 00192 //GCT jet stuff 00193 MonitorElement* l1GctCenJetsRankCand0_; 00194 MonitorElement* l1GctCenJetsRankCand1_; 00195 MonitorElement* l1GctCenJetsRankCand2_; 00196 MonitorElement* l1GctCenJetsRankCand3_; 00197 MonitorElement* l1GctForJetsRankCand0_; 00198 MonitorElement* l1GctForJetsRankCand1_; 00199 MonitorElement* l1GctForJetsRankCand2_; 00200 MonitorElement* l1GctForJetsRankCand3_; 00201 MonitorElement* l1GctTauJetsRankCand0_; 00202 MonitorElement* l1GctTauJetsRankCand1_; 00203 MonitorElement* l1GctTauJetsRankCand2_; 00204 MonitorElement* l1GctTauJetsRankCand3_; 00205 00206 MonitorElement* l1GctCenJetsRankDiff01_; 00207 MonitorElement* l1GctCenJetsRankDiff12_; 00208 MonitorElement* l1GctCenJetsRankDiff23_; 00209 MonitorElement* l1GctForJetsRankDiff01_; 00210 MonitorElement* l1GctForJetsRankDiff12_; 00211 MonitorElement* l1GctForJetsRankDiff23_; 00212 MonitorElement* l1GctTauJetsRankDiff01_; 00213 MonitorElement* l1GctTauJetsRankDiff12_; 00214 MonitorElement* l1GctTauJetsRankDiff23_; 00215 00216 00217 int nev_; // Number of events processed 00218 std::string outputFile_; //file name for ROOT ouput 00219 bool verbose_; 00220 bool monitorDaemon_; 00221 ofstream logFile_; 00222 00223 edm::InputTag gctCenJetsSource_; 00224 edm::InputTag gctForJetsSource_; 00225 edm::InputTag gctTauJetsSource_; 00226 edm::InputTag gctEnergySumsSource_; 00227 edm::InputTag gctIsoEmSource_; 00228 edm::InputTag gctNonIsoEmSource_; 00229 00230 }; 00231 00232 #endif