CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Attributes
EwkMuDQM Class Reference

#include <EwkMuDQM.h>

Inheritance diagram for EwkMuDQM:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
 EwkMuDQM (const edm::ParameterSet &)
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Protected Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
void init_histograms ()
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Private Attributes

MonitorElementacop_after_
 
MonitorElementacop_before_
 
double acopCut_
 
edm::EDGetTokenT< reco::BeamSpotbeamSpotTag_
 
MonitorElementdimuonmass_afterZ_
 
MonitorElementdimuonmass_before_
 
double dimuonMassMax_
 
double dimuonMassMin_
 
MonitorElementdxy1_afterZ_
 
MonitorElementdxy2_afterZ_
 
MonitorElementdxy_after_
 
MonitorElementdxy_before_
 
double dxyCut_
 
double eJetMin_
 
MonitorElementeta1_afterZ_
 
MonitorElementeta2_afterZ_
 
MonitorElementeta_after_
 
MonitorElementeta_before_
 
double etaCut_
 
MonitorElementgoodewkmuon1_afterZ_
 
MonitorElementgoodewkmuon2_afterZ_
 
MonitorElementgoodewkmuon_after_
 
MonitorElementgoodewkmuon_before_
 
HLTPrescaleProvider hltPrescaleProvider_
 
bool isAlsoTrackerMuon_
 
bool isCombinedIso_
 
MonitorElementiso1_afterZ_
 
MonitorElementiso2_afterZ_
 
MonitorElementiso_after_
 
MonitorElementiso_before_
 
double isoCut03_
 
bool isRelativeIso_
 
bool isValidHltConfig_
 
edm::InputTag jetTag_
 
edm::EDGetTokenT< edm::View< reco::Jet > > jetToken_
 
MonitorElementleadingjet_eta_after_
 
MonitorElementleadingjet_eta_afterZ_
 
MonitorElementleadingjet_eta_before_
 
MonitorElementleadingjet_pt_after_
 
MonitorElementleadingjet_pt_afterZ_
 
MonitorElementleadingjet_pt_before_
 
MonitorElementmet_after_
 
MonitorElementmet_afterZ_
 
MonitorElementmet_before_
 
double metMax_
 
double metMin_
 
edm::InputTag metTag_
 
edm::EDGetTokenT< edm::View< reco::MET > > metToken_
 
MonitorElementmt_after_
 
MonitorElementmt_before_
 
double mtMax_
 
double mtMin_
 
MonitorElementmuoncharge_after_
 
MonitorElementmuoncharge_afterZ_
 
MonitorElementmuoncharge_before_
 
int muonHitsCut_
 
edm::EDGetTokenT< edm::View< reco::Muon > > muonTag_
 
MonitorElementn_zselPt1thr_
 
MonitorElementn_zselPt2thr_
 
unsigned int nall
 
MonitorElementngoodmuons_
 
unsigned int nhlt
 
unsigned int niso
 
int nJetMax_
 
MonitorElementnjets_after_
 
MonitorElementnjets_afterZ_
 
MonitorElementnjets_before_
 
int nMatchesCut_
 
unsigned int nmet
 
MonitorElementnmuons_
 
double normalizedChi2Cut_
 
MonitorElementnpfph_
 
MonitorElementnph_
 
int nPhoMax_
 
MonitorElementnpvs_after_
 
MonitorElementnpvs_afterZ_
 
MonitorElementnpvs_before_
 
unsigned int nrec
 
unsigned int nsel
 
unsigned int nz
 
MonitorElementpfphEta_
 
MonitorElementpfphPt_
 
MonitorElementphEta_
 
edm::EDGetTokenT< edm::View< reco::Photon > > phoTag_
 
MonitorElementphPt_
 
int pixelHitsCut_
 
MonitorElementpt1_afterZ_
 
MonitorElementpt2_afterZ_
 
MonitorElementpt_after_
 
MonitorElementpt_before_
 
double ptCut_
 
MonitorElementptDiffPM_afterZ_
 
MonitorElementptDiffPM_before_
 
double ptThrForPhoton_
 
double ptThrForZ1_
 
double ptThrForZ2_
 
int trackerHitsCut_
 
MonitorElementtrig_after_
 
MonitorElementtrig_before_
 
std::vector< std::string > trigPathNames_
 
edm::EDGetTokenT< edm::TriggerResultstrigTag_
 
edm::EDGetTokenT< edm::View< reco::Vertex > > vertexTag_
 
MonitorElementztrig_afterZ_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

DQM offline for EWKMu

Definition at line 28 of file EwkMuDQM.h.

Constructor & Destructor Documentation

◆ EwkMuDQM()

EwkMuDQM::EwkMuDQM ( const edm::ParameterSet cfg)

Definition at line 36 of file EwkMuDQM.cc.

References isValidHltConfig_.

37  : // Input collections
38  metTag_(cfg.getUntrackedParameter<edm::InputTag>("METTag", edm::InputTag("pfmet"))),
39  jetTag_(cfg.getUntrackedParameter<edm::InputTag>("JetTag", edm::InputTag("ak4PFJets"))),
40  //trigTag_(consumes<edm::TriggerResults>(
41  // cfg.getUntrackedParameter<edm::InputTag>(
42  // "TrigTag", edm::InputTag("TriggerResults::HLT")))),
44  cfg.getUntrackedParameter<edm::InputTag>("MuonTag", edm::InputTag("muons")))),
45  metToken_(
46  consumes<edm::View<reco::MET> >(cfg.getUntrackedParameter<edm::InputTag>("METTag", edm::InputTag("pfmet")))),
48  cfg.getUntrackedParameter<edm::InputTag>("JetTag", edm::InputTag("ak4PFJets")))),
50  cfg.getUntrackedParameter<edm::InputTag>("phoTag", edm::InputTag("photons")))),
52  cfg.getUntrackedParameter<edm::InputTag>("VertexTag", edm::InputTag("offlinePrimaryVertices")))),
53  beamSpotTag_(consumes<reco::BeamSpot>(
54  cfg.getUntrackedParameter<edm::InputTag>("beamSpotTag", edm::InputTag("offlineBeamSpot")))),
55  // trigPathNames_(cfg.getUntrackedParameter<std::vector<std::string> >(
56  // "TrigPathNames")),
57 
58  // Muon quality cuts
59  isAlsoTrackerMuon_(cfg.getUntrackedParameter<bool>("IsAlsoTrackerMuon", true)), // Glb muon also tracker muon
60  dxyCut_(cfg.getUntrackedParameter<double>("DxyCut", 0.2)), // dxy < 0.2 cm
62  cfg.getUntrackedParameter<double>("NormalizedChi2Cut", 10.)), // chi2/ndof (of global fit) <10.0
63  trackerHitsCut_(cfg.getUntrackedParameter<int>("TrackerHitsCut",
64  11)), // Tracker Hits >10
65  pixelHitsCut_(cfg.getUntrackedParameter<int>("PixelHitsCut", 1)), // Pixel Hits >0
66  muonHitsCut_(cfg.getUntrackedParameter<int>("MuonHitsCut",
67  1)), // Valid Muon Hits >0
68  nMatchesCut_(cfg.getUntrackedParameter<int>("NMatchesCut", 2)), // At least 2 Chambers with matches
69 
70  // W-boson cuts
71  isRelativeIso_(cfg.getUntrackedParameter<bool>("IsRelativeIso", true)),
72  isCombinedIso_(cfg.getUntrackedParameter<bool>("IsCombinedIso", false)),
73  isoCut03_(cfg.getUntrackedParameter<double>("IsoCut03", 0.1)),
74  acopCut_(cfg.getUntrackedParameter<double>("AcopCut", 999.)),
75  metMin_(cfg.getUntrackedParameter<double>("MetMin", -999999.)),
76  metMax_(cfg.getUntrackedParameter<double>("MetMax", 999999.)),
77  mtMin_(cfg.getUntrackedParameter<double>("MtMin", 50.)),
78  mtMax_(cfg.getUntrackedParameter<double>("MtMax", 200.)),
79  ptCut_(cfg.getUntrackedParameter<double>("PtCut", 20.)),
80  etaCut_(cfg.getUntrackedParameter<double>("EtaCut", 2.4)),
81 
82  // Z rejection
83  ptThrForZ1_(cfg.getUntrackedParameter<double>("PtThrForZ1", 20.)),
84  ptThrForZ2_(cfg.getUntrackedParameter<double>("PtThrForZ2", 10.)),
85 
86  // Z selection
87  dimuonMassMin_(cfg.getUntrackedParameter<double>("dimuonMassMin", 80.)),
88  dimuonMassMax_(cfg.getUntrackedParameter<double>("dimuonMassMax", 120.)),
89 
90  // Top rejection
91  eJetMin_(cfg.getUntrackedParameter<double>("EJetMin", 999999.)),
92  nJetMax_(cfg.getUntrackedParameter<int>("NJetMax", 999999)),
93 
94  // Photon cuts
95  ptThrForPhoton_(cfg.getUntrackedParameter<double>("ptThrForPhoton", 5.)),
96  nPhoMax_(cfg.getUntrackedParameter<int>("nPhoMax", 999999)),
97  hltPrescaleProvider_(cfg, consumesCollector(), *this) {
98  isValidHltConfig_ = false;
99 }
double etaCut_
Definition: EwkMuDQM.h:71
int nMatchesCut_
Definition: EwkMuDQM.h:58
double mtMax_
Definition: EwkMuDQM.h:68
double ptThrForPhoton_
Definition: EwkMuDQM.h:82
double metMax_
Definition: EwkMuDQM.h:66
edm::EDGetTokenT< reco::BeamSpot > beamSpotTag_
Definition: EwkMuDQM.h:49
double ptCut_
Definition: EwkMuDQM.h:70
double isoCut03_
Definition: EwkMuDQM.h:62
double eJetMin_
Definition: EwkMuDQM.h:79
double metMin_
Definition: EwkMuDQM.h:65
double ptThrForZ2_
Definition: EwkMuDQM.h:74
int nJetMax_
Definition: EwkMuDQM.h:80
double dxyCut_
Definition: EwkMuDQM.h:53
bool isAlsoTrackerMuon_
Definition: EwkMuDQM.h:52
double dimuonMassMin_
Definition: EwkMuDQM.h:76
bool isCombinedIso_
Definition: EwkMuDQM.h:61
double dimuonMassMax_
Definition: EwkMuDQM.h:77
bool isRelativeIso_
Definition: EwkMuDQM.h:60
HLTPrescaleProvider hltPrescaleProvider_
Definition: EwkMuDQM.h:86
edm::InputTag jetTag_
Definition: EwkMuDQM.h:42
int pixelHitsCut_
Definition: EwkMuDQM.h:56
edm::EDGetTokenT< edm::View< reco::Vertex > > vertexTag_
Definition: EwkMuDQM.h:48
double normalizedChi2Cut_
Definition: EwkMuDQM.h:54
edm::InputTag metTag_
Definition: EwkMuDQM.h:41
int trackerHitsCut_
Definition: EwkMuDQM.h:55
double mtMin_
Definition: EwkMuDQM.h:67
double ptThrForZ1_
Definition: EwkMuDQM.h:73
edm::EDGetTokenT< edm::View< reco::Jet > > jetToken_
Definition: EwkMuDQM.h:46
int muonHitsCut_
Definition: EwkMuDQM.h:57
edm::EDGetTokenT< edm::View< reco::Muon > > muonTag_
Definition: EwkMuDQM.h:44
int nPhoMax_
Definition: EwkMuDQM.h:83
edm::EDGetTokenT< edm::View< reco::MET > > metToken_
Definition: EwkMuDQM.h:45
edm::EDGetTokenT< edm::View< reco::Photon > > phoTag_
Definition: EwkMuDQM.h:47
double acopCut_
Definition: EwkMuDQM.h:64
bool isValidHltConfig_
Definition: EwkMuDQM.h:85

Member Function Documentation

◆ analyze()

void EwkMuDQM::analyze ( const edm::Event ev,
const edm::EventSetup iSet 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 243 of file EwkMuDQM.cc.

References acop_after_, acop_before_, acopCut_, beamSpotTag_, ALCARECOTkAlJpsiMuMu_cff::charge, reco::LeafCandidate::charge(), EcalCondDBWriter_cfi::cosmic, dimuonmass_afterZ_, dimuonmass_before_, dimuonMassMax_, dimuonMassMin_, HLT_2022v15_cff::distance, PVValHelper::dxy, dxy1_afterZ_, dxy2_afterZ_, dxy_after_, dxy_before_, dxyCut_, eJetMin_, reco::MuonIsolation::emEt, PVValHelper::eta, reco::LeafCandidate::eta(), eta1_afterZ_, HLT_2022v15_cff::eta2, eta2_afterZ_, eta_after_, eta_before_, etaCut_, makeMEIFBenchmarkPlots::ev, dqm::impl::MonitorElement::Fill(), reco::Muon::globalTrack(), goodewkmuon1_afterZ_, goodewkmuon2_afterZ_, goodewkmuon_after_, goodewkmuon_before_, reco::MuonIsolation::hadEt, hltPrescaleProvider_, mps_fire::i, reco::Muon::innerTrack(), isCombinedIso_, reco::Muon::isGlobalMuon(), iso1_afterZ_, iso2_afterZ_, iso_after_, iso_before_, isoCut03_, reco::Muon::isolationR03(), isRelativeIso_, reco::Muon::isTrackerMuon(), dqmiolumiharvest::j, metsig::jet, jetfilter_cfi::jetCollection, jetToken_, findQualityFiles::jj, leadingjet_eta_after_, leadingjet_eta_afterZ_, leadingjet_eta_before_, leadingjet_pt_after_, leadingjet_pt_afterZ_, leadingjet_pt_before_, LogTrace, M_PI, BTaggingMonitor_cfi::met, met_after_, met_afterZ_, met_before_, susyDQM_cfi::metCollection, metMax_, metMin_, metToken_, mt_after_, mt_before_, mtMax_, mtMin_, amptDefaultParameters_cff::mu, muoncharge_after_, muoncharge_afterZ_, muoncharge_before_, pdwgLeptonRecoSkim_cfi::muonCollection, muonHitsCut_, muonTag_, n_zselPt1thr_, n_zselPt2thr_, nall, ngoodmuons_, nJetMax_, BTaggingMonitoring_cff::njets, njets_after_, njets_afterZ_, njets_before_, nMatchesCut_, nmuons_, TrackCollections2monitor_cff::normalizedChi2, normalizedChi2Cut_, nph_, npvs_after_, npvs_afterZ_, npvs_before_, reco::Muon::numberOfMatches(), reco::LeafCandidate::p(), phEta_, phoTag_, ExoticaDQM_cfi::photonCollection, HLTObjectMonitor_cfi::photonPt, phPt_, InitialStepPreSplitting_cff::pixelHits, pixelHitsCut_, reco::BeamSpot::position(), HLTPrescaleProvider::prescaleSet(), DiDispStaMuonMonitor_cfi::pt, reco::LeafCandidate::pt(), pt1_afterZ_, HLT_2022v15_cff::pt2, pt2_afterZ_, pt_after_, pt_before_, ptCut_, ptDiffPM_afterZ_, ptDiffPM_before_, ptThrForPhoton_, ptThrForZ1_, ptThrForZ2_, reco::LeafCandidate::px(), reco::LeafCandidate::py(), reco::LeafCandidate::pz(), quality, mathSSE::sqrt(), reco::MuonIsolation::sumPt, trackerHitsCut_, Geom::Phi< T1, Range >::value(), bphysicsOniaDQM_cfi::vertex, spclusmultinvestigator_cfi::vertexCollection, and vertexTag_.

243  {
244  // Muon collection
246  if (!ev.getByToken(muonTag_, muonCollection)) {
247  // LogWarning("") << ">>> Muon collection does not exist !!!";
248  return;
249  }
250  unsigned int muonCollectionSize = muonCollection->size();
251 
252  // Beam spot
253  Handle<reco::BeamSpot> beamSpotHandle;
254  if (!ev.getByToken(beamSpotTag_, beamSpotHandle)) {
255  // LogWarning("") << ">>> No beam spot found !!!";
256  return;
257  }
258 
259  // Loop to reject/control Z->mumu is done separately
260  unsigned int nmuonsForZ1 = 0;
261  unsigned int nmuonsForZ2 = 0;
262  bool cosmic = false;
263  for (unsigned int i = 0; i < muonCollectionSize; i++) {
264  const Muon& mu = muonCollection->at(i);
265  if (!mu.isGlobalMuon())
266  continue;
267  double pt = mu.pt();
268  double dxy = mu.innerTrack()->dxy(beamSpotHandle->position());
269 
270  if (fabs(dxy) > 1) {
271  cosmic = true;
272  break;
273  }
274 
275  if (pt > ptThrForZ1_)
276  nmuonsForZ1++;
277  if (pt > ptThrForZ2_)
278  nmuonsForZ2++;
279 
280  for (unsigned int j = i + 1; j < muonCollectionSize; j++) {
281  const Muon& mu2 = muonCollection->at(j);
282  if (mu2.isGlobalMuon() && (mu.charge() * mu2.charge() == -1)) {
283  const math::XYZTLorentzVector ZRecoGlb(
284  mu.px() + mu2.px(), mu.py() + mu2.py(), mu.pz() + mu2.pz(), mu.p() + mu2.p());
285  dimuonmass_before_->Fill(ZRecoGlb.mass());
286  if (mu.charge() > 0) {
287  ptDiffPM_before_->Fill(mu.pt() - mu2.pt());
288  } else {
289  ptDiffPM_before_->Fill(mu2.pt() - mu.pt());
290  }
291  }
292  }
293  }
294  if (cosmic)
295  return;
296 
297  LogTrace("") << "> Z rejection: muons above " << ptThrForZ1_ << " [GeV]: " << nmuonsForZ1;
298  LogTrace("") << "> Z rejection: muons above " << ptThrForZ2_ << " [GeV]: " << nmuonsForZ2;
299 
300  // MET
302  if (!ev.getByToken(metToken_, metCollection)) {
303  // LogWarning("") << ">>> MET collection does not exist !!!";
304  return;
305  }
306  const MET& met = metCollection->at(0);
307  double met_et = met.pt();
308  LogTrace("") << ">>> MET, MET_px, MET_py: " << met_et << ", " << met.px() << ", " << met.py() << " [GeV]";
309  met_before_->Fill(met_et);
310 
311  // Vertices in the event
313  if (!ev.getByToken(vertexTag_, vertexCollection)) {
314  LogError("") << ">>> Vertex collection does not exist !!!";
315  return;
316  }
317  unsigned int vertexCollectionSize = vertexCollection->size();
318 
319  int nvvertex = 0;
320  for (unsigned int i = 0; i < vertexCollectionSize; i++) {
321  const Vertex& vertex = vertexCollection->at(i);
322  if (vertex.isValid())
323  nvvertex++;
324  }
325 
326  npvs_before_->Fill(nvvertex);
327 
328  // bool trigger_fired = false;
329  //Handle<TriggerResults> triggerResults;
330  // if (!ev.getByToken(trigTag_, triggerResults)) {
331  // LogWarning("") << ">>> TRIGGER collection does not exist !!!";
332  // return;
333  // }
334  // const edm::TriggerNames& trigNames = ev.triggerNames(*triggerResults);
335  // LogWarning("")<<"Loop over triggers";
336 
337  //HLTConfigProvider const& hltConfigProvider = hltPrescaleProvider_.hltConfigProvider();
338 
339  /* change faulty logic of triggering
340  for (unsigned int i=0; i<triggerResults->size(); i++)
341  {
342  const std::string trigName = trigNames.triggerName(i);
343 
344  bool found=false;
345  for(unsigned int index=0; index<trigPathNames_.size() && found==false;
346  index++) {
347  size_t trigPath = trigName.find(trigPathNames_[index]); // 0 if
348  found, pos if not
349  if (trigPath==0) found=true;
350  }
351  if(!found) {continue;}
352 
353  bool prescaled=false;
354  for (unsigned int ps= 0; ps< hltConfigProvider.prescaleSize();
355  ps++){
356  const unsigned int prescaleValue =
357  hltConfigProvider.prescaleValue(ps, trigName) ;
358  if (prescaleValue != 1) prescaled =true;
359  }
360 
361  if( triggerResults->accept(i) && !prescaled){ trigger_fired=true;}
362  // LogWarning("")<<"TrigNo: "<<i<<" "<<found<<"
363  "<<trigName<<" ---> FIRED";}
364  }
365  */
366 
367  // get the prescale set for this event
368  const int prescaleSet = hltPrescaleProvider_.prescaleSet(ev, iSet);
369  if (prescaleSet == -1) {
370  LogTrace("") << "Failed to determine prescaleSet\n";
371  // std::cout << "Failed to determine prescaleSet. Check the GlobalTag in
372  // cfg\n";
373  return;
374  }
375 
376  // for (unsigned int i = 0;
377  // (i < triggerResults->size()) && (trigger_fired == false); i++) {
378  // skip trigger, if it did not fire
379  //if (!triggerResults->accept(i)) continue;
380 
381  // skip trigger, if it is not on our list
382  //bool found = false;
383  //const std::string trigName = trigNames.triggerName(i);
384  //for (unsigned int index = 0;
385  // index < trigPathNames_.size() && found == false; index++) {
386  // if (trigName.find(trigPathNames_.at(index)) == 0) found = true;
387  // }
388  // if (!found) continue;
389 
390  // skip trigger, if it is prescaled
391  /* if (prescaleSet != -1) {
392  if (hltConfigProvider.prescaleValue(prescaleSet, trigName) != 1)
393  continue;
394  } else {
395  // prescaleSet is not known.
396  // This branch is not needed, if prescaleSet=-1 forces to skip event
397  int prescaled = 0;
398  for (unsigned int ps = 0;
399  !prescaled && (ps < hltConfigProvider.prescaleSize()); ++ps) {
400  if (hltConfigProvider.prescaleValue(ps, trigName) != 1) {
401  prescaled = 1;
402  }
403  }
404  if (prescaled) {
405  // std::cout << "trigger prescaled\n";
406  continue;
407  }
408  }
409 */
410  // std::cout << "found unprescaled trigger that fired: " << trigName <<
411  // "\n";
412  // trigger_fired = true;
413  // }
414  // if (trigger_fired) std::cout << "\n\tGot Trigger\n";
415 
416  // trig_before_->Fill(trigger_fired);
417 
418  // Jet collection
420  if (!ev.getByToken(jetToken_, jetCollection)) {
421  // LogError("") << ">>> JET collection does not exist !!!";
422  return;
423  }
424  unsigned int jetCollectionSize = jetCollection->size();
425  int njets = 0;
426  int LEADJET = -1;
427  double max_pt = 0;
428  for (unsigned int i = 0; i < jetCollectionSize; i++) {
429  const Jet& jet = jetCollection->at(i);
430  double minDistance = 99999; // This is in order to use PFJets
431  for (unsigned int j = 0; j < muonCollectionSize; j++) {
432  const Muon& mu = muonCollection->at(j);
433  double distance =
434  sqrt((mu.eta() - jet.eta()) * (mu.eta() - jet.eta()) + (mu.phi() - jet.phi()) * (mu.phi() - jet.phi()));
435  if (minDistance > distance)
436  minDistance = distance;
437  }
438  if (minDistance < 0.3)
439  continue; // 0.3 is the isolation cone around the muon
440  if (jet.et() > max_pt) {
441  LEADJET = i;
442  max_pt = jet.et();
443  }
444  if (jet.et() > eJetMin_) {
445  njets++;
446  }
447  }
448 
449  LogTrace("") << ">>> Total number of jets: " << jetCollectionSize;
450  LogTrace("") << ">>> Number of jets above " << eJetMin_ << " [GeV]: " << njets;
452  double lead_jet_pt = -1;
453  double lead_jet_eta = -100;
454  if (LEADJET != -1) {
455  const Jet& leadJet = jetCollection->at(LEADJET);
456  leadingjet_pt_before_->Fill(leadJet.pt());
457  leadingjet_eta_before_->Fill(leadJet.eta());
458  lead_jet_pt = leadJet.pt();
459  lead_jet_eta = leadJet.eta();
460  }
461  // Photon Collection
463  if (!ev.getByToken(phoTag_, photonCollection)) {
464  // LogError("")
465  return;
466  }
467  unsigned int ngam = 0;
468 
469  for (unsigned int i = 0; i < photonCollection->size(); i++) {
470  const Photon& ph = photonCollection->at(i);
471  double photonPt = ph.pt();
472  if (photonPt > ptThrForPhoton_) {
473  ngam++;
474  phEta_->Fill(ph.eta());
475  }
476  phPt_->Fill(photonPt);
477  }
478  nph_->Fill(ngam);
479  LogTrace("") << " >>> N photons " << ngam << std::endl;
480 
481  nmuons_->Fill(muonCollectionSize);
482 
483  // Start counting
484  nall++;
485 
486  // Histograms per event should be done only once, so keep track of them
487  // bool hlt_hist_done = false;
488  // bool zhlt_hist_done = false;
489  bool zjets_hist_done = false;
490  bool zfullsel_hist_done = false;
491  bool met_hist_done = false;
492  bool njets_hist_done = false;
493  bool wfullsel_hist_done = false;
494 
495  // Central W->mu nu selection criteria
496  const int NFLAGS = 10;
497  bool muon_sel[NFLAGS];
498  const int NFLAGSZ = 12;
499  bool zmuon_sel[NFLAGSZ];
500  bool muon4Z = false;
501 
502  double number_of_muons = 0;
503  double number_of_goodMuons = 0;
504 
505  for (unsigned int i = 0; i < muonCollectionSize; i++) {
506  for (int j = 0; j < NFLAGS; ++j) {
507  muon_sel[j] = false;
508  }
509 
510  number_of_muons++;
511 
512  const Muon& mu = muonCollection->at(i);
513  if (!mu.isGlobalMuon())
514  continue;
515  if (mu.globalTrack().isNull())
516  continue;
517  if (mu.innerTrack().isNull())
518  continue;
519 
520  LogTrace("") << "> Wsel: processing muon number " << i << "...";
521  reco::TrackRef gm = mu.globalTrack();
522  reco::TrackRef tk = mu.innerTrack();
523 
524  // Pt,eta cuts
525  double pt = mu.pt();
526  double eta = mu.eta();
527  LogTrace("") << "\t... pt, eta: " << pt << " [GeV], " << eta;
528  ;
529  if (pt > ptCut_)
530  muon_sel[0] = true;
531  if (fabs(eta) < etaCut_)
532  muon_sel[1] = true;
533 
534  double charge = mu.charge();
535 
536  // d0, chi2, nhits quality cuts
537  double dxy = gm->dxy(beamSpotHandle->position());
538  double normalizedChi2 = gm->normalizedChi2();
539  double trackerHits = tk->hitPattern().numberOfValidTrackerHits();
540  int pixelHits = tk->hitPattern().numberOfValidPixelHits();
541  int muonHits = gm->hitPattern().numberOfValidMuonHits();
542  int nMatches = mu.numberOfMatches();
543 
544  LogTrace("") << "\t... dxy, normalizedChi2, trackerHits, isTrackerMuon?: " << dxy << " [cm], " << normalizedChi2
545  << ", " << trackerHits << ", " << mu.isTrackerMuon();
546  if (fabs(dxy) < dxyCut_)
547  muon_sel[2] = true;
548 
549  bool quality = true;
550 
552  quality = false;
554  quality = false;
555  if (pixelHits < pixelHitsCut_)
556  quality = false;
557  if (muonHits < muonHitsCut_)
558  quality = false;
559  ;
560  if (!mu.isTrackerMuon())
561  quality = false;
562  if (nMatches < nMatchesCut_)
563  quality = false;
564  muon_sel[3] = quality;
565  if (quality)
566  number_of_goodMuons++;
567 
568  pt_before_->Fill(pt);
569  eta_before_->Fill(eta);
570  dxy_before_->Fill(dxy);
573 
574  // Charge asymmetry
575  // if (quality) {
576  // if (charge>0) ptPlus_before_->Fill(pt);
577  // if (charge<0) ptMinus_before_->Fill(pt);
578  //}
579 
580  // Isolation cuts
581  double isovar = mu.isolationR03().sumPt;
582  if (isCombinedIso_) {
583  isovar += mu.isolationR03().emEt;
584  isovar += mu.isolationR03().hadEt;
585  }
586  if (isRelativeIso_)
587  isovar /= pt;
588  if (isovar < isoCut03_)
589  muon_sel[4] = true;
590 
591  LogTrace("") << "\t... isolation value" << isovar << ", isolated? " << muon_sel[6];
592  iso_before_->Fill(isovar);
593 
594  // HLT (not mtched to muon for the time being)
595  // if (trigger_fired) muon_sel[5] = true;
596 
597  // For Z:
598  if (pt > ptThrForZ1_ && fabs(eta) < etaCut_ && fabs(dxy) < dxyCut_ && quality && isovar < isoCut03_) {
599  muon4Z = true;
600  }
601 
602  // MET/MT cuts
603  double w_et = met_et + mu.pt();
604  double w_px = met.px() + mu.px();
605  double w_py = met.py() + mu.py();
606 
607  double massT = w_et * w_et - w_px * w_px - w_py * w_py;
608  massT = (massT > 0) ? sqrt(massT) : 0;
609 
610  LogTrace("") << "\t... W mass, W_et, W_px, W_py: " << massT << ", " << w_et << ", " << w_px << ", " << w_py
611  << " [GeV]";
612  if (massT > mtMin_ && massT < mtMax_)
613  muon_sel[5] = true;
614  mt_before_->Fill(massT);
615  if (met_et > metMin_ && met_et < metMax_)
616  muon_sel[6] = true;
617 
618  // Acoplanarity cuts
619  Geom::Phi<double> deltaphi(mu.phi() - atan2(met.py(), met.px()));
620  double acop = deltaphi.value();
621  if (acop < 0)
622  acop = -acop;
623  acop = M_PI - acop;
624  LogTrace("") << "\t... acoplanarity: " << acop;
625  if (acop < acopCut_)
626  muon_sel[7] = true;
627  acop_before_->Fill(acop);
628 
629  // Remaining flags (from global event information)
630  if (nmuonsForZ1 < 1 || nmuonsForZ2 < 2)
631  muon_sel[8] = true;
632  if (njets <= nJetMax_)
633  muon_sel[9] = true;
634 
635  // Collect necessary flags "per muon"
636  int flags_passed = 0;
637  for (int j = 0; j < NFLAGS; ++j) {
638  if (muon_sel[j])
639  flags_passed += 1;
640  }
641 
642  // Do N-1 histograms now (and only once for global event quantities)
643  if (flags_passed >= (NFLAGS - 1)) {
644  if (!muon_sel[0] || flags_passed == NFLAGS)
645  pt_after_->Fill(pt);
646  if (!muon_sel[1] || flags_passed == NFLAGS)
647  eta_after_->Fill(eta);
648  if (!muon_sel[2] || flags_passed == NFLAGS)
649  dxy_after_->Fill(dxy);
650  if (!muon_sel[3] || flags_passed == NFLAGS)
652  if (!muon_sel[4] || flags_passed == NFLAGS)
653  iso_after_->Fill(isovar);
654  // if (!muon_sel[5] || flags_passed == NFLAGS)
655  // if (!hlt_hist_done) trig_after_->Fill(trigger_fired);
656  //hlt_hist_done = true;
657  if (!muon_sel[5] || flags_passed == NFLAGS)
658  mt_after_->Fill(massT);
659  if (!muon_sel[6] || flags_passed == NFLAGS)
660  if (!met_hist_done)
661  met_after_->Fill(met_et);
662  met_hist_done = true;
663  if (!muon_sel[7] || flags_passed == NFLAGS)
664  acop_after_->Fill(acop);
665  // no action here for muon_sel[8]
666  if (!muon_sel[9] || flags_passed == NFLAGS) {
667  if (!njets_hist_done) {
669  leadingjet_pt_after_->Fill(lead_jet_pt);
670  leadingjet_eta_after_->Fill(lead_jet_eta);
671  }
672  njets_hist_done = true;
673  }
674  if (flags_passed == NFLAGS) {
675  if (!wfullsel_hist_done) {
676  npvs_after_->Fill(nvvertex);
678  // if (charge>0) ptPlus_afterW_->Fill(pt);
679  // if (charge<0) ptMinus_afterW_->Fill(pt);
680  }
681  wfullsel_hist_done = true;
682  }
683  }
684 
685  // The cases in which the event is rejected as a Z are considered
686  // independently:
687  if (muon4Z && !muon_sel[8]) {
688  // Plots for 2 muons
689  for (unsigned int j = i + 1; j < muonCollectionSize; j++) {
690  for (int ij = 0; ij < NFLAGSZ; ++ij) {
691  zmuon_sel[ij] = false;
692  }
693 
694  for (int ji = 0; ji < 5; ++ji) {
695  zmuon_sel[ji] = muon_sel[ji];
696  }
697 
698  const Muon& mu2 = muonCollection->at(j);
699  if (!mu2.isGlobalMuon())
700  continue;
701  if (mu2.charge() * charge != -1)
702  continue;
703  reco::TrackRef gm2 = mu2.globalTrack();
704  reco::TrackRef tk2 = mu2.innerTrack();
705  double pt2 = mu2.pt();
706  if (pt2 > ptThrForZ2_)
707  zmuon_sel[5] = true;
708  double eta2 = mu2.eta();
709  if (fabs(eta2) < etaCut_)
710  zmuon_sel[6] = true;
711  double dxy2 = gm2->dxy(beamSpotHandle->position());
712  if (fabs(dxy2) < dxyCut_)
713  zmuon_sel[7] = true;
714  double normalizedChi22 = gm2->normalizedChi2();
715  double trackerHits2 = tk2->hitPattern().numberOfValidTrackerHits();
716  int pixelHits2 = tk2->hitPattern().numberOfValidPixelHits();
717  int muonHits2 = gm2->hitPattern().numberOfValidMuonHits();
718  int nMatches2 = mu2.numberOfMatches();
719  bool quality2 = true;
720  if (normalizedChi22 > normalizedChi2Cut_)
721  quality2 = false;
722  if (trackerHits2 < trackerHitsCut_)
723  quality2 = false;
724  if (pixelHits2 < pixelHitsCut_)
725  quality2 = false;
726  if (muonHits2 < muonHitsCut_)
727  quality2 = false;
728  if (!mu2.isTrackerMuon())
729  quality2 = false;
730  if (nMatches2 < nMatchesCut_)
731  quality2 = false;
732  zmuon_sel[8] = quality2;
733  double isovar2 = mu2.isolationR03().sumPt;
734  if (isCombinedIso_) {
735  isovar2 += mu2.isolationR03().emEt;
736  isovar2 += mu2.isolationR03().hadEt;
737  }
738  if (isRelativeIso_)
739  isovar2 /= pt2;
740  if (isovar2 < isoCut03_)
741  zmuon_sel[9] = true;
742  // if (trigger_fired) zmuon_sel[10] = true;
743  const math::XYZTLorentzVector ZRecoGlb(
744  mu.px() + mu2.px(), mu.py() + mu2.py(), mu.pz() + mu2.pz(), mu.p() + mu2.p());
745  if (ZRecoGlb.mass() > dimuonMassMin_ && ZRecoGlb.mass() < dimuonMassMax_)
746  zmuon_sel[10] = true;
747 
748  // jet flag
749  if (njets <= nJetMax_)
750  zmuon_sel[11] = true;
751 
752  // start filling histos: N-1 plots
753  int flags_passed_z = 0;
754 
755  for (int jj = 0; jj < NFLAGSZ; ++jj) {
756  if (zmuon_sel[jj])
757  ++flags_passed_z;
758  }
759 
760  if (flags_passed_z >= (NFLAGSZ - 1)) {
761  if (!zmuon_sel[0] || flags_passed_z == NFLAGSZ) {
762  pt1_afterZ_->Fill(pt);
763  }
764  if (!zmuon_sel[1] || flags_passed_z == NFLAGSZ) {
766  }
767  if (!zmuon_sel[2] || flags_passed_z == NFLAGSZ) {
769  }
770  if (!zmuon_sel[3] || flags_passed_z == NFLAGSZ) {
772  }
773  if (!zmuon_sel[4] || flags_passed_z == NFLAGSZ) {
774  iso1_afterZ_->Fill(isovar);
775  }
776  if (!zmuon_sel[5] || flags_passed_z == NFLAGSZ) {
777  pt2_afterZ_->Fill(pt2);
778  }
779  if (!zmuon_sel[6] || flags_passed_z == NFLAGSZ) {
781  }
782  if (!zmuon_sel[7] || flags_passed_z == NFLAGSZ) {
783  dxy2_afterZ_->Fill(dxy2);
784  }
785  if (!zmuon_sel[8] || flags_passed_z == NFLAGSZ) {
786  goodewkmuon2_afterZ_->Fill(quality2);
787  }
788  if (!zmuon_sel[9] || flags_passed_z == NFLAGSZ) {
789  iso2_afterZ_->Fill(isovar2);
790  }
791  // if (!zmuon_sel[10] || flags_passed_z == NFLAGSZ) {
792  // if (!zhlt_hist_done) ztrig_afterZ_->Fill(trigger_fired);
793  // zhlt_hist_done = true;
794  // }
795  if (!zmuon_sel[10] || flags_passed_z == NFLAGSZ) {
796  dimuonmass_afterZ_->Fill(ZRecoGlb.mass());
797  }
798  if (!zmuon_sel[11] || flags_passed_z == NFLAGSZ) {
799  if (!zjets_hist_done) {
801  leadingjet_pt_afterZ_->Fill(lead_jet_pt);
802  leadingjet_eta_afterZ_->Fill(lead_jet_eta);
803  }
804  zjets_hist_done = true;
805  }
806  if (flags_passed_z == NFLAGSZ) {
807  met_afterZ_->Fill(met_et);
808  if (!zfullsel_hist_done) {
809  npvs_afterZ_->Fill(nvvertex);
811  if (charge > 0) {
812  // ptPlus_afterZ_->Fill(mu.pt());
813  // ptMinus_afterZ_->Fill(mu2.pt());
814  ptDiffPM_afterZ_->Fill(mu.pt() - mu2.pt());
815  } else {
816  // ptPlus_afterZ_->Fill(mu2.pt());
817  // ptMinus_afterZ_->Fill(mu.pt());
818  ptDiffPM_afterZ_->Fill(mu2.pt() - mu.pt());
819  }
820  }
821  zfullsel_hist_done = true;
822  }
823  }
824  }
825  }
826  }
827 
828  if (zfullsel_hist_done) {
829  // here was a Z candidate
830  n_zselPt1thr_->Fill(nmuonsForZ1);
831  n_zselPt2thr_->Fill(nmuonsForZ2);
832  }
833 
834  // nmuons_->Fill(number_of_muons);
835  // nmuons_->Fill(muonCollectionSize);
836  ngoodmuons_->Fill(number_of_goodMuons);
837 
838  return;
839 }
MonitorElement * met_before_
Definition: EwkMuDQM.h:110
float hadEt
hcal sum-Et
Definition: MuonIsolation.h:8
const MuonIsolation & isolationR03() const
Definition: Muon.h:166
MonitorElement * ptDiffPM_afterZ_
Definition: EwkMuDQM.h:132
double etaCut_
Definition: EwkMuDQM.h:71
MonitorElement * dimuonmass_afterZ_
Definition: EwkMuDQM.h:152
unsigned int nall
Definition: EwkMuDQM.h:88
int nMatchesCut_
Definition: EwkMuDQM.h:58
double pz() const final
z coordinate of momentum vector
Definition: Photon.py:1
MonitorElement * phEta_
Definition: EwkMuDQM.h:170
float sumPt
sum-pt of tracks
Definition: MuonIsolation.h:6
MonitorElement * njets_afterZ_
Definition: EwkMuDQM.h:117
double pt() const final
transverse momentum
const Point & position() const
position
Definition: BeamSpot.h:59
MonitorElement * iso2_afterZ_
Definition: EwkMuDQM.h:144
double mtMax_
Definition: EwkMuDQM.h:68
virtual TrackRef globalTrack() const
reference to Track reconstructed in both tracked and muon detector
Definition: Muon.h:51
MonitorElement * npvs_before_
Definition: EwkMuDQM.h:154
double ptThrForPhoton_
Definition: EwkMuDQM.h:82
MonitorElement * dxy1_afterZ_
Definition: EwkMuDQM.h:137
MonitorElement * njets_before_
Definition: EwkMuDQM.h:115
MonitorElement * dxy_before_
Definition: EwkMuDQM.h:100
MonitorElement * leadingjet_eta_afterZ_
Definition: EwkMuDQM.h:123
double metMax_
Definition: EwkMuDQM.h:66
MonitorElement * muoncharge_before_
Definition: EwkMuDQM.h:158
edm::EDGetTokenT< reco::BeamSpot > beamSpotTag_
Definition: EwkMuDQM.h:49
MonitorElement * eta2_afterZ_
Definition: EwkMuDQM.h:141
double ptCut_
Definition: EwkMuDQM.h:70
double isoCut03_
Definition: EwkMuDQM.h:62
MonitorElement * npvs_afterZ_
Definition: EwkMuDQM.h:156
MonitorElement * leadingjet_eta_before_
Definition: EwkMuDQM.h:121
double eJetMin_
Definition: EwkMuDQM.h:79
Log< level::Error, false > LogError
MonitorElement * acop_before_
Definition: EwkMuDQM.h:112
MonitorElement * leadingjet_pt_after_
Definition: EwkMuDQM.h:119
MonitorElement * goodewkmuon_before_
Definition: EwkMuDQM.h:102
MonitorElement * eta_after_
Definition: EwkMuDQM.h:99
MonitorElement * muoncharge_afterZ_
Definition: EwkMuDQM.h:160
MonitorElement * pt_before_
Definition: EwkMuDQM.h:96
bool isTrackerMuon() const override
Definition: Muon.h:304
#define LogTrace(id)
MonitorElement * dxy2_afterZ_
Definition: EwkMuDQM.h:142
MonitorElement * leadingjet_pt_before_
Definition: EwkMuDQM.h:118
MonitorElement * goodewkmuon1_afterZ_
Definition: EwkMuDQM.h:138
void Fill(long long x)
MonitorElement * iso_before_
Definition: EwkMuDQM.h:104
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
MonitorElement * npvs_after_
Definition: EwkMuDQM.h:155
string quality
MonitorElement * goodewkmuon2_afterZ_
Definition: EwkMuDQM.h:143
double px() const final
x coordinate of momentum vector
MonitorElement * njets_after_
Definition: EwkMuDQM.h:116
double p() const final
magnitude of momentum vector
MonitorElement * ngoodmuons_
Definition: EwkMuDQM.h:163
MonitorElement * n_zselPt2thr_
Definition: EwkMuDQM.h:148
double metMin_
Definition: EwkMuDQM.h:65
Definition: Muon.py:1
MonitorElement * pt2_afterZ_
Definition: EwkMuDQM.h:140
double ptThrForZ2_
Definition: EwkMuDQM.h:74
Definition: Jet.py:1
int nJetMax_
Definition: EwkMuDQM.h:80
Definition: MET.h:41
T sqrt(T t)
Definition: SSEVec.h:19
float emEt
ecal sum-Et
Definition: MuonIsolation.h:7
MonitorElement * met_afterZ_
Definition: EwkMuDQM.h:134
double dxyCut_
Definition: EwkMuDQM.h:53
MonitorElement * leadingjet_eta_after_
Definition: EwkMuDQM.h:122
double dimuonMassMin_
Definition: EwkMuDQM.h:76
bool isCombinedIso_
Definition: EwkMuDQM.h:61
double dimuonMassMax_
Definition: EwkMuDQM.h:77
virtual TrackRef innerTrack() const
Definition: Muon.h:45
double py() const final
y coordinate of momentum vector
MonitorElement * mt_after_
Definition: EwkMuDQM.h:109
MonitorElement * goodewkmuon_after_
Definition: EwkMuDQM.h:103
MonitorElement * muoncharge_after_
Definition: EwkMuDQM.h:159
MonitorElement * mt_before_
Definition: EwkMuDQM.h:108
MonitorElement * eta_before_
Definition: EwkMuDQM.h:98
MonitorElement * iso1_afterZ_
Definition: EwkMuDQM.h:139
bool isRelativeIso_
Definition: EwkMuDQM.h:60
#define M_PI
int prescaleSet(const edm::Event &iEvent, const edm::EventSetup &iSetup)
HLTPrescaleProvider hltPrescaleProvider_
Definition: EwkMuDQM.h:86
int numberOfMatches(ArbitrationType type=SegmentAndTrackArbitration) const
get number of chambers with matched segments
int pixelHitsCut_
Definition: EwkMuDQM.h:56
edm::EDGetTokenT< edm::View< reco::Vertex > > vertexTag_
Definition: EwkMuDQM.h:48
MonitorElement * nmuons_
Definition: EwkMuDQM.h:162
double normalizedChi2Cut_
Definition: EwkMuDQM.h:54
MonitorElement * pt_after_
Definition: EwkMuDQM.h:97
MonitorElement * iso_after_
Definition: EwkMuDQM.h:105
MonitorElement * eta1_afterZ_
Definition: EwkMuDQM.h:136
MonitorElement * ptDiffPM_before_
Definition: EwkMuDQM.h:127
MonitorElement * pt1_afterZ_
Definition: EwkMuDQM.h:135
MonitorElement * nph_
Definition: EwkMuDQM.h:166
int trackerHitsCut_
Definition: EwkMuDQM.h:55
double mtMin_
Definition: EwkMuDQM.h:67
MonitorElement * phPt_
Definition: EwkMuDQM.h:168
double ptThrForZ1_
Definition: EwkMuDQM.h:73
edm::EDGetTokenT< edm::View< reco::Jet > > jetToken_
Definition: EwkMuDQM.h:46
MonitorElement * dxy_after_
Definition: EwkMuDQM.h:101
int muonHitsCut_
Definition: EwkMuDQM.h:57
MonitorElement * met_after_
Definition: EwkMuDQM.h:111
edm::EDGetTokenT< edm::View< reco::Muon > > muonTag_
Definition: EwkMuDQM.h:44
MonitorElement * n_zselPt1thr_
Definition: EwkMuDQM.h:147
edm::EDGetTokenT< edm::View< reco::MET > > metToken_
Definition: EwkMuDQM.h:45
Definition: Phi.h:52
bool isGlobalMuon() const override
Definition: Muon.h:303
edm::EDGetTokenT< edm::View< reco::Photon > > phoTag_
Definition: EwkMuDQM.h:47
MonitorElement * dimuonmass_before_
Definition: EwkMuDQM.h:151
double acopCut_
Definition: EwkMuDQM.h:64
int charge() const final
electric charge
MonitorElement * leadingjet_pt_afterZ_
Definition: EwkMuDQM.h:120
MonitorElement * acop_after_
Definition: EwkMuDQM.h:113
double eta() const final
momentum pseudorapidity

◆ bookHistograms()

void EwkMuDQM::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprotectedvirtual

\ For Z-boson events

Implements DQMEDAnalyzer.

Definition at line 117 of file EwkMuDQM.cc.

References acop_after_, acop_before_, dqm::implementation::IBooker::book1D(), dimuonmass_afterZ_, dimuonmass_before_, dxy1_afterZ_, dxy2_afterZ_, dxy_after_, dxy_before_, eJetMin_, eta1_afterZ_, eta2_afterZ_, eta_after_, eta_before_, goodewkmuon1_afterZ_, goodewkmuon2_afterZ_, goodewkmuon_after_, goodewkmuon_before_, isCombinedIso_, iso1_afterZ_, iso2_afterZ_, iso_after_, iso_before_, isRelativeIso_, jetTag_, edm::InputTag::label(), leadingjet_eta_after_, leadingjet_eta_afterZ_, leadingjet_eta_before_, leadingjet_pt_after_, leadingjet_pt_afterZ_, leadingjet_pt_before_, M_PI, met_after_, met_afterZ_, met_before_, metTag_, mt_after_, mt_before_, muoncharge_after_, muoncharge_afterZ_, muoncharge_before_, n_zselPt1thr_, n_zselPt2thr_, ngoodmuons_, njets_after_, njets_afterZ_, njets_before_, nmuons_, nph_, npvs_after_, npvs_afterZ_, npvs_before_, phEta_, phPt_, pt1_afterZ_, pt2_afterZ_, pt_after_, pt_before_, ptDiffPM_afterZ_, ptDiffPM_before_, ptThrForPhoton_, ptThrForZ1_, ptThrForZ2_, and dqm::implementation::NavigatorBase::setCurrentFolder().

117  {
118  ibooker.setCurrentFolder("Physics/EwkMuDQM");
119 
120  char chtitle[256] = "";
121 
122  pt_before_ = ibooker.book1D("PT_BEFORECUTS", "Muon transverse momentum (global muon) [GeV]", 100, 0., 100.);
123  pt_after_ = ibooker.book1D("PT_AFTERWCUTS", "Muon transverse momentum (global muon) [GeV]", 100, 0., 100.);
124 
125  eta_before_ = ibooker.book1D("ETA_BEFORECUTS", "Muon pseudo-rapidity", 50, -2.5, 2.5);
126  eta_after_ = ibooker.book1D("ETA_AFTERWCUTS", "Muon pseudo-rapidity", 50, -2.5, 2.5);
127 
128  dxy_before_ = ibooker.book1D("DXY_BEFORECUTS", "Muon transverse distance to beam spot [cm]", 100, -0.5, 0.5);
129  dxy_after_ = ibooker.book1D("DXY_AFTERWCUTS", "Muon transverse distance to beam spot [cm]", 100, -0.5, 0.5);
130 
131  goodewkmuon_before_ = ibooker.book1D("GOODEWKMUON_BEFORECUTS", "Quality-muon flag", 2, -0.5, 1.5);
132  goodewkmuon_after_ = ibooker.book1D("GOODEWKMUON_AFTERWCUTS", "Quality-muon flag", 2, -0.5, 1.5);
133 
134  if (isRelativeIso_) {
135  if (isCombinedIso_) {
136  iso_before_ = ibooker.book1D("ISO_BEFORECUTS", "Relative (combined) isolation variable", 100, 0., 1.);
137  iso_after_ = ibooker.book1D("ISO_AFTERWCUTS", "Relative (combined) isolation variable", 100, 0., 1.);
138  } else {
139  iso_before_ = ibooker.book1D("ISO_BEFORECUTS", "Relative (tracker) isolation variable", 100, 0., 1.);
140  iso_after_ = ibooker.book1D("ISO_AFTERWCUTS", "Relative (tracker) isolation variable", 100, 0., 1.);
141  }
142  } else {
143  if (isCombinedIso_) {
144  iso_before_ = ibooker.book1D("ISO_BEFORECUTS", "Absolute (combined) isolation variable [GeV]", 100, 0., 20.);
145  iso_after_ = ibooker.book1D("ISO_AFTERWCUTS", "Absolute (combined) isolation variable [GeV]", 100, 0., 20.);
146  } else {
147  iso_before_ = ibooker.book1D("ISO_BEFORECUTS", "Absolute (tracker) isolation variable [GeV]", 100, 0., 20.);
148  iso_after_ = ibooker.book1D("ISO_AFTERWCUTS", "Absolute (tracker) isolation variable [GeV]", 100, 0., 20.);
149  }
150  }
151 
152  /* trig_before_ = ibooker.book1D("TRIG_BEFORECUTS",
153  "Trigger response (boolean of muon triggers)", 2, -0.5, 1.5);
154  trig_after_ = ibooker.book1D("TRIG_AFTERWCUTS",
155  "Trigger response (boolean of muon triggers)", 2, -0.5, 1.5);
156 */
157  snprintf(chtitle, 255, "Transverse mass (%s) [GeV]", metTag_.label().data());
158  mt_before_ = ibooker.book1D("MT_BEFORECUTS", chtitle, 150, 0., 300.);
159  mt_after_ = ibooker.book1D("MT_AFTERWCUTS", chtitle, 150, 0., 300.);
160 
161  snprintf(chtitle, 255, "Missing transverse energy (%s) [GeV]", metTag_.label().data());
162  met_before_ = ibooker.book1D("MET_BEFORECUTS", chtitle, 100, 0., 200.);
163  met_after_ = ibooker.book1D("MET_AFTERWCUTS", chtitle, 100, 0., 200.);
164  met_afterZ_ = ibooker.book1D("MET_AFTERZCUTS", chtitle, 100, 0., 200.);
165 
166  snprintf(chtitle, 255, "MU-MET (%s) acoplanarity", metTag_.label().data());
167  acop_before_ = ibooker.book1D("ACOP_BEFORECUTS", chtitle, 50, 0., M_PI);
168  acop_after_ = ibooker.book1D("ACOP_AFTERWCUTS", chtitle, 50, 0., M_PI);
169 
170  snprintf(chtitle, 255, "Z selection: muons above %.2f GeV", ptThrForZ1_);
171  n_zselPt1thr_ = ibooker.book1D("NZSELPT1THR", chtitle, 10, -0.5, 9.5);
172  snprintf(chtitle, 255, "Z selection: muons above %.2f GeV", ptThrForZ2_);
173  n_zselPt2thr_ = ibooker.book1D("NZSELPT2THR", chtitle, 10, -0.5, 9.5);
174 
175  snprintf(chtitle, 255, "Number of jets (%s) above %.2f GeV", jetTag_.label().data(), eJetMin_);
176  njets_before_ = ibooker.book1D("NJETS_BEFORECUTS", chtitle, 16, -0.5, 15.5);
177  njets_after_ = ibooker.book1D("NJETS_AFTERWCUTS", chtitle, 16, -0.5, 15.5);
178  njets_afterZ_ = ibooker.book1D("NJETS_AFTERZCUTS", chtitle, 16, -0.5, 15.5);
179 
180  leadingjet_pt_before_ = ibooker.book1D("LEADINGJET_PT_BEFORECUTS", "Leading Jet transverse momentum", 300, 0., 300.);
181  leadingjet_pt_after_ = ibooker.book1D("LEADINGJET_PT_AFTERWCUTS", "Leading Jet transverse momentum", 300, 0., 300.);
182  leadingjet_pt_afterZ_ = ibooker.book1D("LEADINGJET_PT_AFTERZCUTS", "Leading Jet transverse momentum", 300, 0., 300.);
183 
184  leadingjet_eta_before_ = ibooker.book1D("LEADINGJET_ETA_BEFORECUTS", "Leading Jet pseudo-rapidity", 50, -2.5, 2.5);
185  leadingjet_eta_after_ = ibooker.book1D("LEADINGJET_ETA_AFTERWCUTS", "Leading Jet pseudo-rapidity", 50, -2.5, 2.5);
186  leadingjet_eta_afterZ_ = ibooker.book1D("LEADINGJET_ETA_AFTERZCUTS", "Leading Jet pseudo-rapidity", 50, -2.5, 2.5);
187 
188  ptDiffPM_before_ = ibooker.book1D("PTDIFFPM_BEFORE_CUTS", "pt(Muon+)-pt(Muon-) after Z cuts [GeV]", 200, -100., 100.);
189  ptDiffPM_afterZ_ = ibooker.book1D("PTDIFFPM_AFTERZ_CUTS", "pt(Muon+)-pt(Muon-) after Z cuts [GeV]", 200, -100., 100.);
190 
193  pt1_afterZ_ = ibooker.book1D("PT1_AFTERZCUTS", "Muon transverse momentum (global muon) [GeV]", 100, 0., 100.);
194  eta1_afterZ_ = ibooker.book1D("ETA1_AFTERZCUTS", "Muon pseudo-rapidity", 50, -2.5, 2.5);
195  dxy1_afterZ_ = ibooker.book1D("DXY1_AFTERZCUTS", "Muon transverse distance to beam spot [cm]", 100, -0.5, 0.5);
196  goodewkmuon1_afterZ_ = ibooker.book1D("GOODEWKMUON1_AFTERZCUTS", "Quality-muon flag", 2, -0.5, 1.5);
197 
198  if (isRelativeIso_) {
199  if (isCombinedIso_) {
200  iso1_afterZ_ = ibooker.book1D("ISO1_AFTERZCUTS", "Relative (combined) isolation variable", 100, 0., 1.);
201  iso2_afterZ_ = ibooker.book1D("ISO2_AFTERZCUTS", "Relative (combined) isolation variable", 100, 0., 1.);
202  } else {
203  iso1_afterZ_ = ibooker.book1D("ISO1_AFTERZCUTS", "Relative (tracker) isolation variable", 100, 0., 1.);
204  iso2_afterZ_ = ibooker.book1D("ISO2_AFTERZCUTS", "Relative (tracker) isolation variable", 100, 0., 1.);
205  }
206  } else {
207  if (isCombinedIso_) {
208  iso1_afterZ_ = ibooker.book1D("ISO1_AFTERZCUTS", "Absolute (combined) isolation variable [GeV]", 100, 0., 20.);
209  iso2_afterZ_ = ibooker.book1D("ISO2_AFTERZCUTS", "Absolute (combined) isolation variable [GeV]", 100, 0., 20.);
210  } else {
211  iso1_afterZ_ = ibooker.book1D("ISO1_AFTERZCUTS", "Absolute (tracker) isolation variable [GeV]", 100, 0., 20.);
212  iso2_afterZ_ = ibooker.book1D("ISO2_AFTERZCUTS", "Absolute (tracker) isolation variable [GeV]", 100, 0., 20.);
213  }
214  }
215 
216  pt2_afterZ_ = ibooker.book1D("PT2_AFTERZCUTS", "Muon transverse momentum (global muon) [GeV]", 100, 0., 100.);
217  eta2_afterZ_ = ibooker.book1D("ETA2_AFTERZCUTS", "Muon pseudo-rapidity", 50, -2.5, 2.5);
218  dxy2_afterZ_ = ibooker.book1D("DXY2_AFTERZCUTS", "Muon transverse distance to beam spot [cm]", 100, -0.5, 0.5);
219  goodewkmuon2_afterZ_ = ibooker.book1D("GOODEWKMUON2_AFTERZCUTS", "Quality-muon flag", 2, -0.5, 1.5);
220  /* ztrig_afterZ_ = ibooker.book1D("ZTRIG_AFTERZCUTS",
221  "Trigger response (boolean of muon triggers)", 2, -0.5, 1.5);
222  */
223  dimuonmass_before_ = ibooker.book1D("DIMUONMASS_BEFORECUTS", "DiMuonMass (2 globals)", 100, 0, 200);
224  dimuonmass_afterZ_ = ibooker.book1D("DIMUONMASS_AFTERZCUTS", "DiMuonMass (2 globals)", 100, 0, 200);
225  npvs_before_ = ibooker.book1D("NPVs_BEFORECUTS", "Number of Valid Primary Vertices", 51, -0.5, 50.5);
226  npvs_after_ = ibooker.book1D("NPVs_AFTERWCUTS", "Number of Valid Primary Vertices", 51, -0.5, 50.5);
227  npvs_afterZ_ = ibooker.book1D("NPVs_AFTERZCUTS", "Number of Valid Primary Vertices", 51, -0.5, 50.5);
228  muoncharge_before_ = ibooker.book1D("MUONCHARGE_BEFORECUTS", "Muon Charge", 3, -1.5, 1.5);
229  muoncharge_after_ = ibooker.book1D("MUONCHARGE_AFTERWCUTS", "Muon Charge", 3, -1.5, 1.5);
230  muoncharge_afterZ_ = ibooker.book1D("MUONCHARGE_AFTERZCUTS", "Muon Charge", 3, -1.5, 1.5);
231 
232  // Adding these to replace the NZ ones (more useful, since they are more
233  // general?)
234  nmuons_ = ibooker.book1D("NMuons", "Number of muons in the event", 10, -0.5, 9.5);
235  ngoodmuons_ = ibooker.book1D("NGoodMuons", "Number of muons passing the quality criteria", 10, -0.5, 9.5);
236 
237  nph_ = ibooker.book1D("nph", "Number of photons in the event", 20, 0., 20.);
238  phPt_ = ibooker.book1D("phPt", "Photon transverse momentum [GeV]", 100, 0., 1000.);
239  snprintf(chtitle, 255, "Photon pseudorapidity (pT>%4.1f)", ptThrForPhoton_);
240  phEta_ = ibooker.book1D("phEta", chtitle, 100, -2.5, 2.5);
241 }
MonitorElement * met_before_
Definition: EwkMuDQM.h:110
MonitorElement * ptDiffPM_afterZ_
Definition: EwkMuDQM.h:132
MonitorElement * dimuonmass_afterZ_
Definition: EwkMuDQM.h:152
MonitorElement * phEta_
Definition: EwkMuDQM.h:170
MonitorElement * njets_afterZ_
Definition: EwkMuDQM.h:117
MonitorElement * iso2_afterZ_
Definition: EwkMuDQM.h:144
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
MonitorElement * npvs_before_
Definition: EwkMuDQM.h:154
double ptThrForPhoton_
Definition: EwkMuDQM.h:82
MonitorElement * dxy1_afterZ_
Definition: EwkMuDQM.h:137
MonitorElement * njets_before_
Definition: EwkMuDQM.h:115
MonitorElement * dxy_before_
Definition: EwkMuDQM.h:100
MonitorElement * leadingjet_eta_afterZ_
Definition: EwkMuDQM.h:123
MonitorElement * muoncharge_before_
Definition: EwkMuDQM.h:158
MonitorElement * eta2_afterZ_
Definition: EwkMuDQM.h:141
MonitorElement * npvs_afterZ_
Definition: EwkMuDQM.h:156
MonitorElement * leadingjet_eta_before_
Definition: EwkMuDQM.h:121
std::string const & label() const
Definition: InputTag.h:36
double eJetMin_
Definition: EwkMuDQM.h:79
MonitorElement * acop_before_
Definition: EwkMuDQM.h:112
MonitorElement * leadingjet_pt_after_
Definition: EwkMuDQM.h:119
MonitorElement * goodewkmuon_before_
Definition: EwkMuDQM.h:102
MonitorElement * eta_after_
Definition: EwkMuDQM.h:99
MonitorElement * muoncharge_afterZ_
Definition: EwkMuDQM.h:160
MonitorElement * pt_before_
Definition: EwkMuDQM.h:96
MonitorElement * dxy2_afterZ_
Definition: EwkMuDQM.h:142
MonitorElement * leadingjet_pt_before_
Definition: EwkMuDQM.h:118
MonitorElement * goodewkmuon1_afterZ_
Definition: EwkMuDQM.h:138
MonitorElement * iso_before_
Definition: EwkMuDQM.h:104
MonitorElement * npvs_after_
Definition: EwkMuDQM.h:155
MonitorElement * goodewkmuon2_afterZ_
Definition: EwkMuDQM.h:143
MonitorElement * njets_after_
Definition: EwkMuDQM.h:116
MonitorElement * ngoodmuons_
Definition: EwkMuDQM.h:163
MonitorElement * n_zselPt2thr_
Definition: EwkMuDQM.h:148
MonitorElement * pt2_afterZ_
Definition: EwkMuDQM.h:140
double ptThrForZ2_
Definition: EwkMuDQM.h:74
MonitorElement * met_afterZ_
Definition: EwkMuDQM.h:134
MonitorElement * leadingjet_eta_after_
Definition: EwkMuDQM.h:122
bool isCombinedIso_
Definition: EwkMuDQM.h:61
MonitorElement * mt_after_
Definition: EwkMuDQM.h:109
MonitorElement * goodewkmuon_after_
Definition: EwkMuDQM.h:103
MonitorElement * muoncharge_after_
Definition: EwkMuDQM.h:159
MonitorElement * mt_before_
Definition: EwkMuDQM.h:108
MonitorElement * eta_before_
Definition: EwkMuDQM.h:98
MonitorElement * iso1_afterZ_
Definition: EwkMuDQM.h:139
bool isRelativeIso_
Definition: EwkMuDQM.h:60
#define M_PI
edm::InputTag jetTag_
Definition: EwkMuDQM.h:42
MonitorElement * nmuons_
Definition: EwkMuDQM.h:162
edm::InputTag metTag_
Definition: EwkMuDQM.h:41
MonitorElement * pt_after_
Definition: EwkMuDQM.h:97
MonitorElement * iso_after_
Definition: EwkMuDQM.h:105
MonitorElement * eta1_afterZ_
Definition: EwkMuDQM.h:136
MonitorElement * ptDiffPM_before_
Definition: EwkMuDQM.h:127
MonitorElement * pt1_afterZ_
Definition: EwkMuDQM.h:135
MonitorElement * nph_
Definition: EwkMuDQM.h:166
MonitorElement * phPt_
Definition: EwkMuDQM.h:168
double ptThrForZ1_
Definition: EwkMuDQM.h:73
MonitorElement * dxy_after_
Definition: EwkMuDQM.h:101
MonitorElement * met_after_
Definition: EwkMuDQM.h:111
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MonitorElement * n_zselPt1thr_
Definition: EwkMuDQM.h:147
MonitorElement * dimuonmass_before_
Definition: EwkMuDQM.h:151
MonitorElement * leadingjet_pt_afterZ_
Definition: EwkMuDQM.h:120
MonitorElement * acop_after_
Definition: EwkMuDQM.h:113

◆ dqmBeginRun()

void EwkMuDQM::dqmBeginRun ( const edm::Run iRun,
const edm::EventSetup iSet 
)
overrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 101 of file EwkMuDQM.cc.

References hltPrescaleProvider_, HLTPrescaleProvider::init(), isValidHltConfig_, nall, nhlt, niso, nmet, nrec, nsel, and nz.

101  {
102  nall = 0;
103  nsel = 0;
104  nz = 0;
105 
106  nrec = 0;
107  niso = 0;
108  nhlt = 0;
109  nmet = 0;
110 
111  // passed as parameter to HLTConfigProvider::init(), not yet used
112  bool isConfigChanged = false;
113  // isValidHltConfig_ used to short-circuit analyze() in case of problems
114  isValidHltConfig_ = hltPrescaleProvider_.init(iRun, iSet, "HLT", isConfigChanged);
115 }
unsigned int nall
Definition: EwkMuDQM.h:88
unsigned int nrec
Definition: EwkMuDQM.h:89
unsigned int nhlt
Definition: EwkMuDQM.h:91
unsigned int nsel
Definition: EwkMuDQM.h:93
HLTPrescaleProvider hltPrescaleProvider_
Definition: EwkMuDQM.h:86
unsigned int nz
Definition: EwkMuDQM.h:94
unsigned int niso
Definition: EwkMuDQM.h:90
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
unsigned int nmet
Definition: EwkMuDQM.h:92
bool isValidHltConfig_
Definition: EwkMuDQM.h:85

◆ init_histograms()

void EwkMuDQM::init_histograms ( )
protected

Member Data Documentation

◆ acop_after_

MonitorElement* EwkMuDQM::acop_after_
private

Definition at line 113 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ acop_before_

MonitorElement* EwkMuDQM::acop_before_
private

Definition at line 112 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ acopCut_

double EwkMuDQM::acopCut_
private

Definition at line 64 of file EwkMuDQM.h.

Referenced by analyze().

◆ beamSpotTag_

edm::EDGetTokenT<reco::BeamSpot> EwkMuDQM::beamSpotTag_
private

Definition at line 49 of file EwkMuDQM.h.

Referenced by analyze().

◆ dimuonmass_afterZ_

MonitorElement* EwkMuDQM::dimuonmass_afterZ_
private

Definition at line 152 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ dimuonmass_before_

MonitorElement* EwkMuDQM::dimuonmass_before_
private

Definition at line 151 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ dimuonMassMax_

double EwkMuDQM::dimuonMassMax_
private

Definition at line 77 of file EwkMuDQM.h.

Referenced by analyze().

◆ dimuonMassMin_

double EwkMuDQM::dimuonMassMin_
private

Definition at line 76 of file EwkMuDQM.h.

Referenced by analyze().

◆ dxy1_afterZ_

MonitorElement* EwkMuDQM::dxy1_afterZ_
private

Definition at line 137 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ dxy2_afterZ_

MonitorElement* EwkMuDQM::dxy2_afterZ_
private

Definition at line 142 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ dxy_after_

MonitorElement* EwkMuDQM::dxy_after_
private

Definition at line 101 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ dxy_before_

MonitorElement* EwkMuDQM::dxy_before_
private

Definition at line 100 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ dxyCut_

double EwkMuDQM::dxyCut_
private

Definition at line 53 of file EwkMuDQM.h.

Referenced by analyze().

◆ eJetMin_

double EwkMuDQM::eJetMin_
private

Definition at line 79 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ eta1_afterZ_

MonitorElement* EwkMuDQM::eta1_afterZ_
private

Definition at line 136 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ eta2_afterZ_

MonitorElement* EwkMuDQM::eta2_afterZ_
private

Definition at line 141 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ eta_after_

MonitorElement* EwkMuDQM::eta_after_
private

Definition at line 99 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ eta_before_

MonitorElement* EwkMuDQM::eta_before_
private

Definition at line 98 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ etaCut_

double EwkMuDQM::etaCut_
private

Definition at line 71 of file EwkMuDQM.h.

Referenced by analyze().

◆ goodewkmuon1_afterZ_

MonitorElement* EwkMuDQM::goodewkmuon1_afterZ_
private

Definition at line 138 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ goodewkmuon2_afterZ_

MonitorElement* EwkMuDQM::goodewkmuon2_afterZ_
private

Definition at line 143 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ goodewkmuon_after_

MonitorElement* EwkMuDQM::goodewkmuon_after_
private

Definition at line 103 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ goodewkmuon_before_

MonitorElement* EwkMuDQM::goodewkmuon_before_
private

Definition at line 102 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ hltPrescaleProvider_

HLTPrescaleProvider EwkMuDQM::hltPrescaleProvider_
private

Definition at line 86 of file EwkMuDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ isAlsoTrackerMuon_

bool EwkMuDQM::isAlsoTrackerMuon_
private

Definition at line 52 of file EwkMuDQM.h.

◆ isCombinedIso_

bool EwkMuDQM::isCombinedIso_
private

Definition at line 61 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ iso1_afterZ_

MonitorElement* EwkMuDQM::iso1_afterZ_
private

Definition at line 139 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ iso2_afterZ_

MonitorElement* EwkMuDQM::iso2_afterZ_
private

Definition at line 144 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ iso_after_

MonitorElement* EwkMuDQM::iso_after_
private

Definition at line 105 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ iso_before_

MonitorElement* EwkMuDQM::iso_before_
private

Definition at line 104 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ isoCut03_

double EwkMuDQM::isoCut03_
private

Definition at line 62 of file EwkMuDQM.h.

Referenced by analyze().

◆ isRelativeIso_

bool EwkMuDQM::isRelativeIso_
private

Definition at line 60 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ isValidHltConfig_

bool EwkMuDQM::isValidHltConfig_
private

Definition at line 85 of file EwkMuDQM.h.

Referenced by dqmBeginRun(), and EwkMuDQM().

◆ jetTag_

edm::InputTag EwkMuDQM::jetTag_
private

Definition at line 42 of file EwkMuDQM.h.

Referenced by bookHistograms().

◆ jetToken_

edm::EDGetTokenT<edm::View<reco::Jet> > EwkMuDQM::jetToken_
private

Definition at line 46 of file EwkMuDQM.h.

Referenced by analyze().

◆ leadingjet_eta_after_

MonitorElement* EwkMuDQM::leadingjet_eta_after_
private

Definition at line 122 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ leadingjet_eta_afterZ_

MonitorElement* EwkMuDQM::leadingjet_eta_afterZ_
private

Definition at line 123 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ leadingjet_eta_before_

MonitorElement* EwkMuDQM::leadingjet_eta_before_
private

Definition at line 121 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ leadingjet_pt_after_

MonitorElement* EwkMuDQM::leadingjet_pt_after_
private

Definition at line 119 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ leadingjet_pt_afterZ_

MonitorElement* EwkMuDQM::leadingjet_pt_afterZ_
private

Definition at line 120 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ leadingjet_pt_before_

MonitorElement* EwkMuDQM::leadingjet_pt_before_
private

Definition at line 118 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ met_after_

MonitorElement* EwkMuDQM::met_after_
private

Definition at line 111 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ met_afterZ_

MonitorElement* EwkMuDQM::met_afterZ_
private

Definition at line 134 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ met_before_

MonitorElement* EwkMuDQM::met_before_
private

Definition at line 110 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ metMax_

double EwkMuDQM::metMax_
private

Definition at line 66 of file EwkMuDQM.h.

Referenced by analyze().

◆ metMin_

double EwkMuDQM::metMin_
private

Definition at line 65 of file EwkMuDQM.h.

Referenced by analyze().

◆ metTag_

edm::InputTag EwkMuDQM::metTag_
private

Definition at line 41 of file EwkMuDQM.h.

Referenced by bookHistograms().

◆ metToken_

edm::EDGetTokenT<edm::View<reco::MET> > EwkMuDQM::metToken_
private

Definition at line 45 of file EwkMuDQM.h.

Referenced by analyze().

◆ mt_after_

MonitorElement* EwkMuDQM::mt_after_
private

Definition at line 109 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ mt_before_

MonitorElement* EwkMuDQM::mt_before_
private

Definition at line 108 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ mtMax_

double EwkMuDQM::mtMax_
private

Definition at line 68 of file EwkMuDQM.h.

Referenced by analyze().

◆ mtMin_

double EwkMuDQM::mtMin_
private

Definition at line 67 of file EwkMuDQM.h.

Referenced by analyze().

◆ muoncharge_after_

MonitorElement* EwkMuDQM::muoncharge_after_
private

Definition at line 159 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ muoncharge_afterZ_

MonitorElement* EwkMuDQM::muoncharge_afterZ_
private

Definition at line 160 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ muoncharge_before_

MonitorElement* EwkMuDQM::muoncharge_before_
private

Definition at line 158 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ muonHitsCut_

int EwkMuDQM::muonHitsCut_
private

Definition at line 57 of file EwkMuDQM.h.

Referenced by analyze().

◆ muonTag_

edm::EDGetTokenT<edm::View<reco::Muon> > EwkMuDQM::muonTag_
private

Definition at line 44 of file EwkMuDQM.h.

Referenced by analyze().

◆ n_zselPt1thr_

MonitorElement* EwkMuDQM::n_zselPt1thr_
private

Definition at line 147 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ n_zselPt2thr_

MonitorElement* EwkMuDQM::n_zselPt2thr_
private

Definition at line 148 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ nall

unsigned int EwkMuDQM::nall
private

Definition at line 88 of file EwkMuDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ ngoodmuons_

MonitorElement* EwkMuDQM::ngoodmuons_
private

Definition at line 163 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ nhlt

unsigned int EwkMuDQM::nhlt
private

Definition at line 91 of file EwkMuDQM.h.

Referenced by dqmBeginRun().

◆ niso

unsigned int EwkMuDQM::niso
private

Definition at line 90 of file EwkMuDQM.h.

Referenced by dqmBeginRun().

◆ nJetMax_

int EwkMuDQM::nJetMax_
private

Definition at line 80 of file EwkMuDQM.h.

Referenced by analyze().

◆ njets_after_

MonitorElement* EwkMuDQM::njets_after_
private

Definition at line 116 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ njets_afterZ_

MonitorElement* EwkMuDQM::njets_afterZ_
private

Definition at line 117 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ njets_before_

MonitorElement* EwkMuDQM::njets_before_
private

Definition at line 115 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ nMatchesCut_

int EwkMuDQM::nMatchesCut_
private

Definition at line 58 of file EwkMuDQM.h.

Referenced by analyze().

◆ nmet

unsigned int EwkMuDQM::nmet
private

Definition at line 92 of file EwkMuDQM.h.

Referenced by dqmBeginRun().

◆ nmuons_

MonitorElement* EwkMuDQM::nmuons_
private

Definition at line 162 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ normalizedChi2Cut_

double EwkMuDQM::normalizedChi2Cut_
private

Definition at line 54 of file EwkMuDQM.h.

Referenced by analyze().

◆ npfph_

MonitorElement* EwkMuDQM::npfph_
private

Definition at line 165 of file EwkMuDQM.h.

◆ nph_

MonitorElement* EwkMuDQM::nph_
private

Definition at line 166 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ nPhoMax_

int EwkMuDQM::nPhoMax_
private

Definition at line 83 of file EwkMuDQM.h.

◆ npvs_after_

MonitorElement* EwkMuDQM::npvs_after_
private

Definition at line 155 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ npvs_afterZ_

MonitorElement* EwkMuDQM::npvs_afterZ_
private

Definition at line 156 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ npvs_before_

MonitorElement* EwkMuDQM::npvs_before_
private

Definition at line 154 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ nrec

unsigned int EwkMuDQM::nrec
private

Definition at line 89 of file EwkMuDQM.h.

Referenced by dqmBeginRun().

◆ nsel

unsigned int EwkMuDQM::nsel
private

Definition at line 93 of file EwkMuDQM.h.

Referenced by dqmBeginRun().

◆ nz

unsigned int EwkMuDQM::nz
private

Definition at line 94 of file EwkMuDQM.h.

Referenced by dqmBeginRun().

◆ pfphEta_

MonitorElement* EwkMuDQM::pfphEta_
private

Definition at line 169 of file EwkMuDQM.h.

◆ pfphPt_

MonitorElement* EwkMuDQM::pfphPt_
private

Definition at line 167 of file EwkMuDQM.h.

◆ phEta_

MonitorElement* EwkMuDQM::phEta_
private

Definition at line 170 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ phoTag_

edm::EDGetTokenT<edm::View<reco::Photon> > EwkMuDQM::phoTag_
private

Definition at line 47 of file EwkMuDQM.h.

Referenced by analyze().

◆ phPt_

MonitorElement* EwkMuDQM::phPt_
private

Definition at line 168 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ pixelHitsCut_

int EwkMuDQM::pixelHitsCut_
private

Definition at line 56 of file EwkMuDQM.h.

Referenced by analyze().

◆ pt1_afterZ_

MonitorElement* EwkMuDQM::pt1_afterZ_
private

Definition at line 135 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ pt2_afterZ_

MonitorElement* EwkMuDQM::pt2_afterZ_
private

Definition at line 140 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ pt_after_

MonitorElement* EwkMuDQM::pt_after_
private

Definition at line 97 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ pt_before_

MonitorElement* EwkMuDQM::pt_before_
private

Definition at line 96 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ ptCut_

double EwkMuDQM::ptCut_
private

Definition at line 70 of file EwkMuDQM.h.

Referenced by analyze(), and badGlobalMuonTaggerFWLite.BadGlobalMuonTagger::badMuons().

◆ ptDiffPM_afterZ_

MonitorElement* EwkMuDQM::ptDiffPM_afterZ_
private

Definition at line 132 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ ptDiffPM_before_

MonitorElement* EwkMuDQM::ptDiffPM_before_
private

Definition at line 127 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ ptThrForPhoton_

double EwkMuDQM::ptThrForPhoton_
private

Definition at line 82 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ ptThrForZ1_

double EwkMuDQM::ptThrForZ1_
private

Definition at line 73 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ ptThrForZ2_

double EwkMuDQM::ptThrForZ2_
private

Definition at line 74 of file EwkMuDQM.h.

Referenced by analyze(), and bookHistograms().

◆ trackerHitsCut_

int EwkMuDQM::trackerHitsCut_
private

Definition at line 55 of file EwkMuDQM.h.

Referenced by analyze().

◆ trig_after_

MonitorElement* EwkMuDQM::trig_after_
private

Definition at line 107 of file EwkMuDQM.h.

◆ trig_before_

MonitorElement* EwkMuDQM::trig_before_
private

Definition at line 106 of file EwkMuDQM.h.

◆ trigPathNames_

std::vector<std::string> EwkMuDQM::trigPathNames_
private

Definition at line 50 of file EwkMuDQM.h.

◆ trigTag_

edm::EDGetTokenT<edm::TriggerResults> EwkMuDQM::trigTag_
private

Definition at line 43 of file EwkMuDQM.h.

◆ vertexTag_

edm::EDGetTokenT<edm::View<reco::Vertex> > EwkMuDQM::vertexTag_
private

Definition at line 48 of file EwkMuDQM.h.

Referenced by analyze().

◆ ztrig_afterZ_

MonitorElement* EwkMuDQM::ztrig_afterZ_
private

Definition at line 150 of file EwkMuDQM.h.