CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/DQM/TrigXMonitor/interface/L1Scalers.h

Go to the documentation of this file.
00001 // -*-c++-*-
00002 #ifndef L1Scalers_H
00003 #define L1Scalers_H
00004 // $Id: L1Scalers.h,v 1.15 2010/05/31 14:43:43 wteo Exp $
00005 
00006 #include "FWCore/Framework/interface/Frameworkfwd.h"
00007 #include "FWCore/Framework/interface/EDAnalyzer.h"
00008 
00009 #include "DQMServices/Core/interface/DQMStore.h"
00010 
00011 #include "DQMServices/Core/interface/MonitorElement.h"
00012 #include "FWCore/Utilities/interface/InputTag.h"
00013 
00014 #define MAX_LUMI_SEG 2000
00015 #define MAX_LUMI_BIN 400
00016 
00017 class L1Scalers: public edm::EDAnalyzer
00018 {
00019 public:
00021   L1Scalers(const edm::ParameterSet& ps);
00022   
00024   virtual ~L1Scalers() {};
00025   
00027   void beginJob(void);
00028 
00029    // Endjob
00030    void endJob(void);
00031   
00033   void beginRun(const edm::Run& run, const edm::EventSetup& c);
00034 
00036   void endRun(const edm::Run& run, const edm::EventSetup& c);
00037 
00038   
00039 
00042   void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg, 
00043                           const edm::EventSetup& c);
00044 
00045   void analyze(const edm::Event& e, const edm::EventSetup& c) ;
00046 
00047 
00048 private:
00049   DQMStore * dbe_;
00050   int nev_; // Number of events processed
00051 
00052   bool verbose_;
00053   edm::InputTag l1GtDataSource_; // L1 Scalers
00054   
00055   bool denomIsTech_;
00056   unsigned int denomBit_;
00057   bool tfIsTech_;
00058   unsigned int tfBit_;
00059   std::vector<unsigned int> algoSelected_;
00060   std::vector<unsigned int> techSelected_;
00061 
00062   std::string folderName_; // dqm folder name
00063   MonitorElement *l1scalers_;
00064   MonitorElement *l1techScalers_;
00065   MonitorElement *l1Correlations_;
00066   MonitorElement *bxNum_;
00067 
00068 
00069   // 2d versions
00070   MonitorElement *l1scalersBx_;
00071   MonitorElement *l1techScalersBx_;
00072 //   MonitorElement *pixFedSizeBx_;
00073 //   MonitorElement *hfEnergyMaxTowerBx_;
00074 
00075   // Int
00076   MonitorElement *nLumiBlock_;
00077   MonitorElement *l1AlgoCounter_;  //for total Algo Rate
00078   MonitorElement *l1TtCounter_;    //for total TT Rate
00079 
00080   //timing plots
00081   std::vector<MonitorElement* > algoBxDiff_;
00082   std::vector<MonitorElement* > techBxDiff_;
00083   std::vector<MonitorElement* > algoBxDiffLumi_;
00084   std::vector<MonitorElement* > techBxDiffLumi_;
00085   MonitorElement *dtBxDiff_;
00086   MonitorElement *dtBxDiffLumi_;
00087   MonitorElement *cscBxDiff_;
00088   MonitorElement *cscBxDiffLumi_;
00089   MonitorElement *rpcbBxDiff_;
00090   MonitorElement *rpcbBxDiffLumi_;
00091   MonitorElement *rpcfBxDiff_;
00092   MonitorElement *rpcfBxDiffLumi_;
00093 
00094   // Hacks for early running
00095 //   MonitorElement *pixFedSize_;
00096 //   MonitorElement *hfEnergy_;
00097   // steal from HLTrigger/special
00098   unsigned int threshold_;
00099   unsigned int fedStart_, fedStop_ ;
00100   //total Rates
00101   unsigned int rateAlgoCounter_;  //for total Algo Rate
00102   unsigned int rateTtCounter_;     //for total TT Rate
00103  
00104 
00105   edm::InputTag fedRawCollection_;
00106 
00107   std::vector<int> maskedList_;
00108   edm::InputTag HcalRecHitCollection_;
00109   // END HACK
00110 
00111   int earliestDenom_;
00112   std::vector<int> earliestTech_;
00113   std::vector<int> earliestAlgo_;
00114 
00115 };
00116 
00117 #endif // L1Scalers_H