Warning, file /analysis/LightFlavorRatios/truth_ratio/plot_truth_comparison.C was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 #include "../util/binning.h"
0002
0003 void formatDefault(TH1F* h, EColor color)
0004 {
0005 h->SetLineColor(color);
0006 h->SetMarkerStyle(kFullCircle);
0007 h->SetMarkerColor(color);
0008 h->SetMarkerSize(0.7);
0009 }
0010
0011 void plot_lambda(TFile* f_inc, TFile* f_pos, TFile* f_neg, std::string hname, std::string title, std::string filename, float x_legend, float y_legend, bool scale)
0012 {
0013 std::string clonename = scale? hname+"_scaled" : hname+"_unscaled";
0014
0015 TH1F* h_inc = (TH1F*)f_inc->Get(hname.c_str())->Clone(clonename.c_str());
0016 TH1F* h_pos = (TH1F*)f_pos->Get(hname.c_str())->Clone(clonename.c_str());
0017 TH1F* h_neg = (TH1F*)f_neg->Get(hname.c_str())->Clone(clonename.c_str());
0018 if(scale)
0019 {
0020 h_inc->Scale(1.,"width");
0021 h_pos->Scale(1.,"width");
0022 h_neg->Scale(1.,"width");
0023 }
0024
0025 TCanvas* c = new TCanvas("c","c",800,800);
0026
0027
0028 c->SetTitle(title.c_str());
0029
0030 float plot_min = std::min(h_pos->GetMinimum(),h_neg->GetMinimum());
0031 if(plot_min<0.) plot_min = 1.;
0032
0033 float plot_max = std::max(h_inc->GetMaximum(),h_pos->GetMaximum());
0034 if(h_neg->GetMaximum()>plot_max) plot_max = h_neg->GetMaximum();
0035
0036 h_inc->SetMinimum(0.);
0037 h_inc->SetMaximum(1.3*plot_max);
0038
0039 formatDefault(h_inc,kBlack);
0040 formatDefault(h_pos,kRed);
0041 formatDefault(h_neg,kBlue);
0042
0043 h_inc->Draw();
0044 h_pos->Draw("SAME");
0045 h_neg->Draw("SAME");
0046
0047 float x_legend_high = std::min(x_legend+0.25,0.9);
0048 float y_legend_high = std::min(y_legend+0.13,0.9);
0049
0050 TLegend* llyt = new TLegend(x_legend,y_legend,x_legend_high,y_legend_high);
0051 llyt->AddEntry(h_inc,"(#Lambda^{0}+#bar{#Lambda}^{0})");
0052 llyt->AddEntry(h_pos,"#Lambda^{0}");
0053 llyt->AddEntry(h_neg,"#bar{#Lambda}^{0}");
0054 llyt->Draw();
0055
0056 c->SaveAs(filename.c_str());
0057 c->Close();
0058 }
0059
0060 void plot_ks(TFile* f, std::string hname, std::string title, std::string filename, bool scale)
0061 {
0062 std::string clonename = scale? hname+"_scaled" : hname+"_unscaled";
0063
0064 TH1F* h = (TH1F*)f->Get(hname.c_str())->Clone(clonename.c_str());
0065
0066 if(scale)
0067 {
0068 h->Scale(1.,"width");
0069 }
0070
0071 h->SetMinimum(0.);
0072 h->SetMaximum(h->GetMaximum()*1.3);
0073
0074 TCanvas* c = new TCanvas("c","c",800,800);
0075
0076
0077 h->SetTitle(title.c_str());
0078 formatDefault(h,kBlack);
0079 h->Draw();
0080
0081 c->SaveAs(filename.c_str());
0082 c->Close();
0083 }
0084
0085 void plot_ratio(TH1F* ratio_inc, TH1F* ratio_pos, TH1F* ratio_neg, std::string title, std::string filename, float x_legend, float y_legend)
0086 {
0087 TCanvas* c = new TCanvas("c","c",800,800);
0088
0089 formatDefault(ratio_inc,kBlack);
0090 formatDefault(ratio_pos,kRed);
0091 formatDefault(ratio_neg,kBlue);
0092
0093 ratio_inc->SetTitle(title.c_str());
0094 ratio_inc->SetMinimum(0.);
0095 ratio_inc->SetMaximum(1.3*std::max(ratio_pos->GetMaximum(),ratio_neg->GetMaximum()));
0096
0097 ratio_inc->Draw();
0098 ratio_pos->Draw("SAME");
0099 ratio_neg->Draw("SAME");
0100
0101 float x_legend_high = std::min(x_legend+0.25,0.9);
0102 float y_legend_high = std::min(y_legend+0.13,0.9);
0103
0104 TLegend* lrt = new TLegend(x_legend,y_legend,x_legend_high,y_legend_high);
0105 lrt->AddEntry(ratio_inc,"(#Lambda^{0}+#bar{#Lambda}^{0})/2K_{S}^{0}");
0106 lrt->AddEntry(ratio_pos,"#Lambda^{0}/K_{S}^{0}");
0107 lrt->AddEntry(ratio_neg,"#bar{#Lambda}^{0}/K_{S}^{0}");
0108 lrt->Draw();
0109
0110 c->SaveAs(filename.c_str());
0111 c->Close();
0112 }
0113
0114 void plot_truth_vsreco(TH1F* truth, TH1F* reco, std::string title, std::string filename, float x_legend, float y_legend)
0115 {
0116 TCanvas* c = new TCanvas("c","c",800,800);
0117
0118 formatDefault(truth,kBlack);
0119 formatDefault(reco,kRed);
0120
0121 truth->SetTitle(title.c_str());
0122 truth->SetMinimum(0.);
0123 truth->SetMaximum(1.1*std::max(truth->GetMaximum(),reco->GetMaximum()));
0124
0125 truth->Draw();
0126 reco->Draw("SAME");
0127
0128 float x_legend_high = std::min(x_legend+0.25,0.9);
0129 float y_legend_high = std::min(y_legend+0.25,0.9);
0130
0131 TLegend* ltr = new TLegend(x_legend,y_legend,x_legend_high,y_legend_high);
0132 ltr->AddEntry(truth,"truth");
0133 ltr->AddEntry(reco,"reco");
0134
0135 c->SaveAs(filename.c_str());
0136 c->Close();
0137 }
0138
0139 void plot_correction_sequence(TH1F* truth, TH1F* reco, TH1F* geo_acc, TH1F* cut_eff, std::string title, std::string filename, float x_legend, float y_legend)
0140 {
0141 TCanvas* c = new TCanvas("c","c",800,800);
0142
0143
0144
0145
0146
0147
0148 TH1F* reco_geo = (TH1F*)reco->Clone((std::string(reco->GetName())+"_geo").c_str());
0149 TH1F* reco_geo_cut = (TH1F*)reco->Clone((std::string(reco->GetName())+"_geo_cut").c_str());
0150
0151 formatDefault(truth,kBlack);
0152 formatDefault(reco,kRed);
0153 formatDefault(reco_geo,kBlue);
0154 formatDefault(reco_geo_cut,kGreen);
0155
0156 reco_geo->Divide(geo_acc);
0157 reco_geo_cut->Divide(geo_acc);
0158 reco_geo_cut->Divide(cut_eff);
0159
0160 std::cout << reco->GetName() << std::endl;
0161 for(int i=1;i<=truth->GetNbinsX();i++)
0162 {
0163 std::cout << "bin " << i << ": " << std::endl
0164 << "reco: " << reco->GetBinContent(i) << " +- " << reco->GetBinError(i) << std::endl
0165 << "geo acceptance: " << geo_acc->GetBinContent(i) << " +- " << geo_acc->GetBinError(i) << std::endl
0166 << "cut eff: " << cut_eff->GetBinContent(i) << " +- " << cut_eff->GetBinError(i) << std::endl
0167 << "reco/geoacc: " << reco_geo->GetBinContent(i) << " +- " << reco_geo->GetBinError(i) << std::endl
0168 << "reco/(geoacc*cuteff): " << reco_geo_cut->GetBinContent(i) << " +- " << reco_geo_cut->GetBinError(i) << std::endl;
0169 }
0170
0171 truth->SetTitle(title.c_str());
0172 truth->SetMinimum(0.);
0173 truth->SetMaximum(1.1*std::max(truth->GetMaximum(),reco_geo_cut->GetMaximum()));
0174
0175 truth->Draw();
0176 reco->Draw("SAME");
0177 reco_geo->Draw("SAME");
0178 reco_geo_cut->Draw("SAME");
0179
0180 float x_legend_high = std::min(x_legend+0.25,0.9);
0181 float y_legend_high = std::min(y_legend+0.25,0.9);
0182
0183 TLegend* lc = new TLegend(x_legend,y_legend,x_legend_high,y_legend_high);
0184 lc->AddEntry(truth,"truth");
0185 lc->AddEntry(reco,"reco uncorrected");
0186 lc->AddEntry(reco_geo,"reco, geometric acceptance corrected");
0187 lc->AddEntry(reco_geo_cut,"reco, geometric acceptance and cut efficiency corrected");
0188 lc->Draw();
0189
0190 c->SaveAs(filename.c_str());
0191 c->Close();
0192 }
0193
0194 void plot_correction(TH1F* corr, std::string title, std::string filename)
0195 {
0196 TCanvas* c = new TCanvas("c","c",800,800);
0197
0198 formatDefault(corr,kBlack);
0199
0200 corr->SetTitle(title.c_str());
0201 corr->SetMinimum(0.);
0202 corr->SetMaximum(1.2*corr->GetMaximum());
0203
0204 corr->Draw();
0205
0206 c->SaveAs(filename.c_str());
0207 c->Close();
0208 }
0209
0210 void plot_inverse_correction_sequence(TH1F* truth, TH1F* reco, TH1F* geo_acc, TH1F* cut_eff, std::string title, std::string filename, float x_legend, float y_legend)
0211 {
0212 TCanvas* c = new TCanvas("c","c",800,800);
0213
0214
0215
0216
0217
0218
0219 TH1F* truth_cut = (TH1F*)truth->Clone((std::string(truth->GetName())+"_geo").c_str());
0220 TH1F* truth_cut_geo = (TH1F*)truth->Clone((std::string(truth->GetName())+"_geo_cut").c_str());
0221
0222 TH1F* reco_geo = (TH1F*)reco->Clone((std::string(reco->GetName())+"_geo").c_str());
0223 TH1F* reco_geo_cut = (TH1F*)reco->Clone((std::string(reco->GetName())+"_geo_cut").c_str());
0224
0225 formatDefault(truth,kBlack);
0226 formatDefault(reco,kRed);
0227 formatDefault(truth_cut,kViolet);
0228 formatDefault(truth_cut_geo,kOrange);
0229 formatDefault(reco_geo,kBlue);
0230 formatDefault(reco_geo_cut,kGreen);
0231
0232 truth_cut->Multiply(cut_eff);
0233 truth_cut_geo->Multiply(cut_eff);
0234 truth_cut_geo->Multiply(geo_acc);
0235
0236 reco_geo->Divide(geo_acc);
0237 reco_geo_cut->Divide(geo_acc);
0238 reco_geo_cut->Divide(cut_eff);
0239
0240 std::cout << reco->GetName() << std::endl;
0241 for(int i=1;i<=truth->GetNbinsX();i++)
0242 {
0243 std::cout << "bin " << i << ": " << std::endl
0244 << "truth: " << truth->GetBinContent(i) << " +- " << truth->GetBinError(i) << std::endl
0245 << "geo acceptance: " << geo_acc->GetBinContent(i) << " +- " << geo_acc->GetBinError(i) << std::endl
0246 << "cut eff: " << cut_eff->GetBinContent(i) << " +- " << cut_eff->GetBinError(i) << std::endl
0247 << "truth*cuteff: " << truth_cut->GetBinContent(i) << " +- " << truth_cut->GetBinError(i) << std::endl
0248 << "truth*(geoacc*cuteff): " << truth_cut_geo->GetBinContent(i) << " +- " << truth_cut_geo->GetBinError(i) << std::endl
0249 << "reco: " << reco->GetBinContent(i) << " +- " << reco->GetBinError(i) << std::endl;
0250 }
0251
0252 truth->SetTitle(title.c_str());
0253 truth->SetMinimum(0.);
0254 truth->SetMaximum(1.1*truth->GetMaximum());
0255
0256 truth->Draw();
0257 reco->Draw("SAME");
0258 truth_cut->Draw("SAME");
0259 truth_cut_geo->Draw("SAME");
0260 reco_geo->Draw("SAME");
0261 reco_geo_cut->Draw("SAME");
0262
0263 float x_legend_high = std::min(x_legend+0.4,0.9);
0264 float y_legend_high = std::min(y_legend+0.2,0.9);
0265
0266 TLegend* lc = new TLegend(x_legend,y_legend,x_legend_high,y_legend_high);
0267 lc->AddEntry(truth,"truth");
0268 lc->AddEntry(reco,"reco uncorrected");
0269 lc->AddEntry(truth_cut,"truth after cut efficiency");
0270 lc->AddEntry(truth_cut_geo,"truth after cut efficiency and geometric acceptance");
0271 lc->AddEntry(reco_geo,"reco after geometric acceptance correction");
0272 lc->AddEntry(reco_geo_cut,"reco after geometric acceptance and cut efficiency correction");
0273 lc->Draw();
0274
0275 c->SaveAs(filename.c_str());
0276 c->Close();
0277 }
0278
0279 void plot_truth_comparison()
0280 {
0281 gROOT->SetBatch();
0282
0283 TFile* ftruth = TFile::Open("merged_truth_ratio.root");
0284 TFile* ftruth_pos = TFile::Open("merged_ratio_pos.root");
0285 TFile* ftruth_neg = TFile::Open("merged_ratio_neg.root");
0286
0287 TFile* freco = TFile::Open("../yield_and_ratios/fits_MC.root");
0288 TFile* freco_pos = TFile::Open("../yield_and_ratios/fits_MC_pos.root");
0289 TFile* freco_neg = TFile::Open("../yield_and_ratios/fits_MC_neg.root");
0290
0291 TFile* fdata = TFile::Open("../yield_and_ratios/fits.root");
0292 TFile* fdata_pos = TFile::Open("../yield_and_ratios/fits_pos.root");
0293 TFile* fdata_neg = TFile::Open("../yield_and_ratios/fits_neg.root");
0294
0295 TFile* fgeo_corr = TFile::Open("/sphenix/tg/tg01/hf/mjpeters/LightFlavorProduction/geometricAcceptanceCorrection/corrections/geo_acceptance_inclusive.root");
0296 TFile* fgeo_corr_pos = TFile::Open("/sphenix/tg/tg01/hf/mjpeters/LightFlavorProduction/geometricAcceptanceCorrection/corrections/geo_acceptance_lambdaonly.root");
0297 TFile* fgeo_corr_neg = TFile::Open("/sphenix/tg/tg01/hf/mjpeters/LightFlavorProduction/geometricAcceptanceCorrection/corrections/geo_acceptance_lambdabaronly.root");
0298
0299 TFile* fcut_corr = TFile::Open("/sphenix/tg/tg01/hf/mjpeters/LightFlavorProduction/cutEfficiencyCorrection/cut_efficiency_correction.root");
0300 TFile* fcut_corr_pos = TFile::Open("/sphenix/tg/tg01/hf/mjpeters/LightFlavorProduction/cutEfficiencyCorrection/cut_efficiency_correction_pos.root");
0301 TFile* fcut_corr_neg = TFile::Open("/sphenix/tg/tg01/hf/mjpeters/LightFlavorProduction/cutEfficiencyCorrection/cut_efficiency_correction_neg.root");
0302
0303 std::vector<HistogramInfo> variables = {
0304 BinInfo::final_pt_bins,
0305 BinInfo::final_eta_bins,
0306 BinInfo::final_phi_bins,
0307 BinInfo::final_rapidity_bins
0308 };
0309
0310 gStyle->SetOptStat(0);
0311
0312 for(int i=0; i<variables.size(); i++)
0313 {
0314 std::string vname = variables[i].name;
0315 std::string vtitle = variables[i].title;
0316
0317
0318
0319 plot_lambda(ftruth,ftruth_pos,ftruth_neg,"hn_vs"+vname,"#Lambda yield vs. "+vtitle+" from truth",
0320 "plots/yields/lambda_yields_truth_vs"+vname+".png",0.65,0.77,false);
0321 plot_lambda(ftruth,ftruth_pos,ftruth_neg,"hn_vs"+vname,"#Lambda yield vs. "+vtitle+" from truth (scaled by bin width)",
0322 "plots/yields/lambda_yields_truth_scaled_vs"+vname+".png",0.65,0.77,true);
0323 plot_lambda(ftruth,ftruth_pos,ftruth_neg,"hn_wd_vs"+vname,"#Lambda yield vs. "+vtitle+" from truth, with all reco daughters reconstructed",
0324 "plots/yields/lambda_yields_wd_truth_vs"+vname+".png",0.65,0.77,false);
0325 plot_lambda(ftruth,ftruth_pos,ftruth_neg,"hn_wd_vs"+vname,"#Lambda yield vs. "+vtitle+" from truth, with all reco daughters reconstructed (scaled by bin width)","plots/yields/lambda_yields_wd_truth_scaled_vs"+vname+".png",0.65,0.77,true);
0326 plot_lambda(freco,freco_pos,freco_neg,"Lambda0_yield_vs"+vname,"#Lambda yield (uncorrected) vs. "+vtitle+" from reco",
0327 "plots/yields/lambda_yields_reco_vs"+vname+".png",0.65,0.77,false);
0328 plot_lambda(freco,freco_pos,freco_neg,"Lambda0_yield_vs"+vname,"#Lambda yield (uncorrected) vs. "+vtitle+" from reco (scaled by bin width)",
0329 "plots/yields/lambda_yields_reco_scaled_vs"+vname+".png",0.65,0.77,true);
0330
0331
0332
0333
0334
0335
0336
0337 plot_ks(ftruth,"hd_vs"+vname,"K_{S} yield vs. "+vtitle+" from truth","plots/yields/ks_yield_truth_vs"+vname+".png",false);
0338 plot_ks(ftruth,"hd_vs"+vname,"K_{S} yield vs. "+vtitle+" from truth (scaled by bin width)","plots/yields/ks_yield_truth_scaled_vs"+vname+".png",true);
0339 plot_ks(ftruth,"hd_wd_vs"+vname,"K_{S} yield vs. "+vtitle+" from truth, with all reco daughters reconstructed","plots/yields/ks_yield_wd_truth_vs"+vname+".png",false);
0340 plot_ks(ftruth,"hd_wd_vs"+vname,"K_{S} yield vs. "+vtitle+" from truth, with all reco daughters reconstructed (scaled by bin width)","plots/yields/ks_yield_wd_truth_scaled_vs"+vname+".png",true);
0341 plot_ks(freco,"K_S0_yield_vs"+vname,"K_{S} yield vs. "+vtitle+" from reco","plots/yields/ks_yield_reco_vs"+vname+".png",false);
0342 plot_ks(freco,"K_S0_yield_vs"+vname,"K_{S} yield vs. "+vtitle+" from reco (scaled by bin width)","plots/yields/ks_yield_reco_scaled_vs"+vname+".png",true);
0343
0344
0345
0346
0347
0348 TH1F* ratio_truth = makeHistogram("ratio_truth","(#Lambda^{0}+#bar{#Lambda^{0}})/2K^{0}_{S} ratio from truth",variables[i]);
0349 TH1F* ratio_truth_pos = makeHistogram("ratio_truth_pos","#Lambda^{0}/K^{0}_{S} ratio from truth",variables[i]);
0350 TH1F* ratio_truth_neg = makeHistogram("ratio_truth_neg","#bar{#Lambda^{0}}/K^{0}_{S} ratio from truth",variables[i]);
0351
0352 TH1F* lambda_truth = (TH1F*)ftruth->Get(("hn_vs"+vname).c_str());
0353 TH1F* lambda_truth_pos = (TH1F*)ftruth_pos->Get(("hn_vs"+vname).c_str());
0354 TH1F* lambda_truth_neg = (TH1F*)ftruth_neg->Get(("hn_vs"+vname).c_str());
0355 TH1F* ks_truth = (TH1F*)ftruth->Get(("hd_vs"+vname).c_str());
0356
0357 for(TH1F* h : {lambda_truth, lambda_truth_pos, lambda_truth_neg, ks_truth})
0358 {
0359 h->Sumw2();
0360 }
0361
0362 ratio_truth->Divide(lambda_truth,ks_truth,1.,2.);
0363 ratio_truth_pos->Divide(lambda_truth_pos,ks_truth);
0364 ratio_truth_neg->Divide(lambda_truth_neg,ks_truth);
0365
0366 std::string reco_uncorrected_name = "lambdaKsratio_vs"+vname;
0367 std::string reco_corrected_name = "lambdaKsratio_vs"+vname+"_lambdafeeddowncorrected_effcorrected_geoacceptancecorrected_cutefficiencycorrected";
0368
0369 TH1F* ratio_reco_inc = (TH1F*)freco->Get(reco_uncorrected_name.c_str());
0370 TH1F* ratio_reco_pos = (TH1F*)freco_pos->Get(reco_uncorrected_name.c_str());
0371 TH1F* ratio_reco_neg = (TH1F*)freco_neg->Get(reco_uncorrected_name.c_str());
0372 TH1F* ratio_reco_corr_inc = (TH1F*)freco->Get(reco_corrected_name.c_str());
0373 TH1F* ratio_reco_corr_pos = (TH1F*)freco_pos->Get(reco_corrected_name.c_str());
0374 TH1F* ratio_reco_corr_neg = (TH1F*)freco_neg->Get(reco_corrected_name.c_str());
0375
0376
0377
0378
0379
0380
0381
0382
0383
0384 double lambda_BR = 0.638719992;
0385 double Ks_BR = 0.691086452;
0386
0387 for(TH1F* h : {ratio_reco_inc, ratio_reco_pos, ratio_reco_neg, ratio_reco_corr_inc, ratio_reco_corr_pos, ratio_reco_corr_neg})
0388
0389 {
0390 h->Scale(Ks_BR/lambda_BR);
0391 }
0392
0393 plot_ratio(ratio_truth,ratio_truth_pos,ratio_truth_neg,"Ratio comparison vs. "+vtitle+" from truth","plots/ratios/ratio_truth_vs"+vname+".png",0.55,0.15);
0394 plot_ratio(ratio_reco_inc,ratio_reco_pos,ratio_reco_neg,"Ratio comparison vs. "+vtitle+" (uncorrected) from reco","plots/ratios/ratio_reco_vs"+vname+".png",0.15,0.75);
0395 plot_ratio(ratio_reco_corr_inc,ratio_reco_corr_pos,ratio_reco_corr_neg,"Ratio comparison vs. "+vtitle+" (fully corrected) from reco","plots/ratios/ratio_reco_corr_vs"+vname+".png",0.65,0.77);
0396
0397
0398
0399
0400 plot_truth_vsreco(ratio_truth,ratio_reco_corr_inc,"(#Lambda+#bar{#Lambda})/2K_{S}^{0} ratio","plots/closure/closure_ratio_vs"+vname+".png",0.55,0.15);
0401 plot_truth_vsreco(ratio_truth_pos,ratio_reco_corr_pos,"#Lambda/K_{S}^{0} ratio","plots/closure/closure_ratio_pos_vs"+vname+".png",0.55,0.15);
0402 plot_truth_vsreco(ratio_truth_neg,ratio_reco_corr_neg,"#bar{#Lambda}/K_{S}^{0} ratio","plots/closure/closure_ratio_neg_vs"+vname+".png",0.55,0.15);
0403
0404
0405 TH1F* lambda_geo_acceptance = (TH1F*)fgeo_corr->Get(("Lambda0_acceptance_vs"+vname).c_str());
0406 TH1F* lambda_geo_acceptance_pos = (TH1F*)fgeo_corr_pos->Get(("Lambda0_acceptance_vs"+vname).c_str());
0407 TH1F* lambda_geo_acceptance_neg = (TH1F*)fgeo_corr_neg->Get(("Lambda0_acceptance_vs"+vname).c_str());
0408
0409 plot_correction(lambda_geo_acceptance,"(#Lambda+#bar{#Lambda}) geometric acceptance","plots/corrections/lambda_geo_acceptance_vs"+vname+".png");
0410 plot_correction(lambda_geo_acceptance_pos,"#Lambda geometric acceptance","plots/corrections/lambda_pos_geo_acceptance_vs"+vname+".png");
0411 plot_correction(lambda_geo_acceptance_neg,"#bar{#Lambda} geometric acceptance","plots/corrections/lambda_neg_geo_acceptance_vs"+vname+".png");
0412
0413 TH1F* lambda_cut_efficiency = (TH1F*)fcut_corr->Get(("Lambda0_cuteff_vs"+vname).c_str());
0414 TH1F* lambda_cut_efficiency_pos = (TH1F*)fcut_corr_pos->Get(("Lambda0_cuteff_vs"+vname).c_str());
0415 TH1F* lambda_cut_efficiency_neg = (TH1F*)fcut_corr_neg->Get(("Lambda0_cuteff_vs"+vname).c_str());
0416
0417 plot_correction(lambda_cut_efficiency,"(#Lambda+#bar{#Lambda}) cut efficiency","plots/corrections/lambda_cut_efficiency_vs"+vname+".png");
0418 plot_correction(lambda_cut_efficiency_pos,"#Lambda cut efficiency","plots/corrections/lambda_pos_cut_efficiency_vs"+vname+".png");
0419 plot_correction(lambda_cut_efficiency_neg,"#bar{#Lambda} cut efficiency","plots/corrections/lambda_neg_cut_efficiency_vs"+vname+".png");
0420
0421 TH1F* lambda_reco_inc = (TH1F*)freco->Get(("Lambda0_yield_vs"+vname).c_str());
0422 TH1F* lambda_reco_pos = (TH1F*)freco_pos->Get(("Lambda0_yield_vs"+vname).c_str());
0423 TH1F* lambda_reco_neg = (TH1F*)freco_neg->Get(("Lambda0_yield_vs"+vname).c_str());
0424
0425 lambda_truth->Scale(1.,"width");
0426 lambda_truth_pos->Scale(1.,"width");
0427 lambda_truth_neg->Scale(1.,"width");
0428 lambda_reco_inc->Scale(1.,"width");
0429 lambda_reco_pos->Scale(1.,"width");
0430 lambda_reco_neg->Scale(1.,"width");
0431
0432 TH1F* Kshort_geo_acceptance = (TH1F*)fgeo_corr->Get(("K_S0_acceptance_vs"+vname).c_str());
0433
0434 TH1F* Kshort_cut_efficiency = (TH1F*)fcut_corr->Get(("K_S0_cuteff_vs"+vname).c_str());
0435
0436 plot_correction(Kshort_geo_acceptance,"K_{S}^{0} geometric acceptance","plots/corrections/ks_geo_acceptance_vs"+vname+".png");
0437 plot_correction(Kshort_cut_efficiency,"K_{S}^{0} cut efficiency","plots/corrections/ks_cut_efficiency_vs"+vname+".png");
0438
0439 TH1F* geoacc_corr = (TH1F*)fgeo_corr->Get(("Lambda0_over_K_S0_geo_acceptance_correction_vs"+vname).c_str());
0440 TH1F* geoacc_corr_pos = (TH1F*)fgeo_corr_pos->Get(("Lambda0_over_K_S0_geo_acceptance_correction_vs"+vname).c_str());
0441 TH1F* geoacc_corr_neg = (TH1F*)fgeo_corr_neg->Get(("Lambda0_over_K_S0_geo_acceptance_correction_vs"+vname).c_str());
0442 TH1F* cuteff_corr = (TH1F*)fcut_corr->Get(("Lambda0_over_K_S0_cuteff_correction_vs"+vname).c_str());
0443 TH1F* cuteff_corr_pos = (TH1F*)fcut_corr->Get(("Lambda0_over_K_S0_cuteff_correction_vs"+vname).c_str());
0444 TH1F* cuteff_corr_neg = (TH1F*)fcut_corr->Get(("Lambda0_over_K_S0_cuteff_correction_vs"+vname).c_str());
0445
0446 plot_correction(geoacc_corr,"(#Lambda+#bar{#Lambda})/2K_{S}^{0} geometric acceptance correction","plots/corrections/ratio_geo_acceptance_vs"+vname+".png");
0447 plot_correction(geoacc_corr_pos,"#Lambda/K_{S}^{0} geometric acceptance correction","plots/corrections/ratio_geo_acceptance_pos_vs"+vname+".png");
0448 plot_correction(geoacc_corr_neg,"#bar{#Lambda}/K_{S}^{0} geometric acceptance correction","plots/corrections/ratio_geoacceptance_neg_vs"+vname+".png");
0449 plot_correction(cuteff_corr,"(#Lambda+#bar{#Lambda})/2K_{S}^{0} cut efficiency correction","plots/corrections/ratio_cuteff_vs"+vname+".png");
0450 plot_correction(cuteff_corr_pos,"#Lambda/K_{S}^{0} cut efficiency correction","plots/corrections/ratio_cuteff_pos_vs"+vname+".png");
0451 plot_correction(cuteff_corr_neg,"#bar{#Lambda}/K_{S}^{0} cut efficiency correction","plots/corrections/ratio_cuteff_neg_vs"+vname+".png");
0452
0453 TH1F* Kshort_reco_inc = (TH1F*)freco->Get(("K_S0_yield_vs"+vname).c_str());
0454
0455 Kshort_reco_inc->Scale(1.,"width");
0456 ks_truth->Scale(1.,"width");
0457
0458 Kshort_reco_inc->Scale(1./Ks_BR);
0459 lambda_reco_inc->Scale(1./lambda_BR);
0460 lambda_reco_pos->Scale(1./lambda_BR);
0461 lambda_reco_neg->Scale(1./lambda_BR);
0462
0463 plot_correction_sequence(lambda_truth,lambda_reco_inc,lambda_geo_acceptance,lambda_cut_efficiency,"(#Lambda+#bar{#Lambda}) yield","plots/closure/closure_lambda_corrections_vs"+vname+".png",0.55,0.15);
0464 plot_correction_sequence(lambda_truth_pos,lambda_reco_pos,lambda_geo_acceptance_pos,lambda_cut_efficiency_pos,"#Lambda yield","plots/closure/closure_lambda_pos_corrections_vs"+vname+".png",0.55,0.15);
0465 plot_correction_sequence(lambda_truth_neg,lambda_reco_neg,lambda_geo_acceptance_neg,lambda_cut_efficiency_neg,"#bar{#Lambda} yield","plots/closure/closure_lambda_neg_corrections_vs"+vname+".png",0.55,0.15);
0466 plot_correction_sequence(ks_truth,Kshort_reco_inc,Kshort_geo_acceptance,Kshort_cut_efficiency,"K_{S}^{0} yield","plots/closure/closure_kshort_corrections_vs"+vname+".png",0.55,0.15);
0467
0468 plot_inverse_correction_sequence(lambda_truth,lambda_reco_inc,lambda_geo_acceptance,lambda_cut_efficiency,"(#Lambda+#bar{#Lambda}) yield","plots/closure/inverse_closure_lambda_corrections_vs"+vname+".png",0.45,0.2);
0469 plot_inverse_correction_sequence(lambda_truth_pos,lambda_reco_pos,lambda_geo_acceptance_pos,lambda_cut_efficiency_pos,"#Lambda yield","plots/closure/inverse_closure_lambda_pos_corrections_vs"+vname+".png",0.45,0.2);
0470 plot_inverse_correction_sequence(lambda_truth_neg,lambda_reco_neg,lambda_geo_acceptance_neg,lambda_cut_efficiency_neg,"#bar{#Lambda} yield","plots/closure/inverse_closure_lambda_neg_corrections_vs"+vname+".png",0.45,0.2);
0471 plot_inverse_correction_sequence(ks_truth,Kshort_reco_inc,Kshort_geo_acceptance,Kshort_cut_efficiency,"K_{S}^{0} yield","plots/closure/inverse_closure_kshort_corrections_vs"+vname+".png",0.45,0.2);
0472 }
0473
0474
0475
0476
0477
0478
0479
0480
0481
0482
0483
0484
0485
0486
0487
0488
0489
0490
0491
0492
0493
0494
0495
0496
0497
0498
0499
0500
0501
0502
0503
0504
0505
0506
0507
0508
0509
0510
0511
0512
0513
0514
0515
0516
0517
0518
0519 }