File indexing completed on 2023-03-17 10:55:13
0001 #ifndef DQM_L1TMonitor_L1TStage2RegionalMuonCandComp_h
0002 #define DQM_L1TMonitor_L1TStage2RegionalMuonCandComp_h
0003
0004 #include "DataFormats/L1TMuon/interface/RegionalMuonCand.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 L1TStage2RegionalMuonCandComp : public DQMEDAnalyzer {
0016 public:
0017 L1TStage2RegionalMuonCandComp(const edm::ParameterSet& ps);
0018 ~L1TStage2RegionalMuonCandComp() 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 NMUONGOOD,
0030 NMUONBAD,
0031 MUONALL,
0032 MUONGOOD,
0033 PTBAD,
0034 ETABAD,
0035 LOCALPHIBAD,
0036 SIGNBAD,
0037 SIGNVALBAD,
0038 QUALBAD,
0039 HFBAD,
0040 LINKBAD,
0041 PROCBAD,
0042 TFBAD,
0043 TRACKADDRBAD,
0044 DXYBAD,
0045 PT2BAD
0046 };
0047 enum ratioVariables {
0048 RBXRANGE = 1,
0049 RNMUON,
0050 RMUON,
0051 RPT,
0052 RETA,
0053 RLOCALPHI,
0054 RSIGN,
0055 RSIGNVAL,
0056 RQUAL,
0057 RHF,
0058 RLINK,
0059 RPROC,
0060 RTF,
0061 RTRACKADDR,
0062 RDXY,
0063 RPT2
0064 };
0065 enum tfs { BMTFBIN = 1, OMTFNEGBIN, OMTFPOSBIN, EMTFNEGBIN, EMTFPOSBIN };
0066 int numSummaryBins_{
0067 TRACKADDRBAD};
0068 int numErrBins_{
0069 RTRACKADDR};
0070 bool incBin[RPT2 + 1];
0071
0072 edm::EDGetTokenT<l1t::RegionalMuonCandBxCollection> muonToken1;
0073 edm::EDGetTokenT<l1t::RegionalMuonCandBxCollection> muonToken2;
0074 std::string monitorDir;
0075 std::string muonColl1Title;
0076 std::string muonColl2Title;
0077 std::string summaryTitle;
0078 bool ignoreBadTrkAddr;
0079 std::vector<int> ignoreBin;
0080 bool verbose;
0081 bool hasDisplacementInfo;
0082
0083 MonitorElement* summary;
0084 MonitorElement* errorSummaryNum;
0085 MonitorElement* errorSummaryDen;
0086
0087 MonitorElement* muColl1BxRange;
0088 MonitorElement* muColl1nMu;
0089 MonitorElement* muColl1hwPt;
0090 MonitorElement* muColl1hwEta;
0091 MonitorElement* muColl1hwPhi;
0092 MonitorElement* muColl1hwSign;
0093 MonitorElement* muColl1hwSignValid;
0094 MonitorElement* muColl1hwQual;
0095 MonitorElement* muColl1link;
0096 MonitorElement* muColl1processor;
0097 MonitorElement* muColl1trackFinderType;
0098 MonitorElement* muColl1hwHF;
0099 MonitorElement* muColl1TrkAddrSize;
0100 MonitorElement* muColl1TrkAddr;
0101 MonitorElement* muColl1hwDXY;
0102 MonitorElement* muColl1hwPtUnconstrained;
0103
0104 MonitorElement* muColl2BxRange;
0105 MonitorElement* muColl2nMu;
0106 MonitorElement* muColl2hwPt;
0107 MonitorElement* muColl2hwEta;
0108 MonitorElement* muColl2hwPhi;
0109 MonitorElement* muColl2hwSign;
0110 MonitorElement* muColl2hwSignValid;
0111 MonitorElement* muColl2hwQual;
0112 MonitorElement* muColl2link;
0113 MonitorElement* muColl2processor;
0114 MonitorElement* muColl2trackFinderType;
0115 MonitorElement* muColl2hwHF;
0116 MonitorElement* muColl2TrkAddrSize;
0117 MonitorElement* muColl2TrkAddr;
0118 MonitorElement* muColl2hwDXY;
0119 MonitorElement* muColl2hwPtUnconstrained;
0120 };
0121
0122 #endif