CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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_(0)
25 {
26  edm::LogInfo( "L1TDTTFClient");
27 }
28 
29 
30 //--------------------------------------------------------
32  edm::LogInfo("L1TDTTFClient")<<"[L1TDTTFClient]: ending... ";
33 }
34 
35 
36 //--------------------------------------------------------
38 {
39 
41 
42  edm::LogInfo("L1TDTTFClient")<<"[L1TDTTFClient]: Begin Job";
43 
44  wheelpath_[0] = l1tdttffolder_ + "/02-WHEEL_N2";
45  wheelpath_[1] = l1tdttffolder_ + "/03-WHEEL_N1";
46  wheelpath_[2] = l1tdttffolder_ + "/04-WHEEL_N0";
47  wheelpath_[3] = l1tdttffolder_ + "/05-WHEEL_P0";
48  wheelpath_[4] = l1tdttffolder_ + "/06-WHEEL_P1";
49  wheelpath_[5] = l1tdttffolder_ + "/07-WHEEL_P2";
50 
51  wheel_[0] = "N2";
52  wheel_[1] = "N1";
53  wheel_[2] = "N0";
54  wheel_[3] = "P0";
55  wheel_[4] = "P1";
56  wheel_[5] = "P2";
57 
58  inclusivepath_ = l1tdttffolder_ + "/01-INCLUSIVE";
59  gmtpath_ = l1tdttffolder_ + "/08-GMT_MATCH";
60  testpath_ = l1tdttffolder_ + "/09-TEST";
61 
63  char hname[100];//histo name
64  char mename[100];//ME name
65 
67 
69  sprintf(hname, "dttf_02_nTracks");
70  sprintf(mename, "DTTF Tracks by Wheel");
71  dttf_nTracks_integ = ibooker.book1D(hname, mename, 6, 0, 6);
73 
75  sprintf(hname, "dttf_03_tracks_occupancy_summary");
76  sprintf(mename, "DTTF Tracks Occupancy");
77  dttf_occupancySummary = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
79  dttf_occupancySummary->setAxisTitle("Sector", 2);
80 
82 
84  sprintf(hname, "dttf_05_bx_occupancy");
85  sprintf(mename, "DTTF Tracks BX Distribution by Wheel");
86  dttf_bx_summary = ibooker.book2D(hname, mename, 6, 0, 6, 3, -1, 2 );
88  dttf_bx_summary->setAxisTitle("BX", 2 );
89 
91  sprintf(hname, "dttf_06_bx");
92  sprintf(mename, "DTTF Tracks BX w.r.t. Tracks with BX=0");
93  dttf_bx_integ = ibooker.book1D( hname, mename, 3, -1.5, 1.5 );
94  dttf_bx_integ->setAxisTitle("BX", 1);
95 
97  sprintf(hname, "dttf_07_quality");
98  sprintf(mename, "DTTF Tracks Quality distribution");
99  dttf_quality_integ = ibooker.book1D(hname, mename, 7, 1, 8);
101 
103  sprintf(hname, "dttf_08_quality_occupancy");
104  sprintf(mename, "DTTF Tracks Quality distribution by Wheel");
105  dttf_quality_summary = ibooker.book2D( hname, mename, 6, 0, 6, 7, 1, 8 );
106  dttf_quality_summary->setAxisTitle("Wheel", 1);
109 
111  sprintf(hname, "dttf_09_highQuality_Tracks");
112  sprintf(mename, "Fraction of DTTF Tracks with Quality>3");
113  dttf_highQual_Summary = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
115  dttf_highQual_Summary->setAxisTitle("Sector", 2);
116 
117 
119  sprintf(hname, "dttf_10_phi_vs_etaCoarse");
120  sprintf(mename, "#eta-#phi DTTF Tracks occupancy (coarse #eta only, packed values)");
121  dttf_phi_eta_coarse_integ = ibooker.book2D( hname, mename, 64, 0, 64,
122  144, -6, 138. );
125 
127  sprintf(hname, "dttf_11_phi_vs_etaFine");
128  sprintf(mename, "#eta-#phi DTTF Tracks occupancy (fine #eta only, packed values)");
129  dttf_phi_eta_fine_integ = ibooker.book2D( hname, mename, 64, 0, 64,
130  144, -6, 138. );
133 
135  sprintf(hname, "dttf_12_phi_vs_eta");
136  sprintf(mename, "#eta-#phi DTTF Tracks occupancy");
137  dttf_phi_eta_integ = ibooker.book2D( hname, mename, 64, -1.2, 1.2,
138  144, -15, 345. );
139  dttf_phi_eta_integ->setAxisTitle("#eta", 1);
140  dttf_phi_eta_integ->setAxisTitle("#phi", 2);
141 
143  sprintf(hname, "dttf_13_eta_fine_fraction");
144  sprintf(mename, "Fraction of DTTF Tracks with Fine #eta Assignment");
145  dttf_eta_fine_fraction = ibooker.book1D( hname, mename, 6, 0, 6 );
148 
150 
152  sprintf(hname, "dttf_14_eta");
153  sprintf(mename, "DTTF Tracks #eta distribution (Packed values)");
154  dttf_eta_integ = ibooker.book1D(hname, mename, 64, -0.5, 63.5);
155  dttf_eta_integ->setAxisTitle("#eta", 1);
156 
158  sprintf(hname, "dttf_15_phi");
159  sprintf(mename, "DTTF Tracks Phi distribution (Packed values)");
160  dttf_phi_integ = ibooker.book1D(hname, mename, 144, -6, 138. );
161  dttf_phi_integ->setAxisTitle("#phi", 1);
162 
164  sprintf(hname, "dttf_16_pt");
165  sprintf(mename, "DTTF Tracks p_{T} distribution (Packed values)");
166  dttf_pt_integ = ibooker.book1D(hname, mename, 32, -0.5, 31.5);
167  dttf_pt_integ->setAxisTitle("p_{T}", 1);
169  sprintf(hname, "dttf_17_charge");
170  sprintf(mename, "DTTF Tracks Charge distribution");
171  dttf_q_integ = ibooker.book1D(hname, mename, 2, -0.5, 1.5);
172  dttf_q_integ->setAxisTitle("Charge", 1);
173 
174 
175 
177  sprintf(hname, "dttf_18_2ndTrack_occupancy_summary");
178  sprintf(mename, "DTTF 2nd Tracks occupancy w.r.t. Tracks with BX=0");
179  dttf_2ndTrack_Summary = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
181 
182 
183 
187  ibooker.setCurrentFolder( gmtpath_ );
188  sprintf(hname, "dttf_gmt_fract_matching" );
189  sprintf(mename, "Fraction of DTTF tracks matching with GMT tracks" );
190  dttf_gmt_matching = ibooker.book1D( hname, mename, 3, 1, 4);
191  dttf_gmt_matching->setBinLabel(1, "GMT Only", 1);
192  dttf_gmt_matching->setBinLabel(2, "Matching", 1);
193  dttf_gmt_matching->setBinLabel(3, "DTTF Only", 1);
194 
195 
199 
200  ibooker.setCurrentFolder( testpath_ );
201  sprintf(hname, "dttf_01_tracks_occupancy_test_summary");
202  sprintf(mename, "DTTF Tracks Occupancy");
203  dttf_occupancySummary_test = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
206 
207 
211  ibooker.setCurrentFolder( inclusivepath_ + "/2ND_TRACK_ONLY");
212 
214  sprintf(hname, "dttf_01_nTracks_2ndTrack");
215  sprintf(mename, "DTTF 2nd Tracks per Wheel distribution");
216  dttf_nTracks_integ_2ndTrack = ibooker.book1D(hname, mename, 6, 0, 6);
218 
220  sprintf(hname, "dttf_02_occupancy_summary_2ndTrack");
221  sprintf(mename, "DTTF 2nd Tracks distribution by Sector and Wheel");
222  dttf_occupancySummary_2ndTrack = ibooker.book2D( hname, mename, 6, 0, 6,
223  12, 1, 13 );
225 
227  sprintf(hname, "dttf_03_bx_occupancy_2ndTrack");
228  sprintf(mename, "DTTF 2nd Tracks BX Distribution by Wheel");
229  dttf_bx_summary_2ndTrack = ibooker.book2D( hname, mename, 6, 0, 6, 3, -1, 2 );
232 
234  sprintf(hname, "dttf_04_bx_2ndTrack");
235  sprintf(mename, "Fraction of DTTF Tracks BX w.r.t. Tracks with BX=0");
236  dttf_bx_integ_2ndTrack = ibooker.book1D( hname, mename, 3, -1.5, 1.5 );
238 
240  sprintf(hname, "dttf_05_quality_2ndTrack");
241  sprintf(mename, "DTTF 2nd Tracks Quality distribution");
242  dttf_quality_integ_2ndTrack = ibooker.book1D(hname, mename, 7, 0.5, 7.5);
245 
247  sprintf(hname, "dttf_06_quality_occupancy_2ndTrack");
248  sprintf(mename, "DTTF 2nd Tracks Quality distribution by Wheel");
249  dttf_quality_summary_2ndTrack = ibooker.book2D( hname, mename,
250  6, 0, 6, 7, 1, 8 );
254 
256  sprintf(hname, "dttf_07_highQuality_Tracks_2ndTrack");
257  sprintf(mename, "Fraction of DTTF 2nd Tracks with Quality>3");
258  dttf_highQual_Summary_2ndTrack = ibooker.book2D( hname, mename, 6, 0, 6,
259  12, 1, 13 );
262 
264  sprintf(hname, "dttf_08_phi_vs_eta_2ndTrack");
265  sprintf(mename, "#eta-#phi DTTF Tracks occupancy for 2nd Tracks");
266  dttf_phi_eta_integ_2ndTrack = ibooker.book2D( hname, mename, 64, 0, 64,
267  144, -6, 138. );
270 
272  sprintf(hname, "dttf_09_eta_2ndTrack");
273  sprintf(mename, "DTTF 2nd Tracks #eta distribution (Packed values)");
274  dttf_eta_integ_2ndTrack = ibooker.book1D(hname, mename, 64, -0.5, 63.5);
276 
278  sprintf(hname, "dttf_10_phi_2ndTrack");
279  sprintf(mename, "DTTF 2nd Tracks Phi distribution (Packed values)");
280  dttf_phi_integ_2ndTrack = ibooker.book1D(hname, mename, 144, -6, 138 );
282 
284  sprintf(hname, "dttf_11_pt_2ndTrack");
285  sprintf(mename, "DTTF 2nd Tracks p_{T} distribution (Packed values)");
286  dttf_pt_integ_2ndTrack = ibooker.book1D(hname, mename, 32, -0.5, 31.5);
288 
290  sprintf(hname, "dttf_12_charge_2ndTrack");
291  sprintf(mename, "DTTF 2nd Tracks Charge distribution");
292  dttf_q_integ_2ndTrack = ibooker.book1D(hname, mename, 2, -0.5, 1.5);
293  dttf_q_integ_2ndTrack->setAxisTitle("Charge", 1);
294 
295 
296  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
297  ibooker.setCurrentFolder( wheelpath_[wh] );
298 
300  sprintf( hname, "dttf_02_nTracks_wh%s", wheel_[wh].c_str() );
301  sprintf( mename, "Wheel %s - Number of Tracks", wheel_[wh].c_str() );
302  dttf_nTracks_wheel[wh] = ibooker.book1D( hname, mename, 12, 1, 13);
303  dttf_nTracks_wheel[wh]->setAxisTitle("sector", 1);
304 
306  sprintf(hname, "dttf_03_bx_occupancy_wh%s", wheel_[wh].c_str() );
307  sprintf(mename, "Wheel %s - DTTF Tracks BX distribution by Sector",
308  wheel_[wh].c_str());
309  dttf_bx_wheel_summary[wh] = ibooker.book2D( hname, mename, 12, 1, 13, 3, -1, 2);
310  dttf_bx_wheel_summary[wh]->setAxisTitle("BX", 2 );
311  dttf_bx_wheel_summary[wh]->setAxisTitle("Sector", 1 );
312 
314  sprintf(hname, "dttf_04_bx_wh%s", wheel_[wh].c_str());
315  sprintf(mename, "Wheel %s - DTTF Tracks BX w.r.t. Tracks with BX=0", wheel_[wh].c_str());
316  dttf_bx_wheel_integ[wh] = ibooker.book1D(hname, mename, 3, -1.5, 1.5);
317  dttf_bx_wheel_integ[wh]->setAxisTitle("BX", 1);
318 
320  sprintf(hname, "dttf_05_quality_wh%s", wheel_[wh].c_str() );
321  sprintf(mename, "Wheel %s - Tracks Quality Distribution", wheel_[wh].c_str() );
322  dttf_quality_wheel[wh] = ibooker.book1D(hname, mename, 7, 1, 8);
323  dttf_quality_wheel[wh]->setAxisTitle("Quality", 1);
325 
327  sprintf(hname, "dttf_06_quality_summary_wh%s", wheel_[wh].c_str() );
328  sprintf(mename, "Wheel %s - Tracks Quality Distribution by Sector",
329  wheel_[wh].c_str() );
330  dttf_quality_summary_wheel[wh] = ibooker.book2D(hname, mename, 12, 1, 13, 7, 1, 8);
331  dttf_quality_summary_wheel[wh]->setAxisTitle("Sector", 1);
332  // dttf_quality_summary_wheel[wh]->setAxisTitle("Quality", 2);
334 
336  sprintf(hname, "dttf_09_etaFine_fraction_wh%s", wheel_[wh].c_str() );
337  sprintf(mename, "Wheel %s - Fraction of DTTF Tracks with fine #eta assignment",
338  wheel_[wh].c_str());
339  dttf_fine_fraction_wh[wh] = ibooker.book1D( hname, mename, 12, 1, 13);
340  dttf_fine_fraction_wh[wh]->setAxisTitle("Sector", 1 );
341 
342 
344  sprintf(hname, "dttf_10_eta_wh%s", wheel_[wh].c_str() );
345  sprintf(mename, "Wheel %s - DTTF Tracks #eta distribution (Packed values)",
346  wheel_[wh].c_str() );
347  dttf_eta_wheel[wh] = ibooker.book1D(hname, mename, 64, -0.5, 63.5 );
348  dttf_eta_wheel[wh]->setAxisTitle("#eta", 1 );
349 
351  sprintf(hname, "dttf_11_phi_wh%s", wheel_[wh].c_str() );
352  sprintf(mename, "Wheel %s - DTTF Tracks Phi distribution (Packed values)",
353  wheel_[wh].c_str() );
354  dttf_phi_wheel[wh] = ibooker.book1D(hname, mename, 144, -6, 138. );
355  dttf_phi_wheel[wh]->setAxisTitle("#phi", 1);
356 
358  sprintf(hname, "dttf_12_pt_wh%s", wheel_[wh].c_str() );
359  sprintf(mename, "Wheel %s - DTTF Tracks p_{T} distribution (Packed values)",
360  wheel_[wh].c_str() );
361  dttf_pt_wheel[wh] = ibooker.book1D(hname, mename, 32, -0.5, 31.5);
362  dttf_pt_wheel[wh]->setAxisTitle("p_{T}", 1);
363 
365  sprintf(hname, "dttf_13_charge_wh%s", wheel_[wh].c_str() );
366  sprintf(mename, "Wheel %s - DTTF Tracks Charge distribution",
367  wheel_[wh].c_str() );
368  dttf_q_wheel[wh] = ibooker.book1D(hname, mename, 2, -0.5, 1.5);
369  dttf_q_wheel[wh]->setAxisTitle("Charge", 1);
370 
371  }
372 
373 
375  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
376  ibooker.setCurrentFolder( wheelpath_[wh] + "/2ND_TRACK_ONLY" );
377 
379  sprintf( hname, "dttf_01_nTracks_wh%s_2ndTrack", wheel_[wh].c_str() );
380  sprintf( mename, "Wheel %s - DTTF Number of 2nd Tracks with BX=0",
381  wheel_[wh].c_str() );
382  dttf_nTracks_wheel_2ndTrack[wh] = ibooker.book1D( hname, mename,
383  12, 1, 13);
384  dttf_nTracks_wheel_2ndTrack[wh]->setAxisTitle("sector", 1);
385 
387  sprintf(hname, "dttf_02_bx_occupancy_wh%s_2ndTrack", wheel_[wh].c_str() );
388  sprintf(mename, "Wheel %s - DTTF 2nd Tracks BX distribution by Sector",
389  wheel_[wh].c_str());
390  dttf_bx_wheel_summary_2ndTrack[wh] = ibooker.book2D( hname, mename, 12, 1, 13, 3, -1, 2);
392  dttf_bx_wheel_summary_2ndTrack[wh]->setAxisTitle("Sector", 1 );
393 
395  sprintf(hname, "dttf_03_bx_wh%s_2ndTrack", wheel_[wh].c_str());
396  sprintf(mename, "Wheel %s - 2nd Tracks BX Distribution", wheel_[wh].c_str());
397  dttf_bx_wheel_integ_2ndTrack[wh] = ibooker.book1D(hname, mename, 3, -1.5, 1.5);
399 
400 
401  }
402 
403 
404 
405 }
406 
407 //--------------------------------------------------------
408 
410 
411  //Processing by run ID
412  book(ibooker);
413  makeSummary(igetter);
414 
415 }
416 
417 //--------------------------------------------------------
419 {
421  if ( online_ && !( counterLS_ % resetafterlumi_ ) ) {
422  book(ibooker);
423  char hname[60];
424  sprintf( hname, "%s/dttf_04_tracks_occupancy_by_lumi",
425  inclusivepath_.c_str() );
426 
427  occupancy_r_ = getTH2F(igetter, hname);
428  if ( ! occupancy_r_ ) {
429  edm::LogError("L1TDTTFClient::beginLuminosityBlock:ME")
430  << "Failed to get TH2D " << std::string(hname);
431  } else {
432  edm::LogInfo("L1TDTTFClient::beginLuminosityBlock:RESET") << "Reseting plots by lumi!";
433  occupancy_r_->Reset();
434  }
435  }
436 
437  if ( online_ ) {
438  makeSummary(igetter);
440  }
441 
442 }
443 
444 //--------------------------------------------------------
446 {
450  buildSummaries(igetter);
451 
455  double scale = 0;
456  double entries = dttf_occupancySummary->getTH2F()->Integral();
457 
458  if ( entries ) {
459 
462 
464  scale = 1 / entries;
467 
469  double physEntries = dttf_eta_integ->getTH1F()->Integral();
470  if ( physEntries > 0 ) {
471  double physScale = 1 / physEntries;
472 
473  normalize( dttf_phi_eta_integ->getTH2F(), physScale );
474 
475  normalize( dttf_phi_eta_fine_integ->getTH2F(), physScale );
477  normalize( dttf_quality_summary->getTH2F(), physScale );
478 
479  normalize( dttf_eta_integ->getTH1F(), physScale );
480  normalize( dttf_q_integ->getTH1F(), physScale );
481  normalize( dttf_pt_integ->getTH1F(), physScale );
482  normalize( dttf_phi_integ->getTH1F(), physScale );
483  normalize( dttf_quality_integ->getTH1F(), physScale );
484 
485  }
486 
487  }
488 
492 
493  double entries2ndTrack = dttf_occupancySummary_2ndTrack->getTH2F()->Integral();
494  if ( entries2ndTrack > 0 ) {
495 
498 
500  TH2F * ratio = dttf_occupancySummary_2ndTrack->getTH2F();
502  "%s/2ND_TRACK_ONLY/dttf_05_quality_summary_wh%s_2ndTrack" );
503 
505 
507  double scale2nd = 1 / entries2ndTrack;
509  normalize( dttf_nTracks_integ_2ndTrack->getTH1F(), scale2nd ); //
510 
511 
520 
521  }
522 
524  setGMTsummary(igetter);
525 
526 }
527 
528 
529 
530 
531 //--------------------------------------------------------
533 {
534 
535  char hname[100];
536  int wheelBx[4];
537  int wheelBx2nd[4];
538  int wheelSumBx[4];
539  int wheelSumBx2nd[4];
540  int qualities[8];
541 
542  memset( wheelSumBx, 0, 4 * sizeof(int) );
543  memset( wheelSumBx2nd, 0, 4 * sizeof(int) );
544 
547  dttf_q_integ->Reset();
548  dttf_pt_integ->Reset();
558 
562 
563  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
564 
565  dttf_eta_wheel[wh]->Reset();
566  dttf_q_wheel[wh]->Reset();
567  dttf_pt_wheel[wh]->Reset();
568  dttf_phi_wheel[wh]->Reset();
569  dttf_quality_wheel[wh]->Reset();
571 
572  double wheelEtaAll = 0;
573  double wheelEtaFine = 0;
574  memset( wheelBx, 0, 4 * sizeof(int) );
575  memset( wheelBx2nd, 0, 4 * sizeof(int) );
576 
578  memset( qualities, 0, 8 * sizeof(int) );
579 
585  "%s/dttf_07_phi_vs_etaFine_wh%s",
586  "%s/dttf_08_phi_vs_etaCoarse_wh%s", wh );
587 
589  "%s/2ND_TRACK_ONLY/dttf_06_phi_vs_eta_wh%s_2ndTrack",
590  wh );
591 
592 
596  for ( unsigned int sector = 1; sector < 13; ++sector ) {
597 
601  sprintf( hname, "%s/BX_BySector/dttf_bx_wh%s_se%d",
602  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
603 
604  TH1F * bxsector = getTH1F(igetter,hname);
605  if ( ! bxsector ) {
606  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
607  << std::string(hname);
608  } else {
609 
610  for ( unsigned int bx = 1; bx < 4 ; ++bx ) {
611 
612  int bxval = bxsector->GetBinContent( bx );
613 
614  if ( bx == 2 ) {
615  // if ( wh == 2 )
616  // dttf_occupancySummary->setBinContent( wh+1, sector, bxval*14 );
617  // else
618  // dttf_occupancySummary->setBinContent( wh+1, sector, bxval );
619  dttf_occupancySummary->setBinContent( wh+1, sector, bxval );
620  dttf_occupancySummary_test->setBinContent( wh+1, sector, bxval );
621  dttf_nTracks_wheel[wh]->setBinContent(sector, bxval );
622  }
623  wheelBx[bx] += bxval;
624  dttf_bx_wheel_summary[wh]->setBinContent( sector, bx, bxval );
625  }
626  }
627 
628 
632  sprintf( hname, "%s/BX_BySector/2ND_TRACK_ONLY/dttf_bx_2ndTrack_wh%s_se%d",
633  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
634 
635  TH1F * bxsector2nd = getTH1F(igetter,hname);
636  if ( ! bxsector2nd ) {
637  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
638  << std::string(hname);
639  } else {
640 
641  for ( unsigned int bx = 1; bx < 4 ; ++bx ) {
642  int bxval = bxsector2nd->GetBinContent( bx );
643 
644  if ( bx == 2 ) {
645  dttf_2ndTrack_Summary->setBinContent( wh+1, sector, bxval );
646  dttf_occupancySummary_2ndTrack->setBinContent(wh+1, sector, bxval);
647  dttf_nTracks_wheel_2ndTrack[wh]->setBinContent(sector, bxval );
648  }
649  wheelBx2nd[bx] += bxval;
650  dttf_bx_wheel_summary_2ndTrack[wh]->setBinContent(sector, bx, bxval);
651  }
652  }
653 
657  sprintf( hname, "%s/Charge/dttf_charge_wh%s_se%d",
658  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
659  TH1F * tmp = getTH1F(igetter,hname);
660  if ( ! tmp ) {
661  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
662  << std::string(hname);
663  } else {
664  dttf_q_integ->getTH1F()->Add( tmp );
665  dttf_q_wheel[wh]->getTH1F()->Add( tmp );
666  }
667 
671  sprintf( hname, "%s/PT/dttf_pt_wh%s_se%d",
672  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
673  tmp = getTH1F(igetter, hname);
674  if ( ! tmp ) {
675  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
676  << std::string(hname);
677  } else {
678  dttf_pt_integ->getTH1F()->Add( tmp );
679  dttf_pt_wheel[wh]->getTH1F()->Add( tmp );
680  }
681 
682 
686  sprintf( hname, "%s/Phi/dttf_phi_wh%s_se%d",
687  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
688  tmp = getTH1F(igetter,hname);
689  if ( ! tmp ) {
690  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
691  << std::string(hname);
692  } else {
693  dttf_phi_integ->getTH1F()->Add( tmp );
694  dttf_phi_wheel[wh]->getTH1F()->Add( tmp );
695  }
696 
697 
701  double highQual = 0;
702  double denHighQual = 0;
703  sprintf( hname, "%s/Quality/dttf_qual_wh%s_se%d",
704  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
705  tmp = getTH1F(igetter,hname);
706  if ( ! tmp ) {
707  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
708  << std::string(hname);
709  } else {
710 
711  dttf_quality_wheel[wh]->getTH1F()->Add( tmp );
712 
713 
714  for ( unsigned int qual = 1; qual < 4 ; ++qual ) {
715  double bincontent = tmp->GetBinContent( qual );
716  qualities[qual] += bincontent;
717  denHighQual += bincontent;
718  dttf_quality_summary_wheel[wh]->setBinContent(sector, qual, bincontent);
719  }
720 
721  for ( unsigned int qual = 4; qual < 8 ; ++qual ) {
722  double bincontent = tmp->GetBinContent( qual );
723  qualities[qual] += bincontent;
724  dttf_quality_summary_wheel[wh]->setBinContent(sector, qual, bincontent);
725  denHighQual += bincontent;
726  highQual += bincontent;
727  }
728 
729  }
730  if ( denHighQual > 0 ) highQual /= denHighQual;
731  dttf_highQual_Summary->setBinContent( wh+1, sector, highQual );
732 
733 
737  sprintf( hname, "%s/Eta/dttf_eta_wh%s_se%d",
738  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
739  tmp = getTH1F(igetter,hname);
740  if ( ! tmp ) {
741  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
742  << std::string(hname);
743  } else {
744  dttf_eta_integ->getTH1F()->Add( tmp );
745  dttf_eta_wheel[wh]->getTH1F()->Add( tmp );
746  }
747 
748 
752  sprintf( hname, "%s/EtaFineFraction/dttf_etaFine_fraction_wh%s_se%d",
753  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
754  tmp = getTH1F(igetter,hname);
755  if ( ! tmp ) {
756  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
757  << std::string(hname);
758  } else {
759  double fine = tmp->GetBinContent( 1 );
760  double coarse = tmp->GetBinContent( 2 );
761  double tot = fine + coarse;
762  wheelEtaAll += tot;
763  wheelEtaFine += fine;
764  if ( tot > 0 ) {
765  dttf_fine_fraction_wh[wh]->setBinContent( sector, fine/tot );
766  }
767  }
768 
769  }
770 
774  if ( wheelEtaAll > 0 ) {
775  dttf_eta_fine_fraction->setBinContent( wh+1, wheelEtaFine/wheelEtaAll );
776  }
777 
781  dttf_nTracks_integ->setBinContent( wh+1, wheelBx[2] );
782  dttf_nTracks_integ_2ndTrack->setBinContent( wh+1, wheelBx2nd[2] );
783 
787  for ( unsigned int bx = 1; bx < 4; ++bx ) {
788 
789  dttf_bx_wheel_integ[wh]->setBinContent( bx, wheelBx[bx] );
790  dttf_bx_summary->setBinContent( wh+1, bx, wheelBx[bx] );
791  wheelSumBx[bx] += wheelBx[bx];
792 
793  dttf_bx_wheel_integ_2ndTrack[wh]->setBinContent( bx, wheelBx2nd[bx] );
794  dttf_bx_summary_2ndTrack->setBinContent( wh+1, bx, wheelBx2nd[bx] );
795  wheelSumBx2nd[bx] += wheelBx2nd[bx];
796 
797  }
798 
799 
803  for ( unsigned int qual = 1; qual < 8 ; ++qual ) {
804  dttf_quality_summary->setBinContent( wh+1, qual, qualities[qual] );
805  dttf_quality_integ->getTH1F()->AddBinContent( qual, qualities[qual] );
806  }
807 
808 
818  normalize( dttf_eta_wheel[wh]->getTH1F() );
819  normalize( dttf_q_wheel[wh]->getTH1F() );
820  normalize( dttf_pt_wheel[wh]->getTH1F() );
821  normalize( dttf_phi_wheel[wh]->getTH1F() );
822 
826  double scale = wheelBx[2];
827  if ( scale > 0 ) {
828  scale = 1/scale;
829  normalize( dttf_bx_wheel_integ[wh]->getTH1F(), scale );
830  }
831 
832  scale = wheelBx2nd[2];
833  if ( scale > 0 ) {
834  scale = 1/scale;
836  }
837 
838 
839 
840 
846 
847 
851  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_07_eta_wh%s_2ndTrack",
852  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
853 
854  TH1F * tmp = getTH1F(igetter,hname);
855  if ( ! tmp ) {
856  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
857  << std::string(hname);
858  } else {
859  dttf_eta_integ_2ndTrack->getTH1F()->Add( tmp );
860  }
861 
865  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_08_phi_wh%s_2ndTrack",
866  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
867  tmp = getTH1F(igetter,hname);
868  if ( ! tmp ) {
869  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
870  << std::string(hname);
871  } else {
872  dttf_phi_integ_2ndTrack->getTH1F()->Add( tmp );
873  }
874 
875 
879  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_09_pt_wh%s_2ndTrack",
880  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
881  tmp = getTH1F(igetter,hname);
882  if ( ! tmp ) {
883  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
884  << std::string(hname);
885  } else {
886  dttf_pt_integ_2ndTrack->getTH1F()->Add( tmp );
887  }
888 
892  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_10_charge_wh%s_2ndTrack",
893  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
894  tmp = getTH1F(igetter,hname);
895  if ( ! tmp ) {
896  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
897  << std::string(hname);
898  } else {
899  dttf_q_integ_2ndTrack->getTH1F()->Add( tmp );
900  }
901 
905  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_04_quality_wh%s_2ndTrack",
906  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
907  tmp = getTH1F(igetter,hname);
908  if ( ! tmp ) {
909  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
910  << std::string(hname);
911  } else {
912  for ( unsigned int qual = 1; qual < 8; ++qual ) {
913  double binqual = tmp->GetBinContent( qual );
914  dttf_quality_integ_2ndTrack->getTH1F()->AddBinContent( qual, binqual );
915  dttf_quality_summary_2ndTrack->setBinContent( wh+1, qual, binqual );
916  }
917  }
918 
919 
920  }
921 
925  for ( unsigned int bx = 1; bx < 4; ++bx ) {
926  dttf_bx_integ->setBinContent( bx, wheelSumBx[bx] );
927  dttf_bx_integ_2ndTrack->setBinContent( bx, wheelSumBx2nd[bx] );
928  }
929 
933  double scale = wheelSumBx[2];
934  if ( scale > 0 ) {
935  scale = 1./scale;
937  }
938 
939  scale = wheelSumBx2nd[2];
940  if ( scale > 0 ) {
941  scale = 1./scale;
943  }
944 
945 
946 }
947 
948 
949 
950 //--------------------------------------------------------
952 {
953  char hname[60];
954  sprintf( hname, "%s/dttf_tracks_with_gmt_match", gmtpath_.c_str() );
955  TH2F * gmt_match = getTH2F(igetter,hname);
956  if ( ! gmt_match ) {
957  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
958  << std::string(hname);
959  return;
960  }
961 
962 
963 
964  sprintf( hname, "%s/dttf_tracks_without_gmt_match", gmtpath_.c_str() );
965  TH2F * gmt_missed = getTH2F(igetter,hname);
966  if ( ! gmt_missed ) {
967  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
968  << std::string(hname);
969  return;
970  }
971 
972 
973  sprintf( hname, "%s/dttf_missing_tracks_in_gmt", gmtpath_.c_str() );
974  TH2F * gmt_ghost = getTH2F(igetter,hname);
975  if ( ! gmt_ghost ) {
976  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
977  << std::string(hname);
978  return;
979  }
980 
981  int match = gmt_match->Integral();
982  int missed = gmt_missed->Integral();
983  int ghost = gmt_ghost->Integral();
984  float tot = match + missed + ghost;
985  if ( tot > 0 ) {
986  double val = ghost/tot;
987  dttf_gmt_matching->setBinContent( 1, val );
988  val = match/tot;
989  dttf_gmt_matching->setBinContent( 2, val );
990  val = missed/tot;
991  dttf_gmt_matching->setBinContent( 3, val );
992  }
993 }
994 
995 
996 
997 //--------------------------------------------------------
998 TH1F * L1TDTTFClient::getTH1F(DQMStore::IGetter &igetter, const char * hname)
999 {
1000 
1001  MonitorElement * me = igetter.get(hname);
1002  if ( ! me ) {
1003  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get ME "
1004  << std::string(hname);
1005  return NULL;
1006  }
1007 
1008  return me->getTH1F();
1009 
1010 }
1011 
1012 
1013 //--------------------------------------------------------
1014 TH2F * L1TDTTFClient::getTH2F(DQMStore::IGetter &igetter, const char * hname)
1015 {
1016 
1017  MonitorElement * me = igetter.get(hname);
1018  if ( ! me ) {
1019  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get ME "
1020  << std::string(hname);
1021  return NULL;
1022  }
1023 
1024  return me->getTH2F();
1025 
1026 }
1027 
1028 
1029 //--------------------------------------------------------
1030 
1031 //--------------------------------------------------------
1032 void L1TDTTFClient::buildHighQualityPlot( DQMStore::IGetter &igetter, TH2F * occupancySummary,
1033  MonitorElement * highQual_Summary,
1034  const std::string & path )
1035 {
1036 
1037  char hname[150];
1038 
1042  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
1043  sprintf( hname, path.c_str(), wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1044 
1045  TH2F * quality = getTH2F(igetter, hname);
1046  if ( ! quality ) {
1047  edm::LogError("L1TDTTFClient::buildHighQualityPlot")
1048  << "Failed to get TH2F " << std::string(hname);
1049  } else {
1050 
1051  for ( unsigned int sec = 1; sec < 13 ; ++sec ) {
1052  double denHighQual = occupancySummary->GetBinContent( wh+1, sec );
1053  double val = 0;
1054  if ( denHighQual > 0 ) {
1055  for ( unsigned int qual = 4; qual < 8 ; ++qual ) {
1056  val += quality->GetBinContent( qual, sec );
1057  }
1058  val /= denHighQual;
1059  }
1060  highQual_Summary->setBinContent( wh+1, sec, val );
1061  }
1062  }
1063  }
1064 }
1065 
1066 //--------------------------------------------------------
1068  MonitorElement * phi_eta_coarse_integ,
1069  MonitorElement * phi_eta_integ,
1070  const std::string & path_fine,
1071  const std::string & path_coarse,
1072  int wh )
1073 {
1074 
1075  char hname[150];
1076  sprintf( hname, path_fine.c_str(),
1077  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1078 
1079  TH2F * phi_vs_eta_fine = getTH2F(igetter, hname);
1080  if ( ! phi_vs_eta_fine ) {
1081  edm::LogError("L1TDTTFClient::buildPhiEtaPloOtFC")
1082  << "Failed to get TH1D " << std::string(hname);
1083  }
1084 
1085  sprintf( hname, path_coarse.c_str(),
1086  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1087  TH2F * phi_vs_eta_coarse = getTH2F(igetter,hname);
1088  if ( ! phi_vs_eta_coarse ) {
1089  edm::LogError("L1TDTTFClient::buildPhiEtaPlotOFC")
1090  << "Failed to get TH1D " << std::string(hname);
1091  }
1092 
1093  if ( ! phi_vs_eta_fine || ! phi_vs_eta_coarse ) {
1094  return;
1095  }
1096 
1097  for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1098  float start = 0;
1099  int nbins = 0;
1100  switch ( wh ) {
1101  case 0 : start = 0; nbins = 18; break; // N2
1102  case 1 : start = 8; nbins = 20; break; // N1
1103  case 2 : start = 22; nbins = 10; break; // N0
1104  case 3 : start = 22; nbins = 20; break; // P0
1105  case 4 : start = 36; nbins = 20; break; // P1
1106  case 5 : start = 46; nbins = 18; break; // P2
1107  default : start = 0; nbins = 0; break; // BOH
1108  }
1109 
1110  for ( int eta = 1; eta <= nbins ; ++eta ) {
1111  double setbin = eta + start;
1112 
1113  double valfine = phi_vs_eta_fine->GetBinContent( eta, phi )
1114  + phi_eta_fine_integ->getBinContent( setbin, phi );
1115 
1116  double valcoarse = phi_vs_eta_coarse->GetBinContent( eta, phi )
1117  + phi_eta_coarse_integ->getBinContent( setbin, phi );
1118 
1119  phi_eta_fine_integ->setBinContent( setbin, phi, valfine );
1120  phi_eta_coarse_integ->setBinContent( setbin, phi, valcoarse );
1121  phi_eta_integ->setBinContent( setbin, phi, valfine+valcoarse );
1122 
1123  }
1124 
1125  // double underflow_f = phi_vs_eta_fine->GetBinContent( 0, phi )
1126  // + phi_eta_fine_integ->getBinContent( 1, phi );
1127  // phi_eta_fine_integ->setBinContent( 1, phi, underflow_f );
1128  //
1129  // double underflow_c = phi_vs_eta_coarse->GetBinContent( 0, phi )
1130  // + phi_eta_coarse_integ->getBinContent( 1, phi );
1131  // phi_eta_coarse_integ->setBinContent( 1, phi, underflow_c );
1132  //
1133  // double overflow_f = phi_vs_eta_fine->GetBinContent( nbins+1, phi )
1134  // + phi_eta_fine_integ->getBinContent( 64 );
1135  // phi_eta_fine_integ->setBinContent( 64, phi, overflow_f );
1136  //
1137  // double overflow_c = phi_vs_eta_coarse->GetBinContent( nbins+1, phi )
1138  // + phi_eta_coarse_integ->getBinContent( 64, phi );
1139  // phi_eta_coarse_integ->setBinContent( 64, phi, overflow_c );
1140  //
1141  // double underflow = underflow_f + underflow_c;
1142  // phi_eta_integ->setBinContent( 1, phi, underflow );
1143  //
1144  // double overflow = overflow_f + overflow_c;
1145  // phi_eta_integ->setBinContent( 64, phi, overflow );
1146 
1147  }
1148 
1149 }
1150 
1151 
1152 //--------------------------------------------------------
1154  const std::string & path,
1155  int wh )
1156 {
1157  char hname[100];
1158  sprintf( hname, path.c_str(),
1159  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1160 
1161  TH2F * phi_vs_eta = getTH2F(igetter, hname);
1162  if ( ! phi_vs_eta ) {
1163  edm::LogError("L1TDTTFClient::buildPhiEtaPlotO:ME") << "Failed to get TH1D "
1164  << std::string(hname);
1165  } else {
1166 
1167  for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1168  float start = 0;
1169  int nbins = 0;
1170  switch ( wh ) {
1171  case 0 : start = 0; nbins = 18; break; // N2
1172  case 1 : start = 8; nbins = 20; break; // N1
1173  case 2 : start = 22; nbins = 10; break; // N0
1174  case 3 : start = 22; nbins = 20; break; // P0
1175  case 4 : start = 36; nbins = 20; break; // P1
1176  case 5 : start = 46; nbins = 18; break; // P2
1177  default : start = 0; nbins = 0; break; // BOH
1178  }
1179 
1180  for ( int eta = 1; eta <= nbins ; ++eta ) {
1181  double setbin = eta + start;
1182  double val = phi_vs_eta->GetBinContent( eta, phi )
1183  + phi_eta_integ->getBinContent( setbin, phi );
1184  phi_eta_integ->setBinContent( setbin, phi, val );
1185  }
1186 
1187  double underflow = phi_vs_eta->GetBinContent( 0, phi )
1188  + phi_eta_integ->getBinContent( 1, phi );
1189  phi_eta_integ->setBinContent( 1, phi, underflow );
1190 
1191  double overflow = phi_vs_eta->GetBinContent( nbins+1, phi )
1192  + phi_eta_integ->getBinContent( 64 );
1193  phi_eta_integ->setBinContent( 64, phi, overflow );
1194 
1195  }
1196  }
1197 }
1198 
1199 
1200 // //--------------------------------------------------------
1201 // void L1TDTTFClient::buildPhiEtaPlot( MonitorElement * phi_eta_integ,
1202 // const std::string & path ,
1203 // int wh)
1204 // {
1205 // char hname[60];
1206 // sprintf( hname, "%s/dttf_phi_eta_wh%s",
1207 // wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1208 //
1209 // TH2F * phi_vs_eta = getTH2F(hname);
1210 // if ( ! phi_vs_eta ) {
1211 // edm::LogError("L1TDTTFClient::buildPhiEtaPlot:ME") << "Failed to get TH1D "
1212 // << std::string(hname);
1213 // } else {
1214 //
1215 //
1216 // for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1217 // for ( unsigned int eta = 1; eta < 65 ; ++eta ) {
1218 // double val = phi_vs_eta->GetBinContent( eta, phi )
1219 // + dttf_phi_eta_integ->getBinContent( eta, phi );
1220 // dttf_phi_eta_integ->setBinContent( eta, phi, val );
1221 // }
1222 //
1223 // }
1224 // }
1225 // }
1226 //
1227 //
1228 // //--------------------------------------------------------
1229 // void L1TDTTFClient::buildPhiEtaPlotFC( MonitorElement * phi_eta_fine_integ,
1230 // MonitorElement * phi_eta_coarse_integ,
1231 // MonitorElement * phi_eta_integ,
1232 // const std::string & path_fine,
1233 // const std::string & path_coarse,
1234 // int wh )
1235 // {
1236 //
1237 // char hname[60];
1238 //
1239 // sprintf( hname, path_fine.c_str(),
1240 // wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1241 // TH2F * phi_vs_eta_fine = getTH2F(hname);
1242 // if ( ! phi_vs_eta_fine ) {
1243 // edm::LogError("L1TDTTFClient::buildPhiEtaPlotFC")
1244 // << "Failed to get TH1D " << std::string(hname);
1245 // }
1246 //
1247 //
1248 // sprintf( hname, path_coarse.c_str(),
1249 // wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1250 // TH2F * phi_vs_eta_coarse = getTH2F(hname);
1251 // if ( ! phi_vs_eta_coarse ) {
1252 // edm::LogError("L1TDTTFClient::buildPhiEtaPlotFC")
1253 // << "Failed to get TH1D " << std::string(hname);
1254 // }
1255 //
1256 // if ( ! phi_vs_eta_fine || ! phi_vs_eta_coarse ) {
1257 // return;
1258 // }
1259 //
1260 // for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1261 // for ( unsigned int eta = 1; eta < 65 ; ++eta ) {
1262 //
1263 // double valfine = phi_vs_eta_fine->GetBinContent( eta, phi )
1264 // + dttf_phi_eta_fine_integ->getBinContent( eta, phi );
1265 // dttf_phi_eta_fine_integ->setBinContent( eta, phi, valfine );
1266 // double valcoarse = phi_vs_eta_coarse->GetBinContent( eta, phi )
1267 // + dttf_phi_eta_coarse_integ->getBinContent( eta, phi );
1268 // dttf_phi_eta_coarse_integ->setBinContent( eta, phi, valcoarse );
1269 //
1270 // dttf_phi_eta_integ->setBinContent( eta, phi, valfine + valcoarse );
1271 //
1272 // }
1273 //
1274 // }
1275 // }
1276 
1277 
1278 
1279 
1280 //--------------------------------------------------------
1282 {
1283  me->setAxisTitle("Wheel", 1);
1284  me->setBinLabel(1, "N2", 1);
1285  me->setBinLabel(2, "N1", 1);
1286  me->setBinLabel(3, "N0", 1);
1287  me->setBinLabel(4, "P0", 1);
1288  me->setBinLabel(5, "P1", 1);
1289  me->setBinLabel(6, "P2", 1);
1290 
1291 }
1292 
1293 
1294 //--------------------------------------------------------
1296 {
1297 
1298  if( axis == 1 )
1299  me->setAxisTitle("Quality", axis);
1300  me->setBinLabel(1, "T34", axis);
1301  me->setBinLabel(2, "T23/24", axis);
1302  me->setBinLabel(3, "T12/13/14", axis);
1303  me->setBinLabel(4, "T234", axis);
1304  me->setBinLabel(5, "T134", axis);
1305  me->setBinLabel(6, "T123/124", axis);
1306  me->setBinLabel(7, "T1234", axis);
1307 }
1308 
1309 
1310 
1311 
1312 
1313 
1314 
1315 
1316 
MonitorElement * dttf_bx_integ_2ndTrack
Definition: L1TDTTFClient.h:80
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.
tuple start
Check for commandline option errors.
Definition: dqm_diff.py:58
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)
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)
#define NULL
Definition: scimark2.h:8
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
T eta() const
void dqmEndLuminosityBlock(DQMStore::IBooker &ibooker, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
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
tuple path
else: Piece not in the list, fine.
MonitorElement * dttf_phi_eta_coarse_integ
Definition: L1TDTTFClient.h:63
virtual ~L1TDTTFClient()
Destructor.
TH2F * occupancy_r_
counter
Definition: L1TDTTFClient.h:47
MonitorElement * dttf_occupancySummary_2ndTrack
Definition: L1TDTTFClient.h:78
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
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
MonitorElement * dttf_bx_wheel_summary_2ndTrack[6]
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:133
void makeSummary(DQMStore::IGetter &igetter)
TH1F * getTH1F(void) const
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)
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]
TH2F * getTH2F(void) const
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)
void Reset(void)
reset ME (ie. contents, errors, etc)
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
Definition: DDAxes.h:10
MonitorElement * dttf_phi_eta_integ_2ndTrack
Definition: L1TDTTFClient.h:84