CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TopMonitor.cc
Go to the documentation of this file.
12 #include <cmath>
13 
14 // -----------------------------
15 // constructors and destructor
16 // -----------------------------
17 
19  : folderName_(iConfig.getParameter<std::string>("FolderName")),
20  requireValidHLTPaths_(iConfig.getParameter<bool>("requireValidHLTPaths")),
21  hltPathsAreValid_(false),
22  vtxToken_(mayConsume<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("vertices"))),
23  muoToken_(mayConsume<reco::MuonCollection>(iConfig.getParameter<edm::InputTag>("muons"))),
24  eleToken_(mayConsume<edm::View<reco::GsfElectron> >(iConfig.getParameter<edm::InputTag>("electrons"))),
25  elecIDToken_(consumes<edm::ValueMap<bool> >(iConfig.getParameter<edm::InputTag>("elecID"))),
26  phoToken_(mayConsume<reco::PhotonCollection>(iConfig.getParameter<edm::InputTag>("photons"))),
27  jetToken_(mayConsume<reco::PFJetCollection>(iConfig.getParameter<edm::InputTag>("jets"))),
28  jetTagTokens_(
29  edm::vector_transform(iConfig.getParameter<std::vector<edm::InputTag> >("btagAlgos"),
30  [this](edm::InputTag const& tag) { return mayConsume<reco::JetTagCollection>(tag); })),
31  metToken_(consumes<reco::PFMETCollection>(iConfig.getParameter<edm::InputTag>("met"))),
33  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("metPSet"))),
35  getHistoPSet(iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("lsPSet"))),
37  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("phiPSet"))),
39  getHistoPSet(iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("ptPSet"))),
41  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("etaPSet"))),
43  getHistoPSet(iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("htPSet"))),
45  getHistoPSet(iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("DRPSet"))),
47  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("csvPSet"))),
49  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("invMassPSet"))),
51  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("MHTPSet"))),
53  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("metBinning")),
55  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("HTBinning")),
57  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("jetPtBinning")),
59  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("muPtBinning")),
61  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("elePtBinning")),
63  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("jetEtaBinning")),
65  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("muEtaBinning")),
67  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("eleEtaBinning")),
68  invMass_mumu_variable_binning_(iConfig.getParameter<edm::ParameterSet>("histoPSet")
69  .getParameter<std::vector<double> >("invMassVariableBinning")),
71  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("MHTVariableBinning")),
73  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("HTBinning2D")),
75  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("jetPtBinning2D")),
77  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("muPtBinning2D")),
79  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("elePtBinning2D")),
81  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("phoPtBinning2D")),
83  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("jetEtaBinning2D")),
85  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("muEtaBinning2D")),
87  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("eleEtaBinning2D")),
89  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("phoEtaBinning2D")),
91  iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("phiBinning2D")),
93  iConfig.getParameter<edm::ParameterSet>("numGenericTriggerEventPSet"), consumesCollector(), *this)),
95  iConfig.getParameter<edm::ParameterSet>("denGenericTriggerEventPSet"), consumesCollector(), *this)),
96  metSelection_(iConfig.getParameter<std::string>("metSelection")),
97  jetSelection_(iConfig.getParameter<std::string>("jetSelection")),
98  eleSelection_(iConfig.getParameter<std::string>("eleSelection")),
99  muoSelection_(iConfig.getParameter<std::string>("muoSelection")),
100  phoSelection_(iConfig.getParameter<std::string>("phoSelection")),
101  HTdefinition_(iConfig.getParameter<std::string>("HTdefinition")),
102  vtxSelection_(iConfig.getParameter<std::string>("vertexSelection")),
103  bjetSelection_(iConfig.getParameter<std::string>("bjetSelection")),
104  njets_(iConfig.getParameter<unsigned int>("njets")),
105  nelectrons_(iConfig.getParameter<unsigned int>("nelectrons")),
106  nmuons_(iConfig.getParameter<unsigned int>("nmuons")),
107  nphotons_(iConfig.getParameter<unsigned int>("nphotons")),
108  leptJetDeltaRmin_(iConfig.getParameter<double>("leptJetDeltaRmin")),
109  bJetMuDeltaRmax_(iConfig.getParameter<double>("bJetMuDeltaRmax")),
110  bJetDeltaEtaMax_(iConfig.getParameter<double>("bJetDeltaEtaMax")),
111  HTcut_(iConfig.getParameter<double>("HTcut")),
112  nbjets_(iConfig.getParameter<unsigned int>("nbjets")),
113  workingpoint_(iConfig.getParameter<double>("workingpoint")),
114  applyLeptonPVcuts_(iConfig.getParameter<bool>("applyLeptonPVcuts")),
115  invMassUppercut_(iConfig.getParameter<double>("invMassUppercut")),
116  invMassLowercut_(iConfig.getParameter<double>("invMassLowercut")),
117  opsign_(iConfig.getParameter<bool>("oppositeSignMuons")),
118  MHTdefinition_(iConfig.getParameter<std::string>("MHTdefinition")),
119  MHTcut_(iConfig.getParameter<double>("MHTcut")),
120  invMassCutInAllMuPairs_(iConfig.getParameter<bool>("invMassCutInAllMuPairs")),
121  enablePhotonPlot_(iConfig.getParameter<bool>("enablePhotonPlot")),
122  enableMETPlot_(iConfig.getParameter<bool>("enableMETPlot")) {
123  ObjME empty;
124 
125  muPhi_ = std::vector<ObjME>(nmuons_, empty);
126  muEta_ = std::vector<ObjME>(nmuons_, empty);
127  muPt_ = std::vector<ObjME>(nmuons_, empty);
128  muEta_variableBinning_ = std::vector<ObjME>(nmuons_, empty);
129  muPt_variableBinning_ = std::vector<ObjME>(nmuons_, empty);
130  muPtEta_ = std::vector<ObjME>(nmuons_, empty);
131  muEtaPhi_ = std::vector<ObjME>(nmuons_, empty);
132 
133  elePhi_ = std::vector<ObjME>(nelectrons_, empty);
134  eleEta_ = std::vector<ObjME>(nelectrons_, empty);
135  elePt_ = std::vector<ObjME>(nelectrons_, empty);
136  eleEta_variableBinning_ = std::vector<ObjME>(nelectrons_, empty);
137  elePt_variableBinning_ = std::vector<ObjME>(nelectrons_, empty);
138  elePtEta_ = std::vector<ObjME>(nelectrons_, empty);
139  eleEtaPhi_ = std::vector<ObjME>(nelectrons_, empty);
140 
141  jetPhi_ = std::vector<ObjME>(njets_, empty);
142  jetEta_ = std::vector<ObjME>(njets_, empty);
143  jetPt_ = std::vector<ObjME>(njets_, empty);
144  jetEta_variableBinning_ = std::vector<ObjME>(njets_, empty);
145  jetPt_variableBinning_ = std::vector<ObjME>(njets_, empty);
146  jetPtEta_ = std::vector<ObjME>(njets_, empty);
147  jetEtaPhi_ = std::vector<ObjME>(njets_, empty);
148 
149  //Menglei Sun
150  phoPhi_ = std::vector<ObjME>(nphotons_, empty);
151  phoEta_ = std::vector<ObjME>(nphotons_, empty);
152  phoPt_ = std::vector<ObjME>(nphotons_, empty);
153  phoPtEta_ = std::vector<ObjME>(nphotons_, empty);
154  phoEtaPhi_ = std::vector<ObjME>(nphotons_, empty);
155 
156  // Marina
157  bjetPhi_ = std::vector<ObjME>(nbjets_, empty);
158  bjetEta_ = std::vector<ObjME>(nbjets_, empty);
159  bjetPt_ = std::vector<ObjME>(nbjets_, empty);
160  bjetCSV_ = std::vector<ObjME>(nbjets_, empty);
161  bjetEta_variableBinning_ = std::vector<ObjME>(nbjets_, empty);
162  bjetPt_variableBinning_ = std::vector<ObjME>(nbjets_, empty);
163  bjetPtEta_ = std::vector<ObjME>(nbjets_, empty);
164  bjetEtaPhi_ = std::vector<ObjME>(nbjets_, empty);
165  bjetCSVHT_ = std::vector<ObjME>(nbjets_, empty);
166  //Suvankar
167  lepPVcuts_.dxy = (iConfig.getParameter<edm::ParameterSet>("leptonPVcuts")).getParameter<double>("dxy");
168  lepPVcuts_.dz = (iConfig.getParameter<edm::ParameterSet>("leptonPVcuts")).getParameter<double>("dz");
169 }
170 
173  num_genTriggerEventFlag_.reset();
175  den_genTriggerEventFlag_.reset();
176 }
177 
178 void TopMonitor::bookHistograms(DQMStore::IBooker& ibooker, edm::Run const& iRun, edm::EventSetup const& iSetup) {
179  // Initialize the GenericTriggerEventFlag
181  num_genTriggerEventFlag_->initRun(iRun, iSetup);
183  den_genTriggerEventFlag_->initRun(iRun, iSetup);
184 
185  // check if every HLT path specified in numerator and denominator has a valid match in the HLT Menu
187  den_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->allHLTPathsAreValid() &&
188  den_genTriggerEventFlag_->allHLTPathsAreValid());
189 
190  // if valid HLT paths are required,
191  // create DQM outputs only if all paths are valid
193  return;
194  }
195 
196  std::string histname, histtitle;
197 
198  std::string currentFolder = folderName_;
199  ibooker.setCurrentFolder(currentFolder);
200 
201  if (enableMETPlot_) {
202  histname = "met";
203  histtitle = "PFMET";
204  bookME(ibooker, metME_, histname, histtitle, met_binning_.nbins, met_binning_.xmin, met_binning_.xmax);
205  setMETitle(metME_, "PF MET [GeV]", "events / [GeV]");
206 
207  histname = "metPhi";
208  histtitle = "PFMET phi";
209  bookME(ibooker, metPhiME_, histname, histtitle, phi_binning_.nbins, phi_binning_.xmin, phi_binning_.xmax);
210  setMETitle(metPhiME_, "PF MET #phi", "events / 0.1 rad");
211 
212  histname = "met_variable";
213  histtitle = "PFMET";
214  bookME(ibooker, metME_variableBinning_, histname, histtitle, met_variable_binning_);
215  setMETitle(metME_variableBinning_, "PF MET [GeV]", "events / [GeV]");
216 
217  histname = "metVsLS";
218  histtitle = "PFMET vs LS";
219  bookME(ibooker,
220  metVsLS_,
221  histname,
222  histtitle,
228  setMETitle(metVsLS_, "LS", "PF MET [GeV]");
229  }
230 
231  if (njets_ > 0) {
232  histname = "jetVsLS";
233  histtitle = "jet pt vs LS";
234  bookME(ibooker,
235  jetVsLS_,
236  histname,
237  histtitle,
242  pt_binning_.xmax);
243  setMETitle(jetVsLS_, "LS", "jet pt [GeV]");
244 
245  histname = "jetEtaPhi_HEP17";
246  histtitle = "jet #eta-#phi for HEP17";
247  bookME(ibooker, jetEtaPhi_HEP17_, histname, histtitle, 10, -2.5, 2.5, 18, -3.1415, 3.1415); // for HEP17 monitoring
248  setMETitle(jetEtaPhi_HEP17_, "jet #eta", "jet #phi");
249 
250  histname = "jetMulti";
251  histtitle = "jet multiplicity";
252  bookME(ibooker, jetMulti_, histname, histtitle, 11, -.5, 10.5);
253  setMETitle(jetMulti_, "jet multiplicity", "events");
254  }
255 
256  if (nmuons_ > 0) {
257  histname = "muVsLS";
258  histtitle = "muon pt vs LS";
259  bookME(ibooker,
260  muVsLS_,
261  histname,
262  histtitle,
267  pt_binning_.xmax);
268  setMETitle(muVsLS_, "LS", "muon pt [GeV]");
269 
270  histname = "muMulti";
271  histtitle = "muon multiplicity";
272  bookME(ibooker, muMulti_, histname, histtitle, 6, -.5, 5.5);
273  setMETitle(muMulti_, "muon multiplicity", "events");
274 
275  if (njets_ > 0) {
276  histname = "DeltaR_jet_Mu";
277  histtitle = "#DeltaR(jet,mu)";
278  bookME(ibooker, DeltaR_jet_Mu_, histname, histtitle, DR_binning_.nbins, DR_binning_.xmin, DR_binning_.xmax);
279  setMETitle(DeltaR_jet_Mu_, "#DeltaR(jet,mu)", "events");
280  }
281  }
282 
283  if (nelectrons_ > 0) {
284  histname = "eleVsLS";
285  histtitle = "electron pt vs LS";
286  bookME(ibooker,
287  eleVsLS_,
288  histname,
289  histtitle,
294  pt_binning_.xmax);
295  setMETitle(eleVsLS_, "LS", "electron pt [GeV]");
296 
297  histname = "eleMulti";
298  histtitle = "electron multiplicity";
299  bookME(ibooker, eleMulti_, histname, histtitle, 6, -.5, 5.5);
300  setMETitle(eleMulti_, "electron multiplicity", "events");
301 
302  if (njets_ > 0) {
303  histname = "elePt_jetPt";
304  histtitle = "electron pt vs jet pt";
306  setMETitle(elePt_jetPt_, "leading electron pt", "leading jet pt");
307  }
308 
309  if (nmuons_ > 0) {
310  histname = "elePt_muPt";
311  histtitle = "electron pt vs muon pt";
313  setMETitle(elePt_muPt_, "electron pt [GeV]", "muon pt [GeV]");
314 
315  histname = "eleEta_muEta";
316  histtitle = "electron #eta vs muon #eta";
318  setMETitle(eleEta_muEta_, "electron #eta", "muon #eta");
319  }
320  }
321 
322  //Menglei
323  if (enablePhotonPlot_) {
324  if (nphotons_ > 0) {
325  histname = "photonVsLS";
326  histtitle = "photon pt vs LS";
327  bookME(ibooker,
328  phoVsLS_,
329  histname,
330  histtitle,
335  pt_binning_.xmax);
336  setMETitle(phoVsLS_, "LS", "photon pt [GeV]");
337  }
338  }
339 
340  // Marina
341  if (nbjets_ > 0) {
342  histname = "bjetVsLS";
343  histtitle = "b-jet pt vs LS";
344  bookME(ibooker,
345  bjetVsLS_,
346  histname,
347  histtitle,
352  pt_binning_.xmax);
353  setMETitle(bjetVsLS_, "LS", "b-jet pt [GeV]");
354 
355  histname = "bjetMulti";
356  histtitle = "b-jet multiplicity";
357  bookME(ibooker, bjetMulti_, histname, histtitle, 6, -.5, 5.5);
358  setMETitle(bjetMulti_, "b-jet multiplicity", "events");
359  }
360 
361  if (nelectrons_ > 1) {
362  histname = "ele1Pt_ele2Pt";
363  histtitle = "electron-1 pt vs electron-2 pt";
365  setMETitle(ele1Pt_ele2Pt_, "electron-1 pt [GeV]", "electron-2 pt [GeV]");
366 
367  histname = "ele1Eta_ele2Eta";
368  histtitle = "electron-1 #eta vs electron-2 #eta";
370  setMETitle(ele1Eta_ele2Eta_, "electron-1 #eta", "electron-2 #eta");
371  }
372 
373  if (nmuons_ > 1) {
374  histname = "mu1Pt_mu2Pt";
375  histtitle = "muon-1 pt vs muon-2 pt";
377  setMETitle(mu1Pt_mu2Pt_, "muon-1 pt [GeV]", "muon-2 pt [GeV]");
378 
379  histname = "mu1Eta_mu2Eta";
380  histtitle = "muon-1 #eta vs muon-2 #eta";
382  setMETitle(mu1Eta_mu2Eta_, "muon-1 #eta", "muon-2 #eta");
383  //george
384  histname = "invMass";
385  histtitle = "M mu1 mu2";
386  bookME(ibooker,
388  histname,
389  histtitle,
393  setMETitle(invMass_mumu_, "M(mu1,mu2) [GeV]", "events");
394  histname = "invMass_variable";
395  histtitle = "M mu1 mu2 variable";
397  setMETitle(invMass_mumu_variableBinning_, "M(mu1,mu2) [GeV]", "events / [GeV]");
398  }
399 
400  if (HTcut_ > 0) {
401  histname = "htVsLS";
402  histtitle = "event HT vs LS";
403  bookME(ibooker,
404  htVsLS_,
405  histname,
406  histtitle,
411  pt_binning_.xmax);
412  setMETitle(htVsLS_, "LS", "event HT [GeV]");
413 
414  histname = "eventHT";
415  histtitle = "event HT";
416  bookME(ibooker, eventHT_, histname, histtitle, HT_binning_.nbins, HT_binning_.xmin, HT_binning_.xmax);
417  setMETitle(eventHT_, " event HT [GeV]", "events");
418  histname.append("_variableBinning");
419  bookME(ibooker, eventHT_variableBinning_, histname, histtitle, HT_variable_binning_);
420  setMETitle(eventHT_variableBinning_, "event HT [GeV]", "events");
421 
422  if (nelectrons_ > 0) {
423  histname = "elePt_eventHT";
424  histtitle = "electron pt vs event HT";
426  setMETitle(elePt_eventHT_, "leading electron pt", "event HT");
427  }
428  }
429 
430  if (MHTcut_ > 0) {
431  //george
432  histname = "eventMHT";
433  histtitle = "event MHT";
434  bookME(ibooker, eventMHT_, histname, histtitle, MHT_binning_.nbins, MHT_binning_.xmin, MHT_binning_.xmax);
435  setMETitle(eventMHT_, " event MHT [GeV]", "events");
436 
437  histname = "eventMHT_variable";
438  histtitle = "event MHT variable";
439  bookME(ibooker, eventMHT_variableBinning_, histname, histtitle, MHT_variable_binning_);
440  setMETitle(eventMHT_variableBinning_, "event MHT [GeV]", "events / [GeV]");
441  }
442 
443  //Menglei
444  if (enablePhotonPlot_) {
445  if ((nmuons_ > 0) && (nphotons_ > 0)) {
446  histname = "muPt_phoPt", histtitle = "muon pt vs photon pt";
448  setMETitle(muPt_phoPt_, "muon pt [GeV]", "photon pt [GeV]");
449 
450  histname = "muEta_phoEta", histtitle = "muon #eta vs photon #eta";
452  setMETitle(muEta_phoEta_, "muon #eta", "photon #eta");
453  }
454  }
455 
456  for (unsigned int iMu = 0; iMu < nmuons_; ++iMu) {
457  std::string index = std::to_string(iMu + 1);
458 
459  histname = "muPt_";
460  histtitle = "muon p_{T} - ";
461  histname.append(index);
462  histtitle.append(index);
463  bookME(ibooker, muPt_.at(iMu), histname, histtitle, pt_binning_.nbins, pt_binning_.xmin, pt_binning_.xmax);
464  setMETitle(muPt_.at(iMu), "muon p_{T} [GeV]", "events");
465  histname.append("_variableBinning");
466  bookME(ibooker, muPt_variableBinning_.at(iMu), histname, histtitle, muPt_variable_binning_);
467  setMETitle(muPt_variableBinning_.at(iMu), "muon p_{T} [GeV]", "events");
468 
469  histname = "muEta_";
470  histtitle = "muon #eta - ";
471  histname.append(index);
472  histtitle.append(index);
473  bookME(ibooker, muEta_.at(iMu), histname, histtitle, eta_binning_.nbins, eta_binning_.xmin, eta_binning_.xmax);
474  setMETitle(muEta_.at(iMu), " muon #eta", "events");
475  histname.append("_variableBinning");
476  bookME(ibooker, muEta_variableBinning_.at(iMu), histname, histtitle, muEta_variable_binning_);
477  setMETitle(muEta_variableBinning_.at(iMu), " muon #eta", "events");
478 
479  histname = "muPhi_";
480  histtitle = "muon #phi - ";
481  histname.append(index);
482  histtitle.append(index);
483  bookME(ibooker, muPhi_.at(iMu), histname, histtitle, phi_binning_.nbins, phi_binning_.xmin, phi_binning_.xmax);
484  setMETitle(muPhi_.at(iMu), " muon #phi", "events");
485 
486  histname = "muPtEta_";
487  histtitle = "muon p_{T} - #eta - ";
488  histname.append(index);
489  histtitle.append(index);
490  bookME(ibooker, muPtEta_.at(iMu), histname, histtitle, muPt_variable_binning_2D_, muEta_variable_binning_2D_);
491  setMETitle(muPtEta_.at(iMu), "muon p_{T} [GeV]", "muon #eta");
492 
493  histname = "muEtaPhi_";
494  histtitle = "muon #eta - #phi - ";
495  histname.append(index);
496  histtitle.append(index);
497  bookME(ibooker, muEtaPhi_.at(iMu), histname, histtitle, muEta_variable_binning_2D_, phi_variable_binning_2D_);
498  setMETitle(muEtaPhi_.at(iMu), "muon #eta", "muon #phi");
499  }
500 
501  for (unsigned int iEle = 0; iEle < nelectrons_; ++iEle) {
502  std::string index = std::to_string(iEle + 1);
503 
504  histname = "elePt_";
505  histtitle = "electron p_{T} - ";
506  histname.append(index);
507  histtitle.append(index);
508  bookME(ibooker, elePt_.at(iEle), histname, histtitle, pt_binning_.nbins, pt_binning_.xmin, pt_binning_.xmax);
509  setMETitle(elePt_.at(iEle), "electron p_{T} [GeV]", "events");
510  histname.append("_variableBinning");
511  bookME(ibooker, elePt_variableBinning_.at(iEle), histname, histtitle, elePt_variable_binning_);
512  setMETitle(elePt_variableBinning_.at(iEle), "electron p_{T} [GeV]", "events");
513 
514  histname = "eleEta_";
515  histtitle = "electron #eta - ";
516  histname.append(index);
517  histtitle.append(index);
518  bookME(ibooker, eleEta_.at(iEle), histname, histtitle, eta_binning_.nbins, eta_binning_.xmin, eta_binning_.xmax);
519  setMETitle(eleEta_.at(iEle), " electron #eta", "events");
520  histname.append("_variableBinning");
521  bookME(ibooker, eleEta_variableBinning_.at(iEle), histname, histtitle, eleEta_variable_binning_);
522  setMETitle(eleEta_variableBinning_.at(iEle), "electron #eta", "events");
523 
524  histname = "elePhi_";
525  histtitle = "electron #phi - ";
526  histname.append(index);
527  histtitle.append(index);
528  bookME(ibooker, elePhi_.at(iEle), histname, histtitle, phi_binning_.nbins, phi_binning_.xmin, phi_binning_.xmax);
529  setMETitle(elePhi_.at(iEle), " electron #phi", "events");
530 
531  histname = "elePtEta_";
532  histtitle = "electron p_{T} - #eta - ";
533  histname.append(index);
534  histtitle.append(index);
535  bookME(ibooker, elePtEta_.at(iEle), histname, histtitle, elePt_variable_binning_2D_, eleEta_variable_binning_2D_);
536  setMETitle(elePtEta_.at(iEle), "electron p_{T} [GeV]", "electron #eta");
537 
538  histname = "eleEtaPhi_";
539  histtitle = "electron #eta - #phi - ";
540  histname.append(index);
541  histtitle.append(index);
542  bookME(ibooker, eleEtaPhi_.at(iEle), histname, histtitle, eleEta_variable_binning_2D_, phi_variable_binning_2D_);
543  setMETitle(eleEtaPhi_.at(iEle), "electron #eta", "electron #phi");
544  }
545 
546  //Menglei
547  if (enablePhotonPlot_) {
548  for (unsigned int iPho(0); iPho < nphotons_; iPho++) {
549  std::string index = std::to_string(iPho + 1);
550 
551  histname = "phoPt_";
552  histtitle = "photon p_{T} - ";
553  histname.append(index);
554  histtitle.append(index);
555  bookME(ibooker, phoPt_[iPho], histname, histtitle, pt_binning_.nbins, pt_binning_.xmin, pt_binning_.xmax);
556  setMETitle(phoPt_[iPho], "photon p_{T} [GeV]", "events");
557 
558  histname = "phoEta_";
559  histtitle = "photon #eta - ";
560  histname.append(index);
561  histtitle.append(index);
562  bookME(ibooker, phoEta_[iPho], histname, histtitle, eta_binning_.nbins, eta_binning_.xmin, eta_binning_.xmax);
563  setMETitle(phoEta_[iPho], "photon #eta", "events");
564 
565  histname = "phoPhi_";
566  histtitle = "photon #phi - ";
567  histname.append(index);
568  histtitle.append(index);
569  bookME(ibooker, phoPhi_[iPho], histname, histtitle, phi_binning_.nbins, phi_binning_.xmin, phi_binning_.xmax);
570  setMETitle(phoPhi_[iPho], "photon #phi", "events");
571 
572  histname = "phoPtEta_";
573  histtitle = "photon p_{T} - #eta - ";
574  histname.append(index);
575  histtitle.append(index);
576  bookME(ibooker, phoPtEta_[iPho], histname, histtitle, phoPt_variable_binning_2D_, phoEta_variable_binning_2D_);
577  setMETitle(phoPtEta_[iPho], "photon p_{T} [GeV]", "photon #eta");
578 
579  histname = "phoEtaPhi_";
580  histtitle = "photon #eta - #phi - ";
581  histname.append(index);
582  histtitle.append(index);
583  bookME(ibooker, phoEtaPhi_[iPho], histname, histtitle, phoEta_variable_binning_2D_, phi_variable_binning_2D_);
584  setMETitle(phoEtaPhi_[iPho], "photon #eta", "photon #phi");
585  }
586  }
587 
588  for (unsigned int iJet = 0; iJet < njets_; ++iJet) {
589  std::string index = std::to_string(iJet + 1);
590 
591  histname = "jetPt_";
592  histtitle = "jet p_{T} - ";
593  histname.append(index);
594  histtitle.append(index);
595  bookME(ibooker, jetPt_.at(iJet), histname, histtitle, pt_binning_.nbins, pt_binning_.xmin, pt_binning_.xmax);
596  setMETitle(jetPt_.at(iJet), "jet p_{T} [GeV]", "events");
597  histname.append("_variableBinning");
598  bookME(ibooker, jetPt_variableBinning_.at(iJet), histname, histtitle, jetPt_variable_binning_);
599  setMETitle(jetPt_variableBinning_.at(iJet), "jet p_{T} [GeV]", "events");
600 
601  histname = "jetEta_";
602  histtitle = "jet #eta - ";
603  histname.append(index);
604  histtitle.append(index);
605  bookME(ibooker, jetEta_.at(iJet), histname, histtitle, eta_binning_.nbins, eta_binning_.xmin, eta_binning_.xmax);
606  setMETitle(jetEta_.at(iJet), "jet #eta", "events");
607  histname.append("_variableBinning");
608  bookME(ibooker, jetEta_variableBinning_.at(iJet), histname, histtitle, jetEta_variable_binning_);
609  setMETitle(jetEta_variableBinning_.at(iJet), "jet #eta", "events");
610 
611  histname = "jetPhi_";
612  histtitle = "jet #phi - ";
613  histname.append(index);
614  histtitle.append(index);
615  bookME(ibooker, jetPhi_.at(iJet), histname, histtitle, phi_binning_.nbins, phi_binning_.xmin, phi_binning_.xmax);
616  setMETitle(jetPhi_.at(iJet), "jet #phi", "events");
617 
618  histname = "jetPtEta_";
619  histtitle = "jet p_{T} - #eta - ";
620  histname.append(index);
621  histtitle.append(index);
622  bookME(ibooker, jetPtEta_.at(iJet), histname, histtitle, jetPt_variable_binning_2D_, jetEta_variable_binning_2D_);
623  setMETitle(jetPtEta_.at(iJet), "jet p_{T} [GeV]", "jet #eta");
624 
625  histname = "jetEtaPhi_";
626  histtitle = "jet #eta - #phi - ";
627  histname.append(index);
628  histtitle.append(index);
629  bookME(ibooker, jetEtaPhi_.at(iJet), histname, histtitle, jetEta_variable_binning_2D_, phi_variable_binning_2D_);
630  setMETitle(jetEtaPhi_.at(iJet), "jet #eta", "jet #phi");
631  }
632 
633  // Marina
634  for (unsigned int iBJet = 0; iBJet < nbjets_; ++iBJet) {
635  std::string index = std::to_string(iBJet + 1);
636 
637  histname = "bjetPt_";
638  histtitle = "b-jet p_{T} - ";
639  histname.append(index);
640  histtitle.append(index);
641  bookME(ibooker, bjetPt_.at(iBJet), histname, histtitle, pt_binning_.nbins, pt_binning_.xmin, pt_binning_.xmax);
642  setMETitle(bjetPt_.at(iBJet), "b-jet p_{T} [GeV]", "events");
643  histname.append("_variableBinning");
644  bookME(ibooker, bjetPt_variableBinning_.at(iBJet), histname, histtitle, jetPt_variable_binning_);
645  setMETitle(bjetPt_variableBinning_.at(iBJet), "b-jet p_{T} [GeV]", "events");
646 
647  histname = "bjetEta_";
648  histtitle = "b-jet #eta - ";
649  histname.append(index);
650  histtitle.append(index);
651  bookME(ibooker, bjetEta_.at(iBJet), histname, histtitle, eta_binning_.nbins, eta_binning_.xmin, eta_binning_.xmax);
652  setMETitle(bjetEta_.at(iBJet), "b-jet #eta", "events");
653  histname.append("_variableBinning");
654  bookME(ibooker, bjetEta_variableBinning_.at(iBJet), histname, histtitle, jetEta_variable_binning_);
655  setMETitle(bjetEta_variableBinning_.at(iBJet), "b-jet #eta", "events");
656 
657  histname = "bjetPhi_";
658  histtitle = "b-jet #phi - ";
659  histname.append(index);
660  histtitle.append(index);
661  bookME(ibooker, bjetPhi_.at(iBJet), histname, histtitle, phi_binning_.nbins, phi_binning_.xmin, phi_binning_.xmax);
662  setMETitle(bjetPhi_.at(iBJet), "b-jet #phi", "events");
663 
664  histname = "bjetCSV_";
665  histtitle = "b-jet CSV - ";
666  histname.append(index);
667  histtitle.append(index);
668  bookME(ibooker, bjetCSV_.at(iBJet), histname, histtitle, csv_binning_.nbins, csv_binning_.xmin, csv_binning_.xmax);
669  setMETitle(bjetCSV_.at(iBJet), "b-jet CSV", "events");
670 
671  histname = "bjetPtEta_";
672  histtitle = "b-jet p_{T} - #eta - ";
673  histname.append(index);
674  histtitle.append(index);
675  bookME(ibooker, bjetPtEta_.at(iBJet), histname, histtitle, jetPt_variable_binning_2D_, jetEta_variable_binning_2D_);
676  setMETitle(bjetPtEta_.at(iBJet), "b-jet p_{T} [GeV]", "b-jet #eta");
677 
678  histname = "bjetEtaPhi_";
679  histtitle = "b-jet #eta - #phi - ";
680  histname.append(index);
681  histtitle.append(index);
682  bookME(ibooker, bjetEtaPhi_.at(iBJet), histname, histtitle, jetEta_variable_binning_2D_, phi_variable_binning_2D_);
683  setMETitle(bjetEtaPhi_.at(iBJet), "b-jet #eta", "b-jet #phi");
684 
685  histname = "bjetCSVHT_";
686  histtitle = "HT - b-jet CSV - ";
687  histname.append(index);
688  histtitle.append(index);
689  bookME(ibooker,
690  bjetCSVHT_.at(iBJet),
691  histname,
692  histtitle,
698  HT_binning_.xmax);
699  setMETitle(bjetCSVHT_.at(iBJet), "b-jet CSV", "event HT [GeV]");
700  }
701 }
702 
704  // if valid HLT paths are required,
705  // analyze event only if all paths are valid
707  return;
708  }
709 
710  // Filter out events if Trigger Filtering is requested
711  if (den_genTriggerEventFlag_->on() && !den_genTriggerEventFlag_->accept(iEvent, iSetup)) {
712  return;
713  }
714 
716  iEvent.getByToken(vtxToken_, primaryVertices);
717  //Primary Vertex selection
718  const reco::Vertex* pv = nullptr;
719  for (auto const& v : *primaryVertices) {
720  if (!vtxSelection_(v)) {
721  continue;
722  }
723  pv = &v;
724  break;
725  }
726  if (applyLeptonPVcuts_ && (pv == nullptr)) {
727  edm::LogWarning("TopMonitor") << "Invalid handle to reco::VertexCollection, event will be skipped";
728  return;
729  }
730 
732  iEvent.getByToken(metToken_, metHandle);
733  if ((not metHandle.isValid()) && enableMETPlot_) {
734  edm::LogWarning("TopMonitor") << "MET handle not valid \n";
735  return;
736  }
737 
738  double met_pt(-99.);
739  double met_phi(-99.);
740 
741  if (enableMETPlot_) {
742  const reco::PFMET& pfmet = metHandle->front();
743 
744  if (!metSelection_(pfmet)) {
745  return;
746  }
747 
748  met_pt = pfmet.pt();
749  met_phi = pfmet.phi();
750  }
751 
753  iEvent.getByToken(eleToken_, eleHandle);
754  if (!eleHandle.isValid() && nelectrons_ > 0) {
755  edm::LogWarning("TopMonitor") << "Electron handle not valid \n";
756  return;
757  }
758 
759  edm::Handle<edm::ValueMap<bool> > eleIDHandle;
760  iEvent.getByToken(elecIDToken_, eleIDHandle);
761  if (!eleIDHandle.isValid() && nelectrons_ > 0) {
762  edm::LogWarning("TopMonitor") << "Electron ID handle not valid \n";
763  return;
764  }
765 
766  std::vector<reco::GsfElectron> electrons;
767  if (nelectrons_ > 0) {
768  if (eleHandle->size() < nelectrons_) {
769  return;
770  }
771 
772  for (size_t index = 0; index < eleHandle->size(); index++) {
773  const auto e = eleHandle->at(index);
774  const auto el = eleHandle->ptrAt(index);
775 
776  bool pass_id = (*eleIDHandle)[el];
777 
778  if (eleSelection_(e) && pass_id) {
779  electrons.push_back(e);
780  }
781 
782  if (applyLeptonPVcuts_ && ((std::fabs(e.gsfTrack()->dxy(pv->position())) >= lepPVcuts_.dxy) ||
783  (std::fabs(e.gsfTrack()->dz(pv->position())) >= lepPVcuts_.dz))) {
784  continue;
785  }
786  }
787 
788  if (electrons.size() < nelectrons_) {
789  return;
790  }
791  }
792 
794  iEvent.getByToken(muoToken_, muoHandle);
795  if (!muoHandle.isValid() && nmuons_ > 0) {
796  edm::LogWarning("TopMonitor") << "Muon handle not valid \n";
797  return;
798  }
799 
800  if (muoHandle->size() < nmuons_) {
801  return;
802  }
803 
804  std::vector<reco::Muon> muons;
805  if (nmuons_ > 0) {
806  for (auto const& m : *muoHandle) {
807  if (muoSelection_(m)) {
808  muons.push_back(m);
809  }
810 
811  if (applyLeptonPVcuts_ && ((std::fabs(m.muonBestTrack()->dxy(pv->position())) >= lepPVcuts_.dxy) ||
812  (std::fabs(m.muonBestTrack()->dz(pv->position())) >= lepPVcuts_.dz))) {
813  continue;
814  }
815  }
816 
817  if (muons.size() < nmuons_) {
818  return;
819  }
820  }
821 
822  double mll(-2);
823  if (nmuons_ > 1) {
824  mll = (muons[0].p4() + muons[1].p4()).M();
825 
826  if ((invMassUppercut_ > -1) && (invMassLowercut_ > -1) && ((mll > invMassUppercut_) || (mll < invMassLowercut_))) {
827  return;
828  }
829  if (opsign_ && (muons[0].charge() == muons[1].charge())) {
830  return;
831  }
832  }
833 
835  iEvent.getByToken(phoToken_, phoHandle);
836  if (!phoHandle.isValid()) {
837  edm::LogWarning("TopMonitor") << "Photon handle not valid \n";
838  return;
839  }
840  if (phoHandle->size() < nphotons_) {
841  return;
842  }
843 
844  std::vector<reco::Photon> photons;
845  for (auto const& p : *phoHandle) {
846  if (phoSelection_(p)) {
847  photons.push_back(p);
848  }
849  }
850  if (photons.size() < nphotons_) {
851  return;
852  }
853 
854  double eventHT(0.);
855  math::XYZTLorentzVector eventMHT(0., 0., 0., 0.);
856 
858  iEvent.getByToken(jetToken_, jetHandle);
859  if (!jetHandle.isValid() && njets_ > 0) {
860  edm::LogWarning("TopMonitor") << "Jet handle not valid \n";
861  return;
862  }
863  std::vector<reco::PFJet> jets;
864  if (njets_ > 0) {
865  if (jetHandle->size() < njets_)
866  return;
867  for (auto const& j : *jetHandle) {
868  if (HTdefinition_(j)) {
869  eventHT += j.pt();
870  }
871  if (MHTdefinition_(j)) {
872  eventMHT += j.p4();
873  }
874  if (jetSelection_(j)) {
875  bool isJetOverlappedWithLepton = false;
876  if (nmuons_ > 0) {
877  for (auto const& m : muons) {
878  if (deltaR(j, m) < leptJetDeltaRmin_) {
879  isJetOverlappedWithLepton = true;
880  break;
881  }
882  }
883  }
884  if (isJetOverlappedWithLepton)
885  continue;
886  if (nelectrons_ > 0) {
887  for (auto const& e : electrons) {
888  if (deltaR(j, e) < leptJetDeltaRmin_) {
889  isJetOverlappedWithLepton = true;
890  break;
891  }
892  }
893  }
894  if (isJetOverlappedWithLepton)
895  continue;
896  jets.push_back(j);
897  }
898  }
899  if (jets.size() < njets_)
900  return;
901  }
902 
903  if (eventHT < HTcut_) {
904  return;
905  }
906 
907  if ((MHTcut_ > 0) && (eventMHT.pt() < MHTcut_)) {
908  return;
909  }
910 
911  bool allpairs = false;
912  if (nmuons_ > 2) {
913  double mumu_mass;
914  for (unsigned int idx = 0; idx < muons.size(); idx++) {
915  for (unsigned int idx2 = idx + 1; idx2 < muons.size(); idx2++) {
916  //compute inv mass of two different leptons
917  mumu_mass = (muons[idx2].p4() + muons[idx2].p4()).M();
918  if (mumu_mass < invMassLowercut_ || mumu_mass > invMassUppercut_)
919  allpairs = true;
920  }
921  }
922  }
923  //cut only if enabled and the event has a pair that failed the mll range
924  if (allpairs && invMassCutInAllMuPairs_) {
925  return;
926  }
927 
928  JetTagMap bjets;
929 
930  if (nbjets_ > 0) {
931  // map of Jet,btagValues (for all jets passing bJetSelection_)
932  // - btagValue of each jet is calculated as sum of values from InputTags in jetTagTokens_
933  JetTagMap allJetBTagVals;
934 
935  for (const auto& jetTagToken : jetTagTokens_) {
937  iEvent.getByToken(jetTagToken, bjetHandle);
938  if (not bjetHandle.isValid()) {
939  edm::LogWarning("TopMonitor") << "B-Jet handle not valid, will skip event \n";
940  return;
941  }
942 
943  const reco::JetTagCollection& bTags = *(bjetHandle.product());
944 
945  for (const auto& i_jetTag : bTags) {
946  const auto& jetRef = i_jetTag.first;
947 
948  if (not bjetSelection_(*dynamic_cast<const reco::Jet*>(jetRef.get()))) {
949  continue;
950  }
951 
952  const auto btagVal = i_jetTag.second;
953 
954  if (not std::isfinite(btagVal)) {
955  continue;
956  }
957 
958  if (allJetBTagVals.find(jetRef) != allJetBTagVals.end()) {
959  allJetBTagVals.at(jetRef) += btagVal;
960  } else {
961  allJetBTagVals.insert(JetTagMap::value_type(jetRef, btagVal));
962  }
963  }
964  }
965 
966  for (const auto& jetBTagVal : allJetBTagVals) {
967  if (jetBTagVal.second < workingpoint_) {
968  continue;
969  }
970 
971  bjets.insert(JetTagMap::value_type(jetBTagVal.first, jetBTagVal.second));
972  }
973 
974  if (bjets.size() < nbjets_) {
975  return;
976  }
977  }
978 
979  if (nbjets_ > 1) {
980  double deltaEta = std::abs(bjets.begin()->first->eta() - (++bjets.begin())->first->eta());
981  if (deltaEta > bJetDeltaEtaMax_)
982  return;
983  }
984 
985  if ((nbjets_ > 0) && (nmuons_ > 0)) {
986  bool foundMuonInsideJet = false;
987  for (auto const& bjet : bjets) {
988  for (auto const& mu : muons) {
989  double dR = deltaR(*bjet.first, mu);
990  if (dR < bJetMuDeltaRmax_) {
991  foundMuonInsideJet = true;
992  break;
993  }
994  }
995  if (foundMuonInsideJet)
996  break;
997  }
998 
999  if (!foundMuonInsideJet)
1000  return;
1001  }
1002 
1003  const int ls = iEvent.id().luminosityBlock();
1004 
1005  // numerator condition
1006  const bool trg_passed = (num_genTriggerEventFlag_->on() && num_genTriggerEventFlag_->accept(iEvent, iSetup));
1007 
1008  if (enableMETPlot_) {
1009  metME_.fill(trg_passed, met_pt);
1010  metME_variableBinning_.fill(trg_passed, met_pt);
1011  metPhiME_.fill(trg_passed, met_phi);
1012  metVsLS_.fill(trg_passed, ls, met_pt);
1013  }
1014  if (HTcut_ > 0) {
1015  eventHT_.fill(trg_passed, eventHT);
1016  eventHT_variableBinning_.fill(trg_passed, eventHT);
1017  htVsLS_.fill(trg_passed, ls, eventHT);
1018  }
1019  //george
1020  if (MHTcut_ > 0) {
1021  eventMHT_.fill(trg_passed, eventMHT.pt());
1022  eventMHT_variableBinning_.fill(trg_passed, eventMHT.pt());
1023  }
1024 
1025  if (njets_ > 0) {
1026  jetMulti_.fill(trg_passed, jets.size());
1027  jetEtaPhi_HEP17_.fill(trg_passed, jets.at(0).eta(), jets.at(0).phi()); // for HEP17 monitorning
1028  jetVsLS_.fill(trg_passed, ls, jets.at(0).pt());
1029  }
1030 
1031  if (enablePhotonPlot_) {
1032  phoMulti_.fill(trg_passed, photons.size());
1033  }
1034 
1035  // Marina
1036  if (nbjets_ > 0) {
1037  bjetMulti_.fill(trg_passed, bjets.size());
1038  bjetVsLS_.fill(trg_passed, ls, bjets.begin()->first->pt());
1039  }
1040 
1041  if (nmuons_ > 0) {
1042  muMulti_.fill(trg_passed, muons.size());
1043  muVsLS_.fill(trg_passed, ls, muons.at(0).pt());
1044  if (nmuons_ > 1) {
1045  mu1Pt_mu2Pt_.fill(trg_passed, muons.at(0).pt(), muons.at(1).pt());
1046  mu1Eta_mu2Eta_.fill(trg_passed, muons.at(0).eta(), muons.at(1).eta());
1047  invMass_mumu_.fill(trg_passed, mll);
1048  invMass_mumu_variableBinning_.fill(trg_passed, mll);
1049  }
1050  if (njets_ > 0) {
1051  DeltaR_jet_Mu_.fill(trg_passed, deltaR(jets.at(0), muons.at(0)));
1052  }
1053  }
1054 
1055  if (nelectrons_ > 0) {
1056  eleMulti_.fill(trg_passed, electrons.size());
1057  eleVsLS_.fill(trg_passed, ls, electrons.at(0).pt());
1058  if (HTcut_ > 0)
1059  elePt_eventHT_.fill(trg_passed, electrons.at(0).pt(), eventHT);
1060  if (njets_ > 0)
1061  elePt_jetPt_.fill(trg_passed, electrons.at(0).pt(), jets.at(0).pt());
1062  if (nmuons_ > 0) {
1063  elePt_muPt_.fill(trg_passed, electrons.at(0).pt(), muons.at(0).pt());
1064  eleEta_muEta_.fill(trg_passed, electrons.at(0).eta(), muons.at(0).eta());
1065  }
1066  if (nelectrons_ > 1) {
1067  ele1Pt_ele2Pt_.fill(trg_passed, electrons.at(0).pt(), electrons.at(1).pt());
1068  ele1Eta_ele2Eta_.fill(trg_passed, electrons.at(0).eta(), electrons.at(1).eta());
1069  }
1070  }
1071 
1072  if (enablePhotonPlot_) {
1073  if (nphotons_ > 0) {
1074  phoVsLS_.fill(trg_passed, ls, photons.at(0).pt());
1075  if (nmuons_ > 0) {
1076  muPt_phoPt_.fill(trg_passed, muons.at(0).pt(), photons.at(0).pt());
1077  muEta_phoEta_.fill(trg_passed, muons.at(0).eta(), photons.at(0).eta());
1078  }
1079  }
1080  }
1081 
1082  for (unsigned int iMu = 0; iMu < muons.size(); ++iMu) {
1083  if (iMu >= nmuons_)
1084  break;
1085  muPhi_.at(iMu).fill(trg_passed, muons.at(iMu).phi());
1086  muEta_.at(iMu).fill(trg_passed, muons.at(iMu).eta());
1087  muPt_.at(iMu).fill(trg_passed, muons.at(iMu).pt());
1088  muEta_variableBinning_.at(iMu).fill(trg_passed, muons.at(iMu).eta());
1089  muPt_variableBinning_.at(iMu).fill(trg_passed, muons.at(iMu).pt());
1090  muPtEta_.at(iMu).fill(trg_passed, muons.at(iMu).pt(), muons.at(iMu).eta());
1091  muEtaPhi_.at(iMu).fill(trg_passed, muons.at(iMu).eta(), muons.at(iMu).phi());
1092  }
1093  for (unsigned int iEle = 0; iEle < electrons.size(); ++iEle) {
1094  if (iEle >= nelectrons_)
1095  break;
1096  elePhi_.at(iEle).fill(trg_passed, electrons.at(iEle).phi());
1097  eleEta_.at(iEle).fill(trg_passed, electrons.at(iEle).eta());
1098  elePt_.at(iEle).fill(trg_passed, electrons.at(iEle).pt());
1099  eleEta_variableBinning_.at(iEle).fill(trg_passed, electrons.at(iEle).eta());
1100  elePt_variableBinning_.at(iEle).fill(trg_passed, electrons.at(iEle).pt());
1101  elePtEta_.at(iEle).fill(trg_passed, electrons.at(iEle).pt(), electrons.at(iEle).eta());
1102  eleEtaPhi_.at(iEle).fill(trg_passed, electrons.at(iEle).eta(), electrons.at(iEle).phi());
1103  }
1104  //Menglei
1105  if (enablePhotonPlot_) {
1106  for (unsigned int iPho = 0; iPho < photons.size(); ++iPho) {
1107  if (iPho >= nphotons_)
1108  break;
1109  phoPhi_[iPho].fill(trg_passed, photons[iPho].phi());
1110  phoEta_[iPho].fill(trg_passed, photons[iPho].eta());
1111  phoPt_[iPho].fill(trg_passed, photons[iPho].pt());
1112  phoPtEta_[iPho].fill(trg_passed, photons[iPho].pt(), photons[iPho].eta());
1113  phoEtaPhi_[iPho].fill(trg_passed, photons[iPho].eta(), photons[iPho].phi());
1114  }
1115  }
1116 
1117  for (unsigned int iJet = 0; iJet < jets.size(); ++iJet) {
1118  if (iJet >= njets_)
1119  break;
1120  jetPhi_.at(iJet).fill(trg_passed, jets.at(iJet).phi());
1121  jetEta_.at(iJet).fill(trg_passed, jets.at(iJet).eta());
1122  jetPt_.at(iJet).fill(trg_passed, jets.at(iJet).pt());
1123  jetEta_variableBinning_.at(iJet).fill(trg_passed, jets.at(iJet).eta());
1124  jetPt_variableBinning_.at(iJet).fill(trg_passed, jets.at(iJet).pt());
1125  jetPtEta_.at(iJet).fill(trg_passed, jets.at(iJet).pt(), jets.at(iJet).eta());
1126  jetEtaPhi_.at(iJet).fill(trg_passed, jets.at(iJet).eta(), jets.at(iJet).phi());
1127  }
1128 
1129  // Marina
1130  unsigned int iBJet = 0;
1131  for (auto& bjet : bjets) {
1132  if (iBJet >= nbjets_)
1133  break;
1134 
1135  bjetPhi_.at(iBJet).fill(trg_passed, bjet.first->phi());
1136  bjetEta_.at(iBJet).fill(trg_passed, bjet.first->eta());
1137  bjetPt_.at(iBJet).fill(trg_passed, bjet.first->pt());
1138  bjetCSV_.at(iBJet).fill(trg_passed, std::fmax(0.0, bjet.second));
1139  bjetEta_variableBinning_.at(iBJet).fill(trg_passed, bjet.first->eta());
1140  bjetPt_variableBinning_.at(iBJet).fill(trg_passed, bjet.first->pt());
1141  bjetPtEta_.at(iBJet).fill(trg_passed, bjet.first->pt(), bjet.first->eta());
1142  bjetEtaPhi_.at(iBJet).fill(trg_passed, bjet.first->eta(), bjet.first->phi());
1143  bjetCSVHT_.at(iBJet).fill(trg_passed, std::fmax(0.0, bjet.second), eventHT);
1144 
1145  iBJet++;
1146  }
1147 }
1148 
1151  desc.add<std::string>("FolderName", "HLT/TOP");
1152 
1153  desc.add<bool>("requireValidHLTPaths", false);
1154 
1155  desc.add<edm::InputTag>("vertices", edm::InputTag("offlinePrimaryVertices"));
1156  desc.add<edm::InputTag>("muons", edm::InputTag("muons"));
1157  desc.add<edm::InputTag>("electrons", edm::InputTag("gedGsfElectrons"));
1158  desc.add<edm::InputTag>("elecID", edm::InputTag("egmGsfElectronIDsForDQM:cutBasedElectronID-Fall17-94X-V1-tight"));
1159  desc.add<edm::InputTag>("photons", edm::InputTag("photons"));
1160  desc.add<edm::InputTag>("jets", edm::InputTag("ak4PFJetsCHS"));
1161  desc.add<std::vector<edm::InputTag> >(
1162  "btagAlgos", {edm::InputTag("pfDeepCSVJetTags:probb"), edm::InputTag("pfDeepCSVJetTags:probbb")});
1163  desc.add<edm::InputTag>("met", edm::InputTag("pfMet"));
1164 
1165  desc.add<std::string>("metSelection", "pt > 0");
1166  desc.add<std::string>("jetSelection", "pt > 0");
1167  desc.add<std::string>("eleSelection", "pt > 0");
1168  desc.add<std::string>("muoSelection", "pt > 0");
1169  desc.add<std::string>("phoSelection", "pt > 0");
1170  desc.add<std::string>("HTdefinition", "pt > 0");
1171  desc.add<std::string>("vertexSelection", "!isFake");
1172  desc.add<std::string>("bjetSelection", "pt > 0");
1173  desc.add<unsigned int>("njets", 0);
1174  desc.add<unsigned int>("nelectrons", 0);
1175  desc.add<unsigned int>("nmuons", 0);
1176  desc.add<unsigned int>("nphotons", 0);
1177  desc.add<double>("leptJetDeltaRmin", 0);
1178  desc.add<double>("bJetMuDeltaRmax", 9999.);
1179  desc.add<double>("bJetDeltaEtaMax", 9999.);
1180  desc.add<double>("HTcut", 0);
1181 
1182  desc.add<unsigned int>("nbjets", 0);
1183  desc.add<double>("workingpoint", 0.4941); // DeepCSV Medium wp
1184  desc.add<bool>("applyLeptonPVcuts", false);
1185  desc.add<double>("invMassUppercut", -1.0);
1186  desc.add<double>("invMassLowercut", -1.0);
1187  desc.add<bool>("oppositeSignMuons", false);
1188  desc.add<std::string>("MHTdefinition", "pt > 0");
1189  desc.add<double>("MHTcut", -1);
1190  desc.add<bool>("invMassCutInAllMuPairs", false);
1191  desc.add<bool>("enablePhotonPlot", false);
1192  desc.add<bool>("enableMETPlot", false);
1193 
1195  genericTriggerEventPSet.add<bool>("andOr");
1196  genericTriggerEventPSet.add<edm::InputTag>("dcsInputTag", edm::InputTag("scalersRawToDigi"));
1197  genericTriggerEventPSet.add<std::vector<int> >("dcsPartitions", {});
1198  genericTriggerEventPSet.add<bool>("andOrDcs", false);
1199  genericTriggerEventPSet.add<bool>("errorReplyDcs", true);
1200  genericTriggerEventPSet.add<std::string>("dbLabel", "");
1201  genericTriggerEventPSet.add<bool>("andOrHlt", true);
1202  genericTriggerEventPSet.add<edm::InputTag>("hltInputTag", edm::InputTag("TriggerResults::HLT"));
1203  genericTriggerEventPSet.add<std::vector<std::string> >("hltPaths", {});
1204  genericTriggerEventPSet.add<std::string>("hltDBKey", "");
1205  genericTriggerEventPSet.add<bool>("errorReplyHlt", false);
1206  genericTriggerEventPSet.add<unsigned int>("verbosityLevel", 1);
1207 
1208  desc.add<edm::ParameterSetDescription>("numGenericTriggerEventPSet", genericTriggerEventPSet);
1209  desc.add<edm::ParameterSetDescription>("denGenericTriggerEventPSet", genericTriggerEventPSet);
1210 
1221  fillHistoPSetDescription(metPSet);
1222  fillHistoPSetDescription(phiPSet);
1223  fillHistoPSetDescription(ptPSet);
1224  fillHistoPSetDescription(etaPSet);
1225  fillHistoPSetDescription(htPSet);
1226  fillHistoPSetDescription(DRPSet);
1227  fillHistoPSetDescription(csvPSet);
1228  fillHistoPSetDescription(MHTPSet);
1229  fillHistoPSetDescription(invMassPSet);
1230  histoPSet.add<edm::ParameterSetDescription>("metPSet", metPSet);
1231  histoPSet.add<edm::ParameterSetDescription>("etaPSet", etaPSet);
1232  histoPSet.add<edm::ParameterSetDescription>("phiPSet", phiPSet);
1233  histoPSet.add<edm::ParameterSetDescription>("ptPSet", ptPSet);
1234  histoPSet.add<edm::ParameterSetDescription>("htPSet", htPSet);
1235  histoPSet.add<edm::ParameterSetDescription>("DRPSet", DRPSet);
1236  histoPSet.add<edm::ParameterSetDescription>("csvPSet", csvPSet);
1237  histoPSet.add<edm::ParameterSetDescription>("invMassPSet", invMassPSet);
1238  histoPSet.add<edm::ParameterSetDescription>("MHTPSet", MHTPSet);
1239 
1240  std::vector<double> bins = {0., 20., 40., 60., 80., 90., 100., 110., 120., 130., 140., 150., 160.,
1241  170., 180., 190., 200., 220., 240., 260., 280., 300., 350., 400., 450., 1000.};
1242  std::vector<double> eta_bins = {-3., -2.5, -2., -1.5, -1., -.5, 0., .5, 1., 1.5, 2., 2.5, 3.};
1243  histoPSet.add<std::vector<double> >("metBinning", bins);
1244  histoPSet.add<std::vector<double> >("HTBinning", bins);
1245  histoPSet.add<std::vector<double> >("jetPtBinning", bins);
1246  histoPSet.add<std::vector<double> >("elePtBinning", bins);
1247  histoPSet.add<std::vector<double> >("muPtBinning", bins);
1248  histoPSet.add<std::vector<double> >("jetEtaBinning", eta_bins);
1249  histoPSet.add<std::vector<double> >("eleEtaBinning", eta_bins);
1250  histoPSet.add<std::vector<double> >("muEtaBinning", eta_bins);
1251  histoPSet.add<std::vector<double> >("invMassVariableBinning", bins);
1252  histoPSet.add<std::vector<double> >("MHTVariableBinning", bins);
1253 
1254  std::vector<double> bins_2D = {0., 40., 80., 100., 120., 140., 160., 180., 200., 240., 280., 350., 450., 1000.};
1255  std::vector<double> eta_bins_2D = {-3., -2., -1., 0., 1., 2., 3.};
1256  std::vector<double> phi_bins_2D = {
1257  -3.1415, -2.5132, -1.8849, -1.2566, -0.6283, 0, 0.6283, 1.2566, 1.8849, 2.5132, 3.1415};
1258  histoPSet.add<std::vector<double> >("HTBinning2D", bins_2D);
1259  histoPSet.add<std::vector<double> >("jetPtBinning2D", bins_2D);
1260  histoPSet.add<std::vector<double> >("elePtBinning2D", bins_2D);
1261  histoPSet.add<std::vector<double> >("muPtBinning2D", bins_2D);
1262  histoPSet.add<std::vector<double> >("phoPtBinning2D", bins_2D);
1263  histoPSet.add<std::vector<double> >("jetEtaBinning2D", eta_bins_2D);
1264  histoPSet.add<std::vector<double> >("eleEtaBinning2D", eta_bins_2D);
1265  histoPSet.add<std::vector<double> >("muEtaBinning2D", eta_bins_2D);
1266  histoPSet.add<std::vector<double> >("phoEtaBinning2D", eta_bins_2D);
1267  histoPSet.add<std::vector<double> >("phiBinning2D", phi_bins_2D);
1268 
1271  histoPSet.add<edm::ParameterSetDescription>("lsPSet", lsPSet);
1272 
1273  desc.add<edm::ParameterSetDescription>("histoPSet", histoPSet);
1274 
1275  edm::ParameterSetDescription lPVcutPSet;
1276  lPVcutPSet.add<double>("dxy", 9999.);
1277  lPVcutPSet.add<double>("dz", 9999.);
1278  desc.add<edm::ParameterSetDescription>("leptonPVcuts", lPVcutPSet);
1279 
1280  descriptions.add("topMonitoring", desc);
1281 }
1282 
1283 // Define this as a plug-in
ObjME mu1Pt_mu2Pt_
Definition: TopMonitor.h:145
std::vector< double > elePt_variable_binning_2D_
Definition: TopMonitor.h:112
std::vector< ObjME > jetEta_variableBinning_
Definition: TopMonitor.h:188
StringCutObjectSelector< reco::Jet, true > bjetSelection_
Definition: TopMonitor.h:220
StringCutObjectSelector< reco::PFJet, true > jetSelection_
Definition: TopMonitor.h:212
T getParameter(std::string const &) const
ObjME jetVsLS_
Definition: TopMonitor.h:125
std::vector< double > jetEta_variable_binning_
Definition: TopMonitor.h:103
std::vector< ObjME > jetEtaPhi_
Definition: TopMonitor.h:193
StringCutObjectSelector< reco::PFJet, true > HTdefinition_
Definition: TopMonitor.h:216
std::vector< ObjME > bjetPtEta_
Definition: TopMonitor.h:204
ObjME jetEtaPhi_HEP17_
Definition: TopMonitor.h:132
double bJetMuDeltaRmax_
Definition: TopMonitor.h:227
std::vector< double > muEta_variable_binning_
Definition: TopMonitor.h:104
static void fillHistoLSPSetDescription(edm::ParameterSetDescription &pset)
ObjME DeltaR_jet_Mu_
Definition: TopMonitor.h:156
ObjME muEta_phoEta_
Definition: TopMonitor.h:154
std::vector< ObjME > muPt_
Definition: TopMonitor.h:163
std::vector< ObjME > jetPtEta_
Definition: TopMonitor.h:192
MEbinning invMass_mumu_binning_
Definition: TopMonitor.h:95
std::vector< ObjME > bjetCSVHT_
Definition: TopMonitor.h:206
std::vector< ObjME > bjetPt_variableBinning_
Definition: TopMonitor.h:184
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
ObjME muVsLS_
Definition: TopMonitor.h:126
std::vector< ObjME > muEta_
Definition: TopMonitor.h:162
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:418
MEbinning HT_binning_
Definition: TopMonitor.h:92
ObjME eleEta_muEta_
Definition: TopMonitor.h:148
ObjME eventMHT_variableBinning_
Definition: TopMonitor.h:152
bool applyLeptonPVcuts_
Definition: TopMonitor.h:234
std::vector< ObjME > elePt_variableBinning_
Definition: TopMonitor.h:182
bool hltPathsAreValid_
Definition: TopMonitor.h:71
std::vector< double > jetPt_variable_binning_
Definition: TopMonitor.h:100
ObjME phoVsLS_
Definition: TopMonitor.h:128
ObjME ele1Pt_ele2Pt_
Definition: TopMonitor.h:143
double pt() const final
transverse momentum
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
ObjME ele1Eta_ele2Eta_
Definition: TopMonitor.h:144
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
static void fillHistoPSetDescription(edm::ParameterSetDescription &pset)
ObjME elePt_eventHT_
Definition: TopMonitor.h:141
edm::EDGetTokenT< reco::VertexCollection > vtxToken_
Definition: TopMonitor.h:73
std::vector< ObjME > bjetCSV_
Definition: TopMonitor.h:180
StringCutObjectSelector< reco::MET, true > metSelection_
Definition: TopMonitor.h:211
std::vector< ObjME > phoEta_
Definition: TopMonitor.h:174
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:39
ObjME muMulti_
Definition: TopMonitor.h:136
std::vector< ObjME > eleEtaPhi_
Definition: TopMonitor.h:196
const Point & position() const
position
Definition: Vertex.h:113
void setMETitle(ObjME &me, const std::string &titleX, const std::string &titleY)
std::vector< double > muPt_variable_binning_
Definition: TopMonitor.h:101
ObjME metME_variableBinning_
Definition: TopMonitor.h:121
ObjME metME_
Definition: TopMonitor.h:120
static const double deltaEta
Definition: CaloConstants.h:8
MEbinning met_binning_
Definition: TopMonitor.h:87
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
edm::EDGetTokenT< reco::PFMETCollection > metToken_
Definition: TopMonitor.h:80
bool invMassCutInAllMuPairs_
Definition: TopMonitor.h:244
const bool requireValidHLTPaths_
Definition: TopMonitor.h:70
ObjME eventMHT_
Definition: TopMonitor.h:150
double bJetDeltaEtaMax_
Definition: TopMonitor.h:228
ObjME bjetVsLS_
Definition: TopMonitor.h:129
std::string folderName_
Definition: TopMonitor.h:68
ObjME metVsLS_
Definition: TopMonitor.h:122
TopMonitor(const edm::ParameterSet &)
Definition: TopMonitor.cc:18
edm::EDGetTokenT< reco::MuonCollection > muoToken_
Definition: TopMonitor.h:74
PVcut lepPVcuts_
Definition: TopMonitor.h:233
std::vector< ObjME > jetPt_variableBinning_
Definition: TopMonitor.h:183
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
bool enablePhotonPlot_
Definition: TopMonitor.h:246
unsigned int nphotons_
Definition: TopMonitor.h:225
ObjME elePt_jetPt_
Definition: TopMonitor.h:140
std::vector< ObjME > muPhi_
Definition: TopMonitor.h:161
std::vector< double > HT_variable_binning_
Definition: TopMonitor.h:99
static MEbinning getHistoPSet(const edm::ParameterSet &pset)
std::vector< ObjME > muPt_variableBinning_
Definition: TopMonitor.h:181
int iEvent
Definition: GenABIO.cc:224
ObjME metPhiME_
Definition: TopMonitor.h:123
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
unsigned int njets_
Definition: TopMonitor.h:222
std::vector< ObjME > bjetPt_
Definition: TopMonitor.h:179
ObjME jetMulti_
Definition: TopMonitor.h:134
std::vector< double > invMass_mumu_variable_binning_
Definition: TopMonitor.h:106
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
std::vector< double > MHT_variable_binning_
Definition: TopMonitor.h:107
ObjME invMass_mumu_variableBinning_
Definition: TopMonitor.h:151
std::vector< ObjME > muEtaPhi_
Definition: TopMonitor.h:199
edm::EDGetTokenT< edm::View< reco::GsfElectron > > eleToken_
Definition: TopMonitor.h:75
std::vector< ObjME > jetEta_
Definition: TopMonitor.h:170
unsigned int nelectrons_
Definition: TopMonitor.h:223
def pv(vc)
Definition: MetAnalyzer.py:7
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::vector< ObjME > phoEtaPhi_
Definition: TopMonitor.h:202
edm::EDGetTokenT< reco::PhotonCollection > phoToken_
Definition: TopMonitor.h:77
unsigned int nmuons_
Definition: TopMonitor.h:224
ObjME bjetMulti_
Definition: TopMonitor.h:138
ObjME eleVsLS_
Definition: TopMonitor.h:127
std::vector< double > met_variable_binning_
Definition: TopMonitor.h:98
std::vector< ObjME > jetPhi_
Definition: TopMonitor.h:169
std::vector< ObjME > eleEta_
Definition: TopMonitor.h:166
std::vector< ObjME > muPtEta_
Definition: TopMonitor.h:198
void fill(const bool pass_num, Args...args)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
bool isValid() const
Definition: HandleBase.h:70
std::vector< double > jetPt_variable_binning_2D_
Definition: TopMonitor.h:110
double MHTcut_
Definition: TopMonitor.h:242
std::vector< double > HT_variable_binning_2D_
Definition: TopMonitor.h:109
MEbinning MHT_binning_
Definition: TopMonitor.h:96
std::vector< double > phi_variable_binning_2D_
Definition: TopMonitor.h:118
std::vector< ObjME > jetPt_
Definition: TopMonitor.h:171
double HTcut_
Definition: TopMonitor.h:229
std::vector< ObjME > eleEta_variableBinning_
Definition: TopMonitor.h:187
ObjME elePt_muPt_
Definition: TopMonitor.h:147
std::vector< ObjME > elePhi_
Definition: TopMonitor.h:165
std::vector< double > jetEta_variable_binning_2D_
Definition: TopMonitor.h:114
ObjME invMass_mumu_
Definition: TopMonitor.h:149
std::vector< ObjME > bjetEta_variableBinning_
Definition: TopMonitor.h:189
std::vector< double > muPt_variable_binning_2D_
Definition: TopMonitor.h:111
def ls(path, rec=False)
Definition: eostools.py:349
auto vector_transform(std::vector< InputType > const &input, Function predicate) -> std::vector< typename std::remove_cv< typename std::remove_reference< decltype(predicate(input.front()))>::type >::type >
Definition: transform.h:11
StringCutObjectSelector< reco::Photon, true > phoSelection_
Definition: TopMonitor.h:215
unsigned int nbjets_
Definition: TopMonitor.h:230
std::map< edm::RefToBase< reco::Jet >, float, JetRefCompare > JetTagMap
Definition: TopMonitor.h:65
ObjME phoMulti_
Definition: TopMonitor.h:137
T const * product() const
Definition: Handle.h:69
std::vector< ObjME > elePt_
Definition: TopMonitor.h:167
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: TopMonitor.cc:178
std::vector< ObjME > bjetEtaPhi_
Definition: TopMonitor.h:205
StringCutObjectSelector< reco::GsfElectron, true > eleSelection_
Definition: TopMonitor.h:213
std::vector< Photon > PhotonCollection
collectin of Photon objects
Definition: PhotonFwd.h:9
ObjME htVsLS_
Definition: TopMonitor.h:130
std::vector< ObjME > phoPt_
Definition: TopMonitor.h:175
std::vector< double > elePt_variable_binning_
Definition: TopMonitor.h:102
void add(std::string const &label, ParameterSetDescription const &psetDescription)
MEbinning csv_binning_
Definition: TopMonitor.h:94
double workingpoint_
Definition: TopMonitor.h:231
ObjME mu1Eta_mu2Eta_
Definition: TopMonitor.h:146
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: TopMonitor.cc:1149
std::unique_ptr< GenericTriggerEventFlag > den_genTriggerEventFlag_
Definition: TopMonitor.h:209
double invMassUppercut_
Definition: TopMonitor.h:238
std::vector< ObjME > bjetEta_
Definition: TopMonitor.h:178
bool enableMETPlot_
Definition: TopMonitor.h:247
edm::EventID id() const
Definition: EventBase.h:59
std::vector< PFJet > PFJetCollection
collection of PFJet objects
fixed size matrix
HLT enums.
void analyze(edm::Event const &iEvent, edm::EventSetup const &iSetup) override
Definition: TopMonitor.cc:703
MEbinning DR_binning_
Definition: TopMonitor.h:93
std::vector< ObjME > phoPtEta_
Definition: TopMonitor.h:201
ObjME muPt_phoPt_
Definition: TopMonitor.h:153
StringCutObjectSelector< reco::Vertex, true > vtxSelection_
Definition: TopMonitor.h:218
std::vector< ObjME > elePtEta_
Definition: TopMonitor.h:195
bool opsign_
Definition: TopMonitor.h:240
StringCutObjectSelector< reco::PFJet, true > MHTdefinition_
Definition: TopMonitor.h:241
edm::EDGetTokenT< reco::PFJetCollection > jetToken_
Definition: TopMonitor.h:78
MEbinning phi_binning_
Definition: TopMonitor.h:89
MEbinning eta_binning_
Definition: TopMonitor.h:91
edm::EDGetTokenT< edm::ValueMap< bool > > elecIDToken_
Definition: TopMonitor.h:76
ObjME eleMulti_
Definition: TopMonitor.h:135
std::vector< double > phoEta_variable_binning_2D_
Definition: TopMonitor.h:117
double leptJetDeltaRmin_
Definition: TopMonitor.h:226
std::vector< double > muEta_variable_binning_2D_
Definition: TopMonitor.h:115
MEbinning ls_binning_
Definition: TopMonitor.h:88
double phi() const final
momentum azimuthal angle
std::vector< double > eleEta_variable_binning_2D_
Definition: TopMonitor.h:116
std::unique_ptr< GenericTriggerEventFlag > num_genTriggerEventFlag_
Definition: TopMonitor.h:208
std::vector< ObjME > phoPhi_
Definition: TopMonitor.h:173
double invMassLowercut_
Definition: TopMonitor.h:239
~TopMonitor() override
Definition: TopMonitor.cc:171
MEbinning pt_binning_
Definition: TopMonitor.h:90
void bookME(DQMStore::IBooker &, ObjME &me, const std::string &histname, const std::string &histtitle, unsigned nbins, double xmin, double xmax)
Definition: Run.h:45
std::vector< double > phoPt_variable_binning_2D_
Definition: TopMonitor.h:113
StringCutObjectSelector< reco::Muon, true > muoSelection_
Definition: TopMonitor.h:214
ObjME eventHT_variableBinning_
Definition: TopMonitor.h:159
std::vector< ObjME > muEta_variableBinning_
Definition: TopMonitor.h:186
std::vector< ObjME > bjetPhi_
Definition: TopMonitor.h:177
std::vector< edm::EDGetTokenT< reco::JetTagCollection > > jetTagTokens_
Definition: TopMonitor.h:79
std::vector< double > eleEta_variable_binning_
Definition: TopMonitor.h:105
ObjME eventHT_
Definition: TopMonitor.h:158