Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef EwkMuDQM_H
0002 #define EwkMuDQM_H
0003 
0004 /** \class EwkMuDQM
0005  *
0006  *  DQM offline for EWKMu
0007  *
0008  */
0009 
0010 #include "FWCore/Framework/interface/Frameworkfwd.h"
0011 #include "FWCore/Framework/interface/MakerMacros.h"
0012 #include "HLTrigger/HLTcore/interface/HLTPrescaleProvider.h"
0013 
0014 // #include "FWCore/Framework/interface/EDAnalyzer.h"
0015 #include "FWCore/Utilities/interface/InputTag.h"
0016 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0017 #include "DQMServices/Core/interface/DQMStore.h"
0018 
0019 namespace reco {
0020   class Muon;
0021   class Jet;
0022   class MET;
0023   class Vertex;
0024   class Photon;
0025   class BeamSpot;
0026 }  // namespace reco
0027 
0028 class EwkMuDQM : public DQMEDAnalyzer {
0029 public:
0030   EwkMuDQM(const edm::ParameterSet&);
0031   void analyze(const edm::Event&, const edm::EventSetup&) override;
0032 
0033 protected:
0034   //Book histograms
0035   void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
0036   void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;
0037 
0038   void init_histograms();
0039 
0040 private:
0041   edm::InputTag metTag_;
0042   edm::InputTag jetTag_;
0043   edm::EDGetTokenT<edm::TriggerResults> trigTag_;
0044   edm::EDGetTokenT<edm::View<reco::Muon> > muonTag_;
0045   edm::EDGetTokenT<edm::View<reco::MET> > metToken_;
0046   edm::EDGetTokenT<edm::View<reco::Jet> > jetToken_;
0047   edm::EDGetTokenT<edm::View<reco::Photon> > phoTag_;
0048   edm::EDGetTokenT<edm::View<reco::Vertex> > vertexTag_;
0049   edm::EDGetTokenT<reco::BeamSpot> beamSpotTag_;
0050   std::vector<std::string> trigPathNames_;
0051 
0052   bool isAlsoTrackerMuon_;
0053   double dxyCut_;
0054   double normalizedChi2Cut_;
0055   int trackerHitsCut_;
0056   int pixelHitsCut_;
0057   int muonHitsCut_;
0058   int nMatchesCut_;
0059 
0060   bool isRelativeIso_;
0061   bool isCombinedIso_;
0062   double isoCut03_;
0063 
0064   double acopCut_;
0065   double metMin_;
0066   double metMax_;
0067   double mtMin_;
0068   double mtMax_;
0069 
0070   double ptCut_;
0071   double etaCut_;
0072 
0073   double ptThrForZ1_;
0074   double ptThrForZ2_;
0075 
0076   double dimuonMassMin_;
0077   double dimuonMassMax_;
0078 
0079   double eJetMin_;
0080   int nJetMax_;
0081 
0082   double ptThrForPhoton_;
0083   int nPhoMax_;
0084 
0085   bool isValidHltConfig_;
0086   HLTPrescaleProvider hltPrescaleProvider_;
0087 
0088   unsigned int nall;
0089   unsigned int nrec;
0090   unsigned int niso;
0091   unsigned int nhlt;
0092   unsigned int nmet;
0093   unsigned int nsel;
0094   unsigned int nz;
0095 
0096   MonitorElement* pt_before_;
0097   MonitorElement* pt_after_;
0098   MonitorElement* eta_before_;
0099   MonitorElement* eta_after_;
0100   MonitorElement* dxy_before_;
0101   MonitorElement* dxy_after_;
0102   MonitorElement* goodewkmuon_before_;
0103   MonitorElement* goodewkmuon_after_;
0104   MonitorElement* iso_before_;
0105   MonitorElement* iso_after_;
0106   MonitorElement* trig_before_;
0107   MonitorElement* trig_after_;
0108   MonitorElement* mt_before_;
0109   MonitorElement* mt_after_;
0110   MonitorElement* met_before_;
0111   MonitorElement* met_after_;
0112   MonitorElement* acop_before_;
0113   MonitorElement* acop_after_;
0114 
0115   MonitorElement* njets_before_;
0116   MonitorElement* njets_after_;
0117   MonitorElement* njets_afterZ_;
0118   MonitorElement* leadingjet_pt_before_;
0119   MonitorElement* leadingjet_pt_after_;
0120   MonitorElement* leadingjet_pt_afterZ_;
0121   MonitorElement* leadingjet_eta_before_;
0122   MonitorElement* leadingjet_eta_after_;
0123   MonitorElement* leadingjet_eta_afterZ_;
0124 
0125   // MonitorElement* ptPlus_before_;
0126   // MonitorElement* ptMinus_before_;
0127   MonitorElement* ptDiffPM_before_;
0128   // MonitorElement* ptPlus_afterW_;
0129   // MonitorElement* ptMinus_afterW_;
0130   // MonitorElement* ptPlus_afterZ_;
0131   // MonitorElement* ptMinus_afterZ_;
0132   MonitorElement* ptDiffPM_afterZ_;
0133 
0134   MonitorElement* met_afterZ_;
0135   MonitorElement* pt1_afterZ_;
0136   MonitorElement* eta1_afterZ_;
0137   MonitorElement* dxy1_afterZ_;
0138   MonitorElement* goodewkmuon1_afterZ_;
0139   MonitorElement* iso1_afterZ_;
0140   MonitorElement* pt2_afterZ_;
0141   MonitorElement* eta2_afterZ_;
0142   MonitorElement* dxy2_afterZ_;
0143   MonitorElement* goodewkmuon2_afterZ_;
0144   MonitorElement* iso2_afterZ_;
0145 
0146   // filled if there is a Z-candidate
0147   MonitorElement* n_zselPt1thr_;  // number of muons in the event with pt>pt1thr
0148   MonitorElement* n_zselPt2thr_;  // number of muons in the event with pt>pt2thr
0149 
0150   MonitorElement* ztrig_afterZ_;
0151   MonitorElement* dimuonmass_before_;
0152   MonitorElement* dimuonmass_afterZ_;
0153 
0154   MonitorElement* npvs_before_;
0155   MonitorElement* npvs_after_;
0156   MonitorElement* npvs_afterZ_;
0157 
0158   MonitorElement* muoncharge_before_;
0159   MonitorElement* muoncharge_after_;
0160   MonitorElement* muoncharge_afterZ_;
0161 
0162   MonitorElement* nmuons_;
0163   MonitorElement* ngoodmuons_;
0164 
0165   MonitorElement* npfph_;
0166   MonitorElement* nph_;
0167   MonitorElement* pfphPt_;
0168   MonitorElement* phPt_;
0169   MonitorElement* pfphEta_;
0170   MonitorElement* phEta_;
0171 };
0172 
0173 #endif
0174 
0175 // Local Variables:
0176 // show-trailing-whitespace: t
0177 // truncate-lines: t
0178 // End: