CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
HLTMuonPlotter Class Reference

#include <HLTMuonPlotter.h>

Classes

struct  matchesByDescendingPt
 
struct  MatchStruct
 

Public Types

typedef dqm::legacy::DQMStore DQMStore
 
typedef dqm::legacy::MonitorElement MonitorElement
 

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &)
 
void beginJob ()
 
void beginRun (DQMStore::IBooker &, const edm::Run &, const edm::EventSetup &)
 
 HLTMuonPlotter (const edm::ParameterSet &, std::string, const std::vector< std::string > &, const std::vector< std::string > &, const std::tuple< edm::EDGetTokenT< trigger::TriggerEventWithRefs >, edm::EDGetTokenT< reco::GenParticleCollection >, edm::EDGetTokenT< reco::MuonCollection >> &)
 
 ~HLTMuonPlotter ()
 

Static Public Member Functions

static std::tuple< edm::EDGetTokenT< trigger::TriggerEventWithRefs >, edm::EDGetTokenT< reco::GenParticleCollection >, edm::EDGetTokenT< reco::MuonCollection > > getTokens (const edm::ParameterSet &, edm::ConsumesCollector &&)
 

Private Member Functions

void analyzePath (const edm::Event &, const std::string &, const std::string &, const std::vector< MatchStruct > &, edm::Handle< trigger::TriggerEventWithRefs >)
 
void bookHist (DQMStore::IBooker &, std::string, std::string, std::string, std::string)
 
void findMatches (std::vector< MatchStruct > &, const l1t::MuonVectorRef &candsL1, const std::vector< std::vector< const reco::RecoChargedCandidate * >> &)
 

Private Attributes

double cutMaxEta_
 
double cutMinPt_
 
unsigned int cutMotherId_
 
std::vector< double > cutsDr_
 
std::map< std::string, MonitorElement * > elements_
 
std::string genMuonCut_
 
StringCutObjectSelector< reco::GenParticle > * genMuonSelector_
 
edm::EDGetTokenT< reco::GenParticleCollectiongenParticleLabel_
 
std::string hltPath_
 
std::string hltProcessName_
 
edm::EDGetTokenT< trigger::TriggerEventWithRefshltTriggerSummaryRAW_
 
L1MuonMatcherAlgo l1Matcher_
 
std::vector< std::string > moduleLabels_
 
std::vector< double > parametersEta_
 
std::vector< double > parametersPhi_
 
std::vector< double > parametersTurnOn_
 
std::string recMuonCut_
 
edm::EDGetTokenT< reco::MuonCollectionrecMuonLabel_
 
StringCutObjectSelector< reco::Muon > * recMuonSelector_
 
std::vector< std::string > stepLabels_
 

Detailed Description

Generate histograms for muon trigger efficiencies Documentation available on the CMS TWiki: https://twiki.cern.ch/twiki/bin/view/CMS/MuonHLTOfflinePerformance

Author
J. Klukas, M. Vander Donckt, J. Alcaraz

Definition at line 52 of file HLTMuonPlotter.h.

Member Typedef Documentation

◆ DQMStore

Definition at line 54 of file HLTMuonPlotter.h.

◆ MonitorElement

Definition at line 55 of file HLTMuonPlotter.h.

Constructor & Destructor Documentation

◆ HLTMuonPlotter()

HLTMuonPlotter::HLTMuonPlotter ( const edm::ParameterSet ,
std::string  ,
const std::vector< std::string > &  ,
const std::vector< std::string > &  ,
const std::tuple< edm::EDGetTokenT< trigger::TriggerEventWithRefs >, edm::EDGetTokenT< reco::GenParticleCollection >, edm::EDGetTokenT< reco::MuonCollection >> &   
)

Definition at line 27 of file HLTMuonPlotter.cc.

34  :
35 
36  l1Matcher_(pset) {
37  hltPath_ = hltPath;
38  moduleLabels_ = moduleLabels;
39  stepLabels_ = stepLabels;
40  hltProcessName_ = pset.getParameter<string>("hltProcessName");
41 
42  cutsDr_ = pset.getParameter<vector<double>>("cutsDr");
43 
44  parametersEta_ = pset.getParameter<vector<double>>("parametersEta");
45  parametersPhi_ = pset.getParameter<vector<double>>("parametersPhi");
46  parametersTurnOn_ = pset.getParameter<vector<double>>("parametersTurnOn");
47 
48  genMuonCut_ = pset.getParameter<string>("genMuonCut");
49  recMuonCut_ = pset.getParameter<string>("recMuonCut");
50 
51  genMuonSelector_ = nullptr;
52  recMuonSelector_ = nullptr;
53 
54  // set tokens
55  hltTriggerSummaryRAW_ = std::get<0>(tokens);
56  genParticleLabel_ = std::get<1>(tokens);
57  recMuonLabel_ = std::get<2>(tokens);
58 }

References cutsDr_, genMuonCut_, genMuonSelector_, genParticleLabel_, zMuMuMuonUserData::hltPath, hltPath_, hltProcessName_, hltTriggerSummaryRAW_, moduleLabels_, parametersEta_, parametersPhi_, parametersTurnOn_, muonDTDigis_cfi::pset, recMuonCut_, recMuonLabel_, recMuonSelector_, and stepLabels_.

◆ ~HLTMuonPlotter()

HLTMuonPlotter::~HLTMuonPlotter ( )
inline

Definition at line 65 of file HLTMuonPlotter.h.

65  {
66  delete genMuonSelector_;
67  delete recMuonSelector_;
68  }

References genMuonSelector_, and recMuonSelector_.

Member Function Documentation

◆ analyze()

void HLTMuonPlotter::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)

Definition at line 110 of file HLTMuonPlotter.cc.

110  {
111  static int eventNumber = 0;
112  eventNumber++;
113  LogTrace("HLTMuonVal") << "In HLTMuonPlotter::analyze, "
114  << "Event: " << eventNumber;
115 
116  // cout << hltPath_ << endl;
117  // for (size_t i = 0; i < moduleLabels_.size(); i++)
118  // cout << " " << moduleLabels_[i] << endl;
119 
120  Handle<TriggerEventWithRefs> rawTriggerEvent;
121  Handle<MuonCollection> recMuons;
123 
124  iEvent.getByToken(hltTriggerSummaryRAW_, rawTriggerEvent);
125  if (rawTriggerEvent.failedToGet()) {
126  LogError("HLTMuonVal") << "No trigger summary found";
127  return;
128  }
129  iEvent.getByToken(recMuonLabel_, recMuons);
131 
132  vector<string> sources;
133  if (genParticles.isValid())
134  sources.push_back("gen");
135  if (recMuons.isValid())
136  sources.push_back("rec");
137 
138  for (size_t sourceNo = 0; sourceNo < sources.size(); sourceNo++) {
139  string source = sources[sourceNo];
140 
141  // If this is the first event, initialize selectors
142  if (!genMuonSelector_)
144  if (!recMuonSelector_)
146 
147  // Make each good gen/rec muon into the base cand for a MatchStruct
148  vector<MatchStruct> matches;
149  if (source == "gen" && genParticles.isValid())
150  for (size_t i = 0; i < genParticles->size(); i++)
151  if ((*genMuonSelector_)(genParticles->at(i)))
152  matches.push_back(MatchStruct(&genParticles->at(i)));
153  if (source == "rec" && recMuons.isValid())
154  for (size_t i = 0; i < recMuons->size(); i++)
155  if ((*recMuonSelector_)(recMuons->at(i)))
156  matches.push_back(MatchStruct(&recMuons->at(i)));
157 
158  // Sort the MatchStructs by pT for later filling of turn-on curve
159  sort(matches.begin(), matches.end(), matchesByDescendingPt());
160 
161  const bool isDoubleMuonPath = (hltPath_.find("Double") != string::npos);
162  const size_t nFilters = moduleLabels_.size();
163  const size_t nSteps = stepLabels_.size();
164  const size_t nStepsHlt = nSteps - 2;
165  const int nObjectsToPassPath = (isDoubleMuonPath) ? 2 : 1;
166  l1t::MuonVectorRef candsL1;
167  vector<vector<RecoChargedCandidateRef>> refsHlt(nStepsHlt);
168  vector<vector<const RecoChargedCandidate *>> candsHlt(nStepsHlt);
169 
170  for (size_t i = 0; i < nFilters; i++) {
171  const int hltStep = i - 1;
173  size_t iFilter = rawTriggerEvent->filterIndex(tag);
174  if (iFilter < rawTriggerEvent->size()) {
175  if (i == 0)
176  rawTriggerEvent->getObjects(iFilter, TriggerL1Mu, candsL1);
177  else
178  rawTriggerEvent->getObjects(iFilter, TriggerMuon, refsHlt[hltStep]);
179  } else
180  LogTrace("HLTMuonVal") << "No collection with label " << tag;
181  }
182  for (size_t i = 0; i < nStepsHlt; i++)
183  for (size_t j = 0; j < refsHlt[i].size(); j++)
184  if (refsHlt[i][j].isAvailable()) {
185  candsHlt[i].push_back(&*refsHlt[i][j]);
186  } else {
187  LogWarning("HLTMuonPlotter") << "Ref refsHlt[i][j]: product not available " << i << " " << j;
188  }
189 
190  // Add trigger objects to the MatchStructs
191  findMatches(matches, candsL1, candsHlt);
192 
193  vector<size_t> matchesInEtaRange;
194  vector<bool> hasMatch(matches.size(), true);
195 
196  for (size_t step = 0; step < nSteps; step++) {
197  size_t hltStep = (step >= 2) ? step - 2 : 0;
198  if (nSteps == 6)
199  hltStep = hltStep - 1; // case of the tracker muon (it has no L2)
200  size_t level = 0;
201  if ((stepLabels_[step].find("L3TkIso") != string::npos) || (stepLabels_[step].find("TkTkIso") != string::npos))
202  level = 6;
203  else if ((stepLabels_[step].find("L3HcalIso") != string::npos) ||
204  (stepLabels_[step].find("TkEcalIso") != string::npos))
205  level = 5;
206  else if ((stepLabels_[step].find("L3EcalIso") != string::npos) ||
207  (stepLabels_[step].find("TkEcalIso") != string::npos))
208  level = 4;
209  else if ((stepLabels_[step].find("L3") != string::npos) || (stepLabels_[step].find("Tk") != string::npos))
210  level = 3;
211  else if (stepLabels_[step].find("L2") != string::npos)
212  level = 2;
213  else if (stepLabels_[step].find("L1") != string::npos)
214  level = 1;
215 
216  for (size_t j = 0; j < matches.size(); j++) {
217  if (level == 0) {
218  if (fabs(matches[j].candBase->eta()) < cutMaxEta_)
219  matchesInEtaRange.push_back(j);
220  } else if (level == 1) {
221  if (matches[j].candL1 == nullptr)
222  hasMatch[j] = false;
223  } else if (level >= 2) {
224  if (matches[j].candHlt[hltStep] == nullptr)
225  hasMatch[j] = false;
226  else if (!hasMatch[j]) {
227  LogTrace("HLTMuonVal") << "Match found for HLT step " << hltStep << " of " << nStepsHlt
228  << " without previous match!";
229  break;
230  }
231  }
232  }
233 
234  if (std::count(hasMatch.begin(), hasMatch.end(), true) < nObjectsToPassPath)
235  break;
236 
237  string pre = source + "Pass";
238  string post = "_" + stepLabels_[step];
239 
240  for (size_t j = 0; j < matches.size(); j++) {
241  float pt = matches[j].candBase->pt();
242  float eta = matches[j].candBase->eta();
243  float phi = matches[j].candBase->phi();
244  if (hasMatch[j]) {
245  if (!matchesInEtaRange.empty() && j == matchesInEtaRange[0])
246  elements_[pre + "MaxPt1" + post]->Fill(pt);
247  if (matchesInEtaRange.size() >= 2 && j == matchesInEtaRange[1])
248  elements_[pre + "MaxPt2" + post]->Fill(pt);
249  if (pt > cutMinPt_) {
250  elements_[pre + "Eta" + post]->Fill(eta);
251  if (fabs(eta) < cutMaxEta_)
252  elements_[pre + "Phi" + post]->Fill(phi);
253  }
254  }
255  }
256  }
257 
258  } // End loop over sources
259 }

References KineDebug3::count(), cutMaxEta_, cutMinPt_, elements_, PVValHelper::eta, edm::HandleBase::failedToGet(), HcalObjRepresent::Fill(), trigger::TriggerEventWithRefs::filterIndex(), spr::find(), findMatches(), genMuonCut_, genMuonSelector_, genParticleLabel_, genParticles2HepMC_cfi::genParticles, trigger::TriggerEventWithRefs::getObjects(), hltPath_, hltProcessName_, hltTriggerSummaryRAW_, mps_fire::i, iEvent, HLT_2018_cff::InputTag, edm::HandleBase::isValid(), dqmiolumiharvest::j, personalPlayback::level, LogTrace, patCandidatesForDimuonsSequences_cff::matches, moduleLabels_, phi, DiDispStaMuonMonitor_cfi::pt, recMuonCut_, recMuonLabel_, recMuonSelector_, findQualityFiles::size, source, CalibrationSummaryClient_cfi::sources, stepLabels_, GlobalPosition_Frontier_DevDB_cff::tag, trigger::TriggerL1Mu, and trigger::TriggerMuon.

◆ analyzePath()

void HLTMuonPlotter::analyzePath ( const edm::Event ,
const std::string &  ,
const std::string &  ,
const std::vector< MatchStruct > &  ,
edm::Handle< trigger::TriggerEventWithRefs  
)
private

◆ beginJob()

void HLTMuonPlotter::beginJob ( void  )

Definition at line 60 of file HLTMuonPlotter.cc.

60 {}

◆ beginRun()

void HLTMuonPlotter::beginRun ( DQMStore::IBooker iBooker,
const edm::Run iRun,
const edm::EventSetup iSetup 
)

Definition at line 62 of file HLTMuonPlotter.cc.

62  {
63  static int runNumber = 0;
64  runNumber++;
65 
66  l1Matcher_.init(iSetup);
67 
68  cutMaxEta_ = 2.4;
69  if (hltPath_.find("eta2p1") != string::npos)
70  cutMaxEta_ = 2.1;
71 
72  // Choose a pT cut for gen/rec muons based on the pT cut in the hltPath_
73  unsigned int threshold = 0;
74  TPRegexp ptRegexp("Mu([0-9]+)");
75  TObjArray *regexArray = ptRegexp.MatchS(hltPath_);
76  if (regexArray->GetEntriesFast() == 2) {
77  threshold = atoi(((TObjString *)regexArray->At(1))->GetString());
78  }
79  delete regexArray;
80  // We select a whole number min pT cut slightly above the hltPath_'s final
81  // pt threshold, then subtract a bit to let through particle gun muons with
82  // exact integer pT:
83  cutMinPt_ = ceil(threshold * 1.1) - 0.01;
84  if (cutMinPt_ < 0.)
85  cutMinPt_ = 0.;
86 
87  string baseDir = "HLT/Muon/Distributions/";
88  iBooker.setCurrentFolder(baseDir + hltPath_);
89 
90  vector<string> sources(2);
91  sources[0] = "gen";
92  sources[1] = "rec";
93 
94  elements_["CutMinPt"] = iBooker.bookFloat("CutMinPt");
95  elements_["CutMaxEta"] = iBooker.bookFloat("CutMaxEta");
96  elements_["CutMinPt"]->Fill(cutMinPt_);
97  elements_["CutMaxEta"]->Fill(cutMaxEta_);
98 
99  for (size_t i = 0; i < sources.size(); i++) {
100  string source = sources[i];
101  for (size_t j = 0; j < stepLabels_.size(); j++) {
102  bookHist(iBooker, hltPath_, stepLabels_[j], source, "Eta");
103  bookHist(iBooker, hltPath_, stepLabels_[j], source, "Phi");
104  bookHist(iBooker, hltPath_, stepLabels_[j], source, "MaxPt1");
105  bookHist(iBooker, hltPath_, stepLabels_[j], source, "MaxPt2");
106  }
107  }
108 }

References ALCARECODTCalibSynchDQM_cff::baseDir, dqm::implementation::IBooker::bookFloat(), bookHist(), reco::ceil(), cutMaxEta_, cutMinPt_, elements_, hltPath_, mps_fire::i, L1MuonMatcherAlgo::init(), dqmiolumiharvest::j, l1Matcher_, convertSQLiteXML::runNumber, dqm::implementation::NavigatorBase::setCurrentFolder(), source, CalibrationSummaryClient_cfi::sources, stepLabels_, and remoteMonitoring_LED_IterMethod_cfg::threshold.

◆ bookHist()

void HLTMuonPlotter::bookHist ( DQMStore::IBooker ,
std::string  ,
std::string  ,
std::string  ,
std::string   
)
private

Definition at line 350 of file HLTMuonPlotter.cc.

350  {
351  string sourceUpper = source;
352  sourceUpper[0] = toupper(sourceUpper[0]);
353  string name = source + "Pass" + type + "_" + label;
354  TH1F *h;
355 
356  if (type.find("MaxPt") != string::npos) {
357  string desc = (type == "MaxPt1") ? "Leading" : "Next-to-Leading";
358  string title = "pT of " + desc + " " + sourceUpper + " Muon " + "matched to " + label;
359  const size_t nBins = parametersTurnOn_.size() - 1;
360  float *edges = new float[nBins + 1];
361  for (size_t i = 0; i < nBins + 1; i++)
363  h = new TH1F(name.c_str(), title.c_str(), nBins, edges);
364  }
365 
366  else {
367  string symbol = (type == "Eta") ? "#eta" : "#phi";
368  string title = symbol + " of " + sourceUpper + " Muons " + "matched to " + label;
369  vector<double> params = (type == "Eta") ? parametersEta_ : parametersPhi_;
370  int nBins = (int)params[0];
371  double min = params[1];
372  double max = params[2];
373  h = new TH1F(name.c_str(), title.c_str(), nBins, min, max);
374  }
375 
376  h->Sumw2();
377  elements_[name] = iBooker.book1D(name, h);
378  delete h;
379 }

References dqm::implementation::IBooker::book1D(), SelectiveReadoutTask_cfi::edges, elements_, h, mps_fire::i, createfilelist::int, label, SiStripPI::max, min(), Skims_PA_cff::name, seedmultiplicitymonitor_newtracking_cfi::nBins, parametersEta_, parametersPhi_, parametersTurnOn_, CalibrationSummaryClient_cfi::params, source, and overlapproblemtsosanalyzer_cfi::title.

Referenced by beginRun().

◆ findMatches()

void HLTMuonPlotter::findMatches ( std::vector< MatchStruct > &  matches,
const l1t::MuonVectorRef candsL1,
const std::vector< std::vector< const reco::RecoChargedCandidate * >> &  candsHlt 
)
private

Definition at line 280 of file HLTMuonPlotter.cc.

282  {
283  set<size_t>::iterator it;
284 
285  set<size_t> indicesL1;
286  for (size_t i = 0; i < candsL1.size(); i++)
287  indicesL1.insert(i);
288 
289  vector<set<size_t>> indicesHlt(candsHlt.size());
290  for (size_t i = 0; i < candsHlt.size(); i++)
291  for (size_t j = 0; j < candsHlt[i].size(); j++)
292  indicesHlt[i].insert(j);
293 
294  for (size_t i = 0; i < matches.size(); i++) {
295  const Candidate *cand = matches[i].candBase;
296 
297  double bestDeltaR = cutsDr_[0];
298  size_t bestMatch = kNull;
299  for (it = indicesL1.begin(); it != indicesL1.end(); it++) {
300  if (candsL1[*it].isAvailable()) {
301  double dR = deltaR(cand->eta(), cand->phi(), candsL1[*it]->eta(), candsL1[*it]->phi());
302  if (dR < bestDeltaR) {
303  bestMatch = *it;
304  bestDeltaR = dR;
305  }
306  // TrajectoryStateOnSurface propagated;
307  // float dR = 999., dPhi = 999.;
308  // bool isValid = l1Matcher_.match(* cand, * candsL1[*it],
309  // dR, dPhi, propagated);
310  // if (isValid && dR < bestDeltaR) {
311  // bestMatch = *it;
312  // bestDeltaR = dR;
313  // }
314  } else {
315  LogWarning("HLTMuonPlotter") << "Ref candsL1[*it]: product not available " << *it;
316  }
317  }
318 
319  if (bestMatch != kNull)
320  matches[i].candL1 = &*candsL1[bestMatch];
321  indicesL1.erase(bestMatch);
322 
323  matches[i].candHlt.assign(candsHlt.size(), nullptr);
324  for (size_t j = 0; j < candsHlt.size(); j++) {
325  size_t level = (candsHlt.size() == 4) ? (j < 2) ? 2 : 3 : (candsHlt.size() == 2) ? (j < 1) ? 2 : 3 : 2;
326  bestDeltaR = cutsDr_[level - 2];
327  bestMatch = kNull;
328  for (it = indicesHlt[j].begin(); it != indicesHlt[j].end(); it++) {
329  double dR = deltaR(cand->eta(), cand->phi(), candsHlt[j][*it]->eta(), candsHlt[j][*it]->phi());
330  if (dR < bestDeltaR) {
331  bestMatch = *it;
332  bestDeltaR = dR;
333  }
334  }
335  if (bestMatch != kNull)
336  matches[i].candHlt[j] = candsHlt[j][bestMatch];
337  indicesHlt[j].erase(bestMatch);
338  }
339 
340  // cout << " Muon: " << cand->eta() << ", ";
341  // if (matches[i].candL1) cout << matches[i].candL1->eta() << ", ";
342  // else cout << "none, ";
343  // for (size_t j = 0; j < candsHlt.size(); j++)
344  // if (matches[i].candHlt[j]) cout << matches[i].candHlt[j]->eta() <<
345  // ", "; else cout << "none, ";
346  // cout << endl;
347  }
348 }

References begin, deltar::bestMatch(), cutsDr_, PbPb_ZMuSkimMuonDPG_cff::deltaR, HGC3DClusterGenMatchSelector_cfi::dR, mps_fire::i, edm::eventsetup::heterocontainer::insert(), dqmiolumiharvest::j, kNull, personalPlayback::level, and patCandidatesForDimuonsSequences_cff::matches.

Referenced by analyze().

◆ getTokens()

Definition at line 264 of file HLTMuonPlotter.cc.

264  {
266  iC.consumes<TriggerEventWithRefs>(edm::InputTag("hltTriggerSummaryRAW"));
268  iC.consumes<GenParticleCollection>(pset.getParameter<string>("genParticleLabel"));
270  iC.consumes<MuonCollection>(pset.getParameter<string>("recMuonLabel"));
271 
272  std::tuple<edm::EDGetTokenT<trigger::TriggerEventWithRefs>,
275  myTuple(_hltTriggerSummaryRAW, _genParticleLabel, _recMuonLabel);
276 
277  return (myTuple);
278 }

References HLT_2018_cff::InputTag, and muonDTDigis_cfi::pset.

Referenced by HLTMuonValidator::HLTMuonValidator().

Member Data Documentation

◆ cutMaxEta_

double HLTMuonPlotter::cutMaxEta_
private

Definition at line 124 of file HLTMuonPlotter.h.

Referenced by analyze(), and beginRun().

◆ cutMinPt_

double HLTMuonPlotter::cutMinPt_
private

Definition at line 123 of file HLTMuonPlotter.h.

Referenced by analyze(), and beginRun().

◆ cutMotherId_

unsigned int HLTMuonPlotter::cutMotherId_
private

Definition at line 125 of file HLTMuonPlotter.h.

◆ cutsDr_

std::vector<double> HLTMuonPlotter::cutsDr_
private

Definition at line 126 of file HLTMuonPlotter.h.

Referenced by findMatches(), and HLTMuonPlotter().

◆ elements_

std::map<std::string, MonitorElement *> HLTMuonPlotter::elements_
private

Definition at line 135 of file HLTMuonPlotter.h.

Referenced by analyze(), beginRun(), and bookHist().

◆ genMuonCut_

std::string HLTMuonPlotter::genMuonCut_
private

Definition at line 127 of file HLTMuonPlotter.h.

Referenced by analyze(), and HLTMuonPlotter().

◆ genMuonSelector_

StringCutObjectSelector<reco::GenParticle>* HLTMuonPlotter::genMuonSelector_
private

Definition at line 130 of file HLTMuonPlotter.h.

Referenced by analyze(), HLTMuonPlotter(), and ~HLTMuonPlotter().

◆ genParticleLabel_

edm::EDGetTokenT<reco::GenParticleCollection> HLTMuonPlotter::genParticleLabel_
private

Definition at line 116 of file HLTMuonPlotter.h.

Referenced by analyze(), and HLTMuonPlotter().

◆ hltPath_

std::string HLTMuonPlotter::hltPath_
private

Definition at line 109 of file HLTMuonPlotter.h.

Referenced by analyze(), beginRun(), and HLTMuonPlotter().

◆ hltProcessName_

std::string HLTMuonPlotter::hltProcessName_
private

Definition at line 110 of file HLTMuonPlotter.h.

Referenced by analyze(), and HLTMuonPlotter().

◆ hltTriggerSummaryRAW_

edm::EDGetTokenT<trigger::TriggerEventWithRefs> HLTMuonPlotter::hltTriggerSummaryRAW_
private

Definition at line 115 of file HLTMuonPlotter.h.

Referenced by analyze(), and HLTMuonPlotter().

◆ l1Matcher_

L1MuonMatcherAlgo HLTMuonPlotter::l1Matcher_
private

Definition at line 133 of file HLTMuonPlotter.h.

Referenced by beginRun().

◆ moduleLabels_

std::vector<std::string> HLTMuonPlotter::moduleLabels_
private

Definition at line 112 of file HLTMuonPlotter.h.

Referenced by analyze(), and HLTMuonPlotter().

◆ parametersEta_

std::vector<double> HLTMuonPlotter::parametersEta_
private

Definition at line 119 of file HLTMuonPlotter.h.

Referenced by bookHist(), and HLTMuonPlotter().

◆ parametersPhi_

std::vector<double> HLTMuonPlotter::parametersPhi_
private

Definition at line 120 of file HLTMuonPlotter.h.

Referenced by bookHist(), and HLTMuonPlotter().

◆ parametersTurnOn_

std::vector<double> HLTMuonPlotter::parametersTurnOn_
private

Definition at line 121 of file HLTMuonPlotter.h.

Referenced by bookHist(), and HLTMuonPlotter().

◆ recMuonCut_

std::string HLTMuonPlotter::recMuonCut_
private

Definition at line 128 of file HLTMuonPlotter.h.

Referenced by analyze(), and HLTMuonPlotter().

◆ recMuonLabel_

edm::EDGetTokenT<reco::MuonCollection> HLTMuonPlotter::recMuonLabel_
private

Definition at line 117 of file HLTMuonPlotter.h.

Referenced by analyze(), and HLTMuonPlotter().

◆ recMuonSelector_

StringCutObjectSelector<reco::Muon>* HLTMuonPlotter::recMuonSelector_
private

Definition at line 131 of file HLTMuonPlotter.h.

Referenced by analyze(), HLTMuonPlotter(), and ~HLTMuonPlotter().

◆ stepLabels_

std::vector<std::string> HLTMuonPlotter::stepLabels_
private

Definition at line 113 of file HLTMuonPlotter.h.

Referenced by analyze(), beginRun(), and HLTMuonPlotter().

personalPlayback.level
level
Definition: personalPlayback.py:22
HLTMuonPlotter::parametersEta_
std::vector< double > parametersEta_
Definition: HLTMuonPlotter.h:119
trigger::TriggerEventWithRefs
Definition: TriggerEventWithRefs.h:27
mps_fire.i
i
Definition: mps_fire.py:355
genParticles2HepMC_cfi.genParticles
genParticles
Definition: genParticles2HepMC_cfi.py:4
HLTMuonPlotter::cutMinPt_
double cutMinPt_
Definition: HLTMuonPlotter.h:123
step
step
Definition: StallMonitor.cc:94
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
CalibrationSummaryClient_cfi.params
params
Definition: CalibrationSummaryClient_cfi.py:14
kNull
const unsigned int kNull
Definition: HLTHiggsPlotter.h:42
min
T min(T a, T b)
Definition: MathUtil.h:58
edm::EDGetTokenT< trigger::TriggerEventWithRefs >
h
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
Definition: L1TUtmAlgorithmRcd.h:4
HLTMuonPlotter::moduleLabels_
std::vector< std::string > moduleLabels_
Definition: HLTMuonPlotter.h:112
HLTMuonPlotter::cutMaxEta_
double cutMaxEta_
Definition: HLTMuonPlotter.h:124
reco::GenParticleCollection
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
Definition: GenParticleFwd.h:13
trigger::TriggerEventWithRefs::getObjects
void getObjects(size_type filter, Vids &ids, VRphoton &photons) const
extract Ref<C>s for a specific filter and of specific physics type
Definition: TriggerEventWithRefs.h:329
CalibrationSummaryClient_cfi.sources
sources
Definition: CalibrationSummaryClient_cfi.py:23
ALCARECODTCalibSynchDQM_cff.baseDir
baseDir
Definition: ALCARECODTCalibSynchDQM_cff.py:14
HLTMuonPlotter::hltTriggerSummaryRAW_
edm::EDGetTokenT< trigger::TriggerEventWithRefs > hltTriggerSummaryRAW_
Definition: HLTMuonPlotter.h:115
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
deltar.bestMatch
def bestMatch(object, matchCollection)
Definition: deltar.py:138
edm::Handle
Definition: AssociativeIterator.h:50
matchesByDescendingPt
Helper structure to order MatchStruct.
Definition: MatchStruct.cc:58
HLTMuonPlotter::recMuonCut_
std::string recMuonCut_
Definition: HLTMuonPlotter.h:128
convertSQLiteXML.runNumber
runNumber
Definition: convertSQLiteXML.py:91
h
HLTMuonPlotter::genMuonCut_
std::string genMuonCut_
Definition: HLTMuonPlotter.h:127
reco::ceil
constexpr int32_t ceil(float num)
Definition: constexpr_cmath.h:7
GlobalPosition_Frontier_DevDB_cff.tag
tag
Definition: GlobalPosition_Frontier_DevDB_cff.py:11
PVValHelper::eta
Definition: PVValidationHelpers.h:69
reco::MuonCollection
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
trigger::TriggerMuon
Definition: TriggerTypeDefs.h:68
source
static const std::string source
Definition: EdmProvDump.cc:47
HLTMuonPlotter::stepLabels_
std::vector< std::string > stepLabels_
Definition: HLTMuonPlotter.h:113
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:49
seedmultiplicitymonitor_newtracking_cfi.nBins
nBins
Definition: seedmultiplicitymonitor_newtracking_cfi.py:8
trigger::TriggerEventWithRefs::filterIndex
size_type filterIndex(const edm::InputTag &filterTag) const
index from tag
Definition: TriggerEventWithRefs.h:188
PbPb_ZMuSkimMuonDPG_cff.deltaR
deltaR
Definition: PbPb_ZMuSkimMuonDPG_cff.py:63
MatchStruct
Definition: MatchStruct.cc:23
edm::LogWarning
Definition: MessageLogger.h:141
edm::HandleBase::failedToGet
bool failedToGet() const
Definition: HandleBase.h:72
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
edm::LogError
Definition: MessageLogger.h:183
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
HLTMuonPlotter::hltProcessName_
std::string hltProcessName_
Definition: HLTMuonPlotter.h:110
KineDebug3::count
void count()
Definition: KinematicConstrainedVertexUpdatorT.h:21
trigger::TriggerL1Mu
enum start value shifted to 81 so as to avoid clashes with PDG codes
Definition: TriggerTypeDefs.h:30
cand
Definition: decayParser.h:34
HLTMuonPlotter::recMuonSelector_
StringCutObjectSelector< reco::Muon > * recMuonSelector_
Definition: HLTMuonPlotter.h:131
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
HLTMuonPlotter::genMuonSelector_
StringCutObjectSelector< reco::GenParticle > * genMuonSelector_
Definition: HLTMuonPlotter.h:130
HLTMuonPlotter::genParticleLabel_
edm::EDGetTokenT< reco::GenParticleCollection > genParticleLabel_
Definition: HLTMuonPlotter.h:116
HLTMuonPlotter::recMuonLabel_
edm::EDGetTokenT< reco::MuonCollection > recMuonLabel_
Definition: HLTMuonPlotter.h:117
SelectiveReadoutTask_cfi.edges
edges
Definition: SelectiveReadoutTask_cfi.py:107
HcalObjRepresent::Fill
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
Definition: HcalObjRepresent.h:1053
reco::Candidate
Definition: Candidate.h:27
overlapproblemtsosanalyzer_cfi.title
title
Definition: overlapproblemtsosanalyzer_cfi.py:7
DDAxes::phi
HLTMuonPlotter::l1Matcher_
L1MuonMatcherAlgo l1Matcher_
Definition: HLTMuonPlotter.h:133
type
type
Definition: HCALResponse.h:21
zMuMuMuonUserData.hltPath
hltPath
Definition: zMuMuMuonUserData.py:20
HLTMuonPlotter::cutsDr_
std::vector< double > cutsDr_
Definition: HLTMuonPlotter.h:126
StringCutObjectSelector< reco::GenParticle >
HLTMuonPlotter::elements_
std::map< std::string, MonitorElement * > elements_
Definition: HLTMuonPlotter.h:135
edm::eventsetup::heterocontainer::insert
bool insert(Storage &iStorage, ItemType *iItem, const IdTag &iIdTag)
Definition: HCMethods.h:50
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
l1t::MuonVectorRef
std::vector< MuonRef > MuonVectorRef
Definition: Muon.h:15
patCandidatesForDimuonsSequences_cff.matches
matches
Definition: patCandidatesForDimuonsSequences_cff.py:131
HLTMuonPlotter::bookHist
void bookHist(DQMStore::IBooker &, std::string, std::string, std::string, std::string)
Definition: HLTMuonPlotter.cc:350
HLTMuonPlotter::findMatches
void findMatches(std::vector< MatchStruct > &, const l1t::MuonVectorRef &candsL1, const std::vector< std::vector< const reco::RecoChargedCandidate * >> &)
Definition: HLTMuonPlotter.cc:280
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:671
HGC3DClusterGenMatchSelector_cfi.dR
dR
Definition: HGC3DClusterGenMatchSelector_cfi.py:7
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
remoteMonitoring_LED_IterMethod_cfg.threshold
threshold
Definition: remoteMonitoring_LED_IterMethod_cfg.py:426
edm::InputTag
Definition: InputTag.h:15
begin
#define begin
Definition: vmac.h:32
label
const char * label
Definition: PFTauDecayModeTools.cc:11
HLTMuonPlotter::hltPath_
std::string hltPath_
Definition: HLTMuonPlotter.h:109
L1MuonMatcherAlgo::init
void init(const edm::EventSetup &iSetup)
Definition: L1MuonMatcherAlgo.cc:16
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
HLTMuonPlotter::parametersPhi_
std::vector< double > parametersPhi_
Definition: HLTMuonPlotter.h:120
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
HLTMuonPlotter::parametersTurnOn_
std::vector< double > parametersTurnOn_
Definition: HLTMuonPlotter.h:121