File indexing completed on 2026-04-06 08:10:20
0001 #include "TFile.h"
0002 #include "TH1F.h"
0003
0004
0005
0006
0007 #include "../util/DifferentialContainer.h"
0008 #include "../util/binning.h"
0009
0010 std::vector<RooPlot*> get_all_bins(TFile* f, const std::string& particle, const HistogramInfo& var)
0011 {
0012
0013
0014
0015 std::vector<RooPlot*> plot_dist;
0016
0017 int nbins = var.bins.size()-1;
0018 for(int i=1; i<=nbins; i++)
0019 {
0020 std::string name = particle+"_yield_vs"+var.name+"_"+std::to_string(i);
0021 std::cout << name << std::endl;
0022 RooPlot* dist = (RooPlot*)f->Get(name.c_str());
0023 plot_dist.push_back(dist);
0024 }
0025 std::cout << "final size: " << plot_dist.size() << std::endl;
0026 return plot_dist;
0027 }
0028
0029 std::vector<std::vector<RooPlot*>> get_all_fits_all_variables(TFile* f, std::string particle, std::vector<HistogramInfo> hinfos)
0030 {
0031 std::vector<std::vector<RooPlot*>> all_fits;
0032 for(HistogramInfo& hinfo : hinfos)
0033 {
0034 all_fits.push_back(get_all_bins(f,particle,hinfo));
0035 }
0036 return all_fits;
0037 }
0038
0039 void plot_results()
0040 {
0041 gStyle->SetOptStat(0);
0042 gStyle->SetImageScaling(2.);
0043
0044
0045 bool finalize = true;
0046
0047 std::string outdir;
0048 if(finalize) outdir = "/sphenix/tg/tg01/hf/mjpeters/LightFlavorResults/plots";
0049 else outdir = "plots";
0050
0051 TFile* f = TFile::Open("fits.root");
0052
0053 std::vector<HistogramInfo> variables =
0054 {
0055 BinInfo::final_pt_bins,
0056 BinInfo::final_eta_bins,
0057 BinInfo::final_rapidity_bins,
0058 BinInfo::final_phi_bins
0059 };
0060
0061 std::vector<std::vector<RooPlot*>> Ks_fits = get_all_fits_all_variables(f,"Ks",variables);
0062 std::vector<std::vector<RooPlot*>> lambda_fits = get_all_fits_all_variables(f,"Lambda",variables);
0063
0064 for(int i=0; i<variables.size(); i++)
0065 {
0066
0067 int nbins = variables[i].bins.size()-1;
0068 std::cout << "nbins " << nbins << std::endl;
0069 int npix_x = 3600;
0070 int npix_y = 1800;
0071 TCanvas* c = new TCanvas("c","c",npix_x,npix_y);
0072 c->Divide(nbins/3+1,3);
0073 for(int bin=1; bin<=nbins; bin++)
0074 {
0075 c->cd(bin);
0076 std::cout << i << " " << bin << std::endl;
0077 Ks_fits[i][bin-1]->Draw();
0078 }
0079 std::string Ks_filename_pdf = outdir+"/pdf/Ks_fits_vs"+variables[i].name+".pdf";
0080 std::string Ks_filename = outdir+"/png/Ks_fits_vs"+variables[i].name+".png";
0081 c->SaveAs(Ks_filename.c_str());
0082 c->SaveAs(Ks_filename_pdf.c_str());
0083 c->Close();
0084
0085 TCanvas* c1 = new TCanvas("c1","c1",npix_x,npix_y);
0086 c1->Divide(nbins/3+1,3);
0087
0088
0089
0090
0091
0092
0093
0094 for(int bin=1; bin<=nbins; bin++)
0095 {
0096 c1->cd(bin);
0097 lambda_fits[i][bin-1]->Draw();
0098 }
0099 std::string lambda_filename_pdf = outdir+"/pdf/lambda_fits_vs"+variables[i].name+".pdf";
0100 std::string lambda_filename = outdir+"/png/lambda_fits_vs"+variables[i].name+".png";
0101 c1->SaveAs(lambda_filename.c_str());
0102 c1->SaveAs(lambda_filename_pdf.c_str());
0103 }
0104
0105 TCanvas* c = new TCanvas("singleplots","single plots",800,800);
0106 c->SetLeftMargin(0.15);
0107 c->SetRightMargin(0.05);
0108 std::vector<TH1F*> single_plots =
0109 {
0110 (TH1F*)f->Get("lambdaKsratio_vspT"),
0111 (TH1F*)f->Get("lambdaKsratio_vspseudorapidity"),
0112 (TH1F*)f->Get("lambdaKsratio_vsphi"),
0113 (TH1F*)f->Get("lambdaKsratio_vsrapidity"),
0114 (TH1F*)f->Get("Ks_yield_vspT"),
0115 (TH1F*)f->Get("Ks_yield_vspseudorapidity"),
0116 (TH1F*)f->Get("Ks_yield_vsphi"),
0117 (TH1F*)f->Get("Ks_yield_vsrapidity"),
0118 (TH1F*)f->Get("Lambda_yield_vspT"),
0119 (TH1F*)f->Get("Lambda_yield_vspseudorapidity"),
0120 (TH1F*)f->Get("Lambda_yield_vsphi"),
0121 (TH1F*)f->Get("Lambda_yield_vsrapidity"),
0122 };
0123
0124 for(TH1F* h : single_plots)
0125 {
0126 h->SetMarkerColor(kBlack);
0127 h->SetLineColor(kBlack);
0128 h->SetMarkerStyle(kFullCircle);
0129 h->SetMarkerSize(0.7);
0130 h->SetMinimum(0.);
0131
0132 h->Draw();
0133
0134 TLatex latex;
0135 latex.SetNDC();
0136 latex.SetTextSize(0.04);
0137 latex.SetTextAlign(13);
0138 latex.DrawLatex(0.68, 0.93, "#it{#bf{sPHENIX}} internal");
0139 latex.DrawLatex(0.68, 0.90, "#it{p+p} #sqrt{200} GeV");
0140
0141 std::string filename_pdf = outdir+"/pdf/"+std::string(h->GetName())+".pdf";
0142 std::string filename_png = outdir+"/png/"+std::string(h->GetName())+".png";
0143 c->SaveAs(filename_pdf.c_str());
0144 c->SaveAs(filename_png.c_str());
0145 }
0146 }