Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 13:10:47

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