CMS 3D CMS Logo

JetMETHLTOfflineSource.cc
Go to the documentation of this file.
1 /*
2  JetMETHLTOffline DQM code
3  Migrated to use DQMEDAnalyzer by: Jyothsna Rani Komaragiri, Oct 2014
4 */
5 
7 
16 
23 
25 
27 
28 #include "TMath.h"
29 #include "TH1F.h"
30 #include "TH2F.h"
31 #include "TProfile.h"
32 #include "TPRegexp.h"
33 
34 #include <cmath>
35 
36 using namespace edm;
37 using namespace reco;
38 using namespace std;
39 using namespace trigger;
40 
42  LogDebug("JetMETHLTOfflineSource") << "constructor....";
43 
44  //
45  dirname_ = iConfig.getUntrackedParameter("dirname", std::string("HLT/JetMET/"));
46  processname_ = iConfig.getParameter<std::string>("processname");
47  triggerSummaryLabel_ = iConfig.getParameter<edm::InputTag>("triggerSummaryLabel");
48  triggerResultsLabel_ = iConfig.getParameter<edm::InputTag>("triggerResultsLabel");
49  triggerSummaryToken = consumes<trigger::TriggerEvent>(triggerSummaryLabel_);
50  triggerResultsToken = consumes<edm::TriggerResults>(triggerResultsLabel_);
51  triggerSummaryFUToken = consumes<trigger::TriggerEvent>(
53  triggerResultsFUToken = consumes<edm::TriggerResults>(
55  //
56  verbose_ = iConfig.getUntrackedParameter<bool>("verbose", false);
57  runStandalone_ = iConfig.getUntrackedParameter<bool>("runStandalone", false);
58  //
59  plotAll_ = iConfig.getUntrackedParameter<bool>("plotAll", true);
60  plotEff_ = iConfig.getUntrackedParameter<bool>("plotEff", true);
61  nameForEff_ = iConfig.getUntrackedParameter<bool>("nameForEff", true);
62  MuonTrigPaths_ = iConfig.getUntrackedParameter<vector<std::string> >("pathnameMuon");
63  MBTrigPaths_ = iConfig.getUntrackedParameter<vector<std::string> >("pathnameMB");
64  //CaloJet, CaloMET
65  caloJetsToken = consumes<reco::CaloJetCollection>(iConfig.getParameter<edm::InputTag>("CaloJetCollectionLabel"));
66  caloMetToken = consumes<reco::CaloMETCollection>(iConfig.getParameter<edm::InputTag>("CaloMETCollectionLabel"));
67  //PFJet, PFMET
68  pfJetsToken = consumes<reco::PFJetCollection>(iConfig.getParameter<edm::InputTag>("PFJetCollectionLabel"));
69  pfMetToken = consumes<reco::PFMETCollection>(iConfig.getParameter<edm::InputTag>("PFMETCollectionLabel"));
70  //pfmhtTag_ = iConfig.getParameter<edm::InputTag>("PFMHTCollectionLabel");
71  //Vertex info
72  vertexToken = consumes<reco::VertexCollection>(std::string("offlinePrimaryVertices"));
73  //
74  CaloJetCorToken_ = consumes<reco::JetCorrector>(iConfig.getParameter<edm::InputTag>("CaloJetCorLabel"));
75  PFJetCorToken_ = consumes<reco::JetCorrector>(iConfig.getParameter<edm::InputTag>("PFJetCorLabel"));
76  //JetID
77  jetID = new reco::helper::JetIDHelper(iConfig.getParameter<ParameterSet>("JetIDParams"), consumesCollector());
78  _fEMF = iConfig.getUntrackedParameter<double>("fEMF", 0.01);
79  _feta = iConfig.getUntrackedParameter<double>("feta", 2.60);
80  _fHPD = iConfig.getUntrackedParameter<double>("fHPD", 0.98);
81  _n90Hits = iConfig.getUntrackedParameter<double>("n90Hits", 1.0);
82  _min_NHEF = iConfig.getUntrackedParameter<double>("minNHEF", 0.);
83  _max_NHEF = iConfig.getUntrackedParameter<double>("maxNHEF", 0.99);
84  _min_CHEF = iConfig.getUntrackedParameter<double>("minCHEF", 0.);
85  _max_CHEF = iConfig.getUntrackedParameter<double>("maxCHEF", 1.);
86  _min_NEMF = iConfig.getUntrackedParameter<double>("minNEMF", 0.);
87  _max_NEMF = iConfig.getUntrackedParameter<double>("maxNEMF", 0.99);
88  _min_CEMF = iConfig.getUntrackedParameter<double>("minCEMF", 0.);
89  _max_CEMF = iConfig.getUntrackedParameter<double>("maxCEMF", 0.99);
90  //Paths
91  pathFilter_ = iConfig.getUntrackedParameter<vector<std::string> >("pathFilter");
92  pathRejectKeyword_ = iConfig.getUntrackedParameter<vector<std::string> >("pathRejectKeyword");
93  std::vector<edm::ParameterSet> paths = iConfig.getParameter<std::vector<edm::ParameterSet> >("pathPairs");
94  for (auto& path : paths) {
95  custompathnamepairs_.push_back(
96  make_pair(path.getParameter<std::string>("pathname"), path.getParameter<std::string>("denompathname")));
97  }
98 }
99 
100 //------------------------------------------------------------------------//
102  //
103  // do anything here that needs to be done at desctruction time
104  // (e.g. close files, deallocate resources etc.)
105  delete jetID;
106 }
107 
108 //------------------------------------------------------------------------//
110  if (verbose_) {
111  cout << endl;
112  cout << "============================================================" << endl;
113  cout << " New event" << endl << endl;
114  }
115 
116  //---------- triggerResults ----------
118  if (!triggerResults_.isValid()) {
120  if (!triggerResults_.isValid()) {
121  if (verbose_)
122  cout << " triggerResults not valid" << endl;
123  edm::LogInfo("JetMETHLTOfflineSource") << "TriggerResults not found, "
124  "skipping event";
125  return;
126  }
127  }
128  if (verbose_)
129  cout << " done triggerResults" << endl;
130 
131  //---------- triggerResults ----------
132  triggerNames_ = iEvent.triggerNames(*triggerResults_);
133 
134  //---------- triggerSummary ----------
136  if (!triggerObj_.isValid()) {
138  if (!triggerObj_.isValid()) {
139  edm::LogInfo("JetMETHLTOfflineSource") << "TriggerEvent not found, "
140  "skipping event";
141  return;
142  }
143  }
144  if (verbose_)
145  cout << " done triggerSummary" << endl;
146 
147  if (verbose_) {
148  cout << endl;
149  cout << "============================================================" << endl;
150  cout << " Reading in offline objects" << endl << endl;
151  }
152 
153  //------------ Offline Objects -------
154  iEvent.getByToken(caloJetsToken, calojetColl_);
155  if (!calojetColl_.isValid())
156  return;
158  //std::stable_sort( calojet.begin(), calojet.end(), PtSorter() );
159 
160  if (verbose_)
161  cout << " done calo" << endl;
162 
163  iEvent.getByToken(pfJetsToken, pfjetColl_);
164  if (!pfjetColl_.isValid())
165  return;
166  pfjet = *pfjetColl_;
167  //std::stable_sort( pfjet.begin(), pfjet.end(), PtSorter() );
168 
169  if (verbose_)
170  cout << " done pf" << endl;
171 
172  iEvent.getByToken(caloMetToken, calometColl_);
173  if (!calometColl_.isValid())
174  return;
175 
176  iEvent.getByToken(pfMetToken, pfmetColl_);
177  if (!pfmetColl_.isValid())
178  return;
179 
180  if (verbose_) {
181  cout << endl;
182  cout << "============================================================" << endl;
183  cout << " Read in offline objects" << endl << endl;
184  }
185 
186  //---------- Event counting (DEBUG) ----------
187  if (verbose_ && iEvent.id().event() % 10000 == 0)
188  cout << "Run = " << iEvent.id().run() << ", LS = " << iEvent.luminosityBlock()
189  << ", Event = " << iEvent.id().event() << endl;
190 
191  //Define on-the-fly correction Jet
192  for (int i = 0; i < 2; i++) {
193  CaloJetPx[i] = 0.;
194  CaloJetPy[i] = 0.;
195  CaloJetPt[i] = 0.;
196  CaloJetEta[i] = 0.;
197  CaloJetPhi[i] = 0.;
198  CaloJetEMF[i] = 0.;
199  CaloJetfHPD[i] = 0.;
200  CaloJetn90[i] = 0.;
201  PFJetPx[i] = 0.;
202  PFJetPy[i] = 0.;
203  PFJetPt[i] = 0.;
204  PFJetEta[i] = 0.;
205  PFJetPhi[i] = 0.;
206  PFJetNHEF[i] = 0.;
207  PFJetCHEF[i] = 0.;
208  PFJetNEMF[i] = 0.;
209  PFJetCEMF[i] = 0.;
210  }
211 
212  //---------- CaloJet Correction (on-the-fly) ----------
213  edm::Handle<reco::JetCorrector> calocorrector;
214  iEvent.getByToken(CaloJetCorToken_, calocorrector);
215  auto calojet_ = calojet.begin();
216  for (; calojet_ != calojet.end(); ++calojet_) {
217  double scale = calocorrector->correction(*calojet_);
218  jetID->calculate(iEvent, iSetup, *calojet_);
219 
220  if (scale * calojet_->pt() > CaloJetPt[0]) {
221  CaloJetPt[1] = CaloJetPt[0];
222  CaloJetPx[1] = CaloJetPx[0];
223  CaloJetPy[1] = CaloJetPy[0];
224  CaloJetEta[1] = CaloJetEta[0];
225  CaloJetPhi[1] = CaloJetPhi[0];
226  CaloJetEMF[1] = CaloJetEMF[0];
227  CaloJetfHPD[1] = CaloJetfHPD[0];
228  CaloJetn90[1] = CaloJetn90[0];
229  //
230  CaloJetPt[0] = scale * calojet_->pt();
231  CaloJetPx[0] = scale * calojet_->px();
232  CaloJetPy[0] = scale * calojet_->py();
233  CaloJetEta[0] = calojet_->eta();
234  CaloJetPhi[0] = calojet_->phi();
235  CaloJetEMF[0] = calojet_->emEnergyFraction();
236  CaloJetfHPD[0] = jetID->fHPD();
237  CaloJetn90[0] = jetID->n90Hits();
238  } else if (scale * calojet_->pt() < CaloJetPt[0] && scale * calojet_->pt() > CaloJetPt[1]) {
239  CaloJetPt[1] = scale * calojet_->pt();
240  CaloJetPx[1] = scale * calojet_->px();
241  CaloJetPy[1] = scale * calojet_->py();
242  CaloJetEta[1] = calojet_->eta();
243  CaloJetPhi[1] = calojet_->phi();
244  CaloJetEMF[1] = calojet_->emEnergyFraction();
245  CaloJetfHPD[1] = jetID->fHPD();
246  CaloJetn90[1] = jetID->n90Hits();
247  } else {
248  }
249  }
250 
251  //---------- PFJet Correction (on-the-fly) ----------
252  pfMHTx_All = 0.;
253  pfMHTy_All = 0.;
255  iEvent.getByToken(PFJetCorToken_, pfcorrector);
256  auto pfjet_ = pfjet.begin();
257  for (; pfjet_ != pfjet.end(); ++pfjet_) {
258  double scale = pfcorrector->correction(*pfjet_);
259  pfMHTx_All = pfMHTx_All + scale * pfjet_->px();
260  pfMHTy_All = pfMHTy_All + scale * pfjet_->py();
261  if (scale * pfjet_->pt() > PFJetPt[0]) {
262  PFJetPt[1] = PFJetPt[0];
263  PFJetPx[1] = PFJetPx[0];
264  PFJetPy[1] = PFJetPy[0];
265  PFJetEta[1] = PFJetEta[0];
266  PFJetPhi[1] = PFJetPhi[0];
267  PFJetNHEF[1] = PFJetNHEF[0];
268  PFJetCHEF[1] = PFJetCHEF[0];
269  PFJetNEMF[1] = PFJetNEMF[0];
270  PFJetCEMF[1] = PFJetCEMF[0];
271  //
272  PFJetPt[0] = scale * pfjet_->pt();
273  PFJetPx[0] = scale * pfjet_->px();
274  PFJetPy[0] = scale * pfjet_->py();
275  PFJetEta[0] = pfjet_->eta();
276  PFJetPhi[0] = pfjet_->phi();
277  PFJetNHEF[0] = pfjet_->neutralHadronEnergyFraction();
278  PFJetCHEF[0] = pfjet_->chargedHadronEnergyFraction();
279  PFJetNEMF[0] = pfjet_->neutralEmEnergyFraction();
280  PFJetCEMF[0] = pfjet_->chargedEmEnergyFraction();
281  } else if (scale * pfjet_->pt() < PFJetPt[0] && scale * pfjet_->pt() > PFJetPt[1]) {
282  PFJetPt[1] = scale * pfjet_->pt();
283  PFJetPx[1] = scale * pfjet_->px();
284  PFJetPy[1] = scale * pfjet_->py();
285  PFJetEta[1] = pfjet_->eta();
286  PFJetPhi[1] = pfjet_->phi();
287  PFJetNHEF[1] = pfjet_->neutralHadronEnergyFraction();
288  PFJetCHEF[1] = pfjet_->chargedHadronEnergyFraction();
289  PFJetNEMF[1] = pfjet_->neutralEmEnergyFraction();
290  PFJetCEMF[1] = pfjet_->chargedEmEnergyFraction();
291  } else {
292  }
293  }
294 
295  if (verbose_) {
296  for (int i = 0; i < 2; i++) {
297  cout << "CaloJet-0: " << CaloJetPt[i] << ", Eta = " << CaloJetEta[i] << ", Phi = " << CaloJetPhi[i] << endl;
298  cout << "fHPD = " << CaloJetfHPD[0] << ", n90 = " << CaloJetn90[0] << endl;
299  }
300  for (int i = 0; i < 2; i++) {
301  cout << "PFJet-0: " << PFJetPt[i] << ", Eta = " << PFJetEta[i] << ", Phi = " << PFJetPhi[i] << endl;
302  }
303  }
304 
305  //---------- RUN ----------
307  if (plotAll_)
309  if (plotEff_)
311  if (runStandalone_)
313 }
314 
315 //------------------------------------------------------------------------//
316 // Trigger summary for all paths
318  if (verbose_)
319  cout << ">> Inside fillMEforMonTriggerSummary " << endl;
320  bool muTrig = false;
321 
322  for (auto const& MuonTrigPath : MuonTrigPaths_) {
323  const unsigned int nPath(hltConfig_.size());
324  for (unsigned int j = 0; j != nPath; ++j) {
326  if (pathname.find(MuonTrigPath) != std::string::npos) {
328  muTrig = true;
329  if (verbose_)
330  cout << "fillMEforMonTriggerSummary: Muon Match" << endl;
331  }
332  }
333  if (muTrig)
334  break;
335  }
336  if (muTrig)
337  break;
338  }
339 
340  bool mbTrig = false;
341  for (auto const& MBTrigPath : MBTrigPaths_) {
342  const unsigned int nPath(hltConfig_.size());
343  for (unsigned int j = 0; j != nPath; ++j) {
345  if (pathname.find(MBTrigPath) != std::string::npos) {
347  mbTrig = true;
348  if (verbose_)
349  cout << "fillMEforMonTriggerSummary: MinBias Match" << endl;
350  }
351  }
352  if (mbTrig)
353  break;
354  }
355  if (mbTrig)
356  break;
357  }
358 
359  auto v = hltPathsAll_.begin();
360  for (; v != hltPathsAll_.end(); ++v) {
361  bool trigFirst = false;
362  double binV = TriggerPosition(v->getPath());
363  if (isHLTPathAccepted(v->getPath()))
364  trigFirst = true;
365  if (!trigFirst)
366  continue;
367  if (trigFirst) {
368  rate_All->Fill(binV);
369  correlation_All->Fill(binV, binV);
370  if (muTrig && runStandalone_) {
371  rate_AllWrtMu->Fill(binV);
372  correlation_AllWrtMu->Fill(binV, binV);
373  }
374  if (mbTrig && runStandalone_) {
375  rate_AllWrtMB->Fill(binV);
376  correlation_AllWrtMB->Fill(binV, binV);
377  }
378  }
379  for (auto w = v + 1; w != hltPathsAll_.end(); ++w) {
380  bool trigSec = false;
381  double binW = TriggerPosition(w->getPath());
382  if (isHLTPathAccepted(w->getPath()))
383  trigSec = true;
384  if (trigSec && trigFirst) {
385  correlation_All->Fill(binV, binW);
386  if (muTrig && runStandalone_)
387  correlation_AllWrtMu->Fill(binV, binW);
388  if (mbTrig && runStandalone_)
389  correlation_AllWrtMB->Fill(binV, binW);
390  }
391  if (!trigSec && trigFirst) {
392  correlation_All->Fill(binW, binV);
393  if (muTrig && runStandalone_)
394  correlation_AllWrtMu->Fill(binW, binV);
395  if (mbTrig && runStandalone_)
396  correlation_AllWrtMB->Fill(binW, binV);
397  }
398  }
399  }
400 
401  //Vertex
403  iEvent.getByToken(vertexToken, Vtx);
404  int vtxcnt = 0;
405  for (auto const& itv : *Vtx) {
406  //if(vtxcnt>=20) break;
407  PVZ->Fill(itv.z());
408  //chi2vtx[vtxcnt] = itv->chi2();
409  //ndofvtx[vtxcnt] = itv->ndof();
410  //ntrkvtx[vtxcnt] = itv->tracksSize();
411  vtxcnt++;
412  }
413  NVertices->Fill(vtxcnt);
414 }
415 
416 //------------------------------------------------------------------------//
418  if (verbose_)
419  cout << ">> Inside fillMEforTriggerNTfired" << endl;
420  if (!triggerResults_.isValid())
421  return;
422  if (verbose_)
423  cout << " ... and triggerResults is valid" << endl;
424 
425  //
426  for (auto& v : hltPathsAll_) {
427  unsigned index = triggerNames_.triggerIndex(v.getPath());
428  if (index < triggerNames_.size()) {
429  v.getMEhisto_TriggerSummary()->Fill(0.);
430  edm::InputTag l1Tag(v.getl1Path(), "", processname_);
431  const int l1Index = triggerObj_->filterIndex(l1Tag);
432  bool l1found = false;
433  if (l1Index < triggerObj_->sizeFilters())
434  l1found = true;
435  if (!l1found)
436  v.getMEhisto_TriggerSummary()->Fill(1.);
437  if (!l1found && !(triggerResults_->accept(index)))
438  v.getMEhisto_TriggerSummary()->Fill(2.);
439  if (!l1found && (triggerResults_->accept(index)))
440  v.getMEhisto_TriggerSummary()->Fill(3.);
441  if (l1found)
442  v.getMEhisto_TriggerSummary()->Fill(4.);
443  if (l1found && (triggerResults_->accept(index)))
444  v.getMEhisto_TriggerSummary()->Fill(5.);
445  if (l1found && !(triggerResults_->accept(index)))
446  v.getMEhisto_TriggerSummary()->Fill(6.);
447  if (!(triggerResults_->accept(index)) && l1found) {
448  //cout<<v->getTriggerType()<<endl;
449  if ((v.getTriggerType() == "SingleJet_Trigger") && (calojetColl_.isValid()) && !calojet.empty()) {
450  auto jet = calojet.begin();
451  v.getMEhisto_JetPt()->Fill(jet->pt());
452  v.getMEhisto_EtavsPt()->Fill(jet->eta(), jet->pt());
453  v.getMEhisto_PhivsPt()->Fill(jet->phi(), jet->pt());
454  }
455  // single jet trigger is not fired
456 
457  if ((v.getTriggerType() == "DiJet_Trigger") && calojetColl_.isValid() && !calojet.empty()) {
458  v.getMEhisto_JetSize()->Fill(calojet.size());
459  if (calojet.size() >= 2) {
460  auto jet = calojet.begin();
461  auto jet2 = calojet.begin();
462  jet2++;
463  double jet3pt = 0.;
464  if (calojet.size() > 2) {
465  auto jet3 = jet2++;
466  jet3pt = jet3->pt();
467  }
468  v.getMEhisto_Pt12()->Fill((jet->pt() + jet2->pt()) / 2.);
469  v.getMEhisto_Eta12()->Fill((jet->eta() + jet2->eta()) / 2.);
470  v.getMEhisto_Phi12()->Fill(deltaPhi(jet->phi(), jet2->phi()));
471  v.getMEhisto_Pt3()->Fill(jet3pt);
472  v.getMEhisto_Pt12Pt3()->Fill((jet->pt() + jet2->pt()) / 2., jet3pt);
473  v.getMEhisto_Pt12Phi12()->Fill((jet->pt() + jet2->pt()) / 2., deltaPhi(jet->phi(), jet2->phi()));
474  }
475  } // di jet trigger is not fired
476 
477  if (((v.getTriggerType() == "MET_Trigger") || (v.getTriggerType() == "TET_Trigger")) &&
478  calometColl_.isValid()) {
479  const CaloMETCollection* calometcol = calometColl_.product();
480  const CaloMET met = calometcol->front();
481  v.getMEhisto_JetPt()->Fill(met.pt());
482  } //MET trigger is not fired
483  } // L1 is fired
484  } //
485  } // trigger not fired
486 }
487 
488 //------------------------------------------------------------------------//
490  if (verbose_)
491  cout << ">> Inside fillMEforMonAllTrigger " << endl;
492  if (!triggerResults_.isValid())
493  return;
494  if (verbose_)
495  cout << " ... and triggerResults is valid" << endl;
496 
498  for (auto& v : hltPathsAll_) {
499  if (verbose_)
500  cout << " + Checking path " << v.getPath();
501  if (isHLTPathAccepted(v.getPath()) == false) {
502  if (verbose_)
503  cout << " - failed" << endl;
504  continue;
505  }
506  if (verbose_)
507  cout << " - PASSED! " << endl;
508 
509  //New jet collection (after apply JEC)
510  std::vector<double> jetPtVec;
511  std::vector<double> jetPhiVec;
512  std::vector<double> jetEtaVec;
513  std::vector<double> jetPxVec;
514  std::vector<double> jetPyVec;
515  std::vector<double> hltPtVec;
516  std::vector<double> hltPhiVec;
517  std::vector<double> hltEtaVec;
518  std::vector<double> hltPxVec;
519  std::vector<double> hltPyVec;
520 
521  //This will be used to find out punch through trigger
522  //bool fillL1HLT = false;
523 
524  //L1 and HLT indices
525  if (verbose_) {
526  cout << " - L1Path = " << v.getl1Path() << endl;
527  cout << " - Label = " << v.getLabel() << endl;
528  }
529 
530  //edm::InputTag l1Tag(v->getl1Path(),"",processname_);
531  edm::InputTag l1Tag(v.getLabel(), "", processname_);
532  const int l1Index = triggerObj_->filterIndex(l1Tag);
533  if (verbose_)
534  cout << " - l1Index = " << l1Index << " - l1Tag = [" << l1Tag << "]" << endl;
535 
536  edm::InputTag hltTag(v.getLabel(), "", processname_);
537  const int hltIndex = triggerObj_->filterIndex(hltTag);
538  if (verbose_)
539  cout << " - hltIndex = " << hltIndex << " - hltTag = [" << hltTag << "]" << endl;
540 
541  //bool l1TrigBool = false;
542  bool hltTrigBool = false;
543  bool diJetFire = false;
544  int jetsize = 0;
545 
546  if (l1Index >= triggerObj_->sizeFilters()) {
547  edm::LogInfo("JetMETHLTOfflineSource") << "no index " << l1Index << " of that name " << l1Tag;
548  if (verbose_)
549  cout << "[JetMETHLTOfflineSource::fillMEforMonAllTrigger] - No index l1Index=" << l1Index << " of that name \""
550  << l1Tag << "\"" << endl;
551  } else {
552  //l1TrigBool = true;
553  const trigger::Keys& kl1 = triggerObj_->filterKeys(l1Index);
554  //
555  if (v.getObjectType() == trigger::TriggerJet && v.getTriggerType() == "SingleJet_Trigger")
556  v.getMEhisto_N_L1()->Fill(kl1.size());
557  //
558  auto ki = kl1.begin();
559  for (; ki != kl1.end(); ++ki) {
560  double l1TrigEta = -100;
561  double l1TrigPhi = -100;
562  //
563  if (v.getObjectType() == trigger::TriggerJet) {
564  l1TrigEta = toc[*ki].eta();
565  l1TrigPhi = toc[*ki].phi();
566  if (v.getTriggerType() == "SingleJet_Trigger") {
567  v.getMEhisto_Pt_L1()->Fill(toc[*ki].pt());
568  if (isBarrel(toc[*ki].eta()))
569  v.getMEhisto_PtBarrel_L1()->Fill(toc[*ki].pt());
570  if (isEndCap(toc[*ki].eta()))
571  v.getMEhisto_PtEndcap_L1()->Fill(toc[*ki].pt());
572  if (isForward(toc[*ki].eta()))
573  v.getMEhisto_PtForward_L1()->Fill(toc[*ki].pt());
574  v.getMEhisto_Eta_L1()->Fill(toc[*ki].eta());
575  v.getMEhisto_Phi_L1()->Fill(toc[*ki].phi());
576  v.getMEhisto_EtaPhi_L1()->Fill(toc[*ki].eta(), toc[*ki].phi());
577  }
578  }
579  if (v.getObjectType() == trigger::TriggerMET || v.getObjectType() == trigger::TriggerTET) {
580  v.getMEhisto_Pt_L1()->Fill(toc[*ki].pt());
581  v.getMEhisto_Phi_L1()->Fill(toc[*ki].phi());
582  }
583 
584  //-----------------------------------------------
585  if (hltIndex >= triggerObj_->sizeFilters()) {
586  edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt" << hltIndex << " of that name ";
587  if (verbose_)
588  cout << "[JetMETHLTOfflineSource::fillMEforMonAllTrigger] - No index hltIndex=" << hltIndex
589  << " of that name " << endl;
590  } else {
591  const trigger::Keys& khlt = triggerObj_->filterKeys(hltIndex);
592  if (v.getObjectType() == trigger::TriggerJet && ki == kl1.begin() &&
593  v.getTriggerType() == "SingleJet_Trigger")
594  v.getMEhisto_N_HLT()->Fill(khlt.size());
595  //
596  auto kj = khlt.begin();
597  //Define hltTrigBool
598  for (; kj != khlt.end(); ++kj) {
599  if (v.getObjectType() == trigger::TriggerJet) {
600  double hltTrigEta = -100;
601  double hltTrigPhi = -100;
602  hltTrigEta = toc[*kj].eta();
603  hltTrigPhi = toc[*kj].phi();
604  if ((deltaR(hltTrigEta, hltTrigPhi, l1TrigEta, l1TrigPhi)) < 0.4 &&
605  (v.getTriggerType() == "DiJet_Trigger"))
606  hltTrigBool = true;
607  }
608  }
609  //
610  kj = khlt.begin();
611  for (; kj != khlt.end(); ++kj) {
612  double hltTrigEta = -100.;
613  double hltTrigPhi = -100.;
614  //fillL1HLT = true;
615  //MET Triggers
616  if (verbose_)
617  cout << "+ MET Triggers plots" << endl;
618  if (v.getObjectType() == trigger::TriggerMET || (v.getObjectType() == trigger::TriggerTET)) {
619  v.getMEhisto_Pt_HLT()->Fill(toc[*kj].pt());
620  v.getMEhisto_Phi_HLT()->Fill(toc[*kj].phi());
621  v.getMEhisto_PtCorrelation_L1HLT()->Fill(toc[*ki].pt(), toc[*kj].pt());
622  v.getMEhisto_PhiCorrelation_L1HLT()->Fill(toc[*ki].phi(), toc[*kj].phi());
623  v.getMEhisto_PtResolution_L1HLT()->Fill((toc[*ki].pt() - toc[*kj].pt()) / (toc[*ki].pt()));
624  v.getMEhisto_PhiResolution_L1HLT()->Fill(toc[*ki].phi() - toc[*kj].phi());
625  }
626  //Jet Triggers
627  if (verbose_)
628  cout << "+ Jet Trigger plots" << endl;
629  if (v.getObjectType() == trigger::TriggerJet) {
630  if (verbose_)
631  cout << " - Going for those..." << endl;
632  hltTrigEta = toc[*kj].eta();
633  hltTrigPhi = toc[*kj].phi();
634  if ((deltaR(hltTrigEta, hltTrigPhi, l1TrigEta, l1TrigPhi)) < 0.4) {
635  if (v.getTriggerType() == "SingleJet_Trigger") {
636  v.getMEhisto_PtCorrelation_L1HLT()->Fill(toc[*ki].pt(), toc[*kj].pt());
637  v.getMEhisto_EtaCorrelation_L1HLT()->Fill(toc[*ki].eta(), toc[*kj].eta());
638  v.getMEhisto_PhiCorrelation_L1HLT()->Fill(toc[*ki].phi(), toc[*kj].phi());
639  v.getMEhisto_PtResolution_L1HLT()->Fill((toc[*ki].pt() - toc[*kj].pt()) / (toc[*ki].pt()));
640  v.getMEhisto_EtaResolution_L1HLT()->Fill(toc[*ki].eta() - toc[*kj].eta());
641  v.getMEhisto_PhiResolution_L1HLT()->Fill(toc[*ki].phi() - toc[*kj].phi());
642  }
643  }
644  if (((deltaR(hltTrigEta, hltTrigPhi, l1TrigEta, l1TrigPhi) < 0.4) ||
645  ((v.getTriggerType() == "DiJet_Trigger") && hltTrigBool)) &&
646  !diJetFire) {
647  if (v.getTriggerType() == "SingleJet_Trigger") {
648  v.getMEhisto_Pt_HLT()->Fill(toc[*kj].pt());
649  if (isBarrel(toc[*kj].eta()))
650  v.getMEhisto_PtBarrel_HLT()->Fill(toc[*kj].pt());
651  if (isEndCap(toc[*kj].eta()))
652  v.getMEhisto_PtEndcap_HLT()->Fill(toc[*kj].pt());
653  if (isForward(toc[*kj].eta()))
654  v.getMEhisto_PtForward_HLT()->Fill(toc[*kj].pt());
655  v.getMEhisto_Eta_HLT()->Fill(toc[*kj].eta());
656  v.getMEhisto_Phi_HLT()->Fill(toc[*kj].phi());
657  v.getMEhisto_EtaPhi_HLT()->Fill(toc[*kj].eta(), toc[*kj].phi());
658  }
659 
660  //Calojet
661  if (calojetColl_.isValid() && (v.getObjectType() == trigger::TriggerJet) && (v.getPath() == "PFJet")) {
662  //CaloJetCollection::const_iterator jet = calojet.begin();
663  //for(; jet != calojet.end(); ++jet) {
664  for (int iCalo = 0; iCalo < 2; iCalo++) {
665  if (deltaR(hltTrigEta, hltTrigPhi, CaloJetEta[iCalo], CaloJetPhi[iCalo]) < 0.4) {
666  jetsize++;
667  if (v.getTriggerType() == "SingleJet_Trigger") {
668  v.getMEhisto_Pt()->Fill(CaloJetPt[iCalo]);
669  if (isBarrel(CaloJetEta[iCalo]))
670  v.getMEhisto_PtBarrel()->Fill(CaloJetPt[iCalo]);
671  if (isEndCap(CaloJetEta[iCalo]))
672  v.getMEhisto_PtEndcap()->Fill(CaloJetPt[iCalo]);
673  if (isForward(CaloJetEta[iCalo]))
674  v.getMEhisto_PtForward()->Fill(CaloJetPt[iCalo]);
675  //
676  v.getMEhisto_Eta()->Fill(CaloJetEta[iCalo]);
677  v.getMEhisto_Phi()->Fill(CaloJetPhi[iCalo]);
678  v.getMEhisto_EtaPhi()->Fill(CaloJetEta[iCalo], CaloJetPhi[iCalo]);
679  //
680  v.getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*kj].pt(), CaloJetPt[iCalo]);
681  v.getMEhisto_EtaCorrelation_HLTRecObj()->Fill(toc[*kj].eta(), CaloJetEta[iCalo]);
682  v.getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*kj].phi(), CaloJetPhi[iCalo]);
683  //
684  v.getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*kj].pt() - CaloJetPt[iCalo]) /
685  (toc[*kj].pt()));
686  v.getMEhisto_EtaResolution_HLTRecObj()->Fill(toc[*kj].eta() - CaloJetEta[iCalo]);
687  v.getMEhisto_PhiResolution_HLTRecObj()->Fill(toc[*kj].phi() - CaloJetPhi[iCalo]);
688  }
689 
690  //-------------------------------------------------------
691  if ((v.getTriggerType() == "DiJet_Trigger")) {
692  jetPhiVec.push_back(CaloJetPhi[iCalo]);
693  jetPtVec.push_back(CaloJetPt[iCalo]);
694  jetEtaVec.push_back(CaloJetEta[iCalo]);
695  jetPxVec.push_back(CaloJetPx[iCalo]);
696  jetPyVec.push_back(CaloJetPy[iCalo]);
697  //
698  hltPhiVec.push_back(toc[*kj].phi());
699  hltPtVec.push_back(toc[*kj].pt());
700  hltEtaVec.push_back(toc[*kj].eta());
701  hltPxVec.push_back(toc[*kj].px());
702  hltPyVec.push_back(toc[*kj].py());
703  }
704  } // matching jet
705  } // Jet Loop
706  } // valid calojet collection, with calojet trigger
707 
708  //PFJet trigger
709  if (pfjetColl_.isValid() && (v.getObjectType() == trigger::TriggerJet) && (v.getPath() != "PFJet")) {
710  //PFJetCollection::const_iterator jet = pfjet.begin();
711  //for(; jet != pfjet.end(); ++jet){
712  for (int iPF = 0; iPF < 2; iPF++) {
713  if (deltaR(hltTrigEta, hltTrigPhi, PFJetEta[iPF], PFJetPhi[iPF]) < 0.4) {
714  jetsize++;
715  if (v.getTriggerType() == "SingleJet_Trigger") {
716  v.getMEhisto_Pt()->Fill(PFJetPt[iPF]);
717  if (isBarrel(PFJetEta[iPF]))
718  v.getMEhisto_PtBarrel()->Fill(PFJetPt[iPF]);
719  if (isEndCap(PFJetEta[iPF]))
720  v.getMEhisto_PtEndcap()->Fill(PFJetPt[iPF]);
721  if (isForward(PFJetEta[iPF]))
722  v.getMEhisto_PtForward()->Fill(PFJetPt[iPF]);
723  //
724  v.getMEhisto_Eta()->Fill(PFJetEta[iPF]);
725  v.getMEhisto_Phi()->Fill(PFJetPhi[iPF]);
726  v.getMEhisto_EtaPhi()->Fill(PFJetEta[iPF], PFJetPhi[iPF]);
727  //
728  v.getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*kj].pt(), PFJetPt[iPF]);
729  v.getMEhisto_EtaCorrelation_HLTRecObj()->Fill(toc[*kj].eta(), PFJetEta[iPF]);
730  v.getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*kj].phi(), PFJetPhi[iPF]);
731  //
732  v.getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*kj].pt() - PFJetPt[iPF]) / (toc[*kj].pt()));
733  v.getMEhisto_EtaResolution_HLTRecObj()->Fill(toc[*kj].eta() - PFJetEta[iPF]);
734  v.getMEhisto_PhiResolution_HLTRecObj()->Fill(toc[*kj].phi() - PFJetPhi[iPF]);
735  }
736 
737  //-------------------------------------------------------
738  if ((v.getTriggerType() == "DiJet_Trigger")) {
739  jetPhiVec.push_back(PFJetPhi[iPF]);
740  jetPtVec.push_back(PFJetPt[iPF]);
741  jetEtaVec.push_back(PFJetEta[iPF]);
742  jetPxVec.push_back(PFJetPx[iPF]);
743  jetPyVec.push_back(PFJetPy[iPF]);
744  //
745  hltPhiVec.push_back(toc[*kj].phi());
746  hltPtVec.push_back(toc[*kj].pt());
747  hltEtaVec.push_back(toc[*kj].eta());
748  hltPxVec.push_back(toc[*kj].px());
749  hltPyVec.push_back(toc[*kj].py());
750  }
751  } // matching jet
752  } //PFJet loop
753  } //valid pfjet collection, with pfjet trigger
754  //
755  } // hlt matching with l1
756  } // jet trigger
757 
758  //------------------------------------------------------
759  if (calometColl_.isValid() &&
760  ((v.getObjectType() == trigger::TriggerMET) || (v.getObjectType() == trigger::TriggerTET)) &&
761  (v.getPath().find("HLT_PFMET") == std::string::npos)) {
762  const CaloMETCollection* calometcol = calometColl_.product();
763  const CaloMET met = calometcol->front();
764  //
765  v.getMEhisto_Pt()->Fill(met.et());
766  v.getMEhisto_Phi()->Fill(met.phi());
767  //
768  v.getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*kj].et(), met.et());
769  v.getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*kj].phi(), met.phi());
770  v.getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*kj].et() - met.et()) / (toc[*kj].et()));
771  v.getMEhisto_PhiResolution_HLTRecObj()->Fill(toc[*kj].phi() - met.phi());
772  }
773 
774  //--------------------------------------------------------
775  if (pfmetColl_.isValid() &&
776  ((v.getObjectType() == trigger::TriggerMET) || (v.getObjectType() == trigger::TriggerTET)) &&
777  (v.getPath().find("HLT_PFMET") != std::string::npos)) {
778  const PFMETCollection* pfmetcol = pfmetColl_.product();
779  const PFMET pfmet = pfmetcol->front();
780  //
781  v.getMEhisto_Pt()->Fill(pfmet.et());
782  v.getMEhisto_Phi()->Fill(pfmet.phi());
783  //
784  v.getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*kj].et(), pfmet.et());
785  v.getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*kj].phi(), pfmet.phi());
786  v.getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*kj].et() - pfmet.et()) / (toc[*kj].et()));
787  v.getMEhisto_PhiResolution_HLTRecObj()->Fill(toc[*kj].phi() - pfmet.phi());
788  }
789  } //Loop over HLT trigger candidates
790  if ((v.getTriggerType() == "DiJet_Trigger"))
791  diJetFire = true;
792  } // Valid hlt trigger object
793  } // Loop over L1 objects
794  } // Valid L1 trigger object
795  v.getMEhisto_N()->Fill(jetsize);
796 
797  //--------------------------------------------------------
798  if ((v.getTriggerType() == "DiJet_Trigger") && jetPtVec.size() > 1) {
799  double AveJetPt = (jetPtVec[0] + jetPtVec[1]) / 2;
800  double AveJetEta = (jetEtaVec[0] + jetEtaVec[1]) / 2;
801  double JetDelPhi = deltaPhi(jetPhiVec[0], jetPhiVec[1]);
802  double AveHLTPt = (hltPtVec[0] + hltPtVec[1]) / 2;
803  double AveHLTEta = (hltEtaVec[0] + hltEtaVec[1]) / 2;
804  double HLTDelPhi = deltaPhi(hltPhiVec[0], hltPhiVec[1]);
805  v.getMEhisto_AveragePt_RecObj()->Fill(AveJetPt);
806  v.getMEhisto_AverageEta_RecObj()->Fill(AveJetEta);
807  v.getMEhisto_DeltaPhi_RecObj()->Fill(JetDelPhi);
808  //
809  v.getMEhisto_AveragePt_HLTObj()->Fill(AveHLTPt);
810  v.getMEhisto_AverageEta_HLTObj()->Fill(AveHLTEta);
811  v.getMEhisto_DeltaPhi_HLTObj()->Fill(HLTDelPhi);
812  }
813  }
814  if (verbose_)
815  cout << "<< Exiting fillMEforMonAllTrigger " << endl;
816 }
817 
818 //------------------------------------------------------------------------//
820  if (!triggerResults_.isValid())
821  return;
822 
823  int num = -1;
824  int denom = -1;
825  bool denompassed = false;
826  bool numpassed = false;
828 
829  for (auto& v : hltPathsEff_) {
830  num++;
831  denom++;
832  denompassed = false;
833  numpassed = false;
834 
835  unsigned indexNum = triggerNames_.triggerIndex(v.getPath());
836  unsigned indexDenom = triggerNames_.triggerIndex(v.getDenomPath());
837 
838  if (indexNum < triggerNames_.size() && triggerResults_->accept(indexNum))
839  numpassed = true;
840  if (indexDenom < triggerNames_.size() && triggerResults_->accept(indexDenom))
841  denompassed = true;
842 
843  if (denompassed == false)
844  continue;
845 
846  //if(numpassed==true){
847  edm::InputTag hltTag(v.getLabel(), "", processname_);
848  const int hltIndex = triggerObj_->filterIndex(hltTag);
849  edm::InputTag l1Tag(v.getl1Path(), "", processname_);
850  const int l1Index = triggerObj_->filterIndex(l1Tag);
851  //}
852 
853  //----------------------------------------------------------------------
854  //double pTcut = 0;
855  double trigLowpTcut = 0;
856  double trigMedpTcut = 0;
857  double trigHighpTcut = 0;
858  double trigLowpTcutFwd = 0;
859  double trigMedpTcutFwd = 0;
860  double trigHighpTcutFwd = 0;
861  //
862  //double pTPFcut = 0 ;
863  double trigLowpTPFcut = 0;
864  double trigMedpTPFcut = 0;
865  double trigHighpTPFcut = 0;
866  double trigLowpTPFcutFwd = 0;
867  double trigMedpTPFcutFwd = 0;
868  double trigHighpTPFcutFwd = 0;
869  //
870  //cout<<"pre-path" << v->getPath()<<endl;
871  size_t jetstrfound = v.getPath().find("Jet");
872  //size_t censtrfound = v->getPath().find("Central"); //shoouldn't be needed?
873  string tpath = v.getPath();
874  string jetTrigVal;
875  float jetVal = 0.;
876  //
877  if (jetstrfound != string::npos) { // && ustrfound != string::npos ){
878  //cout<<v->getPath()<<endl;
879  for (int trig = int(jetstrfound) + 3; trig < int(jetstrfound) + 7; trig++) { // int(ustrfound); trig++){
880  if (!isdigit(tpath[trig]))
881  break;
882  jetTrigVal += tpath[trig];
883  }
884  jetVal = atof(jetTrigVal.c_str());
885  //
886  if (jetVal > 0.) {
887  if (jetVal < 50.) {
888  //pTcut = jetVal / 2.;
889  trigMedpTcut = jetVal + 5.;
890  trigHighpTcut = jetVal + 10.;
891  //
892  trigLowpTcutFwd = jetVal + 9.;
893  trigMedpTcutFwd = jetVal + 15.;
894  trigHighpTcutFwd = jetVal + 21.;
895  } else {
896  //pTcut = jetVal - 20. ;
897  trigMedpTcut = jetVal + 2.;
898  trigHighpTcut = jetVal + 60.;
899  //
900  trigLowpTcutFwd = jetVal + 22.;
901  trigMedpTcutFwd = jetVal + 25.;
902  trigHighpTcutFwd = jetVal + 110.;
903  }
904  trigLowpTcut = jetVal;
905  }
906  //
907  if (jetVal > 0.) {
908  if (jetVal < 50.) {
909  //pTPFcut = jetVal ;
910  trigMedpTPFcut = jetVal + 20.;
911  trigHighpTPFcut = jetVal + 40.;
912  //
913  trigLowpTPFcutFwd = jetVal + 60.;
914  trigMedpTPFcutFwd = jetVal + 80.;
915  trigHighpTPFcutFwd = jetVal + 100.;
916  } else {
917  //pTPFcut = jetVal ;
918  trigMedpTPFcut = jetVal + 40.;
919  trigHighpTPFcut = jetVal + 140.;
920  //
921  trigLowpTPFcutFwd = jetVal + 110.;
922  trigMedpTPFcutFwd = jetVal + 130.;
923  trigHighpTPFcutFwd = jetVal + 190.;
924  }
925  trigLowpTPFcut = jetVal;
926  }
927  }
928  //----------------------------------------------------------------------
929 
930  //CaloJet paths
931  if (verbose_)
932  std::cout << "fillMEforEffAllTrigger: CaloJet -------------------" << std::endl;
933  if (calojetColl_.isValid() && (v.getObjectType() == trigger::TriggerJet)) {
934  //cout<<" - CaloJet "<<endl;
935  //&& (v->getPath().find("HLT_PFJet")==std::string::npos)
936  //&& (v->getPath().find("HLT_DiPFJet")==std::string::npos)){
937  bool jetIDbool = false;
938  double leadjpt = CaloJetPt[0];
939  double leadjeta = CaloJetEta[0];
940  double leadjphi = CaloJetPhi[0];
941  //double ljemf = CaloJetEMF[0];
942  double ljfhpd = CaloJetfHPD[0];
943  double ljn90 = CaloJetn90[0];
944  if ((v.getTriggerType() == "SingleJet_Trigger") && !calojet.empty()) { //this line stops the central jets
945  if ((ljfhpd < _fHPD) && (ljn90 > _n90Hits)) {
946  if (verbose_)
947  cout << "Passed CaloJet ID -------------------" << endl;
948  jetIDbool = true;
949  //Denominator fill
950  v.getMEhisto_DenominatorPt()->Fill(leadjpt);
951  if (isBarrel(leadjeta))
952  v.getMEhisto_DenominatorPtBarrel()->Fill(leadjpt);
953  if (isEndCap(leadjeta))
954  v.getMEhisto_DenominatorPtEndcap()->Fill(leadjpt);
955  if (isForward(leadjeta))
956  v.getMEhisto_DenominatorPtForward()->Fill(leadjpt);
957  v.getMEhisto_DenominatorEta()->Fill(leadjeta);
958  v.getMEhisto_DenominatorPhi()->Fill(leadjphi);
959  v.getMEhisto_DenominatorEtaPhi()->Fill(leadjeta, leadjphi);
960  if (isBarrel(leadjeta)) {
961  v.getMEhisto_DenominatorEtaBarrel()->Fill(leadjeta);
962  v.getMEhisto_DenominatorPhiBarrel()->Fill(leadjphi);
963  }
964  if (isEndCap(leadjeta)) {
965  v.getMEhisto_DenominatorEtaEndcap()->Fill(leadjeta);
966  v.getMEhisto_DenominatorPhiEndcap()->Fill(leadjphi);
967  }
968  if (isForward(leadjeta)) {
969  v.getMEhisto_DenominatorEtaForward()->Fill(leadjeta);
970  v.getMEhisto_DenominatorPhiForward()->Fill(leadjphi);
971  }
972  if ((leadjpt > trigLowpTcut && !isForward(leadjeta)) || (leadjpt > trigLowpTcutFwd && isForward(leadjeta))) {
973  v.getMEhisto_DenominatorEta_LowpTcut()->Fill(leadjeta);
974  v.getMEhisto_DenominatorPhi_LowpTcut()->Fill(leadjphi);
975  v.getMEhisto_DenominatorEtaPhi_LowpTcut()->Fill(leadjeta, leadjphi);
976  }
977  if ((leadjpt > trigMedpTcut && !isForward(leadjeta)) || (leadjpt > trigMedpTcutFwd && isForward(leadjeta))) {
978  v.getMEhisto_DenominatorEta_MedpTcut()->Fill(leadjeta);
979  v.getMEhisto_DenominatorPhi_MedpTcut()->Fill(leadjphi);
980  v.getMEhisto_DenominatorEtaPhi_MedpTcut()->Fill(leadjeta, leadjphi);
981  }
982  if ((leadjpt > trigHighpTcut && !isForward(leadjeta)) ||
983  (leadjpt > trigHighpTcutFwd && isForward(leadjeta))) {
984  v.getMEhisto_DenominatorEta_HighpTcut()->Fill(leadjeta);
985  v.getMEhisto_DenominatorPhi_HighpTcut()->Fill(leadjphi);
986  v.getMEhisto_DenominatorEtaPhi_HighpTcut()->Fill(leadjeta, leadjphi);
987  }
988 
989  //Numerator fill
990  if (numpassed) {
991  //
992  double dRmin = 99999.;
993  double dPhimin = 9999.;
994  if (v.getPath().find("L1") != std::string::npos) {
995  if (l1Index >= triggerObj_->sizeFilters()) {
996  edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt" << hltIndex << " of that name ";
997  } else {
998  const trigger::Keys& kl1 = triggerObj_->filterKeys(l1Index);
999  for (unsigned short ki : kl1) {
1000  double dR = deltaR(toc[ki].eta(), toc[ki].phi(), leadjeta, leadjphi);
1001  if (dR < dRmin) {
1002  dRmin = dR;
1003  }
1004  }
1005  }
1006  } else {
1007  if (hltIndex >= triggerObj_->sizeFilters()) {
1008  edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt" << hltIndex << " of that name ";
1009  } else {
1010  const trigger::Keys& khlt = triggerObj_->filterKeys(hltIndex);
1011  auto kj = khlt.begin();
1012  for (; kj != khlt.end(); ++kj) {
1013  double dR = deltaR(toc[*kj].eta(), toc[*kj].phi(), leadjeta, leadjphi);
1014  if (dR < dRmin) {
1015  dRmin = dR;
1016  }
1017  double dPhi = deltaPhi(toc[*kj].phi(), leadjphi);
1018  if (dPhi < dPhimin) {
1019  dPhimin = dPhi;
1020  }
1021  }
1022  //v->getMEhisto_DeltaPhi()->Fill(dPhimin);
1023  v.getMEhisto_DeltaPhi()->Fill(dPhimin);
1024  v.getMEhisto_DeltaR()->Fill(dRmin);
1025  }
1026  }
1027  if (dRmin < 0.1 || (v.getPath().find("L1") != std::string::npos && dRmin < 0.4)) {
1028  v.getMEhisto_NumeratorPt()->Fill(leadjpt);
1029  if (isBarrel(leadjeta))
1030  v.getMEhisto_NumeratorPtBarrel()->Fill(leadjpt);
1031  if (isEndCap(leadjeta))
1032  v.getMEhisto_NumeratorPtEndcap()->Fill(leadjpt);
1033  if (isForward(leadjeta))
1034  v.getMEhisto_NumeratorPtForward()->Fill(leadjpt);
1035  v.getMEhisto_NumeratorEta()->Fill(leadjeta);
1036  v.getMEhisto_NumeratorPhi()->Fill(leadjphi);
1037  v.getMEhisto_NumeratorEtaPhi()->Fill(leadjeta, leadjphi);
1038  if (isBarrel(leadjeta)) {
1039  v.getMEhisto_NumeratorEtaBarrel()->Fill(leadjeta);
1040  v.getMEhisto_NumeratorPhiBarrel()->Fill(leadjphi);
1041  }
1042  if (isEndCap(leadjeta)) {
1043  v.getMEhisto_NumeratorEtaEndcap()->Fill(leadjeta);
1044  v.getMEhisto_NumeratorPhiEndcap()->Fill(leadjphi);
1045  }
1046  if (isForward(leadjeta)) {
1047  v.getMEhisto_NumeratorEtaForward()->Fill(leadjeta);
1048  v.getMEhisto_NumeratorPhiForward()->Fill(leadjphi);
1049  }
1050  if ((leadjpt > trigLowpTcut && !isForward(leadjeta)) ||
1051  (leadjpt > trigLowpTcutFwd && isForward(leadjeta))) {
1052  v.getMEhisto_NumeratorEta_LowpTcut()->Fill(leadjeta);
1053  v.getMEhisto_NumeratorPhi_LowpTcut()->Fill(leadjphi);
1054  v.getMEhisto_NumeratorEtaPhi_LowpTcut()->Fill(leadjeta, leadjphi);
1055  }
1056  if ((leadjpt > trigMedpTcut && !isForward(leadjeta)) ||
1057  (leadjpt > trigMedpTcutFwd && isForward(leadjeta))) {
1058  v.getMEhisto_NumeratorEta_MedpTcut()->Fill(leadjeta);
1059  v.getMEhisto_NumeratorPhi_MedpTcut()->Fill(leadjphi);
1060  v.getMEhisto_NumeratorEtaPhi_MedpTcut()->Fill(leadjeta, leadjphi);
1061  }
1062  if ((leadjpt > trigHighpTcut && !isForward(leadjeta)) ||
1063  (leadjpt > trigHighpTcutFwd && isForward(leadjeta))) {
1064  v.getMEhisto_NumeratorEta_HighpTcut()->Fill(leadjeta);
1065  v.getMEhisto_NumeratorPhi_HighpTcut()->Fill(leadjphi);
1066  v.getMEhisto_NumeratorEtaPhi_HighpTcut()->Fill(leadjeta, leadjphi);
1067  }
1068  }
1069  } //numpassed
1070  } //CalojetID filter
1071  }
1072 
1073  if (jetIDbool == true && (v.getTriggerType() == "DiJet_Trigger") && calojet.size() > 1) {
1074  if (((CaloJetEMF[1] > _fEMF || std::abs(CaloJetEta[1]) > _feta) && CaloJetfHPD[0] < _fHPD &&
1075  CaloJetn90[0] > _n90Hits)) {
1076  v.getMEhisto_DenominatorPt()->Fill((CaloJetPt[0] + CaloJetPt[1]) / 2.);
1077  v.getMEhisto_DenominatorEta()->Fill((CaloJetEta[0] + CaloJetEta[1]) / 2.);
1078  if (numpassed == true) {
1079  v.getMEhisto_NumeratorPt()->Fill((CaloJetPt[0] + CaloJetPt[1]) / 2.);
1080  v.getMEhisto_NumeratorEta()->Fill((CaloJetEta[0] + CaloJetEta[1]) / 2.);
1081  }
1082  }
1083  }
1084  } // Jet trigger and valid jet collection
1085 
1086  //PFJet paths
1087  if (verbose_)
1088  std::cout << "fillMEforEffAllTrigger: PFJet -------------------" << std::endl;
1089  if (pfjetColl_.isValid() && (v.getObjectType() == trigger::TriggerJet)) {
1090  //cout<<" - PFJet "<<endl;
1091  //&& (v->getPath().find("HLT_PFJet")!=std::string::npos)
1092  //&& (v->getPath().find("HLT_DiPFJet")!=std::string::npos)){
1093  bool jetIDbool = false;
1094  double leadjpt = PFJetPt[0];
1095  double leadjeta = PFJetEta[0];
1096  double leadjphi = PFJetPhi[0];
1097  double ljNHEF = PFJetNHEF[0];
1098  double ljCHEF = PFJetCHEF[0];
1099  double ljNEMF = PFJetNEMF[0];
1100  double ljCEMF = PFJetCEMF[0];
1101  //double sleadjpt = PFJetPt[1];
1102  //double sleadjeta = PFJetEta[1];
1103  //double sleadjphi = PFJetPhi[1];
1104  double sljNHEF = PFJetNHEF[1];
1105  double sljCHEF = PFJetCHEF[1];
1106  double sljNEMF = PFJetNEMF[1];
1107  double sljCEMF = PFJetCEMF[1];
1108  //
1109  double pfMHTx = pfMHTx_All;
1110  double pfMHTy = pfMHTy_All;
1111  //
1112  if ((v.getTriggerType() == "SingleJet_Trigger") && !pfjet.empty()) { //this line stops the central jets
1113 
1114  //======get pfmht
1115  _pfMHT = sqrt(pfMHTx * pfMHTx + pfMHTy * pfMHTy);
1116  v.getMEhisto_DenominatorPFMHT()->Fill(_pfMHT);
1117 
1118  if (ljNHEF >= _min_NHEF && ljNHEF <= _max_NHEF && ljCHEF >= _min_CHEF && ljCHEF <= _max_CHEF &&
1119  ljNEMF >= _min_NEMF && ljNEMF <= _max_NEMF && ljCEMF >= _min_CEMF && ljCEMF <= _max_CEMF) {
1120  if (verbose_)
1121  cout << "Passed PFJet ID -------------------" << endl;
1122  jetIDbool = true;
1123  v.getMEhisto_DenominatorPFPt()->Fill(leadjpt);
1124  if (isBarrel(leadjeta))
1125  v.getMEhisto_DenominatorPFPtBarrel()->Fill(leadjpt);
1126  if (isEndCap(leadjeta))
1127  v.getMEhisto_DenominatorPFPtEndcap()->Fill(leadjpt);
1128  if (isForward(leadjeta))
1129  v.getMEhisto_DenominatorPFPtForward()->Fill(leadjpt);
1130  v.getMEhisto_DenominatorPFEta()->Fill(leadjeta);
1131  v.getMEhisto_DenominatorPFPhi()->Fill(leadjphi);
1132  v.getMEhisto_DenominatorPFEtaPhi()->Fill(leadjeta, leadjphi);
1133  if (isBarrel(leadjeta)) {
1134  v.getMEhisto_DenominatorPFEtaBarrel()->Fill(leadjeta);
1135  v.getMEhisto_DenominatorPFPhiBarrel()->Fill(leadjphi);
1136  }
1137  if (isEndCap(leadjeta)) {
1138  v.getMEhisto_DenominatorPFEtaEndcap()->Fill(leadjeta);
1139  v.getMEhisto_DenominatorPFPhiEndcap()->Fill(leadjphi);
1140  }
1141  if (isForward(leadjeta)) {
1142  v.getMEhisto_DenominatorPFEtaForward()->Fill(leadjeta);
1143  v.getMEhisto_DenominatorPFPhiForward()->Fill(leadjphi);
1144  }
1145  if ((leadjpt > trigLowpTPFcut && !isForward(leadjeta)) ||
1146  (leadjpt > trigLowpTPFcutFwd && isForward(leadjeta))) {
1147  v.getMEhisto_DenominatorPFEta_LowpTcut()->Fill(leadjeta);
1148  v.getMEhisto_DenominatorPFPhi_LowpTcut()->Fill(leadjphi);
1149  v.getMEhisto_DenominatorPFEtaPhi_LowpTcut()->Fill(leadjeta, leadjphi);
1150  }
1151  if ((leadjpt > trigMedpTPFcut && !isForward(leadjeta)) ||
1152  (leadjpt > trigMedpTPFcutFwd && isForward(leadjeta))) {
1153  v.getMEhisto_DenominatorPFEta_MedpTcut()->Fill(leadjeta);
1154  v.getMEhisto_DenominatorPFPhi_MedpTcut()->Fill(leadjphi);
1155  v.getMEhisto_DenominatorPFEtaPhi_MedpTcut()->Fill(leadjeta, leadjphi);
1156  }
1157  if ((leadjpt > trigHighpTPFcut && !isForward(leadjeta)) ||
1158  (leadjpt > trigHighpTPFcutFwd && isForward(leadjeta))) {
1159  v.getMEhisto_DenominatorPFEta_HighpTcut()->Fill(leadjeta);
1160  v.getMEhisto_DenominatorPFPhi_HighpTcut()->Fill(leadjphi);
1161  v.getMEhisto_DenominatorPFEtaPhi_HighpTcut()->Fill(leadjeta, leadjphi);
1162  }
1163 
1164  //Numerator fill
1165  if (numpassed) {
1166  double dRmin = 99999.;
1167  double dPhimin = 9999.;
1168  if (v.getPath().find("L1") != std::string::npos) {
1169  if (l1Index >= triggerObj_->sizeFilters()) {
1170  edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt" << hltIndex << " of that name ";
1171  } else {
1172  const trigger::Keys& kl1 = triggerObj_->filterKeys(l1Index);
1173  for (unsigned short ki : kl1) {
1174  double dR = deltaR(toc[ki].eta(), toc[ki].phi(), leadjeta, leadjphi);
1175  if (dR < dRmin) {
1176  dRmin = dR;
1177  }
1178  }
1179  }
1180  } else {
1181  if (hltIndex >= triggerObj_->sizeFilters()) {
1182  edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt" << hltIndex << " of that name ";
1183  } else {
1184  const trigger::Keys& khlt = triggerObj_->filterKeys(hltIndex);
1185  for (unsigned short kj : khlt) {
1186  double dR = deltaR(toc[kj].eta(), toc[kj].phi(), leadjeta, leadjphi);
1187  if (dR < dRmin) {
1188  dRmin = dR;
1189  }
1190  double dPhi = deltaPhi(toc[kj].phi(), leadjphi);
1191  if (dPhi < dPhimin) {
1192  dPhimin = dPhi;
1193  }
1194  }
1195  v.getMEhisto_PFDeltaPhi()->Fill(dPhimin);
1196  v.getMEhisto_PFDeltaR()->Fill(dRmin);
1197  }
1198  }
1199  if (dRmin < 0.1 || (v.getPath().find("L1") != std::string::npos && dRmin < 0.4)) {
1200  v.getMEhisto_NumeratorPFPt()->Fill(leadjpt);
1201  if (isBarrel(leadjeta))
1202  v.getMEhisto_NumeratorPFPtBarrel()->Fill(leadjpt);
1203  if (isEndCap(leadjeta))
1204  v.getMEhisto_NumeratorPFPtEndcap()->Fill(leadjpt);
1205  if (isForward(leadjeta))
1206  v.getMEhisto_NumeratorPFPtForward()->Fill(leadjpt);
1207  v.getMEhisto_NumeratorPFEta()->Fill(leadjeta);
1208  v.getMEhisto_NumeratorPFPhi()->Fill(leadjphi);
1209  v.getMEhisto_NumeratorPFEtaPhi()->Fill(leadjeta, leadjphi);
1210  if (isBarrel(leadjeta)) {
1211  v.getMEhisto_NumeratorPFEtaBarrel()->Fill(leadjeta);
1212  v.getMEhisto_NumeratorPFPhiBarrel()->Fill(leadjphi);
1213  }
1214  if (isEndCap(leadjeta)) {
1215  v.getMEhisto_NumeratorPFEtaEndcap()->Fill(leadjeta);
1216  v.getMEhisto_NumeratorPFPhiEndcap()->Fill(leadjphi);
1217  }
1218  if (isForward(leadjeta)) {
1219  v.getMEhisto_NumeratorPFEtaForward()->Fill(leadjeta);
1220  v.getMEhisto_NumeratorPFPhiForward()->Fill(leadjphi);
1221  }
1222  if ((leadjpt > trigLowpTPFcut && !isForward(leadjeta)) ||
1223  (leadjpt > trigLowpTPFcutFwd && isForward(leadjeta))) {
1224  v.getMEhisto_NumeratorPFEta_LowpTcut()->Fill(leadjeta);
1225  v.getMEhisto_NumeratorPFPhi_LowpTcut()->Fill(leadjphi);
1226  v.getMEhisto_NumeratorPFEtaPhi_LowpTcut()->Fill(leadjeta, leadjphi);
1227  }
1228  if ((leadjpt > trigMedpTPFcut && !isForward(leadjeta)) ||
1229  (leadjpt > trigMedpTPFcutFwd && isForward(leadjeta))) {
1230  v.getMEhisto_NumeratorPFEta_MedpTcut()->Fill(leadjeta);
1231  v.getMEhisto_NumeratorPFPhi_MedpTcut()->Fill(leadjphi);
1232  v.getMEhisto_NumeratorPFEtaPhi_MedpTcut()->Fill(leadjeta, leadjphi);
1233  }
1234  if ((leadjpt > trigHighpTPFcut && !isForward(leadjeta)) ||
1235  (leadjpt > trigHighpTPFcutFwd && isForward(leadjeta))) {
1236  v.getMEhisto_NumeratorPFEta_HighpTcut()->Fill(leadjeta);
1237  v.getMEhisto_NumeratorPFPhi_HighpTcut()->Fill(leadjphi);
1238  v.getMEhisto_NumeratorPFEtaPhi_HighpTcut()->Fill(leadjeta, leadjphi);
1239  }
1240  }
1241  }
1242  }
1243  }
1244  if (jetIDbool == true && (v.getTriggerType() == "DiJet_Trigger") && pfjet.size() > 1) {
1245  if (ljNHEF >= _min_NHEF && ljNHEF <= _max_NHEF && ljCHEF >= _min_CHEF && ljCHEF <= _max_CHEF &&
1246  ljNEMF >= _min_NEMF && ljNEMF <= _max_NEMF && ljCEMF >= _min_CEMF && ljCEMF <= _max_CEMF &&
1247  sljNHEF >= _min_NHEF && sljNHEF <= _max_NHEF && sljCHEF >= _min_CHEF && sljCHEF <= _max_CHEF &&
1248  sljNEMF >= _min_NEMF && sljNEMF <= _max_NEMF && sljCEMF >= _min_CEMF && sljCEMF <= _max_CEMF) {
1249  v.getMEhisto_DenominatorPFPt()->Fill((PFJetPt[0] + PFJetPt[1]) / 2.);
1250  v.getMEhisto_DenominatorPFEta()->Fill((PFJetEta[0] + PFJetEta[1]) / 2.);
1251  if (numpassed) {
1252  v.getMEhisto_NumeratorPFPt()->Fill((PFJetPt[0] + PFJetPt[1]) / 2.);
1253  v.getMEhisto_NumeratorPFEta()->Fill((PFJetEta[0] + PFJetEta[1]) / 2.);
1254  }
1255  }
1256  }
1257  } // PF Jet trigger and valid jet collection
1258 
1259  //CaloMET path
1260  if (verbose_)
1261  std::cout << "fillMEforEffAllTrigger: CaloMET -------------------" << std::endl;
1262  if (calometColl_.isValid() &&
1263  ((v.getObjectType() == trigger::TriggerMET) || (v.getObjectType() == trigger::TriggerTET)) &&
1264  (v.getPath().find("HLT_PFMET") == std::string::npos)) {
1265  const CaloMETCollection* calometcol = calometColl_.product();
1266  const CaloMET met = calometcol->front();
1267  v.getMEhisto_DenominatorPt()->Fill(met.et());
1268  v.getMEhisto_DenominatorPhi()->Fill(met.phi());
1269  if (numpassed) {
1270  v.getMEhisto_NumeratorPt()->Fill(met.et());
1271  v.getMEhisto_NumeratorPhi()->Fill(met.phi());
1272  if (hltIndex >= triggerObj_->sizeFilters()) {
1273  edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt" << hltIndex << " of that name ";
1274  } else {
1275  double dPhimin = 9999.; //
1276  const trigger::Keys& khlt = triggerObj_->filterKeys(hltIndex);
1277  for (unsigned short kj : khlt) {
1278  double dPhi = deltaPhi(toc[kj].phi(), met.phi());
1279  if (dPhi < dPhimin) {
1280  dPhimin = dPhi;
1281  }
1282  }
1283  v.getMEhisto_DeltaPhi()->Fill(dPhimin);
1284  }
1285  }
1286  }
1287 
1288  //PFMET
1289  if (verbose_)
1290  std::cout << "fillMEforEffAllTrigger: PFMET -------------------" << std::endl;
1291  if (pfmetColl_.isValid() &&
1292  ((v.getObjectType() == trigger::TriggerMET) || (v.getObjectType() == trigger::TriggerTET)) &&
1293  (v.getPath().find("HLT_PFMET") != std::string::npos)) {
1294  const PFMETCollection* pfmetcol = pfmetColl_.product();
1295  const PFMET met = pfmetcol->front();
1296  v.getMEhisto_DenominatorPt()->Fill(met.et());
1297  v.getMEhisto_DenominatorPhi()->Fill(met.phi());
1298  if (numpassed) {
1299  v.getMEhisto_NumeratorPt()->Fill(met.et());
1300  v.getMEhisto_NumeratorPhi()->Fill(met.phi());
1301  if (hltIndex >= triggerObj_->sizeFilters()) {
1302  edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt" << hltIndex << " of that name ";
1303  } else {
1304  double dPhimin = 9999.; //
1305  const trigger::Keys& khlt = triggerObj_->filterKeys(hltIndex);
1306  for (unsigned short kj : khlt) {
1307  double dPhi = deltaPhi(toc[kj].phi(), met.phi());
1308  if (dPhi < dPhimin) {
1309  dPhimin = dPhi;
1310  }
1311  }
1312  v.getMEhisto_DeltaPhi()->Fill(dPhimin);
1313  }
1314  }
1315  }
1316 
1317  /*
1318  if(pfmhtColl_.isValid() && ((v->getObjectType() == trigger::TriggerMET)|| (v->getObjectType() == trigger::TriggerTET))){
1319  const PFMHTCollection *pfmhtcol = pfmhtColl_.product();
1320  const PFMHT met = pfmhtcol->front();
1321  v->getMEhisto_DenominatorPFPt()->Fill(met.pt());
1322  v->getMEhisto_DenominatorPFPhi()->Fill(met.phi());
1323  }// PFMHT trigger and valid MET collection
1324  */
1325  } // trigger under study
1326 }
1327 
1328 //------------------------------------------------------------------------//
1329 //This method is called before the booking action in the DQMStore is triggered.
1331  if (!isSetup_) {
1332  //--- htlConfig_
1333  bool changed(true);
1334  if (!hltConfig_.init(run, c, processname_, changed)) {
1335  LogDebug("HLTJetMETDQMSource") << "HLTConfigProvider failed to initialize.";
1336  }
1337 
1338  /*
1339  Here we select the Single Jet, DiJet, MET trigger. SingleJet and DiJet trigger are saved under same object type "TriggerJet".
1340  We can easily separate out single and di jet trigger later. For the first trigger in the list, denominator trigger is dummy
1341  (empty) whereas for other triggers denom is previous trigger of same type. e.g. SingleJet50 has singleJet30 as denominator.
1342  */
1343 
1344  const unsigned int n(hltConfig_.size());
1345  int singleJet = 0;
1346  int diJet = 0;
1347  int met = 0;
1348  int tet = 0;
1349  for (unsigned int i = 0; i != n; ++i) {
1350  bool denomFound = false;
1351  bool numFound = false;
1352  bool checkPath = false;
1353 
1354  //Look for paths if "path name fraction" is found in the pathname
1356  //Filter only paths JetMET triggers are interested in
1357  auto controlPathname = pathFilter_.begin();
1358  for (; controlPathname != pathFilter_.end(); ++controlPathname) {
1359  if (pathname.find((*controlPathname)) != std::string::npos) {
1360  checkPath = true;
1361  break;
1362  }
1363  }
1364  if (checkPath == false)
1365  continue;
1366 
1367  //Reject if keyword(s) is found in the pathname
1368  auto rejectPathname = pathRejectKeyword_.begin();
1369  for (; rejectPathname != pathRejectKeyword_.end(); ++rejectPathname) {
1370  if (pathname.find((*rejectPathname)) != std::string::npos) {
1371  checkPath = false;
1372  break;
1373  }
1374  }
1375  if (checkPath == false)
1376  continue;
1377 
1378  //
1379  if (verbose_)
1380  cout << "==pathname==" << pathname << endl;
1381  std::string dpathname = MuonTrigPaths_[0];
1382  std::string l1pathname = "dummy";
1384  unsigned int usedPrescale = 1;
1385  unsigned int objectType = 0;
1386  std::string triggerType = "";
1387  std::string filtername("dummy");
1388  std::string Denomfiltername("denomdummy");
1389 
1390  if (pathname.find("Jet") != std::string::npos && !(pathname.find("DoubleJet") != std::string::npos) &&
1391  !(pathname.find("DiJet") != std::string::npos) && !(pathname.find("DiPFJet") != std::string::npos) &&
1392  !(pathname.find("BTag") != std::string::npos) && !(pathname.find("Mu") != std::string::npos) &&
1393  !(pathname.find("Fwd") != std::string::npos)) {
1394  triggerType = "SingleJet_Trigger";
1395  objectType = trigger::TriggerJet;
1396  }
1397  if (pathname.find("DiJet") != std::string::npos || pathname.find("DiPFJet") != std::string::npos ||
1398  pathname.find("DoubleJet") != std::string::npos) {
1399  triggerType = "DiJet_Trigger";
1400  objectType = trigger::TriggerJet;
1401  }
1402  if (pathname.find("MET") != std::string::npos) {
1403  triggerType = "MET_Trigger";
1404  objectType = trigger::TriggerMET;
1405  }
1406  if (pathname.find("HT") != std::string::npos) {
1407  triggerType = "TET_Trigger";
1408  objectType = trigger::TriggerTET;
1409  }
1410 
1411  //
1412  if (objectType == trigger::TriggerJet && !(pathname.find("DiJet") != std::string::npos) &&
1413  !(pathname.find("DiPFJet") != std::string::npos) && !(pathname.find("DoubleJet") != std::string::npos)) {
1414  singleJet++;
1415  if (singleJet > 1)
1416  dpathname = dpathname = hltConfig_.triggerName(i - 1);
1417  if (singleJet == 1)
1418  dpathname = MuonTrigPaths_[0];
1419  }
1420  if (objectType == trigger::TriggerJet &&
1421  ((pathname.find("DiJet") != std::string::npos) || (pathname.find("DiPFJet") != std::string::npos))) {
1422  diJet++;
1423  if (diJet > 1)
1424  dpathname = dpathname = hltConfig_.triggerName(i - 1);
1425  if (diJet == 1)
1426  dpathname = MuonTrigPaths_[0];
1427  }
1428  if (objectType == trigger::TriggerMET) {
1429  met++;
1430  if (met > 1)
1431  dpathname = dpathname = hltConfig_.triggerName(i - 1);
1432  if (met == 1)
1433  dpathname = MuonTrigPaths_[0];
1434  }
1435  if (objectType == trigger::TriggerTET) {
1436  tet++;
1437  if (tet > 1)
1438  dpathname = dpathname = hltConfig_.triggerName(i - 1);
1439  if (tet == 1)
1440  dpathname = MuonTrigPaths_[0];
1441  }
1442 
1443  // find L1 condition for numpath with numpath objecttype
1444  // find PSet for L1 global seed for numpath,sss
1445  // list module labels for numpath
1446 
1447  // Checking if the trigger exist in HLT table or not
1448  for (unsigned int i = 0; i != n; ++i) {
1449  std::string HLTname = hltConfig_.triggerName(i);
1450  if (HLTname == pathname)
1451  numFound = true;
1452  if (HLTname == dpathname)
1453  denomFound = true;
1454  }
1455 
1456  if (numFound) { //make trigger exist in the menu
1457  //ml needs change l1pathname
1458  l1pathname = getL1ConditionModuleName(pathname); //ml added L1conditionmodulename
1459  //ml added
1460  std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(pathname);
1461  for (auto& numpathmodule : numpathmodules) {
1462  edm::InputTag testTag(numpathmodule, "", processname_);
1463  if ((hltConfig_.moduleType(numpathmodule) == "HLT1CaloJet") ||
1464  (hltConfig_.moduleType(numpathmodule) == "HLT1PFJet") ||
1465  (hltConfig_.moduleType(numpathmodule) == "HLTDiJetAveFilter") ||
1466  (hltConfig_.moduleType(numpathmodule) == "HLTDiPFJetAveFilter") ||
1467  (hltConfig_.moduleType(numpathmodule) == "HLT1CaloMET") ||
1468  (hltConfig_.moduleType(numpathmodule) == "HLTMhtFilter") ||
1469  (hltConfig_.moduleType(numpathmodule) == "HLTPrescaler"))
1470  filtername = numpathmodule;
1471  }
1472  }
1473 
1474  if (objectType != 0 && denomFound) {
1475  std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(dpathname);
1476  for (auto& numpathmodule : numpathmodules) {
1477  edm::InputTag testTag(numpathmodule, "", processname_);
1478  if ((hltConfig_.moduleType(numpathmodule) == "HLT1CaloJet") ||
1479  (hltConfig_.moduleType(numpathmodule) == "HLT1PFJet") ||
1480  (hltConfig_.moduleType(numpathmodule) == "HLTDiJetAveFilter") ||
1481  (hltConfig_.moduleType(numpathmodule) == "HLTDiPFJetAveFilter") ||
1482  (hltConfig_.moduleType(numpathmodule) == "HLT1CaloMET") ||
1483  (hltConfig_.moduleType(numpathmodule) == "HLTMhtFilter") ||
1484  (hltConfig_.moduleType(numpathmodule) == "HLTPrescaler"))
1485  Denomfiltername = numpathmodule;
1486  }
1487  }
1488 
1489  if (objectType != 0 && numFound) {
1490  if (verbose_)
1491  cout << "=Pathname= " << pathname << " | =Denompath= " << dpathname << " | =Filtername= " << filtername
1492  << " | =Denomfiltername= " << Denomfiltername << " | =L1pathname= " << l1pathname
1493  << " | =ObjectType= " << objectType << endl;
1494  if (!((pathname.find("HT") != std::string::npos) || (pathname.find("Quad") != std::string::npos))) {
1495  hltPathsAll_.push_back(PathInfo(usedPrescale,
1496  dpathname,
1497  pathname,
1498  l1pathname,
1499  filtername,
1500  Denomfiltername,
1501  processname_,
1502  objectType,
1503  triggerType));
1504  if (!nameForEff_ && denomFound)
1505  hltPathsEff_.push_back(PathInfo(usedPrescale,
1506  dpathname,
1507  pathname,
1508  l1pathname,
1509  filtername,
1510  Denomfiltername,
1511  processname_,
1512  objectType,
1513  triggerType));
1514  }
1515  hltPathsAllTriggerSummary_.push_back(PathInfo(usedPrescale,
1516  dpathname,
1517  pathname,
1518  l1pathname,
1519  filtername,
1520  Denomfiltername,
1521  processname_,
1522  objectType,
1523  triggerType));
1524  }
1525  } //Loop over paths
1526 
1527  if (verbose_)
1528  cout << "get names for efficicncy------------------" << endl;
1529  //---------bool to pick trigger names pair from config file-------------
1530  if (nameForEff_) {
1531  std::string l1pathname = "dummy";
1533  unsigned int usedPrescale = 1;
1534  unsigned int objectType = 0;
1535  std::string triggerType = "";
1536  std::string filtername("dummy");
1537  std::string Denomfiltername("denomdummy");
1538  for (auto& custompathnamepair : custompathnamepairs_) {
1539  std::string pathname = custompathnamepair.first;
1540  std::string dpathname = custompathnamepair.second;
1541  bool numFound = false;
1542  bool denomFound = false;
1543  // Checking if the trigger exist in HLT table or not
1544  for (unsigned int i = 0; i != n; ++i) {
1545  std::string HLTname = hltConfig_.triggerName(i);
1546  if (HLTname.find(pathname) != std::string::npos) {
1547  numFound = true;
1548  pathname = HLTname;
1549  } //changed to get versions
1550  if (HLTname.find(dpathname) != std::string::npos) {
1551  denomFound = true;
1552  dpathname = HLTname;
1553  }
1554  }
1555  if (numFound && denomFound) {
1556  if (pathname.find("Jet") != std::string::npos && !(pathname.find("DiJet") != std::string::npos) &&
1557  !(pathname.find("DiPFJet") != std::string::npos) && !(pathname.find("DoubleJet") != std::string::npos) &&
1558  !(pathname.find("BTag") != std::string::npos) && !(pathname.find("Mu") != std::string::npos) &&
1559  !(pathname.find("Fwd") != std::string::npos)) {
1560  triggerType = "SingleJet_Trigger";
1561  objectType = trigger::TriggerJet;
1562  }
1563  if (pathname.find("DiJet") != std::string::npos || pathname.find("DiPFJet") != std::string::npos ||
1564  pathname.find("DoubleJet") != std::string::npos) {
1565  triggerType = "DiJet_Trigger";
1566  objectType = trigger::TriggerJet;
1567  }
1568  if (pathname.find("MET") != std::string::npos) {
1569  triggerType = "MET_Trigger";
1570  objectType = trigger::TriggerMET;
1571  }
1572  if (pathname.find("TET") != std::string::npos) {
1573  triggerType = "TET_Trigger";
1574  objectType = trigger::TriggerTET;
1575  }
1576 
1577  l1pathname = getL1ConditionModuleName(pathname); //ml added L1conditionmodulename
1578  std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(pathname);
1579  for (auto& numpathmodule : numpathmodules) {
1580  edm::InputTag testTag(numpathmodule, "", processname_);
1581  if ((hltConfig_.moduleType(numpathmodule) == "HLT1CaloJet") ||
1582  (hltConfig_.moduleType(numpathmodule) == "HLT1PFJet") ||
1583  (hltConfig_.moduleType(numpathmodule) == "HLTDiJetAveFilter") ||
1584  (hltConfig_.moduleType(numpathmodule) == "HLTDiPFJetAveFilter") ||
1585  (hltConfig_.moduleType(numpathmodule) == "HLT1CaloMET") ||
1586  (hltConfig_.moduleType(numpathmodule) == "HLTMhtFilter") ||
1587  (hltConfig_.moduleType(numpathmodule) == "HLTPrescaler"))
1588  filtername = numpathmodule;
1589  }
1590 
1591  if (objectType != 0) {
1592  std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(dpathname);
1593  for (auto& numpathmodule : numpathmodules) {
1594  edm::InputTag testTag(numpathmodule, "", processname_);
1595  if ((hltConfig_.moduleType(numpathmodule) == "HLT1CaloJet") ||
1596  (hltConfig_.moduleType(numpathmodule) == "HLT1PFJet") ||
1597  (hltConfig_.moduleType(numpathmodule) == "HLTDiJetAveFilter") ||
1598  (hltConfig_.moduleType(numpathmodule) == "HLTDiPFJetAveFilter") ||
1599  (hltConfig_.moduleType(numpathmodule) == "HLT1CaloMET") ||
1600  (hltConfig_.moduleType(numpathmodule) == "HLTMhtFilter") ||
1601  (hltConfig_.moduleType(numpathmodule) == "HLTPrescaler"))
1602  Denomfiltername = numpathmodule;
1603  }
1604 
1605  if (verbose_)
1606  cout << "==pathname==" << pathname << "==denompath==" << dpathname << "==filtername==" << filtername
1607  << "==denomfiltername==" << Denomfiltername << "==l1pathname==" << l1pathname
1608  << "==objectType==" << objectType << endl;
1609  hltPathsEff_.push_back(PathInfo(usedPrescale,
1610  dpathname,
1611  pathname,
1612  l1pathname,
1613  filtername,
1614  Denomfiltername,
1615  processname_,
1616  objectType,
1617  triggerType));
1618  }
1619  }
1620  }
1621  }
1622 
1623  if (verbose_)
1624  cout << "== end hltPathsEff_.push_back ======" << endl;
1625  }
1626 }
1627 
1628 //------------------------------------------------------------------------//
1630  if (!isSetup_) {
1631  iBooker.setCurrentFolder(dirname_);
1632 
1633  //-----------------------------------------------------------------
1634  //---book trigger summary histos
1635  if (!isSetup_) {
1636  std::string foldernm = "/TriggerSummary/";
1637  iBooker.setCurrentFolder(dirname_ + foldernm);
1638 
1639  int TrigBins_ = hltPathsAllTriggerSummary_.size();
1640  double TrigMin_ = -0.5;
1641  double TrigMax_ = hltPathsAllTriggerSummary_.size() - 0.5;
1642 
1643  std::string histonm = "JetMET_TriggerRate";
1644  std::string histot = "JetMET TriggerRate Summary";
1645  rate_All = iBooker.book1D(histonm.c_str(), histot.c_str(), TrigBins_, TrigMin_, TrigMax_);
1646 
1647  histonm = "JetMET_TriggerRate_Correlation";
1648  histot = "JetMET TriggerRate Correlation Summary;y&&!x;x&&y";
1649  correlation_All =
1650  iBooker.book2D(histonm.c_str(), histot.c_str(), TrigBins_, TrigMin_, TrigMax_, TrigBins_, TrigMin_, TrigMax_);
1651 
1652  histonm = "JetMET_NVertices";
1653  histot = "No. of vertices";
1654  NVertices = iBooker.book1D(histonm.c_str(), histot.c_str(), 100, 0, 50);
1655 
1656  histonm = "JetMET_PVZ";
1657  histot = "Primary Vertex Z pos";
1658  PVZ = iBooker.book1D(histonm.c_str(), histot.c_str(), 100, -50., 50.);
1659 
1660  if (runStandalone_) {
1661  histonm = "JetMET_TriggerRate_WrtMuTrigger";
1662  histot = "JetMET TriggerRate Summary Wrt Muon Trigger ";
1663  rate_AllWrtMu = iBooker.book1D(histonm.c_str(), histot.c_str(), TrigBins_, TrigMin_, TrigMax_);
1664 
1665  histonm = "JetMET_TriggerRate_Correlation_WrtMuTrigger";
1666  histot = "JetMET TriggerRate Correlation Summary Wrt Muon Trigger;y&&!x;x&&y";
1667  correlation_AllWrtMu = iBooker.book2D(
1668  histonm.c_str(), histot.c_str(), TrigBins_, TrigMin_, TrigMax_, TrigBins_, TrigMin_, TrigMax_);
1669 
1670  histonm = "JetMET_TriggerRate_WrtMBTrigger";
1671  histot = "JetMET TriggerRate Summary Wrt MB Trigger";
1672  rate_AllWrtMB = iBooker.book1D(histonm.c_str(), histot.c_str(), TrigBins_, TrigMin_, TrigMax_);
1673 
1674  histonm = "JetMET_TriggerRate_Correlation_WrtMBTrigger";
1675  histot = "JetMET TriggerRate Correlation Wrt MB Trigger;y&&!x;x&&y";
1676  correlation_AllWrtMB = iBooker.book2D(
1677  histonm.c_str(), histot.c_str(), TrigBins_, TrigMin_, TrigMax_, TrigBins_, TrigMin_, TrigMax_);
1678  }
1679  isSetup_ = true;
1680  }
1681  //---Set bin label
1682 
1683  for (auto& v : hltPathsAllTriggerSummary_) {
1684  std::string labelnm("dummy");
1685  labelnm = v.getPath();
1686  int nbins = rate_All->getTH1()->GetNbinsX();
1687  for (int ibin = 1; ibin < nbins + 1; ibin++) {
1688  const char* binLabel = rate_All->getTH1()->GetXaxis()->GetBinLabel(ibin);
1689  std::string binLabel_str = string(binLabel);
1690  if (binLabel_str == labelnm)
1691  break;
1692  if (binLabel[0] == '\0') {
1693  rate_All->setBinLabel(ibin, labelnm);
1694  correlation_All->setBinLabel(ibin, labelnm, 1);
1695  correlation_All->setBinLabel(ibin, labelnm, 2);
1696  if (runStandalone_) {
1697  rate_AllWrtMu->setBinLabel(ibin, labelnm);
1698  rate_AllWrtMB->setBinLabel(ibin, labelnm);
1699  correlation_AllWrtMu->setBinLabel(ibin, labelnm, 1);
1700  correlation_AllWrtMB->setBinLabel(ibin, labelnm, 1);
1701  correlation_AllWrtMu->setBinLabel(ibin, labelnm, 2);
1702  correlation_AllWrtMB->setBinLabel(ibin, labelnm, 2);
1703  }
1704  break;
1705  }
1706  }
1707  }
1708 
1709  // Now define histos for All triggers
1710  if (plotAll_) {
1711  //
1712  int Nbins_ = 10;
1713  double Nmin_ = -0.5;
1714  double Nmax_ = 9.5;
1715  //
1716  int Ptbins_ = 100;
1717  if (runStandalone_)
1718  Ptbins_ = 1000;
1719  double PtMin_ = 0.;
1720  double PtMax_ = 1000.;
1721  //
1722  int Etabins_ = 50;
1723  if (runStandalone_)
1724  Etabins_ = 100;
1725  double EtaMin_ = -5.;
1726  double EtaMax_ = 5.;
1727  //
1728  int Phibins_ = 35;
1729  double PhiMin_ = -3.5;
1730  double PhiMax_ = 3.5;
1731 
1732  int Resbins_ = 30;
1733  double ResMin_ = -1.5;
1734  double ResMax_ = 1.5;
1735  //
1736  std::string dirName = dirname_ + "/MonitorAllTriggers/";
1737  for (auto& v : hltPathsAll_) {
1738  //
1739  std::string trgPathName = HLTConfigProvider::removeVersion(v.getPath());
1740  std::string subdirName = dirName + trgPathName;
1741  std::string trigPath = "(" + trgPathName + ")";
1742  iBooker.setCurrentFolder(subdirName);
1743 
1744  std::string labelname("ME");
1745  std::string histoname(labelname + "");
1746  std::string title(labelname + "");
1747 
1749  dummy = iBooker.bookFloat("dummy");
1750 
1751  if (v.getObjectType() == trigger::TriggerJet && v.getTriggerType() == "SingleJet_Trigger") {
1752  histoname = labelname + "_recObjN";
1753  title = labelname + "_recObjN;Reco multiplicity()" + trigPath;
1754  MonitorElement* N = iBooker.book1D(histoname.c_str(), title.c_str(), Nbins_, Nmin_, Nmax_);
1755  N->getTH1();
1756 
1757  histoname = labelname + "_recObjPt";
1758  title = labelname + "_recObjPt; Reco Pt[GeV/c]" + trigPath;
1759  MonitorElement* Pt = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
1760  Pt->getTH1();
1761 
1762  histoname = labelname + "_recObjPtBarrel";
1763  title = labelname + "_recObjPtBarrel;Reco Pt[GeV/c]" + trigPath;
1764  MonitorElement* PtBarrel = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
1765  PtBarrel->getTH1();
1766 
1767  histoname = labelname + "_recObjPtEndcap";
1768  title = labelname + "_recObjPtEndcap;Reco Pt[GeV/c]" + trigPath;
1769  MonitorElement* PtEndcap = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
1770  PtEndcap->getTH1();
1771 
1772  histoname = labelname + "_recObjPtForward";
1773  title = labelname + "_recObjPtForward;Reco Pt[GeV/c]" + trigPath;
1774  MonitorElement* PtForward = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
1775  PtForward->getTH1();
1776 
1777  histoname = labelname + "_recObjEta";
1778  title = labelname + "_recObjEta;Reco #eta" + trigPath;
1779  MonitorElement* Eta = iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
1780  Eta->getTH1();
1781 
1782  histoname = labelname + "_recObjPhi";
1783  title = labelname + "_recObjPhi;Reco #Phi" + trigPath;
1784  MonitorElement* Phi = iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
1785  Phi->getTH1();
1786 
1787  histoname = labelname + "_recObjEtaPhi";
1788  title = labelname + "_recObjEtaPhi;Reco #eta;Reco #Phi" + trigPath;
1789  MonitorElement* EtaPhi =
1790  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
1791  EtaPhi->getTH1();
1792 
1793  histoname = labelname + "_l1ObjPt";
1794  title = labelname + "_l1ObjPt;L1 Pt[GeV/c]" + trigPath;
1795  MonitorElement* Pt_L1 = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
1796  Pt_L1->getTH1();
1797 
1798  histoname = labelname + "_l1ObjEta";
1799  title = labelname + "_l1ObjEta;L1 #eta" + trigPath;
1800  MonitorElement* Eta_L1 = iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
1801  Eta_L1->getTH1();
1802 
1803  histoname = labelname + "_l1ObjPhi";
1804  title = labelname + "_l1ObjPhi;L1 #Phi" + trigPath;
1805  MonitorElement* Phi_L1 = iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
1806  Phi_L1->getTH1();
1807 
1808  histoname = labelname + "_l1ObjEtaPhi";
1809  title = labelname + "_l1ObjEtaPhi;L1 #eta;L1 #Phi" + trigPath;
1810  MonitorElement* EtaPhi_L1 =
1811  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
1812  EtaPhi_L1->getTH1();
1813 
1814  histoname = labelname + "_l1ObjN";
1815  title = labelname + "_l1ObjN;L1 multiplicity" + trigPath;
1816  MonitorElement* N_L1 = iBooker.book1D(histoname.c_str(), title.c_str(), Nbins_, Nmin_, Nmax_);
1817  N_L1->getTH1();
1818 
1819  histoname = labelname + "_l1ObjPtBarrel";
1820  title = labelname + "_l1ObjPtBarrel;L1 Pt[GeV/c]" + trigPath;
1821  MonitorElement* PtBarrel_L1 = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
1822  PtBarrel_L1->getTH1();
1823 
1824  histoname = labelname + "_l1ObjPtEndcap";
1825  title = labelname + "_l1ObjPtEndcap;L1 Pt[GeV/c]" + trigPath;
1826  MonitorElement* PtEndcap_L1 = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
1827  PtEndcap_L1->getTH1();
1828 
1829  histoname = labelname + "_l1ObjPtForward";
1830  title = labelname + "_l1ObjPtForward;L1 Pt[GeV/c]" + trigPath;
1831  MonitorElement* PtForward_L1 = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
1832  PtForward_L1->getTH1();
1833 
1834  histoname = labelname + "_hltObjN";
1835  title = labelname + "_hltObjN;HLT multiplicity" + trigPath;
1836  MonitorElement* N_HLT = iBooker.book1D(histoname.c_str(), title.c_str(), Nbins_, Nmin_, Nmax_);
1837  N_HLT->getTH1();
1838 
1839  histoname = labelname + "_hltObjPtBarrel";
1840  title = labelname + "_hltObjPtBarrel;HLT Pt[GeV/c]" + trigPath;
1841  MonitorElement* PtBarrel_HLT = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
1842  PtBarrel_HLT->getTH1();
1843 
1844  histoname = labelname + "_hltObjPtEndcap";
1845  title = labelname + "_hltObjPtEndcap;HLT Pt[GeV/c]" + trigPath;
1846  MonitorElement* PtEndcap_HLT = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
1847  PtEndcap_HLT->getTH1();
1848 
1849  histoname = labelname + "_hltObjPtForward";
1850  title = labelname + "_hltObjPtForward;HLT Pt[GeV/c]" + trigPath;
1851  MonitorElement* PtForward_HLT = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
1852  PtForward_HLT->getTH1();
1853 
1854  histoname = labelname + "_hltObjPt";
1855  title = labelname + "_hltObjPt;HLT Pt[GeV/c]" + trigPath;
1856  MonitorElement* Pt_HLT = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
1857  Pt_HLT->getTH1();
1858 
1859  histoname = labelname + "_hltObjEta";
1860  title = labelname + "_hltObjEta;HLT #eta" + trigPath;
1861  MonitorElement* Eta_HLT = iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
1862  Eta_HLT->getTH1();
1863 
1864  histoname = labelname + "_hltObjPhi";
1865  title = labelname + "_hltObjPhi;HLT #Phi" + trigPath;
1866  MonitorElement* Phi_HLT = iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
1867  Phi_HLT->getTH1();
1868 
1869  histoname = labelname + "_hltObjEtaPhi";
1870  title = labelname + "_hltObjEtaPhi;HLT #eta;HLT #Phi" + trigPath;
1871  MonitorElement* EtaPhi_HLT =
1872  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
1873  EtaPhi_HLT->getTH1();
1874 
1875  histoname = labelname + "_l1HLTPtResolution";
1876  title = labelname + "_l1HLTPtResolution;(Pt(L1)-Pt(HLT))/Pt(L1)" + trigPath;
1877  MonitorElement* PtResolution_L1HLT =
1878  iBooker.book1D(histoname.c_str(), title.c_str(), Resbins_, ResMin_, ResMax_);
1879  PtResolution_L1HLT->getTH1();
1880 
1881  histoname = labelname + "_l1HLTEtaResolution";
1882  title = labelname + "_l1HLTEtaResolution;#eta(L1)-#eta(HLT)" + trigPath;
1883  MonitorElement* EtaResolution_L1HLT =
1884  iBooker.book1D(histoname.c_str(), title.c_str(), Resbins_, ResMin_, ResMax_);
1885  EtaResolution_L1HLT->getTH1();
1886 
1887  histoname = labelname + "_l1HLTPhiResolution";
1888  title = labelname + "_l1HLTPhiResolution;#Phi(L1)-#Phi(HLT)" + trigPath;
1889  MonitorElement* PhiResolution_L1HLT =
1890  iBooker.book1D(histoname.c_str(), title.c_str(), Resbins_, ResMin_, ResMax_);
1891  PhiResolution_L1HLT->getTH1();
1892 
1893  histoname = labelname + "_l1HLTPtCorrelation";
1894  title = labelname + "_l1HLTPtCorrelation;Pt(L1)[GeV/c];Pt(HLT)[GeV/c]" + trigPath;
1895  MonitorElement* PtCorrelation_L1HLT =
1896  iBooker.book2D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_, Ptbins_, PtMin_, PtMax_);
1897  PtCorrelation_L1HLT->getTH1();
1898 
1899  histoname = labelname + "_l1HLTEtaCorrelation";
1900  title = labelname + "_l1HLTEtaCorrelation;#eta(L1);#eta(HLT)" + trigPath;
1901  MonitorElement* EtaCorrelation_L1HLT =
1902  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Etabins_, EtaMin_, EtaMax_);
1903  EtaCorrelation_L1HLT->getTH1();
1904 
1905  histoname = labelname + "_l1HLTPhiCorrelation";
1906  title = labelname + "_l1HLTPhiCorrelation;#Phi(L1);#Phi(HLT)" + trigPath;
1907  MonitorElement* PhiCorrelation_L1HLT =
1908  iBooker.book2D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_, Phibins_, PhiMin_, PhiMax_);
1909  PhiCorrelation_L1HLT->getTH1();
1910 
1911  histoname = labelname + "_hltRecObjPtResolution";
1912  title = labelname + "_hltRecObjPtResolution;(Pt(HLT)-Pt(Reco))/Pt(HLT)" + trigPath;
1913  MonitorElement* PtResolution_HLTRecObj =
1914  iBooker.book1D(histoname.c_str(), title.c_str(), Resbins_, ResMin_, ResMax_);
1915  PtResolution_HLTRecObj->getTH1();
1916 
1917  histoname = labelname + "_hltRecObjEtaResolution";
1918  title = labelname + "_hltRecObjEtaResolution;#eta(HLT)-#eta(Reco)" + trigPath;
1919  MonitorElement* EtaResolution_HLTRecObj =
1920  iBooker.book1D(histoname.c_str(), title.c_str(), Resbins_, ResMin_, ResMax_);
1921  EtaResolution_HLTRecObj->getTH1();
1922 
1923  histoname = labelname + "_hltRecObjPhiResolution";
1924  title = labelname + "_hltRecObjPhiResolution;#Phi(HLT)-#Phi(Reco)" + trigPath;
1925  MonitorElement* PhiResolution_HLTRecObj =
1926  iBooker.book1D(histoname.c_str(), title.c_str(), Resbins_, ResMin_, ResMax_);
1927  PhiResolution_HLTRecObj->getTH1();
1928 
1929  histoname = labelname + "_hltRecObjPtCorrelation";
1930  title = labelname + "_hltRecObjPtCorrelation;Pt(HLT)[GeV/c];Pt(Reco)[GeV/c]" + trigPath;
1931  MonitorElement* PtCorrelation_HLTRecObj =
1932  iBooker.book2D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_, Ptbins_, PtMin_, PtMax_);
1933  PtCorrelation_HLTRecObj->getTH1();
1934 
1935  histoname = labelname + "_hltRecObjEtaCorrelation";
1936  title = labelname + "_hltRecObjEtaCorrelation;#eta(HLT);#eta(Reco)" + trigPath;
1937  MonitorElement* EtaCorrelation_HLTRecObj =
1938  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Etabins_, EtaMin_, EtaMax_);
1939  EtaCorrelation_HLTRecObj->getTH1();
1940 
1941  histoname = labelname + "_hltRecObjPhiCorrelation";
1942  title = labelname + "_hltRecObjPhiCorrelation;#Phi(HLT);#Phi(Reco)" + trigPath;
1943  MonitorElement* PhiCorrelation_HLTRecObj =
1944  iBooker.book2D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_, Phibins_, PhiMin_, PhiMax_);
1945  PhiCorrelation_HLTRecObj->getTH1();
1946 
1947  v.setHistos(N,
1948  Pt,
1949  PtBarrel,
1950  PtEndcap,
1951  PtForward,
1952  Eta,
1953  Phi,
1954  EtaPhi,
1955  N_L1,
1956  Pt_L1,
1957  PtBarrel_L1,
1958  PtEndcap_L1,
1959  PtForward_L1,
1960  Eta_L1,
1961  Phi_L1,
1962  EtaPhi_L1,
1963  N_HLT,
1964  Pt_HLT,
1965  PtBarrel_HLT,
1966  PtEndcap_HLT,
1967  PtForward_HLT,
1968  Eta_HLT,
1969  Phi_HLT,
1970  EtaPhi_HLT,
1971  PtResolution_L1HLT,
1972  EtaResolution_L1HLT,
1973  PhiResolution_L1HLT,
1974  PtResolution_HLTRecObj,
1975  EtaResolution_HLTRecObj,
1976  PhiResolution_HLTRecObj,
1977  PtCorrelation_L1HLT,
1978  EtaCorrelation_L1HLT,
1979  PhiCorrelation_L1HLT,
1980  PtCorrelation_HLTRecObj,
1981  EtaCorrelation_HLTRecObj,
1982  PhiCorrelation_HLTRecObj,
1983  dummy,
1984  dummy,
1985  dummy,
1986  dummy,
1987  dummy,
1988  dummy,
1989  dummy,
1990  dummy,
1991  dummy);
1992  } // histos for SingleJet Triggers
1993 
1994  if (v.getObjectType() == trigger::TriggerJet && v.getTriggerType() == "DiJet_Trigger") {
1995  histoname = labelname + "_RecObjAveragePt";
1996  title = labelname + "_RecObjAveragePt;Reco Average Pt[GeV/c]" + trigPath;
1997  MonitorElement* jetAveragePt = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
1998  jetAveragePt->getTH1();
1999 
2000  histoname = labelname + "_RecObjAverageEta";
2001  title = labelname + "_RecObjAverageEta;Reco Average #eta" + trigPath;
2002  MonitorElement* jetAverageEta = iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2003  jetAverageEta->getTH1();
2004 
2005  histoname = labelname + "_RecObjPhiDifference";
2006  title = labelname + "_RecObjPhiDifference;Reco #Delta#Phi" + trigPath;
2007  MonitorElement* jetPhiDifference =
2008  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2009  jetPhiDifference->getTH1();
2010 
2011  histoname = labelname + "_hltObjAveragePt";
2012  title = labelname + "_hltObjAveragePt;HLT Average Pt[GeV/c]" + trigPath;
2013  MonitorElement* hltAveragePt = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2014  hltAveragePt->getTH1();
2015 
2016  histoname = labelname + "_hltObjAverageEta";
2017  title = labelname + "_hltObjAverageEta;HLT Average #eta" + trigPath;
2018  MonitorElement* hltAverageEta = iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2019  hltAverageEta->getTH1();
2020 
2021  histoname = labelname + "_hltObjPhiDifference";
2022  title = labelname + "_hltObjPhiDifference;Reco #Delta#Phi" + trigPath;
2023  MonitorElement* hltPhiDifference =
2024  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2025  hltPhiDifference->getTH1();
2026 
2027  v.setHistos(dummy,
2028  dummy,
2029  dummy,
2030  dummy,
2031  dummy,
2032  dummy,
2033  dummy,
2034  dummy,
2035  dummy,
2036  dummy,
2037  dummy,
2038  dummy,
2039  dummy,
2040  dummy,
2041  dummy,
2042  dummy,
2043  dummy,
2044  dummy,
2045  dummy,
2046  dummy,
2047  dummy,
2048  dummy,
2049  dummy,
2050  dummy,
2051  dummy,
2052  dummy,
2053  dummy,
2054  dummy,
2055  dummy,
2056  dummy,
2057  dummy,
2058  dummy,
2059  dummy,
2060  dummy,
2061  dummy,
2062  dummy,
2063  jetAveragePt,
2064  jetAverageEta,
2065  jetPhiDifference,
2066  hltAveragePt,
2067  hltAverageEta,
2068  hltPhiDifference,
2069  dummy,
2070  dummy,
2071  dummy);
2072  } // histos for DiJet Triggers
2073 
2074  if (v.getObjectType() == trigger::TriggerMET || (v.getObjectType() == trigger::TriggerTET)) {
2075  histoname = labelname + "_recObjPt";
2076  title = labelname + "_recObjPt;Reco Pt[GeV/c]" + trigPath;
2077  MonitorElement* Pt = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2078  Pt->getTH1();
2079 
2080  histoname = labelname + "_recObjPhi";
2081  title = labelname + "_recObjPhi;Reco #Phi" + trigPath;
2082  MonitorElement* Phi = iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2083  Phi->getTH1();
2084 
2085  histoname = labelname + "_l1ObjPt";
2086  title = labelname + "_l1ObjPt;L1 Pt[GeV/c]" + trigPath;
2087  MonitorElement* Pt_L1 = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2088  Pt_L1->getTH1();
2089 
2090  histoname = labelname + "_l1ObjPhi";
2091  title = labelname + "_l1ObjPhi;L1 #Phi" + trigPath;
2092  MonitorElement* Phi_L1 = iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2093  Phi_L1->getTH1();
2094 
2095  histoname = labelname + "_hltObjPt";
2096  title = labelname + "_hltObjPt;HLT Pt[GeV/c]" + trigPath;
2097  MonitorElement* Pt_HLT = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2098  Pt_HLT->getTH1();
2099 
2100  histoname = labelname + "_hltObjPhi";
2101  title = labelname + "_hltObjPhi;HLT #Phi" + trigPath;
2102  MonitorElement* Phi_HLT = iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2103  Phi_HLT->getTH1();
2104 
2105  histoname = labelname + "_l1HLTPtResolution";
2106  title = labelname + "_l1HLTPtResolution;(Pt(L1)-Pt(HLT))/Pt(L1)" + trigPath;
2107  MonitorElement* PtResolution_L1HLT =
2108  iBooker.book1D(histoname.c_str(), title.c_str(), Resbins_, ResMin_, ResMax_);
2109  PtResolution_L1HLT->getTH1();
2110 
2111  histoname = labelname + "_l1HLTPhiResolution";
2112  title = labelname + "_l1HLTPhiResolution;#Phi(L1)-#Phi(HLT)" + trigPath;
2113  MonitorElement* PhiResolution_L1HLT =
2114  iBooker.book1D(histoname.c_str(), title.c_str(), Resbins_, ResMin_, ResMax_);
2115  PhiResolution_L1HLT->getTH1();
2116 
2117  histoname = labelname + "_l1HLTPtCorrelation";
2118  title = labelname + "_l1HLTPtCorrelation;Pt(L1)[GeV/c];Pt(HLT)[GeV/c]" + trigPath;
2119  MonitorElement* PtCorrelation_L1HLT =
2120  iBooker.book2D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_, Ptbins_, PtMin_, PtMax_);
2121  PtCorrelation_L1HLT->getTH1();
2122 
2123  histoname = labelname + "_l1HLTPhiCorrelation";
2124  title = labelname + "_l1HLTPhiCorrelation;#Phi(L1);#Phi(HLT)" + trigPath;
2125  MonitorElement* PhiCorrelation_L1HLT =
2126  iBooker.book2D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_, Phibins_, PhiMin_, PhiMax_);
2127  PhiCorrelation_L1HLT->getTH1();
2128 
2129  histoname = labelname + "_hltRecObjPtResolution";
2130  title = labelname + "_hltRecObjPtResolution;(Pt(HLT)-Pt(Reco))/Pt(HLT)" + trigPath;
2131  MonitorElement* PtResolution_HLTRecObj =
2132  iBooker.book1D(histoname.c_str(), title.c_str(), Resbins_, ResMin_, ResMax_);
2133  PtResolution_HLTRecObj->getTH1();
2134 
2135  histoname = labelname + "_hltRecObjPhiResolution";
2136  title = labelname + "_hltRecObjPhiResolution;#Phi(HLT)-#Phi(Reco)" + trigPath;
2137  MonitorElement* PhiResolution_HLTRecObj =
2138  iBooker.book1D(histoname.c_str(), title.c_str(), Resbins_, ResMin_, ResMax_);
2139  PhiResolution_HLTRecObj->getTH1();
2140 
2141  histoname = labelname + "_hltRecObjPtCorrelation";
2142  title = labelname + "_hltRecObjPtCorrelation;Pt(HLT)[GeV/c];Pt(Reco)[GeV/c]" + trigPath;
2143  MonitorElement* PtCorrelation_HLTRecObj =
2144  iBooker.book2D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_, Ptbins_, PtMin_, PtMax_);
2145  PtCorrelation_HLTRecObj->getTH1();
2146 
2147  histoname = labelname + "_hltRecObjPhiCorrelation";
2148  title = labelname + "_hltRecObjPhiCorrelation;#Phi(HLT);#Phi(Reco)" + trigPath;
2149  MonitorElement* PhiCorrelation_HLTRecObj =
2150  iBooker.book2D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_, Phibins_, PhiMin_, PhiMax_);
2151  PhiCorrelation_HLTRecObj->getTH1();
2152 
2153  v.setHistos(dummy,
2154  Pt,
2155  dummy,
2156  dummy,
2157  dummy,
2158  dummy,
2159  Phi,
2160  dummy,
2161  dummy,
2162  Pt_L1,
2163  dummy,
2164  dummy,
2165  dummy,
2166  dummy,
2167  Phi_L1,
2168  dummy,
2169  dummy,
2170  Pt_HLT,
2171  dummy,
2172  dummy,
2173  dummy,
2174  dummy,
2175  Phi_HLT,
2176  dummy,
2177  PtResolution_L1HLT,
2178  dummy,
2179  PhiResolution_L1HLT,
2180  PtResolution_HLTRecObj,
2181  dummy,
2182  PhiResolution_HLTRecObj,
2183  PtCorrelation_L1HLT,
2184  dummy,
2185  PhiCorrelation_L1HLT,
2186  PtCorrelation_HLTRecObj,
2187  dummy,
2188  PhiCorrelation_HLTRecObj,
2189  dummy,
2190  dummy,
2191  dummy,
2192  dummy,
2193  dummy,
2194  dummy,
2195  dummy,
2196  dummy,
2197  dummy);
2198  } // histos for MET Triggers
2199  }
2200  } //plotAll_
2201 
2202  //-------Now Efficiency histos--------
2203  if (plotEff_) {
2204  int Ptbins_ = 100;
2205  if (runStandalone_)
2206  Ptbins_ = 1000;
2207  double PtMin_ = 0.;
2208  double PtMax_ = 1000.;
2209  //
2210  int Etabins_ = 50;
2211  double EtaMin_ = -5.;
2212  double EtaMax_ = 5.;
2213  //
2214  int Phibins_ = 35;
2215  double PhiMin_ = -3.5;
2216  double PhiMax_ = 3.5;
2217  // Now define histos wrt lower threshold trigger
2218  std::string dirName1 = dirname_ + "/RelativeTriggerEff/";
2219  for (auto& v : hltPathsEff_) {
2220  //
2221  std::string trgPathName = HLTConfigProvider::removeVersion(v.getPath());
2222  std::string trgPathNameD = HLTConfigProvider::removeVersion(v.getDenomPath());
2223  //
2224  std::string labelname("ME");
2225  std::string subdirName = dirName1 + trgPathName + "_wrt_" + trgPathNameD;
2226  iBooker.setCurrentFolder(subdirName);
2227  //
2228  std::string histoname(labelname + "");
2229  std::string title(labelname + "");
2230 
2232  dummy = iBooker.bookFloat("dummy");
2233 
2234  if ((v.getObjectType() == trigger::TriggerJet) && (v.getTriggerType() == "SingleJet_Trigger")) {
2235  histoname = labelname + "_NumeratorPt";
2236  title = labelname + "NumeratorPt;Calo Pt[GeV/c]";
2237  MonitorElement* NumeratorPt = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2238  NumeratorPt->getTH1();
2239 
2240  histoname = labelname + "_NumeratorPtBarrel";
2241  title = labelname + "NumeratorPtBarrel;Calo Pt[GeV/c] ";
2242  MonitorElement* NumeratorPtBarrel = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2243  NumeratorPtBarrel->getTH1();
2244 
2245  histoname = labelname + "_NumeratorPtEndcap";
2246  title = labelname + "NumeratorPtEndcap;Calo Pt[GeV/c]";
2247  MonitorElement* NumeratorPtEndcap = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2248  NumeratorPtEndcap->getTH1();
2249 
2250  histoname = labelname + "_NumeratorPtForward";
2251  title = labelname + "NumeratorPtForward;Calo Pt[GeV/c]";
2252  MonitorElement* NumeratorPtForward =
2253  iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2254  NumeratorPtForward->getTH1();
2255 
2256  histoname = labelname + "_NumeratorEta";
2257  title = labelname + "NumeratorEta;Calo #eta ";
2258  MonitorElement* NumeratorEta = iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2259  NumeratorEta->getTH1();
2260 
2261  histoname = labelname + "_NumeratorPhi";
2262  title = labelname + "NumeratorPhi;Calo #Phi";
2263  MonitorElement* NumeratorPhi = iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2264  NumeratorPhi->getTH1();
2265 
2266  histoname = labelname + "_NumeratorEtaPhi";
2267  title = labelname + "NumeratorEtaPhi;Calo #eta;Calo #Phi";
2268  MonitorElement* NumeratorEtaPhi =
2269  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2270  NumeratorEtaPhi->getTH1();
2271 
2272  histoname = labelname + "_NumeratorEtaBarrel";
2273  title = labelname + "NumeratorEtaBarrel;Calo #eta ";
2274  MonitorElement* NumeratorEtaBarrel =
2275  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2276  NumeratorEtaBarrel->getTH1();
2277 
2278  histoname = labelname + "_NumeratorPhiBarrel";
2279  title = labelname + "NumeratorPhiBarrel;Calo #Phi";
2280  MonitorElement* NumeratorPhiBarrel =
2281  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2282  NumeratorPhiBarrel->getTH1();
2283 
2284  histoname = labelname + "_NumeratorEtaEndcap";
2285  title = labelname + "NumeratorEtaEndcap;Calo #eta ";
2286  MonitorElement* NumeratorEtaEndcap =
2287  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2288  NumeratorEtaEndcap->getTH1();
2289 
2290  histoname = labelname + "_NumeratorPhiEndcap";
2291  title = labelname + "NumeratorPhiEndcap;Calo #Phi";
2292  MonitorElement* NumeratorPhiEndcap =
2293  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2294  NumeratorPhiEndcap->getTH1();
2295 
2296  histoname = labelname + "_NumeratorEtaForward";
2297  title = labelname + "NumeratorEtaForward;Calo #eta ";
2298  MonitorElement* NumeratorEtaForward =
2299  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2300  NumeratorEtaForward->getTH1();
2301 
2302  histoname = labelname + "_NumeratorPhiForward";
2303  title = labelname + "NumeratorPhiForward;Calo #Phi";
2304  MonitorElement* NumeratorPhiForward =
2305  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2306  NumeratorPhiForward->getTH1();
2307 
2308  histoname = labelname + "_NumeratorEta_LowpTcut";
2309  title = labelname + "NumeratorEta_LowpTcut;Calo #eta ";
2310  MonitorElement* NumeratorEta_LowpTcut =
2311  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2312  NumeratorEta_LowpTcut->getTH1();
2313 
2314  histoname = labelname + "_NumeratorPhi_LowpTcut";
2315  title = labelname + "NumeratorPhi_LowpTcut;Calo #Phi";
2316  MonitorElement* NumeratorPhi_LowpTcut =
2317  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2318  NumeratorPhi_LowpTcut->getTH1();
2319 
2320  histoname = labelname + "_NumeratorEtaPhi_LowpTcut";
2321  title = labelname + "NumeratorEtaPhi_LowpTcut;Calo #eta;Calo #Phi";
2322  MonitorElement* NumeratorEtaPhi_LowpTcut =
2323  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2324  NumeratorEtaPhi_LowpTcut->getTH1();
2325 
2326  histoname = labelname + "_NumeratorEta_MedpTcut";
2327  title = labelname + "NumeratorEta_MedpTcut;Calo #eta ";
2328  MonitorElement* NumeratorEta_MedpTcut =
2329  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2330  NumeratorEta_MedpTcut->getTH1();
2331 
2332  histoname = labelname + "_NumeratorPhi_MedpTcut";
2333  title = labelname + "NumeratorPhi_MedpTcut;Calo #Phi";
2334  MonitorElement* NumeratorPhi_MedpTcut =
2335  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2336  NumeratorPhi_MedpTcut->getTH1();
2337 
2338  histoname = labelname + "_NumeratorEtaPhi_MedpTcut";
2339  title = labelname + "NumeratorEtaPhi_MedpTcut;Calo #eta;Calo #Phi";
2340  MonitorElement* NumeratorEtaPhi_MedpTcut =
2341  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2342  NumeratorEtaPhi_MedpTcut->getTH1();
2343 
2344  histoname = labelname + "_NumeratorEta_HighpTcut";
2345  title = labelname + "NumeratorEta_HighpTcut;Calo #eta ";
2346  MonitorElement* NumeratorEta_HighpTcut =
2347  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2348  NumeratorEta_HighpTcut->getTH1();
2349 
2350  histoname = labelname + "_NumeratorPhi_HighpTcut";
2351  title = labelname + "NumeratorPhi_HighpTcut;Calo #Phi";
2352  MonitorElement* NumeratorPhi_HighpTcut =
2353  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2354  NumeratorPhi_HighpTcut->getTH1();
2355 
2356  histoname = labelname + "_NumeratorEtaPhi_HighpTcut";
2357  title = labelname + "NumeratorEtaPhi_HighpTcut;Calo #eta;Calo #Phi";
2358  MonitorElement* NumeratorEtaPhi_HighpTcut =
2359  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2360  NumeratorEtaPhi_HighpTcut->getTH1();
2361 
2362  histoname = labelname + "_DenominatorPt";
2363  title = labelname + "DenominatorPt;Calo Pt[GeV/c]";
2364  MonitorElement* DenominatorPt = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2365  DenominatorPt->getTH1();
2366 
2367  histoname = labelname + "_DenominatorPtBarrel";
2368  title = labelname + "DenominatorPtBarrel;Calo Pt[GeV/c]";
2369  MonitorElement* DenominatorPtBarrel =
2370  iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2371  DenominatorPtBarrel->getTH1();
2372 
2373  histoname = labelname + "_DenominatorPtEndcap";
2374  title = labelname + "DenominatorPtEndcap;Calo Pt[GeV/c]";
2375  MonitorElement* DenominatorPtEndcap =
2376  iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2377  DenominatorPtEndcap->getTH1();
2378 
2379  histoname = labelname + "_DenominatorPtForward";
2380  title = labelname + "DenominatorPtForward;Calo Pt[GeV/c] ";
2381  MonitorElement* DenominatorPtForward =
2382  iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2383  DenominatorPtForward->getTH1();
2384 
2385  histoname = labelname + "_DenominatorEta";
2386  title = labelname + "DenominatorEta;Calo #eta ";
2387  MonitorElement* DenominatorEta = iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2388  DenominatorEta->getTH1();
2389 
2390  histoname = labelname + "_DenominatorPhi";
2391  title = labelname + "DenominatorPhi;Calo #Phi";
2392  MonitorElement* DenominatorPhi = iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2393  DenominatorPhi->getTH1();
2394 
2395  histoname = labelname + "_DenominatorEtaPhi";
2396  title = labelname + "DenominatorEtaPhi;Calo #eta; Calo #Phi";
2397  MonitorElement* DenominatorEtaPhi =
2398  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2399  DenominatorEtaPhi->getTH1();
2400 
2401  histoname = labelname + "_DenominatorEtaBarrel";
2402  title = labelname + "DenominatorEtaBarrel;Calo #eta ";
2403  MonitorElement* DenominatorEtaBarrel =
2404  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2405  DenominatorEtaBarrel->getTH1();
2406 
2407  histoname = labelname + "_DenominatorPhiBarrel";
2408  title = labelname + "DenominatorPhiBarrel;Calo #Phi";
2409  MonitorElement* DenominatorPhiBarrel =
2410  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2411  DenominatorPhiBarrel->getTH1();
2412 
2413  histoname = labelname + "_DenominatorEtaEndcap";
2414  title = labelname + "DenominatorEtaEndcap;Calo #eta ";
2415  MonitorElement* DenominatorEtaEndcap =
2416  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2417  DenominatorEtaEndcap->getTH1();
2418 
2419  histoname = labelname + "_DenominatorPhiEndcap";
2420  title = labelname + "DenominatorPhiEndcap;Calo #Phi";
2421  MonitorElement* DenominatorPhiEndcap =
2422  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2423  DenominatorPhiEndcap->getTH1();
2424 
2425  histoname = labelname + "_DenominatorEtaForward";
2426  title = labelname + "DenominatorEtaForward;Calo #eta ";
2427  MonitorElement* DenominatorEtaForward =
2428  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2429  DenominatorEtaForward->getTH1();
2430 
2431  histoname = labelname + "_DenominatorPhiForward";
2432  title = labelname + "DenominatorPhiForward;Calo #Phi";
2433  MonitorElement* DenominatorPhiForward =
2434  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2435  DenominatorPhiForward->getTH1();
2436 
2437  histoname = labelname + "_DenominatorEta_LowpTcut";
2438  title = labelname + "DenominatorEta_LowpTcut;Calo #eta ";
2439  MonitorElement* DenominatorEta_LowpTcut =
2440  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2441  DenominatorEta_LowpTcut->getTH1();
2442 
2443  histoname = labelname + "_DenominatorPhi_LowpTcut";
2444  title = labelname + "DenominatorPhi_LowpTcut;Calo #Phi";
2445  MonitorElement* DenominatorPhi_LowpTcut =
2446  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2447  DenominatorPhi_LowpTcut->getTH1();
2448 
2449  histoname = labelname + "_DenominatorEtaPhi_LowpTcut";
2450  title = labelname + "DenominatorEtaPhi_LowpTcut;Calo #eta;Calo #Phi";
2451  MonitorElement* DenominatorEtaPhi_LowpTcut =
2452  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2453  DenominatorEtaPhi_LowpTcut->getTH1();
2454 
2455  histoname = labelname + "_DenominatorEta_MedpTcut";
2456  title = labelname + "DenominatorEta_MedpTcut;Calo #eta ";
2457  MonitorElement* DenominatorEta_MedpTcut =
2458  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2459  DenominatorEta_MedpTcut->getTH1();
2460 
2461  histoname = labelname + "_DenominatorPhi_MedpTcut";
2462  title = labelname + "DenominatorPhi_MedpTcut;Calo #Phi";
2463  MonitorElement* DenominatorPhi_MedpTcut =
2464  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2465  DenominatorPhi_MedpTcut->getTH1();
2466 
2467  histoname = labelname + "_DenominatorEtaPhi_MedpTcut";
2468  title = labelname + "DenominatorEtaPhi_MedpTcut;Calo #eta;Calo #Phi";
2469  MonitorElement* DenominatorEtaPhi_MedpTcut =
2470  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2471  DenominatorEtaPhi_MedpTcut->getTH1();
2472 
2473  histoname = labelname + "_DenominatorEta_HighpTcut";
2474  title = labelname + "DenominatorEta_HighpTcut;Calo #eta ";
2475  MonitorElement* DenominatorEta_HighpTcut =
2476  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2477  DenominatorEta_HighpTcut->getTH1();
2478 
2479  histoname = labelname + "_DenominatorPhi_HighpTcut";
2480  title = labelname + "DenominatorPhi_HighpTcut;Calo #Phi";
2481  MonitorElement* DenominatorPhi_HighpTcut =
2482  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2483  DenominatorPhi_HighpTcut->getTH1();
2484 
2485  histoname = labelname + "_DenominatorEtaPhi_HighpTcut";
2486  title = labelname + "DenominatorEtaPhi_HighpTcut;Calo #eta;Calo #Phi";
2487  MonitorElement* DenominatorEtaPhi_HighpTcut =
2488  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2489  DenominatorEtaPhi_HighpTcut->getTH1();
2490 
2491  histoname = labelname + "_DeltaR";
2492  title = labelname + "DeltaR;";
2493  MonitorElement* DeltaR = iBooker.book1D(histoname.c_str(), title.c_str(), 100, 0., 1.5);
2494  DeltaR->getTH1();
2495 
2496  histoname = labelname + "_DeltaPhi";
2497  title = labelname + "DeltaPhi;";
2498  MonitorElement* DeltaPhi = iBooker.book1D(histoname.c_str(), title.c_str(), 500, -5.0, 5.0);
2499  DeltaPhi->getTH1();
2500 
2501  histoname = labelname + "_NumeratorPFMHT";
2502  title = labelname + "NumeratorPFMHT;PFMHT[GeV/c]";
2503  MonitorElement* NumeratorPFMHT = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2504  NumeratorPFMHT->getTH1();
2505 
2506  histoname = labelname + "_NumeratorPFPt";
2507  title = labelname + "NumeratorPFPt;PF Pt[GeV/c]";
2508  MonitorElement* NumeratorPFPt = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2509  NumeratorPFPt->getTH1();
2510 
2511  histoname = labelname + "_NumeratorPFPtBarrel";
2512  title = labelname + "NumeratorPFPtBarrel;PF Pt[GeV/c] ";
2513  MonitorElement* NumeratorPFPtBarrel =
2514  iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2515  NumeratorPFPtBarrel->getTH1();
2516 
2517  histoname = labelname + "_NumeratorPFPtEndcap";
2518  title = labelname + "NumeratorPFPtEndcap;PF Pt[GeV/c]";
2519  MonitorElement* NumeratorPFPtEndcap =
2520  iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2521  NumeratorPFPtEndcap->getTH1();
2522 
2523  histoname = labelname + "_NumeratorPFPtForward";
2524  title = labelname + "NumeratorPFPtForward;PF Pt[GeV/c]";
2525  MonitorElement* NumeratorPFPtForward =
2526  iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2527  NumeratorPFPtForward->getTH1();
2528 
2529  histoname = labelname + "_NumeratorPFEta";
2530  title = labelname + "NumeratorPFEta;PF #eta ";
2531  MonitorElement* NumeratorPFEta = iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2532  NumeratorPFEta->getTH1();
2533 
2534  histoname = labelname + "_NumeratorPFPhi";
2535  title = labelname + "NumeratorPFPhi;Calo #Phi";
2536  MonitorElement* NumeratorPFPhi = iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2537  NumeratorPFPhi->getTH1();
2538 
2539  histoname = labelname + "_NumeratorPFEtaPhi";
2540  title = labelname + "NumeratorPFEtaPhi;PF #eta;Calo #Phi";
2541  MonitorElement* NumeratorPFEtaPhi =
2542  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2543  NumeratorPFEtaPhi->getTH1();
2544 
2545  histoname = labelname + "_NumeratorPFEtaBarrel";
2546  title = labelname + "NumeratorPFEtaBarrel;PF #eta ";
2547  MonitorElement* NumeratorPFEtaBarrel =
2548  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2549  NumeratorPFEtaBarrel->getTH1();
2550 
2551  histoname = labelname + "_NumeratorPFPhiBarrel";
2552  title = labelname + "NumeratorPFPhiBarrel;PF #Phi";
2553  MonitorElement* NumeratorPFPhiBarrel =
2554  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2555  NumeratorPFPhiBarrel->getTH1();
2556 
2557  histoname = labelname + "_NumeratorPFEtaEndcap";
2558  title = labelname + "NumeratorPFEtaEndcap;Calo #eta ";
2559  MonitorElement* NumeratorPFEtaEndcap =
2560  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2561  NumeratorPFEtaEndcap->getTH1();
2562 
2563  histoname = labelname + "_NumeratorPFPhiEndcap";
2564  title = labelname + "NumeratorPFPhiEndcap;PF #Phi";
2565  MonitorElement* NumeratorPFPhiEndcap =
2566  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2567  NumeratorPFPhiEndcap->getTH1();
2568 
2569  histoname = labelname + "_NumeratorPFEtaForward";
2570  title = labelname + "NumeratorPFEtaForward;Calo #eta ";
2571  MonitorElement* NumeratorPFEtaForward =
2572  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2573  NumeratorPFEtaForward->getTH1();
2574 
2575  histoname = labelname + "_NumeratorPFPhiForward";
2576  title = labelname + "NumeratorPFPhiForward;PF #Phi";
2577  MonitorElement* NumeratorPFPhiForward =
2578  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2579  NumeratorPFPhiForward->getTH1();
2580 
2581  histoname = labelname + "_NumeratorPFEta_LowpTcut";
2582  title = labelname + "NumeratorPFEta_LowpTcut;PF #eta ";
2583  MonitorElement* NumeratorPFEta_LowpTcut =
2584  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2585  NumeratorPFEta_LowpTcut->getTH1();
2586 
2587  histoname = labelname + "_NumeratorPFPhi_LowpTcut";
2588  title = labelname + "NumeratorPFPhi_LowpTcut;PF #Phi";
2589  MonitorElement* NumeratorPFPhi_LowpTcut =
2590  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2591  NumeratorPFPhi_LowpTcut->getTH1();
2592 
2593  histoname = labelname + "_NumeratorPFEtaPhi_LowpTcut";
2594  title = labelname + "NumeratorPFEtaPhi_LowpTcut;PF #eta;Calo #Phi";
2595  MonitorElement* NumeratorPFEtaPhi_LowpTcut =
2596  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2597  NumeratorPFEtaPhi_LowpTcut->getTH1();
2598 
2599  histoname = labelname + "_NumeratorPFEta_MedpTcut";
2600  title = labelname + "NumeratorPFEta_MedpTcut;PF #eta ";
2601  MonitorElement* NumeratorPFEta_MedpTcut =
2602  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2603  NumeratorPFEta_MedpTcut->getTH1();
2604 
2605  histoname = labelname + "_NumeratorPFPhi_MedpTcut";
2606  title = labelname + "NumeratorPFPhi_MedpTcut;PF #Phi";
2607  MonitorElement* NumeratorPFPhi_MedpTcut =
2608  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2609  NumeratorPFPhi_MedpTcut->getTH1();
2610 
2611  histoname = labelname + "_NumeratorPFEtaPhi_MedpTcut";
2612  title = labelname + "NumeratorPFEtaPhi_MedpTcut;PF #eta;PF #Phi";
2613  MonitorElement* NumeratorPFEtaPhi_MedpTcut =
2614  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2615  NumeratorPFEtaPhi_MedpTcut->getTH1();
2616 
2617  histoname = labelname + "_NumeratorPFEta_HighpTcut";
2618  title = labelname + "NumeratorPFEta_HighpTcut;Calo #eta ";
2619  MonitorElement* NumeratorPFEta_HighpTcut =
2620  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2621  NumeratorPFEta_HighpTcut->getTH1();
2622 
2623  histoname = labelname + "_NumeratorPFPhi_HighpTcut";
2624  title = labelname + "NumeratorPFPhi_HighpTcut;PF #Phi";
2625  MonitorElement* NumeratorPFPhi_HighpTcut =
2626  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2627  NumeratorPFPhi_HighpTcut->getTH1();
2628 
2629  histoname = labelname + "_NumeratorPFEtaPhi_HighpTcut";
2630  title = labelname + "NumeratorPFEtaPhi_HighpTcut;PF #eta;PF #Phi";
2631  MonitorElement* NumeratorPFEtaPhi_HighpTcut =
2632  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2633  NumeratorPFEtaPhi_HighpTcut->getTH1();
2634 
2635  histoname = labelname + "_DenominatorPFMHT";
2636  title = labelname + "DenominatorPFMHT;PF Pt[GeV/c]";
2637  MonitorElement* DenominatorPFMHT = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2638  DenominatorPFMHT->getTH1();
2639 
2640  histoname = labelname + "_DenominatorPFPt";
2641  title = labelname + "DenominatorPFPt;PF Pt[GeV/c]";
2642  MonitorElement* DenominatorPFPt = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2643  DenominatorPFPt->getTH1();
2644 
2645  histoname = labelname + "_DenominatorPFPtBarrel";
2646  title = labelname + "DenominatorPFPtBarrel;Calo Pt[GeV/c]";
2647  MonitorElement* DenominatorPFPtBarrel =
2648  iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2649  DenominatorPFPtBarrel->getTH1();
2650 
2651  histoname = labelname + "_DenominatorPFPtEndcap";
2652  title = labelname + "DenominatorPFPtEndcap;PF Pt[GeV/c]";
2653  MonitorElement* DenominatorPFPtEndcap =
2654  iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2655  DenominatorPFPtEndcap->getTH1();
2656 
2657  histoname = labelname + "_DenominatorPFPtForward";
2658  title = labelname + "DenominatorPFPtForward;PF Pt[GeV/c] ";
2659  MonitorElement* DenominatorPFPtForward =
2660  iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2661  DenominatorPFPtForward->getTH1();
2662 
2663  histoname = labelname + "_DenominatorPFEta";
2664  title = labelname + "DenominatorPFEta;PF #eta ";
2665  MonitorElement* DenominatorPFEta =
2666  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2667  DenominatorPFEta->getTH1();
2668 
2669  histoname = labelname + "_DenominatorPFPhi";
2670  title = labelname + "DenominatorPFPhi;PF #Phi";
2671  MonitorElement* DenominatorPFPhi =
2672  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2673  DenominatorPFPhi->getTH1();
2674 
2675  histoname = labelname + "_DenominatorPFEtaPhi";
2676  title = labelname + "DenominatorPFEtaPhi;PF #eta; Calo #Phi";
2677  MonitorElement* DenominatorPFEtaPhi =
2678  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2679  DenominatorPFEtaPhi->getTH1();
2680 
2681  histoname = labelname + "_DenominatorPFEtaBarrel";
2682  title = labelname + "DenominatorPFEtaBarrel;Calo #eta ";
2683  MonitorElement* DenominatorPFEtaBarrel =
2684  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2685  DenominatorPFEtaBarrel->getTH1();
2686 
2687  histoname = labelname + "_DenominatorPFPhiBarrel";
2688  title = labelname + "DenominatorPFPhiBarrel;PF #Phi";
2689  MonitorElement* DenominatorPFPhiBarrel =
2690  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2691  DenominatorPFPhiBarrel->getTH1();
2692 
2693  histoname = labelname + "_DenominatorPFEtaEndcap";
2694  title = labelname + "DenominatorPFEtaEndcap;PF #eta ";
2695  MonitorElement* DenominatorPFEtaEndcap =
2696  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2697  DenominatorPFEtaEndcap->getTH1();
2698 
2699  histoname = labelname + "_DenominatorPFPhiEndcap";
2700  title = labelname + "DenominatorPFPhiEndcap;Calo #Phi";
2701  MonitorElement* DenominatorPFPhiEndcap =
2702  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2703  DenominatorPFPhiEndcap->getTH1();
2704 
2705  histoname = labelname + "_DenominatorPFEtaForward";
2706  title = labelname + "DenominatorPFEtaForward;PF #eta ";
2707  MonitorElement* DenominatorPFEtaForward =
2708  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2709  DenominatorPFEtaForward->getTH1();
2710 
2711  histoname = labelname + "_DenominatorPFPhiForward";
2712  title = labelname + "DenominatorPFPhiForward;PF #Phi";
2713  MonitorElement* DenominatorPFPhiForward =
2714  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2715  DenominatorPFPhiForward->getTH1();
2716 
2717  histoname = labelname + "_DenominatorPFEta_LowpTcut";
2718  title = labelname + "DenominatorPFEta_LowpTcut;PF #eta ";
2719  MonitorElement* DenominatorPFEta_LowpTcut =
2720  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2721  DenominatorPFEta_LowpTcut->getTH1();
2722 
2723  histoname = labelname + "_DenominatorPFPhi_LowpTcut";
2724  title = labelname + "DenominatorPFPhi_LowpTcut;PF #Phi";
2725  MonitorElement* DenominatorPFPhi_LowpTcut =
2726  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2727  DenominatorPFPhi_LowpTcut->getTH1();
2728 
2729  histoname = labelname + "_DenominatorPFEtaPhi_LowpTcut";
2730  title = labelname + "DenominatorPFEtaPhi_LowpTcut;PF #eta;Calo #Phi";
2731  MonitorElement* DenominatorPFEtaPhi_LowpTcut =
2732  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2733  DenominatorPFEtaPhi_LowpTcut->getTH1();
2734 
2735  histoname = labelname + "_DenominatorPFEta_MedpTcut";
2736  title = labelname + "DenominatorPFEta_MedpTcut;PF #eta ";
2737  MonitorElement* DenominatorPFEta_MedpTcut =
2738  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2739  DenominatorPFEta_MedpTcut->getTH1();
2740 
2741  histoname = labelname + "_DenominatorPFPhi_MedpTcut";
2742  title = labelname + "DenominatorPFPhi_MedpTcut;PF #Phi";
2743  MonitorElement* DenominatorPFPhi_MedpTcut =
2744  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2745  DenominatorPFPhi_MedpTcut->getTH1();
2746 
2747  histoname = labelname + "_DenominatorPFEtaPhi_MedpTcut";
2748  title = labelname + "DenominatorPFEtaPhi_MedpTcut;PF #eta;Calo #Phi";
2749  MonitorElement* DenominatorPFEtaPhi_MedpTcut =
2750  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2751  DenominatorPFEtaPhi_MedpTcut->getTH1();
2752 
2753  histoname = labelname + "_DenominatorPFEta_HighpTcut";
2754  title = labelname + "DenominatorPFEta_HighpTcut;PF #eta ";
2755  MonitorElement* DenominatorPFEta_HighpTcut =
2756  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2757  DenominatorPFEta_HighpTcut->getTH1();
2758 
2759  histoname = labelname + "_DenominatorPFPhi_HighpTcut";
2760  title = labelname + "DenominatorPFPhi_HighpTcut;PF #Phi";
2761  MonitorElement* DenominatorPFPhi_HighpTcut =
2762  iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
2763  DenominatorPFPhi_HighpTcut->getTH1();
2764 
2765  histoname = labelname + "_DenominatorPFEtaPhi_HighpTcut";
2766  title = labelname + "DenominatorPFEtaPhi_HighpTcut;PF #eta;Calo #Phi";
2767  MonitorElement* DenominatorPFEtaPhi_HighpTcut =
2768  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Phibins_, PhiMin_, PhiMax_);
2769  DenominatorPFEtaPhi_HighpTcut->getTH1();
2770 
2771  histoname = labelname + "_PFDeltaR";
2772  title = labelname + "PFDeltaR;";
2773  MonitorElement* PFDeltaR = iBooker.book1D(histoname.c_str(), title.c_str(), 100, 0., 1.5);
2774  PFDeltaR->getTH1();
2775 
2776  histoname = labelname + "_PFDeltaPhi";
2777  title = labelname + "PFDeltaPhi;";
2778  MonitorElement* PFDeltaPhi = iBooker.book1D(histoname.c_str(), title.c_str(), 500, -5.0, 5.0);
2779  PFDeltaPhi->getTH1();
2780 
2781  v.setEffHistos(NumeratorPt,
2782  NumeratorPtBarrel,
2783  NumeratorPtEndcap,
2784  NumeratorPtForward,
2785  NumeratorEta,
2786  NumeratorPhi,
2787  NumeratorEtaPhi,
2788  //
2789  NumeratorEtaBarrel,
2790  NumeratorPhiBarrel,
2791  NumeratorEtaEndcap,
2792  NumeratorPhiEndcap,
2793  NumeratorEtaForward,
2794  NumeratorPhiForward,
2795  NumeratorEta_LowpTcut,
2796  NumeratorPhi_LowpTcut,
2797  NumeratorEtaPhi_LowpTcut,
2798  NumeratorEta_MedpTcut,
2799  NumeratorPhi_MedpTcut,
2800  NumeratorEtaPhi_MedpTcut,
2801  NumeratorEta_HighpTcut,
2802  NumeratorPhi_HighpTcut,
2803  NumeratorEtaPhi_HighpTcut,
2804  //
2805  DenominatorPt,
2806  DenominatorPtBarrel,
2807  DenominatorPtEndcap,
2808  DenominatorPtForward,
2809  DenominatorEta,
2810  DenominatorPhi,
2811  DenominatorEtaPhi,
2812  //
2813  DenominatorEtaBarrel,
2814  DenominatorPhiBarrel,
2815  DenominatorEtaEndcap,
2816  DenominatorPhiEndcap,
2817  DenominatorEtaForward,
2818  DenominatorPhiForward,
2819  DenominatorEta_LowpTcut,
2820  DenominatorPhi_LowpTcut,
2821  DenominatorEtaPhi_LowpTcut,
2822  DenominatorEta_MedpTcut,
2823  DenominatorPhi_MedpTcut,
2824  DenominatorEtaPhi_MedpTcut,
2825  DenominatorEta_HighpTcut,
2826  DenominatorPhi_HighpTcut,
2827  DenominatorEtaPhi_HighpTcut,
2828  DeltaR,
2829  DeltaPhi,
2830  //
2831  NumeratorPFPt,
2832  NumeratorPFMHT,
2833  NumeratorPFPtBarrel,
2834  NumeratorPFPtEndcap,
2835  NumeratorPFPtForward,
2836  NumeratorPFEta,
2837  NumeratorPFPhi,
2838  NumeratorPFEtaPhi,
2839  NumeratorPFEtaBarrel,
2840  NumeratorPFPhiBarrel,
2841  NumeratorPFEtaEndcap,
2842  NumeratorPFPhiEndcap,
2843  NumeratorPFEtaForward,
2844  NumeratorPFPhiForward,
2845  NumeratorPFEta_LowpTcut,
2846  NumeratorPFPhi_LowpTcut,
2847  NumeratorPFEtaPhi_LowpTcut,
2848  NumeratorPFEta_MedpTcut,
2849  NumeratorPFPhi_MedpTcut,
2850  NumeratorPFEtaPhi_MedpTcut,
2851  NumeratorPFEta_HighpTcut,
2852  NumeratorPFPhi_HighpTcut,
2853  NumeratorPFEtaPhi_HighpTcut,
2854  DenominatorPFPt,
2855  DenominatorPFMHT,
2856  DenominatorPFPtBarrel,
2857  DenominatorPFPtEndcap,
2858  DenominatorPFPtForward,
2859  DenominatorPFEta,
2860  DenominatorPFPhi,
2861  DenominatorPFEtaPhi,
2862  DenominatorPFEtaBarrel,
2863  DenominatorPFPhiBarrel,
2864  DenominatorPFEtaEndcap,
2865  DenominatorPFPhiEndcap,
2866  DenominatorPFEtaForward,
2867  DenominatorPFPhiForward,
2868  DenominatorPFEta_LowpTcut,
2869  DenominatorPFPhi_LowpTcut,
2870  DenominatorPFEtaPhi_LowpTcut,
2871  DenominatorPFEta_MedpTcut,
2872  DenominatorPFPhi_MedpTcut,
2873  DenominatorPFEtaPhi_MedpTcut,
2874  DenominatorPFEta_HighpTcut,
2875  DenominatorPFPhi_HighpTcut,
2876  DenominatorPFEtaPhi_HighpTcut,
2877  PFDeltaR,
2878  PFDeltaPhi);
2879 
2880  } // Loop over Jet Trigger
2881 
2882  if ((v.getObjectType() == trigger::TriggerJet) && (v.getTriggerType() == "DiJet_Trigger")) {
2883  histoname = labelname + "_NumeratorAvrgPt";
2884  title = labelname + "NumeratorAvrgPt;Calo Pt[GeV/c]";
2885  MonitorElement* NumeratorPt = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2886  NumeratorPt->getTH1();
2887 
2888  histoname = labelname + "_NumeratorAvrgEta";
2889  title = labelname + "NumeratorAvrgEta;Calo #eta";
2890  MonitorElement* NumeratorEta = iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2891  NumeratorEta->getTH1();
2892 
2893  histoname = labelname + "_DenominatorAvrgPt";
2894  title = labelname + "DenominatorAvrgPt;Calo Pt[GeV/c] ";
2895  MonitorElement* DenominatorPt = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2896  DenominatorPt->getTH1();
2897 
2898  histoname = labelname + "_DenominatorAvrgEta";
2899  title = labelname + "DenominatorAvrgEta;Calo #eta";
2900  MonitorElement* DenominatorEta = iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2901  DenominatorEta->getTH1();
2902 
2903  histoname = labelname + "_DeltaR";
2904  title = labelname + "DeltaR;";
2905  MonitorElement* DeltaR = iBooker.book1D(histoname.c_str(), title.c_str(), 100, 0., 1.5);
2906  DeltaR->getTH1();
2907 
2908  histoname = labelname + "_DeltaPhi";
2909  title = labelname + "DeltaPhi;";
2910  MonitorElement* DeltaPhi = iBooker.book1D(histoname.c_str(), title.c_str(), 500, -5., 5.);
2911  DeltaPhi->getTH1();
2912 
2913  //add PF histo: SJ
2914  histoname = labelname + "_NumeratorAvrgPFPt";
2915  title = labelname + "NumeratorAvrgPFPt;PF Pt[GeV/c]";
2916  MonitorElement* NumeratorPFPt = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2917  NumeratorPFPt->getTH1();
2918 
2919  histoname = labelname + "_NumeratorAvrgPFEta";
2920  title = labelname + "NumeratorAvrgPFEta;PF #eta";
2921  MonitorElement* NumeratorPFEta = iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2922  NumeratorPFEta->getTH1();
2923 
2924  histoname = labelname + "_DenominatorAvrgPFPt";
2925  title = labelname + "DenominatorAvrgPFPt;PF Pt[GeV/c] ";
2926  MonitorElement* DenominatorPFPt = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
2927  DenominatorPFPt->getTH1();
2928 
2929  histoname = labelname + "_DenominatorAvrgPFEta";
2930  title = labelname + "DenominatorAvrgPFEta;PF #eta";
2931  MonitorElement* DenominatorPFEta =
2932  iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
2933  DenominatorPFEta->getTH1();
2934 
2935  histoname = labelname + "_PFDeltaR";
2936  title = labelname + "PFDeltaR;";
2937  MonitorElement* PFDeltaR = iBooker.book1D(histoname.c_str(), title.c_str(), 100, 0., 1.5);
2938  PFDeltaR->getTH1();
2939 
2940  histoname = labelname + "_PFDeltaPhi";
2941  title = labelname + "PFDeltaPhi;";
2942  MonitorElement* PFDeltaPhi = iBooker.book1D(histoname.c_str(), title.c_str(), 500, -5., 5.);
2943  PFDeltaPhi->getTH1();
2944 
2945  v.setEffHistos(dummy,
2946  dummy,
2947  dummy,
2948  dummy,
2949  dummy,
2950  dummy,
2951  dummy,
2952  dummy,
2953  dummy,
2954  dummy,
2955  dummy,
2956  dummy,
2957  dummy,
2958  dummy,
2959  dummy,
2960  dummy,
2961  dummy,
2962  dummy,
2963  dummy,
2964  dummy,
2965  dummy,
2966  dummy,
2967  dummy,
2968  dummy,
2969  dummy,
2970  dummy,
2971  dummy,
2972  dummy,
2973  dummy,
2974  dummy,
2975  dummy,
2976  dummy,
2977  dummy,
2978  dummy,
2979  dummy,
2980  dummy,
2981  dummy,
2982  dummy,
2983  dummy,
2984  dummy,
2985  dummy,
2986  dummy,
2987  dummy,
2988  dummy,
2989  dummy,
2990  dummy,
2991  dummy,
2992  dummy,
2993  dummy,
2994  dummy,
2995  dummy,
2996  dummy,
2997  dummy,
2998  dummy,
2999  dummy,
3000  dummy,
3001  dummy,
3002  dummy,
3003  dummy,
3004  dummy,
3005  dummy,
3006  dummy,
3007  dummy,
3008  dummy,
3009  dummy,
3010  dummy,
3011  dummy,
3012  dummy,
3013  dummy,
3014  dummy,
3015  dummy,
3016  dummy,
3017  dummy,
3018  dummy,
3019  dummy,
3020  dummy,
3021  dummy,
3022  dummy,
3023  dummy,
3024  dummy,
3025  dummy,
3026  dummy,
3027  dummy,
3028  dummy,
3029  dummy,
3030  dummy,
3031  dummy,
3032  dummy,
3033  dummy,
3034  dummy,
3035  dummy,
3036  dummy,
3037  dummy,
3038  dummy);
3039  }
3040 
3041  if (v.getObjectType() == trigger::TriggerMET || (v.getObjectType() == trigger::TriggerTET)) {
3042  histoname = labelname + "_NumeratorPt";
3043  if (v.getPath().find("HLT_PFMET") == std::string::npos)
3044  title = labelname + "NumeratorPt; CaloMET[GeV/c]";
3045  else
3046  title = labelname + "NumeratorPt; PFMET[GeV/c]";
3047  MonitorElement* NumeratorPt = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
3048  NumeratorPt->getTH1();
3049 
3050  histoname = labelname + "_NumeratorPhi";
3051  title = labelname + "NumeratorPhi; #Phi";
3052  MonitorElement* NumeratorPhi = iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
3053  NumeratorPhi->getTH1();
3054 
3055  histoname = labelname + "_DenominatorPt";
3056  if (v.getPath().find("HLT_PFMET") == std::string::npos)
3057  title = labelname + "DenominatorPt; CaloMET[GeV/c]";
3058  else
3059  title = labelname + "DenominatorPt; PFMET[GeV/c]";
3060  MonitorElement* DenominatorPt = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
3061  DenominatorPt->getTH1();
3062 
3063  histoname = labelname + "_DenominatorPhi";
3064  title = labelname + "DenominatorPhi; #Phi";
3065  MonitorElement* DenominatorPhi = iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
3066  DenominatorPhi->getTH1();
3067 
3068  v.setEffHistos(NumeratorPt,
3069  dummy,
3070  dummy,
3071  dummy,
3072  dummy,
3073  NumeratorPhi,
3074  dummy,
3075  dummy,
3076  dummy,
3077  dummy,
3078  dummy,
3079  dummy,
3080  dummy,
3081  dummy,
3082  dummy,
3083  dummy,
3084  dummy,
3085  dummy,
3086  dummy,
3087  dummy,
3088  dummy,
3089  dummy,
3090  DenominatorPt,
3091  dummy,
3092  dummy,
3093  dummy,
3094  dummy,
3095  DenominatorPhi,
3096  dummy,
3097  dummy,
3098  dummy,
3099  dummy,
3100  dummy,
3101  dummy,
3102  dummy,
3103  dummy,
3104  dummy,
3105  dummy,
3106  dummy,
3107  dummy,
3108  dummy,
3109  dummy,
3110  dummy,
3111  dummy,
3112  dummy,
3113  dummy,
3114  dummy,
3115  dummy,
3116  dummy,
3117  dummy,
3118  dummy,
3119  dummy,
3120  dummy,
3121  dummy,
3122  dummy,
3123  dummy,
3124  dummy,
3125  dummy,
3126  dummy,
3127  dummy,
3128  dummy,
3129  dummy,
3130  dummy,
3131  dummy,
3132  dummy,
3133  dummy,
3134  dummy,
3135  dummy,
3136  dummy,
3137  dummy,
3138  dummy,
3139  dummy,
3140  dummy,
3141  dummy,
3142  dummy,
3143  dummy,
3144  dummy,
3145  dummy,
3146  dummy,
3147  dummy,
3148  dummy,
3149  dummy,
3150  dummy,
3151  dummy,
3152  dummy,
3153  dummy,
3154  dummy,
3155  dummy,
3156  dummy,
3157  dummy,
3158  dummy,
3159  dummy,
3160  dummy,
3161  dummy);
3162  } // Loop over MET trigger
3163  }
3164  } //plotEff_
3165 
3166  if (runStandalone_) { //runStandalone
3167  //--------Histos to see WHY trigger is NOT fired----------
3168  int Nbins_ = 10;
3169  int Nmin_ = 0;
3170  int Nmax_ = 10;
3171  int Ptbins_ = 1000;
3172  int Etabins_ = 40;
3173  int Phibins_ = 35;
3174  double PtMin_ = 0.;
3175  double PtMax_ = 1000.;
3176  double EtaMin_ = -5.;
3177  double EtaMax_ = 5.;
3178  double PhiMin_ = -3.14159;
3179  double PhiMax_ = 3.14159;
3180 
3181  std::string dirName4_ = dirname_ + "/TriggerNotFired/";
3182  // iBooker.setCurrentFolder(dirName4);
3183 
3184  for (auto& v : hltPathsAll_) {
3186  dummy = iBooker.bookFloat("dummy");
3187 
3188  std::string labelname("ME");
3189  std::string histoname(labelname + "");
3190  std::string title(labelname + "");
3191  iBooker.setCurrentFolder(dirName4_ + v.getPath());
3192 
3193  histoname = labelname + "_TriggerSummary";
3194  title = labelname + "Summary of trigger levels";
3195  MonitorElement* TriggerSummary = iBooker.book1D(histoname.c_str(), title.c_str(), 7, -0.5, 6.5);
3196 
3197  std::vector<std::string> trigger;
3198  trigger.emplace_back("Nevt");
3199  trigger.emplace_back("L1 failed");
3200  trigger.emplace_back("L1 & HLT failed");
3201  trigger.emplace_back("L1 failed but not HLT");
3202  trigger.emplace_back("L1 passed");
3203  trigger.emplace_back("L1 & HLT passed");
3204  trigger.emplace_back("L1 passed but not HLT");
3205 
3206  for (unsigned int i = 0; i < trigger.size(); i++)
3207  TriggerSummary->setBinLabel(i + 1, trigger[i]);
3208 
3209  if ((v.getTriggerType() == "SingleJet_Trigger")) {
3210  histoname = labelname + "_JetPt";
3211  title = labelname + "Leading jet pT;Pt[GeV/c]";
3212  MonitorElement* JetPt = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
3213  JetPt->getTH1();
3214 
3215  histoname = labelname + "_JetEtaVsPt";
3216  title = labelname + "Leading jet #eta vs pT;#eta;Pt[GeV/c]";
3217  MonitorElement* JetEtaVsPt =
3218  iBooker.book2D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_, Ptbins_, PtMin_, PtMax_);
3219  JetEtaVsPt->getTH1();
3220 
3221  histoname = labelname + "_JetPhiVsPt";
3222  title = labelname + "Leading jet #Phi vs pT;#Phi;Pt[GeV/c]";
3223  MonitorElement* JetPhiVsPt =
3224  iBooker.book2D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_, Ptbins_, PtMin_, PtMax_);
3225  JetPhiVsPt->getTH1();
3226 
3227  v.setDgnsHistos(
3228  TriggerSummary, dummy, JetPt, JetEtaVsPt, JetPhiVsPt, dummy, dummy, dummy, dummy, dummy, dummy);
3229  } // single Jet trigger
3230 
3231  if ((v.getTriggerType() == "DiJet_Trigger")) {
3232  histoname = labelname + "_JetSize";
3233  title = labelname + "Jet Size;multiplicity";
3234  MonitorElement* JetSize = iBooker.book1D(histoname.c_str(), title.c_str(), Nbins_, Nmin_, Nmax_);
3235  JetSize->getTH1();
3236 
3237  histoname = labelname + "_AvergPt";
3238  title = labelname + "Average Pt;Pt[GeV/c]";
3239  MonitorElement* Pt12 = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
3240  Pt12->getTH1();
3241 
3242  histoname = labelname + "_AvergEta";
3243  title = labelname + "Average Eta;#eta";
3244  MonitorElement* Eta12 = iBooker.book1D(histoname.c_str(), title.c_str(), Etabins_, EtaMin_, EtaMax_);
3245  Eta12->getTH1();
3246 
3247  histoname = labelname + "_PhiDifference";
3248  title = labelname + "#Delta#Phi;#Delta#Phi";
3249  MonitorElement* Phi12 = iBooker.book1D(histoname.c_str(), title.c_str(), Phibins_, PhiMin_, PhiMax_);
3250  Phi12->getTH1();
3251 
3252  histoname = labelname + "_Pt3Jet";
3253  title = labelname + "Pt of 3rd Jet;Pt[GeV/c]";
3254  MonitorElement* Pt3 = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
3255  Pt3->getTH1();
3256 
3257  histoname = labelname + "_Pt12VsPt3Jet";
3258  title = labelname + "Pt of 3rd Jet vs Average Pt of leading jets;Avergage Pt[GeV/c]; Pt of 3rd Jet [GeV/c]";
3259  MonitorElement* Pt12Pt3 =
3260  iBooker.book2D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_, Ptbins_, PtMin_, PtMax_);
3261  Pt12Pt3->getTH1();
3262 
3263  histoname = labelname + "_Pt12VsPhi12";
3264  title = labelname +
3265  "Average Pt of leading jets vs #Delta#Phi between leading jets;Avergage Pt[GeV/c]; #Delta#Phi";
3266  MonitorElement* Pt12Phi12 =
3267  iBooker.book2D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_, Phibins_, PhiMin_, PhiMax_);
3268  Pt12Phi12->getTH1();
3269 
3270  v.setDgnsHistos(TriggerSummary, JetSize, dummy, dummy, dummy, Pt12, Eta12, Phi12, Pt3, Pt12Pt3, Pt12Phi12);
3271  } // Dijet Jet trigger
3272 
3273  if ((v.getTriggerType() == "MET_Trigger")) {
3274  histoname = labelname + "_MET";
3275  title = labelname + "MET;Pt[GeV/c]";
3276  MonitorElement* MET = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
3277  MET->getTH1();
3278 
3279  v.setDgnsHistos(TriggerSummary, dummy, MET, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy);
3280  } // MET trigger
3281 
3282  if ((v.getTriggerType() == "TET_Trigger")) {
3283  histoname = labelname + "_TET";
3284  title = labelname + "TET;Pt[GeV/c]";
3285  MonitorElement* TET = iBooker.book1D(histoname.c_str(), title.c_str(), Ptbins_, PtMin_, PtMax_);
3286  TET->getTH1();
3287 
3288  v.setDgnsHistos(TriggerSummary, dummy, TET, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy);
3289  } // TET trigger
3290  }
3291  } //runStandalone
3292  }
3293 }
3294 //------------------------------------------------------------------------//
3296  // find L1 condition for numpath with numpath objecttype
3297  // find PSet for L1 global seed for numpath,
3298  // list module labels for numpath
3299  std::string l1pathname = "dummy";
3300 
3301  std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(pathname);
3302 
3303  for (auto& numpathmodule : numpathmodules) {
3304  if (hltConfig_.moduleType(numpathmodule) == "HLTLevel1GTSeed") {
3305  l1pathname = numpathmodule;
3306  break;
3307  }
3308  }
3309  return l1pathname;
3310 }
3311 
3312 //------------------------------------------------------------------------//
3314  bool output = false;
3315  if (fabs(eta) <= 1.3)
3316  output = true;
3317  return output;
3318 }
3319 
3320 //------------------------------------------------------------------------//
3322  bool output = false;
3323  if (fabs(eta) <= 3.0 && fabs(eta) > 1.3)
3324  output = true;
3325  return output;
3326 }
3327 
3328 //------------------------------------------------------------------------//
3330  bool output = false;
3331  if (fabs(eta) > 3.0)
3332  output = true;
3333  return output;
3334 }
3335 
3336 //------------------------------------------------------------------------//
3338  // hltConfig_ has to be defined first before calling this method
3339  bool output = false;
3340  for (unsigned int j = 0; j != hltConfig_.size(); ++j) {
3341  if (hltConfig_.triggerName(j) == pathname)
3342  output = true;
3343  }
3344  return output;
3345 }
3346 
3347 //------------------------------------------------------------------------//
3349  // triggerResults_, triggerNames_ has to be defined first before calling this method
3350  bool output = false;
3351  if (triggerResults_.isValid()) {
3354  output = true;
3355  }
3356  return output;
3357 }
3358 
3359 //------------------------------------------------------------------------//
3360 // This returns the position of trigger name defined in summary histograms
3362  int nbins = rate_All->getTH1()->GetNbinsX();
3363  double binVal = -100;
3364  for (int ibin = 1; ibin < nbins + 1; ibin++) {
3365  const char* binLabel = rate_All->getTH1()->GetXaxis()->GetBinLabel(ibin);
3366  if (binLabel[0] == '\0')
3367  continue;
3368  // std::string binLabel_str = string(binLabel);
3369  // if(binLabel_str.compare(trigName)!=0)continue;
3370  if (trigName != binLabel)
3371  continue;
3372 
3373  if (trigName == binLabel) {
3374  binVal = rate_All->getTH1()->GetBinCenter(ibin);
3375  break;
3376  }
3377  }
3378  return binVal;
3379 }
3380 
3381 //------------------------------------------------------------------------//
3383  // processname_, triggerObj_ has to be defined before calling this method
3384  bool output = false;
3385  edm::InputTag testTag(objectName, "", processname_);
3386  const int index = triggerObj_->filterIndex(testTag);
3387  if (index >= triggerObj_->sizeFilters()) {
3388  edm::LogInfo("JetMETHLTOfflineSource") << "no index " << index << " of that name ";
3389  } else {
3391  if (!k.empty())
3392  output = true;
3393  }
3394  return output;
3395 }
3396 //------------------------------------------------------------------------//
JetMETHLTOfflineSource::isEndCap
virtual bool isEndCap(double eta)
Definition: JetMETHLTOfflineSource.cc:3321
JetMETHLTOfflineSource::PFJetCorToken_
edm::EDGetTokenT< reco::JetCorrector > PFJetCorToken_
Definition: JetMETHLTOfflineSource.h:146
JetMETHLTOfflineSource::CaloJetEMF
double CaloJetEMF[2]
Definition: JetMETHLTOfflineSource.h:164
dqm::impl::MonitorElement
Definition: MonitorElement.h:98
JetMETHLTOfflineSource::_max_NEMF
double _max_NEMF
Definition: JetMETHLTOfflineSource.h:124
JetMETHLTOfflineSource::PFJetPhi
double PFJetPhi[2]
Definition: JetMETHLTOfflineSource.h:172
Handle.h
JetMETHLTOfflineSource::hltPathsEff_
PathInfoCollection hltPathsEff_
Definition: JetMETHLTOfflineSource.h:944
trigger::TriggerEvent::sizeFilters
trigger::size_type sizeFilters() const
Definition: TriggerEvent.h:146
mps_fire.i
i
Definition: mps_fire.py:355
JetMETHLTOfflineSource::rate_AllWrtMB
MonitorElement * rate_AllWrtMB
Definition: JetMETHLTOfflineSource.h:948
JetMETHLTOfflineSource::_fHPD
double _fHPD
Definition: JetMETHLTOfflineSource.h:116
trigger::TriggerEvent::filterKeys
const Keys & filterKeys(trigger::size_type index) const
Definition: TriggerEvent.h:118
MessageLogger.h
funct::false
false
Definition: Factorize.h:34
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
JetMETHLTOfflineSource::pfjet
reco::PFJetCollection pfjet
Definition: JetMETHLTOfflineSource.h:153
dqm::implementation::IBooker::bookFloat
MonitorElement * bookFloat(TString const &name, FUNC onbooking=NOOP())
Definition: DQMStore.h:80
HLTConfigProvider::moduleType
const std::string moduleType(const std::string &module) const
C++ class name of module.
Definition: HLTConfigProvider.h:103
edm::Handle::product
T const * product() const
Definition: Handle.h:70
JetMETHLTOfflineSource::CaloJetPy
double CaloJetPy[2]
Definition: JetMETHLTOfflineSource.h:160
wplusjetsAnalysis_cfi.muTrig
muTrig
Definition: wplusjetsAnalysis_cfi.py:19
edm::InputTag::instance
std::string const & instance() const
Definition: InputTag.h:37
reco::helper::JetIDHelper
Definition: JetIDHelper.h:23
makePileupJSON.denom
denom
Definition: makePileupJSON.py:147
ESHandle.h
TriggerResults.h
BTVHLTOfflineSource_cfi.pathname
pathname
Definition: BTVHLTOfflineSource_cfi.py:28
JetMETHLTOfflineSource::jetID
reco::helper::JetIDHelper * jetID
Definition: JetMETHLTOfflineSource.h:104
reco::helper::JetIDHelper::fHPD
double fHPD() const
Definition: JetIDHelper.h:43
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:32
JetMETHLTOfflineSource::rate_All
MonitorElement * rate_All
Definition: JetMETHLTOfflineSource.h:946
edm::Run
Definition: Run.h:45
TriggerEvent.h
JetMETHLTOfflineSource::triggerSummaryLabel_
edm::InputTag triggerSummaryLabel_
Definition: JetMETHLTOfflineSource.h:128
JetMETHLTOfflineSource::triggerResults_
edm::Handle< edm::TriggerResults > triggerResults_
Definition: JetMETHLTOfflineSource.h:155
multPhiCorr_741_25nsDY_cfi.py
py
Definition: multPhiCorr_741_25nsDY_cfi.py:12
edm
HLT enums.
Definition: AlignableModifier.h:19
PFMETCollection
Collection of PF MET.
JetMETHLTOfflineSource::_feta
double _feta
Definition: JetMETHLTOfflineSource.h:115
gather_cfg.cout
cout
Definition: gather_cfg.py:144
reco::helper::JetIDHelper::calculate
void calculate(const edm::Event &event, const edm::EventSetup &setup, const reco::CaloJet &jet, const int iDbg=0)
Definition: JetIDHelper.cc:93
edm::LogInfo
Definition: MessageLogger.h:254
JetMETHLTOfflineSource::PathInfo
Definition: JetMETHLTOfflineSource.h:184
SingleJetValidation_cfi.foldernm
foldernm
Definition: SingleJetValidation_cfi.py:6
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
JetMETHLTOfflineSource::PFJetPx
double PFJetPx[2]
Definition: JetMETHLTOfflineSource.h:168
JetMETHLTOfflineSource::fillMEforMonAllTrigger
virtual void fillMEforMonAllTrigger(const edm::Event &iEvent, const edm::EventSetup &)
Definition: JetMETHLTOfflineSource.cc:489
JetMETHLTOfflineSource::pfmetColl_
edm::Handle< reco::PFMETCollection > pfmetColl_
Definition: JetMETHLTOfflineSource.h:143
TriggerTypeDefs.h
JetMETHLTOfflineSource::triggerNames_
edm::TriggerNames triggerNames_
Definition: JetMETHLTOfflineSource.h:156
JetMETHLTOfflineSource::CaloJetn90
double CaloJetn90[2]
Definition: JetMETHLTOfflineSource.h:166
JetMETHLTOfflineSource::pfJetsToken
edm::EDGetTokenT< reco::PFJetCollection > pfJetsToken
Definition: JetMETHLTOfflineSource.h:134
DQMStore.h
JetMETHLTOfflineSource::isBarrel
virtual bool isBarrel(double eta)
Definition: JetMETHLTOfflineSource.cc:3313
DeltaPhi
Definition: deltaPhi.h:49
JetMETHLTOfflineSource::CaloJetPx
double CaloJetPx[2]
Definition: JetMETHLTOfflineSource.h:159
JetMETHLTOfflineSource::triggerResultsFUToken
edm::EDGetTokenT< edm::TriggerResults > triggerResultsFUToken
Definition: JetMETHLTOfflineSource.h:131
reco::JetCorrector::correction
double correction(const LorentzVector &fJet) const
get correction using Jet information only
Definition: JetCorrector.h:47
JetMETHLTOfflineSource::pathFilter_
std::vector< std::string > pathFilter_
Definition: JetMETHLTOfflineSource.h:148
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
JetMETHLTOfflineSource::vertexToken
edm::EDGetTokenT< reco::VertexCollection > vertexToken
Definition: JetMETHLTOfflineSource.h:138
EDAnalyzer.h
JetMETHLTOfflineSource::~JetMETHLTOfflineSource
~JetMETHLTOfflineSource() override
Definition: JetMETHLTOfflineSource.cc:101
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
JetMETHLTOfflineSource::_min_CEMF
double _min_CEMF
Definition: JetMETHLTOfflineSource.h:125
findQualityFiles.v
v
Definition: findQualityFiles.py:179
JetMETHLTOfflineSource::CaloJetCorToken_
edm::EDGetTokenT< reco::JetCorrector > CaloJetCorToken_
Definition: JetMETHLTOfflineSource.h:145
JetMETHLTOfflineSource::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &run, edm::EventSetup const &c) override
Definition: JetMETHLTOfflineSource.cc:1629
trigger::TriggerTET
Definition: TriggerTypeDefs.h:73
edm::Handle< reco::JetCorrector >
JetMETHLTOfflineSource::_min_CHEF
double _min_CHEF
Definition: JetMETHLTOfflineSource.h:121
JetMETHLTOfflineSource::JetMETHLTOfflineSource
JetMETHLTOfflineSource(const edm::ParameterSet &)
Definition: JetMETHLTOfflineSource.cc:41
JetMETHLTOfflineSource::PFJetEta
double PFJetEta[2]
Definition: JetMETHLTOfflineSource.h:171
BTaggingMonitor_cfi.met
met
Definition: BTaggingMonitor_cfi.py:84
JetMETHLTOfflineSource::pfjetColl_
edm::Handle< reco::PFJetCollection > pfjetColl_
Definition: JetMETHLTOfflineSource.h:142
reco::CaloMET
Definition: CaloMET.h:21
deltaR.h
JetMETHLTOfflineSource::isForward
virtual bool isForward(double eta)
Definition: JetMETHLTOfflineSource.cc:3329
JetMETHLTOfflineSource::dirname_
std::string dirname_
Definition: JetMETHLTOfflineSource.h:100
JetMETHLTOfflineSource::PFJetPt
double PFJetPt[2]
Definition: JetMETHLTOfflineSource.h:170
reco::helper::JetIDHelper::n90Hits
int n90Hits() const
Definition: JetIDHelper.h:45
JetMETHLTOfflineSource::TriggerPosition
virtual double TriggerPosition(std::string trigName)
Definition: JetMETHLTOfflineSource.cc:3361
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
HLTConfigProvider::moduleLabels
const std::vector< std::string > & moduleLabels(unsigned int trigger) const
label(s) of module(s) on a trigger path
Definition: HLTConfigProvider.h:75
reco::MET
Definition: MET.h:41
MakerMacros.h
JetMETHLTOfflineSource::fillMEforTriggerNTfired
virtual void fillMEforTriggerNTfired()
Definition: JetMETHLTOfflineSource.cc:417
JetMETHLTOfflineSource::CaloJetfHPD
double CaloJetfHPD[2]
Definition: JetMETHLTOfflineSource.h:165
JetMETHLTOfflineSource::MBTrigPaths_
std::vector< std::string > MBTrigPaths_
Definition: JetMETHLTOfflineSource.h:97
trigger::TriggerMET
Definition: TriggerTypeDefs.h:72
JetMETHLTOfflineSource::triggerResultsLabel_
edm::InputTag triggerResultsLabel_
Definition: JetMETHLTOfflineSource.h:129
JetMETHLTOfflineSource::validPathHLT
virtual bool validPathHLT(std::string path)
Definition: JetMETHLTOfflineSource.cc:3337
hltMonBTagIPClient_cfi.pathName
pathName
Definition: hltMonBTagIPClient_cfi.py:5
SiPixelRawToDigiRegional_cfi.deltaPhi
deltaPhi
Definition: SiPixelRawToDigiRegional_cfi.py:9
Service.h
PVValHelper::eta
Definition: PVValidationHelpers.h:69
JetMETHLTOfflineSource::isTriggerObjectFound
virtual bool isTriggerObjectFound(std::string objectName)
Definition: JetMETHLTOfflineSource.cc:3382
w
const double w
Definition: UKUtility.cc:23
JetMETHLTOfflineSource::CaloJetPhi
double CaloJetPhi[2]
Definition: JetMETHLTOfflineSource.h:163
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
JetMETHLTOfflineSource::pathRejectKeyword_
std::vector< std::string > pathRejectKeyword_
Definition: JetMETHLTOfflineSource.h:149
HLT_2018_cff.dPhi
dPhi
Definition: HLT_2018_cff.py:12290
Run.h
N
#define N
Definition: blowfish.cc:9
LaserClient_cfi.nbins
nbins
Definition: LaserClient_cfi.py:51
JetMETHLTOfflineSource::plotAll_
bool plotAll_
Definition: JetMETHLTOfflineSource.h:108
VtxSmearedParameters_cfi.Phi
Phi
Definition: VtxSmearedParameters_cfi.py:112
JetMETHLTOfflineSource::PVZ
MonitorElement * PVZ
Definition: JetMETHLTOfflineSource.h:953
JetMETHLTOfflineSource::hltPathsAllTriggerSummary_
PathInfoCollection hltPathsAllTriggerSummary_
Definition: JetMETHLTOfflineSource.h:942
dqmdumpme.k
k
Definition: dqmdumpme.py:60
JetMETHLTOfflineSource::caloMetToken
edm::EDGetTokenT< reco::CaloMETCollection > caloMetToken
Definition: JetMETHLTOfflineSource.h:137
JetMETHLTOfflineSource::_min_NEMF
double _min_NEMF
Definition: JetMETHLTOfflineSource.h:123
JetMETHLTOfflineSource::_min_NHEF
double _min_NHEF
Definition: JetMETHLTOfflineSource.h:119
JetMETHLTOfflineSource::MuonTrigPaths_
std::vector< std::string > MuonTrigPaths_
Definition: JetMETHLTOfflineSource.h:96
dqm::impl::MonitorElement::getTH1
virtual TH1 * getTH1()
Definition: MonitorElement.cc:969
PbPb_ZMuSkimMuonDPG_cff.deltaR
deltaR
Definition: PbPb_ZMuSkimMuonDPG_cff.py:63
HLTConfigProvider::removeVersion
static const std::string removeVersion(const std::string &trigger)
Definition: HLTConfigProvider.cc:238
JetMETHLTOfflineSource::_pfMHT
double _pfMHT
Definition: JetMETHLTOfflineSource.h:118
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
HLTConfigProvider::size
unsigned int size() const
number of trigger paths in trigger table
Definition: HLTConfigProvider.h:62
JetMETHLTOfflineSource::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: JetMETHLTOfflineSource.cc:109
EgHLTOffTrigSelection_cfi.trigName
trigName
Definition: EgHLTOffTrigSelection_cfi.py:8
reco::PFMET
Definition: PFMET.h:18
Scenarios_cff.scale
scale
Definition: Scenarios_cff.py:2186
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
edm::ParameterSet
Definition: ParameterSet.h:36
JetMETHLTOfflineSource::calojetColl_
edm::Handle< reco::CaloJetCollection > calojetColl_
Definition: JetMETHLTOfflineSource.h:140
JetMETHLTOfflineSource::correlation_AllWrtMu
MonitorElement * correlation_AllWrtMu
Definition: JetMETHLTOfflineSource.h:951
JetMETHLTOfflineSource::NVertices
MonitorElement * NVertices
Definition: JetMETHLTOfflineSource.h:954
DeltaR
Definition: DeltaR.py:1
JetMETHLTOfflineSource::_n90Hits
double _n90Hits
Definition: JetMETHLTOfflineSource.h:117
JetMETHLTOfflineSource::dqmBeginRun
void dqmBeginRun(edm::Run const &run, edm::EventSetup const &c) override
Definition: JetMETHLTOfflineSource.cc:1330
trigger::TriggerObjectCollection
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:75
JetMETHLTOfflineSource::caloJetsToken
edm::EDGetTokenT< reco::CaloJetCollection > caloJetsToken
Definition: JetMETHLTOfflineSource.h:136
JetMETHLTOfflineSource::plotEff_
bool plotEff_
Definition: JetMETHLTOfflineSource.h:109
createfilelist.int
int
Definition: createfilelist.py:10
TriggerNames.h
iEvent
int iEvent
Definition: GenABIO.cc:224
JetMETHLTOfflineSource::_max_CEMF
double _max_CEMF
Definition: JetMETHLTOfflineSource.h:126
trigger::TriggerEvent::filterIndex
trigger::size_type filterIndex(const edm::InputTag &filterTag) const
find index of filter in data-member vector from filter tag
Definition: TriggerEvent.h:132
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
trigger::Keys
std::vector< size_type > Keys
Definition: TriggerTypeDefs.h:19
JetMETHLTOfflineSource::hltConfig_
HLTConfigProvider hltConfig_
Definition: JetMETHLTOfflineSource.h:154
JetMETHLTOfflineSource::calojet
reco::CaloJetCollection calojet
Definition: JetMETHLTOfflineSource.h:152
JetMETHLTOfflineSource::_max_NHEF
double _max_NHEF
Definition: JetMETHLTOfflineSource.h:120
EgHLTOffHistBins_cfi.et
et
Definition: EgHLTOffHistBins_cfi.py:8
JetMETHLTOfflineSource::_fEMF
double _fEMF
Definition: JetMETHLTOfflineSource.h:114
JetMETHLTOfflineSource::correlation_AllWrtMB
MonitorElement * correlation_AllWrtMB
Definition: JetMETHLTOfflineSource.h:952
edm::EventSetup
Definition: EventSetup.h:57
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
HLTConfigProvider.h
ClusterTask_cfi.trig
trig
Definition: ClusterTask_cfi.py:336
trigger::TriggerEvent::getObjects
const TriggerObjectCollection & getObjects() const
Definition: TriggerEvent.h:101
TriggerObject.h
EgammaValidation_cff.num
num
Definition: EgammaValidation_cff.py:34
overlapproblemtsosanalyzer_cfi.title
title
Definition: overlapproblemtsosanalyzer_cfi.py:7
JetMETHLTOfflineSource::fillMEforEffAllTrigger
virtual void fillMEforEffAllTrigger(const edm::Event &iEvent, const edm::EventSetup &)
Definition: JetMETHLTOfflineSource.cc:819
DDAxes::phi
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
multPhiCorr_741_25nsDY_cfi.px
px
Definition: multPhiCorr_741_25nsDY_cfi.py:10
reco::LeafCandidate::et
double et() const final
transverse energy
Definition: LeafCandidate.h:127
JetMETHLTOfflineSource::isHLTPathAccepted
virtual bool isHLTPathAccepted(std::string pathName)
Definition: JetMETHLTOfflineSource.cc:3348
HLTObjectsMonitor_cfi.TriggerSummary
TriggerSummary
Definition: HLTObjectsMonitor_cfi.py:10
std
Definition: JetResolutionObject.h:76
writedatasetfile.run
run
Definition: writedatasetfile.py:27
JetMETHLTOfflineSource::PFJetCEMF
double PFJetCEMF[2]
Definition: JetMETHLTOfflineSource.h:176
HLTConfigProvider::init
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
Definition: HLTConfigProvider.cc:36
JetMETHLTOfflineSource::isSetup_
bool isSetup_
Definition: JetMETHLTOfflineSource.h:111
reco::LeafCandidate::phi
double phi() const final
momentum azimuthal angle
Definition: LeafCandidate.h:148
JetMETHLTOfflineSource::pfMetToken
edm::EDGetTokenT< reco::PFMETCollection > pfMetToken
Definition: JetMETHLTOfflineSource.h:135
JetMETHLTOfflineSource::pfMHTy_All
double pfMHTy_All
Definition: JetMETHLTOfflineSource.h:179
edm::TriggerNames::size
Strings::size_type size() const
Definition: TriggerNames.cc:31
JetMETHLTOfflineSource::CaloJetEta
double CaloJetEta[2]
Definition: JetMETHLTOfflineSource.h:162
JetMETHLTOfflineSource::triggerSummaryFUToken
edm::EDGetTokenT< trigger::TriggerEvent > triggerSummaryFUToken
Definition: JetMETHLTOfflineSource.h:133
metsig::jet
Definition: SignAlgoResolutions.h:47
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
JetMETHLTOfflineSource::runStandalone_
bool runStandalone_
Definition: JetMETHLTOfflineSource.h:107
JetMETHLTOfflineSource::getL1ConditionModuleName
const std::string getL1ConditionModuleName(const std::string &pathname)
Definition: JetMETHLTOfflineSource.cc:3295
JetMETHLTOfflineSource::PFJetPy
double PFJetPy[2]
Definition: JetMETHLTOfflineSource.h:169
JetMETHLTOfflineSource_cfi.denompathname
denompathname
Definition: JetMETHLTOfflineSource_cfi.py:56
JetMETHLTOfflineSource::triggerObj_
edm::Handle< trigger::TriggerEvent > triggerObj_
Definition: JetMETHLTOfflineSource.h:157
JetMETHLTOfflineSource::PFJetNEMF
double PFJetNEMF[2]
Definition: JetMETHLTOfflineSource.h:175
JetMETHLTOfflineSource::fillMEforMonTriggerSummary
virtual void fillMEforMonTriggerSummary(const edm::Event &iEvent, const edm::EventSetup &)
Definition: JetMETHLTOfflineSource.cc:317
TrackerOfflineValidation_Dqm_cff.dirName
dirName
Definition: TrackerOfflineValidation_Dqm_cff.py:55
HLT_2018_cff.triggerType
triggerType
Definition: HLT_2018_cff.py:7443
Skims_PA_cff.paths
paths
Definition: Skims_PA_cff.py:18
JetMETHLTOfflineSource::custompathnamepairs_
std::vector< std::pair< std::string, std::string > > custompathnamepairs_
Definition: JetMETHLTOfflineSource.h:150
JetMETHLTOfflineSource::_max_CHEF
double _max_CHEF
Definition: JetMETHLTOfflineSource.h:122
edm::HLTGlobalStatus::accept
bool accept() const
Has at least one path accepted the event?
Definition: HLTGlobalStatus.h:49
dqm::implementation::IBooker
Definition: DQMStore.h:43
JetMETHLTOfflineSource::CaloJetPt
double CaloJetPt[2]
Definition: JetMETHLTOfflineSource.h:161
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
trigger
Definition: HLTPrescaleTableCond.h:8
HLTConfigProvider::triggerName
const std::string & triggerName(unsigned int triggerIndex) const
Definition: HLTConfigProvider.h:69
JetMETHLTOfflineSource::verbose_
bool verbose_
Definition: JetMETHLTOfflineSource.h:106
JetMETHLTOfflineSource::calometColl_
edm::Handle< reco::CaloMETCollection > calometColl_
Definition: JetMETHLTOfflineSource.h:141
JetMETHLTOfflineSource::correlation_All
MonitorElement * correlation_All
Definition: JetMETHLTOfflineSource.h:950
JetMETHLTOfflineSource::nameForEff_
bool nameForEff_
Definition: JetMETHLTOfflineSource.h:112
EgHLTOfflineClient_cfi.hltTag
hltTag
Definition: EgHLTOfflineClient_cfi.py:9
CaloMETCollection
Collection of Calo MET.
JetMETHLTOfflineSource::rate_AllWrtMu
MonitorElement * rate_AllWrtMu
Definition: JetMETHLTOfflineSource.h:947
JetMETHLTOfflineSource::hltPathsAll_
PathInfoCollection hltPathsAll_
Definition: JetMETHLTOfflineSource.h:943
castor_dqm_sourceclient_file_cfg.path
path
Definition: castor_dqm_sourceclient_file_cfg.py:37
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
JetMETHLTOfflineSource::processname_
std::string processname_
Definition: JetMETHLTOfflineSource.h:101
HGC3DClusterGenMatchSelector_cfi.dR
dR
Definition: HGC3DClusterGenMatchSelector_cfi.py:7
ParameterSet.h
config.checkPath
checkPath
Definition: config.py:11
dummy
Definition: DummySelector.h:38
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
JetMETHLTOfflineSource.h
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
edm::Event
Definition: Event.h:73
JetMETHLTOfflineSource::pfMHTx_All
double pfMHTx_All
Definition: JetMETHLTOfflineSource.h:178
edm::TriggerNames::triggerIndex
unsigned int triggerIndex(std::string const &name) const
Definition: TriggerNames.cc:24
edm::InputTag
Definition: InputTag.h:15
JetMETHLTOfflineSource::PFJetCHEF
double PFJetCHEF[2]
Definition: JetMETHLTOfflineSource.h:174
JetMETHLTOfflineSource::PFJetNHEF
double PFJetNHEF[2]
Definition: JetMETHLTOfflineSource.h:173
JetMETHLTOfflineSource::triggerResultsToken
edm::EDGetTokenT< edm::TriggerResults > triggerResultsToken
Definition: JetMETHLTOfflineSource.h:130
trigger::TriggerJet
Definition: TriggerTypeDefs.h:70
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
JetMETHLTOfflineSource::triggerSummaryToken
edm::EDGetTokenT< trigger::TriggerEvent > triggerSummaryToken
Definition: JetMETHLTOfflineSource.h:132
summarizeEdmComparisonLogfiles.objectName
objectName
Definition: summarizeEdmComparisonLogfiles.py:105