CMS 3D CMS Logo

L1TTauOffline.cc
Go to the documentation of this file.
1 
10 
14 
15 #include "TLorentzVector.h"
16 
17 #include <iomanip>
18 #include <cstdio>
19 #include <string>
20 #include <sstream>
21 #include <cmath>
22 #include <algorithm>
23 
24 using namespace reco;
25 using namespace trigger;
26 using namespace edm;
27 using namespace std;
28 
29 TauL1TPair::TauL1TPair(const TauL1TPair& tauL1tPair) {
30  m_tau = tauL1tPair.m_tau;
31  m_regTau = tauL1tPair.m_regTau;
32 
33  m_eta = tauL1tPair.m_eta;
34  m_phi_bar = tauL1tPair.m_phi_bar;
35  m_phi_end = tauL1tPair.m_phi_end;
36 }
37 
38 double TauL1TPair::dR() { return deltaR(m_regTau->eta(), m_regTau->phi(), eta(), phi()); }
39 const std::map<std::string, unsigned int> L1TTauOffline::PlotConfigNames = {
40  {"nVertex", PlotConfig::nVertex}, {"ETvsET", PlotConfig::ETvsET}, {"PHIvsPHI", PlotConfig::PHIvsPHI}};
41 
42 //
43 // -------------------------------------- Constructor --------------------------------------------
44 //
46  : theTauCollection_(consumes<reco::PFTauCollection>(ps.getUntrackedParameter<edm::InputTag>("tauInputTag"))),
47  AntiMuInputTag_(
48  consumes<reco::TauDiscriminatorContainer>(ps.getUntrackedParameter<edm::InputTag>("antiMuInputTag"))),
49  AntiMuWP_(ps.getUntrackedParameter<std::string>("antiMuWP")),
50  AntiEleInputTag_(
51  consumes<reco::TauDiscriminatorContainer>(ps.getUntrackedParameter<edm::InputTag>("antiEleInputTag"))),
52  AntiEleWP_(ps.getUntrackedParameter<std::string>("antiEleWP")),
53  DecayModeFindingInputTag_(
54  consumes<reco::PFTauDiscriminator>(ps.getUntrackedParameter<edm::InputTag>("decayModeFindingInputTag"))),
55  comb3TInputTag_(
56  consumes<reco::TauDiscriminatorContainer>(ps.getUntrackedParameter<edm::InputTag>("comb3TInputTag"))),
57  comb3TWP_(ps.getUntrackedParameter<std::string>("comb3TWP")),
58  MuonInputTag_(consumes<reco::MuonCollection>(ps.getUntrackedParameter<edm::InputTag>("muonInputTag"))),
59  MetInputTag_(consumes<reco::PFMETCollection>(ps.getUntrackedParameter<edm::InputTag>("metInputTag"))),
60  VtxInputTag_(consumes<reco::VertexCollection>(ps.getUntrackedParameter<edm::InputTag>("vtxInputTag"))),
61  BsInputTag_(consumes<reco::BeamSpot>(ps.getUntrackedParameter<edm::InputTag>("bsInputTag"))),
62  triggerEvent_(consumes<trigger::TriggerEvent>(ps.getUntrackedParameter<edm::InputTag>("trigInputTag"))),
63  trigProcess_(ps.getUntrackedParameter<string>("trigProcess")),
64  triggerResults_(consumes<edm::TriggerResults>(ps.getUntrackedParameter<edm::InputTag>("trigProcess_token"))),
65  triggerPath_(ps.getUntrackedParameter<vector<std::string>>("triggerNames")),
66  histFolder_(ps.getParameter<std::string>("histFolder")),
67  efficiencyFolder_(histFolder_ + "/efficiency_raw"),
68  stage2CaloLayer2TauToken_(consumes<l1t::TauBxCollection>(ps.getUntrackedParameter<edm::InputTag>("l1tInputTag"))),
69  tauEfficiencyThresholds_(ps.getParameter<std::vector<int>>("tauEfficiencyThresholds")),
70  tauEfficiencyBins_(ps.getParameter<std::vector<double>>("tauEfficiencyBins")),
71  histDefinitions_(dqmoffline::l1t::readHistDefinitions(ps.getParameterSet("histDefinitions"), PlotConfigNames)),
72  m_TightMuons(),
73  m_ProbeTaus(),
74  m_TauL1tPairs(),
75  m_RecoTaus(),
76  m_L1tTaus(),
77  m_RecoRecoTaus(),
78  m_L1tL1tTaus(),
79  m_L1tPtCuts(),
80  m_MaxTauEta(99999),
81  m_MaxL1tTauDR(99999),
82  m_MaxHltTauDR(99999),
83  m_trigIndices(),
84  h_nVertex_(),
85  h_tagAndProbeMass_(),
86  h_L1TauETvsTauET_EB_(),
87  h_L1TauETvsTauET_EE_(),
88  h_L1TauETvsTauET_EB_EE_(),
89  h_L1TauPhivsTauPhi_EB_(),
90  h_L1TauPhivsTauPhi_EE_(),
91  h_L1TauPhivsTauPhi_EB_EE_(),
92  h_L1TauEtavsTauEta_(),
93  h_resolutionTauET_EB_(),
94  h_resolutionTauET_EE_(),
95  h_resolutionTauET_EB_EE_(),
96  h_resolutionTauPhi_EB_(),
97  h_resolutionTauPhi_EE_(),
98  h_resolutionTauPhi_EB_EE_(),
99  h_resolutionTauEta_(),
100  h_efficiencyIsoTauET_EB_pass_(),
101  h_efficiencyIsoTauET_EE_pass_(),
102  h_efficiencyIsoTauET_EB_EE_pass_(),
103  h_efficiencyNonIsoTauET_EB_pass_(),
104  h_efficiencyNonIsoTauET_EE_pass_(),
105  h_efficiencyNonIsoTauET_EB_EE_pass_(),
106  h_efficiencyIsoTauET_EB_total_(),
107  h_efficiencyIsoTauET_EE_total_(),
108  h_efficiencyIsoTauET_EB_EE_total_(),
109  h_efficiencyNonIsoTauET_EB_total_(),
110  h_efficiencyNonIsoTauET_EE_total_(),
111  h_efficiencyNonIsoTauET_EB_EE_total_() {
112  edm::LogInfo("L1TTauOffline") << "Constructor "
113  << "L1TTauOffline::L1TTauOffline " << std::endl;
114 }
115 
116 //
117 // -- Destructor
118 //
120  edm::LogInfo("L1TTauOffline") << "Destructor L1TTauOffline::~L1TTauOffline " << std::endl;
121 }
122 
123 //
124 // -------------------------------------- beginRun --------------------------------------------
125 //
127 // void L1TTauOffline::dqmBeginRun(edm::Run const &, edm::EventSetup const &)
128 {
129  bool changed = true;
130  m_hltConfig.init(run, iSetup, trigProcess_, changed);
131 
132  edm::LogInfo("L1TTauOffline") << "L1TTauOffline::beginRun" << std::endl;
133 }
134 
135 //
136 // -------------------------------------- bookHistos --------------------------------------------
137 //
139  edm::LogInfo("L1TTauOffline") << "L1TTauOffline::bookHistograms" << std::endl;
140 
141  // book at beginRun
142  bookTauHistos(ibooker);
143 
144  for (auto trigNamesIt = triggerPath_.begin(); trigNamesIt != triggerPath_.end(); trigNamesIt++) {
145  std::string tNameTmp = (*trigNamesIt);
146  std::string tNamePattern = "";
147  std::size_t found0 = tNameTmp.find("*");
148  if (found0 != std::string::npos)
149  tNamePattern = tNameTmp.substr(0, tNameTmp.size() - 1);
150  else
151  tNamePattern = tNameTmp;
152 
153  int tIndex = -1;
154 
155  for (unsigned ipath = 0; ipath < m_hltConfig.size(); ++ipath) {
156  std::string tmpName = m_hltConfig.triggerName(ipath);
157 
158  std::size_t found = tmpName.find(tNamePattern);
159  if (found != std::string::npos) {
160  tIndex = int(ipath);
161  m_trigIndices.push_back(tIndex);
162  }
163  }
164  }
165 }
166 
167 //
168 // -------------------------------------- Analyze --------------------------------------------
169 //
170 void L1TTauOffline::analyze(edm::Event const& e, edm::EventSetup const& eSetup) {
171  m_MaxTauEta = 2.1;
172  m_MaxL1tTauDR = 0.5;
173  m_MaxHltTauDR = 0.5;
174 
176  e.getByToken(theTauCollection_, taus);
177 
178  if (!taus.isValid()) {
179  edm::LogWarning("L1TTauOffline") << "invalid collection: reco::PFTauCollection " << std::endl;
180  return;
181  }
182 
184  e.getByToken(MuonInputTag_, muons);
185 
186  if (!muons.isValid()) {
187  edm::LogWarning("L1TTauOffline") << "invalid collection: reco::MuonCollection " << std::endl;
188  return;
189  }
190 
192  e.getByToken(BsInputTag_, beamSpot);
193 
194  if (!beamSpot.isValid()) {
195  edm::LogWarning("L1TTauOffline") << "invalid collection: reco::BeamSpot " << std::endl;
196  return;
197  }
198 
200  e.getByToken(VtxInputTag_, vertex);
201 
202  if (!vertex.isValid()) {
203  edm::LogWarning("L1TTauOffline") << "invalid collection: reco::VertexCollection " << std::endl;
204  return;
205  }
206 
208  e.getByToken(stage2CaloLayer2TauToken_, l1tCands);
209 
210  if (!l1tCands.isValid()) {
211  edm::LogWarning("L1TTauOffline") << "invalid collection: l1t::TauBxCollection " << std::endl;
212  return;
213  }
214 
216  e.getByToken(triggerResults_, trigResults);
217 
218  if (!trigResults.isValid()) {
219  edm::LogWarning("L1TTauOffline") << "invalid collection: edm::TriggerResults " << std::endl;
220  return;
221  }
222 
224  e.getByToken(triggerEvent_, trigEvent);
225 
226  if (!trigEvent.isValid()) {
227  edm::LogWarning("L1TTauOffline") << "invalid collection: trigger::TriggerEvent " << std::endl;
228  return;
229  }
230 
232  e.getByToken(MetInputTag_, mets);
233 
234  if (!mets.isValid()) {
235  edm::LogWarning("L1TTauOffline") << "invalid collection: reco::PFMETCollection " << std::endl;
236  return;
237  }
238 
241 
244  getTauL1tPairs(l1tCands);
245 
246  vector<l1t::Tau> l1tContainer;
247  l1tContainer.reserve(l1tCands->size() + 1);
248 
249  for (auto tau = l1tCands->begin(0); tau != l1tCands->end(0); ++tau) {
250  l1tContainer.push_back(*tau);
251  }
252 
253  for (auto tauL1tPairsIt = m_TauL1tPairs.begin(); tauL1tPairsIt != m_TauL1tPairs.end(); ++tauL1tPairsIt) {
254  float eta = tauL1tPairsIt->eta();
255  float phi = tauL1tPairsIt->phi();
256  float pt = tauL1tPairsIt->pt();
257 
258  // unmatched gmt cands have l1tPt = -1.
259  float l1tPt = tauL1tPairsIt->l1tPt();
260 
261  int counter = 0;
262 
263  for (auto threshold : tauEfficiencyThresholds_) {
264  std::string str_threshold = std::to_string(threshold);
265 
266  int l1tPtCut = threshold;
267  bool l1tAboveCut = (l1tPt >= l1tPtCut);
268 
269  stringstream ptCutToTag;
270  ptCutToTag << l1tPtCut;
271  string ptTag = ptCutToTag.str();
272 
273  if (fabs(eta) < m_MaxTauEta) {
274  if (counter == 0) {
275  if (fabs(eta) < 1.5) {
276  h_L1TauETvsTauET_EB_->Fill(pt, l1tPt);
277  h_L1TauPhivsTauPhi_EB_->Fill(phi, tauL1tPairsIt->l1tPhi());
278  h_resolutionTauET_EB_->Fill((l1tPt - pt) / pt);
279  h_resolutionTauPhi_EB_->Fill(tauL1tPairsIt->l1tPhi() - phi);
280  } else {
281  h_L1TauETvsTauET_EE_->Fill(pt, l1tPt);
282  h_L1TauPhivsTauPhi_EE_->Fill(phi, tauL1tPairsIt->l1tPhi());
283  h_resolutionTauET_EE_->Fill((l1tPt - pt) / pt);
284  h_resolutionTauPhi_EE_->Fill(tauL1tPairsIt->l1tPhi() - phi);
285  }
287  h_L1TauPhivsTauPhi_EB_EE_->Fill(phi, tauL1tPairsIt->l1tPhi());
288  h_L1TauEtavsTauEta_->Fill(eta, tauL1tPairsIt->l1tEta());
289  h_resolutionTauET_EB_EE_->Fill((l1tPt - pt) / pt);
290  h_resolutionTauPhi_EB_EE_->Fill(tauL1tPairsIt->l1tPhi() - phi);
291  h_resolutionTauEta_->Fill(tauL1tPairsIt->l1tEta() - eta);
292 
293  ++counter;
294  }
295 
296  if (fabs(eta) < 1.5) {
299  } else {
302  }
305 
306  if (l1tAboveCut) {
307  if (fabs(eta) < 1.5)
309  else
312 
313  if (tauL1tPairsIt->l1tIso() > 0.5) {
314  if (fabs(eta) < 1.5)
316  else
319  }
320  }
321  }
322  }
323  } // loop over tau-L1 pairs
324 }
325 
326 //
327 // -------------------------------------- endRun --------------------------------------------
328 //
329 //
330 // -------------------------------------- book histograms --------------------------------------------
331 //
333  ibooker.cd();
334  ibooker.setCurrentFolder(histFolder_);
336  h_nVertex_ = ibooker.book1D(nVertexDef.name, nVertexDef.title, nVertexDef.nbinsX, nVertexDef.xmin, nVertexDef.xmax);
337  h_tagAndProbeMass_ = ibooker.book1D("tagAndProbeMass", "Invariant mass of tag & probe pair", 100, 40, 140);
338 
340  h_L1TauETvsTauET_EB_ = ibooker.book2D("L1TauETvsTauET_EB",
341  "L1 Tau E_{T} vs PFTau E_{T} (EB); PFTau E_{T} (GeV); L1 Tau E_{T} (GeV)",
342  templateETvsET.nbinsX,
343  &templateETvsET.binsX[0],
344  templateETvsET.nbinsY,
345  &templateETvsET.binsY[0]);
346  h_L1TauETvsTauET_EE_ = ibooker.book2D("L1TauETvsTauET_EE",
347  "L1 Tau E_{T} vs PFTau E_{T} (EE); PFTau E_{T} (GeV); L1 Tau E_{T} (GeV)",
348  templateETvsET.nbinsX,
349  &templateETvsET.binsX[0],
350  templateETvsET.nbinsY,
351  &templateETvsET.binsY[0]);
352  h_L1TauETvsTauET_EB_EE_ = ibooker.book2D("L1TauETvsTauET_EB_EE",
353  "L1 Tau E_{T} vs PFTau E_{T} (EB+EE); PFTau E_{T} (GeV); L1 Tau E_{T} (GeV)",
354  templateETvsET.nbinsX,
355  &templateETvsET.binsX[0],
356  templateETvsET.nbinsY,
357  &templateETvsET.binsY[0]);
358 
361  ibooker.book2D("L1TauPhivsTauPhi_EB",
362  "#phi_{tau}^{L1} vs #phi_{tau}^{offline} (EB); #phi_{tau}^{offline}; #phi_{tau}^{L1}",
363  templatePHIvsPHI.nbinsX,
364  templatePHIvsPHI.xmin,
365  templatePHIvsPHI.xmax,
366  templatePHIvsPHI.nbinsY,
367  templatePHIvsPHI.ymin,
368  templatePHIvsPHI.ymax);
370  ibooker.book2D("L1TauPhivsTauPhi_EE",
371  "#phi_{tau}^{L1} vs #phi_{tau}^{offline} (EE); #phi_{tau}^{offline}; #phi_{tau}^{L1}",
372  templatePHIvsPHI.nbinsX,
373  templatePHIvsPHI.xmin,
374  templatePHIvsPHI.xmax,
375  templatePHIvsPHI.nbinsY,
376  templatePHIvsPHI.ymin,
377  templatePHIvsPHI.ymax);
379  ibooker.book2D("L1TauPhivsTauPhi_EB_EE",
380  "#phi_{tau}^{L1} vs #phi_{tau}^{offline} (EB+EE); #phi_{tau}^{offline}; #phi_{tau}^{L1}",
381  templatePHIvsPHI.nbinsX,
382  templatePHIvsPHI.xmin,
383  templatePHIvsPHI.xmax,
384  templatePHIvsPHI.nbinsY,
385  templatePHIvsPHI.ymin,
386  templatePHIvsPHI.ymax);
387 
389  ibooker.book2D("L1TauEtavsTauEta", "L1 Tau #eta vs PFTau #eta; PFTau #eta; L1 Tau #eta", 100, -3, 3, 100, -3, 3);
390 
391  // tau resolutions
392  h_resolutionTauET_EB_ = ibooker.book1D(
393  "resolutionTauET_EB", "tau ET resolution (EB); (L1 Tau E_{T} - PFTau E_{T})/PFTau E_{T}; events", 50, -1, 1.5);
394  h_resolutionTauET_EE_ = ibooker.book1D(
395  "resolutionTauET_EE", "tau ET resolution (EE); (L1 Tau E_{T} - PFTau E_{T})/PFTau E_{T}; events", 50, -1, 1.5);
397  ibooker.book1D("resolutionTauET_EB_EE",
398  "tau ET resolution (EB+EE); (L1 Tau E_{T} - PFTau E_{T})/PFTau E_{T}; events",
399  50,
400  -1,
401  1.5);
402 
403  h_resolutionTauPhi_EB_ = ibooker.book1D("resolutionTauPhi_EB",
404  "#phi_{tau} resolution (EB); #phi_{tau}^{L1} - #phi_{tau}^{offline}; events",
405  120,
406  -0.3,
407  0.3);
408  h_resolutionTauPhi_EE_ = ibooker.book1D(
409  "resolutionTauPhi_EE", "tau #phi resolution (EE); #phi_{tau}^{L1} - #phi_{tau}^{offline}; events", 120, -0.3, 0.3);
411  ibooker.book1D("resolutionTauPhi_EB_EE",
412  "tau #phi resolution (EB+EE); #phi_{tau}^{L1} - #phi_{tau}^{offline}; events",
413  120,
414  -0.3,
415  0.3);
416 
418  ibooker.book1D("resolutionTauEta", "tau #eta resolution (EB); L1 Tau #eta - PFTau #eta; events", 120, -0.3, 0.3);
419 
420  // tau turn-ons
422  std::vector<float> tauBins(tauEfficiencyBins_.begin(), tauEfficiencyBins_.end());
423  int nBins = tauBins.size() - 1;
424  float* tauBinArray = &(tauBins[0]);
425 
426  for (auto threshold : tauEfficiencyThresholds_) {
427  std::string str_threshold = std::to_string(int(threshold));
429  ibooker.book1D("efficiencyIsoTauET_EB_threshold_" + str_threshold + "_Num",
430  "iso tau efficiency (EB); PFTau E_{T} (GeV); events",
431  nBins,
432  tauBinArray);
434  ibooker.book1D("efficiencyIsoTauET_EE_threshold_" + str_threshold + "_Num",
435  "iso tau efficiency (EE); PFTau E_{T} (GeV); events",
436  nBins,
437  tauBinArray);
439  ibooker.book1D("efficiencyIsoTauET_EB_EE_threshold_" + str_threshold + "_Num",
440  "iso tau efficiency (EB+EE); PFTau E_{T} (GeV); events",
441  nBins,
442  tauBinArray);
443 
445  ibooker.book1D("efficiencyIsoTauET_EB_threshold_" + str_threshold + "_Den",
446  "iso tau efficiency (EB); PFTau E_{T} (GeV); events",
447  nBins,
448  tauBinArray);
450  ibooker.book1D("efficiencyIsoTauET_EE_threshold_" + str_threshold + "_Den",
451  "iso tau efficiency (EE); PFTau E_{T} (GeV); events",
452  nBins,
453  tauBinArray);
455  ibooker.book1D("efficiencyIsoTauET_EB_EE_threshold_" + str_threshold + "_Den",
456  "iso tau efficiency (EB+EE); PFTau E_{T} (GeV); events",
457  nBins,
458  tauBinArray);
459 
460  // non iso
462  ibooker.book1D("efficiencyNonIsoTauET_EB_threshold_" + str_threshold + "_Num",
463  "inclusive tau efficiency (EB); PFTau E_{T} (GeV); events",
464  nBins,
465  tauBinArray);
467  ibooker.book1D("efficiencyNonIsoTauET_EE_threshold_" + str_threshold + "_Num",
468  "inclusive tau efficiency (EE); PFTau E_{T} (GeV); events",
469  nBins,
470  tauBinArray);
472  ibooker.book1D("efficiencyNonIsoTauET_EB_EE_threshold_" + str_threshold + "_Num",
473  "inclusive tau efficiency (EB+EE); PFTau E_{T} (GeV); events",
474  nBins,
475  tauBinArray);
476 
478  ibooker.book1D("efficiencyNonIsoTauET_EB_threshold_" + str_threshold + "_Den",
479  "inclusive tau efficiency (EB); PFTau E_{T} (GeV); events",
480  nBins,
481  tauBinArray);
483  ibooker.book1D("efficiencyNonIsoTauET_EE_threshold_" + str_threshold + "_Den",
484  "inclusive tau efficiency (EE); PFTau E_{T} (GeV); events",
485  nBins,
486  tauBinArray);
488  ibooker.book1D("efficiencyNonIsoTauET_EB_EE_threshold_" + str_threshold + "_Den",
489  "inclusive tau efficiency (EB+EE); PFTau E_{T} (GeV); events",
490  nBins,
491  tauBinArray);
492  }
493 
494  ibooker.cd();
495 
496  return;
497 }
498 
501  reco::Vertex::Point posVtx;
502  reco::Vertex::Error errVtx;
503 
504  bool hasPrimaryVertex = false;
505 
506  if (vertex.isValid()) {
507  for (auto vertexIt = vertex->begin(); vertexIt != vertex->end(); ++vertexIt) {
508  if (vertexIt->isValid() && !vertexIt->isFake()) {
509  posVtx = vertexIt->position();
510  errVtx = vertexIt->error();
511  hasPrimaryVertex = true;
512  break;
513  }
514  }
515  }
516 
517  if (!hasPrimaryVertex) {
518  posVtx = beamSpot->position();
519  errVtx(0, 0) = beamSpot->BeamWidthX();
520  errVtx(1, 1) = beamSpot->BeamWidthY();
521  errVtx(2, 2) = beamSpot->sigmaZ();
522  }
523 
524  const reco::Vertex primaryVertex(posVtx, errVtx);
525 
526  return primaryVertex;
527 }
528 
530  double matchDeltaR = 9999;
531 
533 
534  for (auto trigIndexIt = m_trigIndices.begin(); trigIndexIt != m_trigIndices.end(); ++trigIndexIt) {
535  const vector<string> moduleLabels(m_hltConfig.moduleLabels(*trigIndexIt));
536  const unsigned moduleIndex = m_hltConfig.size((*trigIndexIt)) - 2;
537 
538  const unsigned hltFilterIndex = triggerEvent->filterIndex(InputTag(moduleLabels[moduleIndex], "", trigProcess_));
539 
540  if (hltFilterIndex < triggerEvent->sizeFilters()) {
541  const Keys triggerKeys(triggerEvent->filterKeys(hltFilterIndex));
542  const Vids triggerVids(triggerEvent->filterIds(hltFilterIndex));
543 
544  const unsigned nTriggers = triggerVids.size();
545  for (size_t iTrig = 0; iTrig < nTriggers; ++iTrig) {
546  const TriggerObject trigObject = trigObjs[triggerKeys[iTrig]];
547 
548  double dRtmp = deltaR((*muon), trigObject);
549  if (dRtmp < matchDeltaR)
550  matchDeltaR = dRtmp;
551  }
552  }
553  }
554 
555  return (matchDeltaR < m_MaxHltTauDR);
556 }
557 
559  m_TauL1tPairs.clear();
560 
561  vector<l1t::Tau> l1tContainer;
562  l1tContainer.reserve(l1tCands->size() + 1);
563 
564  for (auto tau = l1tCands->begin(0); tau != l1tCands->end(0); ++tau) {
565  l1tContainer.push_back(*tau);
566  }
567 
568  for (auto probeTauIt = m_ProbeTaus.begin(); probeTauIt != m_ProbeTaus.end(); ++probeTauIt) {
569  TauL1TPair pairBestCand((*probeTauIt), nullptr);
570 
571  for (auto l1tIt = l1tContainer.begin(); l1tIt != l1tContainer.end(); ++l1tIt) {
572  TauL1TPair pairTmpCand((*probeTauIt), &(*l1tIt));
573 
574  if (pairTmpCand.dR() < m_MaxL1tTauDR && pairTmpCand.l1tPt() > pairBestCand.l1tPt())
575  pairBestCand = pairTmpCand;
576  }
577 
578  m_TauL1tPairs.push_back(pairBestCand);
579  }
580 }
581 
584  const reco::Vertex& vertex,
586  m_TightMuons.clear();
587 
588  const reco::PFMET* pfmet = nullptr;
589  pfmet = &(mets->front());
590 
591  int nb_mu = 0;
592 
593  for (auto muonIt2 = muons->begin(); muonIt2 != muons->end(); ++muonIt2) {
594  if (fabs(muonIt2->eta()) < 2.4 && muonIt2->pt() > 10 && muon::isLooseMuon((*muonIt2)) &&
595  (muonIt2->pfIsolationR04().sumChargedHadronPt +
596  max(muonIt2->pfIsolationR04().sumNeutralHadronEt + muonIt2->pfIsolationR04().sumPhotonEt -
597  0.5 * muonIt2->pfIsolationR04().sumPUPt,
598  0.0)) /
599  muonIt2->pt() <
600  0.3) {
601  ++nb_mu;
602  }
603  }
604  bool foundTightMu = false;
605  for (auto muonIt = muons->begin(); muonIt != muons->end(); ++muonIt) {
606  if (!matchHlt(trigEvent, &(*muonIt)))
607  continue;
608  float muiso = (muonIt->pfIsolationR04().sumChargedHadronPt +
609  max(muonIt->pfIsolationR04().sumNeutralHadronEt + muonIt->pfIsolationR04().sumPhotonEt -
610  0.5 * muonIt->pfIsolationR04().sumPUPt,
611  0.0)) /
612  muonIt->pt();
613 
614  if (muiso < 0.1 && nb_mu < 2 && !foundTightMu && fabs(muonIt->eta()) < 2.1 && muonIt->pt() > 24 &&
615  muon::isLooseMuon((*muonIt))) {
616  float mt = sqrt(pow(muonIt->pt() + pfmet->pt(), 2) - pow(muonIt->px() + pfmet->px(), 2) -
617  pow(muonIt->py() + pfmet->py(), 2));
618  if (mt < 30) {
619  m_TightMuons.push_back(&(*muonIt));
620  foundTightMu = true;
621  }
622  }
623  }
624 }
625 
629  const reco::Vertex& vertex) {
630  m_ProbeTaus.clear();
631 
633  iEvent.getByToken(AntiMuInputTag_, antimu);
634  if (!antimu.isValid()) {
635  edm::LogWarning("L1TTauOffline") << "invalid collection: reco::PFTauDiscriminator " << std::endl;
636  return;
637  }
638 
640  iEvent.getByToken(DecayModeFindingInputTag_, dmf);
641  if (!dmf.isValid()) {
642  edm::LogWarning("L1TTauOffline") << "invalid collection: reco::PFTauDiscriminator " << std::endl;
643  return;
644  }
645 
647  iEvent.getByToken(AntiEleInputTag_, antiele);
648  if (!antiele.isValid()) {
649  edm::LogWarning("L1TTauOffline") << "invalid collection: reco::PFTauDiscriminator " << std::endl;
650  return;
651  }
652 
654  iEvent.getByToken(comb3TInputTag_, comb3T);
655  if (!comb3T.isValid()) {
656  edm::LogWarning("L1TTauOffline") << "invalid collection: reco::PFTauDiscriminator " << std::endl;
657  return;
658  }
659 
660  if (!m_TightMuons.empty()) {
661  TLorentzVector mymu;
662  mymu.SetPtEtaPhiE(m_TightMuons[0]->pt(), m_TightMuons[0]->eta(), m_TightMuons[0]->phi(), m_TightMuons[0]->energy());
663  int iTau = 0;
664 
665  // load indices from input provenance config if process history changed, in particular for the first event
666  if (iEvent.processHistoryID() != phID_) {
667  phID_ = iEvent.processHistoryID();
668  {
669  const edm::Provenance* prov = antimu.provenance();
670  const std::vector<edm::ParameterSet> psetsFromProvenance =
671  edm::parameterSet(*prov, iEvent.processHistory())
672  .getParameter<std::vector<edm::ParameterSet>>("IDWPdefinitions");
673  for (uint i = 0; i < psetsFromProvenance.size(); i++) {
674  if (psetsFromProvenance[i].getParameter<std::string>("IDname") == AntiMuWP_)
675  AntiMuWPIndex_ = i;
676  }
677  }
678  {
679  const edm::Provenance* prov = antiele.provenance();
680  const std::vector<std::string> psetsFromProvenance =
681  edm::parameterSet(*prov, iEvent.processHistory()).getParameter<std::vector<std::string>>("workingPoints");
682  for (uint i = 0; i < psetsFromProvenance.size(); i++) {
683  if (psetsFromProvenance[i] == AntiEleWP_)
684  AntiEleWPIndex_ = i;
685  }
686  }
687  {
688  const edm::Provenance* prov = comb3T.provenance();
689  const std::vector<edm::ParameterSet> psetsFromProvenance =
690  edm::parameterSet(*prov, iEvent.processHistory())
691  .getParameter<std::vector<edm::ParameterSet>>("IDWPdefinitions");
692  for (uint i = 0; i < psetsFromProvenance.size(); i++) {
693  if (psetsFromProvenance[i].getParameter<std::string>("IDname") == comb3TWP_)
694  comb3TWPIndex_ = i;
695  }
696  }
697  }
698 
699  for (auto tauIt = taus->begin(); tauIt != taus->end(); ++tauIt, ++iTau) {
700  reco::PFTauRef tauCandidate(taus, iTau);
701  TLorentzVector mytau;
702  mytau.SetPtEtaPhiE(tauIt->pt(), tauIt->eta(), tauIt->phi(), tauIt->energy());
703 
704  if (fabs(tauIt->charge()) == 1 && fabs(tauIt->eta()) < 2.1 && tauIt->pt() > 20 &&
705  (*antimu)[tauCandidate].workingPoints[AntiMuWPIndex_] &&
706  (*antiele)[tauCandidate].workingPoints[AntiEleWPIndex_] && (*dmf)[tauCandidate] > 0.5 &&
707  (*comb3T)[tauCandidate].workingPoints[comb3TWPIndex_]) {
708  if (mymu.DeltaR(mytau) > 0.5 && (mymu + mytau).M() > 40 && (mymu + mytau).M() < 80 &&
709  m_TightMuons[0]->charge() * tauIt->charge() < 0) {
710  m_ProbeTaus.push_back(&(*tauIt));
711  }
712  }
713  }
714  }
715 }
716 
718  std::vector<MonitorElement*> monElementstoNormalize = {h_L1TauETvsTauET_EB_,
725 
726  for (auto mon : monElementstoNormalize) {
727  if (mon != nullptr) {
728  auto h = mon->getTH2F();
729  if (h != nullptr) {
730  h->Scale(1, "width");
731  }
732  }
733  }
734 }
735 // define this as a plug-in
dqmoffline::l1t::HistDefinition::ymax
double ymax
Definition: HistDefinition.h:69
TriggerObject
Definition: TriggerObject.py:1
L1TTauOffline::comb3TWPIndex_
int comb3TWPIndex_
Definition: L1TTauOffline.h:141
L1TTauOffline::analyze
void analyze(edm::Event const &e, edm::EventSetup const &eSetup) override
Definition: L1TTauOffline.cc:170
dqmoffline::l1t::readHistDefinitions
HistDefinitions readHistDefinitions(const edm::ParameterSet &ps, const std::map< std::string, unsigned int > &mapping)
Definition: HistDefinition.cc:29
L1TTauOffline::L1TTauOffline
L1TTauOffline(const edm::ParameterSet &ps)
Definition: L1TTauOffline.cc:45
L1TTauOffline::h_efficiencyIsoTauET_EE_pass_
std::map< double, MonitorElement * > h_efficiencyIsoTauET_EE_pass_
Definition: L1TTauOffline.h:203
TauL1TPair::m_regTau
const l1t::Tau * m_regTau
Definition: L1TTauOffline.h:74
PDWG_BPHSkim_cff.muons
muons
Definition: PDWG_BPHSkim_cff.py:47
counter
Definition: counter.py:1
TauL1TPair::l1tPt
double l1tPt() const
Definition: L1TTauOffline.h:67
mps_fire.i
i
Definition: mps_fire.py:355
TauL1TPair::m_eta
double m_eta
Definition: L1TTauOffline.h:76
pwdgSkimBPark_cfi.beamSpot
beamSpot
Definition: pwdgSkimBPark_cfi.py:5
L1TTauOffline::matchHlt
bool matchHlt(edm::Handle< trigger::TriggerEvent > const &triggerEvent, const reco::Muon *muon)
Definition: L1TTauOffline.cc:529
dqmoffline::l1t::HistDefinition::ymin
double ymin
Definition: HistDefinition.h:68
TauL1TPair
Definition: L1TTauOffline.h:54
L1TTauOffline::h_efficiencyNonIsoTauET_EB_EE_total_
std::map< double, MonitorElement * > h_efficiencyNonIsoTauET_EB_EE_total_
Definition: L1TTauOffline.h:218
trigger::Vids
std::vector< int > Vids
Definition: TriggerTypeDefs.h:21
metsig::tau
Definition: SignAlgoResolutions.h:49
L1TTauOffline::m_TauL1tPairs
std::vector< TauL1TPair > m_TauL1tPairs
Definition: L1TTauOffline.h:159
muon
Definition: MuonCocktails.h:17
TauL1TPair::TauL1TPair
TauL1TPair(const reco::PFTau *tau, const l1t::Tau *regTau)
Definition: L1TTauOffline.h:56
dqmoffline::l1t::HistDefinition::xmin
double xmin
Definition: HistDefinition.h:66
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
L1TTauOffline::BsInputTag_
edm::EDGetTokenT< reco::BeamSpot > BsInputTag_
Definition: L1TTauOffline.h:145
edm::Run
Definition: Run.h:45
TriggerAnalyzer.trigObjs
trigObjs
Definition: TriggerAnalyzer.py:89
L1TTauOffline::h_L1TauPhivsTauPhi_EE_
MonitorElement * h_L1TauPhivsTauPhi_EE_
Definition: L1TTauOffline.h:185
Tau3MuMonitor_cff.taus
taus
Definition: Tau3MuMonitor_cff.py:7
L1TTauOffline::h_efficiencyNonIsoTauET_EB_total_
std::map< double, MonitorElement * > h_efficiencyNonIsoTauET_EB_total_
Definition: L1TTauOffline.h:216
L1TTauOffline::h_resolutionTauET_EB_
MonitorElement * h_resolutionTauET_EB_
Definition: L1TTauOffline.h:191
edm
HLT enums.
Definition: AlignableModifier.h:19
dqmoffline::l1t::HistDefinition::name
std::string name
Definition: HistDefinition.h:62
reco::Vertex::Error
math::Error< dimension >::type Error
covariance error matrix (3x3)
Definition: Vertex.h:44
PFMETCollection
Collection of PF MET.
L1TTauOffline::h_L1TauEtavsTauEta_
MonitorElement * h_L1TauEtavsTauEta_
Definition: L1TTauOffline.h:188
L1TTauOffline::normalise2DHistogramsToBinArea
void normalise2DHistogramsToBinArea()
Definition: L1TTauOffline.cc:717
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
reco::PFTauDiscriminator
Definition: PFTauDiscriminator.h:12
edm::LogInfo
Definition: MessageLogger.h:254
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
dqmoffline::l1t::HistDefinition::binsY
std::vector< float > binsY
Definition: HistDefinition.h:73
L1TTauOffline::AntiEleWP_
std::string AntiEleWP_
Definition: L1TTauOffline.h:136
TauL1TPair::m_tau
const reco::PFTau * m_tau
Definition: L1TTauOffline.h:70
L1TTauOffline::getPrimaryVertex
const reco::Vertex getPrimaryVertex(edm::Handle< reco::VertexCollection > const &vertex, edm::Handle< reco::BeamSpot > const &beamSpot)
Definition: L1TTauOffline.cc:499
L1TTauOffline::getTauL1tPairs
void getTauL1tPairs(edm::Handle< l1t::TauBxCollection > const &l1tCands)
Definition: L1TTauOffline.cc:558
L1TTauOffline::triggerResults_
edm::EDGetTokenT< edm::TriggerResults > triggerResults_
Definition: L1TTauOffline.h:148
reco::Vertex::position
const Point & position() const
position
Definition: Vertex.h:114
reco::LeafCandidate::pt
double pt() const final
transverse momentum
Definition: LeafCandidate.h:146
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
singleTopDQM_cfi.mets
mets
Definition: singleTopDQM_cfi.py:43
L1TTauOffline::dqmBeginRun
void dqmBeginRun(const edm::Run &run, const edm::EventSetup &iSetup) override
Definition: L1TTauOffline.cc:126
TauL1TPair::dR
double dR()
Definition: L1TTauOffline.cc:38
L1TEGammaOffline_cfi.PHIvsPHI
PHIvsPHI
Definition: L1TEGammaOffline_cfi.py:62
L1TTauOffline::h_resolutionTauPhi_EB_EE_
MonitorElement * h_resolutionTauPhi_EB_EE_
Definition: L1TTauOffline.h:197
L1TTauOffline::m_MaxHltTauDR
float m_MaxHltTauDR
Definition: L1TTauOffline.h:171
L1TTauOffline::h_efficiencyIsoTauET_EB_pass_
std::map< double, MonitorElement * > h_efficiencyIsoTauET_EB_pass_
Definition: L1TTauOffline.h:202
L1TTauOffline::h_L1TauETvsTauET_EB_EE_
MonitorElement * h_L1TauETvsTauET_EB_EE_
Definition: L1TTauOffline.h:182
dqmoffline::l1t::HistDefinition::binsX
std::vector< float > binsX
Definition: HistDefinition.h:72
newFWLiteAna.found
found
Definition: newFWLiteAna.py:118
edm::Handle
Definition: AssociativeIterator.h:50
L1TTauOffline::comb3TInputTag_
edm::EDGetTokenT< reco::TauDiscriminatorContainer > comb3TInputTag_
Definition: L1TTauOffline.h:139
parallelization.uint
uint
Definition: parallelization.py:124
L1TTauOffline::h_efficiencyIsoTauET_EB_EE_pass_
std::map< double, MonitorElement * > h_efficiencyIsoTauET_EB_EE_pass_
Definition: L1TTauOffline.h:204
L1TTauOffline::theTauCollection_
edm::EDGetTokenT< reco::PFTauCollection > theTauCollection_
Definition: L1TTauOffline.h:131
reco::Muon
Definition: Muon.h:27
L1TTauOffline::h_nVertex_
MonitorElement * h_nVertex_
Definition: L1TTauOffline.h:176
edm::Ref< PFTauCollection >
L1TTauOffline::bookTauHistos
void bookTauHistos(DQMStore::IBooker &)
Definition: L1TTauOffline.cc:332
L1TTauOffline
Definition: L1TTauOffline.h:81
L1TTauOffline::getProbeTaus
void getProbeTaus(const edm::Event &e, edm::Handle< reco::PFTauCollection > const &taus, edm::Handle< reco::MuonCollection > const &muons, const reco::Vertex &vertex)
Definition: L1TTauOffline.cc:626
deltaR.h
BeamMonitor_cff.primaryVertex
primaryVertex
hltOfflineBeamSpot for HLTMON
Definition: BeamMonitor_cff.py:7
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
L1TTauOffline::getTightMuons
void getTightMuons(edm::Handle< reco::MuonCollection > const &muons, edm::Handle< reco::PFMETCollection > const &mets, const reco::Vertex &vertex, edm::Handle< trigger::TriggerEvent > const &trigEvent)
Definition: L1TTauOffline.cc:582
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
MuonPFIsolation.h
L1TTauOffline::triggerEvent_
edm::EDGetTokenT< trigger::TriggerEvent > triggerEvent_
Definition: L1TTauOffline.h:146
L1TTauOffline::efficiencyFolder_
std::string efficiencyFolder_
Definition: L1TTauOffline.h:151
muon::isLooseMuon
bool isLooseMuon(const reco::Muon &)
Definition: MuonSelectors.cc:910
L1TTauOffline::h_efficiencyNonIsoTauET_EE_total_
std::map< double, MonitorElement * > h_efficiencyNonIsoTauET_EE_total_
Definition: L1TTauOffline.h:217
h
L1TTauOffline::AntiMuWPIndex_
int AntiMuWPIndex_
Definition: L1TTauOffline.h:134
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
L1TTauOffline::h_L1TauPhivsTauPhi_EB_
MonitorElement * h_L1TauPhivsTauPhi_EB_
Definition: L1TTauOffline.h:184
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
dqmoffline::l1t::HistDefinition::nbinsX
unsigned int nbinsX
Definition: HistDefinition.h:64
L1TTauOffline::AntiMuInputTag_
edm::EDGetTokenT< reco::TauDiscriminatorContainer > AntiMuInputTag_
Definition: L1TTauOffline.h:132
reco::LeafCandidate::py
double py() const final
y coordinate of momentum vector
Definition: LeafCandidate.h:142
MuonSelectors.h
PVValHelper::eta
Definition: PVValidationHelpers.h:69
dqmoffline::l1t::HistDefinition::xmax
double xmax
Definition: HistDefinition.h:67
reco::MuonCollection
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
reco::BeamSpot
Definition: BeamSpot.h:21
reco::PFTauCollection
std::vector< PFTau > PFTauCollection
collection of PFTau objects
Definition: PFTauFwd.h:9
TauL1TPair::m_phi_end
double m_phi_end
Definition: L1TTauOffline.h:78
dqm::implementation::NavigatorBase::cd
virtual void cd()
Definition: DQMStore.cc:29
L1TTauOffline::histFolder_
std::string histFolder_
Definition: L1TTauOffline.h:150
edm::HandleBase::provenance
Provenance const * provenance() const
Definition: HandleBase.h:74
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
L1TTauOffline::h_resolutionTauPhi_EE_
MonitorElement * h_resolutionTauPhi_EE_
Definition: L1TTauOffline.h:196
seedmultiplicitymonitor_newtracking_cfi.nBins
nBins
Definition: seedmultiplicitymonitor_newtracking_cfi.py:8
BXVector::begin
const_iterator begin(int bx) const
L1TTauOffline::DecayModeFindingInputTag_
edm::EDGetTokenT< reco::PFTauDiscriminator > DecayModeFindingInputTag_
Definition: L1TTauOffline.h:138
LaserDQM_cfi.mon
mon
Definition: LaserDQM_cfi.py:3
commonCuts_cff.triggerResults_
triggerResults_
Definition: commonCuts_cff.py:17
PbPb_ZMuSkimMuonDPG_cff.deltaR
deltaR
Definition: PbPb_ZMuSkimMuonDPG_cff.py:63
B2GTnPMonitor_cfi.trigEvent
trigEvent
Definition: B2GTnPMonitor_cfi.py:39
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
L1TTauOffline::histDefinitions_
dqmoffline::l1t::HistDefinitions histDefinitions_
Definition: L1TTauOffline.h:155
HLTConfigProvider::size
unsigned int size() const
number of trigger paths in trigger table
Definition: HLTConfigProvider.h:62
edm::LogWarning
Definition: MessageLogger.h:141
reco::PFMET
Definition: PFMET.h:18
bphysicsOniaDQM_cfi.vertex
vertex
Definition: bphysicsOniaDQM_cfi.py:7
BXVector::end
const_iterator end(int bx) const
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
edm::ParameterSet
Definition: ParameterSet.h:36
L1TTauOffline::trigProcess_
std::string trigProcess_
Definition: L1TTauOffline.h:147
TauL1TPair::m_phi_bar
double m_phi_bar
Definition: L1TTauOffline.h:77
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
L1TTauOffline::h_L1TauETvsTauET_EB_
MonitorElement * h_L1TauETvsTauET_EB_
Definition: L1TTauOffline.h:180
l1t
delete x;
Definition: CaloConfig.h:22
L1TTauOffline::~L1TTauOffline
~L1TTauOffline() override
Definition: L1TTauOffline.cc:119
L1TTauOffline::h_resolutionTauET_EB_EE_
MonitorElement * h_resolutionTauET_EB_EE_
Definition: L1TTauOffline.h:193
dqmoffline
Definition: HistDefinition.h:48
trigger::TriggerObjectCollection
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:75
L1TTauOffline::h_L1TauPhivsTauPhi_EB_EE_
MonitorElement * h_L1TauPhivsTauPhi_EB_EE_
Definition: L1TTauOffline.h:186
L1TTauOffline::triggerPath_
std::vector< std::string > triggerPath_
Definition: L1TTauOffline.h:149
l1t::TauBxCollection
BXVector< Tau > TauBxCollection
Definition: Tau.h:10
createfilelist.int
int
Definition: createfilelist.py:10
L1TTauOffline::h_efficiencyNonIsoTauET_EB_pass_
std::map< double, MonitorElement * > h_efficiencyNonIsoTauET_EB_pass_
Definition: L1TTauOffline.h:206
L1TTauOffline::m_trigIndices
std::vector< int > m_trigIndices
Definition: L1TTauOffline.h:173
iEvent
int iEvent
Definition: GenABIO.cc:224
L1TTauOffline::h_efficiencyIsoTauET_EB_EE_total_
std::map< double, MonitorElement * > h_efficiencyIsoTauET_EB_EE_total_
Definition: L1TTauOffline.h:214
L1TTauOffline::m_hltConfig
HLTConfigProvider m_hltConfig
Definition: L1TTauOffline.h:122
trigger::Keys
std::vector< size_type > Keys
Definition: TriggerTypeDefs.h:19
L1TTauOffline::comb3TWP_
std::string comb3TWP_
Definition: L1TTauOffline.h:140
L1TTauOffline::h_resolutionTauEta_
MonitorElement * h_resolutionTauEta_
Definition: L1TTauOffline.h:199
L1TTauOffline::m_MaxL1tTauDR
float m_MaxL1tTauDR
Definition: L1TTauOffline.h:170
dqmoffline::l1t::HistDefinition
Definition: HistDefinition.h:54
counter
static std::atomic< unsigned int > counter
Definition: SharedResourceNames.cc:15
L1TTauOffline::AntiEleWPIndex_
int AntiEleWPIndex_
Definition: L1TTauOffline.h:137
edm::EventSetup
Definition: EventSetup.h:57
trigger::TriggerEvent
The single EDProduct to be saved for each event (AOD case)
Definition: TriggerEvent.h:25
get
#define get
L1TTauOffline::h_resolutionTauPhi_EB_
MonitorElement * h_resolutionTauPhi_EB_
Definition: L1TTauOffline.h:195
PDWG_DiPhoton_SD_cff.triggerEvent
triggerEvent
Definition: PDWG_DiPhoton_SD_cff.py:39
L1TTauOffline::h_resolutionTauET_EE_
MonitorElement * h_resolutionTauET_EE_
Definition: L1TTauOffline.h:192
L1TTauOffline::m_MaxTauEta
float m_MaxTauEta
Definition: L1TTauOffline.h:169
dqmoffline::l1t::HistDefinition::nbinsY
unsigned int nbinsY
Definition: HistDefinition.h:65
L1TTauOffline.h
DDAxes::phi
L1TTauOffline::MuonInputTag_
edm::EDGetTokenT< reco::MuonCollection > MuonInputTag_
Definition: L1TTauOffline.h:142
L1TTauOffline::phID_
edm::ProcessHistoryID phID_
Definition: L1TTauOffline.h:128
edm::getParameterSet
ParameterSet const & getParameterSet(ParameterSetID const &id)
Definition: ParameterSet.cc:855
reco::Vertex::Point
math::XYZPoint Point
point in the space
Definition: Vertex.h:40
std
Definition: JetResolutionObject.h:76
writedatasetfile.run
run
Definition: writedatasetfile.py:27
HLTConfigProvider::init
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
Definition: HLTConfigProvider.cc:36
L1TTauOffline::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: L1TTauOffline.cc:138
dqmoffline::l1t::HistDefinition::title
std::string title
Definition: HistDefinition.h:63
edm::ValueMap
Definition: ValueMap.h:107
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
L1TTauOffline::tauEfficiencyThresholds_
std::vector< int > tauEfficiencyThresholds_
Definition: L1TTauOffline.h:153
L1TTauOffline::PlotConfigNames
static const std::map< std::string, unsigned int > PlotConfigNames
Definition: L1TTauOffline.h:88
L1TTauOffline::h_efficiencyIsoTauET_EE_total_
std::map< double, MonitorElement * > h_efficiencyIsoTauET_EE_total_
Definition: L1TTauOffline.h:213
edm::parameterSet
ParameterSet const & parameterSet(Provenance const &provenance, ProcessHistory const &history)
Definition: Provenance.cc:11
L1TTauOffline::tauEfficiencyBins_
std::vector< double > tauEfficiencyBins_
Definition: L1TTauOffline.h:154
L1TTauOffline::MetInputTag_
edm::EDGetTokenT< reco::PFMETCollection > MetInputTag_
Definition: L1TTauOffline.h:143
TtSemiLepEvtBuilder_cfi.mt
mt
Definition: TtSemiLepEvtBuilder_cfi.py:47
reco::deltaR
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
dqm::implementation::IBooker
Definition: DQMStore.h:43
trigger
Definition: HLTPrescaleTableCond.h:8
HLTConfigProvider::triggerName
const std::string & triggerName(unsigned int triggerIndex) const
Definition: HLTConfigProvider.h:69
BXVector::size
unsigned size(int bx) const
L1TTauOffline::VtxInputTag_
edm::EDGetTokenT< reco::VertexCollection > VtxInputTag_
Definition: L1TTauOffline.h:144
L1TEGammaOffline_cfi.nVertex
nVertex
Definition: L1TEGammaOffline_cfi.py:60
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
L1TTauOffline::AntiEleInputTag_
edm::EDGetTokenT< reco::TauDiscriminatorContainer > AntiEleInputTag_
Definition: L1TTauOffline.h:135
edm::Provenance
Definition: Provenance.h:34
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
L1TTauOffline::AntiMuWP_
std::string AntiMuWP_
Definition: L1TTauOffline.h:133
L1TTauOffline::h_efficiencyNonIsoTauET_EB_EE_pass_
std::map< double, MonitorElement * > h_efficiencyNonIsoTauET_EB_EE_pass_
Definition: L1TTauOffline.h:208
L1TTauOffline::h_L1TauETvsTauET_EE_
MonitorElement * h_L1TauETvsTauET_EE_
Definition: L1TTauOffline.h:181
remoteMonitoring_LED_IterMethod_cfg.threshold
threshold
Definition: remoteMonitoring_LED_IterMethod_cfg.py:426
L1TTauOffline::h_efficiencyIsoTauET_EB_total_
std::map< double, MonitorElement * > h_efficiencyIsoTauET_EB_total_
Definition: L1TTauOffline.h:212
L1TEGammaOffline_cfi.ETvsET
ETvsET
Definition: L1TEGammaOffline_cfi.py:61
L1TTauOffline::h_efficiencyNonIsoTauET_EE_pass_
std::map< double, MonitorElement * > h_efficiencyNonIsoTauET_EE_pass_
Definition: L1TTauOffline.h:207
edm::Event
Definition: Event.h:73
L1TTauOffline::h_tagAndProbeMass_
MonitorElement * h_tagAndProbeMass_
Definition: L1TTauOffline.h:177
reco::LeafCandidate::px
double px() const final
x coordinate of momentum vector
Definition: LeafCandidate.h:140
edm::InputTag
Definition: InputTag.h:15
edm::TriggerResults
Definition: TriggerResults.h:35
L1TTauOffline::m_TightMuons
std::vector< const reco::Muon * > m_TightMuons
Definition: L1TTauOffline.h:157
reco::Vertex
Definition: Vertex.h:35
L1TTauOffline::stage2CaloLayer2TauToken_
edm::EDGetTokenT< l1t::TauBxCollection > stage2CaloLayer2TauToken_
Definition: L1TTauOffline.h:152
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
L1TTauOffline::m_BField
edm::ESHandle< MagneticField > m_BField
Definition: L1TTauOffline.h:124
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
L1TTauOffline::m_ProbeTaus
std::vector< const reco::PFTau * > m_ProbeTaus
Definition: L1TTauOffline.h:158