CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/DQM/L1TMonitor/interface/L1TDEMON.h

Go to the documentation of this file.
00001 #ifndef L1TDEMON_H
00002 #define L1TDEMON_H
00003 
00004 /*\class L1TDEMON
00005  *\description L1 trigger data|emulation comparison DQM interface 
00006                produces DQM monitorable elements
00007  *\author Nuno Leonardo (CERN)
00008  *\date 07.07
00009  */
00010 
00011 // system, common includes
00012 #include <memory>
00013 #include <string>
00014 #include "FWCore/ServiceRegistry/interface/Service.h"
00015 #include "FWCore/Framework/interface/Frameworkfwd.h"
00016 #include "FWCore/Framework/interface/EDAnalyzer.h"
00017 #include "FWCore/Framework/interface/Event.h"
00018 #include "FWCore/Framework/interface/MakerMacros.h"
00019 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00020 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00021 // dqm includes
00022 #include "DQMServices/Core/interface/DQMStore.h"
00023 #include "DQMServices/Core/interface/MonitorElement.h"
00024 // l1 dataformats, d|e record includes
00025 #include "L1Trigger/HardwareValidation/interface/DEtrait.h"
00026 
00027 
00028 class L1TDEMON : public edm::EDAnalyzer {
00029 
00030  public:
00031 
00032   explicit L1TDEMON(const edm::ParameterSet&);
00033   ~L1TDEMON();
00034 
00035  protected:
00036 
00037   virtual void beginJob(void) ;
00038   virtual void analyze(const edm::Event&, const edm::EventSetup&);
00039   virtual void endJob() ;
00040 
00041  private:
00042 
00043   // input d|e record
00044   edm::InputTag DEsource_;
00045   bool hasRecord_;
00046 
00047   // debug verbose level
00048   int verbose_;
00049   int verbose() {return verbose_;}
00050 
00051   // root output file name
00052   std::string histFile_;
00053 
00054   // dqm histogram folder
00055   std::string histFolder_;
00056 
00057   // dqm common
00058   DQMStore* dbe;
00059   bool monitorDaemon_;
00060  
00061   // running in filter farm? (use reduced set of me's)
00062   bool runInFF_;
00063 
00064   // counters
00065   int nEvt_;
00066   int deSysCount[dedefs::DEnsys];
00067   int nEvtWithSys[dedefs::DEnsys];
00068   
00069   // system status (enabled / disabled)
00070   // similar to COMPARE_COLLS HardwareValidation/L1Comparator, probably a more elegant solution
00071   // possible TODO
00072 
00073   bool m_doSys[dedefs::DEnsys];
00074 
00075 
00077 
00078   // global
00079   MonitorElement* sysrates;
00080   MonitorElement* sysncand[2];
00081   MonitorElement* errordist;
00082   MonitorElement* errortype[dedefs::DEnsys];
00083 
00084   // localization
00085   MonitorElement* etaphi[dedefs::DEnsys];
00086   MonitorElement* eta[dedefs::DEnsys];
00087   MonitorElement* phi[dedefs::DEnsys];
00088   MonitorElement* x3 [dedefs::DEnsys];
00089   MonitorElement* etaData[dedefs::DEnsys];
00090   MonitorElement* phiData[dedefs::DEnsys];
00091   MonitorElement*  x3Data[dedefs::DEnsys];
00092   MonitorElement* rnkData[dedefs::DEnsys];
00093 
00094   // trigger data word
00095   MonitorElement* dword [dedefs::DEnsys];
00096   MonitorElement* eword [dedefs::DEnsys];
00097   MonitorElement* deword[dedefs::DEnsys];
00098   MonitorElement* masked[dedefs::DEnsys];
00099 
00100 };
00101 
00102 #endif