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  * $Date: 2011/11/15 13:32:32 $
5  * $Revision: 1.8 $
6  * \author G. Codispoti
7  *
8  */
9 
10 
12 
19 
20 
22  : l1tdttffolder_ ( ps.getUntrackedParameter<std::string> ("l1tSourceFolder", "L1T/L1TDTTF") ),
23  dttfSource_( ps.getParameter< edm::InputTag >("dttfSource") ),
24  online_( ps.getUntrackedParameter<bool>("online", true) ),
25  resetafterlumi_( ps.getUntrackedParameter<int>("resetAfterLumi", 3) ),
26  counterLS_(0), occupancy_r_(0)
27 {
28  edm::LogInfo( "L1TDTTFClient");
29 }
30 
31 
32 //--------------------------------------------------------
34  edm::LogInfo("L1TDTTFClient")<<"[L1TDTTFClient]: ending... ";
35 }
36 
37 
38 //--------------------------------------------------------
40 {
41 
42  edm::LogInfo("L1TDTTFClient")<<"[L1TDTTFClient]: Begin Job";
43 
46 
47  wheelpath_[0] = l1tdttffolder_ + "/02-WHEEL_N2";
48  wheelpath_[1] = l1tdttffolder_ + "/03-WHEEL_N1";
49  wheelpath_[2] = l1tdttffolder_ + "/04-WHEEL_N0";
50  wheelpath_[3] = l1tdttffolder_ + "/05-WHEEL_P0";
51  wheelpath_[4] = l1tdttffolder_ + "/06-WHEEL_P1";
52  wheelpath_[5] = l1tdttffolder_ + "/07-WHEEL_P2";
53 
54  wheel_[0] = "N2";
55  wheel_[1] = "N1";
56  wheel_[2] = "N0";
57  wheel_[3] = "P0";
58  wheel_[4] = "P1";
59  wheel_[5] = "P2";
60 
61  inclusivepath_ = l1tdttffolder_ + "/01-INCLUSIVE";
62  gmtpath_ = l1tdttffolder_ + "/08-GMT_MATCH";
63 
65  char hname[100];//histo name
66  char mename[100];//ME name
67 
70 
72  sprintf(hname, "dttf_02_nTracks");
73  sprintf(mename, "DTTF Tracks by Wheel");
74  dttf_nTracks_integ = dbe_->book1D(hname, mename, 6, 0, 6);
76 
78  sprintf(hname, "dttf_03_tracks_occupancy_summary");
79  sprintf(mename, "DTTF Tracks Occupancy");
80  dttf_occupancySummary = dbe_->book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
82  dttf_occupancySummary->setAxisTitle("Sector", 2);
83 
85 
87  sprintf(hname, "dttf_05_bx_occupancy");
88  sprintf(mename, "DTTF Tracks BX Distribution by Wheel");
89  dttf_bx_summary = dbe_->book2D( hname, mename, 6, 0, 6, 3, -1, 2 );
91  dttf_bx_summary->setAxisTitle("BX", 2 );
92 
94  sprintf(hname, "dttf_06_bx");
95  sprintf(mename, "DTTF Tracks BX w.r.t. Tracks with BX=0");
96  dttf_bx_integ = dbe_->book1D( hname, mename, 3, -1.5, 1.5 );
97  dttf_bx_integ->setAxisTitle("BX", 1);
98 
100  sprintf(hname, "dttf_07_quality");
101  sprintf(mename, "DTTF Tracks Quality distribution");
102  dttf_quality_integ = dbe_->book1D(hname, mename, 7, 1, 8);
104 
106  sprintf(hname, "dttf_08_quality_occupancy");
107  sprintf(mename, "DTTF Tracks Quality distribution by Wheel");
108  dttf_quality_summary = dbe_->book2D( hname, mename, 6, 0, 6, 7, 1, 8 );
109  dttf_quality_summary->setAxisTitle("Wheel", 1);
112 
114  sprintf(hname, "dttf_09_highQuality_Tracks");
115  sprintf(mename, "Fraction of DTTF Tracks with Quality>3");
116  dttf_highQual_Summary = dbe_->book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
118  dttf_highQual_Summary->setAxisTitle("Sector", 2);
119 
120 
122  sprintf(hname, "dttf_10_phi_vs_etaCoarse");
123  sprintf(mename, "#eta-#phi DTTF Tracks occupancy (coarse #eta only, packed values)");
124  dttf_phi_eta_coarse_integ = dbe_->book2D( hname, mename, 64, 0, 64,
125  144, -6, 138. );
128 
130  sprintf(hname, "dttf_11_phi_vs_etaFine");
131  sprintf(mename, "#eta-#phi DTTF Tracks occupancy (fine #eta only, packed values)");
132  dttf_phi_eta_fine_integ = dbe_->book2D( hname, mename, 64, 0, 64,
133  144, -6, 138. );
136 
138  sprintf(hname, "dttf_12_phi_vs_eta");
139  sprintf(mename, "#eta-#phi DTTF Tracks occupancy");
140  dttf_phi_eta_integ = dbe_->book2D( hname, mename, 64, -1.2, 1.2,
141  144, -15, 345. );
142  dttf_phi_eta_integ->setAxisTitle("#eta", 1);
143  dttf_phi_eta_integ->setAxisTitle("#phi", 2);
144 
146  sprintf(hname, "dttf_13_eta_fine_fraction");
147  sprintf(mename, "Fraction of DTTF Tracks with Fine #eta Assignment");
148  dttf_eta_fine_fraction = dbe_->book1D( hname, mename, 6, 0, 6 );
151 
153 
155  sprintf(hname, "dttf_14_eta");
156  sprintf(mename, "DTTF Tracks #eta distribution (Packed values)");
157  dttf_eta_integ = dbe_->book1D(hname, mename, 64, -0.5, 63.5);
158  dttf_eta_integ->setAxisTitle("#eta", 1);
159 
161  sprintf(hname, "dttf_15_phi");
162  sprintf(mename, "DTTF Tracks Phi distribution (Packed values)");
163  dttf_phi_integ = dbe_->book1D(hname, mename, 144, -6, 138. );
164  dttf_phi_integ->setAxisTitle("#phi", 1);
165 
167  sprintf(hname, "dttf_16_pt");
168  sprintf(mename, "DTTF Tracks p_{T} distribution (Packed values)");
169  dttf_pt_integ = dbe_->book1D(hname, mename, 32, -0.5, 31.5);
170  dttf_pt_integ->setAxisTitle("p_{T}", 1);
171 
173  sprintf(hname, "dttf_17_charge");
174  sprintf(mename, "DTTF Tracks Charge distribution");
175  dttf_q_integ = dbe_->book1D(hname, mename, 2, -0.5, 1.5);
176  dttf_q_integ->setAxisTitle("Charge", 1);
177 
178 
179 
181  sprintf(hname, "dttf_18_2ndTrack_occupancy_summary");
182  sprintf(mename, "DTTF 2nd Tracks occupancy w.r.t. Tracks with BX=0");
183  dttf_2ndTrack_Summary = dbe_->book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
185 
186 
187 
192  sprintf(hname, "dttf_gmt_fract_matching" );
193  sprintf(mename, "Fraction of DTTF tracks matching with GMT tracks" );
194  dttf_gmt_matching = dbe_->book1D( hname, mename, 3, 1, 4);
195  dttf_gmt_matching->setBinLabel(1, "GMT Only", 1);
196  dttf_gmt_matching->setBinLabel(2, "Matching", 1);
197  dttf_gmt_matching->setBinLabel(3, "DTTF Only", 1);
198 
199 
203  dbe_->setCurrentFolder( inclusivepath_ + "/2ND_TRACK_ONLY");
204 
206  sprintf(hname, "dttf_01_nTracks_2ndTrack");
207  sprintf(mename, "DTTF 2nd Tracks per Wheel distribution");
208  dttf_nTracks_integ_2ndTrack = dbe_->book1D(hname, mename, 6, 0, 6);
210 
212  sprintf(hname, "dttf_02_occupancy_summary_2ndTrack");
213  sprintf(mename, "DTTF 2nd Tracks distribution by Sector and Wheel");
214  dttf_occupancySummary_2ndTrack = dbe_->book2D( hname, mename, 6, 0, 6,
215  12, 1, 13 );
217 
219  sprintf(hname, "dttf_03_bx_occupancy_2ndTrack");
220  sprintf(mename, "DTTF 2nd Tracks BX Distribution by Wheel");
221  dttf_bx_summary_2ndTrack = dbe_->book2D( hname, mename, 6, 0, 6, 3, -1, 2 );
224 
226  sprintf(hname, "dttf_04_bx_2ndTrack");
227  sprintf(mename, "Fraction of DTTF Tracks BX w.r.t. Tracks with BX=0");
228  dttf_bx_integ_2ndTrack = dbe_->book1D( hname, mename, 3, -1.5, 1.5 );
230 
232  sprintf(hname, "dttf_05_quality_2ndTrack");
233  sprintf(mename, "DTTF 2nd Tracks Quality distribution");
234  dttf_quality_integ_2ndTrack = dbe_->book1D(hname, mename, 7, 0.5, 7.5);
237 
239  sprintf(hname, "dttf_06_quality_occupancy_2ndTrack");
240  sprintf(mename, "DTTF 2nd Tracks Quality distribution by Wheel");
241  dttf_quality_summary_2ndTrack = dbe_->book2D( hname, mename,
242  6, 0, 6, 7, 1, 8 );
246 
248  sprintf(hname, "dttf_07_highQuality_Tracks_2ndTrack");
249  sprintf(mename, "Fraction of DTTF 2nd Tracks with Quality>3");
250  dttf_highQual_Summary_2ndTrack = dbe_->book2D( hname, mename, 6, 0, 6,
251  12, 1, 13 );
254 
256  sprintf(hname, "dttf_08_phi_vs_eta_2ndTrack");
257  sprintf(mename, "#eta-#phi DTTF Tracks occupancy for 2nd Tracks");
258  dttf_phi_eta_integ_2ndTrack = dbe_->book2D( hname, mename, 64, 0, 64,
259  144, -6, 138. );
262 
264  sprintf(hname, "dttf_09_eta_2ndTrack");
265  sprintf(mename, "DTTF 2nd Tracks #eta distribution (Packed values)");
266  dttf_eta_integ_2ndTrack = dbe_->book1D(hname, mename, 64, -0.5, 63.5);
268 
270  sprintf(hname, "dttf_10_phi_2ndTrack");
271  sprintf(mename, "DTTF 2nd Tracks Phi distribution (Packed values)");
272  dttf_phi_integ_2ndTrack = dbe_->book1D(hname, mename, 144, -6, 138 );
274 
276  sprintf(hname, "dttf_11_pt_2ndTrack");
277  sprintf(mename, "DTTF 2nd Tracks p_{T} distribution (Packed values)");
278  dttf_pt_integ_2ndTrack = dbe_->book1D(hname, mename, 32, -0.5, 31.5);
280 
282  sprintf(hname, "dttf_12_charge_2ndTrack");
283  sprintf(mename, "DTTF 2nd Tracks Charge distribution");
284  dttf_q_integ_2ndTrack = dbe_->book1D(hname, mename, 2, -0.5, 1.5);
285  dttf_q_integ_2ndTrack->setAxisTitle("Charge", 1);
286 
287 
288  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
290 
292  sprintf( hname, "dttf_02_nTracks_wh%s", wheel_[wh].c_str() );
293  sprintf( mename, "Wheel %s - Number of Tracks", wheel_[wh].c_str() );
294  dttf_nTracks_wheel[wh] = dbe_->book1D( hname, mename, 12, 1, 13);
295  dttf_nTracks_wheel[wh]->setAxisTitle("sector", 1);
296 
298  sprintf(hname, "dttf_03_bx_occupancy_wh%s", wheel_[wh].c_str() );
299  sprintf(mename, "Wheel %s - DTTF Tracks BX distribution by Sector",
300  wheel_[wh].c_str());
301  dttf_bx_wheel_summary[wh] = dbe_->book2D( hname, mename, 12, 1, 13, 3, -1, 2);
302  dttf_bx_wheel_summary[wh]->setAxisTitle("BX", 2 );
303  dttf_bx_wheel_summary[wh]->setAxisTitle("Sector", 1 );
304 
306  sprintf(hname, "dttf_04_bx_wh%s", wheel_[wh].c_str());
307  sprintf(mename, "Wheel %s - DTTF Tracks BX w.r.t. Tracks with BX=0", wheel_[wh].c_str());
308  dttf_bx_wheel_integ[wh] = dbe_->book1D(hname, mename, 3, -1.5, 1.5);
309  dttf_bx_wheel_integ[wh]->setAxisTitle("BX", 1);
310 
312  sprintf(hname, "dttf_05_quality_wh%s", wheel_[wh].c_str() );
313  sprintf(mename, "Wheel %s - Tracks Quality Distribution", wheel_[wh].c_str() );
314  dttf_quality_wheel[wh] = dbe_->book1D(hname, mename, 7, 1, 8);
315  dttf_quality_wheel[wh]->setAxisTitle("Quality", 1);
317 
319  sprintf(hname, "dttf_06_quality_summary_wh%s", wheel_[wh].c_str() );
320  sprintf(mename, "Wheel %s - Tracks Quality Distribution by Sector",
321  wheel_[wh].c_str() );
322  dttf_quality_summary_wheel[wh] = dbe_->book2D(hname, mename, 12, 1, 13, 7, 1, 8);
323  dttf_quality_summary_wheel[wh]->setAxisTitle("Sector", 1);
324  // dttf_quality_summary_wheel[wh]->setAxisTitle("Quality", 2);
326 
328  sprintf(hname, "dttf_09_etaFine_fraction_wh%s", wheel_[wh].c_str() );
329  sprintf(mename, "Wheel %s - Fraction of DTTF Tracks with fine #eta assignment",
330  wheel_[wh].c_str());
331  dttf_fine_fraction_wh[wh] = dbe_->book1D( hname, mename, 12, 1, 13);
332  dttf_fine_fraction_wh[wh]->setAxisTitle("Sector", 1 );
333 
334 
336  sprintf(hname, "dttf_10_eta_wh%s", wheel_[wh].c_str() );
337  sprintf(mename, "Wheel %s - DTTF Tracks #eta distribution (Packed values)",
338  wheel_[wh].c_str() );
339  dttf_eta_wheel[wh] = dbe_->book1D(hname, mename, 64, -0.5, 63.5 );
340  dttf_eta_wheel[wh]->setAxisTitle("#eta", 1 );
341 
343  sprintf(hname, "dttf_11_phi_wh%s", wheel_[wh].c_str() );
344  sprintf(mename, "Wheel %s - DTTF Tracks Phi distribution (Packed values)",
345  wheel_[wh].c_str() );
346  dttf_phi_wheel[wh] = dbe_->book1D(hname, mename, 144, -6, 138. );
347  dttf_phi_wheel[wh]->setAxisTitle("#phi", 1);
348 
350  sprintf(hname, "dttf_12_pt_wh%s", wheel_[wh].c_str() );
351  sprintf(mename, "Wheel %s - DTTF Tracks p_{T} distribution (Packed values)",
352  wheel_[wh].c_str() );
353  dttf_pt_wheel[wh] = dbe_->book1D(hname, mename, 32, -0.5, 31.5);
354  dttf_pt_wheel[wh]->setAxisTitle("p_{T}", 1);
355 
357  sprintf(hname, "dttf_13_charge_wh%s", wheel_[wh].c_str() );
358  sprintf(mename, "Wheel %s - DTTF Tracks Charge distribution",
359  wheel_[wh].c_str() );
360  dttf_q_wheel[wh] = dbe_->book1D(hname, mename, 2, -0.5, 1.5);
361  dttf_q_wheel[wh]->setAxisTitle("Charge", 1);
362 
363  }
364 
365 
367  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
368  dbe_->setCurrentFolder( wheelpath_[wh] + "/2ND_TRACK_ONLY" );
369 
371  sprintf( hname, "dttf_01_nTracks_wh%s_2ndTrack", wheel_[wh].c_str() );
372  sprintf( mename, "Wheel %s - DTTF Number of 2nd Tracks with BX=0",
373  wheel_[wh].c_str() );
374  dttf_nTracks_wheel_2ndTrack[wh] = dbe_->book1D( hname, mename,
375  12, 1, 13);
376  dttf_nTracks_wheel_2ndTrack[wh]->setAxisTitle("sector", 1);
377 
379  sprintf(hname, "dttf_02_bx_occupancy_wh%s_2ndTrack", wheel_[wh].c_str() );
380  sprintf(mename, "Wheel %s - DTTF 2nd Tracks BX distribution by Sector",
381  wheel_[wh].c_str());
382  dttf_bx_wheel_summary_2ndTrack[wh] = dbe_->book2D( hname, mename, 12, 1, 13, 3, -1, 2);
384  dttf_bx_wheel_summary_2ndTrack[wh]->setAxisTitle("Sector", 1 );
385 
387  sprintf(hname, "dttf_03_bx_wh%s_2ndTrack", wheel_[wh].c_str());
388  sprintf(mename, "Wheel %s - 2nd Tracks BX Distribution", wheel_[wh].c_str());
389  dttf_bx_wheel_integ_2ndTrack[wh] = dbe_->book1D(hname, mename, 3, -1.5, 1.5);
391 
392 
393  }
394 
395 
396 
397 }
398 
399 //--------------------------------------------------------
400 void L1TDTTFClient::beginRun(const edm::Run& r, const edm::EventSetup& context)
401 {
402 }
403 
404 //--------------------------------------------------------
406  const edm::EventSetup& context)
407 {
409  ++counterLS_;
410 
411  if ( online_ && !( counterLS_ % resetafterlumi_ ) ) {
412  char hname[60];
413  sprintf( hname, "%s/dttf_04_tracks_occupancy_by_lumi",
414  inclusivepath_.c_str() );
415 
416  occupancy_r_ = getTH2F(hname);
417  if ( ! occupancy_r_ ) {
418  edm::LogError("L1TDTTFClient::beginLuminosityBlock:ME")
419  << "Failed to get TH2D " << std::string(hname);
420  } else {
421  edm::LogInfo("L1TDTTFClient::beginLuminosityBlock:RESET") << "Reseting plots by lumi!";
422  occupancy_r_->Reset();
423  }
424  }
425 
426 }
427 
428 //--------------------------------------------------------
430  const edm::EventSetup& c)
431 {
432 
434  if ( online_ ) {
435  makeSummary();
437  }
438 
439 }
440 
441 //--------------------------------------------------------
443  const edm::EventSetup& context)
444 {
445 
446 
447 }
448 
449 //--------------------------------------------------------
450 void L1TDTTFClient::endRun(const edm::Run& r, const edm::EventSetup& context)
451 {
452  makeSummary();
453 }
454 
455 //--------------------------------------------------------
457 {
458 }
459 
460 
461 //--------------------------------------------------------
463 {
467  buildSummaries();
468 
472  double scale = 0;
473  double entries = dttf_occupancySummary->getTH2F()->Integral();
474 
475  if ( entries ) {
476 
479 
481  scale = 1 / entries;
484 
486  double physEntries = dttf_eta_integ->getTH1F()->Integral();
487  if ( physEntries > 0 ) {
488  double physScale = 1 / physEntries;
489 
490  normalize( dttf_phi_eta_integ->getTH2F(), physScale );
491 
492  normalize( dttf_phi_eta_fine_integ->getTH2F(), physScale );
494  normalize( dttf_quality_summary->getTH2F(), physScale );
495 
496  normalize( dttf_eta_integ->getTH1F(), physScale );
497  normalize( dttf_q_integ->getTH1F(), physScale );
498  normalize( dttf_pt_integ->getTH1F(), physScale );
499  normalize( dttf_phi_integ->getTH1F(), physScale );
500  normalize( dttf_quality_integ->getTH1F(), physScale );
501 
502  }
503 
504  }
505 
509 
510  double entries2ndTrack = dttf_occupancySummary_2ndTrack->getTH2F()->Integral();
511  if ( entries2ndTrack > 0 ) {
512 
515 
517  TH2F * ratio = dttf_occupancySummary_2ndTrack->getTH2F();
519  "%s/2ND_TRACK_ONLY/dttf_05_quality_summary_wh%s_2ndTrack" );
520 
522 
524  double scale2nd = 1 / entries2ndTrack;
526  normalize( dttf_nTracks_integ_2ndTrack->getTH1F(), scale2nd ); //
527 
528 
537 
538  }
539 
541  setGMTsummary();
542 
543 }
544 
545 
546 
547 
548 //--------------------------------------------------------
550 {
551 
552  char hname[100];
553  int wheelBx[4];
554  int wheelBx2nd[4];
555  int wheelSumBx[4];
556  int wheelSumBx2nd[4];
557  int qualities[8];
558 
559  memset( wheelSumBx, 0, 4 * sizeof(int) );
560  memset( wheelSumBx2nd, 0, 4 * sizeof(int) );
561 
564  dttf_q_integ->Reset();
565  dttf_pt_integ->Reset();
575 
579 
580  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
581 
582  dttf_eta_wheel[wh]->Reset();
583  dttf_q_wheel[wh]->Reset();
584  dttf_pt_wheel[wh]->Reset();
585  dttf_phi_wheel[wh]->Reset();
586  dttf_quality_wheel[wh]->Reset();
588 
589  double wheelEtaAll = 0;
590  double wheelEtaFine = 0;
591  memset( wheelBx, 0, 4 * sizeof(int) );
592  memset( wheelBx2nd, 0, 4 * sizeof(int) );
593 
595  memset( qualities, 0, 8 * sizeof(int) );
596 
602  "%s/dttf_07_phi_vs_etaFine_wh%s",
603  "%s/dttf_08_phi_vs_etaCoarse_wh%s", wh );
604 
606  "%s/2ND_TRACK_ONLY/dttf_06_phi_vs_eta_wh%s_2ndTrack",
607  wh );
608 
609 
613  for ( unsigned int sector = 1; sector < 13; ++sector ) {
614 
618  sprintf( hname, "%s/BX_BySector/dttf_bx_wh%s_se%d",
619  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
620 
621  TH1F * bxsector = getTH1F(hname);
622  if ( ! bxsector ) {
623  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
624  << std::string(hname);
625  } else {
626 
627  for ( unsigned int bx = 1; bx < 4 ; ++bx ) {
628 
629  int bxval = bxsector->GetBinContent( bx );
630 
631  if ( bx == 2 ) {
632  // if ( wh == 2 )
633  // dttf_occupancySummary->setBinContent( wh+1, sector, bxval*14 );
634  // else
635  // dttf_occupancySummary->setBinContent( wh+1, sector, bxval );
636  dttf_occupancySummary->setBinContent( wh+1, sector, bxval );
637  dttf_nTracks_wheel[wh]->setBinContent(sector, bxval );
638  }
639  wheelBx[bx] += bxval;
640  dttf_bx_wheel_summary[wh]->setBinContent( sector, bx, bxval );
641  }
642  }
643 
644 
648  sprintf( hname, "%s/BX_BySector/2ND_TRACK_ONLY/dttf_bx_2ndTrack_wh%s_se%d",
649  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
650 
651  TH1F * bxsector2nd = getTH1F(hname);
652  if ( ! bxsector2nd ) {
653  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
654  << std::string(hname);
655  } else {
656 
657  for ( unsigned int bx = 1; bx < 4 ; ++bx ) {
658  int bxval = bxsector2nd->GetBinContent( bx );
659 
660  if ( bx == 2 ) {
661  dttf_2ndTrack_Summary->setBinContent( wh+1, sector, bxval );
662  dttf_occupancySummary_2ndTrack->setBinContent(wh+1, sector, bxval);
663  dttf_nTracks_wheel_2ndTrack[wh]->setBinContent(sector, bxval );
664  }
665  wheelBx2nd[bx] += bxval;
666  dttf_bx_wheel_summary_2ndTrack[wh]->setBinContent(sector, bx, bxval);
667  }
668  }
669 
673  sprintf( hname, "%s/Charge/dttf_charge_wh%s_se%d",
674  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
675  TH1F * tmp = getTH1F(hname);
676  if ( ! tmp ) {
677  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
678  << std::string(hname);
679  } else {
680  dttf_q_integ->getTH1F()->Add( tmp );
681  dttf_q_wheel[wh]->getTH1F()->Add( tmp );
682  }
683 
687  sprintf( hname, "%s/PT/dttf_pt_wh%s_se%d",
688  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
689  tmp = getTH1F(hname);
690  if ( ! tmp ) {
691  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
692  << std::string(hname);
693  } else {
694  dttf_pt_integ->getTH1F()->Add( tmp );
695  dttf_pt_wheel[wh]->getTH1F()->Add( tmp );
696  }
697 
698 
702  sprintf( hname, "%s/Phi/dttf_phi_wh%s_se%d",
703  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
704  tmp = getTH1F(hname);
705  if ( ! tmp ) {
706  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
707  << std::string(hname);
708  } else {
709  dttf_phi_integ->getTH1F()->Add( tmp );
710  dttf_phi_wheel[wh]->getTH1F()->Add( tmp );
711  }
712 
713 
717  double highQual = 0;
718  double denHighQual = 0;
719  sprintf( hname, "%s/Quality/dttf_qual_wh%s_se%d",
720  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
721  tmp = getTH1F(hname);
722  if ( ! tmp ) {
723  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
724  << std::string(hname);
725  } else {
726 
727  dttf_quality_wheel[wh]->getTH1F()->Add( tmp );
728 
729 
730  for ( unsigned int qual = 1; qual < 4 ; ++qual ) {
731  double bincontent = tmp->GetBinContent( qual );
732  qualities[qual] += bincontent;
733  denHighQual += bincontent;
734  dttf_quality_summary_wheel[wh]->setBinContent(sector, qual, bincontent);
735  }
736 
737  for ( unsigned int qual = 4; qual < 8 ; ++qual ) {
738  double bincontent = tmp->GetBinContent( qual );
739  qualities[qual] += bincontent;
740  dttf_quality_summary_wheel[wh]->setBinContent(sector, qual, bincontent);
741  denHighQual += bincontent;
742  highQual += bincontent;
743  }
744 
745  }
746  if ( denHighQual > 0 ) highQual /= denHighQual;
747  dttf_highQual_Summary->setBinContent( wh+1, sector, highQual );
748 
749 
753  sprintf( hname, "%s/Eta/dttf_eta_wh%s_se%d",
754  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
755  tmp = getTH1F(hname);
756  if ( ! tmp ) {
757  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
758  << std::string(hname);
759  } else {
760  dttf_eta_integ->getTH1F()->Add( tmp );
761  dttf_eta_wheel[wh]->getTH1F()->Add( tmp );
762  }
763 
764 
768  sprintf( hname, "%s/EtaFineFraction/dttf_etaFine_fraction_wh%s_se%d",
769  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
770  tmp = getTH1F(hname);
771  if ( ! tmp ) {
772  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
773  << std::string(hname);
774  } else {
775  double fine = tmp->GetBinContent( 1 );
776  double coarse = tmp->GetBinContent( 2 );
777  double tot = fine + coarse;
778  wheelEtaAll += tot;
779  wheelEtaFine += fine;
780  if ( tot > 0 ) {
781  dttf_fine_fraction_wh[wh]->setBinContent( sector, fine/tot );
782  }
783  }
784 
785  }
786 
790  if ( wheelEtaAll > 0 ) {
791  dttf_eta_fine_fraction->setBinContent( wh+1, wheelEtaFine/wheelEtaAll );
792  }
793 
797  dttf_nTracks_integ->setBinContent( wh+1, wheelBx[2] );
798  dttf_nTracks_integ_2ndTrack->setBinContent( wh+1, wheelBx2nd[2] );
799 
803  for ( unsigned int bx = 1; bx < 4; ++bx ) {
804 
805  dttf_bx_wheel_integ[wh]->setBinContent( bx, wheelBx[bx] );
806  dttf_bx_summary->setBinContent( wh+1, bx, wheelBx[bx] );
807  wheelSumBx[bx] += wheelBx[bx];
808 
809  dttf_bx_wheel_integ_2ndTrack[wh]->setBinContent( bx, wheelBx2nd[bx] );
810  dttf_bx_summary_2ndTrack->setBinContent( wh+1, bx, wheelBx2nd[bx] );
811  wheelSumBx2nd[bx] += wheelBx2nd[bx];
812 
813  }
814 
815 
819  for ( unsigned int qual = 1; qual < 8 ; ++qual ) {
820  dttf_quality_summary->setBinContent( wh+1, qual, qualities[qual] );
821  dttf_quality_integ->getTH1F()->AddBinContent( qual, qualities[qual] );
822  }
823 
824 
834  normalize( dttf_eta_wheel[wh]->getTH1F() );
835  normalize( dttf_q_wheel[wh]->getTH1F() );
836  normalize( dttf_pt_wheel[wh]->getTH1F() );
837  normalize( dttf_phi_wheel[wh]->getTH1F() );
838 
842  double scale = wheelBx[2];
843  if ( scale > 0 ) {
844  scale = 1/scale;
845  normalize( dttf_bx_wheel_integ[wh]->getTH1F(), scale );
846  }
847 
848  scale = wheelBx2nd[2];
849  if ( scale > 0 ) {
850  scale = 1/scale;
852  }
853 
854 
855 
856 
862 
863 
867  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_07_eta_wh%s_2ndTrack",
868  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
869 
870  TH1F * tmp = getTH1F(hname);
871  if ( ! tmp ) {
872  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
873  << std::string(hname);
874  } else {
875  dttf_eta_integ_2ndTrack->getTH1F()->Add( tmp );
876  }
877 
881  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_08_phi_wh%s_2ndTrack",
882  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
883  tmp = getTH1F(hname);
884  if ( ! tmp ) {
885  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
886  << std::string(hname);
887  } else {
888  dttf_phi_integ_2ndTrack->getTH1F()->Add( tmp );
889  }
890 
891 
895  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_09_pt_wh%s_2ndTrack",
896  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
897  tmp = getTH1F(hname);
898  if ( ! tmp ) {
899  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
900  << std::string(hname);
901  } else {
902  dttf_pt_integ_2ndTrack->getTH1F()->Add( tmp );
903  }
904 
908  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_10_charge_wh%s_2ndTrack",
909  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
910  tmp = getTH1F(hname);
911  if ( ! tmp ) {
912  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
913  << std::string(hname);
914  } else {
915  dttf_q_integ_2ndTrack->getTH1F()->Add( tmp );
916  }
917 
921  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_04_quality_wh%s_2ndTrack",
922  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
923  tmp = getTH1F(hname);
924  if ( ! tmp ) {
925  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
926  << std::string(hname);
927  } else {
928  for ( unsigned int qual = 1; qual < 8; ++qual ) {
929  double binqual = tmp->GetBinContent( qual );
930  dttf_quality_integ_2ndTrack->getTH1F()->AddBinContent( qual, binqual );
931  dttf_quality_summary_2ndTrack->setBinContent( wh+1, qual, binqual );
932  }
933  }
934 
935 
936  }
937 
941  for ( unsigned int bx = 1; bx < 4; ++bx ) {
942  dttf_bx_integ->setBinContent( bx, wheelSumBx[bx] );
943  dttf_bx_integ_2ndTrack->setBinContent( bx, wheelSumBx2nd[bx] );
944  }
945 
949  double scale = wheelSumBx[2];
950  if ( scale > 0 ) {
951  scale = 1./scale;
953  }
954 
955  scale = wheelSumBx2nd[2];
956  if ( scale > 0 ) {
957  scale = 1./scale;
959  }
960 
961 
962 }
963 
964 
965 
966 //--------------------------------------------------------
968 {
969  char hname[60];
970  sprintf( hname, "%s/dttf_tracks_with_gmt_match", gmtpath_.c_str() );
971  TH2F * gmt_match = getTH2F(hname);
972  if ( ! gmt_match ) {
973  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
974  << std::string(hname);
975  return;
976  }
977 
978 
979 
980  sprintf( hname, "%s/dttf_tracks_without_gmt_match", gmtpath_.c_str() );
981  TH2F * gmt_missed = getTH2F(hname);
982  if ( ! gmt_missed ) {
983  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
984  << std::string(hname);
985  return;
986  }
987 
988 
989  sprintf( hname, "%s/dttf_missing_tracks_in_gmt", gmtpath_.c_str() );
990  TH2F * gmt_ghost = getTH2F(hname);
991  if ( ! gmt_ghost ) {
992  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
993  << std::string(hname);
994  return;
995  }
996 
997  int match = gmt_match->Integral();
998  int missed = gmt_missed->Integral();
999  int ghost = gmt_ghost->Integral();
1000  float tot = match + missed + ghost;
1001  if ( tot > 0 ) {
1002  double val = ghost/tot;
1003  dttf_gmt_matching->setBinContent( 1, val );
1004  val = match/tot;
1005  dttf_gmt_matching->setBinContent( 2, val );
1006  val = missed/tot;
1007  dttf_gmt_matching->setBinContent( 3, val );
1008  }
1009 }
1010 
1011 
1012 
1013 //--------------------------------------------------------
1014 TH1F * L1TDTTFClient::getTH1F(const char * hname)
1015 {
1016 
1017  MonitorElement * me = dbe_->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 
1025  // edm::LogInfo("L1TDTTFClient::getTH1F") << "#################### "
1026  // << std::string(hname);
1027 
1028  return me->getTH1F();
1029 
1030 }
1031 
1032 
1033 //--------------------------------------------------------
1034 TH2F * L1TDTTFClient::getTH2F(const char * hname)
1035 {
1036 
1037  MonitorElement * me = dbe_->get(hname);
1038  if ( ! me ) {
1039  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get ME "
1040  << std::string(hname);
1041  return NULL;
1042  }
1043 
1044 
1045  // edm::LogInfo("L1TDTTFClient::getTH2F") << "#################### "
1046  // << std::string(hname);
1047 
1048  return me->getTH2F();
1049 
1050 }
1051 
1052 
1053 //--------------------------------------------------------
1054 
1055 //--------------------------------------------------------
1056 void L1TDTTFClient::buildHighQualityPlot( TH2F * occupancySummary,
1057  MonitorElement * highQual_Summary,
1058  const std::string & path )
1059 {
1060 
1061  char hname[150];
1062 
1066  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
1067  sprintf( hname, path.c_str(), wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1068 
1069  TH2F * quality = getTH2F(hname);
1070  if ( ! quality ) {
1071  edm::LogError("L1TDTTFClient::buildHighQualityPlot")
1072  << "Failed to get TH2F " << std::string(hname);
1073  } else {
1074 
1075  for ( unsigned int sec = 1; sec < 13 ; ++sec ) {
1076  double denHighQual = occupancySummary->GetBinContent( wh+1, sec );
1077  double val = 0;
1078  if ( denHighQual > 0 ) {
1079  for ( unsigned int qual = 4; qual < 8 ; ++qual ) {
1080  val += quality->GetBinContent( qual, sec );
1081  }
1082  val /= denHighQual;
1083  }
1084  highQual_Summary->setBinContent( wh+1, sec, val );
1085  }
1086  }
1087  }
1088 }
1089 
1090 //--------------------------------------------------------
1092  MonitorElement * phi_eta_coarse_integ,
1093  MonitorElement * phi_eta_integ,
1094  const std::string & path_fine,
1095  const std::string & path_coarse,
1096  int wh )
1097 {
1098 
1099  char hname[150];
1100  sprintf( hname, path_fine.c_str(),
1101  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1102 
1103  TH2F * phi_vs_eta_fine = getTH2F(hname);
1104  if ( ! phi_vs_eta_fine ) {
1105  edm::LogError("L1TDTTFClient::buildPhiEtaPloOtFC")
1106  << "Failed to get TH1D " << std::string(hname);
1107  }
1108 
1109  sprintf( hname, path_coarse.c_str(),
1110  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1111  TH2F * phi_vs_eta_coarse = getTH2F(hname);
1112  if ( ! phi_vs_eta_coarse ) {
1113  edm::LogError("L1TDTTFClient::buildPhiEtaPlotOFC")
1114  << "Failed to get TH1D " << std::string(hname);
1115  }
1116 
1117  if ( ! phi_vs_eta_fine || ! phi_vs_eta_coarse ) {
1118  return;
1119  }
1120 
1121  for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1122  float start = 0;
1123  int nbins = 0;
1124  switch ( wh ) {
1125  case 0 : start = 0; nbins = 18; break; // N2
1126  case 1 : start = 8; nbins = 20; break; // N1
1127  case 2 : start = 22; nbins = 10; break; // N0
1128  case 3 : start = 22; nbins = 20; break; // P0
1129  case 4 : start = 36; nbins = 20; break; // P1
1130  case 5 : start = 46; nbins = 18; break; // P2
1131  default : start = 0; nbins = 0; break; // BOH
1132  }
1133 
1134  for ( int eta = 1; eta <= nbins ; ++eta ) {
1135  double setbin = eta + start;
1136 
1137  double valfine = phi_vs_eta_fine->GetBinContent( eta, phi )
1138  + phi_eta_fine_integ->getBinContent( setbin, phi );
1139 
1140  double valcoarse = phi_vs_eta_coarse->GetBinContent( eta, phi )
1141  + phi_eta_coarse_integ->getBinContent( setbin, phi );
1142 
1143  phi_eta_fine_integ->setBinContent( setbin, phi, valfine );
1144  phi_eta_coarse_integ->setBinContent( setbin, phi, valcoarse );
1145  phi_eta_integ->setBinContent( setbin, phi, valfine+valcoarse );
1146 
1147  }
1148 
1149  // double underflow_f = phi_vs_eta_fine->GetBinContent( 0, phi )
1150  // + phi_eta_fine_integ->getBinContent( 1, phi );
1151  // phi_eta_fine_integ->setBinContent( 1, phi, underflow_f );
1152  //
1153  // double underflow_c = phi_vs_eta_coarse->GetBinContent( 0, phi )
1154  // + phi_eta_coarse_integ->getBinContent( 1, phi );
1155  // phi_eta_coarse_integ->setBinContent( 1, phi, underflow_c );
1156  //
1157  // double overflow_f = phi_vs_eta_fine->GetBinContent( nbins+1, phi )
1158  // + phi_eta_fine_integ->getBinContent( 64 );
1159  // phi_eta_fine_integ->setBinContent( 64, phi, overflow_f );
1160  //
1161  // double overflow_c = phi_vs_eta_coarse->GetBinContent( nbins+1, phi )
1162  // + phi_eta_coarse_integ->getBinContent( 64, phi );
1163  // phi_eta_coarse_integ->setBinContent( 64, phi, overflow_c );
1164  //
1165  // double underflow = underflow_f + underflow_c;
1166  // phi_eta_integ->setBinContent( 1, phi, underflow );
1167  //
1168  // double overflow = overflow_f + overflow_c;
1169  // phi_eta_integ->setBinContent( 64, phi, overflow );
1170 
1171  }
1172 
1173 }
1174 
1175 
1176 //--------------------------------------------------------
1178  const std::string & path,
1179  int wh )
1180 {
1181  char hname[100];
1182  sprintf( hname, path.c_str(),
1183  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1184 
1185  TH2F * phi_vs_eta = getTH2F(hname);
1186  if ( ! phi_vs_eta ) {
1187  edm::LogError("L1TDTTFClient::buildPhiEtaPlotO:ME") << "Failed to get TH1D "
1188  << std::string(hname);
1189  } else {
1190 
1191  for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1192  float start = 0;
1193  int nbins = 0;
1194  switch ( wh ) {
1195  case 0 : start = 0; nbins = 18; break; // N2
1196  case 1 : start = 8; nbins = 20; break; // N1
1197  case 2 : start = 22; nbins = 10; break; // N0
1198  case 3 : start = 22; nbins = 20; break; // P0
1199  case 4 : start = 36; nbins = 20; break; // P1
1200  case 5 : start = 46; nbins = 18; break; // P2
1201  default : start = 0; nbins = 0; break; // BOH
1202  }
1203 
1204  for ( int eta = 1; eta <= nbins ; ++eta ) {
1205  double setbin = eta + start;
1206  double val = phi_vs_eta->GetBinContent( eta, phi )
1207  + phi_eta_integ->getBinContent( setbin, phi );
1208  phi_eta_integ->setBinContent( setbin, phi, val );
1209  }
1210 
1211  double underflow = phi_vs_eta->GetBinContent( 0, phi )
1212  + phi_eta_integ->getBinContent( 1, phi );
1213  phi_eta_integ->setBinContent( 1, phi, underflow );
1214 
1215  double overflow = phi_vs_eta->GetBinContent( nbins+1, phi )
1216  + phi_eta_integ->getBinContent( 64 );
1217  phi_eta_integ->setBinContent( 64, phi, overflow );
1218 
1219  }
1220  }
1221 }
1222 
1223 
1224 // //--------------------------------------------------------
1225 // void L1TDTTFClient::buildPhiEtaPlot( MonitorElement * phi_eta_integ,
1226 // const std::string & path ,
1227 // int wh)
1228 // {
1229 // char hname[60];
1230 // sprintf( hname, "%s/dttf_phi_eta_wh%s",
1231 // wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1232 //
1233 // TH2F * phi_vs_eta = getTH2F(hname);
1234 // if ( ! phi_vs_eta ) {
1235 // edm::LogError("L1TDTTFClient::buildPhiEtaPlot:ME") << "Failed to get TH1D "
1236 // << std::string(hname);
1237 // } else {
1238 //
1239 //
1240 // for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1241 // for ( unsigned int eta = 1; eta < 65 ; ++eta ) {
1242 // double val = phi_vs_eta->GetBinContent( eta, phi )
1243 // + dttf_phi_eta_integ->getBinContent( eta, phi );
1244 // dttf_phi_eta_integ->setBinContent( eta, phi, val );
1245 // }
1246 //
1247 // }
1248 // }
1249 // }
1250 //
1251 //
1252 // //--------------------------------------------------------
1253 // void L1TDTTFClient::buildPhiEtaPlotFC( MonitorElement * phi_eta_fine_integ,
1254 // MonitorElement * phi_eta_coarse_integ,
1255 // MonitorElement * phi_eta_integ,
1256 // const std::string & path_fine,
1257 // const std::string & path_coarse,
1258 // int wh )
1259 // {
1260 //
1261 // char hname[60];
1262 //
1263 // sprintf( hname, path_fine.c_str(),
1264 // wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1265 // TH2F * phi_vs_eta_fine = getTH2F(hname);
1266 // if ( ! phi_vs_eta_fine ) {
1267 // edm::LogError("L1TDTTFClient::buildPhiEtaPlotFC")
1268 // << "Failed to get TH1D " << std::string(hname);
1269 // }
1270 //
1271 //
1272 // sprintf( hname, path_coarse.c_str(),
1273 // wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1274 // TH2F * phi_vs_eta_coarse = getTH2F(hname);
1275 // if ( ! phi_vs_eta_coarse ) {
1276 // edm::LogError("L1TDTTFClient::buildPhiEtaPlotFC")
1277 // << "Failed to get TH1D " << std::string(hname);
1278 // }
1279 //
1280 // if ( ! phi_vs_eta_fine || ! phi_vs_eta_coarse ) {
1281 // return;
1282 // }
1283 //
1284 // for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1285 // for ( unsigned int eta = 1; eta < 65 ; ++eta ) {
1286 //
1287 // double valfine = phi_vs_eta_fine->GetBinContent( eta, phi )
1288 // + dttf_phi_eta_fine_integ->getBinContent( eta, phi );
1289 // dttf_phi_eta_fine_integ->setBinContent( eta, phi, valfine );
1290 // double valcoarse = phi_vs_eta_coarse->GetBinContent( eta, phi )
1291 // + dttf_phi_eta_coarse_integ->getBinContent( eta, phi );
1292 // dttf_phi_eta_coarse_integ->setBinContent( eta, phi, valcoarse );
1293 //
1294 // dttf_phi_eta_integ->setBinContent( eta, phi, valfine + valcoarse );
1295 //
1296 // }
1297 //
1298 // }
1299 // }
1300 
1301 
1302 
1303 
1304 //--------------------------------------------------------
1306 {
1307  me->setAxisTitle("Wheel", 1);
1308  me->setBinLabel(1, "N2", 1);
1309  me->setBinLabel(2, "N1", 1);
1310  me->setBinLabel(3, "N0", 1);
1311  me->setBinLabel(4, "P0", 1);
1312  me->setBinLabel(5, "P1", 1);
1313  me->setBinLabel(6, "P2", 1);
1314 
1315 }
1316 
1317 
1318 //--------------------------------------------------------
1320 {
1321 
1322  if( axis == 1 )
1323  me->setAxisTitle("Quality", axis);
1324  me->setBinLabel(1, "T34", axis);
1325  me->setBinLabel(2, "T23/24", axis);
1326  me->setBinLabel(3, "T12/13/14", axis);
1327  me->setBinLabel(4, "T234", axis);
1328  me->setBinLabel(5, "T134", axis);
1329  me->setBinLabel(6, "T123/124", axis);
1330  me->setBinLabel(7, "T1234", axis);
1331 }
1332 
1333 
1334 
1335 
1336 
1337 
1338 
1339 
1340 
MonitorElement * dttf_bx_integ_2ndTrack
Definition: L1TDTTFClient.h:97
MonitorElement * dttf_gmt_matching
Definition: L1TDTTFClient.h:90
MonitorElement * dttf_occupancySummary
Definition: L1TDTTFClient.h:74
MonitorElement * dttf_quality_summary
Definition: L1TDTTFClient.h:79
void setBinContent(int binx, double content)
set content of bin (1-D)
L1TDTTFClient(const edm::ParameterSet &ps)
Constructor.
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:717
void buildPhiEtaPlotO(MonitorElement *phi_eta_integ, const std::string &path, int wh)
void setGMTsummary()
MonitorElement * dttf_quality_integ_2ndTrack
Definition: L1TDTTFClient.h:98
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:73
MonitorElement * dttf_quality_integ
Definition: L1TDTTFClient.h:78
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:76
MonitorElement * dttf_phi_eta_fine_integ
Definition: L1TDTTFClient.h:82
MonitorElement * dttf_highQual_Summary_2ndTrack
MonitorElement * dttf_phi_wheel[6]
list path
Definition: scaleCards.py:51
MonitorElement * dttf_phi_eta_integ
Definition: L1TDTTFClient.h:83
MonitorElement * dttf_quality_summary_wheel[6]
MonitorElement * dttf_pt_integ
Definition: L1TDTTFClient.h:86
MonitorElement * dttf_phi_eta_coarse_integ
Definition: L1TDTTFClient.h:81
virtual ~L1TDTTFClient()
Destructor.
TH2F * occupancy_r_
counter
Definition: L1TDTTFClient.h:65
MonitorElement * dttf_occupancySummary_2ndTrack
Definition: L1TDTTFClient.h:95
void beginRun(const edm::Run &r, const edm::EventSetup &c)
BeginRun.
MonitorElement * dttf_eta_integ
Definition: L1TDTTFClient.h:87
MonitorElement * dttf_2ndTrack_Summary
Definition: L1TDTTFClient.h:91
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:1468
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:75
MonitorElement * dttf_quality_wheel[6]
TH1F * getTH1F(void) const
void buildSummaries()
TH1F * getTH1F(const char *hname)
MonitorElement * dttf_eta_fine_fraction
Definition: L1TDTTFClient.h:84
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_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:96
MonitorElement * dttf_nTracks_integ_2ndTrack
Definition: L1TDTTFClient.h:94
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:845
MonitorElement * dttf_phi_integ
Definition: L1TDTTFClient.h:85
MonitorElement * dttf_highQual_Summary
Definition: L1TDTTFClient.h:80
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:88
MonitorElement * dttf_bx_wheel_integ[6]
void normalize(T *me)
std::string inclusivepath_
Definition: L1TDTTFClient.h:70
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:429
Definition: Run.h:33
void setWheelLabel(MonitorElement *me)
std::string wheel_[6]
Definition: L1TDTTFClient.h:68
MonitorElement * dttf_quality_summary_2ndTrack
Definition: L1TDTTFClient.h:99
Definition: DDAxes.h:10
MonitorElement * dttf_phi_eta_integ_2ndTrack