Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:09:13

0001 #ifndef L1TScalersSCAL_H
0002 #define L1TScalersSCAL_H
0003 
0004 #include <vector>
0005 
0006 #include "FWCore/Framework/interface/Frameworkfwd.h"
0007 #include "DQMServices/Core/interface/DQMStore.h"
0008 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0009 #include "FWCore/Utilities/interface/InputTag.h"
0010 
0011 #include "DataFormats/Scalers/interface/Level1TriggerScalers.h"
0012 #include "DataFormats/Scalers/interface/LumiScalers.h"
0013 #include "DataFormats/Scalers/interface/L1AcceptBunchCrossing.h"
0014 
0015 class L1TScalersSCAL : public DQMEDAnalyzer {
0016 public:
0017   enum { N_LUMISECTION_TIME = 93 };
0018 
0019   L1TScalersSCAL(const edm::ParameterSet& ps);
0020   ~L1TScalersSCAL() override;
0021   void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
0022   void analyze(const edm::Event& e, const edm::EventSetup& c) override;
0023 
0024 private:
0025   edm::EDGetTokenT<Level1TriggerScalersCollection> l1triggerscalers_;
0026   edm::EDGetTokenT<LumiScalersCollection> lumiscalers_;
0027   edm::EDGetTokenT<L1AcceptBunchCrossingCollection> l1acceptBX_;
0028 
0029   bool verbose_, denomIsTech_, monitorDaemon_;
0030   unsigned int denomBit_, muonBit_, egammaBit_, jetBit_;
0031   int nev_;  // Number of events processed
0032   long reftime_, buffertime_;
0033   std::vector<double> algorithmRates_;
0034   std::vector<double> bufferAlgoRates_;
0035   std::vector<double> technicalRates_;
0036   std::vector<double> bufferTechRates_;
0037   std::vector<double> integral_algo_;
0038   std::vector<double> integral_tech_;
0039   double integral_tech_42_OR_43_;
0040   unsigned int bufferLumi_;
0041 
0042   MonitorElement* orbitNum;
0043   MonitorElement* trigNum;
0044   MonitorElement* eventNum;
0045   MonitorElement* physTrig;
0046   MonitorElement* randTrig;
0047   MonitorElement* numberResets;
0048   MonitorElement* deadTime;
0049   MonitorElement* lostFinalTriggers;
0050   MonitorElement* algoRate[128];
0051   MonitorElement* techRate[64];
0052   MonitorElement* integralAlgo[128];
0053   MonitorElement* integralTech[64];
0054   MonitorElement* integralTech_42_OR_43;
0055   MonitorElement* techRateRatio_33_over_32;
0056   MonitorElement* techRateRatio_8;
0057   MonitorElement* techRateRatio_9;
0058   MonitorElement* techRateRatio_10;
0059   MonitorElement* techRateRatio_36;
0060   MonitorElement* techRateRatio_37;
0061   MonitorElement* techRateRatio_38;
0062   MonitorElement* techRateRatio_39;
0063   MonitorElement* techRateRatio_40;
0064   MonitorElement* techRateRatio_41;
0065   MonitorElement* techRateRatio_42;
0066   MonitorElement* techRateRatio_43;
0067   MonitorElement* rateRatio_mu;
0068   MonitorElement* rateRatio_egamma;
0069   MonitorElement* rateRatio_jet;
0070 
0071   MonitorElement* physRate;
0072   MonitorElement* randRate;
0073   MonitorElement* deadTimePercent;
0074   MonitorElement* lostPhysRate;
0075   MonitorElement* lostPhysRateBeamActive;
0076   MonitorElement* instTrigRate;
0077   MonitorElement* instEventRate;
0078 
0079   MonitorElement* instLumi;
0080   MonitorElement* instLumiErr;
0081   MonitorElement* instLumiQlty;
0082   MonitorElement* instEtLumi;
0083   MonitorElement* instEtLumiErr;
0084   MonitorElement* instEtLumiQlty;
0085   MonitorElement* sectionNum;
0086   MonitorElement* startOrbit;
0087   MonitorElement* numOrbits;
0088 
0089   MonitorElement* orbitNumL1A[4];
0090   MonitorElement* bunchCrossingL1A[4];
0091   MonitorElement* bunchCrossingCorr[3];
0092   MonitorElement* bunchCrossingDiff[3];
0093   MonitorElement* bunchCrossingDiff_small[3];
0094 };
0095 
0096 #endif  // L1TScalersSCAL_H