File indexing completed on 2024-04-06 12:07:45
0001 #ifndef DQM_L1TMonitor_L1TStage2MuonShowerComp_h
0002 #define DQM_L1TMonitor_L1TStage2MuonShowerComp_h
0003
0004 #include "DataFormats/L1Trigger/interface/MuonShower.h"
0005
0006 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0007 #include "DQMServices/Core/interface/DQMStore.h"
0008
0009 #include "FWCore/Framework/interface/Event.h"
0010 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0012 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0013 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0014
0015 class L1TStage2MuonShowerComp : public DQMEDAnalyzer {
0016 public:
0017 L1TStage2MuonShowerComp(const edm::ParameterSet& ps);
0018 ~L1TStage2MuonShowerComp() override;
0019 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0020
0021 protected:
0022 void bookHistograms(DQMStore::IBooker&, const edm::Run&, const edm::EventSetup&) override;
0023 void analyze(const edm::Event&, const edm::EventSetup&) override;
0024
0025 private:
0026 enum variables {
0027 BXRANGEGOOD = 1,
0028 BXRANGEBAD,
0029 NSHOWERGOOD,
0030 NSHOWERBAD,
0031 SHOWERALL,
0032 SHOWERGOOD,
0033 NOMINALBAD,
0034 TIGHTBAD,
0035 LOOSEBAD
0036 };
0037 enum ratioVariables { RBXRANGE = 1, RNSHOWER, RSHOWER, RNOMINAL, RTIGHT, RLOOSE };
0038 int numSummaryBins_{LOOSEBAD};
0039 int numErrBins_{RLOOSE};
0040 bool incBin_[RLOOSE + 1];
0041
0042 edm::EDGetTokenT<l1t::MuonShowerBxCollection> showerToken1_;
0043 edm::EDGetTokenT<l1t::MuonShowerBxCollection> showerToken2_;
0044 std::string monitorDir_;
0045 std::string showerColl1Title_;
0046 std::string showerColl2Title_;
0047 std::string summaryTitle_;
0048 std::vector<int> ignoreBin_;
0049 bool verbose_;
0050
0051 MonitorElement* summary_;
0052 MonitorElement* errorSummaryNum_;
0053 MonitorElement* errorSummaryDen_;
0054
0055 MonitorElement* showerColl1BxRange_;
0056 MonitorElement* showerColl1nShowers_;
0057 MonitorElement* showerColl1ShowerTypeVsBX_;
0058
0059 MonitorElement* showerColl2BxRange_;
0060 MonitorElement* showerColl2nShowers_;
0061 MonitorElement* showerColl2ShowerTypeVsBX_;
0062
0063 static constexpr unsigned IDX_LOOSE_SHOWER{3};
0064 static constexpr unsigned IDX_TIGHT_SHOWER{2};
0065 static constexpr unsigned IDX_NOMINAL_SHOWER{1};
0066 };
0067
0068 #endif