File indexing completed on 2026-01-09 10:34:44
0001 #include "RiceStyle.h"
0002
0003 using namespace std;
0004
0005 void plot_rho_physics_benchmark(TString filename="./sim_output/plot_combined.root"){
0006 Ssiz_t dotPosition = filename.Last('.');
0007 TString figure_directory = filename(0, dotPosition);
0008 figure_directory += "_figures";
0009
0010 TFile* file = new TFile(filename);
0011 TString vm_label="#rho^{0}";
0012 TString daug_label="#pi^{#plus}#pi^{#minus}";
0013
0014 TH1D* h_VM_mass_MC = (TH1D*) file->Get("h_VM_mass_MC");
0015 TH1D* h_VM_mass_REC = (TH1D*) file->Get("h_VM_mass_REC");
0016 TH1D* h_VM_mass_REC_justpions = (TH1D*) file->Get("h_VM_mass_REC_justpions");
0017
0018 TH1D* h_VM_mass_MC_etacut = (TH1D*) file->Get("h_VM_mass_MC_etacut");
0019 TH1D* h_VM_mass_REC_etacut = (TH1D*) file->Get("h_VM_mass_REC_etacut");
0020
0021 TProfile2D* h_effEtaPtPi = (TProfile2D*) file->Get("h_effEtaPtPi");
0022 TProfile2D* h_effEtaPtPip = (TProfile2D*) file->Get("h_effEtaPtPip");
0023 TProfile2D* h_effEtaPtPim = (TProfile2D*) file->Get("h_effEtaPtPim");
0024 TProfile2D* h_effPhiEtaPi = (TProfile2D*) file->Get("h_effPhiEtaPi");
0025 TProfile2D* h_effPhiEtaPip = (TProfile2D*) file->Get("h_effPhiEtaPip");
0026 TProfile2D* h_effPhiEtaPim = (TProfile2D*) file->Get("h_effPhiEtaPim");
0027
0028
0029 TLatex* r42 = new TLatex(0.18, 0.91, "ep 10#times100 GeV");
0030 r42->SetNDC();
0031 r42->SetTextSize(22);
0032 r42->SetTextFont(43);
0033 r42->SetTextColor(kBlack);
0034
0035 TLatex* r43 = new TLatex(0.9,0.91, "#bf{EPIC}");
0036 r43->SetNDC();
0037
0038 r43->SetTextSize(22);
0039
0040 TLatex* r44 = new TLatex(0.53, 0.78, "10^{-3}<Q^{2}<10 GeV^{2}, W>2 GeV");
0041 r44->SetNDC();
0042 r44->SetTextSize(20);
0043 r44->SetTextFont(43);
0044 r44->SetTextColor(kBlack);
0045
0046 TLatex* r44_2 = new TLatex(0.5, 0.83, ""+vm_label+" #rightarrow "+daug_label+" eSTARlight");
0047 r44_2->SetNDC();
0048 r44_2->SetTextSize(30);
0049 r44_2->SetTextFont(43);
0050 r44_2->SetTextColor(kBlack);
0051
0052 TCanvas* c2 = new TCanvas("c2","c2",1,1,600,600);
0053 gPad->SetTicks();
0054 gPad->SetLeftMargin(0.18);
0055 gPad->SetBottomMargin(0.18);
0056 gPad->SetTopMargin(0.10);
0057 gPad->SetRightMargin(0.01);
0058 TH1D* base2 = makeHist("base2", "", "#pi^{#plus}#pi^{#minus} inv. mass (GeV)", "counts", 100,0.05,2.05,kBlack);
0059 base2->GetYaxis()->SetRangeUser(0.5, 1.2*(h_VM_mass_MC->GetMaximum()));
0060 base2->GetXaxis()->SetTitleColor(kBlack);
0061 fixedFontHist1D(base2,1.,1.2);
0062 base2->GetYaxis()->SetTitleSize(base2->GetYaxis()->GetTitleSize()*1.5);
0063 base2->GetXaxis()->SetTitleSize(base2->GetXaxis()->GetTitleSize()*1.5);
0064 base2->GetYaxis()->SetLabelSize(base2->GetYaxis()->GetLabelSize()*1.5);
0065 base2->GetXaxis()->SetLabelSize(base2->GetXaxis()->GetLabelSize()*1.5);
0066 base2->GetXaxis()->SetNdivisions(4,4,0);
0067 base2->GetYaxis()->SetNdivisions(5,5,0);
0068 base2->GetYaxis()->SetTitleOffset(1.3);
0069 base2->Draw();
0070
0071 TH1D* h_VM_mass_REC_justprotons = (TH1D*)h_VM_mass_REC->Clone("h_VM_mass_REC_justprotons");
0072 for(int ibin=1; ibin<h_VM_mass_REC_justprotons->GetNbinsX(); ibin++){
0073 h_VM_mass_REC_justprotons->SetBinContent(ibin,h_VM_mass_REC_justprotons->GetBinContent(ibin) - h_VM_mass_REC_justpions->GetBinContent(ibin));
0074 }
0075
0076 h_VM_mass_MC->SetFillColorAlpha(kBlack,0.2);
0077 h_VM_mass_REC->SetFillColorAlpha(kMagenta,0.2);
0078 h_VM_mass_MC->SetLineColor(kBlack);
0079 h_VM_mass_REC->SetLineColor(kMagenta);
0080 h_VM_mass_REC_justpions->SetLineColor(kViolet+10);
0081 h_VM_mass_REC_justprotons->SetLineColor(kRed);
0082 h_VM_mass_MC->SetLineWidth(2);
0083 h_VM_mass_REC->SetLineWidth(2);
0084 h_VM_mass_REC_justpions->SetLineWidth(2);
0085 h_VM_mass_REC_justprotons->SetLineWidth(2);
0086
0087 h_VM_mass_REC->Scale(3.0);
0088 h_VM_mass_REC_justpions->Scale(3.0);
0089 h_VM_mass_REC_justprotons->Scale(3.0);
0090
0091 h_VM_mass_MC->Draw("HIST E same");
0092 h_VM_mass_REC->Draw("HIST E same");
0093 h_VM_mass_REC_justpions->Draw("HIST same");
0094 h_VM_mass_REC_justprotons->Draw("HIST same");
0095
0096 r42->Draw("same");
0097 r43->Draw("same");
0098 r44->Draw("same");
0099 r44_2->Draw("same");
0100
0101 TLegend *w8 = new TLegend(0.58,0.63,0.93,0.76);
0102 w8->SetLineColor(kWhite);
0103 w8->SetFillColor(0);
0104 w8->SetTextSize(17);
0105 w8->SetTextFont(45);
0106 w8->AddEntry(h_VM_mass_MC, ""+vm_label+" MC ", "L");
0107 w8->AddEntry(h_VM_mass_REC, vm_label+" reco.#times3", "L");
0108 w8->AddEntry(h_VM_mass_REC_justpions, vm_label+" reco.#times3 (#pi^{#minus}#pi^{#plus})", "L");
0109 w8->AddEntry(h_VM_mass_REC_justprotons, vm_label+" reco.#times3 (#pi^{#minus}p)", "L");
0110 w8->Draw("same");
0111
0112 TString figure1name = figure_directory+"/benchmark_rho_mass.pdf";
0113 c2->Print(figure1name);
0114
0115
0116
0117 TCanvas* c4 = new TCanvas("c4","c4",1,1,600,600);
0118 gPad->SetTicks();
0119 gPad->SetLeftMargin(0.18);
0120 gPad->SetBottomMargin(0.18);
0121 gPad->SetTopMargin(0.10);
0122 gPad->SetRightMargin(0.01);
0123 TH1D* base4 = makeHist("base4", "", "#pi^{#plus}#pi^{#minus} inv. mass (GeV)", "counts", 100,0.05,2.05,kBlack);
0124 base4->GetYaxis()->SetRangeUser(0.5, 1.2*(h_VM_mass_MC_etacut->GetMaximum()));
0125 base4->GetXaxis()->SetTitleColor(kBlack);
0126 fixedFontHist1D(base4,1.,1.2);
0127 base4->GetYaxis()->SetTitleSize(base4->GetYaxis()->GetTitleSize()*1.5);
0128 base4->GetXaxis()->SetTitleSize(base4->GetXaxis()->GetTitleSize()*1.5);
0129 base4->GetYaxis()->SetLabelSize(base4->GetYaxis()->GetLabelSize()*1.5);
0130 base4->GetXaxis()->SetLabelSize(base4->GetXaxis()->GetLabelSize()*1.5);
0131 base4->GetXaxis()->SetNdivisions(4,4,0);
0132 base4->GetYaxis()->SetNdivisions(5,5,0);
0133 base4->GetYaxis()->SetTitleOffset(1.3);
0134 base4->Draw();
0135
0136 h_VM_mass_MC_etacut->SetFillColorAlpha(kBlack,0.2);
0137 h_VM_mass_REC_etacut->SetFillColorAlpha(kMagenta,0.2);
0138 h_VM_mass_MC_etacut->SetLineColor(kBlack);
0139 h_VM_mass_REC_etacut->SetLineColor(kMagenta);
0140 h_VM_mass_MC_etacut->SetLineWidth(2);
0141 h_VM_mass_REC_etacut->SetLineWidth(2);
0142
0143 h_VM_mass_MC_etacut->Draw("HIST E same");
0144 h_VM_mass_REC_etacut->Draw("HIST E same");
0145
0146 double minbineff = h_VM_mass_MC_etacut->FindBin(0.6);
0147 double maxbineff = h_VM_mass_MC_etacut->FindBin(1.0);
0148 double thiseff = 100.0*(1.0*h_VM_mass_REC_etacut->Integral(minbineff,maxbineff))/(1.0*h_VM_mass_MC_etacut->Integral(minbineff,maxbineff));
0149
0150 r42->Draw("same");
0151 r43->Draw("same");
0152 r44->Draw("same");
0153 r44_2->Draw("same");
0154
0155 TLegend *w10 = new TLegend(0.58,0.62,0.93,0.7);
0156 w10->SetLineColor(kWhite);
0157 w10->SetFillColor(0);
0158 w10->SetTextSize(17);
0159 w10->SetTextFont(45);
0160 w10->AddEntry(h_VM_mass_MC_etacut, vm_label+" MC ", "L");
0161 w10->AddEntry(h_VM_mass_REC_etacut, vm_label+" reco. (#pi^{#minus}#pi^{#plus})", "L");
0162 w10->Draw("same");
0163
0164 TLatex* anglelabel = new TLatex(0.59, 0.73, "9<#theta_{#pi^{#pm},MC}<13 mrad");
0165 anglelabel->SetNDC();
0166 anglelabel->SetTextSize(20);
0167 anglelabel->SetTextFont(43);
0168 anglelabel->SetTextColor(kBlack);
0169 anglelabel->Draw("same");
0170
0171 TLatex* efflabel = new TLatex(0.59, 0.55, "reco. eff (0.6<m^{2}<1 GeV^{2})");
0172 efflabel->SetNDC();
0173 efflabel->SetTextSize(20);
0174 efflabel->SetTextFont(43);
0175 efflabel->SetTextColor(kBlack);
0176 efflabel->Draw("same");
0177 TLatex* effnlabel = new TLatex(0.59, 0.51, Form(" = %.0f%%",thiseff));
0178 effnlabel->SetNDC();
0179 effnlabel->SetTextSize(20);
0180 effnlabel->SetTextFont(43);
0181 effnlabel->SetTextColor(kBlack);
0182 effnlabel->Draw("same");
0183
0184 TString figure2name = figure_directory+"/benchmark_rho_mass_cuts.pdf";
0185 c4->Print(figure2name);
0186
0187
0188 TCanvas* c5 = new TCanvas("c5","c5",1,1,700,560);
0189 TPad* p5 = new TPad("p5","Pad5",0.,0.,1.,1.);
0190 p5->Divide(3,2,0,0);
0191 p5->Draw();
0192 gStyle->SetPalette(kBlueRedYellow);
0193 gStyle->SetOptStat(0);
0194
0195 h_effEtaPtPi ->GetXaxis()->SetLabelSize(h_effEtaPtPi ->GetXaxis()->GetLabelSize()*1.8);
0196 h_effEtaPtPip ->GetXaxis()->SetLabelSize(h_effEtaPtPip ->GetXaxis()->GetLabelSize()*1.8);
0197 h_effEtaPtPim ->GetXaxis()->SetLabelSize(h_effEtaPtPim ->GetXaxis()->GetLabelSize()*1.8);
0198 h_effEtaPtPi ->GetYaxis()->SetLabelSize(h_effEtaPtPi ->GetYaxis()->GetLabelSize()*1.8);
0199 h_effEtaPtPim ->GetZaxis()->SetLabelSize(h_effEtaPtPim ->GetZaxis()->GetLabelSize()*0.5);
0200 h_effEtaPtPim ->GetZaxis()->SetTitleSize(h_effEtaPtPim ->GetZaxis()->GetTitleSize()*0.5);
0201 h_effPhiEtaPi ->GetXaxis()->SetLabelSize(h_effPhiEtaPi ->GetXaxis()->GetLabelSize()*1.8);
0202 h_effPhiEtaPip->GetXaxis()->SetLabelSize(h_effPhiEtaPip->GetXaxis()->GetLabelSize()*1.8);
0203 h_effPhiEtaPim->GetXaxis()->SetLabelSize(h_effPhiEtaPim->GetXaxis()->GetLabelSize()*1.8);
0204 h_effPhiEtaPi ->GetYaxis()->SetLabelSize(h_effPhiEtaPi ->GetYaxis()->GetLabelSize()*1.8);
0205 h_effPhiEtaPim->GetZaxis()->SetLabelSize(h_effPhiEtaPim->GetZaxis()->GetLabelSize()*0.5);
0206 h_effPhiEtaPim->GetZaxis()->SetTitleSize(h_effPhiEtaPim->GetZaxis()->GetTitleSize()*0.5);
0207
0208 fixedFontHist1D(h_effEtaPtPi,1.,1.2);
0209 fixedFontHist1D(h_effEtaPtPip,1.,1.2);
0210 fixedFontHist1D(h_effEtaPtPim,1.,1.2);
0211 fixedFontHist1D(h_effPhiEtaPi,1.,1.2);
0212 fixedFontHist1D(h_effPhiEtaPip,1.,1.2);
0213 fixedFontHist1D(h_effPhiEtaPim,1.,1.2);
0214
0215 p5->cd(1);
0216 TVirtualPad* p51 = p5->cd(1);
0217 p51->SetTopMargin(0.08);
0218 p51->SetRightMargin(0);
0219 p51->SetLeftMargin(0.21);
0220 p51->SetBottomMargin(0.2);
0221 h_effEtaPtPi->GetXaxis()->SetRangeUser(3.9,6.05);
0222 h_effEtaPtPi->GetYaxis()->SetRangeUser(0,1.7);
0223 h_effEtaPtPi->GetZaxis()->SetRangeUser(0,1);
0224 h_effEtaPtPi->GetXaxis()->SetNdivisions(5);
0225 h_effEtaPtPi->GetYaxis()->SetNdivisions(5);
0226 h_effEtaPtPi->SetContour(99);
0227 h_effEtaPtPi->Draw("COLZ");
0228 TLatex* pilabel = new TLatex(0.81, 0.75, "#pi^{#pm}");
0229 pilabel->SetNDC();
0230 pilabel->SetTextSize(40);
0231 pilabel->SetTextFont(43);
0232 pilabel->SetTextColor(kBlack);
0233 pilabel->Draw("same");
0234 TLatex* r44fig5c = new TLatex(0.21, 0.93, "ep 10#times100 GeV #rho^{0}#rightarrow#pi^{#plus}#pi^{#minus}");
0235 r44fig5c->SetNDC();
0236 r44fig5c->SetTextSize(15);
0237 r44fig5c->SetTextFont(43);
0238 r44fig5c->SetTextColor(kBlack);
0239 r44fig5c->Draw("same");
0240
0241 p5->cd(2);
0242 TVirtualPad* p52 = p5->cd(2);
0243 p52->SetTopMargin(0.08);
0244 p52->SetRightMargin(0);
0245 p52->SetLeftMargin(0);
0246 p52->SetBottomMargin(0.2);
0247 h_effEtaPtPip->GetXaxis()->SetRangeUser(4.05,6.05);
0248 h_effEtaPtPip->GetYaxis()->SetRangeUser(0,1.7);
0249 h_effEtaPtPip->GetZaxis()->SetRangeUser(0,1);
0250 h_effEtaPtPip->GetXaxis()->SetNdivisions(5);
0251 h_effEtaPtPip->GetYaxis()->SetNdivisions(5);
0252 h_effEtaPtPip->SetContour(99);
0253 h_effEtaPtPip->Draw("COLZ");
0254 TLatex* piplabel = new TLatex(0.81, 0.75, "#pi^{#plus}");
0255 piplabel->SetNDC();
0256 piplabel->SetTextSize(40);
0257 piplabel->SetTextFont(43);
0258 piplabel->SetTextColor(kBlack);
0259 piplabel->Draw("same");
0260 TLatex* r44fig5a = new TLatex(0.01, 0.93, "eSTARlight 10^{-3}<Q^{2}<10 GeV^{2}");
0261 r44fig5a->SetNDC();
0262 r44fig5a->SetTextSize(15);
0263 r44fig5a->SetTextFont(43);
0264 r44fig5a->SetTextColor(kBlack);
0265 r44fig5a->Draw("same");
0266
0267 p5->cd(3);
0268 TVirtualPad* p53 = p5->cd(3);
0269 p53->SetTopMargin(0.08);
0270 p53->SetRightMargin(0.2);
0271 p53->SetLeftMargin(0);
0272 p53->SetBottomMargin(0.2);
0273 h_effEtaPtPim->SetTitle(";#eta;;efficiency");
0274 h_effEtaPtPim->GetXaxis()->SetRangeUser(4.05,6.05);
0275 h_effEtaPtPim->GetYaxis()->SetRangeUser(0,1.7);
0276 h_effEtaPtPim->GetZaxis()->SetRangeUser(0,1);
0277 h_effEtaPtPim->GetXaxis()->SetNdivisions(5);
0278 h_effEtaPtPim->GetYaxis()->SetNdivisions(5);
0279 h_effEtaPtPim->SetContour(99);
0280 h_effEtaPtPim->Draw("COLZ");
0281 TLatex* pimlabel = new TLatex(0.62, 0.75, "#pi^{#minus}");
0282 pimlabel->SetNDC();
0283 pimlabel->SetTextSize(40);
0284 pimlabel->SetTextFont(43);
0285 pimlabel->SetTextColor(kBlack);
0286 pimlabel->Draw("same");
0287 TLatex* r43fig5 = new TLatex(0.66,0.93, "#bf{EPIC}");
0288 r43fig5->SetNDC();
0289 r43fig5->SetTextSize(15);
0290 r43fig5->SetTextFont(43);
0291 r43fig5->SetTextColor(kBlack);
0292 r43fig5->Draw("same");
0293 TLatex* r44fig5b = new TLatex(0.01, 0.93, "W>2 GeV");
0294 r44fig5b->SetNDC();
0295 r44fig5b->SetTextSize(15);
0296 r44fig5b->SetTextFont(43);
0297 r44fig5b->SetTextColor(kBlack);
0298 r44fig5b->Draw("same");
0299
0300 p5->cd(4);
0301 TVirtualPad* p54 = p5->cd(4);
0302 p54->SetTopMargin(0.05);
0303 p54->SetRightMargin(0);
0304 p54->SetLeftMargin(0.2);
0305 p54->SetBottomMargin(0.21);
0306 h_effPhiEtaPi->GetXaxis()->SetRangeUser(0,6.2);
0307 h_effPhiEtaPi->GetYaxis()->SetRangeUser(4,6);
0308 h_effPhiEtaPi->GetZaxis()->SetRangeUser(0,1);
0309 h_effPhiEtaPi->GetXaxis()->SetNdivisions(8);
0310 h_effPhiEtaPi->GetYaxis()->SetNdivisions(5);
0311 h_effPhiEtaPi->SetContour(99);
0312 h_effPhiEtaPi->Draw("COLZ");
0313 TLatex* pilabela = new TLatex(0.3, 0.82, "#pi^{#pm}");
0314 TLatex* pilabelb = new TLatex(0.5, 0.84, "(p_{T}>0.2 GeV/c)");
0315 pilabela->SetNDC();
0316 pilabelb->SetNDC();
0317 pilabela->SetTextSize(40);
0318 pilabelb->SetTextSize(15);
0319 pilabela->SetTextFont(43);
0320 pilabelb->SetTextFont(43);
0321 pilabela->SetTextColor(kWhite);
0322 pilabelb->SetTextColor(kWhite);
0323 pilabela->Draw("same");
0324 pilabelb->Draw("same");
0325
0326 p5->cd(5);
0327 TVirtualPad* p55 = p5->cd(5);
0328 p55->SetTopMargin(0.05);
0329 p55->SetRightMargin(0);
0330 p55->SetLeftMargin(0);
0331 p55->SetBottomMargin(0.2);
0332 h_effPhiEtaPip->GetXaxis()->SetRangeUser(0.15,6.2);
0333 h_effPhiEtaPip->GetYaxis()->SetRangeUser(4,6);
0334 h_effPhiEtaPip->GetZaxis()->SetRangeUser(0,1);
0335 h_effPhiEtaPip->GetXaxis()->SetNdivisions(8);
0336 h_effPhiEtaPip->GetYaxis()->SetNdivisions(5);
0337 h_effPhiEtaPip->SetContour(99);
0338 h_effPhiEtaPip->Draw("COLZ");
0339 TLatex* piplabela = new TLatex(0.2, 0.82, "#pi^{#plus}");
0340 TLatex* piplabelb = new TLatex(0.4, 0.84, "(p_{T}>0.2 GeV/c)");
0341 piplabela->SetNDC();
0342 piplabelb->SetNDC();
0343 piplabela->SetTextSize(40);
0344 piplabelb->SetTextSize(15);
0345 piplabela->SetTextFont(43);
0346 piplabelb->SetTextFont(43);
0347 piplabela->SetTextColor(kWhite);
0348 piplabelb->SetTextColor(kWhite);
0349 piplabela->Draw("same");
0350 piplabelb->Draw("same");
0351
0352 p5->cd(6);
0353 TVirtualPad* p56 = p5->cd(6);
0354 p56->SetTopMargin(0.05);
0355 p56->SetRightMargin(0.2);
0356 p56->SetLeftMargin(0);
0357 p56->SetBottomMargin(0.2);
0358 h_effPhiEtaPim->SetTitle(";#phi (rad);;efficiency");
0359 h_effPhiEtaPim->GetXaxis()->SetRangeUser(0.15,6.2);
0360 h_effPhiEtaPim->GetYaxis()->SetRangeUser(4,6);
0361 h_effPhiEtaPim->GetZaxis()->SetRangeUser(0,1);
0362 h_effPhiEtaPim->GetXaxis()->SetNdivisions(8);
0363 h_effPhiEtaPim->GetYaxis()->SetNdivisions(5);
0364 h_effPhiEtaPim->SetContour(99);
0365 h_effPhiEtaPim->Draw("COLZ");
0366 TLatex* pimlabela = new TLatex(0.1, 0.82, "#pi^{#minus}");
0367 TLatex* pimlabelb = new TLatex(0.25, 0.84, "(p_{T}>0.2 GeV/c)");
0368 pimlabela->SetNDC();
0369 pimlabelb->SetNDC();
0370 pimlabela->SetTextSize(40);
0371 pimlabelb->SetTextSize(15);
0372 pimlabela->SetTextFont(43);
0373 pimlabelb->SetTextFont(43);
0374 pimlabela->SetTextColor(kWhite);
0375 pimlabelb->SetTextColor(kWhite);
0376 pimlabela->Draw("same");
0377 pimlabelb->Draw("same");
0378
0379 TString figure3name = figure_directory+"/benchmark_rho_efficiencies.pdf";
0380 c5->Print(figure3name);
0381 }