Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:07:45

0001 #ifndef DQM_L1TMonitor_L1TStage2MuonComp_h
0002 #define DQM_L1TMonitor_L1TStage2MuonComp_h
0003 
0004 #include "DataFormats/L1Trigger/interface/Muon.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 L1TStage2MuonComp : public DQMEDAnalyzer {
0016 public:
0017   L1TStage2MuonComp(const edm::ParameterSet& ps);
0018   ~L1TStage2MuonComp() 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     PHIBAD,
0036     ETAATVTXBAD,
0037     PHIATVTXBAD,
0038     CHARGEBAD,
0039     CHARGEVALBAD,
0040     QUALBAD,
0041     ISOBAD,
0042     IDXBAD,
0043     PTUNCONSTRBAD,
0044     DXYBAD
0045   };
0046   enum ratioVariables {
0047     RBXRANGE = 1,
0048     RNMUON,
0049     RMUON,
0050     RPT,
0051     RETA,
0052     RPHI,
0053     RETAATVTX,
0054     RPHIATVTX,
0055     RCHARGE,
0056     RCHARGEVAL,
0057     RQUAL,
0058     RISO,
0059     RIDX,
0060     RPTUNCONSTR,
0061     RDXY
0062   };
0063   int numErrBins_{
0064       RIDX};  // In Run-2 we didn't have the last two bins. This is incremented in source file if we configure for Run-3.
0065   bool incBin[RDXY + 1];
0066 
0067   edm::EDGetTokenT<l1t::MuonBxCollection> muonToken1;
0068   edm::EDGetTokenT<l1t::MuonBxCollection> muonToken2;
0069   std::string monitorDir;
0070   std::string muonColl1Title;
0071   std::string muonColl2Title;
0072   std::string summaryTitle;
0073   std::vector<int> ignoreBin;
0074   bool verbose;
0075   bool enable2DComp;  // Default value is false. Set to true in the configuration file for enabling 2D eta-phi histograms
0076   bool displacedQuantities_;
0077 
0078   MonitorElement* summary;
0079   MonitorElement* errorSummaryNum;
0080   MonitorElement* errorSummaryDen;
0081 
0082   MonitorElement* muColl1BxRange;
0083   MonitorElement* muColl1nMu;
0084   MonitorElement* muColl1hwPt;
0085   MonitorElement* muColl1hwPtUnconstrained;
0086   MonitorElement* muColl1hwDXY;
0087   MonitorElement* muColl1hwEta;
0088   MonitorElement* muColl1hwPhi;
0089   MonitorElement* muColl1hwEtaAtVtx;
0090   MonitorElement* muColl1hwPhiAtVtx;
0091   MonitorElement* muColl1hwCharge;
0092   MonitorElement* muColl1hwChargeValid;
0093   MonitorElement* muColl1hwQual;
0094   MonitorElement* muColl1hwIso;
0095   MonitorElement* muColl1Index;
0096   MonitorElement* muColl1EtaPhimap;  // This histogram will be filled only if enable2DComp is true
0097 
0098   MonitorElement* muColl2BxRange;
0099   MonitorElement* muColl2nMu;
0100   MonitorElement* muColl2hwPt;
0101   MonitorElement* muColl2hwPtUnconstrained;
0102   MonitorElement* muColl2hwDXY;
0103   MonitorElement* muColl2hwEta;
0104   MonitorElement* muColl2hwPhi;
0105   MonitorElement* muColl2hwEtaAtVtx;
0106   MonitorElement* muColl2hwPhiAtVtx;
0107   MonitorElement* muColl2hwCharge;
0108   MonitorElement* muColl2hwChargeValid;
0109   MonitorElement* muColl2hwQual;
0110   MonitorElement* muColl2hwIso;
0111   MonitorElement* muColl2Index;
0112   MonitorElement* muColl2EtaPhimap;  // This histogram will be filled only if enable2DComp is true
0113 };
0114 
0115 #endif