Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:09:38

0001 #ifndef EfficiencyPlotter_H
0002 #define EfficiencyPlotter_H
0003 
0004 #include "FWCore/Framework/interface/Frameworkfwd.h"
0005 #include "DQMServices/Core/interface/DQMEDHarvester.h"
0006 #include "DataFormats/Common/interface/Handle.h"
0007 #include <FWCore/Framework/interface/ESHandle.h>
0008 #include <FWCore/Framework/interface/Event.h>
0009 #include <FWCore/Framework/interface/MakerMacros.h>
0010 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0011 #include <FWCore/Framework/interface/LuminosityBlock.h>
0012 
0013 #include "DQMServices/Core/interface/DQMStore.h"
0014 #include "FWCore/ServiceRegistry/interface/Service.h"
0015 #include "FWCore/Framework/interface/Run.h"
0016 
0017 #include <memory>
0018 #include <iostream>
0019 #include <string>
0020 #include <vector>
0021 #include <map>
0022 #include "TH1F.h"
0023 
0024 class EfficiencyPlotter : public DQMEDHarvester {
0025 public:
0026   /// Constructor
0027   EfficiencyPlotter(const edm::ParameterSet& ps);
0028 
0029   /// Destructor
0030   ~EfficiencyPlotter() override;
0031 
0032 protected:
0033   /// DQM Client Diagnostic
0034   void dqmEndJob(DQMStore::IBooker&, DQMStore::IGetter&) override;  //performed in the endJob
0035 
0036 private:
0037   // counters
0038   int nevents;
0039   unsigned int nLumiSegs;
0040   int prescaleFactor;
0041   int run;
0042   // Switch for verbosity
0043   std::string metname;
0044 
0045   edm::ParameterSet parameters;
0046 
0047   //histo binning parameters
0048   int etaBin;
0049   double etaMin;
0050   double etaMax;
0051 
0052   int ptBin;
0053   double ptMin;
0054   double ptMax;
0055 
0056   int phiBin;
0057   double phiMin;
0058   double phiMax;
0059 
0060   int vtxBin;
0061   double vtxMin;
0062   double vtxMax;
0063 
0064   std::string ID_;
0065 
0066   // efficiency histograms
0067   MonitorElement* h_eff_pt_ID;
0068   MonitorElement* h_eff_inner_pt_ID;
0069   MonitorElement* h_eff_inner_eta_ID;
0070   MonitorElement* h_eff_inner_phi_ID;
0071   MonitorElement* h_eff_pt_EB_ID;
0072   MonitorElement* h_eff_pt_EE_ID;
0073   MonitorElement* h_eff_eta_ID;
0074   MonitorElement* h_eff_hp_eta_ID;
0075   MonitorElement* h_eff_phi_ID;
0076   MonitorElement* h_eff_pt_detIsoID;
0077   MonitorElement* h_eff_pt_EB_detIsoID;
0078   MonitorElement* h_eff_pt_EE_detIsoID;
0079   MonitorElement* h_eff_pt_pfIsoID;
0080   MonitorElement* h_eff_pt_EB_pfIsoID;
0081   MonitorElement* h_eff_pt_EE_pfIsoID;
0082 
0083   MonitorElement* h_eff_vtx_detIsoID;
0084   MonitorElement* h_eff_vtx_pfIsoID;
0085   MonitorElement* h_eff_vtx_EB_detIsoID;
0086   MonitorElement* h_eff_vtx_EE_detIsoID;
0087   MonitorElement* h_eff_vtx_EB_pfIsoID;
0088   MonitorElement* h_eff_vtx_EE_pfIsoID;
0089 
0090   MonitorElement* h_eff_pt_pfIsodBID;
0091   MonitorElement* h_eff_pt_EB_pfIsodBID;
0092   MonitorElement* h_eff_pt_EE_pfIsodBID;
0093 
0094   MonitorElement* h_eff_vtx_pfIsodBID;
0095   MonitorElement* h_eff_vtx_EB_pfIsodBID;
0096   MonitorElement* h_eff_vtx_EE_pfIsodBID;
0097   std::string theFolder;
0098 };
0099 
0100 #endif