CMS 3D CMS Logo

LepHTMonitor.cc
Go to the documentation of this file.
8 
32 
33 #include <limits>
34 #include <algorithm>
35 
36 class LepHTMonitor : public DQMEDAnalyzer, public TriggerDQMBase {
37 public:
40 
42  ~LepHTMonitor() throw() override;
43 
44 protected:
45  void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &, const edm::EventSetup &) override;
46  void analyze(const edm::Event &e, const edm::EventSetup &eSetup) override;
47 
48 private:
50  edm::EDGetTokenT<edm::View<reco::GsfElectron> > theElectronCollection_;
52  edm::EDGetTokenT<edm::ValueMap<bool> > theElectronVIDMap_;
66  edm::EDGetTokenT<reco::BeamSpot> theBeamSpot_;
67 
71 
73 
76 
78 
79  double jetPtCut_;
80  double jetEtaCut_;
81  double metCut_;
82  double htCut_;
83  double nmusCut_;
84  double nelsCut_;
87  double lep_iso_cut_;
88  double lep_eta_cut_;
89  double lep_d0_cut_b_;
90  double lep_dz_cut_b_;
91  double lep_d0_cut_e_;
92  double lep_dz_cut_e_;
93 
94  std::vector<double> ptbins_;
95  std::vector<double> htbins_;
99  float etabins_min_;
105 
106  // Histograms
119 };
120 
121 namespace {
122 
123  //Offline electron definition
124  bool isGood(const reco::GsfElectron &el,
125  const reco::Vertex::Point &pv_position,
126  const reco::BeamSpot::Point &bs_position,
128  bool pass_id,
129  const double lep_counting_threshold,
130  const double lep_iso_cut,
131  const double lep_eta_cut,
132  const double d0_cut_b,
133  const double dz_cut_b,
134  const double d0_cut_e,
135  const double dz_cut_e) {
136  //Electron ID
137  if (!pass_id)
138  return false;
139 
140  //pT
141  if (el.pt() < lep_counting_threshold || std::abs(el.superCluster()->eta()) > lep_eta_cut)
142  return false;
143 
144  //Isolation
145  auto const &iso = el.pfIsolationVariables();
146  const float absiso =
147  iso.sumChargedHadronPt + std::max(0.0, iso.sumNeutralHadronEt + iso.sumPhotonEt - 0.5 * iso.sumPUPt);
148  const float relisowithdb = absiso / el.pt();
149  if (relisowithdb > lep_iso_cut)
150  return false;
151 
152  //Conversion matching
153  bool pass_conversion = false;
154  if (convs.isValid()) {
155  pass_conversion = !ConversionTools::hasMatchedConversion(el, *convs, bs_position);
156  } else {
157  edm::LogError("LepHTMonitor") << "Electron conversion matching failed.\n";
158  }
159  if (!pass_conversion)
160  return false;
161 
162  //Impact parameter
163  float d0 = 999., dz = 999.;
164  if (el.gsfTrack().isNonnull()) {
165  d0 = -(el.gsfTrack()->dxy(pv_position));
166  dz = el.gsfTrack()->dz(pv_position);
167  } else {
168  edm::LogError("LepHTMonitor") << "Could not read electron.gsfTrack().\n";
169  return false;
170  }
171  float etasc = el.superCluster()->eta();
172  if (std::abs(etasc) > 1.479) { //Endcap
173  if (std::abs(d0) > d0_cut_e || std::abs(dz) > dz_cut_e)
174  return false;
175 
176  } else { //Barrel
177  if (std::abs(d0) > d0_cut_b || std::abs(dz) > dz_cut_b)
178  return false;
179  }
180 
181  return true;
182  }
183 
184  //Offline muon definition
185  bool isGood(const reco::Muon &mu,
186  const reco::Vertex &pv,
187  const double lep_counting_threshold,
188  const double lep_iso_cut,
189  const double lep_eta_cut,
190  const double d0_cut,
191  const double dz_cut,
192  int muonIDlevel) {
193  const reco::Vertex::Point &pv_position = pv.position();
194 
195  // Muon pt and eta acceptance
196  if (mu.pt() < lep_counting_threshold || std::abs(mu.eta()) > lep_eta_cut)
197  return false;
198 
199  // Muon isolation
200  auto const &iso = mu.pfIsolationR04();
201  const float absiso =
202  iso.sumChargedHadronPt + std::max(0.0, iso.sumNeutralHadronEt + iso.sumPhotonEt - 0.5 * iso.sumPUPt);
203  const float relisowithdb = absiso / mu.pt();
204  if (relisowithdb > lep_iso_cut)
205  return false;
206 
207  // Muon ID
208  bool pass_id = false;
209  if (muonIDlevel == 1)
210  pass_id = muon::isLooseMuon(mu);
211  else if (muonIDlevel == 3)
212  pass_id = muon::isTightMuon(mu, pv);
213  else
214  pass_id = muon::isMediumMuon(mu);
215 
216  if (!pass_id)
217  return false;
218 
219  // Muon impact parameter
220  float d0 = std::abs(mu.muonBestTrack()->dxy(pv_position));
221  float dz = std::abs(mu.muonBestTrack()->dz(pv_position));
222  if (d0 > d0_cut || dz > dz_cut)
223  return false;
224 
225  return true;
226  }
227 } // namespace
228 
230  : theElectronTag_(ps.getParameter<edm::InputTag>("electronCollection")),
231  theElectronCollection_(consumes<edm::View<reco::GsfElectron> >(theElectronTag_)),
232  theElectronVIDTag_(ps.getParameter<edm::InputTag>("electronVID")),
233  theElectronVIDMap_(consumes<edm::ValueMap<bool> >(theElectronVIDTag_)),
234  theMuonTag_(ps.getParameter<edm::InputTag>("muonCollection")),
236  thePfMETTag_(ps.getParameter<edm::InputTag>("pfMetCollection")),
238  thePfJetTag_(ps.getParameter<edm::InputTag>("pfJetCollection")),
240  theJetTagTag_(ps.getParameter<edm::InputTag>("jetTagCollection")),
242  theVertexCollectionTag_(ps.getParameter<edm::InputTag>("vertexCollection")),
244  theConversionCollectionTag_(ps.getParameter<edm::InputTag>("conversionCollection")),
246  theBeamSpotTag_(ps.getParameter<edm::InputTag>("beamSpot")),
248 
250  ps.getParameter<edm::ParameterSet>("numGenericTriggerEventPSet"), consumesCollector(), *this)),
252  ps.getParameter<edm::ParameterSet>("den_lep_GenericTriggerEventPSet"), consumesCollector(), *this)),
254  ps.getParameter<edm::ParameterSet>("den_HT_GenericTriggerEventPSet"), consumesCollector(), *this)),
255 
256  folderName_(ps.getParameter<std::string>("folderName")),
257  requireValidHLTPaths_(ps.getParameter<bool>("requireValidHLTPaths")),
259 
260  muonIDlevel_(ps.getUntrackedParameter<int>("muonIDlevel")),
261  jetPtCut_(ps.getUntrackedParameter<double>("jetPtCut")),
262  jetEtaCut_(ps.getUntrackedParameter<double>("jetEtaCut")),
263  metCut_(ps.getUntrackedParameter<double>("metCut")),
264  htCut_(ps.getUntrackedParameter<double>("htCut")),
265 
266  nmusCut_(ps.getUntrackedParameter<double>("nmus")),
267  nelsCut_(ps.getUntrackedParameter<double>("nels")),
268  lep_pt_plateau_(ps.getUntrackedParameter<double>("leptonPtPlateau")),
269  lep_counting_threshold_(ps.getUntrackedParameter<double>("leptonCountingThreshold")),
270  lep_iso_cut_(ps.getUntrackedParameter<double>("lepIsoCut")),
271  lep_eta_cut_(ps.getUntrackedParameter<double>("lepEtaCut")),
272  lep_d0_cut_b_(ps.getUntrackedParameter<double>("lep_d0_cut_b")),
273  lep_dz_cut_b_(ps.getUntrackedParameter<double>("lep_dz_cut_b")),
274  lep_d0_cut_e_(ps.getUntrackedParameter<double>("lep_d0_cut_e")),
275  lep_dz_cut_e_(ps.getUntrackedParameter<double>("lep_dz_cut_e")),
276  ptbins_(ps.getParameter<std::vector<double> >("ptbins")),
277  htbins_(ps.getParameter<std::vector<double> >("htbins")),
278 
279  nbins_eta_(ps.getUntrackedParameter<int>("nbins_eta")),
280  nbins_phi_(ps.getUntrackedParameter<int>("nbins_phi")),
281  nbins_npv_(ps.getUntrackedParameter<int>("nbins_npv")),
282  etabins_min_(ps.getUntrackedParameter<double>("etabins_min")),
283  etabins_max_(ps.getUntrackedParameter<double>("etabins_max")),
284  phibins_min_(ps.getUntrackedParameter<double>("phibins_min")),
285  phibins_max_(ps.getUntrackedParameter<double>("phibins_max")),
286  npvbins_min_(ps.getUntrackedParameter<double>("npvbins_min")),
287  npvbins_max_(ps.getUntrackedParameter<double>("npvbins_max")),
288 
289  h_pfHTTurnOn_num_(nullptr),
290  h_pfHTTurnOn_den_(nullptr),
291  h_lepPtTurnOn_num_(nullptr),
292  h_lepPtTurnOn_den_(nullptr),
293  h_lepEtaTurnOn_num_(nullptr),
294  h_lepEtaTurnOn_den_(nullptr),
295  h_lepPhiTurnOn_num_(nullptr),
296  h_lepPhiTurnOn_den_(nullptr),
297  h_NPVTurnOn_num_(nullptr),
298  h_NPVTurnOn_den_(nullptr) {
299  edm::LogInfo("LepHTMonitor") << "Constructor LepHTMonitor::LepHTMonitor\n";
300 }
301 
304  num_genTriggerEventFlag_.reset();
305  }
308  }
311  }
312 }
313 
314 void LepHTMonitor::bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &iRun, const edm::EventSetup &iSetup) {
315  // Initialize trigger flags
317  num_genTriggerEventFlag_->initRun(iRun, iSetup);
318  }
320  den_lep_genTriggerEventFlag_->initRun(iRun, iSetup);
321  }
323  den_HT_genTriggerEventFlag_->initRun(iRun, iSetup);
324  }
325 
326  // check if every HLT path specified in numerator and denominator has a valid match in the HLT Menu
328  num_genTriggerEventFlag_->allHLTPathsAreValid()) &&
330  den_lep_genTriggerEventFlag_->allHLTPathsAreValid()) ||
332  den_HT_genTriggerEventFlag_->allHLTPathsAreValid())));
333 
334  // if valid HLT paths are required,
335  // create DQM outputs only if all paths are valid
337  return;
338  }
339 
340  // book at beginRun
341  ibooker.cd();
342  ibooker.setCurrentFolder("HLT/SUSY/LepHT/" + folderName_);
343 
344  bool is_mu = false;
345  bool is_ele = false;
346  if (theElectronTag_.label().empty() and not theMuonTag_.label().empty()) {
347  is_mu = true;
348  } else if (not theElectronTag_.label().empty() and theMuonTag_.label().empty()) {
349  is_ele = true;
350  }
351 
352  // Cosmetic axis names
353  std::string lepton = "lepton", Lepton = "Lepton";
354  if (is_mu && !is_ele) {
355  lepton = "muon";
356  Lepton = "Muon";
357  } else if (is_ele && !is_mu) {
358  lepton = "electron";
359  Lepton = "Electron";
360  }
361 
362  //Convert to vfloat for picky TH1F constructor
363  vector<float> f_ptbins;
364  for (double ptbin : ptbins_)
365  f_ptbins.push_back(static_cast<float>(ptbin));
366  vector<float> f_htbins;
367  for (double htbin : htbins_)
368  f_htbins.push_back(static_cast<float>(htbin));
369 
370  //num and den hists to be divided in harvesting step to make turn on curves
372  ibooker.book1D("pfHTTurnOn_num", "Numerator;Offline H_{T} [GeV];", f_htbins.size() - 1, f_htbins.data());
374  ibooker.book1D("pfHTTurnOn_den", "Denominator;Offline H_{T} [GeV];", f_htbins.size() - 1, f_htbins.data());
375 
376  h_lepPtTurnOn_num_ = ibooker.book1D("lepPtTurnOn_num",
377  ("Numerator;Offline " + lepton + " p_{T} [GeV];").c_str(),
378  f_ptbins.size() - 1,
379  f_ptbins.data());
380  h_lepPtTurnOn_den_ = ibooker.book1D("lepPtTurnOn_den",
381  ("Denominator;Offline " + lepton + " p_{T} [GeV];").c_str(),
382  f_ptbins.size() - 1,
383  f_ptbins.data());
385  ibooker.book1D("lepEtaTurnOn_num", "Numerator;Offline lepton #eta;", nbins_eta_, etabins_min_, etabins_max_);
387  ibooker.book1D("lepEtaTurnOn_den", "Denominator;Offline lepton #eta;", nbins_eta_, etabins_min_, etabins_max_);
389  ibooker.book1D("lepPhiTurnOn_num", "Numerator;Offline lepton #phi;", nbins_phi_, phibins_min_, phibins_max_);
391  ibooker.book1D("lepPhiTurnOn_den", "Denominator;Offline lepton #phi;", nbins_phi_, phibins_min_, phibins_max_);
392 
393  h_lepEtaPhiTurnOn_num_ = ibooker.book2D("lepEtaPhiTurnOn_num",
394  "Numerator;Offline lepton #eta;Offline lepton #phi;",
395  nbins_eta_ / 2,
396  etabins_min_,
397  etabins_max_,
398  nbins_phi_ / 2,
399  phibins_min_,
400  phibins_max_);
401  h_lepEtaPhiTurnOn_den_ = ibooker.book2D("lepEtaPhiTurnOn_den",
402  "Denominator;Offline lepton #eta;Offline lepton #phi;",
403  nbins_eta_ / 2,
404  etabins_min_,
405  etabins_max_,
406  nbins_phi_ / 2,
407  phibins_min_,
408  phibins_max_);
409 
410  h_NPVTurnOn_num_ = ibooker.book1D("NPVTurnOn_num", "Numerator;N_{PV};", nbins_npv_, npvbins_min_, npvbins_max_);
411  h_NPVTurnOn_den_ = ibooker.book1D("NPVTurnOn_den", "Denominator;N_{PV};", nbins_npv_, npvbins_min_, npvbins_max_);
412 
413  ibooker.cd();
414 }
415 
416 void LepHTMonitor::analyze(const edm::Event &e, const edm::EventSetup &eSetup) {
417  // if valid HLT paths are required,
418  // analyze event only if all paths are valid
420  return;
421  }
422 
423  // Find whether main and auxilliary triggers fired
424  bool hasFired = false;
425  bool hasFiredAuxiliary = false;
426  bool hasFiredLeptonAuxiliary = false;
427  if (den_lep_genTriggerEventFlag_->on() && den_lep_genTriggerEventFlag_->accept(e, eSetup))
428  hasFiredLeptonAuxiliary = true;
429  if (den_HT_genTriggerEventFlag_->on() && den_HT_genTriggerEventFlag_->accept(e, eSetup))
430  hasFiredAuxiliary = true;
431  if (num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(e, eSetup))
432  hasFired = true;
433 
434  if (!(hasFiredAuxiliary || hasFiredLeptonAuxiliary))
435  return;
436  int npv = 0;
437  //Vertex
439  if (not theVertexCollectionTag_.label().empty()) {
441  if (!VertexCollection.isValid()) {
442  edm::LogWarning("LepHTMonitor") << "Invalid VertexCollection: " << theVertexCollectionTag_.label() << '\n';
443  } else
444  npv = VertexCollection->size();
445  }
446 
447  //Get electron ID map
448  edm::Handle<edm::ValueMap<bool> > ele_id_decisions;
449  if (not theElectronVIDTag_.label().empty()) {
450  e.getByToken(theElectronVIDMap_, ele_id_decisions);
451  if (!ele_id_decisions.isValid()) {
452  edm::LogWarning("LepHTMonitor") << "Invalid Electron VID map: " << theElectronVIDTag_.label() << '\n';
453  }
454  }
455 
456  //Conversions
458  if (not theConversionCollectionTag_.label().empty()) {
460  if (!ConversionCollection.isValid()) {
461  edm::LogWarning("LepHTMonitor") << "Invalid ConversionCollection: " << theConversionCollectionTag_.label()
462  << '\n';
463  }
464  }
465 
466  //Beam Spot
468  if (not theBeamSpotTag_.label().empty()) {
469  e.getByToken(theBeamSpot_, BeamSpot);
470  if (!BeamSpot.isValid()) {
471  edm::LogWarning("LepHTMonitor") << "Invalid BeamSpot: " << theBeamSpotTag_.label() << '\n';
472  }
473  }
474 
475  //MET
477  if (not thePfMETTag_.label().empty()) {
479  if (!pfMETCollection.isValid()) {
480  edm::LogWarning("LepHTMonitor") << "Invalid PFMETCollection: " << thePfMETTag_.label() << '\n';
481  }
482  }
483 
484  //Jets
486  if (not thePfJetTag_.label().empty()) {
488  if (!pfJetCollection.isValid()) {
489  edm::LogWarning("LepHTMonitor") << "Invalid PFJetCollection: " << thePfJetTag_.label() << '\n';
490  }
491  }
492 
493  //Electron
495  if (not theElectronTag_.label().empty()) {
497  if (!ElectronCollection.isValid()) {
498  edm::LogWarning("LepHTMonitor") << "Invalid GsfElectronCollection: " << theElectronTag_.label() << '\n';
499  }
500  }
501 
502  //Muon
504  if (not theMuonTag_.label().empty()) {
505  e.getByToken(theMuonCollection_, MuonCollection);
506  if (!MuonCollection.isValid()) {
507  edm::LogWarning("LepHTMonitor") << "Invalid MuonCollection: " << theMuonTag_.label() << '\n';
508  }
509  }
510 
511  //Get offline HT
512  double pfHT = -1.0;
513  if (pfJetCollection.isValid()) {
514  pfHT = 0.0;
515  for (auto const &pfjet : *pfJetCollection) {
516  if (pfjet.pt() < jetPtCut_)
517  continue;
518  if (std::abs(pfjet.eta()) > jetEtaCut_)
519  continue;
520  pfHT += pfjet.pt();
521  }
522  }
523 
524  //Get offline MET
525  double pfMET = -1.0;
526  if (pfMETCollection.isValid() && !pfMETCollection->empty()) {
527  pfMET = pfMETCollection->front().et();
528  }
529 
530  //Find offline leptons and keep track of pt,eta of leading and trailing leptons
531  double lep_max_pt = -1.0;
532  double lep_eta = 0;
533  double lep_phi = 0;
534  double trailing_ele_eta = 0;
535  double trailing_ele_phi = 0;
536  double trailing_mu_eta = 0;
537  double trailing_mu_phi = 0;
538  double min_ele_pt = -1.0;
539  double min_mu_pt = -1.0;
540  int nels = 0;
541  int nmus = 0;
542  if (VertexCollection.isValid() && !VertexCollection->empty()) { //for quality checks
543  //Try to find a reco electron
544  if (ElectronCollection.isValid() && ConversionCollection.isValid() && BeamSpot.isValid() &&
545  ele_id_decisions.isValid()) {
546  size_t index = 0;
547  for (auto const &electron : *ElectronCollection) {
548  const auto el = ElectronCollection->ptrAt(index);
549  bool pass_id = (*ele_id_decisions)[el];
550  if (isGood(electron,
551  VertexCollection->front().position(),
552  BeamSpot->position(),
554  pass_id,
556  lep_iso_cut_,
557  lep_eta_cut_,
561  lep_dz_cut_e_)) {
562  if (electron.pt() > lep_max_pt) {
563  lep_max_pt = electron.pt();
564  lep_eta = electron.eta();
565  lep_phi = electron.phi();
566  }
567  if (electron.pt() < min_ele_pt || min_ele_pt < 0) {
568  min_ele_pt = electron.pt();
569  trailing_ele_eta = electron.eta();
570  trailing_ele_phi = electron.phi();
571  }
572  nels++;
573  }
574  index++;
575  }
576  }
577 
578  //Try to find a reco muon
579  if (MuonCollection.isValid()) {
580  for (auto const &muon : *MuonCollection) {
581  if (isGood(muon,
582  VertexCollection->front(),
584  lep_iso_cut_,
585  lep_eta_cut_,
588  muonIDlevel_)) {
589  if (muon.pt() > lep_max_pt) {
590  lep_max_pt = muon.pt();
591  lep_eta = muon.eta();
592  lep_phi = muon.phi();
593  }
594  if (muon.pt() < min_mu_pt || min_mu_pt < 0) {
595  min_mu_pt = muon.pt();
596  trailing_mu_eta = muon.eta();
597  trailing_mu_phi = muon.phi();
598  }
599  nmus++;
600  }
601  }
602  }
603  }
604 
605  //Fill single lepton triggers with leading lepton pT
606  float lep_pt = lep_max_pt;
607 
608  //For dilepton triggers, use trailing rather than leading lepton
609  if (nmusCut_ >= 2) {
610  lep_pt = min_mu_pt;
611  lep_eta = trailing_mu_eta;
612  lep_phi = trailing_mu_phi;
613  }
614  if (nelsCut_ >= 2) {
615  lep_pt = min_ele_pt;
616  lep_eta = trailing_ele_eta;
617  lep_phi = trailing_ele_phi;
618  }
619  if (nelsCut_ >= 1 && nmusCut_ >= 1) {
620  if (min_ele_pt < min_mu_pt) {
621  lep_pt = min_ele_pt;
622  lep_eta = trailing_ele_eta;
623  lep_phi = trailing_ele_phi;
624  } else {
625  lep_pt = min_mu_pt;
626  lep_eta = trailing_mu_eta;
627  lep_phi = trailing_mu_phi;
628  }
629  }
630 
631  const bool nleps_cut = nels >= nelsCut_ && nmus >= nmusCut_;
632  bool lep_plateau = lep_pt > lep_pt_plateau_ || lep_pt_plateau_ < 0.0;
633 
634  //Fill lepton pT and eta histograms
635  if (hasFiredLeptonAuxiliary || !e.isRealData()) {
636  if (nleps_cut && (pfMET > metCut_ || metCut_ < 0.0) && (pfHT > htCut_ || htCut_ < 0.0)) {
637  if (h_lepPtTurnOn_den_) {
638  if (lep_pt > ptbins_.back())
639  lep_pt = ptbins_.back() - 1; //Overflow protection
640  h_lepPtTurnOn_den_->Fill(lep_pt);
641  }
642  if (h_lepPtTurnOn_num_ && hasFired)
643  h_lepPtTurnOn_num_->Fill(lep_pt);
644 
645  if (lep_plateau) {
646  //Fill Eta and Phi histograms for leptons above pT threshold
648  h_lepEtaTurnOn_den_->Fill(lep_eta);
649  if (h_lepEtaTurnOn_num_ && hasFired)
650  h_lepEtaTurnOn_num_->Fill(lep_eta);
652  h_lepPhiTurnOn_den_->Fill(lep_phi);
653  if (h_lepPhiTurnOn_num_ && hasFired)
654  h_lepPhiTurnOn_num_->Fill(lep_phi);
656  h_lepEtaPhiTurnOn_den_->Fill(lep_eta, lep_phi);
657  if (h_lepEtaPhiTurnOn_num_ && hasFired)
658  h_lepEtaPhiTurnOn_num_->Fill(lep_eta, lep_phi);
659 
660  //Fill NPV histograms
661  if (h_NPVTurnOn_den_)
662  h_NPVTurnOn_den_->Fill(npv);
663  if (h_NPVTurnOn_num_ && hasFired)
664  h_NPVTurnOn_num_->Fill(npv);
665  }
666  }
667  }
668 
669  //Fill HT turn-on histograms
670  if (hasFiredAuxiliary || !e.isRealData()) {
671  if (nleps_cut && lep_plateau) {
672  if (h_pfHTTurnOn_den_) {
673  if (pfHT > htbins_.back())
674  pfHT = htbins_.back() - 1; //Overflow protection
675  h_pfHTTurnOn_den_->Fill(pfHT);
676  }
677  if (h_pfHTTurnOn_num_ && hasFired)
678  h_pfHTTurnOn_num_->Fill(pfHT);
679  }
680  }
681 }
682 
LepHTMonitor::nbins_phi_
int nbins_phi_
Definition: LepHTMonitor.cc:97
LepHTMonitor::npvbins_min_
float npvbins_min_
Definition: LepHTMonitor.cc:103
dqm::impl::MonitorElement
Definition: MonitorElement.h:98
JetTag.h
electrons_cff.bool
bool
Definition: electrons_cff.py:372
LepHTMonitor::DQMStore
dqm::reco::DQMStore DQMStore
Definition: LepHTMonitor.cc:39
Muon.h
reco::GsfElectron::gsfTrack
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
Definition: GsfElectron.h:164
MessageLogger.h
LepHTMonitor::theJetTagCollection_
edm::EDGetTokenT< reco::JetTagCollection > theJetTagCollection_
Definition: LepHTMonitor.cc:60
funct::false
false
Definition: Factorize.h:34
LepHTMonitor_cff.nmus
nmus
Definition: LepHTMonitor_cff.py:29
LepHTMonitor::npvbins_max_
float npvbins_max_
Definition: LepHTMonitor.cc:104
LepHTMonitor::nbins_eta_
int nbins_eta_
Definition: LepHTMonitor.cc:96
Lepton
Definition: Lepton.py:1
align::BeamSpot
Definition: StructureType.h:89
TriggerResults.h
ConversionTools.h
sistrip::View
View
Definition: ConstantsForView.h:26
LepHTMonitor::analyze
void analyze(const edm::Event &e, const edm::EventSetup &eSetup) override
Definition: LepHTMonitor.cc:416
muon
Definition: MuonCocktails.h:17
amptDefaultParameters_cff.mu
mu
Definition: amptDefaultParameters_cff.py:16
edm::Run
Definition: Run.h:45
TriggerEvent.h
edm
HLT enums.
Definition: AlignableModifier.h:19
LepHTMonitor::jetPtCut_
double jetPtCut_
Definition: LepHTMonitor.cc:79
PFMETCollection
Collection of PF MET.
LepHTMonitor::h_NPVTurnOn_num_
MonitorElement * h_NPVTurnOn_num_
Definition: LepHTMonitor.cc:117
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
PFJet.h
edm::LogInfo
Definition: MessageLogger.h:254
LepHTMonitor::~LepHTMonitor
~LepHTMonitor() override
Definition: LepHTMonitor.cc:302
LepHTMonitor::lep_d0_cut_e_
double lep_d0_cut_e_
Definition: LepHTMonitor.cc:91
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
TriggerEventWithRefs.h
DQMStore.h
LepHTMonitor::h_pfHTTurnOn_den_
MonitorElement * h_pfHTTurnOn_den_
Definition: LepHTMonitor.cc:108
PFMETCollection.h
reco::LeafCandidate::pt
double pt() const final
transverse momentum
Definition: LeafCandidate.h:146
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
LepHTMonitor::folderName_
const std::string folderName_
Definition: LepHTMonitor.cc:72
ConversionFwd.h
LepHTMonitor::h_NPVTurnOn_den_
MonitorElement * h_NPVTurnOn_den_
Definition: LepHTMonitor.cc:118
LepHTMonitor::den_HT_genTriggerEventFlag_
std::unique_ptr< GenericTriggerEventFlag > den_HT_genTriggerEventFlag_
Definition: LepHTMonitor.cc:70
watchdog.const
const
Definition: watchdog.py:83
edm::Handle< reco::ConversionCollection >
LepHTMonitor::etabins_min_
float etabins_min_
Definition: LepHTMonitor.cc:99
LepHTMonitor::hltPathsAreValid_
bool hltPathsAreValid_
Definition: LepHTMonitor.cc:75
LepHTMonitor::thePfJetTag_
edm::InputTag thePfJetTag_
Definition: LepHTMonitor.cc:57
LepHTMonitor::ptbins_
std::vector< double > ptbins_
Definition: LepHTMonitor.cc:94
LepHTMonitor::num_genTriggerEventFlag_
std::unique_ptr< GenericTriggerEventFlag > num_genTriggerEventFlag_
Definition: LepHTMonitor.cc:68
LepHTMonitor::nbins_npv_
int nbins_npv_
Definition: LepHTMonitor.cc:98
reco::Muon
Definition: Muon.h:27
reco::ConversionCollection
std::vector< Conversion > ConversionCollection
collectin of Conversion objects
Definition: ConversionFwd.h:9
LepHTMonitor_cff.muonIDlevel
muonIDlevel
Definition: LepHTMonitor_cff.py:12
LepHTMonitor::h_lepPtTurnOn_num_
MonitorElement * h_lepPtTurnOn_num_
Definition: LepHTMonitor.cc:109
LepHTMonitor::lep_d0_cut_b_
double lep_d0_cut_b_
Definition: LepHTMonitor.cc:89
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
LepHTMonitor::phibins_min_
float phibins_min_
Definition: LepHTMonitor.cc:101
MakerMacros.h
LepHTMonitor::lep_dz_cut_e_
double lep_dz_cut_e_
Definition: LepHTMonitor.cc:92
muon::isLooseMuon
bool isLooseMuon(const reco::Muon &)
Definition: MuonSelectors.cc:910
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
dqm::legacy::DQMStore
Definition: DQMStore.h:727
LepHTMonitor::h_lepEtaPhiTurnOn_num_
MonitorElement * h_lepEtaPhiTurnOn_num_
Definition: LepHTMonitor.cc:115
BeamSpot.h
LepHTMonitor::nelsCut_
double nelsCut_
Definition: LepHTMonitor.cc:84
LepHTMonitor::LepHTMonitor
LepHTMonitor(const edm::ParameterSet &ps)
Definition: LepHTMonitor.cc:229
LepHTMonitor::bookHistograms
void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &, const edm::EventSetup &) override
Definition: LepHTMonitor.cc:314
LepHTMonitor::theVertexCollectionTag_
edm::InputTag theVertexCollectionTag_
Definition: LepHTMonitor.cc:61
LepHTMonitor::lep_eta_cut_
double lep_eta_cut_
Definition: LepHTMonitor.cc:88
MuonSelectors.h
LepHTMonitor::lep_pt_plateau_
double lep_pt_plateau_
Definition: LepHTMonitor.cc:85
TriggerDQMBase.h
GenericTriggerEventFlag.h
MuonFwd.h
LepHTMonitor::theBeamSpot_
edm::EDGetTokenT< reco::BeamSpot > theBeamSpot_
Definition: LepHTMonitor.cc:66
ExoticaDQM_cfi.pfJetCollection
pfJetCollection
Definition: ExoticaDQM_cfi.py:19
reco::MuonCollection
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
LepHTMonitor::theVertexCollection_
edm::EDGetTokenT< reco::VertexCollection > theVertexCollection_
Definition: LepHTMonitor.cc:62
LepHTMonitor::nmusCut_
double nmusCut_
Definition: LepHTMonitor.cc:83
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
ConversionTools::hasMatchedConversion
static bool hasMatchedConversion(const reco::GsfElectron &ele, const reco::ConversionCollection &convCol, const math::XYZPoint &beamspot, bool allowCkfMatch=true, float lxyMin=2.0, float probMin=1e-6, unsigned int nHitsBeforeVtxMax=0)
Definition: ConversionTools.cc:184
dqm::implementation::NavigatorBase::cd
virtual void cd()
Definition: DQMStore.cc:29
LepHTMonitor::theMuonCollection_
edm::EDGetTokenT< reco::MuonCollection > theMuonCollection_
Definition: LepHTMonitor.cc:54
Event
reco::GsfElectron
Definition: GsfElectron.h:35
GsfElectron.h
TriggerDQMBase
Definition: TriggerDQMBase.h:8
LepHTMonitor::thePfMETCollection_
edm::EDGetTokenT< reco::PFMETCollection > thePfMETCollection_
Definition: LepHTMonitor.cc:56
DQMEDAnalyzer.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Vertex.h
edm::LogWarning
Definition: MessageLogger.h:141
DQMEDAnalyzer
Definition: DQMEDAnalyzer.py:1
LepHTMonitor::den_lep_genTriggerEventFlag_
std::unique_ptr< GenericTriggerEventFlag > den_lep_genTriggerEventFlag_
Definition: LepHTMonitor.cc:69
LepHTMonitor::theElectronTag_
edm::InputTag theElectronTag_
Definition: LepHTMonitor.cc:49
METCollection.h
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
LepHTMonitor::h_lepPhiTurnOn_den_
MonitorElement * h_lepPhiTurnOn_den_
Definition: LepHTMonitor.cc:114
LepHTMonitor::jetEtaCut_
double jetEtaCut_
Definition: LepHTMonitor.cc:80
edm::ParameterSet
Definition: ParameterSet.h:36
edm::LogError
Definition: MessageLogger.h:183
LepHTMonitor::htCut_
double htCut_
Definition: LepHTMonitor.cc:82
LepHTMonitor::lep_iso_cut_
double lep_iso_cut_
Definition: LepHTMonitor.cc:87
LepHTMonitor::theConversionCollection_
edm::EDGetTokenT< reco::ConversionCollection > theConversionCollection_
Definition: LepHTMonitor.cc:64
ParameterSet
Definition: Functions.h:16
GenericTriggerEventFlag
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
Definition: GenericTriggerEventFlag.h:42
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
LepHTMonitor::h_pfHTTurnOn_num_
MonitorElement * h_pfHTTurnOn_num_
Definition: LepHTMonitor.cc:107
muon::isTightMuon
bool isTightMuon(const reco::Muon &, const reco::Vertex &)
Definition: MuonSelectors.cc:895
edm::Ref::isNonnull
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
PFMET.h
createfilelist.int
int
Definition: createfilelist.py:10
LepHTMonitor::metCut_
double metCut_
Definition: LepHTMonitor.cc:81
MetAnalyzer.pv
def pv(vc)
Definition: MetAnalyzer.py:7
LepHTMonitor::lep_counting_threshold_
double lep_counting_threshold_
Definition: LepHTMonitor.cc:86
LepHTMonitor::theMuonTag_
edm::InputTag theMuonTag_
Definition: LepHTMonitor.cc:53
reco::JetTagCollection
JetFloatAssociation::Container JetTagCollection
Definition: JetTag.h:17
LepHTMonitor::h_lepEtaTurnOn_den_
MonitorElement * h_lepEtaTurnOn_den_
Definition: LepHTMonitor.cc:112
LepHTMonitor::thePfJetCollection_
edm::EDGetTokenT< reco::PFJetCollection > thePfJetCollection_
Definition: LepHTMonitor.cc:58
LepHTMonitor::phibins_max_
float phibins_max_
Definition: LepHTMonitor.cc:102
edm::EventSetup
Definition: EventSetup.h:57
LepHTMonitor::h_lepPtTurnOn_den_
MonitorElement * h_lepPtTurnOn_den_
Definition: LepHTMonitor.cc:110
muon::isMediumMuon
bool isMediumMuon(const reco::Muon &, bool run2016_hip_mitigation=false)
Definition: MuonSelectors.cc:914
LepHTMonitor::thePfMETTag_
edm::InputTag thePfMETTag_
Definition: LepHTMonitor.cc:55
HPSPFTauProducerPuppi_cfi.electron
electron
Definition: HPSPFTauProducerPuppi_cfi.py:13
TriggerObject.h
reco::ElectronCollection
std::vector< Electron > ElectronCollection
collectin of Electron objects
Definition: ElectronFwd.h:9
ValueMap.h
cms::cuda::device::unique_ptr
std::unique_ptr< T, impl::DeviceDeleter > unique_ptr
Definition: device_unique_ptr.h:33
VertexFwd.h
LepHTMonitor::lep_dz_cut_b_
double lep_dz_cut_b_
Definition: LepHTMonitor.cc:90
MET.h
LepHTMonitor::MonitorElement
dqm::reco::MonitorElement MonitorElement
Definition: LepHTMonitor.cc:38
Electron.h
reco::Vertex::Point
math::XYZPoint Point
point in the space
Definition: Vertex.h:40
std
Definition: JetResolutionObject.h:76
B2GDQM_cfi.pfMETCollection
pfMETCollection
Definition: B2GDQM_cfi.py:27
LepHTMonitor::theJetTagTag_
edm::InputTag theJetTagTag_
Definition: LepHTMonitor.cc:59
reco::PFJetCollection
std::vector< PFJet > PFJetCollection
collection of PFJet objects
Definition: PFJetCollection.h:14
LepHTMonitor_cff.nels
nels
1: loose, 2: medium, 3: tight
Definition: LepHTMonitor_cff.py:28
PVValHelper::dz
Definition: PVValidationHelpers.h:50
Frameworkfwd.h
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
LepHTMonitor::htbins_
std::vector< double > htbins_
Definition: LepHTMonitor.cc:95
LepHTMonitor::theElectronCollection_
edm::EDGetTokenT< edm::View< reco::GsfElectron > > theElectronCollection_
Definition: LepHTMonitor.cc:50
LepHTMonitor::h_lepEtaTurnOn_num_
MonitorElement * h_lepEtaTurnOn_num_
Definition: LepHTMonitor.cc:111
reco::GsfElectron::superCluster
SuperClusterRef superCluster() const override
reference to a SuperCluster
Definition: GsfElectron.h:163
dqm::implementation::IBooker
Definition: DQMStore.h:43
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
ALCARECOPromptCalibProdSiPixelAli0T_cff.throw
throw
Definition: ALCARECOPromptCalibProdSiPixelAli0T_cff.py:9
LepHTMonitor::h_lepEtaPhiTurnOn_den_
MonitorElement * h_lepEtaPhiTurnOn_den_
Definition: LepHTMonitor.cc:116
LepHTMonitor::theBeamSpotTag_
edm::InputTag theBeamSpotTag_
Definition: LepHTMonitor.cc:65
LepHTMonitor::h_lepPhiTurnOn_num_
MonitorElement * h_lepPhiTurnOn_num_
Definition: LepHTMonitor.cc:113
reco::BeamSpot::Point
math::XYZPoint Point
point in the space
Definition: BeamSpot.h:27
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LepHTMonitor::theElectronVIDTag_
edm::InputTag theElectronVIDTag_
Definition: LepHTMonitor.cc:51
reco::GsfElectron::pfIsolationVariables
const PflowIsolationVariables & pfIsolationVariables() const
Definition: GsfElectron.h:658
EventSetup
LepHTMonitor::etabins_max_
float etabins_max_
Definition: LepHTMonitor.cc:100
LepHTMonitor::theConversionCollectionTag_
edm::InputTag theConversionCollectionTag_
Definition: LepHTMonitor.cc:63
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
LepHTMonitor
Definition: LepHTMonitor.cc:36
edm::Event
Definition: Event.h:73
d0
static constexpr float d0
Definition: L1EGammaCrystalsEmulatorProducer.cc:85
LepHTMonitor::muonIDlevel_
int muonIDlevel_
Definition: LepHTMonitor.cc:77
reco::Vertex
Definition: Vertex.h:35
reco::GsfElectron::PflowIsolationVariables::sumChargedHadronPt
float sumChargedHadronPt
sum-pt of charged Hadron // old float chargedHadronIso ;
Definition: GsfElectron.h:608
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
LepHTMonitor::theElectronVIDMap_
edm::EDGetTokenT< edm::ValueMap< bool > > theElectronVIDMap_
Definition: LepHTMonitor.cc:52
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
LepHTMonitor::requireValidHLTPaths_
const bool requireValidHLTPaths_
Definition: LepHTMonitor.cc:74
pfMETBenchmark_cfi.pfMET
pfMET
Definition: pfMETBenchmark_cfi.py:3
Run
Conversion.h