Go to the documentation of this file.00001 #ifndef L1TScalersSCAL_H
00002 #define L1TScalersSCAL_H
00003
00004 #include<vector>
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 class L1TScalersSCAL: public edm::EDAnalyzer
00015 {
00016 public:
00017
00018 enum { N_LUMISECTION_TIME = 93 };
00019
00021 L1TScalersSCAL(const edm::ParameterSet& ps);
00022
00024 virtual ~L1TScalersSCAL();
00025
00027 void beginJob(void);
00028
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
00040
00041
00044 void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg,
00045 const edm::EventSetup& c);
00046
00047 void analyze(const edm::Event& e, const edm::EventSetup& c) ;
00048
00049
00050 private:
00051 DQMStore * dbe_;
00052 edm::InputTag scalersSource_;
00053
00054 std::string outputFile_;
00055 bool verbose_, denomIsTech_, monitorDaemon_;
00056 unsigned int denomBit_, muonBit_,egammaBit_,jetBit_;
00057 int nev_;
00058 long reftime_,buffertime_;
00059 std::vector<double> algorithmRates_;
00060 std::vector<double> bufferAlgoRates_;
00061 std::vector<double> technicalRates_;
00062 std::vector<double> bufferTechRates_;
00063 std::vector<double> integral_algo_;
00064 std::vector<double> integral_tech_;
00065 double integral_tech_42_OR_43_;
00066 unsigned int bufferLumi_;
00067
00068 MonitorElement * orbitNum;
00069 MonitorElement * trigNum;
00070 MonitorElement * eventNum;
00071 MonitorElement * physTrig;
00072 MonitorElement * randTrig;
00073 MonitorElement * numberResets;
00074 MonitorElement * deadTime;
00075 MonitorElement * lostFinalTriggers;
00076 MonitorElement * algoRate[128];
00077 MonitorElement * techRate[64];
00078 MonitorElement * integralAlgo[128];
00079 MonitorElement * integralTech[64];
00080 MonitorElement * integralTech_42_OR_43;
00081 MonitorElement * techRateRatio_33_over_32;
00082 MonitorElement * techRateRatio_8;
00083 MonitorElement * techRateRatio_9;
00084 MonitorElement * techRateRatio_10;
00085 MonitorElement * techRateRatio_36;
00086 MonitorElement * techRateRatio_37;
00087 MonitorElement * techRateRatio_38;
00088 MonitorElement * techRateRatio_39;
00089 MonitorElement * techRateRatio_40;
00090 MonitorElement * techRateRatio_41;
00091 MonitorElement * techRateRatio_42;
00092 MonitorElement * techRateRatio_43;
00093 MonitorElement * rateRatio_mu;
00094 MonitorElement * rateRatio_egamma;
00095 MonitorElement * rateRatio_jet;
00096
00097
00098 MonitorElement * physRate;
00099 MonitorElement * randRate;
00100 MonitorElement * deadTimePercent;
00101 MonitorElement * lostPhysRate;
00102 MonitorElement * lostPhysRateBeamActive;
00103 MonitorElement * instTrigRate;
00104 MonitorElement * instEventRate;
00105
00106
00107 MonitorElement * instLumi;
00108 MonitorElement * instLumiErr;
00109 MonitorElement * instLumiQlty;
00110 MonitorElement * instEtLumi;
00111 MonitorElement * instEtLumiErr;
00112 MonitorElement * instEtLumiQlty;
00113 MonitorElement * sectionNum;
00114 MonitorElement * startOrbit;
00115 MonitorElement * numOrbits;
00116
00117
00118 MonitorElement * orbitNumL1A[4];
00119 MonitorElement * bunchCrossingL1A[4];
00120 MonitorElement * bunchCrossingCorr[3];
00121 MonitorElement * bunchCrossingDiff[3];
00122 MonitorElement * bunchCrossingDiff_small[3];
00123
00124
00125 };
00126
00127 #endif // L1TScalersSCAL_H
00128