Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HistMacro_Kinematics.C
Go to the documentation of this file.
1 // hnamepath: /highlevel/PVsTheta_Tracks
2 // hnamepath: /highlevel/PhiVsTheta_Tracks
3 // hnamepath: /highlevel/BetaVsP
4 // hnamepath: /highlevel/PSPairEnergy
5 //
6 // e-mail: davidl@jlab.org
7 // e-mail: staylor@jlab.org
8 // e-mail: sdobbs@jlab.org
9 // e-mail: tbritton@jlab.org
10 //
11 
12 {
13  TDirectory *locTopDirectory = gDirectory;
14 
15  //Goto Beam Path
16  TDirectory *locDirectory = (TDirectory*)gDirectory->FindObjectAny("highlevel");
17  if(!locDirectory)
18  return;
19  locDirectory->cd();
20 
21  TH2* locHist_PVsTheta_Tracks = (TH2*)gDirectory->Get("PVsTheta_Tracks");
22  TH2* BetaVsP = (TH2*)gDirectory->Get("BetaVsP");
23  TH2* locHist_PhiVsTheta_Tracks = (TH2*)gDirectory->Get("PhiVsTheta_Tracks");
24  TH1* locHist_PSPairEnergy = (TH1*)gDirectory->Get("PSPairEnergy");
25 
26 
27  //Get/Make Canvas
28  TCanvas *locCanvas = NULL;
29  if(TVirtualPad::Pad() == NULL)
30  locCanvas = new TCanvas("Kinematics", "Kinematics", 1200, 600); //for testing
31  else
32  locCanvas = gPad->GetCanvas();
33  locCanvas->Divide(2, 2);
34 
35  TLatex latex;
36  latex.SetTextSize(0.04);
37  char str[256];
38 
39  //------------ P vs. Theta --------------
40  locCanvas->cd(1);
41  gPad->SetTicks();
42  gPad->SetGrid();
43  if(locHist_PVsTheta_Tracks != NULL)
44  {
45  locHist_PVsTheta_Tracks->GetXaxis()->SetTitleSize(0.05);
46  locHist_PVsTheta_Tracks->GetYaxis()->SetTitleSize(0.04);
47  locHist_PVsTheta_Tracks->GetXaxis()->SetLabelSize(0.05);
48  locHist_PVsTheta_Tracks->GetYaxis()->SetLabelSize(0.05);
49  locHist_PVsTheta_Tracks->SetStats(0);
50  locHist_PVsTheta_Tracks->Draw("colz");
51 
52  sprintf(str, "%d entries", (uint32_t)locHist_PVsTheta_Tracks->GetEntries());
53  latex.DrawLatex(10.0, 12.2, str);
54  }
55 
56  //------------ Beta vs. P --------------
57  locCanvas->cd(2);
58  gPad->SetTicks();
59  gPad->SetGrid();
60  if(BetaVsP != NULL)
61  {
62  BetaVsP->GetXaxis()->SetTitleSize(0.05);
63  BetaVsP->GetYaxis()->SetTitleSize(0.045);
64  BetaVsP->GetXaxis()->SetLabelSize(0.05);
65  BetaVsP->GetYaxis()->SetLabelSize(0.05);
66  BetaVsP->SetStats(0);
67  BetaVsP->Draw("colz");
68  gPad->SetLogz();
69  gPad->Update();
70  }
71 
72  //------------ PS energy --------------
73  locCanvas->cd(3);
74  gPad->SetTicks();
75  gPad->SetGrid();
76  if(locHist_PSPairEnergy != NULL)
77  {
78  locHist_PSPairEnergy->GetXaxis()->SetTitleSize(0.05);
79  locHist_PSPairEnergy->GetYaxis()->SetTitleSize(0.04);
80  locHist_PSPairEnergy->GetXaxis()->SetLabelSize(0.05);
81  locHist_PSPairEnergy->GetYaxis()->SetLabelSize(0.05);
82  locHist_PSPairEnergy->SetStats(0);
83  locHist_PSPairEnergy->Draw();
84 
85  double Epeak = locHist_PSPairEnergy->GetBinCenter(locHist_PSPairEnergy->GetMaximumBin());
86 
87  sprintf(str, "Epeak: %3.2f GeV", Epeak);
88  latex.DrawLatex(10.0, locHist_PSPairEnergy->GetMaximum()*0.85, str);
89  }
90 
91  //------------ Phi vs. Theta --------------
92  locCanvas->cd(4);
93  gPad->SetTicks();
94  gPad->SetGrid();
95  if(locHist_PhiVsTheta_Tracks != NULL)
96  {
97  locHist_PhiVsTheta_Tracks->GetXaxis()->SetTitleSize(0.05);
98  locHist_PhiVsTheta_Tracks->GetYaxis()->SetTitleSize(0.04);
99  locHist_PhiVsTheta_Tracks->GetXaxis()->SetLabelSize(0.05);
100  locHist_PhiVsTheta_Tracks->GetYaxis()->SetLabelSize(0.05);
101  locHist_PhiVsTheta_Tracks->SetStats(0);
102  locHist_PhiVsTheta_Tracks->Draw("colz");
103 
104  sprintf(str, "%d entries", (uint32_t)locHist_PhiVsTheta_Tracks->GetEntries());
105  latex.DrawLatex(10.0, 185.0, str);
106  }
107 }
char str[256]
sprintf(text,"Post KinFit Cut")
TDirectory * locTopDirectory
Definition: HistMacro_p4pi.C:2
TDirectory * locDirectory
TH2 * locHist_PhiVsTheta_Tracks
TH2 * BetaVsP
TCanvas * locCanvas
TH1 * locHist_PSPairEnergy
TH2 * locHist_PVsTheta_Tracks