Back to home page

Project CMSSW displayed by LXR

 
 

    


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};  // In Run-2 we didn't have the last two bins. This is incremented in source file if we configure for Run-3.
0068   int numErrBins_{
0069       RTRACKADDR};  // In Run-2 we didn't have the last two bins. This is incremented in source file if we configure for Run-3.
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