Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Calibration/HLDetectorTiming/HistMacro_OnlineTracking.C
Go to the documentation of this file.
1 // hnamepath: /HLDetectorTiming/CDC/CDCHit time
2 // hnamepath: /HLDetectorTiming/CDC/CDCHit time per Straw Raw
3 // hnamepath: /HLDetectorTiming/FDC/FDCHit Cathode time
4 // hnamepath: /HLDetectorTiming/FDC/FDCHit Wire time
5 // hnamepath: /HLDetectorTiming/FDC/FDCHit Wire time vs. module
6 
7 {
8  //Goto Path
9  TDirectory *locDirectory = (TDirectory*)gDirectory->FindObjectAny("HLDetectorTiming");
10  if(!locDirectory)
11  return;
12  locDirectory->cd();
13 
14  //Setpoints
15  double nominalCDCTime = 6.;
16  double nominalFDCCathodeTime = 14.;
17  double nominalFDCWireTime = 5.5;
18 
19  //Get Histograms
20  TH1I* CDCHit_Timing = (TH1I*)gDirectory->Get("CDC/CDCHit time");
21  TH2I* CDCHit_vs_module_Timing = (TH2I*)gDirectory->Get("CDC/CDCHit time per Straw Raw");
22  TH1I* FDCHit_Cathode_Timing = (TH1I*)gDirectory->Get("FDC/FDCHit Cathode time");
23  TH1I* FDCHit_Wire_Timing = (TH1I*)gDirectory->Get("FDC/FDCHit Wire time");
24  TH2I* FDCHit_Wire_vs_module_Timing = (TH2I*)gDirectory->Get("FDC/FDCHit Wire time vs. module");
25 
26  //Get/Make Canvas
27  TCanvas *locCanvas = NULL;
28  if(TVirtualPad::Pad() == NULL)
29  locCanvas = new TCanvas("TrackMatchedTiming", "TrackMatchedTiming", 1200, 800); //for testing
30  else
31  locCanvas = gPad->GetCanvas();
32  locCanvas->Divide(3, 2);
33 
34  //Draw
35  locCanvas->cd(1);
36  gPad->SetTicks();
37  gPad->SetGrid();
38  if(CDCHit_Timing != NULL)
39  {
40  CDCHit_Timing->GetXaxis()->SetRangeUser(-300,1100);
41  CDCHit_Timing->Draw();
42  CDCHit_Timing->SetFillColor(kGray);
43  locCanvas->Update();
44 
45  TLine *ln = new TLine(nominalCDCTime, gPad->GetUymin(), nominalCDCTime, gPad->GetUymax());
46  ln->SetLineColor(2);
47  ln->Draw();
48  }
49  else{
50  TPaveText *text = new TPaveText(0.1, 0.4, 0.9, 0.6);
51  text->AddText("No CDC hits!");
52  text->Draw();
53  }
54 
55  locCanvas->cd(2);
56  gPad->SetTicks();
57  gPad->SetGrid();
58  if(FDCHit_Cathode_Timing != NULL)
59  {
60  FDCHit_Cathode_Timing->GetXaxis()->SetRangeUser(-100,300);
61  FDCHit_Cathode_Timing->Draw();
62  FDCHit_Cathode_Timing->SetFillColor(kGray);
63  locCanvas->Update();
64 
65  TLine *ln = new TLine(nominalFDCCathodeTime, gPad->GetUymin(), nominalFDCCathodeTime, gPad->GetUymax());
66  ln->SetLineColor(2);
67  ln->Draw();
68  }
69  else{
70  TPaveText *text = new TPaveText(0.1, 0.4, 0.9, 0.6);
71  text->AddText("No FDC Cathode hits!");
72  text->Draw();
73  }
74 
75  locCanvas->cd(3);
76  gPad->SetTicks();
77  gPad->SetGrid();
78  if(FDCHit_Wire_Timing != NULL)
79  {
80  FDCHit_Wire_Timing->GetXaxis()->SetRangeUser(-300,500);
81  FDCHit_Wire_Timing->Draw();
82  FDCHit_Wire_Timing->SetFillColor(kGray);
83  locCanvas->Update();
84 
85  TLine *ln = new TLine(nominalFDCWireTime, gPad->GetUymin(), nominalFDCWireTime, gPad->GetUymax());
86  ln->SetLineColor(2);
87  ln->Draw();
88  }
89  else{
90  TPaveText *text = new TPaveText(0.1, 0.4, 0.9, 0.6);
91  text->AddText("No FDC Wire hits!");
92  text->Draw();
93  }
94 
95  locCanvas->cd(4);
96  gPad->SetTicks();
97  gPad->SetGrid();
98  if(CDCHit_vs_module_Timing != NULL)
99  {
100  CDCHit_vs_module_Timing->Draw("COLZ");
101  CDCHit_vs_module_Timing->SetFillColor(kGray);
102  }
103  else{
104  TPaveText *text = new TPaveText(0.1, 0.4, 0.9, 0.6);
105  text->AddText("No CDC hits!");
106  text->Draw();
107  }
108 
109  locCanvas->cd(6);
110  gPad->SetTicks();
111  gPad->SetGrid();
112  if(FDCHit_Wire_vs_module_Timing != NULL)
113  {
114  FDCHit_Wire_vs_module_Timing->Draw("COLZ");
115  FDCHit_Wire_vs_module_Timing->SetFillColor(kGray);
116  }
117  else{
118  TPaveText *text = new TPaveText(0.1, 0.4, 0.9, 0.6);
119  text->AddText("No FDC Wire hits!");
120  text->Draw();
121  }
122 
123 
124 }
125 
TDirectory * locDirectory
TCanvas * locCanvas
char text[100]