Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HistMacro_Kinematics_p1.C
Go to the documentation of this file.
1 // hnamepath: /Independent/Hist_DetectedParticleKinematics/PID/BetaVsP_Q+
2 // hnamepath: /Independent/Hist_DetectedParticleKinematics/PID/BetaVsP_Q-
3 // hnamepath: /Independent/Hist_DetectedParticleKinematics/Photon/PVsTheta
4 // hnamepath: /Independent/Hist_DetectedParticleKinematics/Photon/PhiVsTheta
5 
6 {
7  //Goto Path
8  TDirectory *locDirectory = (TDirectory*)gDirectory->FindObjectAny("Hist_DetectedParticleKinematics");
9  if(!locDirectory)
10  return;
11  locDirectory->cd();
12 
13  //Get Histograms
14  gDirectory->cd("PID");
15  TH2I* locHist_BetaVsPQPlus = (TH2I*)gDirectory->Get("BetaVsP_Q+");
16  TH2I* locHist_BetaVsPQMinus = (TH2I*)gDirectory->Get("BetaVsP_Q-");
17  gDirectory->cd("../Photon");
18  TH2I* locHist_PVsTheta_Photon = (TH2I*)gDirectory->Get("PVsTheta");
19  TH2I* locHist_PhiVsTheta_Photon = (TH2I*)gDirectory->Get("PhiVsTheta");
20 
21  //Beta-vs-p functions
22  TF1* locBetaVsPFunc_Proton = new TF1("BetaVsPFunc_Proton", "x/sqrt(x*x + [0]*[0])", 0.0, 12.0);
23  locBetaVsPFunc_Proton->SetParameter(0, 0.938272046);
24  locBetaVsPFunc_Proton->SetLineWidth(2);
25  locBetaVsPFunc_Proton->SetLineColor(kBlack);
26  locBetaVsPFunc_Proton->SetNpx(1000);
27 
28  TF1* locBetaVsPFunc_Kaon = new TF1("BetaVsPFunc_Kaon", "x/sqrt(x*x + [0]*[0])", 0.0, 12.0);
29  locBetaVsPFunc_Kaon->SetParameter(0, 0.493677);
30  locBetaVsPFunc_Kaon->SetLineWidth(2);
31  locBetaVsPFunc_Kaon->SetLineColor(kBlack);
32  locBetaVsPFunc_Kaon->SetNpx(1000);
33 
34  TF1* locBetaVsPFunc_Pion = new TF1("BetaVsPFunc_Pion", "x/sqrt(x*x + [0]*[0])", 0.0, 12.0);
35  locBetaVsPFunc_Pion->SetParameter(0, 0.13957018);
36  locBetaVsPFunc_Pion->SetLineWidth(2);
37  locBetaVsPFunc_Pion->SetLineColor(kBlack);
38  locBetaVsPFunc_Pion->SetNpx(1000);
39 
40  //Get/Make Canvas
41  TCanvas *locCanvas = NULL;
42  if(TVirtualPad::Pad() == NULL)
43  locCanvas = new TCanvas("Kinematics_p1", "Kinematics_p1", 1200, 800); //for testing
44  else
45  locCanvas = gPad->GetCanvas();
46  locCanvas->Divide(2, 2);
47 
48  //Draw
49  locCanvas->cd(1);
50  gPad->SetTicks();
51  gPad->SetGrid();
52  if(locHist_BetaVsPQPlus != NULL)
53  {
54  locHist_BetaVsPQPlus->GetXaxis()->SetRangeUser(0.0, 6.0);
55  locHist_BetaVsPQPlus->GetXaxis()->SetTitleSize(0.05);
56  locHist_BetaVsPQPlus->GetYaxis()->SetTitleSize(0.05);
57  locHist_BetaVsPQPlus->GetXaxis()->SetLabelSize(0.05);
58  locHist_BetaVsPQPlus->GetYaxis()->SetLabelSize(0.05);
59  locHist_BetaVsPQPlus->GetListOfFunctions()->Add(locBetaVsPFunc_Proton);
60  locHist_BetaVsPQPlus->GetListOfFunctions()->Add(locBetaVsPFunc_Kaon);
61  locHist_BetaVsPQPlus->GetListOfFunctions()->Add(locBetaVsPFunc_Pion);
62  locHist_BetaVsPQPlus->Draw("COLZ");
63  gPad->SetLogz();
64  }
65 
66  locCanvas->cd(2);
67  gPad->SetTicks();
68  gPad->SetGrid();
69  if(locHist_BetaVsPQMinus != NULL)
70  {
71  locHist_BetaVsPQMinus->GetXaxis()->SetRangeUser(0.0, 6.0);
72  locHist_BetaVsPQMinus->GetXaxis()->SetTitleSize(0.05);
73  locHist_BetaVsPQMinus->GetYaxis()->SetTitleSize(0.05);
74  locHist_BetaVsPQMinus->GetXaxis()->SetLabelSize(0.05);
75  locHist_BetaVsPQMinus->GetYaxis()->SetLabelSize(0.05);
76  locHist_BetaVsPQMinus->GetListOfFunctions()->Add(locBetaVsPFunc_Pion);
77  locHist_BetaVsPQMinus->GetListOfFunctions()->Add(locBetaVsPFunc_Kaon);
78  locHist_BetaVsPQMinus->Draw("COLZ");
79  gPad->SetLogz();
80  }
81 
82  locCanvas->cd(3);
83  gPad->SetTicks();
84  gPad->SetGrid();
85  if(locHist_PVsTheta_Photon != NULL)
86  {
87  locHist_PVsTheta_Photon->GetXaxis()->SetTitleSize(0.05);
88  locHist_PVsTheta_Photon->GetYaxis()->SetTitleSize(0.05);
89  locHist_PVsTheta_Photon->GetXaxis()->SetLabelSize(0.05);
90  locHist_PVsTheta_Photon->GetYaxis()->SetLabelSize(0.05);
91  locHist_PVsTheta_Photon->Draw("COLZ");
92  }
93 
94  locCanvas->cd(4);
95  gPad->SetTicks();
96  gPad->SetGrid();
97  if(locHist_PhiVsTheta_Photon != NULL)
98  {
99  locHist_PhiVsTheta_Photon->GetXaxis()->SetTitleSize(0.05);
100  locHist_PhiVsTheta_Photon->GetYaxis()->SetTitleSize(0.05);
101  locHist_PhiVsTheta_Photon->GetXaxis()->SetLabelSize(0.05);
102  locHist_PhiVsTheta_Photon->GetYaxis()->SetLabelSize(0.05);
103  locHist_PhiVsTheta_Photon->Draw("COLZ");
104  }
105 }
106 
TF1 * locBetaVsPFunc_Kaon
TDirectory * locDirectory
TH2I * locHist_PhiVsTheta_Photon
TH2I * locHist_BetaVsPQPlus
TH2I * locHist_PVsTheta_Photon
TF1 * locBetaVsPFunc_Proton
TCanvas * locCanvas
TF1 * locBetaVsPFunc_Pion
TH2I * locHist_BetaVsPQMinus