Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 10:55:32

0001 #ifndef DQM_L1TMONITORCLIENT_L1TGMTCLIENT_H
0002 #define DQM_L1TMONITORCLIENT_L1TGMTCLIENT_H
0003 
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 #include "DQMServices/Core/interface/DQMStore.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0007 #include "DQMServices/Core/interface/DQMEDHarvester.h"
0008 
0009 #include <string>
0010 
0011 class L1TGMTClient : public DQMEDHarvester {
0012 public:
0013   /// Constructor
0014   L1TGMTClient(const edm::ParameterSet &);
0015 
0016   /// Destructor
0017   ~L1TGMTClient() override;
0018 
0019 protected:
0020   void dqmEndJob(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter) override;
0021   void dqmEndLuminosityBlock(DQMStore::IBooker &ibooker,
0022                              DQMStore::IGetter &igetter,
0023                              const edm::LuminosityBlock &lumiSeg,
0024                              const edm::EventSetup &evSetup) override;
0025 
0026 private:
0027   void initialize();
0028   void processHistograms(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter);
0029   void makeRatio1D(DQMStore::IBooker &ibooker,
0030                    DQMStore::IGetter &igetter,
0031                    MonitorElement *mer,
0032                    std::string h1Name,
0033                    std::string h2Name);
0034   void makeEfficiency1D(DQMStore::IBooker &ibooker,
0035                         DQMStore::IGetter &igetter,
0036                         MonitorElement *meeff,
0037                         std::string heName,
0038                         std::string hiName);
0039   void makeEfficiency2D(DQMStore::IBooker &ibooker,
0040                         DQMStore::IGetter &igetter,
0041                         MonitorElement *meeff,
0042                         std::string heName,
0043                         std::string hiName);
0044   TH1F *get1DHisto(std::string meName, DQMStore::IGetter &igetter);
0045   TH2F *get2DHisto(std::string meName, DQMStore::IGetter &igetter);
0046 
0047   MonitorElement *bookClone1D(DQMStore::IBooker &ibooker,
0048                               DQMStore::IGetter &igetter,
0049                               const std::string &name,
0050                               const std::string &title,
0051                               const std::string &hrefName);
0052   MonitorElement *bookClone1DVB(DQMStore::IBooker &ibooker,
0053                                 DQMStore::IGetter &igetter,
0054                                 const std::string &name,
0055                                 const std::string &title,
0056                                 const std::string &hrefName);
0057   MonitorElement *bookClone2D(DQMStore::IBooker &ibooker,
0058                               DQMStore::IGetter &igetter,
0059                               const std::string &name,
0060                               const std::string &title,
0061                               const std::string &hrefName);
0062 
0063   edm::ParameterSet parameters_;
0064   std::string monitorName_;
0065   std::string input_dir_;
0066   std::string output_dir_;
0067 
0068   bool m_runInEventLoop;
0069   bool m_runInEndLumi;
0070   bool m_runInEndRun;
0071   bool m_runInEndJob;
0072 
0073   // -------- member data --------
0074   MonitorElement *eff_eta_dtcsc;
0075   MonitorElement *eff_eta_rpc;
0076   MonitorElement *eff_phi_dtcsc;
0077   MonitorElement *eff_phi_rpc;
0078   MonitorElement *eff_etaphi_dtcsc;
0079   MonitorElement *eff_etaphi_rpc;
0080 };
0081 
0082 #endif