13 if((locReactionDirectory_NoKinFit == NULL) || (locReactionDirectory_KinFit == NULL))
18 if(TVirtualPad::Pad() == NULL)
19 locCanvas =
new TCanvas(
"p2pi",
"p2pi", 1200, 800);
21 locCanvas = gPad->GetCanvas();
22 locCanvas->Divide(3, 2);
25 TH1D* locHist_NumEvents = (TH1D*) locReactionDirectory_KinFit->Get(
"NumEventsSurvivedAction");
26 double n_triggers = locHist_NumEvents->GetBinContent(1);
28 double n_rho_kinfit = 0;
31 TH1I* locHist_MM2 = (TH1I*)locReactionDirectory_KinFit->Get(
"Hist_MissingMassSquared/MissingMassSquared");
32 TH1I* locHist_MM2_KinFitCut = (TH1I*)locReactionDirectory_KinFit->Get(
"Hist_MissingMassSquared_PostKinFitCut/MissingMassSquared");
34 TH1I* locHist_KinFitConLev = (TH1I*)locReactionDirectory_KinFit->Get(
"Hist_KinFitResults/ConfidenceLevel");
36 TH1I* locHist_RhoMass_MMCut = (TH1I*)locReactionDirectory_NoKinFit->Get(
"Hist_InvariantMass_Rho/InvariantMass");
37 TH1I* locHist_RhoMass_KinFitCut = (TH1I*)locReactionDirectory_KinFit->Get(
"Hist_InvariantMass_Rho_PostKinFitCut/InvariantMass");
38 TH1I* locHist_KinFitRhoMass_KinFitCut = (TH1I*)locReactionDirectory_KinFit->Get(
"Hist_InvariantMass_Rho_KinFit_PostKinFitCut/InvariantMass");
40 TH2I* locHist_PiPlusPsi_t = (TH2I*)locReactionDirectory_NoKinFit->Get(
"Custom_p2pi_hists/PiPlusPsi_t");
49 if(locHist_RhoMass_MMCut != NULL)
51 locHist_RhoMass_MMCut->SetTitle(
"With MM Cut");
52 locHist_RhoMass_MMCut->Rebin(locNumRebin);
53 locHist_RhoMass_MMCut->GetYaxis()->SetRangeUser(0.0, 1.05*locHist_RhoMass_MMCut->GetBinContent(locHist_RhoMass_MMCut->GetMaximumBin()));
54 locHist_RhoMass_MMCut->GetXaxis()->SetTitleSize(0.05);
55 locHist_RhoMass_MMCut->GetYaxis()->SetTitle(
"");
56 locHist_RhoMass_MMCut->GetXaxis()->SetLabelSize(0.05);
57 locHist_RhoMass_MMCut->GetYaxis()->SetLabelSize(0.05);
58 locHist_RhoMass_MMCut->SetFillColor(kAzure + 1);
59 locHist_RhoMass_MMCut->Draw(
"");
66 if(locHist_PiPlusPsi_t != NULL)
68 locHist_PiPlusPsi_t->SetTitle(
"#psi_{#pi^{+}} vs E_{#gamma}: Proton dE/dx > 2.2; E_{#gamma}; #psi_{#pi^{+}}");
69 TH1D *locHist_TimingCut_PiPlusPsi = (TH1D*)locHist_PiPlusPsi_t->ProjectionY();
70 locHist_TimingCut_PiPlusPsi->SetTitle(
"Coherent Edge");
71 locHist_TimingCut_PiPlusPsi->Rebin(4);
72 locHist_TimingCut_PiPlusPsi->SetMinimum(0);
73 locHist_TimingCut_PiPlusPsi->GetXaxis()->SetTitleSize(0.05);
74 locHist_TimingCut_PiPlusPsi->GetXaxis()->SetLabelSize(0.05);
75 locHist_TimingCut_PiPlusPsi->GetYaxis()->SetLabelSize(0.05);
76 locHist_TimingCut_PiPlusPsi->GetYaxis()->SetLabelFont(42);
77 locHist_TimingCut_PiPlusPsi->SetStats(0);
78 locHist_TimingCut_PiPlusPsi->Draw();
81 TF1* fit =
new TF1(
"psiFit",
"[0]*(1.0 + [1]*cos(2*(x + [2])/180.*3.14159))");
82 locHist_TimingCut_PiPlusPsi->Fit(fit,
"Q",
"");
83 locHist_TimingCut_PiPlusPsi->Draw(
"e");
86 Double_t PSigma = fit->GetParameter(1);
87 Double_t PSigmaErr = fit->GetParError(1);
88 Double_t Phi0 = fit->GetParameter(2);
89 Double_t Phi0Err = fit->GetParError(2);
94 sprintf(text,
"P#Sigma=%0.2f#pm%0.2f", PSigma, PSigmaErr);
95 tx.DrawLatex(0., locHist_TimingCut_PiPlusPsi->GetMaximum()*0.15,
text);
96 sprintf(text,
"#phi_{0}=%0.2f#pm%0.2f", Phi0, Phi0Err);
97 tx.DrawLatex(0., locHist_TimingCut_PiPlusPsi->GetMaximum()*0.06,
text);
106 if(locHist_KinFitConLev != NULL)
108 locHist_KinFitConLev->GetXaxis()->SetTitle(
"Confidence Level");
109 locHist_KinFitConLev->GetXaxis()->SetTitleSize(0.05);
110 locHist_KinFitConLev->GetYaxis()->SetTitle(
"");
111 locHist_KinFitConLev->GetXaxis()->SetLabelSize(0.05);
112 locHist_KinFitConLev->GetYaxis()->SetLabelSize(0.05);
113 locHist_KinFitConLev->SetFillColor(kTeal + 1);
114 locHist_KinFitConLev->Draw();
122 if((locHist_MM2 != NULL) && (locHist_MM2_KinFitCut != NULL))
124 locHist_MM2->Rebin(locNumRebin);
125 locHist_MM2->GetXaxis()->SetRangeUser(-0.05, 0.05);
126 locHist_MM2->GetXaxis()->SetTitleSize(0.045);
127 locHist_MM2->GetYaxis()->SetTitle(
"");
128 locHist_MM2->GetXaxis()->SetLabelSize(0.045);
129 locHist_MM2->GetYaxis()->SetLabelSize(0.05);
130 locHist_MM2->SetFillColor(kRed - 7);
131 locHist_MM2->GetYaxis()->SetRangeUser(0.0, 1.05*locHist_MM2->GetBinContent(locHist_MM2->GetMaximumBin()));
134 locHist_MM2_KinFitCut->Rebin(locNumRebin);
135 locHist_MM2_KinFitCut->GetXaxis()->SetTitleSize(0.05);
136 locHist_MM2_KinFitCut->GetYaxis()->SetTitle(
"");
137 locHist_MM2_KinFitCut->GetXaxis()->SetLabelSize(0.05);
138 locHist_MM2_KinFitCut->GetYaxis()->SetLabelSize(0.05);
139 locHist_MM2_KinFitCut->SetFillColor(kAzure + 1);
140 locHist_MM2_KinFitCut->Draw(
"SAME");
142 TLegend *locLegend =
new TLegend(0.14, 0.74, 0.39, 0.86);
143 locLegend->SetHeader(
"Legend");
144 locLegend->AddEntry(locHist_MM2,
"No KinFit Cut",
"F");
145 locLegend->AddEntry(locHist_MM2_KinFitCut,
"KinFit Cut",
"F");
153 if((locHist_KinFitRhoMass_KinFitCut != NULL) && (locHist_RhoMass_KinFitCut != NULL))
155 locHist_RhoMass_KinFitCut->Rebin(locNumRebin);
156 locHist_KinFitRhoMass_KinFitCut->Rebin(locNumRebin);
158 double locMaxHeight = locHist_RhoMass_KinFitCut->GetBinContent(locHist_RhoMass_KinFitCut->GetMaximumBin());
159 double locOtherHeight = locHist_KinFitRhoMass_KinFitCut->GetBinContent(locHist_KinFitRhoMass_KinFitCut->GetMaximumBin());
160 if(locOtherHeight > locMaxHeight)
161 locMaxHeight = locOtherHeight;
163 locHist_RhoMass_KinFitCut->SetTitle(
"Post KinFit Cut");
164 locHist_RhoMass_KinFitCut->GetXaxis()->SetTitleSize(0.05);
165 locHist_RhoMass_KinFitCut->GetYaxis()->SetTitle(
"");
166 locHist_RhoMass_KinFitCut->GetXaxis()->SetLabelSize(0.05);
167 locHist_RhoMass_KinFitCut->GetYaxis()->SetLabelSize(0.05);
168 locHist_RhoMass_KinFitCut->SetLineColor(kRed);
169 locHist_RhoMass_KinFitCut->SetLineWidth(2);
170 locHist_RhoMass_KinFitCut->GetYaxis()->SetRangeUser(0.0, 1.05*locMaxHeight);
171 locHist_RhoMass_KinFitCut->Draw(
"SAME");
173 locHist_KinFitRhoMass_KinFitCut->GetXaxis()->SetTitleSize(0.05);
174 locHist_KinFitRhoMass_KinFitCut->GetYaxis()->SetTitle(
"");
175 locHist_KinFitRhoMass_KinFitCut->GetXaxis()->SetLabelSize(0.05);
176 locHist_KinFitRhoMass_KinFitCut->GetYaxis()->SetLabelSize(0.05);
177 locHist_KinFitRhoMass_KinFitCut->SetLineColor(kBlue);
178 locHist_KinFitRhoMass_KinFitCut->SetLineWidth(2);
179 locHist_KinFitRhoMass_KinFitCut->GetYaxis()->SetRangeUser(0.0, 1.05*locMaxHeight);
180 locHist_KinFitRhoMass_KinFitCut->Draw(
"SAME");
182 n_rho_kinfit = locHist_RhoMass_KinFitCut->Integral(200./locNumRebin, 700./locNumRebin);
184 TF1 *frho =
new TF1(
"frho",
"[0] / ((x*x - [1]*[1])*(x*x- [1]*[1]) + x*x*x*x*[2]*[2]/[1]/[1])", 0.6, 0.9);
185 frho->SetParameter(0,10);
186 frho->SetParameter(1,0.770);
187 frho->SetParameter(2,0.1);
188 locHist_RhoMass_KinFitCut->Fit(
"frho",
"RQ0");
189 rho_mass = frho->GetParameter(1);
191 TLegend *locLegend =
new TLegend(0.14, 0.74, 0.39, 0.86);
192 locLegend->SetHeader(
"Legend");
193 locLegend->AddEntry(locHist_RhoMass_KinFitCut,
"Measured",
"F");
194 locLegend->AddEntry(locHist_KinFitRhoMass_KinFitCut,
"KinFit",
"F");
203 if(locHist_PiPlusPsi_t != NULL)
205 TH1D *locHist_TimingCut_t = (TH1D*)locHist_PiPlusPsi_t->ProjectionX();
206 locHist_TimingCut_t->SetTitle(
"Momentum Transfer to Proton");
208 locHist_TimingCut_t->SetMinimum(0);
209 locHist_TimingCut_t->GetXaxis()->SetTitleSize(0.05);
210 locHist_TimingCut_t->GetXaxis()->SetLabelSize(0.05);
211 locHist_TimingCut_t->GetYaxis()->SetLabelSize(0.05);
212 locHist_TimingCut_t->GetYaxis()->SetLabelFont(42);
213 locHist_TimingCut_t->GetXaxis()->SetRangeUser(0,1);
214 locHist_TimingCut_t->GetYaxis()->SetRangeUser(1,locHist_TimingCut_t->GetMaximum()*2);
215 locHist_TimingCut_t->GetXaxis()->SetTitle(
"-t (GeV^{2}/c^{2})");
217 locHist_TimingCut_t->SetFillColor(kOrange-2);
218 locHist_TimingCut_t->SetStats(0);
219 locHist_TimingCut_t->Draw();
228 tx.SetTextSize(0.07);
230 sprintf(text,
"Post KinFit Cut");
231 tx.DrawLatex(0.1, locHist_KinFitConLev->GetMaximum()/4,
text);
232 sprintf(text,
"M(#rho) = %0.3f GeV/c^{2}", rho_mass);
233 tx.DrawLatex(0.1, locHist_KinFitConLev->GetMaximum()/16,
text);
234 sprintf(text,
"N(#rho) = %0.2f / 1k Trigger", n_rho_kinfit/n_triggers*1000);
235 tx.DrawLatex(0.1, locHist_KinFitConLev->GetMaximum()/64,
text);
sprintf(text,"Post KinFit Cut")
TDirectory * locReactionDirectory_NoKinFit
TDirectory * locReactionDirectory_KinFit
TDirectory * locInitDirectory