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