00001 #ifndef L1TGMT_H 00002 #define L1TGMT_H 00003 00004 /* 00005 * \file L1TGMT.h 00006 * 00007 * $Date: 2008/04/25 15:38:47 $ 00008 * $Revision: 1.7 $ 00009 * \author J. Berryhill, I. Mikulec 00010 * 00011 */ 00012 00013 // system include files 00014 #include <memory> 00015 #include <unistd.h> 00016 00017 // user include files 00018 #include "FWCore/Framework/interface/Frameworkfwd.h" 00019 #include "FWCore/Framework/interface/EDAnalyzer.h" 00020 00021 #include "FWCore/Framework/interface/Event.h" 00022 #include "FWCore/Framework/interface/MakerMacros.h" 00023 00024 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00025 00026 #include "DQMServices/Core/interface/DQMStore.h" 00027 #include "DQMServices/Core/interface/MonitorElement.h" 00028 #include "FWCore/ServiceRegistry/interface/Service.h" 00029 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00030 00031 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuRegionalCand.h" 00032 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTCand.h" 00033 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTExtendedCand.h" 00034 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h" 00035 00036 #include <iostream> 00037 #include <fstream> 00038 #include <vector> 00039 00040 // 00041 // class decleration 00042 // 00043 00044 class L1TGMT : public edm::EDAnalyzer { 00045 00046 public: 00047 00048 // Constructor 00049 L1TGMT(const edm::ParameterSet& ps); 00050 00051 // Destructor 00052 virtual ~L1TGMT(); 00053 00054 protected: 00055 // Analyze 00056 void analyze(const edm::Event& e, const edm::EventSetup& c); 00057 00058 // BeginJob 00059 void beginJob(const edm::EventSetup& c); 00060 00061 // EndJob 00062 void endJob(void); 00063 00064 private: 00065 // ----------member data --------------------------- 00066 DQMStore * dbe; 00067 00068 enum ensubs { DTTF=0, RPCb, CSCTF, RPCf, GMT }; 00069 00070 MonitorElement* subs_nbx[5]; 00071 MonitorElement* subs_eta[5]; 00072 MonitorElement* subs_phi[5]; 00073 MonitorElement* subs_pt[5]; 00074 MonitorElement* subs_qty[5]; 00075 MonitorElement* subs_etaphi[5]; 00076 MonitorElement* subs_etaqty[5]; 00077 MonitorElement* subs_bits[5]; 00078 MonitorElement* subs_candlumi[5]; 00079 00080 MonitorElement* regional_triggers; 00081 00082 MonitorElement* bx_number; 00083 MonitorElement* dbx_chip; 00084 MonitorElement* eta_dtcsc_and_rpc; 00085 MonitorElement* eta_dtcsc_only; 00086 MonitorElement* eta_rpc_only; 00087 MonitorElement* phi_dtcsc_and_rpc; 00088 MonitorElement* phi_dtcsc_only; 00089 MonitorElement* phi_rpc_only; 00090 MonitorElement* etaphi_dtcsc_and_rpc; 00091 MonitorElement* etaphi_dtcsc_only; 00092 MonitorElement* etaphi_rpc_only; 00093 MonitorElement* dist_phi_dt_rpc; 00094 MonitorElement* dist_phi_csc_rpc; 00095 MonitorElement* dist_phi_dt_csc; 00096 MonitorElement* dist_eta_dt_rpc; 00097 MonitorElement* dist_eta_csc_rpc; 00098 MonitorElement* dist_eta_dt_csc; 00099 00100 MonitorElement* n_rpcb_vs_dttf ; 00101 MonitorElement* n_rpcf_vs_csctf; 00102 MonitorElement* n_csctf_vs_dttf; 00103 00104 MonitorElement* subs_dbx[4]; 00105 00106 int nev_; // Number of events processed 00107 std::string outputFile_; //file name for ROOT ouput 00108 bool verbose_; 00109 bool monitorDaemon_; 00110 ofstream logFile_; 00111 edm::InputTag gmtSource_ ; 00112 00113 int evnum_old_; // event number of previous event 00114 int bxnum_old_; // bx of previous event 00115 int trsrc_old_; // code of trigger source ( bits: 0 DT, 1 bRPC, 2 CSC, 3 fRPC ) 00116 00117 static const double piconv_; 00118 }; 00119 00120 #endif