Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
monitoring/highlevel_online/HistMacro_NumHighLevelObjects.C
Go to the documentation of this file.
1 // hnamepath: /highlevel/NumHighLevelObjects
2 // hnamepath: /highlevel/F1TDC_fADC_tdiff
3 //
4 // e-mail: davidl@jlab.org
5 // e-mail: staylor@jlab.org
6 // e-mail: sdobbs@jlab.org
7 // e-mail: tbritton@jlab.org
8 //
9 
10 {
11  TDirectory* locCurrentDir = gDirectory;
12 
13  //Goto Path
14  TDirectory *locDirectory = (TDirectory*)gDirectory->FindObjectAny("highlevel");
15  if(!locDirectory)
16  return;
17  locDirectory->cd();
18 
19  //Get Histograms
20  TH2* NumHighLevelObjects = (TH2*)gDirectory->Get("NumHighLevelObjects");
21  TH2* F1TDC_fADC_tdiff = (TH2*)gDirectory->Get("F1TDC_fADC_tdiff");
22 
23  //Get/Make Canvas
24  TCanvas *c1 = NULL;
25  if(TVirtualPad::Pad() == NULL)
26  c1 = new TCanvas("NumHighLevelObjects", "NumHighLevelObjects", 1200, 900); //for testing
27  else
28  c1 = gPad->GetCanvas();
29 
30  c1->Divide(1,2);
31  //c1->Draw();
32 
33  if(NumHighLevelObjects){
34  c1->cd(1);
35  gPad->SetTicks();
36  gPad->SetGrid();
37  gPad->SetLogz();
38  gPad->SetBottomMargin(0.2);
39  NumHighLevelObjects->GetXaxis()->SetLabelSize(0.07);
40  NumHighLevelObjects->SetStats(0);
41  NumHighLevelObjects->SetTitle("Num. High Level Objects (all triggers)");
42  NumHighLevelObjects->Draw("COLZ");
43 
44  // Draw mean number of hits
45  TLatex latex;
46  latex.SetTextColor(kWhite);
47  latex.SetTextSize(0.05);
48  latex.SetTextAlign(22);
49  latex.SetTextAngle(90.0);
50  TBox box;
51  box.SetFillColor(kCyan+1);
52  latex.SetTextColor(kBlack);
53  TAxis *xaxis = NumHighLevelObjects->GetXaxis();
54  TAxis *yaxis = NumHighLevelObjects->GetYaxis();
55  for(int ibin=1; ibin<=xaxis->GetNbins(); ibin++){
56  double x = xaxis->GetBinCenter(ibin);
57  double y = 90.0;
58 
59  double sum = 0.0;
60  double sumw = 0.0;
61  for(int jbin=1; jbin<=yaxis->GetNbins(); jbin++){
62  double w = NumHighLevelObjects->GetBinContent(ibin, jbin);
63  double y = yaxis->GetBinCenter(jbin);
64  sumw += y*w;
65  sum += w;
66  }
67 
68  double mean = sum==0.0 ? 0.0:sumw/sum;
69 
70  char str[256];
71  sprintf(str, "%5.1f", mean);
72  box.DrawBox(x-0.2, y-6.5, x+0.25, y+8.5);
73  latex.DrawLatex(x, y, str);
74  }
75  }
76 
77  if(F1TDC_fADC_tdiff){
78  c1->cd(2);
79  gPad->SetTicks();
80  gPad->SetGrid();
81  gPad->SetLogz();
82  gPad->SetBottomMargin(0.25);
83  gPad->SetLeftMargin(0.04);
84  gPad->SetRightMargin(0.08);
85  F1TDC_fADC_tdiff->GetXaxis()->SetLabelSize(0.05);
86  F1TDC_fADC_tdiff->GetYaxis()->SetTitleOffset(0.6);
87  F1TDC_fADC_tdiff->SetStats(0);
88  F1TDC_fADC_tdiff->Draw("COLZ");
89  }
90 
91 }
92 
char str[256]
Double_t x[NCHANNELS]
Definition: st_tw_resols.C:39
sprintf(text,"Post KinFit Cut")
#define y
Double_t c1[2][NMODULES]
Definition: tw_corr.C:68
TDirectory * locDirectory