CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/DQM/L1TMonitor/interface/L1TGT.h

Go to the documentation of this file.
00001 #ifndef L1TGT_H
00002 #define L1TGT_H
00003 
00004 /*
00005  * \file L1TGT.h
00006  *
00007  * $Date: 2010/07/09 18:12:25 $
00008  * $Revision: 1.9 $
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 <iostream>
00032 #include <fstream>
00033 #include <vector>
00034 
00035 //
00036 // class decleration
00037 //
00038 
00039 class L1TGT : public edm::EDAnalyzer {
00040 
00041 public:
00042 
00043 // Constructor
00044 L1TGT(const edm::ParameterSet& ps);
00045 
00046 // Destructor
00047 virtual ~L1TGT();
00048 
00049 protected:
00050 // Analyze
00051 void analyze(const edm::Event& e, const edm::EventSetup& c);
00052 
00053 // BeginJob
00054 void beginJob();
00055 
00056 // EndJob
00057 void endJob(void);
00058 
00059 private:
00060   
00061   bool isActive(int word, int bit);
00062   // Active boards DAQ record bit number:
00063   // 0 FDL 
00064   // 1 PSB_0 9 Techn.Triggers for FDL
00065   // 2 PSB_1 13 Calo data for GTL
00066   // 3 PSB_2 14 Calo data for GTL
00067   // 4 PSB_3 15 Calo data for GTL
00068   // 5 PSB_4 19 M/Q bits for GMT
00069   // 6 PSB_5 20 M/Q bits for GMT
00070   // 7 PSB_6 21 M/Q bits for GMT
00071   // 8 GMT
00072   enum activeDAQ { FDL=0, PSB9, PSB13, PSB14, PSB15, PSB19, PSB20, PSB21, GMT };
00073   // Active boards EVM record bit number:
00074   // 0 TCS 
00075   // 1 FDL 
00076   enum activeEVM { TCS, FDLEVM };
00077   
00078   // ----------member data ---------------------------
00079   DQMStore * dbe;
00080 
00081   MonitorElement* algo_bits;
00082   MonitorElement* algo_bits_corr;
00083   MonitorElement* tt_bits;
00084   MonitorElement* tt_bits_corr;
00085   MonitorElement* algo_tt_bits_corr;
00086   MonitorElement* algo_bits_lumi;
00087   MonitorElement* tt_bits_lumi;
00088   MonitorElement* event_type;
00089  
00090   MonitorElement* event_number;
00091   MonitorElement* event_lumi;
00092   MonitorElement* trigger_number;
00093   MonitorElement* trigger_lumi;
00094   MonitorElement* evnum_trignum_lumi;
00095   MonitorElement* orbit_lumi;
00096   MonitorElement* setupversion_lumi; 
00097 
00098   MonitorElement* gtfe_bx;
00099   MonitorElement* dbx_module;
00100 
00101   MonitorElement* BST_MasterStatus;
00102   MonitorElement* BST_turnCountNumber;
00103   MonitorElement* BST_lhcFillNumber;
00104   MonitorElement* BST_beamMode;
00105   MonitorElement* BST_beamMomentum;
00106   MonitorElement* BST_intensityBeam1;
00107   MonitorElement* BST_intensityBeam2;
00108   MonitorElement* gpsfreq;
00109   MonitorElement* gpsfreqwide;
00110   MonitorElement* gpsfreqlum;
00111   
00112   MonitorElement* m_monL1PrescaleFactorSet;
00113 
00114 
00115   
00116 
00117   int nev_; // Number of events processed
00118   std::string outputFile_; //file name for ROOT ouput
00119   bool verbose_;
00120   bool monitorDaemon_;
00121   ofstream logFile_;
00122   edm::InputTag gtSource_;
00123   edm::InputTag gtEvmSource_;
00124   
00125   boost::uint64_t preGps_;
00126   boost::uint64_t preOrb_;
00127 };
00128 
00129 #endif