CMS 3D CMS Logo

HLTObjectsMonitor.cc
Go to the documentation of this file.
1 // system include files
2 #include <memory>
3 #include <sys/time.h>
4 #include <cstdlib>
5 #include <unordered_map>
6 
7 // user include files
12 
21 
23 
24 //for collections
26 
35 
38 
39 #include "TLorentzVector.h"
40 
41 struct hltPlot {
43 
44  std::pair<MonitorElement*, bool> nME;
45  std::pair<MonitorElement*, bool> etaME;
46  std::pair<MonitorElement*, bool> phiME;
47  std::pair<MonitorElement*, bool> ptME;
48  std::pair<MonitorElement*, bool> massME;
49  std::pair<MonitorElement*, bool> energyME;
50  std::pair<MonitorElement*, bool> csvME;
51  std::pair<MonitorElement*, bool> etaVSphiME;
52  std::pair<MonitorElement*, bool> ptMEhep17;
53  std::pair<MonitorElement*, bool> ptMEhem17; // in harvesting step ratio
54  std::pair<MonitorElement*, bool> mrME;
55  std::pair<MonitorElement*, bool> rsqME;
56  std::pair<MonitorElement*, bool> dxyME;
57  std::pair<MonitorElement*, bool> dzME;
58  std::pair<MonitorElement*, bool> dimassME;
59  std::pair<MonitorElement*, bool> dRME;
60  std::pair<MonitorElement*, bool> dRetaVSphiME;
61  std::pair<MonitorElement*, bool> q1q2ME;
62 
65  int pathIDX;
67 
69  std::vector<double> etaBINNING;
70  std::vector<double> ptBINNING;
71  std::vector<double> phiBINNING;
72  std::vector<double> massBINNING;
73  std::vector<double> dxyBINNING;
74  std::vector<double> dzBINNING;
75  std::vector<double> dimassBINNING;
76 
77  bool doPlot2D;
78  bool doPlotETA;
79  bool doPlotMASS;
82  bool doPlotCSV;
83  bool doCALO;
84  bool doPF;
86  bool doPlotDXY;
87  bool doPlotDZ;
89 };
90 //
91 // class declaration
92 //
93 
94 //using namespace edm;
95 using std::unordered_map;
96 
98 public:
99  explicit HLTObjectsMonitor(const edm::ParameterSet&);
100  ~HLTObjectsMonitor() override = default;
101 
102  // static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
103 
104 private:
105  void analyze(const edm::Event&, const edm::EventSetup&) override;
106  void bookHistograms(DQMStore::IBooker& i, edm::Run const&, edm::EventSetup const&) override;
107  void dqmBeginRun(edm::Run const&, edm::EventSetup const&) override;
108 
110  void getPSet();
111  bool isHEP17(double eta, double phi);
112  bool isHEM17(double eta, double phi);
113 
114  double dxyFinder(
116  double dzFinder(double, double, double, double, edm::Handle<reco::RecoChargedCandidateCollection>, double);
117  // ----------member data ---------------------------
118 
122  std::vector<edm::ParameterSet> plotPSETS_;
123 
125 
127  std::vector<hltPlot> hltPlots_;
128  std::unordered_map<std::string, int> plotNamesToBins_;
129 
130  bool debug_;
131 
134 
137 
140 
143 
148 
149  const double MASS_MU = .105658;
150 
151  struct MEbinning {
152  int nbins;
153  double xmin;
154  double xmax;
155  };
156 
157  double MAX_PHI = 3.2;
158  int N_PHI = 64;
160 
161  double MAX_CSV = 1.;
162  int N_CSV = 20;
164 
165  std::vector<double> phi_variable_binning_;
166 
167  /*
168  HEP17 covers
169  - phi between 310° and 330° (-50° to -30°, or -0.87 t.52 rad)
170  - eta between +1.3 and +3.0 (positive side only)
171 */
172  double MAX_PHI_HEP17 = -0.52;
173  double MIN_PHI_HEP17 = -0.87;
174  int N_PHI_HEP17 = 7;
176  double MAX_ETA_HEP17 = 3.0;
177  double MIN_ETA_HEP17 = 1.3;
178  int N_ETA_HEP17 = 6;
180 
182 };
183 
184 //
185 // constants, enums and typedefs
186 //
187 
188 //
189 // static data member definitions
190 //
192  return hltPlot{std::make_pair<MonitorElement*, bool>(nullptr, false),
193  std::make_pair<MonitorElement*, bool>(nullptr, pset.getParameter<bool>("displayInPrimary_eta")),
194  std::make_pair<MonitorElement*, bool>(nullptr, pset.getParameter<bool>("displayInPrimary_phi")),
195  std::make_pair<MonitorElement*, bool>(nullptr, pset.getParameter<bool>("displayInPrimary_pt")),
196  std::make_pair<MonitorElement*, bool>(nullptr, pset.getParameter<bool>("displayInPrimary_mass")),
197  std::make_pair<MonitorElement*, bool>(nullptr, pset.getParameter<bool>("displayInPrimary_energy")),
198  std::make_pair<MonitorElement*, bool>(nullptr, pset.getParameter<bool>("displayInPrimary_csv")),
199  std::make_pair<MonitorElement*, bool>(nullptr, pset.getParameter<bool>("displayInPrimary_etaVSphi")),
200  std::make_pair<MonitorElement*, bool>(nullptr, pset.getParameter<bool>("displayInPrimary_pt_HEP17")),
201  std::make_pair<MonitorElement*, bool>(nullptr, pset.getParameter<bool>("displayInPrimary_pt_HEM17")),
202  std::make_pair<MonitorElement*, bool>(nullptr, pset.getParameter<bool>("displayInPrimary_MR")),
203  std::make_pair<MonitorElement*, bool>(nullptr, pset.getParameter<bool>("displayInPrimary_RSQ")),
204  std::make_pair<MonitorElement*, bool>(nullptr, pset.getParameter<bool>("displayInPrimary_dxy")),
205  std::make_pair<MonitorElement*, bool>(nullptr, pset.getParameter<bool>("displayInPrimary_dz")),
206  std::make_pair<MonitorElement*, bool>(nullptr, pset.getParameter<bool>("displayInPrimary_dimass")),
207  std::make_pair<MonitorElement*, bool>(nullptr, false),
208  std::make_pair<MonitorElement*, bool>(nullptr, false),
209  std::make_pair<MonitorElement*, bool>(nullptr, false),
210  pset.getParameter<std::string>("label"),
211  pset.getParameter<std::string>("pathNAME"),
212  -1,
213  pset.getParameter<std::string>("moduleNAME"),
214  pset.getParameter<std::string>("xTITLE"),
215  pset.getParameter<std::vector<double>>("etaBINNING"),
216  pset.getParameter<std::vector<double>>("ptBINNING"),
217  pset.getParameter<std::vector<double>>("phiBINNING"),
218  pset.getParameter<std::vector<double>>("massBINNING"),
219  pset.getParameter<std::vector<double>>("dxyBINNING"),
220  pset.getParameter<std::vector<double>>("dzBINNING"),
221  pset.getParameter<std::vector<double>>("dimassBINNING"),
222  pset.getUntrackedParameter<bool>("doPlot2D", false),
223  pset.getUntrackedParameter<bool>("doPlotETA", true),
224  pset.getUntrackedParameter<bool>("doPlotMASS", false),
225  pset.getUntrackedParameter<bool>("doPlotENERGY", false),
226  pset.getUntrackedParameter<bool>("doPlotHEP17", true),
227  pset.getUntrackedParameter<bool>("doPlotCSV", false),
228  pset.getUntrackedParameter<bool>("doCALO", false),
229  pset.getUntrackedParameter<bool>("doPF", false),
230  pset.getUntrackedParameter<bool>("doPlotRazor", false),
231  pset.getUntrackedParameter<bool>("doPlotDXY", false),
232  pset.getUntrackedParameter<bool>("doPlotDZ", false),
233  pset.getUntrackedParameter<bool>("doPlotDiMass", false)};
234 }
235 
237  for (const auto& pset : plotPSETS_)
238  hltPlots_.push_back(getPlotPSet(pset));
239 }
240 
241 bool HLTObjectsMonitor::isHEP17(double eta, double phi) {
242  if ((eta >= MIN_ETA_HEP17 && eta <= MAX_ETA_HEP17) && (phi >= MIN_PHI_HEP17 && phi <= MAX_PHI_HEP17))
243  return true;
244  else
245  return false;
246 }
247 bool HLTObjectsMonitor::isHEM17(double eta, double phi) {
248  if ((eta >= -MAX_ETA_HEP17 && eta <= -MIN_ETA_HEP17) && (phi >= MIN_PHI_HEP17 && phi <= MAX_PHI_HEP17))
249  return true;
250  else
251  return false;
252 }
253 //
254 // constructors and destructor
255 //
257  : TopFolder_(iConfig.getParameter<std::string>("TopFolder")),
258  label_(iConfig.getParameter<std::string>("label")),
259  processName_(iConfig.getParameter<std::string>("processName")),
260  plotPSETS_(iConfig.getParameter<std::vector<edm::ParameterSet>>("plots")),
261  debug_(iConfig.getUntrackedParameter<bool>("debug", false)),
262  triggerResultsToken_(consumes<edm::TriggerResults>(iConfig.getParameter<edm::InputTag>("TriggerResults"))),
263  triggerEventToken_(consumes<trigger::TriggerEvent>(iConfig.getParameter<edm::InputTag>("TriggerSummary"))),
264  beamSpot_(iConfig.getParameter<edm::InputTag>("beamspot")),
265  beamSpotToken_(consumes<reco::BeamSpot>(beamSpot_)),
266  caloJetBTagsToken_(consumes<reco::JetTagCollection>(iConfig.getParameter<edm::InputTag>("caloJetBTags"))),
267  pfJetBTagsToken_(consumes<reco::JetTagCollection>(iConfig.getParameter<edm::InputTag>("pfJetBTags"))),
268  muCandidates_(iConfig.getParameter<edm::InputTag>("muCandidates")),
269  muCandidatesToken_(consumes<std::vector<reco::RecoChargedCandidate>>(muCandidates_)),
270  eleCandidates_(iConfig.getParameter<edm::InputTag>("eleCandidates")),
271  eleCandidatesToken_(consumes<std::vector<reco::RecoChargedCandidate>>(eleCandidates_)) {
272  getPSet();
273 
274  //now do what ever initialization is needed
275  mainFolder_ = TopFolder_ + "/MainShifter";
276  backupFolder_ = TopFolder_ + "/Backup";
277 
278  //set Token(s)
279 
280  double step = 2 * MAX_PHI / double(N_PHI);
281  for (int i = 0; i <= N_PHI; i++)
282  phi_variable_binning_.push_back(-MAX_PHI + step * i);
283 }
284 
285 //
286 // member functions
287 //
288 
289 // ------------ method called for each event ------------
291  // if ( debug_ )
292  // std::cout << "[HLTObjectsMonitor::analyze]" << std::endl;
293 
294  // access trigger results
297  if (!triggerResults.isValid())
298  return;
299 
302  if (!triggerEvent.isValid())
303  return;
304 
307 
309  iEvent.getByToken(pfJetBTagsToken_, pfJetBTags);
310 
313 
316 
318  iEvent.getByToken(beamSpotToken_, beamspot);
319 
320  // loop over path
321  int ibin = -1;
322  std::vector<bool> plottedPathIndices(plotNamesToBins_.size(), false);
323  for (auto& plot : hltPlots_) {
324  ibin++;
325  if (plot.pathIDX <= 0)
326  continue;
327 
328  if (triggerResults->accept(plot.pathIDX)) {
329  //We only want to fill this once per pathNAME per event
330  auto index = plotNamesToBins_[plot.pathNAME];
331  if (not plottedPathIndices[index]) {
332  plottedPathIndices[index] = true;
333  if (debug_)
334  std::cout << plot.pathNAME << " --> bin: " << ibin << std::endl;
336  }
338  if (hltConfig_.saveTags(plot.moduleNAME)) {
339  if (debug_)
340  std::cout << "objects: " << objects.size() << std::endl;
341 
342  bool moduleFOUND = false;
343  std::vector<std::string> moduleNames = hltConfig_.moduleLabels(plot.pathIDX);
344  for (const auto& module : moduleNames) {
345  if (module == plot.moduleNAME)
346  moduleFOUND = true;
347  }
348  if (debug_)
349  std::cout << plot.moduleNAME << (moduleFOUND ? "" : "NOT") << " found in the list of modules" << std::endl;
350 
351  if (debug_)
352  for (const auto& module : moduleNames) {
353  unsigned int idx = triggerEvent->filterIndex(edm::InputTag(module, "", processName_));
354  std::cout << "module: " << module;
355  if (idx < triggerEvent->sizeFilters())
356  std::cout << " --> " << idx;
357  std::cout << std::endl;
358  }
359  //
360  // trigger accepted and collection w/ objects is available
362  unsigned int moduleIDX = triggerEvent->filterIndex(moduleName);
363  if (debug_)
364  std::cout << "moduleNAME: " << plot.moduleNAME << " --> " << moduleIDX << std::endl;
365 
366  if (moduleIDX >= triggerEvent->sizeFilters()) {
367  LogDebug("HLTObjectsMonitor")
368  << plot.pathNAME << " " << plot.moduleNAME
369  << " is not available ! please, fix update DQM/HLTEvF/python/HLTObjectsMonitor_cfi.py";
370  return;
371  }
372 
373  const trigger::Keys& keys = triggerEvent->filterKeys(moduleIDX);
374  if (debug_)
375  std::cout << "keys: " << keys.size() << std::endl;
376 
377  plot.nME.first->Fill(keys.size());
378 
379  double MR = 0.;
380  double RSQ = 0.;
381  for (const auto& key : keys) {
382  double pt = objects[key].pt();
383  double eta = objects[key].eta();
384  double phi = objects[key].phi();
385  double mass = objects[key].mass();
386  double energy = objects[key].energy();
387  int id = objects[key].id();
388  if (debug_)
389  std::cout << "object ID " << id << " mass: " << mass << std::endl;
390 
391  // single-object plots
392  plot.ptME.first->Fill(pt);
393  if (plot.doPlotETA)
394  plot.etaME.first->Fill(eta);
395  plot.phiME.first->Fill(phi);
396 
397  if (plot.doPlotCSV) {
398  if (plot.doCALO) {
399  if (!caloJetBTags.isValid())
400  plot.csvME.first->Fill(-10.);
401  else {
402  for (auto it = caloJetBTags->begin(); it != caloJetBTags->end(); ++it) {
403  double dR = deltaR(eta, phi, it->first->eta(), it->first->phi());
404  if (debug_)
405  std::cout << "[HLTObjectsMonitor::analyze] deltaR: " << dR << " matched ? "
406  << (dR <= 0.4 ? "YEAP" : "NOPE") << std::endl;
407  plot.csvME.first->Fill(it->second);
408  }
409  }
410 
411  } else if (plot.doPF) {
412  if (!pfJetBTags.isValid())
413  plot.csvME.first->Fill(-10.);
414  else {
415  for (auto it = pfJetBTags->begin(); it != pfJetBTags->end(); ++it) {
416  double dR = deltaR(eta, phi, it->first->eta(), it->first->phi());
417  if (debug_)
418  std::cout << "[HLTObjectsMonitor::analyze] deltaR: " << dR << " matched ? "
419  << (dR <= 0.4 ? "YEAP" : "NOPE") << std::endl;
420  plot.csvME.first->Fill(it->second);
421  }
422  }
423  }
424  }
425  if (plot.doPlotMASS)
426  plot.massME.first->Fill(mass);
427  if (plot.doPlotENERGY)
428  plot.energyME.first->Fill(energy);
429  if (plot.doPlot2D)
430  plot.etaVSphiME.first->Fill(eta, phi);
431  if (plot.doPlotHEP17) {
432  if (isHEP17(eta, phi))
433  plot.ptMEhep17.first->Fill(pt);
434  if (isHEM17(eta, phi))
435  plot.ptMEhem17.first->Fill(pt);
436  }
437 
438  if (id == 0) { //the MET object containing MR and Rsq will show up with ID = 0
439  MR = objects[key].px(); //razor variables stored in dummy reco::MET objects
440  RSQ = objects[key].py();
441  }
442 
443  if (plot.doPlotDXY) {
444  double dxy = -99.;
445  if (abs(id) == 13)
446  dxy = dxyFinder(eta, phi, muCandidates, beamspot, 0.1); // dRcut = 0.1
447  else
448  dxy = dxyFinder(eta, phi, eleCandidates, beamspot, 0.1); // dRcut = 0.1
449  plot.dxyME.first->Fill(dxy);
450  }
451  } // end loop on keys
452  if (plot.doPlotRazor) {
453  plot.mrME.first->Fill(MR);
454  plot.rsqME.first->Fill(RSQ);
455  }
456 
457  if (keys.size() < 2) {
458  if (plot.doPlotDiMass || plot.doPlotDZ)
459  LogDebug("HLTObjectsMonitor") << plot.pathNAME << " " << plot.moduleNAME << " # objects is (" << keys.size()
460  << ") less than 2 ! you probably want to either change the moduleNAME or "
461  "switch off di-object system plots (doPlotDZ: "
462  << plot.doPlotDZ << " doPlotDiMass: " << plot.doPlotDiMass
463  << ") in DQM/HLTEvF/python/HLTObjectsMonitor_cfi.py)";
464  } else {
465  for (const auto& key : keys) {
466  double pt = objects[key].pt();
467  double eta = objects[key].eta();
468  double phi = objects[key].phi();
469  int id = objects[key].id();
470 
471  unsigned int kCnt0 = 0;
472 
473  TLorentzVector v1;
474  if (abs(id) == 13) // check if it is a muon
475  v1.SetPtEtaPhiM(pt, eta, phi, MASS_MU);
476  else
477  v1.SetPtEtaPhiM(pt, eta, phi, 0);
478 
479  unsigned int kCnt1 = 0;
480  for (const auto& key1 : keys) {
481  if (key != key1 &&
482  kCnt1 > kCnt0) { // avoid filling hists with same objs && avoid double counting separate objs
483 
484  double pt2 = objects[key1].phi();
485  double eta2 = objects[key1].eta();
486  double phi2 = objects[key1].phi();
487  int id2 = objects[key1].id();
488 
489  double dR = deltaR(eta, phi, eta2, phi2);
490  plot.dRME.first->Fill(dR);
491  plot.dRetaVSphiME.first->Fill(eta, phi, dR);
492 
493  int q1 = (id == 0 ? 0 : id / abs(id));
494  int q2 = (id2 == 0 ? 0 : id2 / abs(id2));
495  int q1q2 = q1 * q2;
496  plot.q1q2ME.first->Fill(q1q2);
497 
498  if (abs(id) != abs(id2))
499  edm::LogInfo("HLTObjectsMonitor")
500  << plot.pathNAME << " " << plot.moduleNAME << " objects have different ID !?!" << abs(id)
501  << " and " << abs(id2);
502 
503  if ((id + id2) == 0) { // check di-object system charge and flavor
504 
505  TLorentzVector v2;
506  if (abs(id2) == 13) // check if it is a muon
507  v2.SetPtEtaPhiM(pt2, eta2, phi2, MASS_MU);
508  else
509  v2.SetPtEtaPhiM(pt2, eta2, phi2, 0);
510 
511  if (plot.doPlotDiMass) {
512  TLorentzVector v = v1 + v2;
513  plot.dimassME.first->Fill(v.M());
514  }
515 
516  if (plot.doPlotDZ) {
517  double dz = -99.;
518  if (abs(id) == 13)
519  dz = dzFinder(eta, phi, eta2, phi2, muCandidates, 0.1); // dRcut = 0.1
520  else
521  dz = dzFinder(eta, phi, eta2, phi2, eleCandidates, 0.1); // dRcut = 0.1
522  plot.dzME.first->Fill(dz);
523  }
524  }
525  }
526  kCnt1++;
527  }
528  kCnt0++;
529  }
530  }
531  }
532  }
533  }
534 }
535 
536 // ------------ method called when starting to processes a run ------------
537 void HLTObjectsMonitor::dqmBeginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) {
538  bool changed = true;
539  if (hltConfig_.init(iRun, iSetup, processName_, changed))
540  if (debug_)
541  std::cout << "[HLTObjectsMonitor::dqmBeginRun] extracting HLTconfig" << std::endl;
542 
543  //get path indicies from menu
544  std::string pathName_noVersion;
545  std::vector<std::string> triggerPaths = hltConfig_.triggerNames();
546 
547  if (debug_)
548  std::cout << "[HLTObjectsMonitor::dqmBeginRun] triggerPaths: " << triggerPaths.size() << " <--> "
549  << hltPlots_.size() << std::endl;
550 
551  for (const auto& pathName : triggerPaths) {
552  if (debug_)
553  std::cout << "[HLTObjectsMonitor::dqmBeginRun] " << pathName << std::endl;
554 
555  pathName_noVersion = hltConfig_.removeVersion(pathName);
556  // std::cout << "pathName: " << pathName << " --> " << pathName_noVersion << std::endl;
557  for (auto& plot : hltPlots_) {
558  if (plot.pathNAME == pathName_noVersion) {
560  // check that the index makes sense, otherwise force pathIDX = -1
561  if (plot.pathIDX <= 0 || plot.pathIDX == int(triggerPaths.size()))
562  plot.pathIDX = -1;
563  }
564  }
565  }
566 
567  if (debug_) {
568  for (const auto& plot : hltPlots_)
569  std::cout << "plot: " << plot.pathNAME << " --> pathIDX: " << plot.pathIDX << std::endl;
570  std::cout << "[HLTObjectsMonitor::dqmBeginRun] DONE" << std::endl;
571  }
572 }
573 
575  edm::Run const& iRun,
576  edm::EventSetup const& iSetup) {
577  if (debug_)
578  std::cout << "[HLTObjectsMonitor::bookHistograms]" << std::endl;
579 
580  ibooker.setCurrentFolder(TopFolder_);
581 
582  std::string name = "eventsPerPath_" + label_;
583  std::string title = " events per path";
584 
585  //We must avoid repeating the same pathNAME
586  {
587  std::unordered_map<std::string, int> uniqueNames;
588  for (auto const& p : hltPlots_) {
589  plotNamesToBins_[p.pathNAME] = -1;
590  }
591  int nbins = plotNamesToBins_.size();
592  eventsPlot_ = ibooker.book1D(name, title, nbins, -0.5, double(nbins) - 0.5);
593  eventsPlot_->setAxisTitle("HLT path");
594  int i = 0;
595  //keep the bin order the same as hltPlots_
596  for (auto const& p : hltPlots_) {
597  //only add a bin if this is the first time we've seen the name
598  if (-1 == plotNamesToBins_[p.pathNAME]) {
599  plotNamesToBins_[p.pathNAME] = ++i;
600  eventsPlot_->setBinLabel(i, p.pathNAME);
601  if (debug_)
602  std::cout << p.pathNAME << " --> bin: " << i << std::endl;
603  }
604  }
605  }
606 
607  for (auto& plot : hltPlots_) {
608  if (debug_)
609  std::cout << "booking plots for " << plot.label << std::endl;
610 
611  if (plot.pathIDX <= 0) {
612  LogDebug("HLTObjectsMonitor") << plot.pathNAME
613  << " is not available in the HLT menu ! no plots are going to be booked for it "
614  "(update DQM/HLTEvF/python/HLTObjectsMonitor_cfi.py)";
615  continue;
616  }
617  if (debug_)
618  std::cout << "booking histograms for " << plot.pathNAME << std::endl;
619 
620  {
621  if (plot.nME.second)
622  ibooker.setCurrentFolder(mainFolder_);
623  else
625 
626  name = plot.label + "_nobjects";
627  title = plot.pathNAME + " # objects";
628  plot.nME.first = ibooker.book1D(name, title, 20, -0.5, 19.5);
629  plot.nME.first->setAxisTitle(plot.xTITLE + " # objects");
630  }
631 
632  if (plot.ptME.second)
633  ibooker.setCurrentFolder(mainFolder_);
634  else
636 
637  name = plot.label + "_pt";
638  title = plot.pathNAME + " p_T";
639  int nbins = (plot.ptBINNING).size() - 1;
640  std::vector<float> fbinning((plot.ptBINNING).begin(), (plot.ptBINNING).end());
641  float* arr = &fbinning[0];
642  plot.ptME.first = ibooker.book1D(name, title, nbins, arr);
643  plot.ptME.first->setAxisTitle(plot.xTITLE + " p_{T} [GeV]");
644 
645  {
646  if (plot.phiME.second)
647  ibooker.setCurrentFolder(mainFolder_);
648  else
650 
651  name = plot.label + "_phi";
652  title = plot.pathNAME + " #phi";
653  int nbins = (plot.phiBINNING).size() - 1;
654  std::vector<float> fbinning((plot.phiBINNING).begin(), (plot.phiBINNING).end());
655  float* arr = &fbinning[0];
656  plot.phiME.first = ibooker.book1D(name, title, nbins, arr);
657  plot.phiME.first->setAxisTitle(plot.xTITLE + " #phi [rad]");
658  }
659 
660  if (plot.doPlotETA) {
661  if (plot.etaME.second)
662  ibooker.setCurrentFolder(mainFolder_);
663  else
665 
666  name = plot.label + "_eta";
667  title = plot.pathNAME + " #eta";
668  int nbins = (plot.etaBINNING).size() - 1;
669  std::vector<float> fbinning((plot.etaBINNING).begin(), (plot.etaBINNING).end());
670  float* arr = &fbinning[0];
671 
672  plot.etaME.first = ibooker.book1D(name, title, nbins, arr);
673  plot.etaME.first->setAxisTitle(plot.xTITLE + " #eta");
674  }
675 
676  if (plot.doPlotMASS) {
677  if (plot.massME.second)
678  ibooker.setCurrentFolder(mainFolder_);
679  else
681 
682  name = plot.label + "_mass";
683  title = plot.pathNAME + " mass";
684  int nbins = (plot.massBINNING).size() - 1;
685  std::vector<float> fbinning((plot.massBINNING).begin(), (plot.massBINNING).end());
686  float* arr = &fbinning[0];
687 
688  plot.massME.first = ibooker.book1D(name, title, nbins, arr);
689  plot.massME.first->setAxisTitle(plot.xTITLE + " mass [GeV]");
690  }
691 
692  if (plot.doPlotENERGY) {
693  if (plot.energyME.second)
694  ibooker.setCurrentFolder(mainFolder_);
695  else
697 
698  name = plot.label + "_energy";
699  title = plot.pathNAME + " energy";
700  int nbins = (plot.ptBINNING).size() - 1;
701  std::vector<float> fbinning((plot.ptBINNING).begin(), (plot.ptBINNING).end());
702  float* arr = &fbinning[0];
703 
704  plot.energyME.first = ibooker.book1D(name, title, nbins, arr);
705  plot.energyME.first->setAxisTitle(plot.xTITLE + " energy [GeV]");
706  }
707 
708  if (plot.doPlotCSV) {
709  if (plot.csvME.second)
710  ibooker.setCurrentFolder(mainFolder_);
711  else
713 
714  name = plot.label + "_csv";
715  title = plot.pathNAME + " CSV";
716 
718  plot.csvME.first->setAxisTitle(plot.xTITLE + " CSV discriminator");
719  }
720 
721  if (plot.doPlot2D) {
722  if (plot.etaVSphiME.second)
723  ibooker.setCurrentFolder(mainFolder_);
724  else
726 
727  name = plot.label + "_etaVSphi";
728  title = plot.pathNAME + " #eta vs #phi";
729  int nbinsX = (plot.etaBINNING).size() - 1;
730  std::vector<float> fbinningX((plot.etaBINNING).begin(), (plot.etaBINNING).end());
731  float* arrX = &fbinningX[0];
732  int nbinsY = (plot.phiBINNING).size() - 1;
733  ;
734  std::vector<float> fbinningY((plot.phiBINNING).begin(), (plot.phiBINNING).end());
735  float* arrY = &fbinningY[0];
736  plot.etaVSphiME.first = ibooker.book2D(name, title, nbinsX, arrX, nbinsY, arrY);
737  plot.etaVSphiME.first->setAxisTitle(plot.xTITLE + " #eta", 1);
738  plot.etaVSphiME.first->setAxisTitle(plot.xTITLE + " #phi", 2);
739  }
740 
741  if (plot.doPlotHEP17) {
742  if (plot.ptMEhep17.second)
743  ibooker.setCurrentFolder(mainFolder_);
744  else
746 
747  int nbins = (plot.ptBINNING).size() - 1;
748  std::vector<float> fbinning((plot.ptBINNING).begin(), (plot.ptBINNING).end());
749  float* arr = &fbinning[0];
750 
751  name = plot.label + "_pt_HEP17";
752  title = plot.pathNAME + " p_{T} HEP17";
753  plot.ptMEhep17.first = ibooker.book1D(name, title, nbins, arr);
754  plot.ptMEhep17.first->setAxisTitle(plot.xTITLE + " p_{T} [GeV]", 1);
755 
756  if (plot.ptMEhem17.second)
757  ibooker.setCurrentFolder(mainFolder_);
758  else
760 
761  name = plot.label + "_pt_HEM17";
762  title = plot.pathNAME + " p_{T} HEM17";
763  plot.ptMEhem17.first = ibooker.book1D(name, title, nbins, arr);
764  plot.ptMEhem17.first->setAxisTitle(plot.xTITLE + " p_{T} [GeV]", 1);
765  }
766 
767  if (plot.doPlotRazor) {
768  if (plot.mrME.second)
769  ibooker.setCurrentFolder(mainFolder_);
770  else
772 
773  name = plot.label + "_mr";
774  title = plot.pathNAME + " M_{R}";
775  plot.mrME.first = ibooker.book1D(name, title, 100, 0., 100.);
776  plot.mrME.first->setAxisTitle(plot.xTITLE + " M_{R} [GeV]", 1);
777 
778  if (plot.rsqME.second)
779  ibooker.setCurrentFolder(mainFolder_);
780  else
782 
783  name = plot.label + "_rsq";
784  title = plot.pathNAME + " RSQ";
785  plot.rsqME.first = ibooker.book1D(name, title, 100, 0., 100.);
786  plot.rsqME.first->setAxisTitle(plot.xTITLE + " RSQ [GeV]", 1);
787  }
788 
789  if (plot.doPlotDXY) {
790  if (plot.dxyME.second)
791  ibooker.setCurrentFolder(mainFolder_);
792  else
794 
795  name = plot.label + "_dxy";
796  title = plot.pathNAME + " d_{xy}";
797  int nbins = (plot.dxyBINNING).size() - 1;
798  std::vector<float> fbinning((plot.dxyBINNING).begin(), (plot.dxyBINNING).end());
799  float* arr = &fbinning[0];
800  plot.dxyME.first = ibooker.book1D(name, title, nbins, arr);
801  plot.dxyME.first->setAxisTitle(plot.xTITLE + " d_{xy} [cm]");
802  }
803 
804  if (plot.doPlotDZ) {
805  if (plot.dzME.second)
806  ibooker.setCurrentFolder(mainFolder_);
807  else
809 
810  name = plot.label + "_dz";
811  title = plot.pathNAME + " d_{z}";
812  int nbins = (plot.dzBINNING).size() - 1;
813  std::vector<float> fbinning((plot.dzBINNING).begin(), (plot.dzBINNING).end());
814  float* arr = &fbinning[0];
815  plot.dzME.first = ibooker.book1D(name, title, nbins, arr);
816  plot.dzME.first->setAxisTitle(plot.xTITLE + " d_{z} [cm]");
817  }
818 
819  if (plot.dRME.second)
820  ibooker.setCurrentFolder(mainFolder_);
821  else
823 
824  name = plot.label + "_dR";
825  title = plot.pathNAME + " di-object dR";
826  plot.dRME.first = ibooker.book1D(name, title, 50, 0., 5.);
827  plot.dRME.first->setAxisTitle(plot.xTITLE + " dR_{obj,obj}");
828 
829  if (plot.dRetaVSphiME.second)
830  ibooker.setCurrentFolder(mainFolder_);
831  else
833 
834  name = plot.label + "_dR_etaVSphi";
835  title = plot.pathNAME + " di-object dR in the #eta-#phi plane (of 1st obj)";
836  plot.dRetaVSphiME.first = ibooker.bookProfile2D(name, title, 60, -3., 3., 64, -3.2, 3.2, 0., 5.);
837  plot.dRetaVSphiME.first->setAxisTitle(plot.xTITLE + " #eta", 1);
838  plot.dRetaVSphiME.first->setAxisTitle(plot.xTITLE + " #phi", 2);
839  plot.dRetaVSphiME.first->setAxisTitle(plot.xTITLE + " dR_{obj,obj}", 3);
840 
841  if (plot.q1q2ME.second)
842  ibooker.setCurrentFolder(mainFolder_);
843  else
845 
846  name = plot.label + "_q1q2";
847  title = plot.pathNAME + " di-object q1xq2";
848  plot.q1q2ME.first = ibooker.book1D(name, title, 3, -1., 1.);
849  plot.q1q2ME.first->setAxisTitle(plot.xTITLE + " q_{obj1} x q_{obj2}");
850 
851  if (plot.doPlotDiMass) {
852  if (plot.dimassME.second)
853  ibooker.setCurrentFolder(mainFolder_);
854  else
856 
857  name = plot.label + "_dimass";
858  title = plot.pathNAME + " di-object mass";
859  int nbins = (plot.dimassBINNING).size() - 1;
860  std::vector<float> fbinning((plot.dimassBINNING).begin(), (plot.dimassBINNING).end());
861  float* arr = &fbinning[0];
862  plot.dimassME.first = ibooker.book1D(name, title, nbins, arr);
863  plot.dimassME.first->setAxisTitle(plot.xTITLE + " m_{obj,obj} [GeV]");
864  }
865  }
866 
867  if (debug_)
868  std::cout << "[HLTObjectsMonitor::bookHistograms] DONE" << std::endl;
869 }
870 
872  double phi,
875  double dRcut = 0.1) {
876  double dxy = -99.;
877  if (!candidates.isValid()) {
878  LogDebug("HLTObjectsMonitor") << "either " << muCandidates_ << " or " << eleCandidates_
879  << " is not valid ! please, update DQM/HLTEvF/python/HLTObjectsMonitor_cfi.py"
880  << " by switching OFF doPlotDXY or updating the InputTag collection";
881  return dxy;
882  }
883  if (!beamspot.isValid()) {
884  LogDebug("HLTObjectsMonitor") << beamSpot_
885  << " is not valid ! please, update DQM/HLTEvF/python/HLTObjectsMonitor_cfi.py"
886  << " by switching OFF doPlotDXY or updating the InputTag collection";
887  return dxy;
888  }
889 
890  bool matched = false;
891  for (reco::RecoChargedCandidateCollection::const_iterator candidate = candidates->begin();
892  candidate != candidates->end();
893  ++candidate) {
894  if (deltaR(eta, phi, candidate->eta(), candidate->phi()) < dRcut) {
895  matched = true;
896  dxy = (-(candidate->vx() - beamspot->x0()) * candidate->py() +
897  (candidate->vy() - beamspot->y0()) * candidate->px()) /
898  candidate->pt();
899  break;
900  }
901  }
902  if (!matched)
903  edm::LogWarning("HLTObjectsMonitor") << "trigger object does not match ( dR > " << dRcut
904  << ") to any of the candidates in either " << muCandidates_ << " or "
905  << eleCandidates_;
906 
907  return dxy;
908 }
909 
911  double phi1,
912  double eta2,
913  double phi2,
915  double dRcut = 0.1) {
916  double dz = -99.;
917  if (!candidates.isValid()) {
918  LogDebug("HLTObjectsMonitor") << "either " << muCandidates_ << " or " << eleCandidates_
919  << " is not valid ! please, update DQM/HLTEvF/python/HLTObjectsMonitor_cfi.py"
920  << " by switching OFF doPlotDZ or updating the InputTag collection";
921  return dz;
922  }
923 
924  const reco::RecoChargedCandidate* cand1;
925  const reco::RecoChargedCandidate* cand2;
926  bool matched1 = false;
927  bool matched2 = false;
928  for (reco::RecoChargedCandidateCollection::const_iterator candidate = candidates->begin();
929  candidate != candidates->end();
930  ++candidate) {
931  if (deltaR(eta1, phi1, candidate->eta(), candidate->phi()) < dRcut) {
932  matched1 = true;
933  cand1 = &*candidate;
934  if (debug_)
935  std::cout << "cand1: " << cand1->pt() << " " << cand1->eta() << " " << cand1->phi() << std::endl;
936  break;
937  }
938  }
939  if (!matched1) {
940  LogDebug("HLTObjectsMonitor") << "trigger object1 does not match ( dR > " << dRcut
941  << ") to any of the candidates in either " << muCandidates_ << " or "
942  << eleCandidates_;
943  return dz;
944  }
945 
946  for (reco::RecoChargedCandidateCollection::const_iterator candidate = candidates->begin();
947  candidate != candidates->end();
948  ++candidate) {
949  if (debug_) {
950  std::cout << "candidate: " << candidate->pt() << " cand1: " << cand1->pt() << std::endl;
951  std::cout << "candidate: " << candidate->eta() << " cand1: " << cand1->eta() << std::endl;
952  std::cout << "candidate: " << candidate->phi() << " cand1: " << cand1->phi() << std::endl;
953  }
954  if (&*candidate == cand1)
955  continue;
956 
957  if (deltaR(eta2, phi2, candidate->eta(), candidate->phi()) < dRcut) {
958  matched2 = true;
959  cand2 = &*candidate;
960  if (debug_)
961  std::cout << "cand2: " << cand2->pt() << " " << cand2->eta() << " " << cand2->phi() << std::endl;
962  break;
963  }
964  }
965  if (!matched2) {
966  LogDebug("HLTObjectsMonitor") << "trigger object2 does not match ( dR > " << dRcut
967  << ") to any of the candidates in either " << muCandidates_ << " or "
968  << eleCandidates_;
969  return dz;
970  }
971 
972  dz = cand1->vz() - cand2->vz();
973  return dz;
974 }
975 
976 //define this as a plug-in
muonTagProbeFilters_cff.matched
matched
Definition: muonTagProbeFilters_cff.py:62
HLTObjectsMonitor_cfi.eleCandidates
eleCandidates
Definition: HLTObjectsMonitor_cfi.py:15
hltPlot::ptBINNING
std::vector< double > ptBINNING
Definition: HLTObjectsMonitor.cc:70
HLTObjectsMonitor::dzFinder
double dzFinder(double, double, double, double, edm::Handle< reco::RecoChargedCandidateCollection >, double)
Definition: HLTObjectsMonitor.cc:910
hltPlot::doPlot2D
bool doPlot2D
Definition: HLTObjectsMonitor.cc:77
HLTObjectsMonitor::triggerResultsToken_
edm::EDGetTokenT< edm::TriggerResults > triggerResultsToken_
Definition: HLTObjectsMonitor.cc:135
dqm::impl::MonitorElement
Definition: MonitorElement.h:98
hltPlot::ptMEhem17
std::pair< MonitorElement *, bool > ptMEhem17
Definition: HLTObjectsMonitor.cc:53
JetTag.h
CaloJet.h
HLTObjectsMonitor::MEbinning::xmax
double xmax
Definition: HLTObjectsMonitor.cc:154
runGCPTkAlMap.title
string title
Definition: runGCPTkAlMap.py:94
electrons_cff.bool
bool
Definition: electrons_cff.py:393
HLTObjectsMonitor::csv_binning_
const MEbinning csv_binning_
Definition: HLTObjectsMonitor.cc:163
mps_fire.i
i
Definition: mps_fire.py:428
HLTObjectsMonitor::N_PHI_HEP17
int N_PHI_HEP17
Definition: HLTObjectsMonitor.cc:174
hltPlot::ptMEhep17
std::pair< MonitorElement *, bool > ptMEhep17
Definition: HLTObjectsMonitor.cc:52
MessageLogger.h
HLTObjectsMonitor::dqmBeginRun
void dqmBeginRun(edm::Run const &, edm::EventSetup const &) override
Definition: HLTObjectsMonitor.cc:537
funct::false
false
Definition: Factorize.h:29
HLTObjectsMonitor_cfi.muCandidates
muCandidates
Definition: HLTObjectsMonitor_cfi.py:14
hltPlot::doPlotETA
bool doPlotETA
Definition: HLTObjectsMonitor.cc:78
hltPlot::dxyME
std::pair< MonitorElement *, bool > dxyME
Definition: HLTObjectsMonitor.cc:56
HLTObjectsMonitor::triggerEventToken_
edm::EDGetTokenT< trigger::TriggerEvent > triggerEventToken_
Definition: HLTObjectsMonitor.cc:136
HLTObjectsMonitor::getPlotPSet
static hltPlot getPlotPSet(edm::ParameterSet pset)
Definition: HLTObjectsMonitor.cc:191
hltPlot::dimassME
std::pair< MonitorElement *, bool > dimassME
Definition: HLTObjectsMonitor.cc:58
align::BeamSpot
Definition: StructureType.h:89
TriggerResults.h
step
step
Definition: StallMonitor.cc:94
hltPlot::mrME
std::pair< MonitorElement *, bool > mrME
Definition: HLTObjectsMonitor.cc:54
HLTObjectsMonitor::MIN_PHI_HEP17
double MIN_PHI_HEP17
Definition: HLTObjectsMonitor.cc:173
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
HLTObjectsMonitor::backupFolder_
std::string backupFolder_
Definition: HLTObjectsMonitor.cc:133
edm::Run
Definition: Run.h:45
TriggerEvent.h
hltPlot::rsqME
std::pair< MonitorElement *, bool > rsqME
Definition: HLTObjectsMonitor.cc:55
edm::EDGetTokenT< edm::TriggerResults >
edm
HLT enums.
Definition: AlignableModifier.h:19
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
dqm::implementation::IBooker::bookProfile2D
MonitorElement * bookProfile2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, double lowZ, double highZ, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:399
HLTObjectsMonitor::plotNamesToBins_
std::unordered_map< std::string, int > plotNamesToBins_
Definition: HLTObjectsMonitor.cc:128
hltPlot::doCALO
bool doCALO
Definition: HLTObjectsMonitor.cc:83
gather_cfg.cout
cout
Definition: gather_cfg.py:144
hltPlot::massBINNING
std::vector< double > massBINNING
Definition: HLTObjectsMonitor.cc:72
objects
Definition: __init__.py:1
PFJet.h
HLTObjectsMonitor::muCandidates_
edm::InputTag muCandidates_
Definition: HLTObjectsMonitor.cc:144
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
reco::LeafCandidate::vz
double vz() const override
z coordinate of vertex position
Definition: LeafCandidate.h:171
triggerResults
static const std::string triggerResults
Definition: EdmProvDump.cc:45
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
HLTObjectsMonitor::debug_
bool debug_
Definition: HLTObjectsMonitor.cc:130
HLTObjectsMonitor::processName_
std::string processName_
Definition: HLTObjectsMonitor.cc:121
hlt_dqm_clientPB-live_cfg.nbinsX
nbinsX
Definition: hlt_dqm_clientPB-live_cfg.py:65
HLTObjectsMonitor_cfi.pfJetBTags
pfJetBTags
Definition: HLTObjectsMonitor_cfi.py:13
TriggerTypeDefs.h
HLTObjectsMonitor::hltPlots_
std::vector< hltPlot > hltPlots_
Definition: HLTObjectsMonitor.cc:127
hltPlot::doPlotENERGY
bool doPlotENERGY
Definition: HLTObjectsMonitor.cc:80
hltPlot::dzME
std::pair< MonitorElement *, bool > dzME
Definition: HLTObjectsMonitor.cc:57
DQMStore.h
HLTObjectsMonitor::isHEP17
bool isHEP17(double eta, double phi)
Definition: HLTObjectsMonitor.cc:241
HLTObjectsMonitor::MAX_CSV
double MAX_CSV
Definition: HLTObjectsMonitor.cc:161
hltPlot::dxyBINNING
std::vector< double > dxyBINNING
Definition: HLTObjectsMonitor.cc:73
hltPlot::dimassBINNING
std::vector< double > dimassBINNING
Definition: HLTObjectsMonitor.cc:75
HLTObjectsMonitor_cfi.beamspot
beamspot
Definition: HLTObjectsMonitor_cfi.py:11
relativeConstraints.keys
keys
Definition: relativeConstraints.py:89
reco::LeafCandidate::pt
double pt() const final
transverse momentum
Definition: LeafCandidate.h:146
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
findQualityFiles.v
v
Definition: findQualityFiles.py:179
hltPlot::label
std::string label
Definition: HLTObjectsMonitor.cc:63
edm::Handle< reco::RecoChargedCandidateCollection >
plotFactory.plot
plot
Definition: plotFactory.py:109
hltPlot::doPlotDZ
bool doPlotDZ
Definition: HLTObjectsMonitor.cc:87
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
HLTObjectsMonitor::eleCandidates_
edm::InputTag eleCandidates_
Definition: HLTObjectsMonitor.cc:146
hltPlot::moduleNAME
std::string moduleNAME
Definition: HLTObjectsMonitor.cc:66
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
hltPlot::doPlotDiMass
bool doPlotDiMass
Definition: HLTObjectsMonitor.cc:88
HLTObjectsMonitor::eleCandidatesToken_
edm::EDGetTokenT< std::vector< reco::RecoChargedCandidate > > eleCandidatesToken_
Definition: HLTObjectsMonitor.cc:147
HLTObjectsMonitor::MAX_PHI_HEP17
double MAX_PHI_HEP17
Definition: HLTObjectsMonitor.cc:172
HLTObjectsMonitor::N_PHI
int N_PHI
Definition: HLTObjectsMonitor.cc:158
HLTConfigProvider::moduleLabels
const std::vector< std::string > & moduleLabels(unsigned int trigger) const
label(s) of module(s) on a trigger path
Definition: HLTConfigProvider.h:76
hltPlot::etaME
std::pair< MonitorElement *, bool > etaME
Definition: HLTObjectsMonitor.cc:45
MakerMacros.h
HLTObjectsMonitor::phi_binning_hep17_
const MEbinning phi_binning_hep17_
Definition: HLTObjectsMonitor.cc:175
HLTObjectsMonitor_cfi.caloJetBTags
caloJetBTags
Definition: HLTObjectsMonitor_cfi.py:12
HLTObjectsMonitor::beamSpotToken_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition: HLTObjectsMonitor.cc:139
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
BeamSpot.h
HLTObjectsMonitor::MEbinning
Definition: HLTObjectsMonitor.cc:151
HLTObjectsMonitor::phi_binning_
const MEbinning phi_binning_
Definition: HLTObjectsMonitor.cc:159
hltMonBTagIPClient_cfi.pathName
pathName
Definition: hltMonBTagIPClient_cfi.py:5
HLTObjectsMonitor::beamSpot_
edm::InputTag beamSpot_
Definition: HLTObjectsMonitor.cc:138
HLTConfigProvider::saveTags
bool saveTags(const std::string &module) const
Is module an L3 filter (ie, tracked saveTags=true)
Definition: HLTConfigProvider.h:116
Service.h
PVValHelper::eta
Definition: PVValidationHelpers.h:69
HLTObjectsMonitor::HLTObjectsMonitor
HLTObjectsMonitor(const edm::ParameterSet &)
Definition: HLTObjectsMonitor.cc:256
hltPlot::xTITLE
std::string xTITLE
Definition: HLTObjectsMonitor.cc:68
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
HLT_FULL_cff.eta2
eta2
Definition: HLT_FULL_cff.py:9542
mps_fire.end
end
Definition: mps_fire.py:242
HLTObjectsMonitor
Definition: HLTObjectsMonitor.cc:97
LaserClient_cfi.nbins
nbins
Definition: LaserClient_cfi.py:51
beamspot
Definition: BeamSpotWrite2Txt.h:8
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
HLTObjectsMonitor::eta_binning_hep17_
const MEbinning eta_binning_hep17_
Definition: HLTObjectsMonitor.cc:179
EDGetToken.h
q2
double q2[4]
Definition: TauolaWrapper.h:88
PbPb_ZMuSkimMuonDPG_cff.deltaR
deltaR
Definition: PbPb_ZMuSkimMuonDPG_cff.py:63
DQMEDAnalyzer.h
HLTConfigProvider::removeVersion
static const std::string removeVersion(const std::string &trigger)
Definition: HLTConfigProvider.cc:238
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
hltPlot::pathIDX
int pathIDX
Definition: HLTObjectsMonitor.cc:65
HLT_FULL_cff.eta1
eta1
Definition: HLT_FULL_cff.py:9541
hlt_dqm_clientPB-live_cfg.nbinsY
nbinsY
Definition: hlt_dqm_clientPB-live_cfg.py:69
DQMEDAnalyzer
Definition: DQMEDAnalyzer.py:1
HLTObjectsMonitor::bookHistograms
void bookHistograms(DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
Definition: HLTObjectsMonitor.cc:574
HLTObjectsMonitor::N_ETA_HEP17
int N_ETA_HEP17
Definition: HLTObjectsMonitor.cc:178
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
edm::ParameterSet
Definition: ParameterSet.h:47
q1
double q1[4]
Definition: TauolaWrapper.h:87
hltPlot::doPlotCSV
bool doPlotCSV
Definition: HLTObjectsMonitor.cc:82
HLTObjectsMonitor::dxyFinder
double dxyFinder(double, double, edm::Handle< reco::RecoChargedCandidateCollection >, edm::Handle< reco::BeamSpot >, double)
Definition: HLTObjectsMonitor.cc:871
hltPlot::massME
std::pair< MonitorElement *, bool > massME
Definition: HLTObjectsMonitor.cc:48
hltPlot::doPlotRazor
bool doPlotRazor
Definition: HLTObjectsMonitor.cc:85
Event.h
reco::LeafCandidate::eta
double eta() const final
momentum pseudorapidity
Definition: LeafCandidate.h:152
ParameterSet
Definition: Functions.h:16
PVValHelper::phi
Definition: PVValidationHelpers.h:68
deltaR.h
HLTObjectsMonitor::hltConfig_
HLTConfigProvider hltConfig_
Definition: HLTObjectsMonitor.cc:124
hltPlot::doPlotMASS
bool doPlotMASS
Definition: HLTObjectsMonitor.cc:79
HLTObjectsMonitor::eta_binning_hem17_
const MEbinning eta_binning_hem17_
Definition: HLTObjectsMonitor.cc:181
hltPlot::q1q2ME
std::pair< MonitorElement *, bool > q1q2ME
Definition: HLTObjectsMonitor.cc:61
hltPlot::etaBINNING
std::vector< double > etaBINNING
Definition: HLTObjectsMonitor.cc:69
hltPlot::etaVSphiME
std::pair< MonitorElement *, bool > etaVSphiME
Definition: HLTObjectsMonitor.cc:51
HLTObjectsMonitor::~HLTObjectsMonitor
~HLTObjectsMonitor() override=default
HLTObjectsMonitor::MAX_PHI
double MAX_PHI
Definition: HLTObjectsMonitor.cc:157
trigger::TriggerObjectCollection
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:75
HLTObjectsMonitor::N_CSV
int N_CSV
Definition: HLTObjectsMonitor.cc:162
hltPlot::dRetaVSphiME
std::pair< MonitorElement *, bool > dRetaVSphiME
Definition: HLTObjectsMonitor.cc:60
hltPlot::phiBINNING
std::vector< double > phiBINNING
Definition: HLTObjectsMonitor.cc:71
hltPlot::csvME
std::pair< MonitorElement *, bool > csvME
Definition: HLTObjectsMonitor.cc:50
iEvent
int iEvent
Definition: GenABIO.cc:224
EcalCalibMonitorClient_cfi.moduleName
moduleName
Definition: EcalCalibMonitorClient_cfi.py:17
dqm::impl::MonitorElement::setBinLabel
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:771
reco::JetTagCollection
JetFloatAssociation::Container JetTagCollection
Definition: JetTag.h:17
trigger::Keys
std::vector< size_type > Keys
Definition: TriggerTypeDefs.h:19
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
hltPlot::doPlotHEP17
bool doPlotHEP17
Definition: HLTObjectsMonitor.cc:81
hltPlot::ptME
std::pair< MonitorElement *, bool > ptME
Definition: HLTObjectsMonitor.cc:47
HLTObjectsMonitor::MIN_ETA_HEP17
double MIN_ETA_HEP17
Definition: HLTObjectsMonitor.cc:177
reco::RecoChargedCandidate
Definition: RecoChargedCandidate.h:15
triggerPaths
static const std::string triggerPaths
Definition: EdmProvDump.cc:46
edm::EventSetup
Definition: EventSetup.h:57
hltPlot::pathNAME
std::string pathNAME
Definition: HLTObjectsMonitor.cc:64
HLT_FULL_cff.pt2
pt2
Definition: HLT_FULL_cff.py:9872
HLTObjectsMonitor::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: HLTObjectsMonitor.cc:290
HLTConfigProvider.h
HLTObjectsMonitor::label_
std::string label_
Definition: HLTObjectsMonitor.cc:120
PDWG_DiPhoton_SD_cff.triggerEvent
triggerEvent
Definition: PDWG_DiPhoton_SD_cff.py:39
HLTObjectsMonitor::isHEM17
bool isHEM17(double eta, double phi)
Definition: HLTObjectsMonitor.cc:247
TriggerObject.h
hltPlot::doPF
bool doPF
Definition: HLTObjectsMonitor.cc:84
HLTConfigProvider::triggerIndex
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
Definition: HLTConfigProvider.h:73
DDAxes::phi
MET.h
HLTObjectsMonitor::MAX_ETA_HEP17
double MAX_ETA_HEP17
Definition: HLTObjectsMonitor.cc:176
HLTConfigProvider
Definition: HLTConfigProvider.h:29
std
Definition: JetResolutionObject.h:76
HLTConfigProvider::init
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
Definition: HLTConfigProvider.cc:36
HLTObjectsMonitor::plotPSETS_
std::vector< edm::ParameterSet > plotPSETS_
Definition: HLTObjectsMonitor.cc:122
PVValHelper::dxy
Definition: PVValidationHelpers.h:47
reco::LeafCandidate::phi
double phi() const final
momentum azimuthal angle
Definition: LeafCandidate.h:148
RecoChargedCandidate.h
PVValHelper::dz
Definition: PVValidationHelpers.h:50
hltPlot::dzBINNING
std::vector< double > dzBINNING
Definition: HLTObjectsMonitor.cc:74
Frameworkfwd.h
HLTObjectsMonitor::muCandidatesToken_
edm::EDGetTokenT< std::vector< reco::RecoChargedCandidate > > muCandidatesToken_
Definition: HLTObjectsMonitor.cc:145
HLT_FULL_cff.candidates
candidates
Definition: HLT_FULL_cff.py:54985
HLTObjectsMonitor::MEbinning::xmin
double xmin
Definition: HLTObjectsMonitor.cc:153
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
hltPlot
Definition: HLTObjectsMonitor.cc:41
HLTObjectsMonitor::MEbinning::nbins
int nbins
Definition: HLTObjectsMonitor.cc:152
EgHLTOffHistBins_cfi.mass
mass
Definition: EgHLTOffHistBins_cfi.py:34
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
HLTObjectsMonitor::TopFolder_
std::string TopFolder_
Definition: HLTObjectsMonitor.cc:119
hltPlot::nME
std::pair< MonitorElement *, bool > nME
Definition: HLTObjectsMonitor.cc:44
dqm::implementation::IBooker
Definition: DQMStore.h:43
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
trigger
Definition: HLTPrescaleTableCond.h:8
HLTObjectsMonitor::pfJetBTagsToken_
edm::EDGetTokenT< reco::JetTagCollection > pfJetBTagsToken_
Definition: HLTObjectsMonitor.cc:142
hltPlot::energyME
std::pair< MonitorElement *, bool > energyME
Definition: HLTObjectsMonitor.cc:49
HLTObjectsMonitor::getPSet
void getPSet()
Definition: HLTObjectsMonitor.cc:236
AlphaT.h
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HGC3DClusterGenMatchSelector_cfi.dR
dR
Definition: HGC3DClusterGenMatchSelector_cfi.py:7
ParameterSet.h
HLTConfigProvider::triggerNames
const std::vector< std::string > & triggerNames() const
names of trigger paths
Definition: HLTConfigProvider.h:69
globals_cff.id2
id2
Definition: globals_cff.py:34
hltPlot::doPlotDXY
bool doPlotDXY
Definition: HLTObjectsMonitor.cc:86
HLTObjectsMonitor_cfi.TriggerResults
TriggerResults
Definition: HLTObjectsMonitor_cfi.py:9
hltPlot::MonitorElement
dqm::reco::MonitorElement MonitorElement
Definition: HLTObjectsMonitor.cc:42
edm::Event
Definition: Event.h:73
hltPlot::phiME
std::pair< MonitorElement *, bool > phiME
Definition: HLTObjectsMonitor.cc:46
crabWrapper.key
key
Definition: crabWrapper.py:19
RecoChargedCandidateFwd.h
HLTObjectsMonitor::MASS_MU
const double MASS_MU
Definition: HLTObjectsMonitor.cc:149
dqm::impl::MonitorElement::setAxisTitle
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:800
HLTObjectsMonitor::phi_variable_binning_
std::vector< double > phi_variable_binning_
Definition: HLTObjectsMonitor.cc:165
HLTObjectsMonitor::eventsPlot_
MonitorElement * eventsPlot_
Definition: HLTObjectsMonitor.cc:126
edm::InputTag
Definition: InputTag.h:15
hltPlot::dRME
std::pair< MonitorElement *, bool > dRME
Definition: HLTObjectsMonitor.cc:59
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
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
HLTObjectsMonitor::caloJetBTagsToken_
edm::EDGetTokenT< reco::JetTagCollection > caloJetBTagsToken_
Definition: HLTObjectsMonitor.cc:141
ZCounting_cff.TriggerEvent
TriggerEvent
Definition: ZCounting_cff.py:5
HLTObjectsMonitor::mainFolder_
std::string mainFolder_
Definition: HLTObjectsMonitor.cc:132
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443