CMS 3D CMS Logo

L1ExtraDQM.cc
Go to the documentation of this file.
1 
15 // this class header
17 
18 // system include files
19 #include <iostream>
20 #include <iomanip>
21 #include <memory>
22 #include <string>
23 
24 // constructor
26  : //
27  m_retrieveL1Extra(paramSet.getParameter<edm::ParameterSet>("L1ExtraInputTags"), consumesCollector()),
28  L1ExtraIsoTauJetSource(paramSet.getParameter<edm::InputTag>("L1ExtraIsoTauJetSource_")),
29  m_dirName(paramSet.getParameter<std::string>("DirName")),
30  m_stage1_layer2_(paramSet.getParameter<bool>("stage1_layer2_")),
31  //
32  m_nrBxInEventGmt(paramSet.getParameter<int>("NrBxInEventGmt")),
33  m_nrBxInEventGct(paramSet.getParameter<int>("NrBxInEventGct")),
34  //
35  m_resetModule(true),
36  m_currentRun(-99),
37  //
38  m_nrEvJob(0),
39  m_nrEvRun(0)
40 
41 {
42  //
43  if ((m_nrBxInEventGmt > 0) && ((m_nrBxInEventGmt % 2) == 0)) {
45 
46  edm::LogInfo("L1ExtraDQM") << "\nWARNING: Number of bunch crossing to be monitored for GMT rounded to: "
47  << m_nrBxInEventGmt << "\n The number must be an odd number!\n"
48  << std::endl;
49  }
50 
51  if ((m_nrBxInEventGct > 0) && ((m_nrBxInEventGct % 2) == 0)) {
53 
54  edm::LogInfo("L1ExtraDQM") << "\nWARNING: Number of bunch crossing to be monitored for GCT rounded to: "
55  << m_nrBxInEventGct << "\n The number must be an odd number!\n"
56  << std::endl;
57  }
58 
59  if (m_stage1_layer2_ == true) {
61  consumes<l1extra::L1JetParticleCollection>(paramSet.getParameter<edm::InputTag>("L1ExtraIsoTauJetSource_"));
62  }
63  //
70  if (m_stage1_layer2_ == true) {
72  }
79 }
80 
81 // destructor
83  // empty
84 }
85 
87  bool bookEta = true;
88  bool bookPhi = true;
89 
90  bool isL1Coll = true;
91 
92  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGmt; ++iBxInEvent) {
93  int bxInEvent = iBxInEvent + (m_nrBxInEventGmt + 1) / 2 - m_nrBxInEventGmt;
94 
95  (m_meAnalysisL1ExtraMuon.at(iBxInEvent))
96  ->fillNrObjects(m_retrieveL1Extra.l1ExtraMuon(), m_retrieveL1Extra.validL1ExtraMuon(), isL1Coll, bxInEvent);
97  (m_meAnalysisL1ExtraMuon.at(iBxInEvent))
98  ->fillPtPhiEta(m_retrieveL1Extra.l1ExtraMuon(),
100  bookPhi,
101  bookEta,
102  isL1Coll,
103  bxInEvent);
104  }
105 }
106 
108  bool bookEta = true;
109  bool bookPhi = true;
110 
111  bool isL1Coll = true;
112 
113  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
114  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
115 
116  (m_meAnalysisL1ExtraIsoEG.at(iBxInEvent))
117  ->fillNrObjects(m_retrieveL1Extra.l1ExtraIsoEG(), m_retrieveL1Extra.validL1ExtraIsoEG(), isL1Coll, bxInEvent);
118  (m_meAnalysisL1ExtraIsoEG.at(iBxInEvent))
119  ->fillPtPhiEta(m_retrieveL1Extra.l1ExtraIsoEG(),
121  bookPhi,
122  bookEta,
123  isL1Coll,
124  bxInEvent);
125  }
126 }
127 
129  bool bookEta = true;
130  bool bookPhi = true;
131 
132  bool isL1Coll = true;
133 
134  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
135  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
136 
137  (m_meAnalysisL1ExtraNoIsoEG.at(iBxInEvent))
138  ->fillNrObjects(
140  (m_meAnalysisL1ExtraNoIsoEG.at(iBxInEvent))
141  ->fillPtPhiEta(m_retrieveL1Extra.l1ExtraNoIsoEG(),
143  bookPhi,
144  bookEta,
145  isL1Coll,
146  bxInEvent);
147  }
148 }
149 
151  bool bookEta = true;
152  bool bookPhi = true;
153 
154  bool isL1Coll = true;
155 
156  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
157  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
158 
159  (m_meAnalysisL1ExtraCenJet.at(iBxInEvent))
160  ->fillNrObjects(m_retrieveL1Extra.l1ExtraCenJet(), m_retrieveL1Extra.validL1ExtraCenJet(), isL1Coll, bxInEvent);
161  (m_meAnalysisL1ExtraCenJet.at(iBxInEvent))
162  ->fillEtPhiEta(m_retrieveL1Extra.l1ExtraCenJet(),
164  bookPhi,
165  bookEta,
166  isL1Coll,
167  bxInEvent);
168  }
169 }
170 
172  bool bookPhi = true;
173  bool bookEta = true;
174 
175  bool isL1Coll = true;
176 
177  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
178  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
179 
180  (m_meAnalysisL1ExtraForJet.at(iBxInEvent))
181  ->fillNrObjects(m_retrieveL1Extra.l1ExtraForJet(), m_retrieveL1Extra.validL1ExtraForJet(), isL1Coll, bxInEvent);
182  (m_meAnalysisL1ExtraForJet.at(iBxInEvent))
183  ->fillEtPhiEta(m_retrieveL1Extra.l1ExtraForJet(),
185  bookPhi,
186  bookEta,
187  isL1Coll,
188  bxInEvent);
189  }
190 }
191 
193  bool bookPhi = true;
194  bool bookEta = true;
195 
196  bool isL1Coll = true;
197 
198  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
199  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
200 
201  (m_meAnalysisL1ExtraTauJet.at(iBxInEvent))
202  ->fillNrObjects(m_retrieveL1Extra.l1ExtraTauJet(), m_retrieveL1Extra.validL1ExtraTauJet(), isL1Coll, bxInEvent);
203  (m_meAnalysisL1ExtraTauJet.at(iBxInEvent))
204  ->fillEtPhiEta(m_retrieveL1Extra.l1ExtraTauJet(),
206  bookPhi,
207  bookEta,
208  isL1Coll,
209  bxInEvent);
210  }
211 }
212 
214  bool bookPhi = true;
215  bool bookEta = true;
216 
217  bool isL1Coll = true;
218 
219  bool m_validL1ExtraIsoTauJet;
220 
222  iEvent.getByToken(m_tagL1ExtraIsoTauJetTok, collL1ExtraIsoTauJet);
223 
224  const l1extra::L1JetParticleCollection* m_l1ExtraIsoTauJet;
225 
226  if (collL1ExtraIsoTauJet.isValid()) {
227  m_validL1ExtraIsoTauJet = true;
228  m_l1ExtraIsoTauJet = collL1ExtraIsoTauJet.product();
229  } else {
230  LogDebug("L1RetrieveL1Extra") << "\n l1extra::L1JetParticleCollection with input tag \n "
231  << "m_tagL1ExtraIsoTauJet"
232  << "\n not found in the event.\n"
233  << "\n Return pointer 0 and false validity tag." << std::endl;
234 
235  m_validL1ExtraIsoTauJet = false;
236  m_l1ExtraIsoTauJet = nullptr;
237  }
238 
239  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
240  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
241  (m_meAnalysisL1ExtraIsoTauJet.at(iBxInEvent))
242  ->fillNrObjects(m_l1ExtraIsoTauJet, m_validL1ExtraIsoTauJet, isL1Coll, bxInEvent);
243  (m_meAnalysisL1ExtraIsoTauJet.at(iBxInEvent))
244  ->fillEtPhiEta(m_l1ExtraIsoTauJet, m_validL1ExtraIsoTauJet, bookPhi, bookEta, isL1Coll, bxInEvent);
245  }
246 }
247 
249  bool isL1Coll = true;
250 
251  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
252  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
253 
254  (m_meAnalysisL1ExtraETT.at(iBxInEvent))
255  ->fillEtTotal(m_retrieveL1Extra.l1ExtraETT(), m_retrieveL1Extra.validL1ExtraETT(), isL1Coll, bxInEvent);
256  }
257 }
258 
260  bool bookPhi = true;
261  bool bookEta = false;
262 
263  bool isL1Coll = true;
264 
265  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
266  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
267 
268  (m_meAnalysisL1ExtraETM.at(iBxInEvent))
269  ->fillEtPhiEta(
270  m_retrieveL1Extra.l1ExtraETM(), m_retrieveL1Extra.validL1ExtraETM(), bookPhi, bookEta, isL1Coll, bxInEvent);
271  }
272 }
273 
275  bool isL1Coll = true;
276 
277  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
278  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
279 
280  (m_meAnalysisL1ExtraHTT.at(iBxInEvent))
281  ->fillEtTotal(m_retrieveL1Extra.l1ExtraHTT(), m_retrieveL1Extra.validL1ExtraHTT(), isL1Coll, bxInEvent);
282  }
283 }
284 
286  bool bookPhi = true;
287  bool bookEta = false;
288 
289  bool isL1Coll = true;
290 
291  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
292  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
293 
294  (m_meAnalysisL1ExtraHTM.at(iBxInEvent))
295  ->fillEtPhiEta(
296  m_retrieveL1Extra.l1ExtraHTM(), m_retrieveL1Extra.validL1ExtraHTM(), bookPhi, bookEta, isL1Coll, bxInEvent);
297  }
298 }
299 
301  bool isL1Coll = true;
302 
303  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
304  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
305 
306  for (int iCount = 0; iCount < l1extra::L1HFRings::kNumRings; ++iCount) {
307  (m_meAnalysisL1ExtraHfBitCounts.at(iBxInEvent))
308  ->fillHfBitCounts(m_retrieveL1Extra.l1ExtraHfBitCounts(),
310  iCount,
311  isL1Coll,
312  bxInEvent);
313  }
314  }
315 }
316 
318  bool isL1Coll = true;
319 
320  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
321  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
322 
323  for (int iCount = 0; iCount < l1extra::L1HFRings::kNumRings; ++iCount) {
324  (m_meAnalysisL1ExtraHfRingEtSums.at(iBxInEvent))
325  ->fillHfRingEtSums(m_retrieveL1Extra.l1ExtraHfRingEtSums(),
327  iCount,
328  isL1Coll,
329  bxInEvent);
330  }
331  }
332 }
333 
334 void L1ExtraDQM::dqmBeginRun(edm::Run const& iRun, edm::EventSetup const& evSetup) {}
335 
337  m_nrEvRun = 0;
338 
339  std::vector<L1GtObject> l1Obj;
340  //const edm::EventSetup& evSetup;
341 
342  // define standard sets of histograms
343 
344  //
345  l1Obj.clear();
346  l1Obj.push_back(Mu);
347  int nrMonElements = 5;
348 
349  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGmt; ++iBxInEvent) {
350  m_meAnalysisL1ExtraMuon.push_back(
352 
353  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
354  int bxInEventHex = (bxInEvent + 16) % 16;
355 
356  std::stringstream ss;
357  std::string bxInEventHexString;
358  ss << std::uppercase << std::hex << bxInEventHex;
359  ss >> bxInEventHexString;
360 
361  ibooker.setCurrentFolder(m_dirName + "/BxInEvent_" + bxInEventHexString);
362 
363  (m_meAnalysisL1ExtraMuon.at(iBxInEvent))->bookhistograms(evSetup, ibooker, "L1_Mu", l1Obj);
364  }
365 
366  //
367  l1Obj.clear();
368  l1Obj.push_back(IsoEG);
369  nrMonElements = 4;
370 
371  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
372  m_meAnalysisL1ExtraIsoEG.push_back(
374 
375  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
376  int bxInEventHex = (bxInEvent + 16) % 16;
377 
378  std::stringstream ss;
379  std::string bxInEventHexString;
380  ss << std::uppercase << std::hex << bxInEventHex;
381  ss >> bxInEventHexString;
382 
383  ibooker.setCurrentFolder(m_dirName + "/BxInEvent_" + bxInEventHexString);
384 
385  (m_meAnalysisL1ExtraIsoEG.at(iBxInEvent))->bookhistograms(evSetup, ibooker, "L1_IsoEG", l1Obj);
386  }
387 
388  //
389  l1Obj.clear();
390  l1Obj.push_back(NoIsoEG);
391  nrMonElements = 4;
392 
393  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
394  m_meAnalysisL1ExtraNoIsoEG.push_back(
396 
397  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
398  int bxInEventHex = (bxInEvent + 16) % 16;
399 
400  std::stringstream ss;
401  std::string bxInEventHexString;
402  ss << std::uppercase << std::hex << bxInEventHex;
403  ss >> bxInEventHexString;
404 
405  //if (m_dbe) {
406  ibooker.setCurrentFolder(m_dirName + "/BxInEvent_" + bxInEventHexString);
407  //}
408 
409  (m_meAnalysisL1ExtraNoIsoEG.at(iBxInEvent))->bookhistograms(evSetup, ibooker, "L1_NoIsoEG", l1Obj);
410  }
411 
412  //
413  l1Obj.clear();
414  l1Obj.push_back(CenJet);
415  nrMonElements = 4;
416 
417  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
418  m_meAnalysisL1ExtraCenJet.push_back(
420 
421  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
422  int bxInEventHex = (bxInEvent + 16) % 16;
423 
424  std::stringstream ss;
425  std::string bxInEventHexString;
426  ss << std::uppercase << std::hex << bxInEventHex;
427  ss >> bxInEventHexString;
428 
429  ibooker.setCurrentFolder(m_dirName + "/BxInEvent_" + bxInEventHexString);
430 
431  (m_meAnalysisL1ExtraCenJet.at(iBxInEvent))->bookhistograms(evSetup, ibooker, "L1_CenJet", l1Obj);
432  }
433 
434  //
435  l1Obj.clear();
436  l1Obj.push_back(ForJet);
437 
438  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
439  m_meAnalysisL1ExtraForJet.push_back(
441 
442  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
443  int bxInEventHex = (bxInEvent + 16) % 16;
444 
445  std::stringstream ss;
446  std::string bxInEventHexString;
447  ss << std::uppercase << std::hex << bxInEventHex;
448  ss >> bxInEventHexString;
449 
450  ibooker.setCurrentFolder(m_dirName + "/BxInEvent_" + bxInEventHexString);
451 
452  (m_meAnalysisL1ExtraForJet.at(iBxInEvent))->bookhistograms(evSetup, ibooker, "L1_ForJet", l1Obj);
453  }
454 
455  //
456  l1Obj.clear();
457  l1Obj.push_back(TauJet);
458 
459  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
460  m_meAnalysisL1ExtraTauJet.push_back(
462 
463  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
464  int bxInEventHex = (bxInEvent + 16) % 16;
465 
466  std::stringstream ss;
467  std::string bxInEventHexString;
468  ss << std::uppercase << std::hex << bxInEventHex;
469  ss >> bxInEventHexString;
470 
471  ibooker.setCurrentFolder(m_dirName + "/BxInEvent_" + bxInEventHexString);
472 
473  (m_meAnalysisL1ExtraTauJet.at(iBxInEvent))->bookhistograms(evSetup, ibooker, "L1_TauJet", l1Obj);
474  }
475 
476  if (m_stage1_layer2_ == true) {
477  l1Obj.clear();
478  l1Obj.push_back(TauJet);
479  nrMonElements = 4;
480 
481  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
484 
485  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
486  int bxInEventHex = (bxInEvent + 16) % 16;
487 
488  std::stringstream ss;
489  std::string bxInEventHexString;
490  ss << std::uppercase << std::hex << bxInEventHex;
491  ss >> bxInEventHexString;
492 
493  ibooker.setCurrentFolder(m_dirName + "/BxInEvent_" + bxInEventHexString);
494 
495  (m_meAnalysisL1ExtraIsoTauJet.at(iBxInEvent))->bookhistograms(evSetup, ibooker, "L1_IsoTauJet", l1Obj);
496  }
497  }
498 
499  //
500  l1Obj.clear();
501  l1Obj.push_back(ETT);
502  nrMonElements = 1;
503 
504  bool bookPhi = false;
505  bool bookEta = false;
506 
507  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
508  m_meAnalysisL1ExtraETT.push_back(
510 
511  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
512  int bxInEventHex = (bxInEvent + 16) % 16;
513 
514  std::stringstream ss;
515  std::string bxInEventHexString;
516  ss << std::uppercase << std::hex << bxInEventHex;
517  ss >> bxInEventHexString;
518 
519  ibooker.setCurrentFolder(m_dirName + "/BxInEvent_" + bxInEventHexString);
520 
521  (m_meAnalysisL1ExtraETT.at(iBxInEvent))->bookhistograms(evSetup, ibooker, "L1_ETT", l1Obj, bookPhi, bookEta);
522  }
523 
524  //
525  l1Obj.clear();
526  l1Obj.push_back(ETM);
527  nrMonElements = 2;
528 
529  bookPhi = true;
530  bookEta = false;
531 
532  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
533  m_meAnalysisL1ExtraETM.push_back(
535  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
536  int bxInEventHex = (bxInEvent + 16) % 16;
537 
538  std::stringstream ss;
539  std::string bxInEventHexString;
540  ss << std::uppercase << std::hex << bxInEventHex;
541  ss >> bxInEventHexString;
542 
543  ibooker.setCurrentFolder(m_dirName + "/BxInEvent_" + bxInEventHexString);
544 
545  (m_meAnalysisL1ExtraETM.at(iBxInEvent))->bookhistograms(evSetup, ibooker, "L1_ETM", l1Obj, bookPhi, bookEta);
546  }
547 
548  //
549  l1Obj.clear();
550  l1Obj.push_back(HTT);
551  nrMonElements = 1;
552 
553  bookPhi = false;
554  bookEta = false;
555 
556  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
557  m_meAnalysisL1ExtraHTT.push_back(
559  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
560  int bxInEventHex = (bxInEvent + 16) % 16;
561 
562  std::stringstream ss;
563  std::string bxInEventHexString;
564  ss << std::uppercase << std::hex << bxInEventHex;
565  ss >> bxInEventHexString;
566 
567  ibooker.setCurrentFolder(m_dirName + "/BxInEvent_" + bxInEventHexString);
568 
569  (m_meAnalysisL1ExtraHTT.at(iBxInEvent))->bookhistograms(evSetup, ibooker, "L1_HTT", l1Obj, bookPhi, bookEta);
570  }
571 
572  //
573  l1Obj.clear();
574  l1Obj.push_back(HTM);
575  nrMonElements = 2;
576 
577  bookPhi = true;
578  bookEta = false;
579 
580  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
581  m_meAnalysisL1ExtraHTM.push_back(
583  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
584  int bxInEventHex = (bxInEvent + 16) % 16;
585 
586  std::stringstream ss;
587  std::string bxInEventHexString;
588  ss << std::uppercase << std::hex << bxInEventHex;
589  ss >> bxInEventHexString;
590 
591  ibooker.setCurrentFolder(m_dirName + "/BxInEvent_" + bxInEventHexString);
592 
593  if (m_stage1_layer2_ == false) {
594  (m_meAnalysisL1ExtraHTM.at(iBxInEvent))->bookhistograms(evSetup, ibooker, "L1_HTM", l1Obj, bookPhi, bookEta);
595  } else {
596  (m_meAnalysisL1ExtraHTM.at(iBxInEvent))->bookhistograms(evSetup, ibooker, "L1_HTMHTT", l1Obj, bookPhi, bookEta);
597  }
598  }
599 
600  //
601  l1Obj.clear();
602  l1Obj.push_back(HfBitCounts);
603  nrMonElements = 1;
604 
605  bookPhi = false;
606  bookEta = false;
607 
608  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
611  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
612  int bxInEventHex = (bxInEvent + 16) % 16;
613 
614  std::stringstream ss;
615  std::string bxInEventHexString;
616  ss << std::uppercase << std::hex << bxInEventHex;
617  ss >> bxInEventHexString;
618 
619  ibooker.setCurrentFolder(m_dirName + "/BxInEvent_" + bxInEventHexString);
620 
621  (m_meAnalysisL1ExtraHfBitCounts.at(iBxInEvent))
622  ->bookhistograms(evSetup, ibooker, "L1_HfBitCounts", l1Obj, bookPhi, bookEta);
623  }
624 
625  //
626  l1Obj.clear();
627  l1Obj.push_back(HfRingEtSums);
628  nrMonElements = 1;
629 
630  bookPhi = false;
631  bookEta = false;
632 
633  for (int iBxInEvent = 0; iBxInEvent < m_nrBxInEventGct; ++iBxInEvent) {
636  int bxInEvent = iBxInEvent + (m_nrBxInEventGct + 1) / 2 - m_nrBxInEventGct;
637  int bxInEventHex = (bxInEvent + 16) % 16;
638 
639  std::stringstream ss;
640  std::string bxInEventHexString;
641  ss << std::uppercase << std::hex << bxInEventHex;
642  ss >> bxInEventHexString;
643 
644  ibooker.setCurrentFolder(m_dirName + "/BxInEvent_" + bxInEventHexString);
645 
646  if (m_stage1_layer2_ == false) {
647  (m_meAnalysisL1ExtraHfRingEtSums.at(iBxInEvent))
648  ->bookhistograms(evSetup, ibooker, "L1_HfRingEtSums", l1Obj, bookPhi, bookEta);
649  }
650  if (m_stage1_layer2_ == true) {
651  (m_meAnalysisL1ExtraHfRingEtSums.at(iBxInEvent))
652  ->bookhistograms(evSetup, ibooker, "L1_IsoTau_replace_Hf", l1Obj, bookPhi, bookEta);
653  }
654  }
655 }
656 
657 //
658 void L1ExtraDQM::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) {
659  ++m_nrEvJob;
660  ++m_nrEvRun;
661  //
663  //
664  analyzeL1ExtraMuon(iEvent, evSetup);
665  analyzeL1ExtraIsoEG(iEvent, evSetup);
666  analyzeL1ExtraNoIsoEG(iEvent, evSetup);
667  analyzeL1ExtraCenJet(iEvent, evSetup);
668  analyzeL1ExtraForJet(iEvent, evSetup);
669  analyzeL1ExtraTauJet(iEvent, evSetup);
670  analyzeL1ExtraETT(iEvent, evSetup);
671  analyzeL1ExtraETM(iEvent, evSetup);
672  analyzeL1ExtraHTT(iEvent, evSetup);
673  analyzeL1ExtraHTM(iEvent, evSetup);
676 
677  if (m_stage1_layer2_ == true) {
679  }
680 }
681 
682 void L1ExtraDQM::dqmEndRun(const edm::Run& run, const edm::EventSetup& evSetup) {
683  // delete if event setup has changed only FIXME
684 
686  m_meAnalysisL1ExtraMuon.begin();
687  iterME != m_meAnalysisL1ExtraMuon.end();
688  ++iterME) {
689  delete *iterME;
690  }
691  m_meAnalysisL1ExtraMuon.clear();
692 
694  m_meAnalysisL1ExtraIsoEG.begin();
695  iterME != m_meAnalysisL1ExtraIsoEG.end();
696  ++iterME) {
697  delete *iterME;
698  }
699  m_meAnalysisL1ExtraIsoEG.clear();
700 
703  iterME != m_meAnalysisL1ExtraNoIsoEG.end();
704  ++iterME) {
705  delete *iterME;
706  }
708 
711  iterME != m_meAnalysisL1ExtraCenJet.end();
712  ++iterME) {
713  delete *iterME;
714  }
716 
719  iterME != m_meAnalysisL1ExtraForJet.end();
720  ++iterME) {
721  delete *iterME;
722  }
724 
727  iterME != m_meAnalysisL1ExtraTauJet.end();
728  ++iterME) {
729  delete *iterME;
730  }
732 
734  m_meAnalysisL1ExtraETT.begin();
735  iterME != m_meAnalysisL1ExtraETT.end();
736  ++iterME) {
737  delete *iterME;
738  }
739  m_meAnalysisL1ExtraETT.clear();
740 
742  m_meAnalysisL1ExtraETM.begin();
743  iterME != m_meAnalysisL1ExtraETM.end();
744  ++iterME) {
745  delete *iterME;
746  }
747  m_meAnalysisL1ExtraETM.clear();
748 
750  m_meAnalysisL1ExtraHTT.begin();
751  iterME != m_meAnalysisL1ExtraHTT.end();
752  ++iterME) {
753  delete *iterME;
754  }
755  m_meAnalysisL1ExtraHTT.clear();
756 
758  m_meAnalysisL1ExtraHTM.begin();
759  iterME != m_meAnalysisL1ExtraHTM.end();
760  ++iterME) {
761  delete *iterME;
762  }
763  m_meAnalysisL1ExtraHTM.clear();
764 
767  iterME != m_meAnalysisL1ExtraHfBitCounts.end();
768  ++iterME) {
769  delete *iterME;
770  }
772 
775  iterME != m_meAnalysisL1ExtraHfRingEtSums.end();
776  ++iterME) {
777  delete *iterME;
778  }
780 
781  LogDebug("L1ExtraDQM") << "\n\n endRun: " << run.id()
782  << "\n Number of events analyzed in this run: " << m_nrEvRun
783  << "\n Total number of events analyzed in this job: " << m_nrEvJob << "\n"
784  << std::endl;
785 }
786 
787 // constructor L1ExtraMonElement
788 template <class CollectionType>
790  : m_indexNrObjects(-1),
791  m_indexPt(-1),
792  m_indexEt(-1),
793  m_indexPhi(-1),
794  m_indexEta(-1),
795  m_indexEtTotal(-1),
796  m_indexCharge(-1),
797  m_indexHfBitCounts(-1),
798  m_indexHfRingEtSums(-1) {
799  m_monElement.reserve(nrElements);
800 }
801 
802 // destructor L1ExtraMonElement
803 template <class CollectionType>
805  //empty
806 }
807 
808 template <class CollectionType>
810  DQMStore::IBooker& ibooker,
811  const std::string& l1ExtraObject,
812  const std::vector<L1GtObject>& l1GtObj,
813  const bool bookPhi,
814  const bool bookEta) {
815  // FIXME
816  L1GtObject gtObj = l1GtObj.at(0);
817 
818  //
819  std::string histName;
823 
824  std::string quantity = "";
825 
826  int indexHistogram = -1;
827 
828  if (gtObj == HfBitCounts) {
829  L1GetHistLimits l1GetHistLimits(evSetup);
830  const L1GetHistLimits::L1HistLimits& histLimits = l1GetHistLimits.l1HistLimits(gtObj, quantity);
831 
832  const int histNrBins = histLimits.nrBins;
833  const double histMinValue = histLimits.lowerBinValue;
834  const double histMaxValue = histLimits.upperBinValue;
835 
836  indexHistogram++;
837  m_indexHfBitCounts = indexHistogram;
838 
839  for (int iCount = 0; iCount < l1extra::L1HFRings::kNumRings; ++iCount) {
840  histName = l1ExtraObject + "_Count_" + std::to_string(iCount);
841  histTitle = l1ExtraObject + ": count " + std::to_string(iCount);
842  xAxisTitle = l1ExtraObject;
843  yAxisTitle = "Entries";
844 
845  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBins, histMinValue, histMaxValue));
846  m_monElement[m_indexHfBitCounts + iCount]->setAxisTitle(xAxisTitle, 1);
847  m_monElement[m_indexHfBitCounts + iCount]->setAxisTitle(yAxisTitle, 2);
848  }
849 
850  return;
851  }
852 
853  // number of objects per event
854  if ((gtObj == Mu) || (gtObj == IsoEG) || (gtObj == NoIsoEG) || (gtObj == CenJet) || (gtObj == ForJet) ||
855  (gtObj == TauJet)) {
856  quantity = "NrObjects";
857 
858  L1GetHistLimits l1GetHistLimits(evSetup);
859  const L1GetHistLimits::L1HistLimits& histLimits = l1GetHistLimits.l1HistLimits(gtObj, quantity);
860 
861  const int histNrBins = histLimits.nrBins;
862  const double histMinValue = histLimits.lowerBinValue;
863  const double histMaxValue = histLimits.upperBinValue;
864 
865  histName = l1ExtraObject + "_NrObjectsPerEvent";
866  histTitle = l1ExtraObject + ": number of objects per event";
867  xAxisTitle = "Nr_" + l1ExtraObject;
868  yAxisTitle = "Entries";
869 
870  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBins, histMinValue, histMaxValue));
871  indexHistogram++;
872 
873  m_monElement[indexHistogram]->setAxisTitle(xAxisTitle, 1);
874  m_monElement[indexHistogram]->setAxisTitle(yAxisTitle, 2);
875  m_indexNrObjects = indexHistogram;
876  }
877 
878  // transverse momentum (energy) PT (ET) [GeV]
879 
880  quantity = "ET";
881  std::string quantityLongName = " transverse energy ";
882 
883  if (gtObj == Mu) {
884  quantity = "PT";
885  quantityLongName = " transverse momentum ";
886  }
887 
888  L1GetHistLimits l1GetHistLimits(evSetup);
889  const L1GetHistLimits::L1HistLimits& histLimits = l1GetHistLimits.l1HistLimits(gtObj, quantity);
890 
891  const int histNrBinsET = histLimits.nrBins;
892  const double histMinValueET = histLimits.lowerBinValue;
893  const double histMaxValueET = histLimits.upperBinValue;
894  const std::vector<float>& binThresholdsET = histLimits.binThresholds;
895 
896  float* binThresholdsETf;
897  size_t sizeBinThresholdsET = binThresholdsET.size();
898  binThresholdsETf = new float[sizeBinThresholdsET];
899  copy(binThresholdsET.begin(), binThresholdsET.end(), binThresholdsETf);
900 
901  LogDebug("L1ExtraDQM") << "\n PT/ET histogram for " << l1ExtraObject << "\n histNrBinsET = " << histNrBinsET
902  << "\n histMinValueET = " << histMinValueET << "\n histMaxValueET = " << histMaxValueET
903  << "\n Last bin value represents the upper limit of the histogram" << std::endl;
904  for (size_t iBin = 0; iBin < sizeBinThresholdsET; ++iBin) {
905  LogTrace("L1ExtraDQM") << "Bin " << iBin << ": " << quantity << " = " << binThresholdsETf[iBin] << " GeV"
906  << std::endl;
907  }
908 
909  histName = l1ExtraObject + "_" + quantity;
910  histTitle = l1ExtraObject + ":" + quantityLongName + quantity + " [GeV]";
911  xAxisTitle = l1ExtraObject + "_" + quantity + " [GeV]";
912  yAxisTitle = "Entries";
913 
914  if (gtObj == HfRingEtSums) {
915  indexHistogram++;
916  m_indexHfRingEtSums = indexHistogram;
917 
918  for (int iCount = 0; iCount < l1extra::L1HFRings::kNumRings; ++iCount) {
919  histName = l1ExtraObject + "_Count_" + std::to_string(iCount);
920  histTitle = l1ExtraObject + ": count " + std::to_string(iCount);
921  xAxisTitle = l1ExtraObject;
922  yAxisTitle = "Entries";
923 
924  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBinsET, binThresholdsETf));
925 
926  m_monElement[m_indexHfRingEtSums + iCount]->setAxisTitle(xAxisTitle, 1);
927  m_monElement[m_indexHfRingEtSums + iCount]->setAxisTitle(yAxisTitle, 2);
928  }
929 
930  } else {
931  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBinsET, binThresholdsETf));
932  indexHistogram++;
933 
934  m_monElement[indexHistogram]->setAxisTitle(xAxisTitle, 1);
935  m_monElement[indexHistogram]->setAxisTitle(yAxisTitle, 2);
936  m_indexPt = indexHistogram;
937  m_indexEt = indexHistogram;
938  m_indexEtTotal = indexHistogram;
939  }
940 
941  delete[] binThresholdsETf;
942 
943  //
944 
945  if (bookPhi) {
946  quantity = "phi";
947 
948  // get limits and binning from L1Extra
949  L1GetHistLimits l1GetHistLimits(evSetup);
950  const L1GetHistLimits::L1HistLimits& histLimits = l1GetHistLimits.l1HistLimits(gtObj, quantity);
951 
952  const int histNrBinsPhi = histLimits.nrBins;
953  const double histMinValuePhi = histLimits.lowerBinValue;
954  const double histMaxValuePhi = histLimits.upperBinValue;
955  const std::vector<float>& binThresholdsPhi = histLimits.binThresholds;
956 
957  float* binThresholdsPhif;
958  size_t sizeBinThresholdsPhi = binThresholdsPhi.size();
959  binThresholdsPhif = new float[sizeBinThresholdsPhi];
960  copy(binThresholdsPhi.begin(), binThresholdsPhi.end(), binThresholdsPhif);
961 
962  LogDebug("L1ExtraDQM") << "\n phi histogram for " << l1ExtraObject << "\n histNrBinsPhi = " << histNrBinsPhi
963  << "\n histMinValuePhi = " << histMinValuePhi << "\n histMaxValuePhi = " << histMaxValuePhi
964  << "\n Last bin value represents the upper limit of the histogram" << std::endl;
965  for (size_t iBin = 0; iBin < sizeBinThresholdsPhi; ++iBin) {
966  LogTrace("L1ExtraDQM") << "Bin " << iBin << ": phi = " << binThresholdsPhif[iBin] << " deg" << std::endl;
967  }
968 
969  histName = l1ExtraObject + "_phi";
970  histTitle = l1ExtraObject + ": phi distribution ";
971  xAxisTitle = l1ExtraObject + "_phi [deg]";
972  yAxisTitle = "Entries";
973 
974  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBinsPhi, histMinValuePhi, histMaxValuePhi));
975  indexHistogram++;
976 
977  m_monElement[indexHistogram]->setAxisTitle(xAxisTitle, 1);
978  m_monElement[indexHistogram]->setAxisTitle(yAxisTitle, 2);
979  m_indexPhi = indexHistogram;
980 
981  delete[] binThresholdsPhif;
982  }
983 
984  //
985 
986  if (bookEta) {
987  quantity = "eta";
988 
989  // get limits and binning from L1Extra
990  L1GetHistLimits l1GetHistLimits(evSetup);
991  const L1GetHistLimits::L1HistLimits& histLimits = l1GetHistLimits.l1HistLimits(gtObj, quantity);
992 
993  const int histNrBinsEta = histLimits.nrBins;
994  const double histMinValueEta = histLimits.lowerBinValue;
995  const double histMaxValueEta = histLimits.upperBinValue;
996  const std::vector<float>& binThresholdsEta = histLimits.binThresholds;
997 
998  //
999  float* binThresholdsEtaf;
1000  size_t sizeBinThresholdsEta = binThresholdsEta.size();
1001  binThresholdsEtaf = new float[sizeBinThresholdsEta];
1002  copy(binThresholdsEta.begin(), binThresholdsEta.end(), binThresholdsEtaf);
1003 
1004  LogDebug("L1ExtraDQM") << "\n eta histogram for " << l1ExtraObject << "\n histNrBinsEta = " << histNrBinsEta
1005  << "\n histMinValueEta = " << histMinValueEta << "\n histMaxValueEta = " << histMaxValueEta
1006  << "\n Last bin value represents the upper limit of the histogram" << std::endl;
1007  for (size_t iBin = 0; iBin < sizeBinThresholdsEta; ++iBin) {
1008  LogTrace("L1ExtraDQM") << "Bin " << iBin << ": eta = " << binThresholdsEtaf[iBin] << std::endl;
1009  }
1010 
1011  histName = l1ExtraObject + "_eta";
1012  histTitle = l1ExtraObject + ": eta distribution ";
1013  xAxisTitle = l1ExtraObject + "_eta";
1014  yAxisTitle = "Entries";
1015 
1016  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBinsEta, binThresholdsEtaf));
1017  indexHistogram++;
1018 
1019  m_monElement[indexHistogram]->setAxisTitle(xAxisTitle, 1);
1020  m_monElement[indexHistogram]->setAxisTitle(yAxisTitle, 2);
1021  m_indexEta = indexHistogram;
1022 
1023  delete[] binThresholdsEtaf;
1024  }
1025 }
1026 
1027 template <class CollectionType>
1029  const bool validColl,
1030  const bool isL1Coll,
1031  const int bxInEvent) {
1032  if (validColl && isL1Coll) {
1033  size_t collSize = 0;
1034  for (CIterColl iterColl = collType->begin(); iterColl != collType->end(); ++iterColl) {
1035  if (iterColl->bx() == bxInEvent) {
1036  collSize++;
1037  }
1038  }
1039  m_monElement[m_indexNrObjects]->Fill(collSize);
1040  } else {
1041  size_t collSize = collType->size();
1042  m_monElement[m_indexNrObjects]->Fill(collSize);
1043  }
1044 }
1045 
1046 template <class CollectionType>
1048  const bool validColl,
1049  const bool bookPhi,
1050  const bool bookEta,
1051  const bool isL1Coll,
1052  const int bxInEvent) {
1053  if (validColl) {
1054  for (CIterColl iterColl = collType->begin(); iterColl != collType->end(); ++iterColl) {
1055  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1056  continue;
1057  }
1058 
1059  m_monElement[m_indexPt]->Fill(iterColl->pt());
1060 
1061  if (bookPhi) {
1062  // add a very small quantity to get off the bin edge
1063  m_monElement[m_indexPhi]->Fill(rad2deg(iterColl->phi()) + 1.e-6);
1064  }
1065 
1066  if (bookEta) {
1067  m_monElement[m_indexEta]->Fill(iterColl->eta());
1068  }
1069  }
1070  }
1071 }
1072 
1073 template <class CollectionType>
1075  const bool validColl,
1076  const bool bookPhi,
1077  const bool bookEta,
1078  const bool isL1Coll,
1079  const int bxInEvent) {
1080  if (validColl) {
1081  for (CIterColl iterColl = collType->begin(); iterColl != collType->end(); ++iterColl) {
1082  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1083  continue;
1084  }
1085 
1086  m_monElement[m_indexEt]->Fill(iterColl->et());
1087 
1088  if (bookPhi) {
1089  // add a very small quantity to get off the bin edge
1090  m_monElement[m_indexPhi]->Fill(rad2deg(iterColl->phi()) + 1.e-6);
1091  }
1092 
1093  if (bookEta) {
1094  m_monElement[m_indexEta]->Fill(iterColl->eta());
1095  }
1096  }
1097  }
1098 }
1099 
1100 template <class CollectionType>
1102  const bool validColl,
1103  const bool isL1Coll,
1104  const int bxInEvent) {
1105  if (validColl) {
1106  for (CIterColl iterColl = collType->begin(); iterColl != collType->end(); ++iterColl) {
1107  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1108  continue;
1109  }
1110 
1111  m_monElement[m_indexEtTotal]->Fill(iterColl->etTotal());
1112  }
1113  }
1114 }
1115 
1116 template <class CollectionType>
1118  const bool validColl,
1119  const bool isL1Coll,
1120  const int bxInEvent) {
1121  if (validColl) {
1122  for (CIterColl iterColl = collType->begin(); iterColl != collType->end(); ++iterColl) {
1123  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1124  continue;
1125  }
1126 
1127  m_monElement[m_indexCharge]->Fill(iterColl->charge());
1128  }
1129  }
1130 }
1131 
1132 template <class CollectionType>
1134  const bool validColl,
1135  const int countIndex,
1136  const bool isL1Coll,
1137  const int bxInEvent) {
1138  if (validColl) {
1139  for (CIterColl iterColl = collType->begin(); iterColl != collType->end(); ++iterColl) {
1140  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1141  continue;
1142  }
1143 
1144  m_monElement[m_indexHfBitCounts + countIndex]->Fill(
1145  iterColl->hfBitCount((l1extra::L1HFRings::HFRingLabels)countIndex));
1146  }
1147  }
1148 }
1149 
1150 template <class CollectionType>
1152  const bool validColl,
1153  const int countIndex,
1154  const bool isL1Coll,
1155  const int bxInEvent) {
1156  if (validColl) {
1157  for (CIterColl iterColl = collType->begin(); iterColl != collType->end(); ++iterColl) {
1158  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1159  continue;
1160  }
1161 
1162  m_monElement[m_indexHfRingEtSums + countIndex]->Fill(
1163  iterColl->hfEtSum((l1extra::L1HFRings::HFRingLabels)countIndex));
1164  }
1165  }
1166 }
L1ExtraDQM::L1ExtraMonElement::fillHfBitCounts
void fillHfBitCounts(const CollectionType *collType, const bool validColl, const int countIndex, const bool isL1Coll, const int bxInEvent)
fill bit counts in HFRings collections
Definition: L1ExtraDQM.cc:1133
L1ExtraDQM::m_nrEvRun
int m_nrEvRun
Definition: L1ExtraDQM.h:196
L1ExtraDQM::analyzeL1ExtraForJet
void analyzeL1ExtraForJet(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:171
L1RetrieveL1Extra::retrieveL1ExtraObjects
void retrieveL1ExtraObjects(const edm::Event &, const edm::EventSetup &)
Definition: L1RetrieveL1Extra.cc:91
L1ExtraDQM::m_tagL1ExtraIsoTauJetTok
edm::EDGetTokenT< l1extra::L1JetParticleCollection > m_tagL1ExtraIsoTauJetTok
Definition: L1ExtraDQM.h:199
l1extra::L1HFRings::HFRingLabels
HFRingLabels
Definition: L1HFRings.h:33
L1ExtraDQM::m_meAnalysisL1ExtraIsoEG
std::vector< L1ExtraMonElement< l1extra::L1EmParticleCollection > * > m_meAnalysisL1ExtraIsoEG
Definition: L1ExtraDQM.h:204
HTM
Definition: L1GtObject.h:38
electrons_cff.bool
bool
Definition: electrons_cff.py:393
L1ExtraDQM.h
L1ExtraDQM::L1ExtraDQM
L1ExtraDQM(const edm::ParameterSet &)
Definition: L1ExtraDQM.cc:25
L1ExtraDQM::L1ExtraMonElement::fillCharge
void fillCharge(const CollectionType *collType, const bool validColl, const bool isL1Coll, const int bxInEvent)
fill charge
Definition: L1ExtraDQM.cc:1117
L1ExtraDQM::analyzeL1ExtraHfBitCounts
void analyzeL1ExtraHfBitCounts(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:300
edm::Handle::product
T const * product() const
Definition: Handle.h:70
L1ExtraDQM::m_nrEvJob
int m_nrEvJob
Definition: L1ExtraDQM.h:195
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
L1RetrieveL1Extra::validL1ExtraNoIsoEG
const bool validL1ExtraNoIsoEG() const
Definition: L1RetrieveL1Extra.h:71
L1ExtraDQM::L1ExtraMonElement::CIterColl
CollectionType::const_iterator CIterColl
Definition: L1ExtraDQM.h:93
ETM
Definition: L1GtObject.h:35
L1GetHistLimits::l1HistLimits
const L1HistLimits & l1HistLimits(const L1GtObject &l1GtObject, const std::string &quantity)
Definition: L1GetHistLimits.cc:491
L1RetrieveL1Extra::l1ExtraETM
const l1extra::L1EtMissParticleCollection * l1ExtraETM() const
Definition: L1RetrieveL1Extra.h:111
L1ExtraDQM::L1ExtraMonElement::fillEtPhiEta
void fillEtPhiEta(const CollectionType *collType, const bool validColl, const bool bookPhi, const bool bookEta, const bool isL1Coll, const int bxInEvent)
ET, eta, phi.
Definition: L1ExtraDQM.cc:1074
edm::Run
Definition: Run.h:45
edm
HLT enums.
Definition: AlignableModifier.h:19
L1ExtraDQM::m_meAnalysisL1ExtraForJet
std::vector< L1ExtraMonElement< l1extra::L1JetParticleCollection > * > m_meAnalysisL1ExtraForJet
Definition: L1ExtraDQM.h:208
L1ExtraDQM::analyzeL1ExtraIsoEG
void analyzeL1ExtraIsoEG(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:107
L1ExtraDQM::L1ExtraMonElement::fillEtTotal
void fillEtTotal(const CollectionType *collType, const bool validColl, const bool isL1Coll, const int bxInEvent)
fill ET total in energy sums
Definition: L1ExtraDQM.cc:1101
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:85964
L1RetrieveL1Extra::validL1ExtraIsoEG
const bool validL1ExtraIsoEG() const
Definition: L1RetrieveL1Extra.h:69
rad2deg
const double rad2deg(const double &)
convert phi from rad (-pi, pi] to deg (0, 360)
Definition: L1PhiConversion.cc:17
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
L1GetHistLimits::L1HistLimits::nrBins
int nrBins
Definition: L1GetHistLimits.h:65
L1ExtraDQM::dqmBeginRun
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
Definition: L1ExtraDQM.cc:334
L1TStage2BMTFClient_cff.yAxisTitle
yAxisTitle
Definition: L1TStage2BMTFClient_cff.py:17
NoIsoEG
Definition: L1GtObject.h:30
L1GetHistLimits::L1HistLimits::lowerBinValue
double lowerBinValue
Definition: L1GetHistLimits.h:66
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
L1RetrieveL1Extra::l1ExtraIsoEG
const l1extra::L1EmParticleCollection * l1ExtraIsoEG() const
Definition: L1RetrieveL1Extra.h:103
L1ExtraDQM::analyzeL1ExtraETM
void analyzeL1ExtraETM(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:259
L1ExtraDQM::L1ExtraMonElement::~L1ExtraMonElement
virtual ~L1ExtraMonElement()
Definition: L1ExtraDQM.cc:804
IsoEG
Definition: L1GtObject.h:31
edm::Handle
Definition: AssociativeIterator.h:50
L1RetrieveL1Extra::validL1ExtraETT
const bool validL1ExtraETT() const
Definition: L1RetrieveL1Extra.h:81
L1ExtraDQM::m_meAnalysisL1ExtraMuon
std::vector< L1ExtraMonElement< l1extra::L1MuonParticleCollection > * > m_meAnalysisL1ExtraMuon
pointers to L1ExtraMonElement for each sub-analysis
Definition: L1ExtraDQM.h:202
L1ExtraDQM::analyzeL1ExtraNoIsoEG
void analyzeL1ExtraNoIsoEG(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:128
L1ExtraDQM::analyzeL1ExtraHTM
void analyzeL1ExtraHTM(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:285
L1RetrieveL1Extra::validL1ExtraHTM
const bool validL1ExtraHTM() const
Definition: L1RetrieveL1Extra.h:87
L1ExtraDQM::L1ExtraMonElement::m_monElement
std::vector< MonitorElement * > m_monElement
Definition: L1ExtraDQM.h:142
L1GetHistLimits
Definition: L1GetHistLimits.h:51
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
L1RetrieveL1Extra::l1ExtraHTM
const l1extra::L1EtMissParticleCollection * l1ExtraHTM() const
Definition: L1RetrieveL1Extra.h:113
L1ExtraDQM::dqmEndRun
void dqmEndRun(const edm::Run &run, const edm::EventSetup &evSetup) override
Definition: L1ExtraDQM.cc:682
L1ExtraDQM::m_stage1_layer2_
bool m_stage1_layer2_
Definition: L1ExtraDQM.h:183
L1RetrieveL1Extra::l1ExtraMuon
const l1extra::L1MuonParticleCollection * l1ExtraMuon() const
return retrieved L1Extra collections
Definition: L1RetrieveL1Extra.h:101
L1RetrieveL1Extra::validL1ExtraForJet
const bool validL1ExtraForJet() const
Definition: L1RetrieveL1Extra.h:76
L1ExtraDQM::L1ExtraMonElement::bookhistograms
void bookhistograms(const edm::EventSetup &evSetup, DQMStore::IBooker &ibooker, const std::string &l1ExtraObject, const std::vector< L1GtObject > &l1GtObj, const bool bookPhi=true, const bool bookEta=true)
Definition: L1ExtraDQM.cc:809
L1ExtraDQM::L1ExtraMonElement::fillHfRingEtSums
void fillHfRingEtSums(const CollectionType *collType, const bool validColl, const int countIndex, const bool isL1Coll, const int bxInEvent)
fill energy sums in HFRings collections
Definition: L1ExtraDQM.cc:1151
HTT
Definition: L1GtObject.h:37
HfBitCounts
Definition: L1GtObject.h:40
HfRingEtSums
Definition: L1GtObject.h:41
L1RetrieveL1Extra::l1ExtraCenJet
const l1extra::L1JetParticleCollection * l1ExtraCenJet() const
Definition: L1RetrieveL1Extra.h:106
L1ExtraDQM::L1ExtraMonElement::fillPtPhiEta
void fillPtPhiEta(const CollectionType *collType, const bool validColl, const bool bookPhi, const bool bookEta, const bool isL1Coll, const int bxInEvent)
PT, eta, phi.
Definition: L1ExtraDQM.cc:1047
L1ExtraDQM::analyzeL1ExtraTauJet
void analyzeL1ExtraTauJet(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:192
CenJet
Definition: L1GtObject.h:32
L1ExtraDQM::analyzeL1ExtraIsoTauJet
void analyzeL1ExtraIsoTauJet(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:213
l1extra::L1JetParticleCollection
std::vector< L1JetParticle > L1JetParticleCollection
Definition: L1JetParticleFwd.h:28
L1RetrieveL1Extra::validL1ExtraHTT
const bool validL1ExtraHTT() const
Definition: L1RetrieveL1Extra.h:85
L1ExtraDQM::analyzeL1ExtraCenJet
void analyzeL1ExtraCenJet(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:150
L1GetHistLimits::L1HistLimits::upperBinValue
double upperBinValue
Definition: L1GetHistLimits.h:67
L1ExtraDQM::analyzeL1ExtraETT
void analyzeL1ExtraETT(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:248
L1RetrieveL1Extra::validL1ExtraETM
const bool validL1ExtraETM() const
Definition: L1RetrieveL1Extra.h:83
L1ExtraDQM::analyzeL1ExtraMuon
void analyzeL1ExtraMuon(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:86
L1ExtraDQM::m_nrBxInEventGct
int m_nrBxInEventGct
Definition: L1ExtraDQM.h:187
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
L1ExtraDQM::L1ExtraMonElement::L1ExtraMonElement
L1ExtraMonElement(const edm::EventSetup &, const int)
Definition: L1ExtraDQM.cc:789
MjjMonitor_cfi.quantity
quantity
Definition: MjjMonitor_cfi.py:10
L1ExtraDQM::L1ExtraMonElement
Definition: L1ExtraDQM.h:84
funct::true
true
Definition: Factorize.h:173
L1RetrieveL1Extra::l1ExtraTauJet
const l1extra::L1JetParticleCollection * l1ExtraTauJet() const
Definition: L1RetrieveL1Extra.h:108
TauJet
Definition: L1GtObject.h:34
L1ExtraDQM::~L1ExtraDQM
~L1ExtraDQM() override
Definition: L1ExtraDQM.cc:82
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
edm::ParameterSet
Definition: ParameterSet.h:47
ParameterSet
Definition: Functions.h:16
B2GTnPMonitor_cfi.histTitle
histTitle
Definition: B2GTnPMonitor_cfi.py:112
L1ExtraDQM::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: L1ExtraDQM.cc:658
L1RetrieveL1Extra::validL1ExtraCenJet
const bool validL1ExtraCenJet() const
Definition: L1RetrieveL1Extra.h:74
L1RetrieveL1Extra::l1ExtraHfBitCounts
const l1extra::L1HFRingsCollection * l1ExtraHfBitCounts() const
Definition: L1RetrieveL1Extra.h:115
L1ExtraDQM::m_meAnalysisL1ExtraIsoTauJet
std::vector< L1ExtraMonElement< l1extra::L1JetParticleCollection > * > m_meAnalysisL1ExtraIsoTauJet
Definition: L1ExtraDQM.h:210
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
L1ExtraDQM::m_meAnalysisL1ExtraHTT
std::vector< L1ExtraMonElement< l1extra::L1EtMissParticleCollection > * > m_meAnalysisL1ExtraHTT
Definition: L1ExtraDQM.h:216
L1RetrieveL1Extra::l1ExtraForJet
const l1extra::L1JetParticleCollection * l1ExtraForJet() const
Definition: L1RetrieveL1Extra.h:107
RecoTauValidation_cfi.xAxisTitle
xAxisTitle
Definition: RecoTauValidation_cfi.py:269
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
ETT
Definition: L1GtObject.h:36
edm::EventSetup
Definition: EventSetup.h:57
L1ExtraDQM::m_meAnalysisL1ExtraNoIsoEG
std::vector< L1ExtraMonElement< l1extra::L1EmParticleCollection > * > m_meAnalysisL1ExtraNoIsoEG
Definition: L1ExtraDQM.h:205
L1RetrieveL1Extra::l1ExtraHTT
const l1extra::L1EtMissParticleCollection * l1ExtraHTT() const
Definition: L1RetrieveL1Extra.h:112
L1RetrieveL1Extra::l1ExtraETT
const l1extra::L1EtMissParticleCollection * l1ExtraETT() const
Definition: L1RetrieveL1Extra.h:110
L1ExtraDQM::m_meAnalysisL1ExtraHfBitCounts
std::vector< L1ExtraMonElement< l1extra::L1HFRingsCollection > * > m_meAnalysisL1ExtraHfBitCounts
Definition: L1ExtraDQM.h:220
Mu
Definition: L1GtObject.h:29
L1ExtraDQM::analyzeL1ExtraHfRingEtSums
void analyzeL1ExtraHfRingEtSums(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:317
std
Definition: JetResolutionObject.h:76
writedatasetfile.run
run
Definition: writedatasetfile.py:27
L1ExtraDQM::m_meAnalysisL1ExtraETT
std::vector< L1ExtraMonElement< l1extra::L1EtMissParticleCollection > * > m_meAnalysisL1ExtraETT
Definition: L1ExtraDQM.h:212
L1ExtraDQM::bookHistograms
void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &, edm::EventSetup const &) override
Definition: L1ExtraDQM.cc:336
L1ExtraDQM::m_meAnalysisL1ExtraHfRingEtSums
std::vector< L1ExtraMonElement< l1extra::L1HFRingsCollection > * > m_meAnalysisL1ExtraHfRingEtSums
Definition: L1ExtraDQM.h:222
L1ExtraDQM::m_nrBxInEventGmt
int m_nrBxInEventGmt
number of bunch crosses in event to be monitored
Definition: L1ExtraDQM.h:186
L1ExtraDQM::analyzeL1ExtraHTT
void analyzeL1ExtraHTT(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:274
L1ExtraDQM::m_meAnalysisL1ExtraETM
std::vector< L1ExtraMonElement< l1extra::L1EtMissParticleCollection > * > m_meAnalysisL1ExtraETM
Definition: L1ExtraDQM.h:214
L1RetrieveL1Extra::validL1ExtraHfBitCounts
const bool validL1ExtraHfBitCounts() const
Definition: L1RetrieveL1Extra.h:90
L1RetrieveL1Extra::validL1ExtraHfRingEtSums
const bool validL1ExtraHfRingEtSums() const
Definition: L1RetrieveL1Extra.h:92
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
ForJet
Definition: L1GtObject.h:33
L1RetrieveL1Extra::l1ExtraHfRingEtSums
const l1extra::L1HFRingsCollection * l1ExtraHfRingEtSums() const
Definition: L1RetrieveL1Extra.h:116
l1extra::L1HFRings::kNumRings
Definition: L1HFRings.h:33
dqm::implementation::IBooker
Definition: DQMStore.h:43
L1RetrieveL1Extra::l1ExtraNoIsoEG
const l1extra::L1EmParticleCollection * l1ExtraNoIsoEG() const
Definition: L1RetrieveL1Extra.h:104
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:224
L1RetrieveL1Extra::validL1ExtraMuon
const bool validL1ExtraMuon() const
validity for retrieval of L1Extra products (false: product not found)
Definition: L1RetrieveL1Extra.h:66
L1RetrieveL1Extra::validL1ExtraTauJet
const bool validL1ExtraTauJet() const
Definition: L1RetrieveL1Extra.h:78
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
L1ExtraDQM::m_dirName
std::string m_dirName
directory name for L1Extra plots
Definition: L1ExtraDQM.h:182
L1ExtraDQM::m_retrieveL1Extra
L1RetrieveL1Extra m_retrieveL1Extra
input parameters
Definition: L1ExtraDQM.h:179
edm::Event
Definition: Event.h:73
L1GetHistLimits::L1HistLimits
Definition: L1GetHistLimits.h:64
edm::InputTag
Definition: InputTag.h:15
L1ExtraDQM::L1ExtraMonElement::fillNrObjects
void fillNrObjects(const CollectionType *collType, const bool validColl, const bool isL1Coll, const int bxInEvent)
number of objects
Definition: L1ExtraDQM.cc:1028
L1GtObject
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
L1GetHistLimits::L1HistLimits::binThresholds
std::vector< float > binThresholds
Definition: L1GetHistLimits.h:68
L1ExtraDQM::m_meAnalysisL1ExtraHTM
std::vector< L1ExtraMonElement< l1extra::L1EtMissParticleCollection > * > m_meAnalysisL1ExtraHTM
Definition: L1ExtraDQM.h:218
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
L1ExtraDQM::m_meAnalysisL1ExtraCenJet
std::vector< L1ExtraMonElement< l1extra::L1JetParticleCollection > * > m_meAnalysisL1ExtraCenJet
Definition: L1ExtraDQM.h:207
L1ExtraDQM::m_meAnalysisL1ExtraTauJet
std::vector< L1ExtraMonElement< l1extra::L1JetParticleCollection > * > m_meAnalysisL1ExtraTauJet
Definition: L1ExtraDQM.h:209