CMS 3D CMS Logo

L1TDTTFClient.cc
Go to the documentation of this file.
1 /*
2  * \file L1TDTTFClient.cc
3  *
4  * \author G. Codispoti
5  *
6  */
7 
8 
10 
17 
18 
20  : l1tdttffolder_ ( ps.getUntrackedParameter<std::string> ("l1tSourceFolder", "L1T/L1TDTTF") ),
21  dttfSource_( ps.getParameter< edm::InputTag >("dttfSource") ),
22  online_( ps.getUntrackedParameter<bool>("online", true) ),
23  resetafterlumi_( ps.getUntrackedParameter<int>("resetAfterLumi", 3) ),
24  counterLS_(0), occupancy_r_(nullptr)
25 {
26  edm::LogInfo( "L1TDTTFClient");
27 }
28 
29 
30 //--------------------------------------------------------
32  edm::LogInfo("L1TDTTFClient")<<"[L1TDTTFClient]: ending... ";
33 }
34 
35 
36 //--------------------------------------------------------
38 {
39 
40  edm::LogInfo("L1TDTTFClient")<<"[L1TDTTFClient]: Begin Job";
41 
42  wheelpath_[0] = l1tdttffolder_ + "/02-WHEEL_N2";
43  wheelpath_[1] = l1tdttffolder_ + "/03-WHEEL_N1";
44  wheelpath_[2] = l1tdttffolder_ + "/04-WHEEL_N0";
45  wheelpath_[3] = l1tdttffolder_ + "/05-WHEEL_P0";
46  wheelpath_[4] = l1tdttffolder_ + "/06-WHEEL_P1";
47  wheelpath_[5] = l1tdttffolder_ + "/07-WHEEL_P2";
48 
49  wheel_[0] = "N2";
50  wheel_[1] = "N1";
51  wheel_[2] = "N0";
52  wheel_[3] = "P0";
53  wheel_[4] = "P1";
54  wheel_[5] = "P2";
55 
56  inclusivepath_ = l1tdttffolder_ + "/01-INCLUSIVE";
57  gmtpath_ = l1tdttffolder_ + "/08-GMT_MATCH";
58  testpath_ = l1tdttffolder_ + "/09-TEST";
59 
61  char hname[100];//histo name
62  char mename[100];//ME name
63 
67  sprintf(hname, "dttf_02_nTracks");
68  sprintf(mename, "DTTF Tracks by Wheel");
69  dttf_nTracks_integ = ibooker.book1D(hname, mename, 6, 0, 6);
71 
73  sprintf(hname, "dttf_03_tracks_occupancy_summary");
74  sprintf(mename, "DTTF Tracks Occupancy");
75  dttf_occupancySummary = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
77  dttf_occupancySummary->setAxisTitle("Sector", 2);
78 
80 
82  sprintf(hname, "dttf_05_bx_occupancy");
83  sprintf(mename, "DTTF Tracks BX Distribution by Wheel");
84  dttf_bx_summary = ibooker.book2D(hname, mename, 6, 0, 6, 3, -1, 2 );
86  dttf_bx_summary->setAxisTitle("BX", 2 );
87 
89  sprintf(hname, "dttf_06_bx");
90  sprintf(mename, "DTTF Tracks BX w.r.t. Tracks with BX=0");
91  dttf_bx_integ = ibooker.book1D( hname, mename, 3, -1.5, 1.5 );
92  dttf_bx_integ->setAxisTitle("BX", 1);
93 
95  sprintf(hname, "dttf_07_quality");
96  sprintf(mename, "DTTF Tracks Quality distribution");
97  dttf_quality_integ = ibooker.book1D(hname, mename, 7, 1, 8);
99 
101  sprintf(hname, "dttf_08_quality_occupancy");
102  sprintf(mename, "DTTF Tracks Quality distribution by Wheel");
103  dttf_quality_summary = ibooker.book2D( hname, mename, 6, 0, 6, 7, 1, 8 );
104  dttf_quality_summary->setAxisTitle("Wheel", 1);
107 
109  sprintf(hname, "dttf_09_highQuality_Tracks");
110  sprintf(mename, "Fraction of DTTF Tracks with Quality>3");
111  dttf_highQual_Summary = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
113  dttf_highQual_Summary->setAxisTitle("Sector", 2);
114 
115 
117  sprintf(hname, "dttf_10_phi_vs_etaCoarse");
118  sprintf(mename, "#eta-#phi DTTF Tracks occupancy (coarse #eta only, packed values)");
119  dttf_phi_eta_coarse_integ = ibooker.book2D( hname, mename, 64, 0, 64,
120  144, -6, 138. );
123 
125  sprintf(hname, "dttf_11_phi_vs_etaFine");
126  sprintf(mename, "#eta-#phi DTTF Tracks occupancy (fine #eta only, packed values)");
127  dttf_phi_eta_fine_integ = ibooker.book2D( hname, mename, 64, 0, 64,
128  144, -6, 138. );
131 
133  sprintf(hname, "dttf_12_phi_vs_eta");
134  sprintf(mename, "#eta-#phi DTTF Tracks occupancy");
135  dttf_phi_eta_integ = ibooker.book2D( hname, mename, 64, -1.2, 1.2,
136  144, -15, 345. );
137  dttf_phi_eta_integ->setAxisTitle("#eta", 1);
138  dttf_phi_eta_integ->setAxisTitle("#phi", 2);
139 
141  sprintf(hname, "dttf_13_eta_fine_fraction");
142  sprintf(mename, "Fraction of DTTF Tracks with Fine #eta Assignment");
143  dttf_eta_fine_fraction = ibooker.book1D( hname, mename, 6, 0, 6 );
146 
148 
150  sprintf(hname, "dttf_14_eta");
151  sprintf(mename, "DTTF Tracks #eta distribution (Packed values)");
152  dttf_eta_integ = ibooker.book1D(hname, mename, 64, -0.5, 63.5);
153  dttf_eta_integ->setAxisTitle("#eta", 1);
154 
156  sprintf(hname, "dttf_15_phi");
157  sprintf(mename, "DTTF Tracks Phi distribution (Packed values)");
158  dttf_phi_integ = ibooker.book1D(hname, mename, 144, -6, 138. );
159  dttf_phi_integ->setAxisTitle("#phi", 1);
160 
162  sprintf(hname, "dttf_16_pt");
163  sprintf(mename, "DTTF Tracks p_{T} distribution (Packed values)");
164  dttf_pt_integ = ibooker.book1D(hname, mename, 32, -0.5, 31.5);
165  dttf_pt_integ->setAxisTitle("p_{T}", 1);
167  sprintf(hname, "dttf_17_charge");
168  sprintf(mename, "DTTF Tracks Charge distribution");
169  dttf_q_integ = ibooker.book1D(hname, mename, 2, -0.5, 1.5);
170  dttf_q_integ->setAxisTitle("Charge", 1);
171 
172 
173 
175  sprintf(hname, "dttf_18_2ndTrack_occupancy_summary");
176  sprintf(mename, "DTTF 2nd Tracks occupancy w.r.t. Tracks with BX=0");
177  dttf_2ndTrack_Summary = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
179 
180 
181 
185  ibooker.setCurrentFolder( gmtpath_ );
186  sprintf(hname, "dttf_gmt_fract_matching" );
187  sprintf(mename, "Fraction of DTTF tracks matching with GMT tracks" );
188  dttf_gmt_matching = ibooker.book1D( hname, mename, 3, 1, 4);
189  dttf_gmt_matching->setBinLabel(1, "GMT Only", 1);
190  dttf_gmt_matching->setBinLabel(2, "Matching", 1);
191  dttf_gmt_matching->setBinLabel(3, "DTTF Only", 1);
192 
193 
197 
198  ibooker.setCurrentFolder( testpath_ );
199  sprintf(hname, "dttf_01_tracks_occupancy_test_summary");
200  sprintf(mename, "DTTF Tracks Occupancy");
201  dttf_occupancySummary_test = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
204 
205 
209  ibooker.setCurrentFolder( inclusivepath_ + "/2ND_TRACK_ONLY");
210 
212  sprintf(hname, "dttf_01_nTracks_2ndTrack");
213  sprintf(mename, "DTTF 2nd Tracks per Wheel distribution");
214  dttf_nTracks_integ_2ndTrack = ibooker.book1D(hname, mename, 6, 0, 6);
216 
218  sprintf(hname, "dttf_02_occupancy_summary_2ndTrack");
219  sprintf(mename, "DTTF 2nd Tracks distribution by Sector and Wheel");
220  dttf_occupancySummary_2ndTrack = ibooker.book2D( hname, mename, 6, 0, 6,
221  12, 1, 13 );
223 
225  sprintf(hname, "dttf_03_bx_occupancy_2ndTrack");
226  sprintf(mename, "DTTF 2nd Tracks BX Distribution by Wheel");
227  dttf_bx_summary_2ndTrack = ibooker.book2D( hname, mename, 6, 0, 6, 3, -1, 2 );
230 
232  sprintf(hname, "dttf_04_bx_2ndTrack");
233  sprintf(mename, "Fraction of DTTF Tracks BX w.r.t. Tracks with BX=0");
234  dttf_bx_integ_2ndTrack = ibooker.book1D( hname, mename, 3, -1.5, 1.5 );
236 
238  sprintf(hname, "dttf_05_quality_2ndTrack");
239  sprintf(mename, "DTTF 2nd Tracks Quality distribution");
240  dttf_quality_integ_2ndTrack = ibooker.book1D(hname, mename, 7, 0.5, 7.5);
243 
245  sprintf(hname, "dttf_06_quality_occupancy_2ndTrack");
246  sprintf(mename, "DTTF 2nd Tracks Quality distribution by Wheel");
247  dttf_quality_summary_2ndTrack = ibooker.book2D( hname, mename,
248  6, 0, 6, 7, 1, 8 );
252 
254  sprintf(hname, "dttf_07_highQuality_Tracks_2ndTrack");
255  sprintf(mename, "Fraction of DTTF 2nd Tracks with Quality>3");
256  dttf_highQual_Summary_2ndTrack = ibooker.book2D( hname, mename, 6, 0, 6,
257  12, 1, 13 );
260 
262  sprintf(hname, "dttf_08_phi_vs_eta_2ndTrack");
263  sprintf(mename, "#eta-#phi DTTF Tracks occupancy for 2nd Tracks");
264  dttf_phi_eta_integ_2ndTrack = ibooker.book2D( hname, mename, 64, 0, 64,
265  144, -6, 138. );
268 
270  sprintf(hname, "dttf_09_eta_2ndTrack");
271  sprintf(mename, "DTTF 2nd Tracks #eta distribution (Packed values)");
272  dttf_eta_integ_2ndTrack = ibooker.book1D(hname, mename, 64, -0.5, 63.5);
274 
276  sprintf(hname, "dttf_10_phi_2ndTrack");
277  sprintf(mename, "DTTF 2nd Tracks Phi distribution (Packed values)");
278  dttf_phi_integ_2ndTrack = ibooker.book1D(hname, mename, 144, -6, 138 );
280 
282  sprintf(hname, "dttf_11_pt_2ndTrack");
283  sprintf(mename, "DTTF 2nd Tracks p_{T} distribution (Packed values)");
284  dttf_pt_integ_2ndTrack = ibooker.book1D(hname, mename, 32, -0.5, 31.5);
286 
288  sprintf(hname, "dttf_12_charge_2ndTrack");
289  sprintf(mename, "DTTF 2nd Tracks Charge distribution");
290  dttf_q_integ_2ndTrack = ibooker.book1D(hname, mename, 2, -0.5, 1.5);
291  dttf_q_integ_2ndTrack->setAxisTitle("Charge", 1);
292 
293 
294  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
295  ibooker.setCurrentFolder( wheelpath_[wh] );
296 
298  sprintf( hname, "dttf_02_nTracks_wh%s", wheel_[wh].c_str() );
299  sprintf( mename, "Wheel %s - Number of Tracks", wheel_[wh].c_str() );
300  dttf_nTracks_wheel[wh] = ibooker.book1D( hname, mename, 12, 1, 13);
301  dttf_nTracks_wheel[wh]->setAxisTitle("sector", 1);
302 
304  sprintf(hname, "dttf_03_bx_occupancy_wh%s", wheel_[wh].c_str() );
305  sprintf(mename, "Wheel %s - DTTF Tracks BX distribution by Sector",
306  wheel_[wh].c_str());
307  dttf_bx_wheel_summary[wh] = ibooker.book2D( hname, mename, 12, 1, 13, 3, -1, 2);
308  dttf_bx_wheel_summary[wh]->setAxisTitle("BX", 2 );
309  dttf_bx_wheel_summary[wh]->setAxisTitle("Sector", 1 );
310 
312  sprintf(hname, "dttf_04_bx_wh%s", wheel_[wh].c_str());
313  sprintf(mename, "Wheel %s - DTTF Tracks BX w.r.t. Tracks with BX=0", wheel_[wh].c_str());
314  dttf_bx_wheel_integ[wh] = ibooker.book1D(hname, mename, 3, -1.5, 1.5);
315  dttf_bx_wheel_integ[wh]->setAxisTitle("BX", 1);
316 
318  sprintf(hname, "dttf_05_quality_wh%s", wheel_[wh].c_str() );
319  sprintf(mename, "Wheel %s - Tracks Quality Distribution", wheel_[wh].c_str() );
320  dttf_quality_wheel[wh] = ibooker.book1D(hname, mename, 7, 1, 8);
321  dttf_quality_wheel[wh]->setAxisTitle("Quality", 1);
323 
325  sprintf(hname, "dttf_06_quality_summary_wh%s", wheel_[wh].c_str() );
326  sprintf(mename, "Wheel %s - Tracks Quality Distribution by Sector",
327  wheel_[wh].c_str() );
328  dttf_quality_summary_wheel[wh] = ibooker.book2D(hname, mename, 12, 1, 13, 7, 1, 8);
329  dttf_quality_summary_wheel[wh]->setAxisTitle("Sector", 1);
330  // dttf_quality_summary_wheel[wh]->setAxisTitle("Quality", 2);
332 
334  sprintf(hname, "dttf_09_etaFine_fraction_wh%s", wheel_[wh].c_str() );
335  sprintf(mename, "Wheel %s - Fraction of DTTF Tracks with fine #eta assignment",
336  wheel_[wh].c_str());
337  dttf_fine_fraction_wh[wh] = ibooker.book1D( hname, mename, 12, 1, 13);
338  dttf_fine_fraction_wh[wh]->setAxisTitle("Sector", 1 );
339 
340 
342  sprintf(hname, "dttf_10_eta_wh%s", wheel_[wh].c_str() );
343  sprintf(mename, "Wheel %s - DTTF Tracks #eta distribution (Packed values)",
344  wheel_[wh].c_str() );
345  dttf_eta_wheel[wh] = ibooker.book1D(hname, mename, 64, -0.5, 63.5 );
346  dttf_eta_wheel[wh]->setAxisTitle("#eta", 1 );
347 
349  sprintf(hname, "dttf_11_phi_wh%s", wheel_[wh].c_str() );
350  sprintf(mename, "Wheel %s - DTTF Tracks Phi distribution (Packed values)",
351  wheel_[wh].c_str() );
352  dttf_phi_wheel[wh] = ibooker.book1D(hname, mename, 144, -6, 138. );
353  dttf_phi_wheel[wh]->setAxisTitle("#phi", 1);
354 
356  sprintf(hname, "dttf_12_pt_wh%s", wheel_[wh].c_str() );
357  sprintf(mename, "Wheel %s - DTTF Tracks p_{T} distribution (Packed values)",
358  wheel_[wh].c_str() );
359  dttf_pt_wheel[wh] = ibooker.book1D(hname, mename, 32, -0.5, 31.5);
360  dttf_pt_wheel[wh]->setAxisTitle("p_{T}", 1);
361 
363  sprintf(hname, "dttf_13_charge_wh%s", wheel_[wh].c_str() );
364  sprintf(mename, "Wheel %s - DTTF Tracks Charge distribution",
365  wheel_[wh].c_str() );
366  dttf_q_wheel[wh] = ibooker.book1D(hname, mename, 2, -0.5, 1.5);
367  dttf_q_wheel[wh]->setAxisTitle("Charge", 1);
368 
369  }
370 
371 
373  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
374  ibooker.setCurrentFolder( wheelpath_[wh] + "/2ND_TRACK_ONLY" );
375 
377  sprintf( hname, "dttf_01_nTracks_wh%s_2ndTrack", wheel_[wh].c_str() );
378  sprintf( mename, "Wheel %s - DTTF Number of 2nd Tracks with BX=0",
379  wheel_[wh].c_str() );
380  dttf_nTracks_wheel_2ndTrack[wh] = ibooker.book1D( hname, mename,
381  12, 1, 13);
382  dttf_nTracks_wheel_2ndTrack[wh]->setAxisTitle("sector", 1);
383 
385  sprintf(hname, "dttf_02_bx_occupancy_wh%s_2ndTrack", wheel_[wh].c_str() );
386  sprintf(mename, "Wheel %s - DTTF 2nd Tracks BX distribution by Sector",
387  wheel_[wh].c_str());
388  dttf_bx_wheel_summary_2ndTrack[wh] = ibooker.book2D( hname, mename, 12, 1, 13, 3, -1, 2);
390  dttf_bx_wheel_summary_2ndTrack[wh]->setAxisTitle("Sector", 1 );
391 
393  sprintf(hname, "dttf_03_bx_wh%s_2ndTrack", wheel_[wh].c_str());
394  sprintf(mename, "Wheel %s - 2nd Tracks BX Distribution", wheel_[wh].c_str());
395  dttf_bx_wheel_integ_2ndTrack[wh] = ibooker.book1D(hname, mename, 3, -1.5, 1.5);
397 
398 
399  }
400 
401 
402 
403 }
404 
405 //--------------------------------------------------------
406 
408 
409  //Processing by run ID
410  book(ibooker);
411  makeSummary(igetter);
412 
413 }
414 
415 //--------------------------------------------------------
417 {
419  if ( online_ && !( counterLS_ % resetafterlumi_ ) ) {
420  book(ibooker);
421  char hname[60];
422  sprintf( hname, "%s/dttf_04_tracks_occupancy_by_lumi",
423  inclusivepath_.c_str() );
424 
425  occupancy_r_ = getTH2F(igetter, hname);
426  if ( ! occupancy_r_ ) {
427  edm::LogError("L1TDTTFClient::beginLuminosityBlock:ME")
428  << "Failed to get TH2D " << std::string(hname);
429  } else {
430  edm::LogInfo("L1TDTTFClient::beginLuminosityBlock:RESET") << "Reseting plots by lumi!";
431  occupancy_r_->Reset();
432  }
433  }
434 
435  if ( online_ ) {
436  makeSummary(igetter);
438  }
439 
440 }
441 
442 //--------------------------------------------------------
444 {
448  buildSummaries(igetter);
449 
453  double scale = 0;
454  double entries = dttf_occupancySummary->getTH2F()->Integral();
455 
456  if ( entries ) {
457 
460 
462  scale = 1 / entries;
465 
467  double physEntries = dttf_eta_integ->getTH1F()->Integral();
468  if ( physEntries > 0 ) {
469  double physScale = 1 / physEntries;
470 
471  normalize( dttf_phi_eta_integ->getTH2F(), physScale );
472 
473  normalize( dttf_phi_eta_fine_integ->getTH2F(), physScale );
475  normalize( dttf_quality_summary->getTH2F(), physScale );
476 
477  normalize( dttf_eta_integ->getTH1F(), physScale );
478  normalize( dttf_q_integ->getTH1F(), physScale );
479  normalize( dttf_pt_integ->getTH1F(), physScale );
480  normalize( dttf_phi_integ->getTH1F(), physScale );
481  normalize( dttf_quality_integ->getTH1F(), physScale );
482 
483  }
484 
485  }
486 
490 
491  double entries2ndTrack = dttf_occupancySummary_2ndTrack->getTH2F()->Integral();
492  if ( entries2ndTrack > 0 ) {
493 
496 
500  "%s/2ND_TRACK_ONLY/dttf_05_quality_summary_wh%s_2ndTrack" );
501 
503 
505  double scale2nd = 1 / entries2ndTrack;
507  normalize( dttf_nTracks_integ_2ndTrack->getTH1F(), scale2nd ); //
508 
509 
518 
519  }
520 
522  setGMTsummary(igetter);
523 
524 }
525 
526 
527 
528 
529 //--------------------------------------------------------
531 {
532 
533  char hname[100];
534  int wheelBx[4];
535  int wheelBx2nd[4];
536  int wheelSumBx[4];
537  int wheelSumBx2nd[4];
538  int qualities[8];
539 
540  memset( wheelSumBx, 0, 4 * sizeof(int) );
541  memset( wheelSumBx2nd, 0, 4 * sizeof(int) );
542 
545  dttf_q_integ->Reset();
546  dttf_pt_integ->Reset();
556 
560 
561  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
562 
563  dttf_eta_wheel[wh]->Reset();
564  dttf_q_wheel[wh]->Reset();
565  dttf_pt_wheel[wh]->Reset();
566  dttf_phi_wheel[wh]->Reset();
567  dttf_quality_wheel[wh]->Reset();
569 
570  double wheelEtaAll = 0;
571  double wheelEtaFine = 0;
572  memset( wheelBx, 0, 4 * sizeof(int) );
573  memset( wheelBx2nd, 0, 4 * sizeof(int) );
574 
576  memset( qualities, 0, 8 * sizeof(int) );
577 
583  "%s/dttf_07_phi_vs_etaFine_wh%s",
584  "%s/dttf_08_phi_vs_etaCoarse_wh%s", wh );
585 
587  "%s/2ND_TRACK_ONLY/dttf_06_phi_vs_eta_wh%s_2ndTrack",
588  wh );
589 
590 
594  for ( unsigned int sector = 1; sector < 13; ++sector ) {
595 
599  sprintf( hname, "%s/BX_BySector/dttf_bx_wh%s_se%d",
600  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
601 
602  TH1F * bxsector = getTH1F(igetter,hname);
603  if ( ! bxsector ) {
604  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
605  << std::string(hname);
606  } else {
607 
608  for ( unsigned int bx = 1; bx < 4 ; ++bx ) {
609 
610  int bxval = bxsector->GetBinContent( bx );
611 
612  if ( bx == 2 ) {
613  // if ( wh == 2 )
614  // dttf_occupancySummary->setBinContent( wh+1, sector, bxval*14 );
615  // else
616  // dttf_occupancySummary->setBinContent( wh+1, sector, bxval );
617  dttf_occupancySummary->setBinContent( wh+1, sector, bxval );
618  dttf_occupancySummary_test->setBinContent( wh+1, sector, bxval );
619  dttf_nTracks_wheel[wh]->setBinContent(sector, bxval );
620  }
621  wheelBx[bx] += bxval;
622  dttf_bx_wheel_summary[wh]->setBinContent( sector, bx, bxval );
623  }
624  }
625 
626 
630  sprintf( hname, "%s/BX_BySector/2ND_TRACK_ONLY/dttf_bx_2ndTrack_wh%s_se%d",
631  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
632 
633  TH1F * bxsector2nd = getTH1F(igetter,hname);
634  if ( ! bxsector2nd ) {
635  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
636  << std::string(hname);
637  } else {
638 
639  for ( unsigned int bx = 1; bx < 4 ; ++bx ) {
640  int bxval = bxsector2nd->GetBinContent( bx );
641 
642  if ( bx == 2 ) {
643  dttf_2ndTrack_Summary->setBinContent( wh+1, sector, bxval );
644  dttf_occupancySummary_2ndTrack->setBinContent(wh+1, sector, bxval);
645  dttf_nTracks_wheel_2ndTrack[wh]->setBinContent(sector, bxval );
646  }
647  wheelBx2nd[bx] += bxval;
648  dttf_bx_wheel_summary_2ndTrack[wh]->setBinContent(sector, bx, bxval);
649  }
650  }
651 
655  sprintf( hname, "%s/Charge/dttf_charge_wh%s_se%d",
656  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
657  TH1F * tmp = getTH1F(igetter,hname);
658  if ( ! tmp ) {
659  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
660  << std::string(hname);
661  } else {
662  dttf_q_integ->getTH1F()->Add( tmp );
663  dttf_q_wheel[wh]->getTH1F()->Add( tmp );
664  }
665 
669  sprintf( hname, "%s/PT/dttf_pt_wh%s_se%d",
670  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
671  tmp = getTH1F(igetter, hname);
672  if ( ! tmp ) {
673  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
674  << std::string(hname);
675  } else {
676  dttf_pt_integ->getTH1F()->Add( tmp );
677  dttf_pt_wheel[wh]->getTH1F()->Add( tmp );
678  }
679 
680 
684  sprintf( hname, "%s/Phi/dttf_phi_wh%s_se%d",
685  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
686  tmp = getTH1F(igetter,hname);
687  if ( ! tmp ) {
688  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
689  << std::string(hname);
690  } else {
691  dttf_phi_integ->getTH1F()->Add( tmp );
692  dttf_phi_wheel[wh]->getTH1F()->Add( tmp );
693  }
694 
695 
699  double highQual = 0;
700  double denHighQual = 0;
701  sprintf( hname, "%s/Quality/dttf_qual_wh%s_se%d",
702  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
703  tmp = getTH1F(igetter,hname);
704  if ( ! tmp ) {
705  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
706  << std::string(hname);
707  } else {
708 
709  dttf_quality_wheel[wh]->getTH1F()->Add( tmp );
710 
711 
712  for ( unsigned int qual = 1; qual < 4 ; ++qual ) {
713  double bincontent = tmp->GetBinContent( qual );
714  qualities[qual] += bincontent;
715  denHighQual += bincontent;
716  dttf_quality_summary_wheel[wh]->setBinContent(sector, qual, bincontent);
717  }
718 
719  for ( unsigned int qual = 4; qual < 8 ; ++qual ) {
720  double bincontent = tmp->GetBinContent( qual );
721  qualities[qual] += bincontent;
722  dttf_quality_summary_wheel[wh]->setBinContent(sector, qual, bincontent);
723  denHighQual += bincontent;
724  highQual += bincontent;
725  }
726 
727  }
728  if ( denHighQual > 0 ) highQual /= denHighQual;
729  dttf_highQual_Summary->setBinContent( wh+1, sector, highQual );
730 
731 
735  sprintf( hname, "%s/Eta/dttf_eta_wh%s_se%d",
736  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
737  tmp = getTH1F(igetter,hname);
738  if ( ! tmp ) {
739  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
740  << std::string(hname);
741  } else {
742  dttf_eta_integ->getTH1F()->Add( tmp );
743  dttf_eta_wheel[wh]->getTH1F()->Add( tmp );
744  }
745 
746 
750  sprintf( hname, "%s/EtaFineFraction/dttf_etaFine_fraction_wh%s_se%d",
751  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
752  tmp = getTH1F(igetter,hname);
753  if ( ! tmp ) {
754  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
755  << std::string(hname);
756  } else {
757  double fine = tmp->GetBinContent( 1 );
758  double coarse = tmp->GetBinContent( 2 );
759  double tot = fine + coarse;
760  wheelEtaAll += tot;
761  wheelEtaFine += fine;
762  if ( tot > 0 ) {
763  dttf_fine_fraction_wh[wh]->setBinContent( sector, fine/tot );
764  }
765  }
766 
767  }
768 
772  if ( wheelEtaAll > 0 ) {
773  dttf_eta_fine_fraction->setBinContent( wh+1, wheelEtaFine/wheelEtaAll );
774  }
775 
779  dttf_nTracks_integ->setBinContent( wh+1, wheelBx[2] );
780  dttf_nTracks_integ_2ndTrack->setBinContent( wh+1, wheelBx2nd[2] );
781 
785  for ( unsigned int bx = 1; bx < 4; ++bx ) {
786 
787  dttf_bx_wheel_integ[wh]->setBinContent( bx, wheelBx[bx] );
788  dttf_bx_summary->setBinContent( wh+1, bx, wheelBx[bx] );
789  wheelSumBx[bx] += wheelBx[bx];
790 
791  dttf_bx_wheel_integ_2ndTrack[wh]->setBinContent( bx, wheelBx2nd[bx] );
792  dttf_bx_summary_2ndTrack->setBinContent( wh+1, bx, wheelBx2nd[bx] );
793  wheelSumBx2nd[bx] += wheelBx2nd[bx];
794 
795  }
796 
797 
801  for ( unsigned int qual = 1; qual < 8 ; ++qual ) {
802  dttf_quality_summary->setBinContent( wh+1, qual, qualities[qual] );
803  dttf_quality_integ->getTH1F()->AddBinContent( qual, qualities[qual] );
804  }
805 
806 
816  normalize( dttf_eta_wheel[wh]->getTH1F() );
817  normalize( dttf_q_wheel[wh]->getTH1F() );
818  normalize( dttf_pt_wheel[wh]->getTH1F() );
819  normalize( dttf_phi_wheel[wh]->getTH1F() );
820 
824  double scale = wheelBx[2];
825  if ( scale > 0 ) {
826  scale = 1/scale;
827  normalize( dttf_bx_wheel_integ[wh]->getTH1F(), scale );
828  }
829 
830  scale = wheelBx2nd[2];
831  if ( scale > 0 ) {
832  scale = 1/scale;
834  }
835 
836 
837 
838 
844 
845 
849  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_07_eta_wh%s_2ndTrack",
850  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
851 
852  TH1F * tmp = getTH1F(igetter,hname);
853  if ( ! tmp ) {
854  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
855  << std::string(hname);
856  } else {
857  dttf_eta_integ_2ndTrack->getTH1F()->Add( tmp );
858  }
859 
863  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_08_phi_wh%s_2ndTrack",
864  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
865  tmp = getTH1F(igetter,hname);
866  if ( ! tmp ) {
867  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
868  << std::string(hname);
869  } else {
870  dttf_phi_integ_2ndTrack->getTH1F()->Add( tmp );
871  }
872 
873 
877  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_09_pt_wh%s_2ndTrack",
878  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
879  tmp = getTH1F(igetter,hname);
880  if ( ! tmp ) {
881  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
882  << std::string(hname);
883  } else {
884  dttf_pt_integ_2ndTrack->getTH1F()->Add( tmp );
885  }
886 
890  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_10_charge_wh%s_2ndTrack",
891  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
892  tmp = getTH1F(igetter,hname);
893  if ( ! tmp ) {
894  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
895  << std::string(hname);
896  } else {
897  dttf_q_integ_2ndTrack->getTH1F()->Add( tmp );
898  }
899 
903  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_04_quality_wh%s_2ndTrack",
904  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
905  tmp = getTH1F(igetter,hname);
906  if ( ! tmp ) {
907  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
908  << std::string(hname);
909  } else {
910  for ( unsigned int qual = 1; qual < 8; ++qual ) {
911  double binqual = tmp->GetBinContent( qual );
912  dttf_quality_integ_2ndTrack->getTH1F()->AddBinContent( qual, binqual );
913  dttf_quality_summary_2ndTrack->setBinContent( wh+1, qual, binqual );
914  }
915  }
916 
917 
918  }
919 
923  for ( unsigned int bx = 1; bx < 4; ++bx ) {
924  dttf_bx_integ->setBinContent( bx, wheelSumBx[bx] );
925  dttf_bx_integ_2ndTrack->setBinContent( bx, wheelSumBx2nd[bx] );
926  }
927 
931  double scale = wheelSumBx[2];
932  if ( scale > 0 ) {
933  scale = 1./scale;
935  }
936 
937  scale = wheelSumBx2nd[2];
938  if ( scale > 0 ) {
939  scale = 1./scale;
941  }
942 
943 
944 }
945 
946 
947 
948 //--------------------------------------------------------
950 {
951  char hname[60];
952  sprintf( hname, "%s/dttf_tracks_with_gmt_match", gmtpath_.c_str() );
953  TH2F * gmt_match = getTH2F(igetter,hname);
954  if ( ! gmt_match ) {
955  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
956  << std::string(hname);
957  return;
958  }
959 
960 
961 
962  sprintf( hname, "%s/dttf_tracks_without_gmt_match", gmtpath_.c_str() );
963  TH2F * gmt_missed = getTH2F(igetter,hname);
964  if ( ! gmt_missed ) {
965  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
966  << std::string(hname);
967  return;
968  }
969 
970 
971  sprintf( hname, "%s/dttf_missing_tracks_in_gmt", gmtpath_.c_str() );
972  TH2F * gmt_ghost = getTH2F(igetter,hname);
973  if ( ! gmt_ghost ) {
974  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
975  << std::string(hname);
976  return;
977  }
978 
979  int match = gmt_match->Integral();
980  int missed = gmt_missed->Integral();
981  int ghost = gmt_ghost->Integral();
982  float tot = match + missed + ghost;
983  if ( tot > 0 ) {
984  double val = ghost/tot;
985  dttf_gmt_matching->setBinContent( 1, val );
986  val = match/tot;
987  dttf_gmt_matching->setBinContent( 2, val );
988  val = missed/tot;
989  dttf_gmt_matching->setBinContent( 3, val );
990  }
991 }
992 
993 
994 
995 //--------------------------------------------------------
996 TH1F * L1TDTTFClient::getTH1F(DQMStore::IGetter &igetter, const char * hname)
997 {
998 
999  MonitorElement * me = igetter.get(hname);
1000  if ( ! me ) {
1001  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get ME "
1002  << std::string(hname);
1003  return nullptr;
1004  }
1005 
1006  return me->getTH1F();
1007 
1008 }
1009 
1010 
1011 //--------------------------------------------------------
1012 TH2F * L1TDTTFClient::getTH2F(DQMStore::IGetter &igetter, const char * hname)
1013 {
1014 
1015  MonitorElement * me = igetter.get(hname);
1016  if ( ! me ) {
1017  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get ME "
1018  << std::string(hname);
1019  return nullptr;
1020  }
1021 
1022  return me->getTH2F();
1023 
1024 }
1025 
1026 
1027 //--------------------------------------------------------
1028 
1029 //--------------------------------------------------------
1030 void L1TDTTFClient::buildHighQualityPlot( DQMStore::IGetter &igetter, TH2F * occupancySummary,
1031  MonitorElement * highQual_Summary,
1032  const std::string & path )
1033 {
1034 
1035  char hname[150];
1036 
1040  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
1041  sprintf( hname, path.c_str(), wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1042 
1043  TH2F * quality = getTH2F(igetter, hname);
1044  if ( ! quality ) {
1045  edm::LogError("L1TDTTFClient::buildHighQualityPlot")
1046  << "Failed to get TH2F " << std::string(hname);
1047  } else {
1048 
1049  for ( unsigned int sec = 1; sec < 13 ; ++sec ) {
1050  double denHighQual = occupancySummary->GetBinContent( wh+1, sec );
1051  double val = 0;
1052  if ( denHighQual > 0 ) {
1053  for ( unsigned int qual = 4; qual < 8 ; ++qual ) {
1054  val += quality->GetBinContent( qual, sec );
1055  }
1056  val /= denHighQual;
1057  }
1058  highQual_Summary->setBinContent( wh+1, sec, val );
1059  }
1060  }
1061  }
1062 }
1063 
1064 //--------------------------------------------------------
1066  MonitorElement * phi_eta_coarse_integ,
1067  MonitorElement * phi_eta_integ,
1068  const std::string & path_fine,
1069  const std::string & path_coarse,
1070  int wh )
1071 {
1072 
1073  char hname[150];
1074  sprintf( hname, path_fine.c_str(),
1075  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1076 
1077  TH2F * phi_vs_eta_fine = getTH2F(igetter, hname);
1078  if ( ! phi_vs_eta_fine ) {
1079  edm::LogError("L1TDTTFClient::buildPhiEtaPloOtFC")
1080  << "Failed to get TH1D " << std::string(hname);
1081  }
1082 
1083  sprintf( hname, path_coarse.c_str(),
1084  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1085  TH2F * phi_vs_eta_coarse = getTH2F(igetter,hname);
1086  if ( ! phi_vs_eta_coarse ) {
1087  edm::LogError("L1TDTTFClient::buildPhiEtaPlotOFC")
1088  << "Failed to get TH1D " << std::string(hname);
1089  }
1090 
1091  if ( ! phi_vs_eta_fine || ! phi_vs_eta_coarse ) {
1092  return;
1093  }
1094 
1095  for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1096  float start = 0;
1097  int nbins = 0;
1098  switch ( wh ) {
1099  case 0 : start = 0; nbins = 18; break; // N2
1100  case 1 : start = 8; nbins = 20; break; // N1
1101  case 2 : start = 22; nbins = 10; break; // N0
1102  case 3 : start = 22; nbins = 20; break; // P0
1103  case 4 : start = 36; nbins = 20; break; // P1
1104  case 5 : start = 46; nbins = 18; break; // P2
1105  default : start = 0; nbins = 0; break; // BOH
1106  }
1107 
1108  for ( int eta = 1; eta <= nbins ; ++eta ) {
1109  double setbin = eta + start;
1110 
1111  double valfine = phi_vs_eta_fine->GetBinContent( eta, phi )
1112  + phi_eta_fine_integ->getBinContent( setbin, phi );
1113 
1114  double valcoarse = phi_vs_eta_coarse->GetBinContent( eta, phi )
1115  + phi_eta_coarse_integ->getBinContent( setbin, phi );
1116 
1117  phi_eta_fine_integ->setBinContent( setbin, phi, valfine );
1118  phi_eta_coarse_integ->setBinContent( setbin, phi, valcoarse );
1119  phi_eta_integ->setBinContent( setbin, phi, valfine+valcoarse );
1120 
1121  }
1122 
1123  // double underflow_f = phi_vs_eta_fine->GetBinContent( 0, phi )
1124  // + phi_eta_fine_integ->getBinContent( 1, phi );
1125  // phi_eta_fine_integ->setBinContent( 1, phi, underflow_f );
1126  //
1127  // double underflow_c = phi_vs_eta_coarse->GetBinContent( 0, phi )
1128  // + phi_eta_coarse_integ->getBinContent( 1, phi );
1129  // phi_eta_coarse_integ->setBinContent( 1, phi, underflow_c );
1130  //
1131  // double overflow_f = phi_vs_eta_fine->GetBinContent( nbins+1, phi )
1132  // + phi_eta_fine_integ->getBinContent( 64 );
1133  // phi_eta_fine_integ->setBinContent( 64, phi, overflow_f );
1134  //
1135  // double overflow_c = phi_vs_eta_coarse->GetBinContent( nbins+1, phi )
1136  // + phi_eta_coarse_integ->getBinContent( 64, phi );
1137  // phi_eta_coarse_integ->setBinContent( 64, phi, overflow_c );
1138  //
1139  // double underflow = underflow_f + underflow_c;
1140  // phi_eta_integ->setBinContent( 1, phi, underflow );
1141  //
1142  // double overflow = overflow_f + overflow_c;
1143  // phi_eta_integ->setBinContent( 64, phi, overflow );
1144 
1145  }
1146 
1147 }
1148 
1149 
1150 //--------------------------------------------------------
1152  const std::string & path,
1153  int wh )
1154 {
1155  char hname[100];
1156  sprintf( hname, path.c_str(),
1157  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1158 
1159  TH2F * phi_vs_eta = getTH2F(igetter, hname);
1160  if ( ! phi_vs_eta ) {
1161  edm::LogError("L1TDTTFClient::buildPhiEtaPlotO:ME") << "Failed to get TH1D "
1162  << std::string(hname);
1163  } else {
1164 
1165  for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1166  float start = 0;
1167  int nbins = 0;
1168  switch ( wh ) {
1169  case 0 : start = 0; nbins = 18; break; // N2
1170  case 1 : start = 8; nbins = 20; break; // N1
1171  case 2 : start = 22; nbins = 10; break; // N0
1172  case 3 : start = 22; nbins = 20; break; // P0
1173  case 4 : start = 36; nbins = 20; break; // P1
1174  case 5 : start = 46; nbins = 18; break; // P2
1175  default : start = 0; nbins = 0; break; // BOH
1176  }
1177 
1178  for ( int eta = 1; eta <= nbins ; ++eta ) {
1179  double setbin = eta + start;
1180  double val = phi_vs_eta->GetBinContent( eta, phi )
1181  + phi_eta_integ->getBinContent( setbin, phi );
1182  phi_eta_integ->setBinContent( setbin, phi, val );
1183  }
1184 
1185  double underflow = phi_vs_eta->GetBinContent( 0, phi )
1186  + phi_eta_integ->getBinContent( 1, phi );
1187  phi_eta_integ->setBinContent( 1, phi, underflow );
1188 
1189  double overflow = phi_vs_eta->GetBinContent( nbins+1, phi )
1190  + phi_eta_integ->getBinContent( 64 );
1191  phi_eta_integ->setBinContent( 64, phi, overflow );
1192 
1193  }
1194  }
1195 }
1196 
1197 
1198 // //--------------------------------------------------------
1199 // void L1TDTTFClient::buildPhiEtaPlot( MonitorElement * phi_eta_integ,
1200 // const std::string & path ,
1201 // int wh)
1202 // {
1203 // char hname[60];
1204 // sprintf( hname, "%s/dttf_phi_eta_wh%s",
1205 // wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1206 //
1207 // TH2F * phi_vs_eta = getTH2F(hname);
1208 // if ( ! phi_vs_eta ) {
1209 // edm::LogError("L1TDTTFClient::buildPhiEtaPlot:ME") << "Failed to get TH1D "
1210 // << std::string(hname);
1211 // } else {
1212 //
1213 //
1214 // for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1215 // for ( unsigned int eta = 1; eta < 65 ; ++eta ) {
1216 // double val = phi_vs_eta->GetBinContent( eta, phi )
1217 // + dttf_phi_eta_integ->getBinContent( eta, phi );
1218 // dttf_phi_eta_integ->setBinContent( eta, phi, val );
1219 // }
1220 //
1221 // }
1222 // }
1223 // }
1224 //
1225 //
1226 // //--------------------------------------------------------
1227 // void L1TDTTFClient::buildPhiEtaPlotFC( MonitorElement * phi_eta_fine_integ,
1228 // MonitorElement * phi_eta_coarse_integ,
1229 // MonitorElement * phi_eta_integ,
1230 // const std::string & path_fine,
1231 // const std::string & path_coarse,
1232 // int wh )
1233 // {
1234 //
1235 // char hname[60];
1236 //
1237 // sprintf( hname, path_fine.c_str(),
1238 // wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1239 // TH2F * phi_vs_eta_fine = getTH2F(hname);
1240 // if ( ! phi_vs_eta_fine ) {
1241 // edm::LogError("L1TDTTFClient::buildPhiEtaPlotFC")
1242 // << "Failed to get TH1D " << std::string(hname);
1243 // }
1244 //
1245 //
1246 // sprintf( hname, path_coarse.c_str(),
1247 // wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1248 // TH2F * phi_vs_eta_coarse = getTH2F(hname);
1249 // if ( ! phi_vs_eta_coarse ) {
1250 // edm::LogError("L1TDTTFClient::buildPhiEtaPlotFC")
1251 // << "Failed to get TH1D " << std::string(hname);
1252 // }
1253 //
1254 // if ( ! phi_vs_eta_fine || ! phi_vs_eta_coarse ) {
1255 // return;
1256 // }
1257 //
1258 // for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1259 // for ( unsigned int eta = 1; eta < 65 ; ++eta ) {
1260 //
1261 // double valfine = phi_vs_eta_fine->GetBinContent( eta, phi )
1262 // + dttf_phi_eta_fine_integ->getBinContent( eta, phi );
1263 // dttf_phi_eta_fine_integ->setBinContent( eta, phi, valfine );
1264 // double valcoarse = phi_vs_eta_coarse->GetBinContent( eta, phi )
1265 // + dttf_phi_eta_coarse_integ->getBinContent( eta, phi );
1266 // dttf_phi_eta_coarse_integ->setBinContent( eta, phi, valcoarse );
1267 //
1268 // dttf_phi_eta_integ->setBinContent( eta, phi, valfine + valcoarse );
1269 //
1270 // }
1271 //
1272 // }
1273 // }
1274 
1275 
1276 
1277 
1278 //--------------------------------------------------------
1280 {
1281  me->setAxisTitle("Wheel", 1);
1282  me->setBinLabel(1, "N2", 1);
1283  me->setBinLabel(2, "N1", 1);
1284  me->setBinLabel(3, "N0", 1);
1285  me->setBinLabel(4, "P0", 1);
1286  me->setBinLabel(5, "P1", 1);
1287  me->setBinLabel(6, "P2", 1);
1288 
1289 }
1290 
1291 
1292 //--------------------------------------------------------
1294 {
1295 
1296  if( axis == 1 )
1297  me->setAxisTitle("Quality", axis);
1298  me->setBinLabel(1, "T34", axis);
1299  me->setBinLabel(2, "T23/24", axis);
1300  me->setBinLabel(3, "T12/13/14", axis);
1301  me->setBinLabel(4, "T234", axis);
1302  me->setBinLabel(5, "T134", axis);
1303  me->setBinLabel(6, "T123/124", axis);
1304  me->setBinLabel(7, "T1234", axis);
1305 }
1306 
1307 
1308 
1309 
1310 
1311 
1312 
1313 
1314 
MonitorElement * dttf_bx_integ_2ndTrack
Definition: L1TDTTFClient.h:80
Definition: start.py:1
MonitorElement * dttf_gmt_matching
Definition: L1TDTTFClient.h:72
MonitorElement * dttf_occupancySummary
Definition: L1TDTTFClient.h:56
MonitorElement * dttf_quality_summary
Definition: L1TDTTFClient.h:61
void setBinContent(int binx, double content)
set content of bin (1-D)
L1TDTTFClient(const edm::ParameterSet &ps)
Constructor.
MonitorElement * dttf_q_wheel[6]
Definition: L1TDTTFClient.h:99
MonitorElement * dttf_eta_integ_2ndTrack
Definition: L1TDTTFClient.h:85
MonitorElement * dttf_quality_integ_2ndTrack
Definition: L1TDTTFClient.h:81
MonitorElement * dttf_eta_wheel[6]
Definition: L1TDTTFClient.h:96
void buildSummaries(DQMStore::IGetter &igetter)
void dqmEndLuminosityBlock(DQMStore::IBooker &ibooker, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) override
TH1F * getTH1F() const
MonitorElement * dttf_nTracks_integ
Definition: L1TDTTFClient.h:55
MonitorElement * get(const std::string &path)
Definition: DQMStore.cc:302
MonitorElement * dttf_quality_integ
Definition: L1TDTTFClient.h:60
TH1F * getTH1F(DQMStore::IGetter &igetter, const char *hname)
std::string wheelpath_[6]
Definition: L1TDTTFClient.h:50
void buildPhiEtaPlotO(DQMStore::IGetter &igetter, MonitorElement *phi_eta_integ, const std::string &path, int wh)
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)
MonitorElement * dttf_bx_wheel_integ_2ndTrack[6]
void buildHighQualityPlot(DQMStore::IGetter &igetter, TH2F *occupancySummary, MonitorElement *highQual_Summary, const std::string &path)
void book(DQMStore::IBooker &ibooker)
MonitorElement * dttf_bx_wheel_summary[6]
Definition: L1TDTTFClient.h:91
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
#define nullptr
MonitorElement * dttf_pt_integ_2ndTrack
Definition: L1TDTTFClient.h:87
MonitorElement * dttf_bx_integ
Definition: L1TDTTFClient.h:58
TH2F * getTH2F(DQMStore::IGetter &igetter, const char *hname)
MonitorElement * dttf_phi_eta_fine_integ
Definition: L1TDTTFClient.h:64
MonitorElement * dttf_highQual_Summary_2ndTrack
Definition: L1TDTTFClient.h:83
MonitorElement * dttf_phi_wheel[6]
Definition: L1TDTTFClient.h:97
MonitorElement * dttf_phi_eta_integ
Definition: L1TDTTFClient.h:65
MonitorElement * dttf_quality_summary_wheel[6]
Definition: L1TDTTFClient.h:94
MonitorElement * dttf_pt_integ
Definition: L1TDTTFClient.h:68
MonitorElement * dttf_phi_eta_coarse_integ
Definition: L1TDTTFClient.h:63
TH2F * occupancy_r_
counter
Definition: L1TDTTFClient.h:47
~L1TDTTFClient() override
Destructor.
MonitorElement * dttf_occupancySummary_2ndTrack
Definition: L1TDTTFClient.h:78
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:118
MonitorElement * dttf_eta_integ
Definition: L1TDTTFClient.h:69
MonitorElement * dttf_2ndTrack_Summary
Definition: L1TDTTFClient.h:73
std::string gmtpath_
Definition: L1TDTTFClient.h:52
MonitorElement * dttf_q_integ_2ndTrack
Definition: L1TDTTFClient.h:88
void Reset()
reset ME (ie. contents, errors, etc)
MonitorElement * dttf_bx_wheel_summary_2ndTrack[6]
TH2F * getTH2F() const
MonitorElement * dttf_bx_summary
Definition: L1TDTTFClient.h:57
MonitorElement * dttf_quality_wheel[6]
Definition: L1TDTTFClient.h:93
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:136
void makeSummary(DQMStore::IGetter &igetter)
MonitorElement * dttf_eta_fine_fraction
Definition: L1TDTTFClient.h:66
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
std::string l1tdttffolder_
Definition: L1TDTTFClient.h:41
double getBinContent(int binx) const
get content of bin (1-D)
HLT enums.
MonitorElement * dttf_occupancySummary_test
Definition: L1TDTTFClient.h:75
MonitorElement * dttf_fine_fraction_wh[6]
Definition: L1TDTTFClient.h:95
void setQualLabel(MonitorElement *me, int axis)
MonitorElement * dttf_nTracks_wheel[6]
Definition: L1TDTTFClient.h:90
MonitorElement * dttf_bx_summary_2ndTrack
Definition: L1TDTTFClient.h:79
MonitorElement * dttf_nTracks_integ_2ndTrack
Definition: L1TDTTFClient.h:77
void buildPhiEtaPlotOFC(DQMStore::IGetter &igetter, MonitorElement *phi_eta_fine_integ, MonitorElement *phi_eta_coarse_integ, MonitorElement *phi_eta_integ, const std::string &path_fine, const std::string &path_coarse, int wh)
void setGMTsummary(DQMStore::IGetter &igetter)
MonitorElement * dttf_phi_integ_2ndTrack
Definition: L1TDTTFClient.h:86
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
MonitorElement * dttf_pt_wheel[6]
Definition: L1TDTTFClient.h:98
MonitorElement * dttf_nTracks_wheel_2ndTrack[6]
MonitorElement * dttf_phi_integ
Definition: L1TDTTFClient.h:67
MonitorElement * dttf_highQual_Summary
Definition: L1TDTTFClient.h:62
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * dttf_q_integ
Definition: L1TDTTFClient.h:70
MonitorElement * dttf_bx_wheel_integ[6]
Definition: L1TDTTFClient.h:92
void normalize(T *me)
std::string inclusivepath_
Definition: L1TDTTFClient.h:51
std::string testpath_
Definition: L1TDTTFClient.h:53
void setWheelLabel(MonitorElement *me)
std::string wheel_[6]
Definition: L1TDTTFClient.h:49
MonitorElement * dttf_quality_summary_2ndTrack
Definition: L1TDTTFClient.h:82
MonitorElement * dttf_phi_eta_integ_2ndTrack
Definition: L1TDTTFClient.h:84