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 
40  edm::LogInfo("L1TDTTFClient")<<"[L1TDTTFClient]: Begin Job";
41 
44 
45  wheelpath_[0] = l1tdttffolder_ + "/02-WHEEL_N2";
46  wheelpath_[1] = l1tdttffolder_ + "/03-WHEEL_N1";
47  wheelpath_[2] = l1tdttffolder_ + "/04-WHEEL_N0";
48  wheelpath_[3] = l1tdttffolder_ + "/05-WHEEL_P0";
49  wheelpath_[4] = l1tdttffolder_ + "/06-WHEEL_P1";
50  wheelpath_[5] = l1tdttffolder_ + "/07-WHEEL_P2";
51 
52  wheel_[0] = "N2";
53  wheel_[1] = "N1";
54  wheel_[2] = "N0";
55  wheel_[3] = "P0";
56  wheel_[4] = "P1";
57  wheel_[5] = "P2";
58 
59  inclusivepath_ = l1tdttffolder_ + "/01-INCLUSIVE";
60  gmtpath_ = l1tdttffolder_ + "/08-GMT_MATCH";
61  testpath_ = l1tdttffolder_ + "/09-TEST";
62 
64  char hname[100];//histo name
65  char mename[100];//ME name
66 
69 
71  sprintf(hname, "dttf_02_nTracks");
72  sprintf(mename, "DTTF Tracks by Wheel");
73  dttf_nTracks_integ = dbe_->book1D(hname, mename, 6, 0, 6);
75 
77  sprintf(hname, "dttf_03_tracks_occupancy_summary");
78  sprintf(mename, "DTTF Tracks Occupancy");
79  dttf_occupancySummary = dbe_->book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
81  dttf_occupancySummary->setAxisTitle("Sector", 2);
82 
84 
86  sprintf(hname, "dttf_05_bx_occupancy");
87  sprintf(mename, "DTTF Tracks BX Distribution by Wheel");
88  dttf_bx_summary = dbe_->book2D( hname, mename, 6, 0, 6, 3, -1, 2 );
90  dttf_bx_summary->setAxisTitle("BX", 2 );
91 
93  sprintf(hname, "dttf_06_bx");
94  sprintf(mename, "DTTF Tracks BX w.r.t. Tracks with BX=0");
95  dttf_bx_integ = dbe_->book1D( hname, mename, 3, -1.5, 1.5 );
96  dttf_bx_integ->setAxisTitle("BX", 1);
97 
99  sprintf(hname, "dttf_07_quality");
100  sprintf(mename, "DTTF Tracks Quality distribution");
101  dttf_quality_integ = dbe_->book1D(hname, mename, 7, 1, 8);
103 
105  sprintf(hname, "dttf_08_quality_occupancy");
106  sprintf(mename, "DTTF Tracks Quality distribution by Wheel");
107  dttf_quality_summary = dbe_->book2D( hname, mename, 6, 0, 6, 7, 1, 8 );
108  dttf_quality_summary->setAxisTitle("Wheel", 1);
111 
113  sprintf(hname, "dttf_09_highQuality_Tracks");
114  sprintf(mename, "Fraction of DTTF Tracks with Quality>3");
115  dttf_highQual_Summary = dbe_->book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
117  dttf_highQual_Summary->setAxisTitle("Sector", 2);
118 
119 
121  sprintf(hname, "dttf_10_phi_vs_etaCoarse");
122  sprintf(mename, "#eta-#phi DTTF Tracks occupancy (coarse #eta only, packed values)");
123  dttf_phi_eta_coarse_integ = dbe_->book2D( hname, mename, 64, 0, 64,
124  144, -6, 138. );
127 
129  sprintf(hname, "dttf_11_phi_vs_etaFine");
130  sprintf(mename, "#eta-#phi DTTF Tracks occupancy (fine #eta only, packed values)");
131  dttf_phi_eta_fine_integ = dbe_->book2D( hname, mename, 64, 0, 64,
132  144, -6, 138. );
135 
137  sprintf(hname, "dttf_12_phi_vs_eta");
138  sprintf(mename, "#eta-#phi DTTF Tracks occupancy");
139  dttf_phi_eta_integ = dbe_->book2D( hname, mename, 64, -1.2, 1.2,
140  144, -15, 345. );
141  dttf_phi_eta_integ->setAxisTitle("#eta", 1);
142  dttf_phi_eta_integ->setAxisTitle("#phi", 2);
143 
145  sprintf(hname, "dttf_13_eta_fine_fraction");
146  sprintf(mename, "Fraction of DTTF Tracks with Fine #eta Assignment");
147  dttf_eta_fine_fraction = dbe_->book1D( hname, mename, 6, 0, 6 );
150 
152 
154  sprintf(hname, "dttf_14_eta");
155  sprintf(mename, "DTTF Tracks #eta distribution (Packed values)");
156  dttf_eta_integ = dbe_->book1D(hname, mename, 64, -0.5, 63.5);
157  dttf_eta_integ->setAxisTitle("#eta", 1);
158 
160  sprintf(hname, "dttf_15_phi");
161  sprintf(mename, "DTTF Tracks Phi distribution (Packed values)");
162  dttf_phi_integ = dbe_->book1D(hname, mename, 144, -6, 138. );
163  dttf_phi_integ->setAxisTitle("#phi", 1);
164 
166  sprintf(hname, "dttf_16_pt");
167  sprintf(mename, "DTTF Tracks p_{T} distribution (Packed values)");
168  dttf_pt_integ = dbe_->book1D(hname, mename, 32, -0.5, 31.5);
169  dttf_pt_integ->setAxisTitle("p_{T}", 1);
170 
172  sprintf(hname, "dttf_17_charge");
173  sprintf(mename, "DTTF Tracks Charge distribution");
174  dttf_q_integ = dbe_->book1D(hname, mename, 2, -0.5, 1.5);
175  dttf_q_integ->setAxisTitle("Charge", 1);
176 
177 
178 
180  sprintf(hname, "dttf_18_2ndTrack_occupancy_summary");
181  sprintf(mename, "DTTF 2nd Tracks occupancy w.r.t. Tracks with BX=0");
182  dttf_2ndTrack_Summary = dbe_->book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
184 
185 
186 
191  sprintf(hname, "dttf_gmt_fract_matching" );
192  sprintf(mename, "Fraction of DTTF tracks matching with GMT tracks" );
193  dttf_gmt_matching = dbe_->book1D( hname, mename, 3, 1, 4);
194  dttf_gmt_matching->setBinLabel(1, "GMT Only", 1);
195  dttf_gmt_matching->setBinLabel(2, "Matching", 1);
196  dttf_gmt_matching->setBinLabel(3, "DTTF Only", 1);
197 
198 
202 
204  sprintf(hname, "dttf_01_tracks_occupancy_test_summary");
205  sprintf(mename, "DTTF Tracks Occupancy");
206  dttf_occupancySummary_test = dbe_->book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
209 
210 
214  dbe_->setCurrentFolder( inclusivepath_ + "/2ND_TRACK_ONLY");
215 
217  sprintf(hname, "dttf_01_nTracks_2ndTrack");
218  sprintf(mename, "DTTF 2nd Tracks per Wheel distribution");
219  dttf_nTracks_integ_2ndTrack = dbe_->book1D(hname, mename, 6, 0, 6);
221 
223  sprintf(hname, "dttf_02_occupancy_summary_2ndTrack");
224  sprintf(mename, "DTTF 2nd Tracks distribution by Sector and Wheel");
225  dttf_occupancySummary_2ndTrack = dbe_->book2D( hname, mename, 6, 0, 6,
226  12, 1, 13 );
228 
230  sprintf(hname, "dttf_03_bx_occupancy_2ndTrack");
231  sprintf(mename, "DTTF 2nd Tracks BX Distribution by Wheel");
232  dttf_bx_summary_2ndTrack = dbe_->book2D( hname, mename, 6, 0, 6, 3, -1, 2 );
235 
237  sprintf(hname, "dttf_04_bx_2ndTrack");
238  sprintf(mename, "Fraction of DTTF Tracks BX w.r.t. Tracks with BX=0");
239  dttf_bx_integ_2ndTrack = dbe_->book1D( hname, mename, 3, -1.5, 1.5 );
241 
243  sprintf(hname, "dttf_05_quality_2ndTrack");
244  sprintf(mename, "DTTF 2nd Tracks Quality distribution");
245  dttf_quality_integ_2ndTrack = dbe_->book1D(hname, mename, 7, 0.5, 7.5);
248 
250  sprintf(hname, "dttf_06_quality_occupancy_2ndTrack");
251  sprintf(mename, "DTTF 2nd Tracks Quality distribution by Wheel");
252  dttf_quality_summary_2ndTrack = dbe_->book2D( hname, mename,
253  6, 0, 6, 7, 1, 8 );
257 
259  sprintf(hname, "dttf_07_highQuality_Tracks_2ndTrack");
260  sprintf(mename, "Fraction of DTTF 2nd Tracks with Quality>3");
261  dttf_highQual_Summary_2ndTrack = dbe_->book2D( hname, mename, 6, 0, 6,
262  12, 1, 13 );
265 
267  sprintf(hname, "dttf_08_phi_vs_eta_2ndTrack");
268  sprintf(mename, "#eta-#phi DTTF Tracks occupancy for 2nd Tracks");
269  dttf_phi_eta_integ_2ndTrack = dbe_->book2D( hname, mename, 64, 0, 64,
270  144, -6, 138. );
273 
275  sprintf(hname, "dttf_09_eta_2ndTrack");
276  sprintf(mename, "DTTF 2nd Tracks #eta distribution (Packed values)");
277  dttf_eta_integ_2ndTrack = dbe_->book1D(hname, mename, 64, -0.5, 63.5);
279 
281  sprintf(hname, "dttf_10_phi_2ndTrack");
282  sprintf(mename, "DTTF 2nd Tracks Phi distribution (Packed values)");
283  dttf_phi_integ_2ndTrack = dbe_->book1D(hname, mename, 144, -6, 138 );
285 
287  sprintf(hname, "dttf_11_pt_2ndTrack");
288  sprintf(mename, "DTTF 2nd Tracks p_{T} distribution (Packed values)");
289  dttf_pt_integ_2ndTrack = dbe_->book1D(hname, mename, 32, -0.5, 31.5);
291 
293  sprintf(hname, "dttf_12_charge_2ndTrack");
294  sprintf(mename, "DTTF 2nd Tracks Charge distribution");
295  dttf_q_integ_2ndTrack = dbe_->book1D(hname, mename, 2, -0.5, 1.5);
296  dttf_q_integ_2ndTrack->setAxisTitle("Charge", 1);
297 
298 
299  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
301 
303  sprintf( hname, "dttf_02_nTracks_wh%s", wheel_[wh].c_str() );
304  sprintf( mename, "Wheel %s - Number of Tracks", wheel_[wh].c_str() );
305  dttf_nTracks_wheel[wh] = dbe_->book1D( hname, mename, 12, 1, 13);
306  dttf_nTracks_wheel[wh]->setAxisTitle("sector", 1);
307 
309  sprintf(hname, "dttf_03_bx_occupancy_wh%s", wheel_[wh].c_str() );
310  sprintf(mename, "Wheel %s - DTTF Tracks BX distribution by Sector",
311  wheel_[wh].c_str());
312  dttf_bx_wheel_summary[wh] = dbe_->book2D( hname, mename, 12, 1, 13, 3, -1, 2);
313  dttf_bx_wheel_summary[wh]->setAxisTitle("BX", 2 );
314  dttf_bx_wheel_summary[wh]->setAxisTitle("Sector", 1 );
315 
317  sprintf(hname, "dttf_04_bx_wh%s", wheel_[wh].c_str());
318  sprintf(mename, "Wheel %s - DTTF Tracks BX w.r.t. Tracks with BX=0", wheel_[wh].c_str());
319  dttf_bx_wheel_integ[wh] = dbe_->book1D(hname, mename, 3, -1.5, 1.5);
320  dttf_bx_wheel_integ[wh]->setAxisTitle("BX", 1);
321 
323  sprintf(hname, "dttf_05_quality_wh%s", wheel_[wh].c_str() );
324  sprintf(mename, "Wheel %s - Tracks Quality Distribution", wheel_[wh].c_str() );
325  dttf_quality_wheel[wh] = dbe_->book1D(hname, mename, 7, 1, 8);
326  dttf_quality_wheel[wh]->setAxisTitle("Quality", 1);
328 
330  sprintf(hname, "dttf_06_quality_summary_wh%s", wheel_[wh].c_str() );
331  sprintf(mename, "Wheel %s - Tracks Quality Distribution by Sector",
332  wheel_[wh].c_str() );
333  dttf_quality_summary_wheel[wh] = dbe_->book2D(hname, mename, 12, 1, 13, 7, 1, 8);
334  dttf_quality_summary_wheel[wh]->setAxisTitle("Sector", 1);
335  // dttf_quality_summary_wheel[wh]->setAxisTitle("Quality", 2);
337 
339  sprintf(hname, "dttf_09_etaFine_fraction_wh%s", wheel_[wh].c_str() );
340  sprintf(mename, "Wheel %s - Fraction of DTTF Tracks with fine #eta assignment",
341  wheel_[wh].c_str());
342  dttf_fine_fraction_wh[wh] = dbe_->book1D( hname, mename, 12, 1, 13);
343  dttf_fine_fraction_wh[wh]->setAxisTitle("Sector", 1 );
344 
345 
347  sprintf(hname, "dttf_10_eta_wh%s", wheel_[wh].c_str() );
348  sprintf(mename, "Wheel %s - DTTF Tracks #eta distribution (Packed values)",
349  wheel_[wh].c_str() );
350  dttf_eta_wheel[wh] = dbe_->book1D(hname, mename, 64, -0.5, 63.5 );
351  dttf_eta_wheel[wh]->setAxisTitle("#eta", 1 );
352 
354  sprintf(hname, "dttf_11_phi_wh%s", wheel_[wh].c_str() );
355  sprintf(mename, "Wheel %s - DTTF Tracks Phi distribution (Packed values)",
356  wheel_[wh].c_str() );
357  dttf_phi_wheel[wh] = dbe_->book1D(hname, mename, 144, -6, 138. );
358  dttf_phi_wheel[wh]->setAxisTitle("#phi", 1);
359 
361  sprintf(hname, "dttf_12_pt_wh%s", wheel_[wh].c_str() );
362  sprintf(mename, "Wheel %s - DTTF Tracks p_{T} distribution (Packed values)",
363  wheel_[wh].c_str() );
364  dttf_pt_wheel[wh] = dbe_->book1D(hname, mename, 32, -0.5, 31.5);
365  dttf_pt_wheel[wh]->setAxisTitle("p_{T}", 1);
366 
368  sprintf(hname, "dttf_13_charge_wh%s", wheel_[wh].c_str() );
369  sprintf(mename, "Wheel %s - DTTF Tracks Charge distribution",
370  wheel_[wh].c_str() );
371  dttf_q_wheel[wh] = dbe_->book1D(hname, mename, 2, -0.5, 1.5);
372  dttf_q_wheel[wh]->setAxisTitle("Charge", 1);
373 
374  }
375 
376 
378  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
379  dbe_->setCurrentFolder( wheelpath_[wh] + "/2ND_TRACK_ONLY" );
380 
382  sprintf( hname, "dttf_01_nTracks_wh%s_2ndTrack", wheel_[wh].c_str() );
383  sprintf( mename, "Wheel %s - DTTF Number of 2nd Tracks with BX=0",
384  wheel_[wh].c_str() );
385  dttf_nTracks_wheel_2ndTrack[wh] = dbe_->book1D( hname, mename,
386  12, 1, 13);
387  dttf_nTracks_wheel_2ndTrack[wh]->setAxisTitle("sector", 1);
388 
390  sprintf(hname, "dttf_02_bx_occupancy_wh%s_2ndTrack", wheel_[wh].c_str() );
391  sprintf(mename, "Wheel %s - DTTF 2nd Tracks BX distribution by Sector",
392  wheel_[wh].c_str());
393  dttf_bx_wheel_summary_2ndTrack[wh] = dbe_->book2D( hname, mename, 12, 1, 13, 3, -1, 2);
395  dttf_bx_wheel_summary_2ndTrack[wh]->setAxisTitle("Sector", 1 );
396 
398  sprintf(hname, "dttf_03_bx_wh%s_2ndTrack", wheel_[wh].c_str());
399  sprintf(mename, "Wheel %s - 2nd Tracks BX Distribution", wheel_[wh].c_str());
400  dttf_bx_wheel_integ_2ndTrack[wh] = dbe_->book1D(hname, mename, 3, -1.5, 1.5);
402 
403 
404  }
405 
406 
407 
408 }
409 
410 //--------------------------------------------------------
411 void L1TDTTFClient::beginRun(const edm::Run& r, const edm::EventSetup& context)
412 {
413 }
414 
415 //--------------------------------------------------------
417  const edm::EventSetup& context)
418 {
420  ++counterLS_;
421 
422  if ( online_ && !( counterLS_ % resetafterlumi_ ) ) {
423  char hname[60];
424  sprintf( hname, "%s/dttf_04_tracks_occupancy_by_lumi",
425  inclusivepath_.c_str() );
426 
427  occupancy_r_ = getTH2F(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 }
438 
439 //--------------------------------------------------------
441  const edm::EventSetup& c)
442 {
443 
445  if ( online_ ) {
446  makeSummary();
448  }
449 
450 }
451 
452 //--------------------------------------------------------
454  const edm::EventSetup& context)
455 {
456 
457 
458 }
459 
460 //--------------------------------------------------------
461 void L1TDTTFClient::endRun(const edm::Run& r, const edm::EventSetup& context)
462 {
463  makeSummary();
464 }
465 
466 //--------------------------------------------------------
468 {
469 }
470 
471 
472 //--------------------------------------------------------
474 {
478  buildSummaries();
479 
483  double scale = 0;
484  double entries = dttf_occupancySummary->getTH2F()->Integral();
485 
486  if ( entries ) {
487 
490 
492  scale = 1 / entries;
495 
497  double physEntries = dttf_eta_integ->getTH1F()->Integral();
498  if ( physEntries > 0 ) {
499  double physScale = 1 / physEntries;
500 
501  normalize( dttf_phi_eta_integ->getTH2F(), physScale );
502 
503  normalize( dttf_phi_eta_fine_integ->getTH2F(), physScale );
505  normalize( dttf_quality_summary->getTH2F(), physScale );
506 
507  normalize( dttf_eta_integ->getTH1F(), physScale );
508  normalize( dttf_q_integ->getTH1F(), physScale );
509  normalize( dttf_pt_integ->getTH1F(), physScale );
510  normalize( dttf_phi_integ->getTH1F(), physScale );
511  normalize( dttf_quality_integ->getTH1F(), physScale );
512 
513  }
514 
515  }
516 
520 
521  double entries2ndTrack = dttf_occupancySummary_2ndTrack->getTH2F()->Integral();
522  if ( entries2ndTrack > 0 ) {
523 
526 
528  TH2F * ratio = dttf_occupancySummary_2ndTrack->getTH2F();
530  "%s/2ND_TRACK_ONLY/dttf_05_quality_summary_wh%s_2ndTrack" );
531 
533 
535  double scale2nd = 1 / entries2ndTrack;
537  normalize( dttf_nTracks_integ_2ndTrack->getTH1F(), scale2nd ); //
538 
539 
548 
549  }
550 
552  setGMTsummary();
553 
554 }
555 
556 
557 
558 
559 //--------------------------------------------------------
561 {
562 
563  char hname[100];
564  int wheelBx[4];
565  int wheelBx2nd[4];
566  int wheelSumBx[4];
567  int wheelSumBx2nd[4];
568  int qualities[8];
569 
570  memset( wheelSumBx, 0, 4 * sizeof(int) );
571  memset( wheelSumBx2nd, 0, 4 * sizeof(int) );
572 
575  dttf_q_integ->Reset();
576  dttf_pt_integ->Reset();
586 
590 
591  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
592 
593  dttf_eta_wheel[wh]->Reset();
594  dttf_q_wheel[wh]->Reset();
595  dttf_pt_wheel[wh]->Reset();
596  dttf_phi_wheel[wh]->Reset();
597  dttf_quality_wheel[wh]->Reset();
599 
600  double wheelEtaAll = 0;
601  double wheelEtaFine = 0;
602  memset( wheelBx, 0, 4 * sizeof(int) );
603  memset( wheelBx2nd, 0, 4 * sizeof(int) );
604 
606  memset( qualities, 0, 8 * sizeof(int) );
607 
613  "%s/dttf_07_phi_vs_etaFine_wh%s",
614  "%s/dttf_08_phi_vs_etaCoarse_wh%s", wh );
615 
617  "%s/2ND_TRACK_ONLY/dttf_06_phi_vs_eta_wh%s_2ndTrack",
618  wh );
619 
620 
624  for ( unsigned int sector = 1; sector < 13; ++sector ) {
625 
629  sprintf( hname, "%s/BX_BySector/dttf_bx_wh%s_se%d",
630  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
631 
632  TH1F * bxsector = getTH1F(hname);
633  if ( ! bxsector ) {
634  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
635  << std::string(hname);
636  } else {
637 
638  for ( unsigned int bx = 1; bx < 4 ; ++bx ) {
639 
640  int bxval = bxsector->GetBinContent( bx );
641 
642  if ( bx == 2 ) {
643  // if ( wh == 2 )
644  // dttf_occupancySummary->setBinContent( wh+1, sector, bxval*14 );
645  // else
646  // dttf_occupancySummary->setBinContent( wh+1, sector, bxval );
647  dttf_occupancySummary->setBinContent( wh+1, sector, bxval );
648  dttf_occupancySummary_test->setBinContent( wh+1, sector, bxval );
649  dttf_nTracks_wheel[wh]->setBinContent(sector, bxval );
650  }
651  wheelBx[bx] += bxval;
652  dttf_bx_wheel_summary[wh]->setBinContent( sector, bx, bxval );
653  }
654  }
655 
656 
660  sprintf( hname, "%s/BX_BySector/2ND_TRACK_ONLY/dttf_bx_2ndTrack_wh%s_se%d",
661  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
662 
663  TH1F * bxsector2nd = getTH1F(hname);
664  if ( ! bxsector2nd ) {
665  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
666  << std::string(hname);
667  } else {
668 
669  for ( unsigned int bx = 1; bx < 4 ; ++bx ) {
670  int bxval = bxsector2nd->GetBinContent( bx );
671 
672  if ( bx == 2 ) {
673  dttf_2ndTrack_Summary->setBinContent( wh+1, sector, bxval );
674  dttf_occupancySummary_2ndTrack->setBinContent(wh+1, sector, bxval);
675  dttf_nTracks_wheel_2ndTrack[wh]->setBinContent(sector, bxval );
676  }
677  wheelBx2nd[bx] += bxval;
678  dttf_bx_wheel_summary_2ndTrack[wh]->setBinContent(sector, bx, bxval);
679  }
680  }
681 
685  sprintf( hname, "%s/Charge/dttf_charge_wh%s_se%d",
686  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
687  TH1F * tmp = getTH1F(hname);
688  if ( ! tmp ) {
689  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
690  << std::string(hname);
691  } else {
692  dttf_q_integ->getTH1F()->Add( tmp );
693  dttf_q_wheel[wh]->getTH1F()->Add( tmp );
694  }
695 
699  sprintf( hname, "%s/PT/dttf_pt_wh%s_se%d",
700  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
701  tmp = getTH1F(hname);
702  if ( ! tmp ) {
703  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
704  << std::string(hname);
705  } else {
706  dttf_pt_integ->getTH1F()->Add( tmp );
707  dttf_pt_wheel[wh]->getTH1F()->Add( tmp );
708  }
709 
710 
714  sprintf( hname, "%s/Phi/dttf_phi_wh%s_se%d",
715  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
716  tmp = getTH1F(hname);
717  if ( ! tmp ) {
718  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
719  << std::string(hname);
720  } else {
721  dttf_phi_integ->getTH1F()->Add( tmp );
722  dttf_phi_wheel[wh]->getTH1F()->Add( tmp );
723  }
724 
725 
729  double highQual = 0;
730  double denHighQual = 0;
731  sprintf( hname, "%s/Quality/dttf_qual_wh%s_se%d",
732  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
733  tmp = getTH1F(hname);
734  if ( ! tmp ) {
735  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
736  << std::string(hname);
737  } else {
738 
739  dttf_quality_wheel[wh]->getTH1F()->Add( tmp );
740 
741 
742  for ( unsigned int qual = 1; qual < 4 ; ++qual ) {
743  double bincontent = tmp->GetBinContent( qual );
744  qualities[qual] += bincontent;
745  denHighQual += bincontent;
746  dttf_quality_summary_wheel[wh]->setBinContent(sector, qual, bincontent);
747  }
748 
749  for ( unsigned int qual = 4; qual < 8 ; ++qual ) {
750  double bincontent = tmp->GetBinContent( qual );
751  qualities[qual] += bincontent;
752  dttf_quality_summary_wheel[wh]->setBinContent(sector, qual, bincontent);
753  denHighQual += bincontent;
754  highQual += bincontent;
755  }
756 
757  }
758  if ( denHighQual > 0 ) highQual /= denHighQual;
759  dttf_highQual_Summary->setBinContent( wh+1, sector, highQual );
760 
761 
765  sprintf( hname, "%s/Eta/dttf_eta_wh%s_se%d",
766  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
767  tmp = getTH1F(hname);
768  if ( ! tmp ) {
769  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
770  << std::string(hname);
771  } else {
772  dttf_eta_integ->getTH1F()->Add( tmp );
773  dttf_eta_wheel[wh]->getTH1F()->Add( tmp );
774  }
775 
776 
780  sprintf( hname, "%s/EtaFineFraction/dttf_etaFine_fraction_wh%s_se%d",
781  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
782  tmp = getTH1F(hname);
783  if ( ! tmp ) {
784  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
785  << std::string(hname);
786  } else {
787  double fine = tmp->GetBinContent( 1 );
788  double coarse = tmp->GetBinContent( 2 );
789  double tot = fine + coarse;
790  wheelEtaAll += tot;
791  wheelEtaFine += fine;
792  if ( tot > 0 ) {
793  dttf_fine_fraction_wh[wh]->setBinContent( sector, fine/tot );
794  }
795  }
796 
797  }
798 
802  if ( wheelEtaAll > 0 ) {
803  dttf_eta_fine_fraction->setBinContent( wh+1, wheelEtaFine/wheelEtaAll );
804  }
805 
809  dttf_nTracks_integ->setBinContent( wh+1, wheelBx[2] );
810  dttf_nTracks_integ_2ndTrack->setBinContent( wh+1, wheelBx2nd[2] );
811 
815  for ( unsigned int bx = 1; bx < 4; ++bx ) {
816 
817  dttf_bx_wheel_integ[wh]->setBinContent( bx, wheelBx[bx] );
818  dttf_bx_summary->setBinContent( wh+1, bx, wheelBx[bx] );
819  wheelSumBx[bx] += wheelBx[bx];
820 
821  dttf_bx_wheel_integ_2ndTrack[wh]->setBinContent( bx, wheelBx2nd[bx] );
822  dttf_bx_summary_2ndTrack->setBinContent( wh+1, bx, wheelBx2nd[bx] );
823  wheelSumBx2nd[bx] += wheelBx2nd[bx];
824 
825  }
826 
827 
831  for ( unsigned int qual = 1; qual < 8 ; ++qual ) {
832  dttf_quality_summary->setBinContent( wh+1, qual, qualities[qual] );
833  dttf_quality_integ->getTH1F()->AddBinContent( qual, qualities[qual] );
834  }
835 
836 
846  normalize( dttf_eta_wheel[wh]->getTH1F() );
847  normalize( dttf_q_wheel[wh]->getTH1F() );
848  normalize( dttf_pt_wheel[wh]->getTH1F() );
849  normalize( dttf_phi_wheel[wh]->getTH1F() );
850 
854  double scale = wheelBx[2];
855  if ( scale > 0 ) {
856  scale = 1/scale;
857  normalize( dttf_bx_wheel_integ[wh]->getTH1F(), scale );
858  }
859 
860  scale = wheelBx2nd[2];
861  if ( scale > 0 ) {
862  scale = 1/scale;
864  }
865 
866 
867 
868 
874 
875 
879  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_07_eta_wh%s_2ndTrack",
880  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
881 
882  TH1F * tmp = getTH1F(hname);
883  if ( ! tmp ) {
884  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
885  << std::string(hname);
886  } else {
887  dttf_eta_integ_2ndTrack->getTH1F()->Add( tmp );
888  }
889 
893  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_08_phi_wh%s_2ndTrack",
894  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
895  tmp = getTH1F(hname);
896  if ( ! tmp ) {
897  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
898  << std::string(hname);
899  } else {
900  dttf_phi_integ_2ndTrack->getTH1F()->Add( tmp );
901  }
902 
903 
907  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_09_pt_wh%s_2ndTrack",
908  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
909  tmp = getTH1F(hname);
910  if ( ! tmp ) {
911  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
912  << std::string(hname);
913  } else {
914  dttf_pt_integ_2ndTrack->getTH1F()->Add( tmp );
915  }
916 
920  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_10_charge_wh%s_2ndTrack",
921  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
922  tmp = getTH1F(hname);
923  if ( ! tmp ) {
924  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
925  << std::string(hname);
926  } else {
927  dttf_q_integ_2ndTrack->getTH1F()->Add( tmp );
928  }
929 
933  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_04_quality_wh%s_2ndTrack",
934  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
935  tmp = getTH1F(hname);
936  if ( ! tmp ) {
937  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
938  << std::string(hname);
939  } else {
940  for ( unsigned int qual = 1; qual < 8; ++qual ) {
941  double binqual = tmp->GetBinContent( qual );
942  dttf_quality_integ_2ndTrack->getTH1F()->AddBinContent( qual, binqual );
943  dttf_quality_summary_2ndTrack->setBinContent( wh+1, qual, binqual );
944  }
945  }
946 
947 
948  }
949 
953  for ( unsigned int bx = 1; bx < 4; ++bx ) {
954  dttf_bx_integ->setBinContent( bx, wheelSumBx[bx] );
955  dttf_bx_integ_2ndTrack->setBinContent( bx, wheelSumBx2nd[bx] );
956  }
957 
961  double scale = wheelSumBx[2];
962  if ( scale > 0 ) {
963  scale = 1./scale;
965  }
966 
967  scale = wheelSumBx2nd[2];
968  if ( scale > 0 ) {
969  scale = 1./scale;
971  }
972 
973 
974 }
975 
976 
977 
978 //--------------------------------------------------------
980 {
981  char hname[60];
982  sprintf( hname, "%s/dttf_tracks_with_gmt_match", gmtpath_.c_str() );
983  TH2F * gmt_match = getTH2F(hname);
984  if ( ! gmt_match ) {
985  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
986  << std::string(hname);
987  return;
988  }
989 
990 
991 
992  sprintf( hname, "%s/dttf_tracks_without_gmt_match", gmtpath_.c_str() );
993  TH2F * gmt_missed = getTH2F(hname);
994  if ( ! gmt_missed ) {
995  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
996  << std::string(hname);
997  return;
998  }
999 
1000 
1001  sprintf( hname, "%s/dttf_missing_tracks_in_gmt", gmtpath_.c_str() );
1002  TH2F * gmt_ghost = getTH2F(hname);
1003  if ( ! gmt_ghost ) {
1004  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
1005  << std::string(hname);
1006  return;
1007  }
1008 
1009  int match = gmt_match->Integral();
1010  int missed = gmt_missed->Integral();
1011  int ghost = gmt_ghost->Integral();
1012  float tot = match + missed + ghost;
1013  if ( tot > 0 ) {
1014  double val = ghost/tot;
1015  dttf_gmt_matching->setBinContent( 1, val );
1016  val = match/tot;
1017  dttf_gmt_matching->setBinContent( 2, val );
1018  val = missed/tot;
1019  dttf_gmt_matching->setBinContent( 3, val );
1020  }
1021 }
1022 
1023 
1024 
1025 //--------------------------------------------------------
1026 TH1F * L1TDTTFClient::getTH1F(const char * hname)
1027 {
1028 
1029  MonitorElement * me = dbe_->get(hname);
1030  if ( ! me ) {
1031  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get ME "
1032  << std::string(hname);
1033  return NULL;
1034  }
1035 
1036 
1037  // edm::LogInfo("L1TDTTFClient::getTH1F") << "#################### "
1038  // << std::string(hname);
1039 
1040  return me->getTH1F();
1041 
1042 }
1043 
1044 
1045 //--------------------------------------------------------
1046 TH2F * L1TDTTFClient::getTH2F(const char * hname)
1047 {
1048 
1049  MonitorElement * me = dbe_->get(hname);
1050  if ( ! me ) {
1051  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get ME "
1052  << std::string(hname);
1053  return NULL;
1054  }
1055 
1056 
1057  // edm::LogInfo("L1TDTTFClient::getTH2F") << "#################### "
1058  // << std::string(hname);
1059 
1060  return me->getTH2F();
1061 
1062 }
1063 
1064 
1065 //--------------------------------------------------------
1066 
1067 //--------------------------------------------------------
1068 void L1TDTTFClient::buildHighQualityPlot( TH2F * occupancySummary,
1069  MonitorElement * highQual_Summary,
1070  const std::string & path )
1071 {
1072 
1073  char hname[150];
1074 
1078  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
1079  sprintf( hname, path.c_str(), wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1080 
1081  TH2F * quality = getTH2F(hname);
1082  if ( ! quality ) {
1083  edm::LogError("L1TDTTFClient::buildHighQualityPlot")
1084  << "Failed to get TH2F " << std::string(hname);
1085  } else {
1086 
1087  for ( unsigned int sec = 1; sec < 13 ; ++sec ) {
1088  double denHighQual = occupancySummary->GetBinContent( wh+1, sec );
1089  double val = 0;
1090  if ( denHighQual > 0 ) {
1091  for ( unsigned int qual = 4; qual < 8 ; ++qual ) {
1092  val += quality->GetBinContent( qual, sec );
1093  }
1094  val /= denHighQual;
1095  }
1096  highQual_Summary->setBinContent( wh+1, sec, val );
1097  }
1098  }
1099  }
1100 }
1101 
1102 //--------------------------------------------------------
1104  MonitorElement * phi_eta_coarse_integ,
1105  MonitorElement * phi_eta_integ,
1106  const std::string & path_fine,
1107  const std::string & path_coarse,
1108  int wh )
1109 {
1110 
1111  char hname[150];
1112  sprintf( hname, path_fine.c_str(),
1113  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1114 
1115  TH2F * phi_vs_eta_fine = getTH2F(hname);
1116  if ( ! phi_vs_eta_fine ) {
1117  edm::LogError("L1TDTTFClient::buildPhiEtaPloOtFC")
1118  << "Failed to get TH1D " << std::string(hname);
1119  }
1120 
1121  sprintf( hname, path_coarse.c_str(),
1122  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1123  TH2F * phi_vs_eta_coarse = getTH2F(hname);
1124  if ( ! phi_vs_eta_coarse ) {
1125  edm::LogError("L1TDTTFClient::buildPhiEtaPlotOFC")
1126  << "Failed to get TH1D " << std::string(hname);
1127  }
1128 
1129  if ( ! phi_vs_eta_fine || ! phi_vs_eta_coarse ) {
1130  return;
1131  }
1132 
1133  for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1134  float start = 0;
1135  int nbins = 0;
1136  switch ( wh ) {
1137  case 0 : start = 0; nbins = 18; break; // N2
1138  case 1 : start = 8; nbins = 20; break; // N1
1139  case 2 : start = 22; nbins = 10; break; // N0
1140  case 3 : start = 22; nbins = 20; break; // P0
1141  case 4 : start = 36; nbins = 20; break; // P1
1142  case 5 : start = 46; nbins = 18; break; // P2
1143  default : start = 0; nbins = 0; break; // BOH
1144  }
1145 
1146  for ( int eta = 1; eta <= nbins ; ++eta ) {
1147  double setbin = eta + start;
1148 
1149  double valfine = phi_vs_eta_fine->GetBinContent( eta, phi )
1150  + phi_eta_fine_integ->getBinContent( setbin, phi );
1151 
1152  double valcoarse = phi_vs_eta_coarse->GetBinContent( eta, phi )
1153  + phi_eta_coarse_integ->getBinContent( setbin, phi );
1154 
1155  phi_eta_fine_integ->setBinContent( setbin, phi, valfine );
1156  phi_eta_coarse_integ->setBinContent( setbin, phi, valcoarse );
1157  phi_eta_integ->setBinContent( setbin, phi, valfine+valcoarse );
1158 
1159  }
1160 
1161  // double underflow_f = phi_vs_eta_fine->GetBinContent( 0, phi )
1162  // + phi_eta_fine_integ->getBinContent( 1, phi );
1163  // phi_eta_fine_integ->setBinContent( 1, phi, underflow_f );
1164  //
1165  // double underflow_c = phi_vs_eta_coarse->GetBinContent( 0, phi )
1166  // + phi_eta_coarse_integ->getBinContent( 1, phi );
1167  // phi_eta_coarse_integ->setBinContent( 1, phi, underflow_c );
1168  //
1169  // double overflow_f = phi_vs_eta_fine->GetBinContent( nbins+1, phi )
1170  // + phi_eta_fine_integ->getBinContent( 64 );
1171  // phi_eta_fine_integ->setBinContent( 64, phi, overflow_f );
1172  //
1173  // double overflow_c = phi_vs_eta_coarse->GetBinContent( nbins+1, phi )
1174  // + phi_eta_coarse_integ->getBinContent( 64, phi );
1175  // phi_eta_coarse_integ->setBinContent( 64, phi, overflow_c );
1176  //
1177  // double underflow = underflow_f + underflow_c;
1178  // phi_eta_integ->setBinContent( 1, phi, underflow );
1179  //
1180  // double overflow = overflow_f + overflow_c;
1181  // phi_eta_integ->setBinContent( 64, phi, overflow );
1182 
1183  }
1184 
1185 }
1186 
1187 
1188 //--------------------------------------------------------
1190  const std::string & path,
1191  int wh )
1192 {
1193  char hname[100];
1194  sprintf( hname, path.c_str(),
1195  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1196 
1197  TH2F * phi_vs_eta = getTH2F(hname);
1198  if ( ! phi_vs_eta ) {
1199  edm::LogError("L1TDTTFClient::buildPhiEtaPlotO:ME") << "Failed to get TH1D "
1200  << std::string(hname);
1201  } else {
1202 
1203  for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1204  float start = 0;
1205  int nbins = 0;
1206  switch ( wh ) {
1207  case 0 : start = 0; nbins = 18; break; // N2
1208  case 1 : start = 8; nbins = 20; break; // N1
1209  case 2 : start = 22; nbins = 10; break; // N0
1210  case 3 : start = 22; nbins = 20; break; // P0
1211  case 4 : start = 36; nbins = 20; break; // P1
1212  case 5 : start = 46; nbins = 18; break; // P2
1213  default : start = 0; nbins = 0; break; // BOH
1214  }
1215 
1216  for ( int eta = 1; eta <= nbins ; ++eta ) {
1217  double setbin = eta + start;
1218  double val = phi_vs_eta->GetBinContent( eta, phi )
1219  + phi_eta_integ->getBinContent( setbin, phi );
1220  phi_eta_integ->setBinContent( setbin, phi, val );
1221  }
1222 
1223  double underflow = phi_vs_eta->GetBinContent( 0, phi )
1224  + phi_eta_integ->getBinContent( 1, phi );
1225  phi_eta_integ->setBinContent( 1, phi, underflow );
1226 
1227  double overflow = phi_vs_eta->GetBinContent( nbins+1, phi )
1228  + phi_eta_integ->getBinContent( 64 );
1229  phi_eta_integ->setBinContent( 64, phi, overflow );
1230 
1231  }
1232  }
1233 }
1234 
1235 
1236 // //--------------------------------------------------------
1237 // void L1TDTTFClient::buildPhiEtaPlot( MonitorElement * phi_eta_integ,
1238 // const std::string & path ,
1239 // int wh)
1240 // {
1241 // char hname[60];
1242 // sprintf( hname, "%s/dttf_phi_eta_wh%s",
1243 // wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1244 //
1245 // TH2F * phi_vs_eta = getTH2F(hname);
1246 // if ( ! phi_vs_eta ) {
1247 // edm::LogError("L1TDTTFClient::buildPhiEtaPlot:ME") << "Failed to get TH1D "
1248 // << std::string(hname);
1249 // } else {
1250 //
1251 //
1252 // for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1253 // for ( unsigned int eta = 1; eta < 65 ; ++eta ) {
1254 // double val = phi_vs_eta->GetBinContent( eta, phi )
1255 // + dttf_phi_eta_integ->getBinContent( eta, phi );
1256 // dttf_phi_eta_integ->setBinContent( eta, phi, val );
1257 // }
1258 //
1259 // }
1260 // }
1261 // }
1262 //
1263 //
1264 // //--------------------------------------------------------
1265 // void L1TDTTFClient::buildPhiEtaPlotFC( MonitorElement * phi_eta_fine_integ,
1266 // MonitorElement * phi_eta_coarse_integ,
1267 // MonitorElement * phi_eta_integ,
1268 // const std::string & path_fine,
1269 // const std::string & path_coarse,
1270 // int wh )
1271 // {
1272 //
1273 // char hname[60];
1274 //
1275 // sprintf( hname, path_fine.c_str(),
1276 // wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1277 // TH2F * phi_vs_eta_fine = getTH2F(hname);
1278 // if ( ! phi_vs_eta_fine ) {
1279 // edm::LogError("L1TDTTFClient::buildPhiEtaPlotFC")
1280 // << "Failed to get TH1D " << std::string(hname);
1281 // }
1282 //
1283 //
1284 // sprintf( hname, path_coarse.c_str(),
1285 // wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1286 // TH2F * phi_vs_eta_coarse = getTH2F(hname);
1287 // if ( ! phi_vs_eta_coarse ) {
1288 // edm::LogError("L1TDTTFClient::buildPhiEtaPlotFC")
1289 // << "Failed to get TH1D " << std::string(hname);
1290 // }
1291 //
1292 // if ( ! phi_vs_eta_fine || ! phi_vs_eta_coarse ) {
1293 // return;
1294 // }
1295 //
1296 // for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1297 // for ( unsigned int eta = 1; eta < 65 ; ++eta ) {
1298 //
1299 // double valfine = phi_vs_eta_fine->GetBinContent( eta, phi )
1300 // + dttf_phi_eta_fine_integ->getBinContent( eta, phi );
1301 // dttf_phi_eta_fine_integ->setBinContent( eta, phi, valfine );
1302 // double valcoarse = phi_vs_eta_coarse->GetBinContent( eta, phi )
1303 // + dttf_phi_eta_coarse_integ->getBinContent( eta, phi );
1304 // dttf_phi_eta_coarse_integ->setBinContent( eta, phi, valcoarse );
1305 //
1306 // dttf_phi_eta_integ->setBinContent( eta, phi, valfine + valcoarse );
1307 //
1308 // }
1309 //
1310 // }
1311 // }
1312 
1313 
1314 
1315 
1316 //--------------------------------------------------------
1318 {
1319  me->setAxisTitle("Wheel", 1);
1320  me->setBinLabel(1, "N2", 1);
1321  me->setBinLabel(2, "N1", 1);
1322  me->setBinLabel(3, "N0", 1);
1323  me->setBinLabel(4, "P0", 1);
1324  me->setBinLabel(5, "P1", 1);
1325  me->setBinLabel(6, "P2", 1);
1326 
1327 }
1328 
1329 
1330 //--------------------------------------------------------
1332 {
1333 
1334  if( axis == 1 )
1335  me->setAxisTitle("Quality", axis);
1336  me->setBinLabel(1, "T34", axis);
1337  me->setBinLabel(2, "T23/24", axis);
1338  me->setBinLabel(3, "T12/13/14", axis);
1339  me->setBinLabel(4, "T234", axis);
1340  me->setBinLabel(5, "T134", axis);
1341  me->setBinLabel(6, "T123/124", axis);
1342  me->setBinLabel(7, "T1234", axis);
1343 }
1344 
1345 
1346 
1347 
1348 
1349 
1350 
1351 
1352 
MonitorElement * dttf_bx_integ_2ndTrack
Definition: L1TDTTFClient.h:99
MonitorElement * dttf_gmt_matching
Definition: L1TDTTFClient.h:91
MonitorElement * dttf_occupancySummary
Definition: L1TDTTFClient.h:75
MonitorElement * dttf_quality_summary
Definition: L1TDTTFClient.h:80
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]
TH2F * getTH2F(const char *hname)
MonitorElement * dttf_eta_integ_2ndTrack
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:954
void buildPhiEtaPlotO(MonitorElement *phi_eta_integ, const std::string &path, int wh)
void setGMTsummary()
MonitorElement * dttf_quality_integ_2ndTrack
MonitorElement * dttf_eta_wheel[6]
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
DQM Client Diagnostic.
void beginJob(void)
BeginJob.
MonitorElement * dttf_nTracks_integ
Definition: L1TDTTFClient.h:74
MonitorElement * dttf_quality_integ
Definition: L1TDTTFClient.h:79
std::string wheelpath_[6]
Definition: L1TDTTFClient.h:69
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]
MonitorElement * dttf_bx_wheel_summary[6]
T eta() const
MonitorElement * dttf_pt_integ_2ndTrack
void endJob()
Endjob.
MonitorElement * dttf_bx_integ
Definition: L1TDTTFClient.h:77
MonitorElement * dttf_phi_eta_fine_integ
Definition: L1TDTTFClient.h:83
MonitorElement * dttf_highQual_Summary_2ndTrack
MonitorElement * dttf_phi_wheel[6]
MonitorElement * dttf_phi_eta_integ
Definition: L1TDTTFClient.h:84
MonitorElement * dttf_quality_summary_wheel[6]
MonitorElement * dttf_pt_integ
Definition: L1TDTTFClient.h:87
tuple path
else: Piece not in the list, fine.
MonitorElement * dttf_phi_eta_coarse_integ
Definition: L1TDTTFClient.h:82
virtual ~L1TDTTFClient()
Destructor.
TH2F * occupancy_r_
counter
Definition: L1TDTTFClient.h:65
MonitorElement * dttf_occupancySummary_2ndTrack
Definition: L1TDTTFClient.h:97
void beginRun(const edm::Run &r, const edm::EventSetup &c)
BeginRun.
MonitorElement * dttf_eta_integ
Definition: L1TDTTFClient.h:88
MonitorElement * dttf_2ndTrack_Summary
Definition: L1TDTTFClient.h:92
std::string gmtpath_
Definition: L1TDTTFClient.h:71
MonitorElement * dttf_q_integ_2ndTrack
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1708
MonitorElement * dttf_bx_wheel_summary_2ndTrack[6]
DQMStore * dbe_
Definition: L1TDTTFClient.h:66
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &context)
void endRun(const edm::Run &r, const edm::EventSetup &c)
EndRun.
MonitorElement * dttf_bx_summary
Definition: L1TDTTFClient.h:76
MonitorElement * dttf_quality_wheel[6]
TH1F * getTH1F(void) const
void buildSummaries()
TH1F * getTH1F(const char *hname)
MonitorElement * dttf_eta_fine_fraction
Definition: L1TDTTFClient.h:85
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
std::string l1tdttffolder_
Definition: L1TDTTFClient.h:59
double getBinContent(int binx) const
get content of bin (1-D)
void buildHighQualityPlot(TH2F *occupancySummary, MonitorElement *highQual_Summary, const std::string &path)
MonitorElement * dttf_occupancySummary_test
Definition: L1TDTTFClient.h:94
MonitorElement * dttf_fine_fraction_wh[6]
void setQualLabel(MonitorElement *me, int axis)
MonitorElement * dttf_nTracks_wheel[6]
void analyze(const edm::Event &e, const edm::EventSetup &c)
Fake Analyze.
void buildPhiEtaPlotOFC(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)
MonitorElement * dttf_bx_summary_2ndTrack
Definition: L1TDTTFClient.h:98
MonitorElement * dttf_nTracks_integ_2ndTrack
Definition: L1TDTTFClient.h:96
MonitorElement * dttf_phi_integ_2ndTrack
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:6
MonitorElement * dttf_pt_wheel[6]
MonitorElement * dttf_nTracks_wheel_2ndTrack[6]
TH2F * getTH2F(void) const
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:1082
MonitorElement * dttf_phi_integ
Definition: L1TDTTFClient.h:86
MonitorElement * dttf_highQual_Summary
Definition: L1TDTTFClient.h:81
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:89
MonitorElement * dttf_bx_wheel_integ[6]
void normalize(T *me)
std::string inclusivepath_
Definition: L1TDTTFClient.h:70
std::string testpath_
Definition: L1TDTTFClient.h:72
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:667
Definition: Run.h:41
void setWheelLabel(MonitorElement *me)
std::string wheel_[6]
Definition: L1TDTTFClient.h:68
MonitorElement * dttf_quality_summary_2ndTrack
Definition: DDAxes.h:10
MonitorElement * dttf_phi_eta_integ_2ndTrack