CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalTrigPrimMonitor.cc
Go to the documentation of this file.
3 
5  dataLabel_(ps.getParameter<edm::InputTag>("dataLabel")),
6  emulLabel_(ps.getParameter<edm::InputTag>("emulLabel")),
7  ZSBadTPThreshold_(ps.getParameter< std::vector<int> >("ZSBadTPThreshold")),
8  ZSAlarmThreshold_(ps.getParameter< std::vector<int> >("ZSAlarmThreshold"))
9 {
10  Online_ = ps.getUntrackedParameter<bool>("online",false);
11  mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns",false);
12  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup",false);
13  debug_ = ps.getUntrackedParameter<int>("debug",false);
14  prefixME_ = ps.getUntrackedParameter<std::string>("subSystemFolder","Hcal/");
15  if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!="/")
16  prefixME_.append("/");
17  subdir_ = ps.getUntrackedParameter<std::string>("TaskFolder","TrigPrimMonitor_Hcal");
18  if (subdir_.size()>0 && subdir_.substr(subdir_.size()-1,subdir_.size())!="/")
19  subdir_.append("/");
20  subdir_=prefixME_+subdir_;
21  AllowedCalibTypes_ = ps.getUntrackedParameter<std::vector<int> > ("AllowedCalibTypes");
22  skipOutOfOrderLS_ = ps.getUntrackedParameter<bool>("skipOutOfOrderLS",true);
23  NLumiBlocks_ = ps.getUntrackedParameter<int>("NLumiBlocks",4000);
24  makeDiagnostics_ = ps.getUntrackedParameter<bool>("makeDiagnostics",false);
25 
26 }
27 
28 
30 }
31 
32 
33 void
35 }
36 
37 
38 void
41 
42  if (dbe_ == 0)
43  return;
44 
45  dbe_->setCurrentFolder(subdir_ + "TP Occupancy");
46  TPOccupancyEta_ = dbe_->book1D("TPOccupancyVsEta", "TPOccupancyVsEta", 65, -32.5, 32.5);
47  TPOccupancyPhi_ = dbe_->book1D("TPOccupancyVsPhi", "TPOccupancyVsPhi", 72, 0.5, 72.5);
48  TPOccupancyPhiHFP_ = dbe_->book1D("TPOccupancyHFPVsPhi", "TPOccupancyHFPVsPhi", 72, 0.5, 72.5);
49  TPOccupancyPhiHFM_ = dbe_->book1D("TPOccupancyHFMVsPhi", "TPOccupancyHFMVsPhi", 72, 0.5, 72.5);
50  TPOccupancy_ = create_map(subdir_ + "TP Occupancy", "TPOccupancy");
51 
52  for (int isZS = 0; isZS <= 1; ++isZS) {
53 
54  std::string folder(subdir_);
55  std::string zsname="_ZS";
56  if (isZS == 0)
57  {
58  folder += "noZS/";
59  zsname="_noZS";
60  }
61 
62  std::string problem_folder(folder);
63  problem_folder += "Problem TPs/";
64 
65  good_tps[isZS] = create_map(folder, "Good TPs"+zsname);
66  bad_tps[isZS] = create_map(folder, "Bad TPs"+zsname);
67 
68  errorflag[isZS] = create_errorflag(folder, "Error Flag"+zsname);
69  problem_map[isZS][kMismatchedEt] = create_map(problem_folder, "Mismatched Et"+zsname);
70  problem_map[isZS][kMismatchedFG] = create_map(problem_folder, "Mismatched FG"+zsname);
71  problem_map[isZS][kMissingData] = create_map(problem_folder, "Missing Data"+zsname);
72  problem_map[isZS][kMissingEmul] = create_map(problem_folder, "Missing Emul"+zsname);
73 
74  for (int isHF = 0; isHF <= 1; ++isHF) {
75  std::string subdet = (isHF == 0 ? "HBHE " : "HF ");
76  tp_corr[isZS][isHF] = create_tp_correlation(folder, subdet + "TP Correlation"+zsname);
77  fg_corr[isZS][isHF] = create_fg_correlation(folder, subdet + "FG Correlation"+zsname);
78 
80  = create_et_histogram(problem_folder + "TP Values/", subdet + "Mismatched FG"+zsname);
81 
83  = create_et_histogram(problem_folder + "TP Values/", subdet + "Missing Data"+zsname);
84 
86  = create_et_histogram(problem_folder + "TP Values/", subdet + "Missing Emul"+zsname);
87  }//isHF
88  }//isZS
89 
90  // Copy for OOT TPs
91  for (int isZS = 0; isZS <= 1; ++isZS) {
92 
93  std::string folder(subdir_);
94  std::string zsname="_ZS";
95  if (isZS == 0)
96  {
97  folder += "noZS/";
98  zsname="_noZS";
99  }
100 
101  std::string problem_folder(folder);
102  problem_folder += "Problem OOT TPs/";
103 
104  good_tps_oot[isZS] = create_map(folder, "Good OOT TPs"+zsname);
105  bad_tps_oot[isZS] = create_map(folder, "Bad OOT TPs"+zsname);
106 
107  errorflag_oot[isZS] = create_errorflag(folder, "Error Flag OOT"+zsname);
108  problem_map_oot[isZS][kMismatchedEt] = create_map(problem_folder, "Mismatched OOT Et"+zsname);
109  problem_map_oot[isZS][kMismatchedFG] = create_map(problem_folder, "Mismatched OOT FG"+zsname);
110  problem_map_oot[isZS][kMissingData] = create_map(problem_folder, "Missing OOT Data"+zsname);
111  problem_map_oot[isZS][kMissingEmul] = create_map(problem_folder, "Missing OOT Emul"+zsname);
112 
113  for (int isHF = 0; isHF <= 1; ++isHF) {
114  std::string subdet = (isHF == 0 ? "HBHE " : "HF ");
115  tp_corr_oot[isZS][isHF] = create_tp_correlation(folder, subdet + "OOT TP Correlation"+zsname);
116  fg_corr_oot[isZS][isHF] = create_fg_correlation(folder, subdet + "OOT FG Correlation"+zsname);
117 
119  = create_et_histogram(problem_folder + "TP Values/", subdet + "OOT Mismatched FG"+zsname);
120 
122  = create_et_histogram(problem_folder + "TP Values/", subdet + "OOT Missing Data"+zsname);
123 
125  = create_et_histogram(problem_folder + "TP Values/", subdet + "OOT Missing Emul"+zsname);
126  }//isHF
127  }//isZS
128 
129  // Number of bad cells vs. luminosity block
131  "TotalBadTPs_HCAL_vs_LS",
132  "Total Number of Bad HCAL TPs vs lumi section",
133  NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000);
134 
136  "TotalBadTPs_HB_vs_LS",
137  "Total Number of Bad HB TPs vs lumi section",
138  NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,3000);
139 
141  "TotalBadTPs_HE_vs_LS",
142  "Total Number of Bad HE TPs vs lumi section",
143  NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,3000);
144 
146  "TotalBadTPs_HF_vs_LS",
147  "Total Number of Bad HF TPs vs lumi section",
148  NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,3000);
149 
150  // No TPs for HO, DO NOT fill this histogram
152  "TotalBadTPs_HO_vs_LS",
153  "Total Number of Bad HO TPs vs lumi section",
154  NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,3000);
155 
156  ProblemsVsLB->getTProfile()->SetMarkerStyle(20);
157  ProblemsVsLB_HB->getTProfile()->SetMarkerStyle(20);
158  ProblemsVsLB_HE->getTProfile()->SetMarkerStyle(20);
159  ProblemsVsLB_HO->getTProfile()->SetMarkerStyle(20);
160  ProblemsVsLB_HF->getTProfile()->SetMarkerStyle(20);
161 }
162 
164 {
166  if (mergeRuns_ && tevt_>0) return; // don't reset counters if merging runs
167  if (tevt_==0) this->setup(); // create all histograms; not necessary if merging runs together
168  if (mergeRuns_==false) this->reset(); // call reset at start of all runs
169 } // void HcalTrigPrimMonitor::beginRun()
170 
171 void
173  if (!IsAllowedCalibType()) return;
174  if (LumiInOrder(e.luminosityBlock())==false) return;
175 
177  if (!e.getByLabel(dataLabel_, data_tp_col)) {
178  edm::LogWarning("HcalTrigPrimMonitor")<< dataLabel_<< " data TP not available";
179  return;
180  }
181 
183  if (!e.getByLabel(emulLabel_, emul_tp_col)) {
184  edm::LogWarning("HcalTrigPrimMonitor")<< emulLabel_<< " emul TP not available";
185  return;
186  }
187 
188  HcalBaseDQMonitor::analyze(e,s); // base class increments ievt_, etc. counters
189  processEvent(data_tp_col, emul_tp_col);
190 }
191 
192 
193 void
195  const edm::Handle <HcalTrigPrimDigiCollection>& data_tp_col,
196  const edm::Handle <HcalTrigPrimDigiCollection>& emul_tp_col) {
197 
198  if(dbe_ == 0)
199  return;
200 
201  std::vector<int> errorflag_per_event[2][2];
202  std::vector<int> errorflag_per_event_oot[2][2];
203  for (int isZS = 0; isZS <= 1; ++isZS) {
204  for (int isHF = 0; isHF <= 1; ++isHF) {
205  errorflag_per_event[isZS][isHF] = std::vector<int>(kNErrorFlag, 0);
206  errorflag_per_event_oot[isZS][isHF] = std::vector<int>(kNErrorFlag, 0);
207  }//for isHF
208  }//for isZS
209 
210  for (int isZS = 0; isZS <= 1; ++isZS) {
211  good_tps[isZS]->setBinContent(-1,-1,ievt_);
212  bad_tps[isZS]->setBinContent(-1,-1,ievt_);
213  good_tps_oot[isZS]->setBinContent(-1,-1,ievt_);
214  bad_tps_oot[isZS]->setBinContent(-1,-1,ievt_);
215  }
216 
217  for (HcalTrigPrimDigiCollection::const_iterator data_tp = data_tp_col->begin();
218  data_tp != data_tp_col->end();
219  ++data_tp) {
220  int ieta = data_tp->id().ieta();
221  int iphi = data_tp->id().iphi();
222  int isHF = data_tp->id().ietaAbs() >= 29 ? 1 : 0;
223 
224 
225  //
226  if (data_tp->SOI_compressedEt() > 0) {
227  TPOccupancy_->Fill(ieta, iphi);
228  TPOccupancyEta_->Fill(ieta);
229  TPOccupancyPhi_->Fill(iphi);
230 
231  if (isHF) {
232  if (ieta > 0) {
233  TPOccupancyPhiHFP_->Fill(iphi);
234  }
235  else {
236  TPOccupancyPhiHFM_->Fill(iphi);
237  }
238  }
239  }
240 
241  //check missing from emulator
242  HcalTrigPrimDigiCollection::const_iterator emul_tp = emul_tp_col->find(data_tp->id());
243  if (emul_tp == emul_tp_col->end()) {
244  bool pass_ZS = true;
245  bool pass_ZS_OOT = true;
246 
247  for (int i=0; i<data_tp->size(); ++i) {
248  if(i==2) {
249  int dataEt(data_tp->sample(i).compressedEt());
250  problem_et[0][isHF][kMissingEmul]->Fill(dataEt);
251 
252  if (dataEt > ZSAlarmThreshold_[abs(ieta)]) {
253  problem_et[1][isHF][kMissingEmul]->Fill(dataEt);
254  pass_ZS = false;
255  }
256 
257  problem_map[0][kMissingEmul]->Fill(ieta, iphi);
258  ++errorflag_per_event[0][isHF][kMissingEmul];
259  bad_tps[0]->Fill(ieta, iphi);
260 
261  if (!pass_ZS) {
262  problem_map[1][kMissingEmul]->Fill(ieta, iphi);
263  ++errorflag_per_event[1][isHF][kMissingEmul];
264  bad_tps[1]->Fill(ieta, iphi);
265 
266  // counts per LS, only for inTime TP
267  if (abs(ieta) <= 16)
269  else if(abs(ieta) <= 28)
271  else
273  }
274  }
275 
276  if(i!=2) {
277  int dataEt(data_tp->sample(i).compressedEt());
278  problem_et_oot[0][isHF][kMissingEmul]->Fill(dataEt);
279 
280  if (dataEt > ZSAlarmThreshold_[abs(ieta)]) {
281  problem_et_oot[1][isHF][kMissingEmul]->Fill(dataEt);
282  pass_ZS_OOT = false;
283  }
284 
285  problem_map_oot[0][kMissingEmul]->Fill(ieta, iphi);
286  ++errorflag_per_event_oot[0][isHF][kMissingEmul];
287  bad_tps_oot[0]->Fill(ieta, iphi);
288 
289  if (!pass_ZS_OOT) {
290  problem_map_oot[1][kMissingEmul]->Fill(ieta, iphi);
291  ++errorflag_per_event_oot[1][isHF][kMissingEmul];
292  bad_tps_oot[1]->Fill(ieta, iphi);
293  }
294  }
295  }
296  } //emul tp not found
297  else {
298  bool mismatchedEt_noZS = false;
299  bool mismatchedEt_ZS = false;
300  bool mismatchedFG_noZS = false;
301  bool mismatchedFG_ZS = false;
302 
303  bool mismatchedEt_OOT_noZS = false;
304  bool mismatchedEt_OOT_ZS = false;
305  bool mismatchedFG_OOT_noZS = false;
306  bool mismatchedFG_OOT_ZS = false;
307 
308  for (int i=0; i<data_tp->size(); ++i) {
309  int dataEt(data_tp->sample(i).compressedEt());
310  int dataFG(data_tp->sample(i).fineGrain());
311  int emulEt(emul_tp->sample(i).compressedEt());
312  int emulFG(emul_tp->sample(i).fineGrain());
313 
314  int diff = abs(dataEt - emulEt);
315  bool fill_corr_ZS = true;
316  bool fill_corr_OOT_ZS = true;
317 
318  if (std::max(dataEt, emulEt) < ZSAlarmThreshold_.at(abs(ieta)))
319  continue;
320 
321  if (diff == 0) {
322  if (dataFG != emulFG) {
323  if(i==2) {
324  mismatchedFG_noZS = true;
325  problem_et[0][isHF][kMismatchedFG]->Fill(dataEt);
326 
327  // exclude mismatched FG when HF TP < ZS_AlarmThreshold
328  if (isHF == 1 && dataEt <= ZSAlarmThreshold_.at(abs(ieta))) {
329  // Do not fill ZS correlation plots.
330  fill_corr_ZS = false;
331  }
332  else {
333  mismatchedFG_ZS = true;
334  problem_et[1][isHF][kMismatchedFG]->Fill(dataEt);
335  }
336  }
337  if(i!=2){
338  mismatchedFG_OOT_noZS = true;
339  problem_et_oot[0][isHF][kMismatchedFG]->Fill(dataEt);
340 
341  // exclude mismatched FG when HF TP < ZS_AlarmThreshold
342  if (isHF == 1 && dataEt <= ZSAlarmThreshold_.at(abs(ieta))) {
343  // Do not fill ZS correlation plots.
344  fill_corr_OOT_ZS = false;
345  }
346  else {
347  mismatchedFG_OOT_ZS = true;
348  problem_et_oot[1][isHF][kMismatchedFG]->Fill(dataEt);
349  }
350  }
351  } // matched et but not fg
352  }
353  else {
354  if(i==2) {
355  mismatchedEt_noZS = true;
356  //if (diff > ZSAlarmThreshold_.at(abs(ieta))) {
357  if (diff > ZSBadTPThreshold_.at(abs(ieta))) {
358  mismatchedEt_ZS = true;
359  fill_corr_ZS = false;
360  }
361  }
362  if(i!=2) {
363  mismatchedEt_OOT_noZS = true;
364  //if (diff > ZSAlarmThreshold_.at(abs(ieta))) {
365  if (diff > ZSBadTPThreshold_.at(abs(ieta))) {
366  mismatchedEt_OOT_ZS = true;
367  fill_corr_OOT_ZS = false;
368  }
369  }
370  } // mismatche et
371 
372  // Correlation plots
373  if(i==2) {
374  tp_corr[0][isHF]->Fill(dataEt, emulEt);
375  fg_corr[0][isHF]->Fill(dataFG, emulFG);
376 
377  if (fill_corr_ZS) {
378  tp_corr[1][isHF]->Fill(dataEt, emulEt);
379  fg_corr[1][isHF]->Fill(dataFG, emulFG);
380  }
381  }
382  if(i!=2) {
383  tp_corr_oot[0][isHF]->Fill(dataEt, emulEt);
384  fg_corr_oot[0][isHF]->Fill(dataFG, emulFG);
385 
386  if (fill_corr_OOT_ZS) {
387  tp_corr_oot[1][isHF]->Fill(dataEt, emulEt);
388  fg_corr_oot[1][isHF]->Fill(dataFG, emulFG);
389  }
390  }
391  }//for tp sample
392 
393  // Fill Problem Map and error counts
394  if (mismatchedEt_noZS) {
395  problem_map[0][kMismatchedEt]->Fill(ieta, iphi);
396  ++errorflag_per_event[0][isHF][kMismatchedEt];
397  }
398  if (mismatchedEt_ZS) {
399  problem_map[1][kMismatchedEt]->Fill(ieta, iphi);
400  ++errorflag_per_event[1][isHF][kMismatchedEt];
401  }
402  if (mismatchedFG_noZS) {
403  problem_map[0][kMismatchedFG]->Fill(ieta, iphi);
404  ++errorflag_per_event[0][isHF][kMismatchedFG];
405  }
406  if (mismatchedFG_ZS) {
407  problem_map[1][kMismatchedFG]->Fill(ieta, iphi);
408  ++errorflag_per_event[1][isHF][kMismatchedFG];
409  }
410  if (mismatchedEt_noZS || mismatchedFG_noZS)
411  bad_tps[0]->Fill(ieta, iphi);
412  else
413  good_tps[0]->Fill(ieta, iphi);
414  if (mismatchedEt_ZS || mismatchedFG_ZS) {
415 
416  bad_tps[1]->Fill(ieta, iphi);
417 
418  // counts per LS
419  if (abs(ieta) <= 16)
421  else if(abs(ieta) <= 28)
423  else
425  }
426  else
427  good_tps[1]->Fill(ieta, iphi);
428 
429  // OOT Copy
430  // Fill Problem Map and error counts
431  if (mismatchedEt_OOT_noZS) {
432  problem_map_oot[0][kMismatchedEt]->Fill(ieta, iphi);
433  ++errorflag_per_event_oot[0][isHF][kMismatchedEt];
434  }
435  if (mismatchedEt_OOT_ZS) {
436  problem_map_oot[1][kMismatchedEt]->Fill(ieta, iphi);
437  ++errorflag_per_event_oot[1][isHF][kMismatchedEt];
438  }
439  if (mismatchedFG_noZS) {
440  problem_map_oot[0][kMismatchedFG]->Fill(ieta, iphi);
441  ++errorflag_per_event_oot[0][isHF][kMismatchedFG];
442  }
443  if (mismatchedFG_OOT_ZS) {
444  problem_map_oot[1][kMismatchedFG]->Fill(ieta, iphi);
445  ++errorflag_per_event_oot[1][isHF][kMismatchedFG];
446  }
447  if (mismatchedEt_OOT_noZS || mismatchedFG_OOT_noZS)
448  bad_tps_oot[0]->Fill(ieta, iphi);
449  else
450  good_tps_oot[0]->Fill(ieta, iphi);
451  if (mismatchedEt_OOT_ZS || mismatchedFG_OOT_ZS) {
452 
453  bad_tps_oot[1]->Fill(ieta, iphi);
454  }
455  else
456  good_tps_oot[1]->Fill(ieta, iphi);
457  }//emul tp found
458  }//for data_tp_col
459 
460 
461  //check missing from data
462  for (HcalTrigPrimDigiCollection::const_iterator emul_tp = emul_tp_col->begin();
463  emul_tp != emul_tp_col->end();
464  ++emul_tp) {
465  int ieta(emul_tp->id().ieta());
466  int iphi(emul_tp->id().iphi());
467  int isHF = emul_tp->id().ietaAbs() >= 29 ? 1 : 0;
468 
469  HcalTrigPrimDigiCollection::const_iterator data_tp = data_tp_col->find(emul_tp->id());
470  if (data_tp == data_tp_col->end()) {
471  bool pass_ZS = true;
472  bool pass_OOT_ZS = true;
473 
474  for (int i=0; i<emul_tp->size(); ++i) {
475  int emulEt(emul_tp->sample(i).compressedEt());
476  if(i==2) {
477  problem_et[0][isHF][kMissingData]->Fill(emulEt);
478 
479  if (emulEt > ZSAlarmThreshold_[abs(ieta)]) {
480  problem_et[1][isHF][kMissingData]->Fill(emulEt);
481  pass_ZS = false;
482  }
483 
484  problem_map[0][kMissingData]->Fill(ieta, iphi);
485  ++errorflag_per_event[0][isHF][kMissingData];
486  bad_tps[0]->Fill(ieta, iphi);
487 
488  if (!pass_ZS) {
489  problem_map[1][kMissingData]->Fill(ieta, iphi);
490  ++errorflag_per_event[1][isHF][kMissingData];
491  bad_tps[1]->Fill(ieta, iphi);
492 
493  // counts per LS
494  if (abs(ieta) <= 16)
496  else if(abs(ieta) <= 28)
498  else
500  }
501  }
502  else {
503  problem_et_oot[0][isHF][kMissingData]->Fill(emulEt);
504 
505  if (emulEt > ZSAlarmThreshold_[abs(ieta)]) {
506  problem_et_oot[1][isHF][kMissingData]->Fill(emulEt);
507  pass_OOT_ZS = false;
508  }
509 
510  problem_map_oot[0][kMissingData]->Fill(ieta, iphi);
511  ++errorflag_per_event_oot[0][isHF][kMissingData];
512  bad_tps_oot[0]->Fill(ieta, iphi);
513 
514  if (!pass_OOT_ZS) {
515  problem_map_oot[1][kMissingData]->Fill(ieta, iphi);
516  ++errorflag_per_event_oot[1][isHF][kMissingData];
517  bad_tps_oot[1]->Fill(ieta, iphi);
518  }
519  }
520  }//for tp sample
521  } //data tp not found
522  } //for emul_tp_col
523 
524  // Fill error flag per event
525  for (int isZS = 0; isZS <= 1; ++isZS) {
526  for (int isHF = 0; isHF <= 1; ++isHF) {
527  for (int i=0; i<kNErrorFlag; ++i) {
528  if (errorflag_per_event[isZS][isHF][i] > 0)
529  errorflag[isZS]->Fill(i, isHF);
530  if (errorflag_per_event_oot[isZS][isHF][i] > 0)
531  errorflag_oot[isZS]->Fill(i, isHF);
532  }//for i
533  }//for isHF
534  }//for isZS
535 }
536 
537 void
539  if (!enableCleanup_) return;
540  if (dbe_) {
542  dbe_->removeContents();
543 
544  dbe_->setCurrentFolder(subdir_ + "noZS/Problem TPs/TP Values");
545  dbe_->removeContents();
546  dbe_->setCurrentFolder(subdir_ + "noZS/Problem TPs");
547  dbe_->removeContents();
548  dbe_->setCurrentFolder(subdir_ + "noZS");
549 
550  dbe_->setCurrentFolder(subdir_ + "Problem TPs/TP Values");
551  dbe_->removeContents();
552  dbe_->setCurrentFolder(subdir_ + "Problem TPs");
553  dbe_->removeContents();
554 
555  dbe_->setCurrentFolder(subdir_ + "Problem OOT TPs/TP Values");
556  dbe_->removeContents();
557  dbe_->setCurrentFolder(subdir_ + "Problem OOT TPs");
558  dbe_->removeContents();
559  }
560 }
561 
563 {
564  if (enableCleanup_) cleanup();
565 }
566 
568  if (LumiInOrder(lumiSeg.luminosityBlock())==false) return;
571  // Rest counter
572  nBad_TP_per_LS_HB_ = 0;
573  nBad_TP_per_LS_HE_ = 0;
574  nBad_TP_per_LS_HF_ = 0;
575 }
576 
578  if (LumiInOrder(lumiSeg.luminosityBlock())==false) return;
579  // Fill histograms for this LS
584 
585  ProblemsCurrentLB->Fill(-1,-1,levt_);
589 }
590 
591 
593 HcalTrigPrimMonitor::create_summary(const std::string& folder, const std::string& name) {
594  edm::LogInfo("HcalTrigPrimMonitor") << "Creating MonitorElement " << name << " in folder " << folder << "\n";
595 
596  dbe_->setCurrentFolder(folder);
597  return dbe_->book2D(name, name, 65, -32.5, 32.5, 72, 0.5, 72.5);
598 }
599 
601 HcalTrigPrimMonitor::create_errorflag(const std::string& folder, const std::string& name) {
602  edm::LogInfo("HcalTrigPrimMonitor") << "Creating MonitorElement " << name << " in folder " << folder << "\n";
603 
604  dbe_->setCurrentFolder(folder);
605  MonitorElement* element = dbe_->book2D(name, name, 4, 1, 5, 2, 0, 2);
606  element->setBinLabel(1, "Mismatched E");
607  element->setBinLabel(2, "Mismatched FG");
608  element->setBinLabel(3, "Missing Data");
609  element->setBinLabel(4, "Missing Emul");
610  element->setBinLabel(1, "HBHE", 2);
611  element->setBinLabel(2, "HF", 2);
612  return element;
613 }
614 
616 HcalTrigPrimMonitor::create_tp_correlation(const std::string& folder, const std::string& name) {
617  edm::LogInfo("HcalTrigPrimMonitor") << "Creating MonitorElement " << name << " in folder " << folder << "\n";
618 
619  dbe_->setCurrentFolder(folder);
620  MonitorElement* element = dbe_->book2D(name, name, 50, 0, 256, 50, 0, 256);
621  element->setAxisTitle("data TP", 1);
622  element->setAxisTitle("emul TP", 2);
623  return element;
624 }
625 
627 HcalTrigPrimMonitor::create_fg_correlation(const std::string& folder, const std::string& name) {
628  edm::LogInfo("HcalTrigPrimMonitor") << "Creating MonitorElement " << name << " in folder " << folder << "\n";
629 
630  dbe_->setCurrentFolder(folder);
631  MonitorElement* element = dbe_->book2D(name, name, 2, 0, 2, 2, 0, 2);
632  element->setAxisTitle("data FG", 1);
633  element->setAxisTitle("emul FG", 2);
634  return element;
635 }
636 
638 HcalTrigPrimMonitor::create_map(const std::string& folder, const std::string& name) {
639  edm::LogInfo("HcalTrigPrimMonitor") << "Creating MonitorElement " << name << " in folder " << folder << "\n";
640 
641  dbe_->setCurrentFolder(folder);
642  std::string title = name +";ieta;iphi";
643  return dbe_->book2D(name, title, 65, -32.5, 32.5, 72, 0.5, 72.5);
644 }
645 
647 HcalTrigPrimMonitor::create_et_histogram(const std::string& folder, const std::string& name) {
648  edm::LogInfo("HcalTrigPrimMonitor") << "Creating MonitorElement " << name << " in folder " << folder << "\n";
649 
650  dbe_->setCurrentFolder(folder);
651  return dbe_->book1D(name, name, 256, 0, 256);
652 }
653 
MonitorElement * bad_tps_oot[2]
MonitorElement * TPOccupancy_
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
void processEvent(const edm::Handle< HcalTrigPrimDigiCollection > &data_tp_col, const edm::Handle< HcalTrigPrimDigiCollection > &emul_tp_col)
bool LumiInOrder(int lumisec)
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * ProblemsCurrentLB
MonitorElement * TPOccupancyPhiHFM_
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:717
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
MonitorElement * good_tps_oot[2]
MonitorElement * ProblemsVsLB_HF
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
std::map< ErrorFlag, MonitorElement * > problem_et_oot[2][2]
std::vector< int > AllowedCalibTypes_
std::vector< T >::const_iterator const_iterator
MonitorElement * TPOccupancyEta_
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
#define abs(x)
Definition: mlp_lapack.h:159
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:59
MonitorElement * create_fg_correlation(const std::string &folder, const std::string &name)
MonitorElement * create_tp_correlation(const std::string &folder, const std::string &name)
void Fill(long long x)
MonitorElement * fg_corr_oot[2][2]
LuminosityBlockNumber_t luminosityBlock() const
std::map< ErrorFlag, MonitorElement * > problem_et[2][2]
MonitorElement * errorflag_oot[2]
virtual void beginRun(const edm::Run &run, const edm::EventSetup &c)
void removeContents(void)
erase all monitoring elements in current directory (not including subfolders);
Definition: DQMStore.cc:2564
const T & max(const T &a, const T &b)
MonitorElement * ProblemsVsLB_HB
virtual void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
std::vector< int > ZSBadTPThreshold_
MonitorElement * good_tps[2]
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:1031
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
MonitorElement * create_et_histogram(const std::string &folder, const std::string &name)
MonitorElement * create_errorflag(const std::string &folder, const std::string &name)
MonitorElement * TPOccupancyPhiHFP_
MonitorElement * fg_corr[2][2]
bool isHF(int etabin, int depth)
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
MonitorElement * ProblemsVsLB_HE
std::map< ErrorFlag, MonitorElement * > problem_map_oot[2]
HcalTrigPrimMonitor(const edm::ParameterSet &ps)
TProfile * getTProfile(void) const
MonitorElement * tp_corr_oot[2][2]
MonitorElement * create_map(const std::string &folder, const std::string &name)
void beginRun(const edm::Run &run, const edm::EventSetup &c)
MonitorElement * bad_tps[2]
MonitorElement * TPOccupancyPhi_
MonitorElement * ProblemsVsLB_HO
MonitorElement * ProblemsVsLB
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:845
virtual void setup(void)
void analyze(const edm::Event &e, const edm::EventSetup &c)
MonitorElement * errorflag[2]
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
std::vector< int > ZSAlarmThreshold_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:429
Definition: Run.h:33
std::map< ErrorFlag, MonitorElement * > problem_map[2]
MonitorElement * tp_corr[2][2]
MonitorElement * create_summary(const std::string &folder, const std::string &name)