Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Calibration/HLDetectorTiming/HistMacro_OnlinePID.C
Go to the documentation of this file.
1 // hnamepath: /HLDetectorTiming/SC/SCHit Matched time
2 // hnamepath: /HLDetectorTiming/SC/SCHit TDC_ADC Difference
3 // hnamepath: /HLDetectorTiming/TOF/TOFHit Matched time
4 // hnamepath: /HLDetectorTiming/TOF/TOFHit TDC_ADC Difference
5 
6 {
7  //Goto Path
8  TDirectory *locDirectory = (TDirectory*)gDirectory->FindObjectAny("HLDetectorTiming");
9  if(!locDirectory)
10  return;
11  locDirectory->cd();
12 
13  //Setpoints
14  double nominalSCTime = 0.;
15  double nominalTOFTime = 21.;
16 
17  //Get Histograms
18  TH1I* SC_Timing = (TH1I*)gDirectory->Get("SC/SCHit Matched time");
19  TH1I* TOF_Timing = (TH1I*)gDirectory->Get("TOF/TOFHit Matched time");
20  TH2I* SC_TDCADC_Timing = (TH2I*)gDirectory->Get("SC/SCHit TDC_ADC Difference");
21  TH2I* TOF_TDCADC_Timing = (TH2I*)gDirectory->Get("TOF/TOFHit TDC_ADC Difference");
22 
23  //Get/Make Canvas
24  TCanvas *locCanvas = NULL;
25  if(TVirtualPad::Pad() == NULL)
26  locCanvas = new TCanvas("OnlinePID", "OnlinePID", 1200, 800); //for testing
27  else
28  locCanvas = gPad->GetCanvas();
29  locCanvas->Divide(2, 2);
30 
31  //Draw
32  locCanvas->cd(1);
33  gPad->SetTicks();
34  gPad->SetGrid();
35  if(SC_Timing != NULL)
36  {
37  SC_Timing->GetXaxis()->SetRangeUser(-200,200);
38  SC_Timing->Draw();
39  SC_Timing->SetFillColor(kGray);
40  locCanvas->Update();
41 
42  TLine *ln = new TLine(nominalSCTime, gPad->GetUymin(), nominalSCTime, gPad->GetUymax());
43  ln->SetLineColor(2);
44  ln->Draw();
45  }
46  else{
47  TPaveText *text = new TPaveText(0.1, 0.4, 0.9, 0.6);
48  text->AddText("No Matched SC TDC/ADC Times");
49  text->Draw();
50  }
51 
52  locCanvas->cd(2);
53  gPad->SetTicks();
54  gPad->SetGrid();
55  if(SC_TDCADC_Timing != NULL)
56  {
57  SC_TDCADC_Timing->Draw("colz");
58  }
59  else{
60  TPaveText *text = new TPaveText(0.1, 0.4, 0.9, 0.6);
61  text->AddText("No Matched SC TDC/ADC Times");
62  text->Draw();
63  }
64 
65  locCanvas->cd(3);
66  gPad->SetTicks();
67  gPad->SetGrid();
68  if(TOF_Timing != NULL)
69  {
70  TOF_Timing->GetXaxis()->SetRangeUser(-200,200);
71  TOF_Timing->Draw();
72  TOF_Timing->SetFillColor(kGray);
73  locCanvas->Update();
74 
75  TLine *ln = new TLine(nominalTOFTime, gPad->GetUymin(), nominalTOFTime, gPad->GetUymax());
76  ln->SetLineColor(2);
77  ln->Draw();
78  }
79  else{
80  TPaveText *text = new TPaveText(0.1, 0.4, 0.9, 0.6);
81  text->AddText("No Matched TOF TDC/ADC Times");
82  text->Draw();
83  }
84 
85  locCanvas->cd(4);
86  gPad->SetTicks();
87  gPad->SetGrid();
88  if(TOF_TDCADC_Timing != NULL)
89  {
90  TOF_TDCADC_Timing->Draw("colz");
91  }
92  else{
93  TPaveText *text = new TPaveText(0.1, 0.4, 0.9, 0.6);
94  text->AddText("No Matched TOF TDC/ADC Times");
95  text->Draw();
96  }
97 }
98 
TDirectory * locDirectory
TCanvas * locCanvas
char text[100]