00001 #ifndef L1TCSCTF_H 00002 #define L1TCSCTF_H 00003 00004 /* 00005 * \file L1TCSCTF.h 00006 * 00007 * $Date: 2012/04/05 14:57:59 $ 00008 * $Revision: 1.17 $ 00009 * \author J. Berryhill 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 // Sector Receiver LUT class to transform wire/strip numbers to eta/phi observables 00037 #include "L1Trigger/CSCTrackFinder/interface/CSCSectorReceiverLUT.h" 00038 00039 #include "CondFormats/L1TObjects/interface/L1MuTriggerScales.h" 00040 #include "CondFormats/DataRecord/interface/L1MuTriggerScalesRcd.h" 00041 #include "CondFormats/L1TObjects/interface/L1MuTriggerPtScale.h" 00042 #include "CondFormats/DataRecord/interface/L1MuTriggerPtScaleRcd.h" 00043 00044 #include <iostream> 00045 #include <fstream> 00046 #include <vector> 00047 00048 // 00049 // class decleration 00050 // 00051 00052 class L1TCSCTF : public edm::EDAnalyzer { 00053 00054 public: 00055 00056 // Constructor 00057 L1TCSCTF(const edm::ParameterSet& ps); 00058 00059 // Destructor 00060 virtual ~L1TCSCTF(); 00061 00062 protected: 00063 // Analyze 00064 void analyze(const edm::Event& e, const edm::EventSetup& c); 00065 00066 // BeginJob 00067 void beginJob(void); 00068 00069 // EndJob 00070 void endJob(void); 00071 00072 private: 00073 // ----------member data --------------------------- 00074 DQMStore * dbe; 00075 00076 MonitorElement* csctfntrack; 00077 MonitorElement* csctfbx; 00078 MonitorElement* csctfbx_H; 00079 00080 MonitorElement* csctferrors; 00081 MonitorElement* csctfoccupancies; 00082 MonitorElement* csctfoccupancies_H; 00083 00084 //MonitorElement* haloDelEta112; 00085 //MonitorElement* haloDelEta12; 00086 //MonitorElement* haloDelEta113; 00087 //MonitorElement* haloDelEta13; 00088 00089 MonitorElement* csctfChamberOccupancies; 00090 MonitorElement* csctfTrackPhi; //all tracks but halo 00091 MonitorElement* csctfTrackEta; //all tracks but halo 00092 MonitorElement* csctfTrackEtaLowQ; //all tracks but halo 00093 MonitorElement* csctfTrackEtaHighQ; //all tracks but halo 00094 MonitorElement* csctfTrackPhi_H; //halo tracks only 00095 MonitorElement* csctfTrackEta_H; //halo tracks only 00096 MonitorElement* cscTrackStubNumbers; 00097 MonitorElement* csctfTrackM; 00098 MonitorElement* trackModeVsQ; 00099 MonitorElement* csctfAFerror; 00100 00101 // 1-> 6 plus endcap 00102 // 7->12 minus endcap 00103 MonitorElement* DTstubsTimeTrackMenTimeArrival[12]; 00104 int BxInEvent_; //bx of the CSC muon candidate 00105 bool isCSCcand_;//does GMT readout window have a CSC cand? 00106 00107 int L1ABXN; 00108 00109 int nev_; // Number of events processed 00110 std::string outputFile_; //file name for ROOT ouput 00111 bool verbose_; 00112 bool monitorDaemon_; 00113 ofstream logFile_; 00114 edm::InputTag gmtProducer, lctProducer, trackProducer, statusProducer, mbProducer; 00115 00116 CSCSectorReceiverLUT *srLUTs_[5]; 00117 00118 const L1MuTriggerScales *ts; 00119 const L1MuTriggerPtScale *tpts; 00120 unsigned long long m_scalesCacheID ; 00121 unsigned long long m_ptScaleCacheID ; 00122 00123 }; 00124 00125 #endif