Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ST_Monitoring_Multi.C
Go to the documentation of this file.
1 // File: ST_Monitoring_1.C
2 // Created: 05/17/2015
3 // Creator: Mahmoud Kamel, mkame006@fiu.edu
4 // Purpose: Displaying histograms for online monitoring purposes
5 {
6  // Define the directory that contains the histograms
7  TDirectory *dir = (TDirectory*)gDirectory->FindObjectAny("st_lowlevel");
8  if(dir) dir->cd();
9  // Grab Multiplicity histograms
10  TH2I *h2_st_adc_tdc_multi = (TH2I*)gDirectory->FindObjectAny("h2_st_adc_tdc_multi");
11  TH2I *h2_st_adc_hit_multi = (TH2I*)gDirectory->FindObjectAny("h2_st_adc_hit_multi");
12  TH1I *h1_adc_sec = (TH1I*)gDirectory->FindObjectAny("h1_adc_sec");
13  TH1I *h1_tdc_sec = (TH1I*)gDirectory->FindObjectAny("h1_tdc_sec");
14  TH1I *h1_hit_sec = (TH1I*)gDirectory->FindObjectAny("h1_hit_sec");
15  //Create the canvas
16  if(gPad == NULL)
17  {
18  TCanvas *c1 = new TCanvas("c1","Start Counter Multiplicity Histograms", 200, 10, 600, 480);
19  c1->cd(0);
20  c1->Draw();
21  c1->Update();
22  }
23 
24  if(!gPad) return;
25  TCanvas *c1 = gPad->GetCanvas();
26  c1->Divide(3,2);
27  // ADC vs TDC
28  c1->cd(1);
29  gPad->SetTicks();
30  gPad->SetGrid();
31  if (h2_st_adc_tdc_multi) h2_st_adc_tdc_multi->Draw("colz");
32  h2_st_adc_tdc_multi->SetAxisRange(0., 40.,"X");
33  h2_st_adc_tdc_multi->SetTitle("ST ADC Vs TDC multiplicities");
34  h2_st_adc_tdc_multi->GetZaxis()->SetLabelFont(10);
35  h2_st_adc_tdc_multi->GetZaxis()->SetLabelOffset(0.0);
36 
37  //ADC vs Hit
38  c1->cd(4);
39  gPad->SetTicks();
40  gPad->SetGrid();
41  if (h2_st_adc_hit_multi) h2_st_adc_hit_multi->Draw("colz");
42  h2_st_adc_hit_multi->SetAxisRange(0., 40.,"X");
43  h2_st_adc_hit_multi->SetTitle("ST ADC Vs Hit multiplicities");
44  h2_st_adc_hit_multi->GetZaxis()->SetLabelFont(10);
45  h2_st_adc_hit_multi->GetZaxis()->SetLabelOffset(0.0);
46  // TDC multiplicity
47  c1->cd(2);
48  gPad->SetTicks();
49  gPad->SetGrid();
50  gPad->SetLogy();
51  TH1D *h_tdc_multi = h2_st_adc_tdc_multi->ProjectionX();
52  h_tdc_multi->Draw();
53  h_tdc_multi->SetAxisRange(0., 40.,"X");
54  h_tdc_multi->GetYaxis()->SetTitle("Counts");
55  h_tdc_multi->GetXaxis()->CenterTitle();
56  h_tdc_multi->GetYaxis()->CenterTitle();
57  // Hit multiplicity
58  c1->cd(5);
59  gStyle->SetOptStat(10);
60  gPad->SetTicks();
61  gPad->SetGrid();
62  gPad->SetLogy();
63  TH1D *h_hit_multi = h2_st_adc_hit_multi->ProjectionX();
64  h_hit_multi->Draw();
65  h_hit_multi->SetAxisRange(0., 40.,"X");
66  h_hit_multi->GetYaxis()->SetTitle("Counts");
67  h_hit_multi->GetXaxis()->CenterTitle();
68  h_hit_multi->GetYaxis()->CenterTitle();
69  // 3, and 6 are the same quantity from two different 2D histograms
70  c1->cd(3);
71  gPad->SetTicks();
72  gPad->SetGrid();
73  gPad->SetLogy();
74  TH1D *h_adc_multi = h2_st_adc_tdc_multi->ProjectionY();
75  h_adc_multi->Draw();
76  h_adc_multi->SetAxisRange(0., 40.,"X");
77  h_adc_multi->GetYaxis()->SetTitle("Counts");
78  h_adc_multi->GetXaxis()->CenterTitle();
79  h_adc_multi->GetYaxis()->CenterTitle();
80 
81  //*********** Create the OCCUPANCY canvas *****************************
82  //**********************************************************************
83  TCanvas *c2 = new TCanvas("c2","Start Counter Occupancy Histograms", 200, 10, 600, 480);
84  c2->cd(0);
85  c2->Draw();
86  c2->Update();
87  if(!gPad) return;
88  c2 = gPad->GetCanvas();
89  c2->Divide(3,1);
90 
91  // Occupancy Histos
92  c2->cd(1);
93  gStyle->SetOptStat(10);
94  gStyle->SetErrorX(0);
95  gPad->SetTicks();
96  gPad->SetGrid();
97  if (h1_tdc_sec) h1_tdc_sec->Draw("err");
98  h1_tdc_sec->SetMinimum(0);
99 
100  h1_tdc_sec->GetXaxis()->CenterTitle();
101  h1_tdc_sec->GetYaxis()->CenterTitle();
102  h1_tdc_sec->GetYaxis()->SetTitleOffset(1.5);
103  h1_tdc_sec->SetMarkerStyle(21);
104  h1_tdc_sec->SetMarkerSize(1.2);
105  h1_tdc_sec->SetMarkerColor(4);
106  c2->cd(3);
107  gStyle->SetOptStat(10);
108  gPad->SetTicks();
109  gPad->SetGrid();
110  if (h1_hit_sec) h1_hit_sec->Draw("err");
111  h1_hit_sec->SetMinimum(0);
112  h1_hit_sec->GetXaxis()->CenterTitle();
113  h1_hit_sec->GetYaxis()->CenterTitle();
114  h1_hit_sec->GetYaxis()->SetTitleOffset(1.5);
115  h1_hit_sec->SetMarkerStyle(21);
116  h1_hit_sec->SetMarkerSize(1.2);
117  h1_hit_sec->SetMarkerColor(4);
118  c2->cd(2);
119  gStyle->SetOptStat(10);
120  gPad->SetTicks();
121  gPad->SetGrid();
122  if (h1_adc_sec) h1_adc_sec->Draw("err");
123  h1_adc_sec->SetMinimum(0);
124  h1_adc_sec->GetXaxis()->CenterTitle();
125  h1_adc_sec->GetYaxis()->CenterTitle();
126  h1_adc_sec->GetYaxis()->SetTitleOffset(1.5);
127  h1_adc_sec->SetMarkerStyle(21);
128  h1_adc_sec->SetMarkerSize(1.2);
129  h1_adc_sec->SetMarkerColor(4);
130 }
static TH2I * h2_st_adc_hit_multi
Double_t c1[2][NMODULES]
Definition: tw_corr.C:68
static TH1I * h1_hit_sec
Double_t c2[2][NMODULES]
Definition: tw_corr.C:69
static TH2I * h2_st_adc_tdc_multi
static TH1I * h1_tdc_sec
static TH1I * h1_adc_sec
TDirectory * dir
Definition: bcal_hist_eff.C:31