Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:11:17

0001 #include "./util_combine.h"
0002 
0003 bool verbose = true;
0004 
0005 bool docombine = true;
0006 std::string comb_fname = "./systematics/combined/combined.root";
0007 std::vector<TGraphAsymmErrors *> v_sphenix_dNdeta;
0008 std::string color_sphenix_combine = "#1A1423";
0009 std::string leg_sphenix_combine = "sPHENIX (Combined)";
0010 int mkstyle_sphenix_combine = 20;
0011 float mksize_sphenix_combine = 1.3;
0012 
0013 std::vector<float> v_sphenix_centralitybin = {0, 3, 6, 10, 15, 20, 25, 30, 35, 40, 45, 50};
0014 int nsphenix = v_sphenix_centralitybin.size() - 1;
0015 std::vector<TH1 *> v_sphenix_dNdeta_cmsapproach_hist;
0016 std::vector<TGraphAsymmErrors *> v_SPHENIX_dNdeta_cmsapproach;
0017 std::vector<std::string> v_SPHENIX_labels = {};
0018 std::string color_sphenix_cmsapproach = "#FF6700";
0019 std::string leg_sphenix_cmsapproach = "The closest-match method";
0020 int mkstyle_sphenix_cmsapproach = 34;
0021 float mksize_sphenix_cmsapproach = 1.3;
0022 
0023 std::vector<TH1 *> v_sphenix_dNdeta_phobosapproach_hist;
0024 std::vector<TGraphAsymmErrors *> v_SPHENIX_dNdeta_phobosapproach;
0025 std::string color_sphenix_phobosapproach = "#228B22";
0026 std::string leg_sphenix_phobosapproach = "The combinatoric method";
0027 int mkstyle_sphenix_phobosapproach = 47;
0028 float mksize_sphenix_phobosapproach = 1.3;
0029 
0030 bool draw_brahms = false;
0031 std::vector<float> v_brahms_centralitybin = {0, 5, 10, 20, 30, 40, 50};
0032 int nbrahms = v_brahms_centralitybin.size() - 1;
0033 std::vector<TGraphAsymmErrors *> v_BRAHMS_dNdeta;
0034 std::vector<std::string> v_BRAHMS_labels = {};
0035 std::string color_brahms = "#7868E6";
0036 std::string leg_brahms = "#splitline{BRAHMS}{[Phys. Rev. Lett. 88, 202301 (2002)]}";
0037 int mkstyle_brahms = 28;
0038 
0039 bool draw_phobos = docombine;
0040 std::vector<float> v_phobos_centralitybin = {0, 3, 6, 10, 15, 20, 25, 30, 35, 40, 45, 50};
0041 int nphobos = v_phobos_centralitybin.size() - 1;
0042 std::vector<TGraphAsymmErrors *> v_PHOBOS_dNdeta;
0043 std::vector<std::string> v_PHOBOS_labels = {};
0044 std::string color_phobos = "#035397";
0045 std::string leg_phobos = "#splitline{PHOBOS}{[Phys. Rev. C 83, 024913 (2011)]}";
0046 int mkstyle_phobos = 25;
0047 float mksize_phobos = 1.3;
0048 
0049 float absxlim = (draw_phobos) ? 1.99 : 1.59;
0050 std::string prelimtext = "Internal";
0051 
0052 float LeftMargin = 0.17;
0053 float RightMargin = 0.03;
0054 float TopMargin = 0.08;
0055 float BottomMargin = 0.15;
0056 float ymax_pad1 = (!docombine) ? 1080 : 1030;
0057 float ymin_pad1 = (!docombine) ? 610 : 560;
0058 float ymax_pad2 = (!docombine) ? 760 : 760;
0059 float ymin_pad2 = (!docombine) ? 540 : 510;
0060 float ymax_pad3 = (!docombine) ? 640 : 640;
0061 float ymin_pad3 = (!docombine) ? 480 : 460;
0062 float ymax_pad4 = (!docombine) ? 540 : 540;
0063 float ymin_pad4 = (!docombine) ? 401 : 385;
0064 float ymax_pad5 = (!docombine) ? 449 : 449;
0065 float ymin_pad5 = (!docombine) ? 55 : 55;
0066 float axis_title_size = 0.05;
0067 float axis_label_size = 0.05;
0068 float leg_textsize = 0.04;
0069 float centlabel_textsize = 0.025;
0070 float xticklength = 0.06;
0071 float yticklength = 0.03;
0072 float pad1_legtextscale = (!docombine) ? 3 : 2.7;
0073 float pad1_labeltextscale = 2.7;
0074 float pad1_tickscale = 1.7;
0075 float pad2_labeltextscale = 5.2;
0076 float pad2_tickscale = 1.9;
0077 float pad3_labeltextscale = pad2_labeltextscale;
0078 float pad3_tickscale = pad2_tickscale;
0079 float pad4_labeltextscale = pad2_labeltextscale;
0080 float pad4_tickscale = pad2_tickscale;
0081 float pad5_labeltextscale = 1.05;
0082 float pad5_tickscale = 1.8;
0083 
0084 void BRAHMS_dNdeta()
0085 {
0086     // load BRAHMS Hepdata
0087     TFile *f = new TFile("./measurements/HEPData/HEPData-ins567754-v1-root.root", "READ");
0088     f->cd("Table 1a");
0089     for (int i = 0; i < nbrahms; i++)
0090     {
0091         TGraphAsymmErrors *g = (TGraphAsymmErrors *)gDirectory->Get(Form("Graph1D_y%d", i + 1));
0092         v_BRAHMS_dNdeta.push_back(g);
0093         v_BRAHMS_labels.push_back(Form("%d-%d%%", (int)v_brahms_centralitybin[i], (int)v_brahms_centralitybin[i + 1]));
0094     }
0095     f->Close();
0096 }
0097 
0098 void PHOBOS_dNdeta()
0099 {
0100     // load PHOBOS measurements
0101     TFile *f = new TFile("./measurements/PHOBOS-PhysRevC.83.024913/auau_200GeV.root", "READ");
0102     f->cd();
0103     for (int i = 0; i < nphobos; i++)
0104     {
0105         TGraphAsymmErrors *g = (TGraphAsymmErrors *)gDirectory->Get(Form("AuAu_200GeV_Centrality_%dto%d", (int)v_phobos_centralitybin[i], (int)v_phobos_centralitybin[i + 1]));
0106         v_PHOBOS_dNdeta.push_back(g);
0107         v_PHOBOS_labels.push_back(Form("%d-%d%%", (int)v_phobos_centralitybin[i], (int)v_phobos_centralitybin[i + 1]));
0108     }
0109     f->Close();
0110 }
0111 
0112 TGraphAsymmErrors *TH1toTGraphAsymmErrors(TH1 *h)
0113 {
0114     int Nbins = h->GetNbinsX();
0115 
0116     std::vector<float> vx, vy, vxerr, vyerr;
0117     vx.clear();
0118     vy.clear();
0119     vxerr.clear();
0120     vyerr.clear();
0121     for (int i = 1; i <= Nbins; i++)
0122     {
0123         if (h->GetBinContent(i) <= 0)
0124             continue;
0125 
0126         if (fabs(h->GetBinCenter(i)) >= 1.1)
0127             continue;
0128 
0129         vx.push_back(h->GetBinCenter(i));
0130         vy.push_back(h->GetBinContent(i));
0131         vxerr.push_back(h->GetBinWidth(i) * 0.49);
0132         vyerr.push_back(h->GetBinError(i));
0133     }
0134 
0135     TGraphAsymmErrors *g = new TGraphAsymmErrors(vx.size(), vx.data(), vy.data(), vxerr.data(), vxerr.data(), vyerr.data(), vyerr.data());
0136     return g;
0137 }
0138 
0139 void SPHENIX_dNdeta()
0140 {
0141     TFile *f_comb = new TFile(comb_fname.c_str(), "READ");
0142 
0143     for (int i = 0; i < nsphenix; i++)
0144     {
0145         int Mbin = GetMbinNum(Form("Centrality%dto%d", (int)v_sphenix_centralitybin[i], (int)v_sphenix_centralitybin[i + 1]));
0146 
0147         // CMS-inspired approach
0148         TFile *f = new TFile(Form("./systematics/Centrality%dto%d_Zvtxm10p0to10p0_noasel/finalhists_systematics_Centrality%dto%d_Zvtxm10p0to10p0_noasel.root", (int)v_sphenix_centralitybin[i], (int)v_sphenix_centralitybin[i + 1], (int)v_sphenix_centralitybin[i], (int)v_sphenix_centralitybin[i + 1]), "READ");
0149         TH1D *h = (TH1D *)f->Get("hM_final");
0150         h->SetDirectory(0);
0151         v_sphenix_dNdeta_cmsapproach_hist.push_back(h);
0152         TGraphAsymmErrors *g_cms = TH1toTGraphAsymmErrors(h);
0153         v_SPHENIX_dNdeta_cmsapproach.push_back(g_cms);
0154         v_SPHENIX_labels.push_back(Form("%d-%d%%", (int)v_sphenix_centralitybin[i], (int)v_sphenix_centralitybin[i + 1]));
0155         f->Close();
0156 
0157         // PHOBOS-inspired approach
0158         TFile *fphobos = new TFile(Form("/sphenix/user/ChengWei/sPH_dNdeta/Run24AuAuMC/Sim_HIJING_MDC2_ana472_20250307/Run7/EvtVtxZ/FinalResult_10cm_Pol2BkgFit_DeltaPhi0p026/completed/vtxZ_-10_10cm_MBin%d/Final_Mbin%d_00054280/Final_Mbin%d_00054280.root", Mbin, Mbin, Mbin), "READ");
0159         TH1D *hphobos = (TH1D *)fphobos->Get("h1D_dNdEta_reco");
0160         hphobos->SetDirectory(0);
0161         v_sphenix_dNdeta_phobosapproach_hist.push_back(hphobos);
0162         TGraphAsymmErrors *g_phobos = TH1toTGraphAsymmErrors(hphobos);
0163         v_SPHENIX_dNdeta_phobosapproach.push_back(g_phobos);
0164         fphobos->Close();
0165 
0166         // combined measurement
0167         TFile *f_comb = new TFile(comb_fname.c_str(), "READ");
0168         TGraphAsymmErrors *g = (TGraphAsymmErrors *)f_comb->Get(Form("tgae_combine_Centrality%dto%d", (int)v_sphenix_centralitybin[i], (int)v_sphenix_centralitybin[i + 1]));
0169         v_sphenix_dNdeta.push_back(g);
0170         f_comb->Close();
0171     }
0172 }
0173 
0174 void draw_dNdetaRHIC_v2()
0175 {
0176     std::string plotdir = "./dNdEtaFinal";
0177     system(Form("mkdir -p %s", plotdir.c_str()));
0178 
0179     SPHENIX_dNdeta();
0180 
0181     if (draw_phobos)
0182         PHOBOS_dNdeta();
0183 
0184     for (int i = 0; i < nsphenix; i++)
0185     {
0186         v_SPHENIX_dNdeta_cmsapproach[i]->SetMarkerStyle(mkstyle_sphenix_cmsapproach);
0187         v_SPHENIX_dNdeta_cmsapproach[i]->SetMarkerSize(mksize_sphenix_cmsapproach);
0188         v_SPHENIX_dNdeta_cmsapproach[i]->SetLineColor(TColor::GetColor(color_sphenix_cmsapproach.c_str()));
0189         v_SPHENIX_dNdeta_cmsapproach[i]->SetLineWidth(1);
0190         v_SPHENIX_dNdeta_cmsapproach[i]->SetMarkerColor(TColor::GetColor(color_sphenix_cmsapproach.c_str()));
0191         v_SPHENIX_dNdeta_cmsapproach[i]->SetFillColorAlpha(TColor::GetColor(color_sphenix_cmsapproach.c_str()), 0.2);
0192 
0193         v_SPHENIX_dNdeta_phobosapproach[i]->SetMarkerStyle(mkstyle_sphenix_phobosapproach);
0194         v_SPHENIX_dNdeta_phobosapproach[i]->SetMarkerSize(mksize_sphenix_phobosapproach);
0195         v_SPHENIX_dNdeta_phobosapproach[i]->SetLineColor(TColor::GetColor(color_sphenix_phobosapproach.c_str()));
0196         v_SPHENIX_dNdeta_phobosapproach[i]->SetLineWidth(1);
0197         v_SPHENIX_dNdeta_phobosapproach[i]->SetMarkerColor(TColor::GetColor(color_sphenix_phobosapproach.c_str()));
0198         v_SPHENIX_dNdeta_phobosapproach[i]->SetFillColorAlpha(TColor::GetColor(color_sphenix_phobosapproach.c_str()), 0.2);
0199 
0200         v_sphenix_dNdeta[i]->SetMarkerStyle(mkstyle_sphenix_combine);
0201         v_sphenix_dNdeta[i]->SetMarkerSize(mksize_sphenix_combine);
0202         v_sphenix_dNdeta[i]->SetLineColor(TColor::GetColor(color_sphenix_combine.c_str()));
0203         v_sphenix_dNdeta[i]->SetLineWidth(1);
0204         v_sphenix_dNdeta[i]->SetMarkerColor(TColor::GetColor(color_sphenix_combine.c_str()));
0205         v_sphenix_dNdeta[i]->SetFillColorAlpha(TColor::GetColor(color_sphenix_combine.c_str()), 0.2);
0206 
0207         // print the points and errors for debugging
0208         if (verbose)
0209         {
0210             cout << "Centrality: " << v_SPHENIX_labels[i] << endl;
0211             for (int j = 0; j < v_SPHENIX_dNdeta_cmsapproach[i]->GetN(); j++)
0212             {
0213                 double x, y, xerrl, xerru, yerrl, yerru;
0214                 v_SPHENIX_dNdeta_cmsapproach[i]->GetPoint(j, x, y);
0215                 xerrl = v_SPHENIX_dNdeta_cmsapproach[i]->GetErrorXlow(j);
0216                 xerru = v_SPHENIX_dNdeta_cmsapproach[i]->GetErrorXhigh(j);
0217                 yerrl = v_SPHENIX_dNdeta_cmsapproach[i]->GetErrorYlow(j);
0218                 yerru = v_SPHENIX_dNdeta_cmsapproach[i]->GetErrorYhigh(j);
0219                 cout << "CMS approach: " << x << " " << y << " " << xerrl << " " << xerru << " " << yerrl << " " << yerru << endl;
0220             }
0221             for (int j = 0; j < v_SPHENIX_dNdeta_phobosapproach[i]->GetN(); j++)
0222             {
0223                 double x, y, xerrl, xerru, yerrl, yerru;
0224                 v_SPHENIX_dNdeta_phobosapproach[i]->GetPoint(j, x, y);
0225                 xerrl = v_SPHENIX_dNdeta_phobosapproach[i]->GetErrorXlow(j);
0226                 xerru = v_SPHENIX_dNdeta_phobosapproach[i]->GetErrorXhigh(j);
0227                 yerrl = v_SPHENIX_dNdeta_phobosapproach[i]->GetErrorYlow(j);
0228                 yerru = v_SPHENIX_dNdeta_phobosapproach[i]->GetErrorYhigh(j);
0229                 cout << "PHOBOS approach: " << x << " " << y << " " << xerrl << " " << xerru << " " << yerrl << " " << yerru << endl;
0230             }
0231         }
0232     }
0233 
0234     if (draw_phobos)
0235     {
0236         for (int i = 0; i < nphobos; i++)
0237         {
0238             v_PHOBOS_dNdeta[i]->SetMarkerStyle(mkstyle_phobos);
0239             v_PHOBOS_dNdeta[i]->SetMarkerSize(mksize_phobos);
0240             v_PHOBOS_dNdeta[i]->SetLineColor(TColor::GetColor(color_phobos.c_str()));
0241             v_PHOBOS_dNdeta[i]->SetLineWidth(1);
0242             v_PHOBOS_dNdeta[i]->SetMarkerColor(TColor::GetColor(color_phobos.c_str()));
0243             v_PHOBOS_dNdeta[i]->SetFillColorAlpha(TColor::GetColor(color_phobos.c_str()), 0.15);
0244             // mg_phobos->Add(v_PHOBOS_dNdeta[i], "3 p");
0245         }
0246     }
0247 
0248     TCanvas *c = new TCanvas("c", "c", 800, 1200);
0249     TPad *pad1 = new TPad("pad1", "pad1", 0, 0.8, 1, 1);
0250     TPad *pad2 = new TPad("pad2", "pad2", 0, 0.7, 1, 0.8);
0251     TPad *pad3 = new TPad("pad3", "pad3", 0, 0.6, 1, 0.7);
0252     TPad *pad4 = new TPad("pad4", "pad4", 0, 0.5, 1, 0.6);
0253     TPad *pad5 = new TPad("pad5", "pad5", 0, 0.0, 1, 0.5);
0254     pad1->SetTopMargin(TopMargin);
0255     pad1->SetBottomMargin(0);
0256     pad1->SetLeftMargin(LeftMargin);
0257     pad1->SetRightMargin(RightMargin);
0258     pad2->SetTopMargin(0);
0259     pad2->SetBottomMargin(0);
0260     pad2->SetLeftMargin(LeftMargin);
0261     pad2->SetRightMargin(RightMargin);
0262     pad3->SetTopMargin(0);
0263     pad3->SetBottomMargin(0);
0264     pad3->SetLeftMargin(LeftMargin);
0265     pad3->SetRightMargin(RightMargin);
0266     pad4->SetTopMargin(0);
0267     pad4->SetBottomMargin(0);
0268     pad4->SetLeftMargin(LeftMargin);
0269     pad4->SetRightMargin(RightMargin);
0270     pad5->SetTopMargin(0);
0271     pad5->SetBottomMargin(BottomMargin);
0272     pad5->SetLeftMargin(LeftMargin);
0273     pad5->SetRightMargin(RightMargin);
0274     pad1->Draw();
0275     pad2->Draw();
0276     pad3->Draw();
0277     pad4->Draw();
0278     pad5->Draw();
0279     pad1->cd();
0280     // Legend
0281     TLegend *leg = new TLegend(pad1->GetLeftMargin() + 0.02,                                                     //
0282                                (!docombine) ? 1 - pad1->GetTopMargin() - 0.38 : 1 - pad1->GetTopMargin() - 0.43, //
0283                                (!docombine) ? pad1->GetLeftMargin() + 0.35 : pad1->GetLeftMargin() + 0.25,       //
0284                                (!docombine) ? 1 - pad1->GetTopMargin() - 0.10 : 1 - pad1->GetTopMargin() - 0.05  //
0285     );
0286     leg->SetLineStyle(1);
0287     leg->SetLineWidth(1);
0288     leg->SetLineColor(1);
0289     leg->SetTextAlign(kHAlignLeft + kVAlignCenter);
0290     leg->SetTextSize((leg_textsize - 0.01) * pad1_legtextscale);
0291     leg->SetBorderSize(0);
0292     leg->SetFillStyle(0);
0293     if (draw_phobos) // will always draw combined sPHENIX
0294     {
0295         v_PHOBOS_dNdeta[0]->SetMaximum(ymax_pad1);
0296         v_PHOBOS_dNdeta[0]->SetMinimum(ymin_pad1);
0297         v_PHOBOS_dNdeta[0]->GetYaxis()->SetNdivisions(4, 2, 0);
0298         v_PHOBOS_dNdeta[0]->GetXaxis()->SetLimits(-absxlim, absxlim);
0299         v_PHOBOS_dNdeta[0]->GetXaxis()->SetNdivisions(505);
0300 
0301         v_PHOBOS_dNdeta[0]->GetYaxis()->SetTitle("dN_{ch}/d#eta");
0302         v_PHOBOS_dNdeta[0]->GetYaxis()->CenterTitle(true);
0303         v_PHOBOS_dNdeta[0]->GetYaxis()->SetTitleOffset(0.55);
0304         v_PHOBOS_dNdeta[0]->GetYaxis()->SetTitleSize(axis_title_size * 3);
0305         v_PHOBOS_dNdeta[0]->GetYaxis()->SetLabelSize(axis_label_size * pad1_labeltextscale);
0306         v_PHOBOS_dNdeta[0]->GetYaxis()->SetTickLength(yticklength / pad1_tickscale);
0307         v_PHOBOS_dNdeta[0]->GetXaxis()->SetTickLength(xticklength / pad1_tickscale * 0.9);
0308 
0309         v_PHOBOS_dNdeta[0]->Draw("A 3 P");
0310 
0311         v_sphenix_dNdeta[0]->Draw("5 P same");
0312 
0313         leg->AddEntry(v_sphenix_dNdeta[0], leg_sphenix_combine.c_str(), "pf");
0314         leg->AddEntry(v_PHOBOS_dNdeta[0], leg_phobos.c_str(), "pf");
0315 
0316         double x, y;
0317         x = v_sphenix_dNdeta[0]->GetPointX(v_sphenix_dNdeta[0]->GetN() - 1) + v_sphenix_dNdeta[0]->GetErrorXhigh(v_sphenix_dNdeta[0]->GetN() - 1);
0318         y = v_sphenix_dNdeta[0]->GetPointY(v_sphenix_dNdeta[0]->GetN() - 1) + v_sphenix_dNdeta[0]->GetErrorYhigh(v_sphenix_dNdeta[0]->GetN() - 1);
0319         // print out the first point for debugging
0320         cout << v_sphenix_dNdeta[0]->GetPointX(0) << " " << v_sphenix_dNdeta[0]->GetPointY(0) << " " << v_sphenix_dNdeta[0]->GetErrorYlow(0) << " " << v_sphenix_dNdeta[0]->GetErrorYhigh(0) << endl;
0321         TLatex *l = new TLatex(x, y, v_SPHENIX_labels[0].c_str());
0322         l->SetTextAlign(kHAlignLeft + kVAlignBottom);
0323         l->SetTextSize(centlabel_textsize * pad1_labeltextscale);
0324         // set color to match the graph
0325         l->SetTextColor(TColor::GetColor(color_sphenix_combine.c_str()));
0326         l->Draw();
0327     }
0328     else // not draw phobos, will always draw sPHENIX separately
0329     {
0330         v_SPHENIX_dNdeta_phobosapproach[0]->SetMaximum(ymax_pad1);
0331         v_SPHENIX_dNdeta_phobosapproach[0]->SetMinimum(ymin_pad1);
0332         v_SPHENIX_dNdeta_phobosapproach[0]->GetYaxis()->SetNdivisions(4, 2, 0);
0333         v_SPHENIX_dNdeta_phobosapproach[0]->GetXaxis()->SetLimits(-absxlim, absxlim);
0334         v_SPHENIX_dNdeta_phobosapproach[0]->GetXaxis()->SetNdivisions(505);
0335 
0336         v_SPHENIX_dNdeta_phobosapproach[0]->GetYaxis()->SetTitle("dN_{ch}/d#eta");
0337         v_SPHENIX_dNdeta_phobosapproach[0]->GetYaxis()->CenterTitle(true);
0338         v_SPHENIX_dNdeta_phobosapproach[0]->GetYaxis()->SetTitleOffset(0.55);
0339         v_SPHENIX_dNdeta_phobosapproach[0]->GetYaxis()->SetTitleSize(axis_title_size * pad1_legtextscale);
0340         v_SPHENIX_dNdeta_phobosapproach[0]->GetYaxis()->SetLabelSize(axis_label_size * pad1_labeltextscale);
0341         v_SPHENIX_dNdeta_phobosapproach[0]->GetYaxis()->SetTickLength(yticklength / pad1_tickscale);
0342         v_SPHENIX_dNdeta_phobosapproach[0]->GetXaxis()->SetTickLength(xticklength / pad1_tickscale * 0.9);
0343         v_SPHENIX_dNdeta_phobosapproach[0]->Draw("A 5 P");
0344         v_SPHENIX_dNdeta_cmsapproach[0]->Draw("5 P same");
0345 
0346         leg->AddEntry(v_SPHENIX_dNdeta_phobosapproach[0], leg_sphenix_phobosapproach.c_str(), "pf");
0347         leg->AddEntry(v_SPHENIX_dNdeta_cmsapproach[0], leg_sphenix_cmsapproach.c_str(), "pf");
0348 
0349         // draw labels
0350         double x, y;
0351         x = v_SPHENIX_dNdeta_phobosapproach[0]->GetPointX(v_SPHENIX_dNdeta_phobosapproach[0]->GetN() - 1) + v_SPHENIX_dNdeta_phobosapproach[0]->GetErrorXlow(v_SPHENIX_dNdeta_phobosapproach[0]->GetN() - 1);
0352         y = v_SPHENIX_dNdeta_phobosapproach[0]->GetPointY(v_SPHENIX_dNdeta_phobosapproach[0]->GetN() - 1);
0353         cout << "phobos: x=" << x << " y=" << y << endl;
0354         TLatex *lphobos = new TLatex(x + 0.02, y, v_SPHENIX_labels[0].c_str());
0355         lphobos->SetTextAlign(kHAlignLeft + kVAlignCenter);
0356         lphobos->SetTextSize(centlabel_textsize * pad1_labeltextscale);
0357         // set color to match the graph
0358         lphobos->SetTextColor(TColor::GetColor(color_sphenix_phobosapproach.c_str()));
0359         lphobos->Draw();
0360 
0361         x = v_SPHENIX_dNdeta_cmsapproach[0]->GetPointX(0) - v_SPHENIX_dNdeta_cmsapproach[0]->GetErrorXlow(0);
0362         y = v_SPHENIX_dNdeta_cmsapproach[0]->GetPointY(0);
0363         cout << "cms: x=" << x << " y=" << y << endl;
0364         TLatex *lcms = new TLatex(x - 0.02, y, v_SPHENIX_labels[0].c_str());
0365         // set right and center adjusted
0366         lcms->SetTextAlign(kHAlignRight + kVAlignCenter);
0367         lcms->SetTextSize(centlabel_textsize * pad1_labeltextscale);
0368         // set color to match the graph
0369         lcms->SetTextColor(TColor::GetColor(color_sphenix_cmsapproach.c_str()));
0370         lcms->Draw();
0371     }
0372     leg->Draw();
0373     TLegend *sphnxleg = new TLegend(pad1->GetRightMargin() + 0.53,    //
0374                                     1 - pad1->GetTopMargin() - 0.38,  //
0375                                     1 - pad1->GetLeftMargin() - 0.01, //
0376                                     1 - pad1->GetTopMargin() - 0.1    //
0377     );
0378     sphnxleg->SetLineStyle(1);
0379     sphnxleg->SetLineWidth(1);
0380     sphnxleg->SetLineColor(1);
0381     sphnxleg->SetTextAlign(kHAlignLeft + kVAlignCenter);
0382     sphnxleg->SetTextSize(leg_textsize * 2.7);
0383     sphnxleg->SetFillStyle(0);
0384     sphnxleg->AddEntry("", Form("#it{#bf{sPHENIX}} %s", prelimtext.c_str()), "");
0385     sphnxleg->AddEntry("", "Au+Au #sqrt{s_{NN}}=200 GeV", "");
0386     sphnxleg->Draw();
0387 
0388     pad2->cd();
0389     if (draw_phobos) // will always draw combined sPHENIX
0390     {
0391         v_PHOBOS_dNdeta[1]->SetMaximum(ymax_pad2);
0392         v_PHOBOS_dNdeta[1]->SetMinimum(ymin_pad2);
0393         v_PHOBOS_dNdeta[1]->GetYaxis()->SetNdivisions(4, 2, 0);
0394         v_PHOBOS_dNdeta[1]->GetXaxis()->SetLimits(-absxlim, absxlim);
0395         v_PHOBOS_dNdeta[1]->GetXaxis()->SetNdivisions(505);
0396         v_PHOBOS_dNdeta[1]->Draw("A 3 P");
0397 
0398         v_PHOBOS_dNdeta[1]->GetYaxis()->SetLabelSize(axis_label_size * pad2_labeltextscale);
0399         v_PHOBOS_dNdeta[1]->GetYaxis()->SetTickLength(yticklength / pad2_tickscale);
0400         v_PHOBOS_dNdeta[1]->GetXaxis()->SetTickLength(xticklength / pad2_tickscale * 2);
0401 
0402         v_sphenix_dNdeta[1]->Draw("5 P same");
0403 
0404         double x, y;
0405         x = v_sphenix_dNdeta[1]->GetPointX(v_sphenix_dNdeta[1]->GetN() - 1) + v_sphenix_dNdeta[1]->GetErrorXhigh(v_sphenix_dNdeta[1]->GetN() - 1);
0406         y = v_sphenix_dNdeta[1]->GetPointY(v_sphenix_dNdeta[1]->GetN() - 1) + v_sphenix_dNdeta[1]->GetErrorYhigh(v_sphenix_dNdeta[1]->GetN() - 1);
0407         // print out the first point for debugging
0408         cout << v_sphenix_dNdeta[1]->GetPointX(0) << " " << v_sphenix_dNdeta[1]->GetPointY(0) << " " << v_sphenix_dNdeta[1]->GetErrorYlow(0) << " " << v_sphenix_dNdeta[1]->GetErrorYhigh(0) << endl;
0409         TLatex *l = new TLatex(x, y, v_SPHENIX_labels[1].c_str());
0410         l->SetTextAlign(kHAlignLeft + kVAlignBottom);
0411         l->SetTextSize(centlabel_textsize * pad2_labeltextscale);
0412         // set color to match the graph
0413         l->SetTextColor(TColor::GetColor(color_sphenix_combine.c_str()));
0414         l->Draw();
0415     }
0416     else // not draw phobos, will always draw sPHENIX separately
0417     {
0418         v_SPHENIX_dNdeta_phobosapproach[1]->SetMaximum(ymax_pad2);
0419         v_SPHENIX_dNdeta_phobosapproach[1]->SetMinimum(ymin_pad2);
0420         v_SPHENIX_dNdeta_phobosapproach[1]->GetYaxis()->SetNdivisions(4, 2, 0);
0421         v_SPHENIX_dNdeta_phobosapproach[1]->GetXaxis()->SetLimits(-absxlim, absxlim);
0422         v_SPHENIX_dNdeta_phobosapproach[1]->GetXaxis()->SetNdivisions(505);
0423 
0424         v_SPHENIX_dNdeta_phobosapproach[1]->GetYaxis()->SetLabelSize(axis_label_size * pad2_labeltextscale);
0425         v_SPHENIX_dNdeta_phobosapproach[1]->GetYaxis()->SetTickLength(yticklength / pad2_tickscale);
0426         v_SPHENIX_dNdeta_phobosapproach[1]->GetXaxis()->SetTickLength(xticklength / pad2_tickscale * 2);
0427         v_SPHENIX_dNdeta_phobosapproach[1]->Draw("A 5 P");
0428         v_SPHENIX_dNdeta_cmsapproach[1]->Draw("5 P");
0429 
0430         // draw labels
0431         double x, y;
0432         x = v_SPHENIX_dNdeta_phobosapproach[1]->GetPointX(v_SPHENIX_dNdeta_phobosapproach[1]->GetN() - 1) + v_SPHENIX_dNdeta_phobosapproach[1]->GetErrorXlow(v_SPHENIX_dNdeta_phobosapproach[1]->GetN() - 1);
0433         y = v_SPHENIX_dNdeta_phobosapproach[1]->GetPointY(v_SPHENIX_dNdeta_phobosapproach[1]->GetN() - 1);
0434         cout << "phobos: x=" << x << " y=" << y << endl;
0435         TLatex *lphobos = new TLatex(x + 0.02, y, v_SPHENIX_labels[1].c_str());
0436         lphobos->SetTextAlign(kHAlignLeft + kVAlignCenter);
0437         lphobos->SetTextSize(centlabel_textsize * pad2_labeltextscale);
0438         // set color to match the graph
0439         lphobos->SetTextColor(TColor::GetColor(color_sphenix_phobosapproach.c_str()));
0440         lphobos->Draw();
0441 
0442         x = v_SPHENIX_dNdeta_cmsapproach[1]->GetPointX(0) - v_SPHENIX_dNdeta_cmsapproach[1]->GetErrorXlow(0);
0443         y = v_SPHENIX_dNdeta_cmsapproach[1]->GetPointY(0);
0444         cout << "cms: x=" << x << " y=" << y << endl;
0445         TLatex *lcms = new TLatex(x - 0.02, y, v_SPHENIX_labels[1].c_str());
0446         // set right and center adjusted
0447         lcms->SetTextAlign(kHAlignRight + kVAlignCenter);
0448         lcms->SetTextSize(centlabel_textsize * pad2_labeltextscale);
0449         // set color to match the graph
0450         lcms->SetTextColor(TColor::GetColor(color_sphenix_cmsapproach.c_str()));
0451         lcms->Draw();
0452     }
0453 
0454     pad3->cd();
0455     if (draw_phobos) // will always draw combined sPHENIX
0456     {
0457         v_PHOBOS_dNdeta[2]->SetMaximum(ymax_pad3);
0458         v_PHOBOS_dNdeta[2]->SetMinimum(ymin_pad3);
0459         v_PHOBOS_dNdeta[2]->GetYaxis()->SetNdivisions(3, 2, 0);
0460         v_PHOBOS_dNdeta[2]->GetXaxis()->SetLimits(-absxlim, absxlim);
0461         v_PHOBOS_dNdeta[2]->GetXaxis()->SetNdivisions(505);
0462         v_PHOBOS_dNdeta[2]->Draw("A 3 P");
0463 
0464         v_PHOBOS_dNdeta[2]->GetYaxis()->SetLabelSize(axis_label_size * pad3_labeltextscale);
0465         v_PHOBOS_dNdeta[2]->GetYaxis()->SetTickLength(yticklength / pad3_tickscale);
0466         v_PHOBOS_dNdeta[2]->GetXaxis()->SetTickLength(xticklength / pad3_tickscale * 2);
0467 
0468         v_sphenix_dNdeta[2]->Draw("5 P same");
0469 
0470         double x, y;
0471         x = v_sphenix_dNdeta[2]->GetPointX(v_sphenix_dNdeta[2]->GetN() - 1) + v_sphenix_dNdeta[2]->GetErrorXhigh(v_sphenix_dNdeta[2]->GetN() - 1);
0472         y = v_sphenix_dNdeta[2]->GetPointY(v_sphenix_dNdeta[2]->GetN() - 1) + v_sphenix_dNdeta[2]->GetErrorYhigh(v_sphenix_dNdeta[2]->GetN() - 1);
0473         // print out the first point for debugging
0474         cout << v_sphenix_dNdeta[2]->GetPointX(0) << " " << v_sphenix_dNdeta[2]->GetPointY(0) << " " << v_sphenix_dNdeta[2]->GetErrorYlow(0) << " " << v_sphenix_dNdeta[2]->GetErrorYhigh(0) << endl;
0475         TLatex *l = new TLatex(x, y, v_SPHENIX_labels[2].c_str());
0476         l->SetTextAlign(kHAlignLeft + kVAlignBottom);
0477         l->SetTextSize(centlabel_textsize * pad3_labeltextscale);
0478         // set color to match the graph
0479         l->SetTextColor(TColor::GetColor(color_sphenix_combine.c_str()));
0480         l->Draw();
0481     }
0482     else // not draw phobos, will always draw sPHENIX separately
0483     {
0484         v_SPHENIX_dNdeta_phobosapproach[2]->SetMaximum(ymax_pad3);
0485         v_SPHENIX_dNdeta_phobosapproach[2]->SetMinimum(ymin_pad3);
0486         v_SPHENIX_dNdeta_phobosapproach[2]->GetYaxis()->SetNdivisions(3, 2, 0);
0487         v_SPHENIX_dNdeta_phobosapproach[2]->GetXaxis()->SetLimits(-absxlim, absxlim);
0488         v_SPHENIX_dNdeta_phobosapproach[2]->GetXaxis()->SetNdivisions(505);
0489 
0490         v_SPHENIX_dNdeta_phobosapproach[2]->GetYaxis()->SetLabelSize(axis_label_size * pad3_labeltextscale);
0491         v_SPHENIX_dNdeta_phobosapproach[2]->GetYaxis()->SetTickLength(yticklength / pad3_tickscale);
0492         v_SPHENIX_dNdeta_phobosapproach[2]->GetXaxis()->SetTickLength(xticklength / pad3_tickscale * 2);
0493         v_SPHENIX_dNdeta_phobosapproach[2]->Draw("A 5 P");
0494         v_SPHENIX_dNdeta_cmsapproach[2]->Draw("5 P");
0495 
0496         // draw labels
0497         double x, y;
0498         x = v_SPHENIX_dNdeta_phobosapproach[2]->GetPointX(v_SPHENIX_dNdeta_phobosapproach[2]->GetN() - 1) + v_SPHENIX_dNdeta_phobosapproach[2]->GetErrorXlow(v_SPHENIX_dNdeta_phobosapproach[2]->GetN() - 1);
0499         y = v_SPHENIX_dNdeta_phobosapproach[2]->GetPointY(v_SPHENIX_dNdeta_phobosapproach[2]->GetN() - 1);
0500         cout << "phobos: x=" << x << " y=" << y << endl;
0501         TLatex *lphobos = new TLatex(x + 0.02, y, v_SPHENIX_labels[2].c_str());
0502         lphobos->SetTextAlign(kHAlignLeft + kVAlignCenter);
0503         lphobos->SetTextSize(centlabel_textsize * pad3_labeltextscale);
0504         // set color to match the graph
0505         lphobos->SetTextColor(TColor::GetColor(color_sphenix_phobosapproach.c_str()));
0506         lphobos->Draw();
0507 
0508         x = v_SPHENIX_dNdeta_cmsapproach[2]->GetPointX(0) - v_SPHENIX_dNdeta_cmsapproach[2]->GetErrorXlow(0);
0509         y = v_SPHENIX_dNdeta_cmsapproach[2]->GetPointY(0);
0510         cout << "cms: x=" << x << " y=" << y << endl;
0511         TLatex *lcms = new TLatex(x - 0.02, y, v_SPHENIX_labels[2].c_str());
0512         // set right and center adjusted
0513         lcms->SetTextAlign(kHAlignRight + kVAlignCenter);
0514         lcms->SetTextSize(centlabel_textsize * pad3_labeltextscale);
0515         // set color to match the graph
0516         lcms->SetTextColor(TColor::GetColor(color_sphenix_cmsapproach.c_str()));
0517         lcms->Draw();
0518     }
0519 
0520     pad4->cd();
0521     if (draw_phobos) // will always draw combined sPHENIX
0522     {
0523         v_PHOBOS_dNdeta[3]->SetMaximum(ymax_pad4);
0524         v_PHOBOS_dNdeta[3]->SetMinimum(ymin_pad4);
0525         v_PHOBOS_dNdeta[3]->GetYaxis()->SetNdivisions(4, 3, 0);
0526         v_PHOBOS_dNdeta[3]->GetXaxis()->SetLimits(-absxlim, absxlim);
0527         v_PHOBOS_dNdeta[3]->GetXaxis()->SetNdivisions(505);
0528         v_PHOBOS_dNdeta[3]->Draw("A 3 P");
0529 
0530         v_PHOBOS_dNdeta[3]->GetYaxis()->SetLabelSize(axis_label_size * pad4_labeltextscale);
0531         v_PHOBOS_dNdeta[3]->GetYaxis()->SetTickLength(yticklength / pad4_tickscale);
0532         v_PHOBOS_dNdeta[3]->GetXaxis()->SetTickLength(xticklength / pad4_tickscale * 2);
0533 
0534         v_sphenix_dNdeta[3]->Draw("5 P same");
0535 
0536         double x, y;
0537         x = v_sphenix_dNdeta[3]->GetPointX(v_sphenix_dNdeta[3]->GetN() - 1) + v_sphenix_dNdeta[3]->GetErrorXhigh(v_sphenix_dNdeta[3]->GetN() - 1);
0538         y = v_sphenix_dNdeta[3]->GetPointY(v_sphenix_dNdeta[3]->GetN() - 1) + v_sphenix_dNdeta[3]->GetErrorYhigh(v_sphenix_dNdeta[3]->GetN() - 1);
0539         // print out the first point for debugging
0540         cout << v_sphenix_dNdeta[3]->GetPointX(0) << " " << v_sphenix_dNdeta[3]->GetPointY(0) << " " << v_sphenix_dNdeta[3]->GetErrorYlow(0) << " " << v_sphenix_dNdeta[3]->GetErrorYhigh(0) << endl;
0541         TLatex *l = new TLatex(x, y, v_SPHENIX_labels[3].c_str());
0542         l->SetTextAlign(kHAlignLeft + kVAlignBottom);
0543         l->SetTextSize(centlabel_textsize * pad4_labeltextscale);
0544         // set color to match the graph
0545         l->SetTextColor(TColor::GetColor(color_sphenix_combine.c_str()));
0546         l->Draw();
0547     }
0548     else // not draw phobos, will always draw sPHENIX separately
0549     {
0550         v_SPHENIX_dNdeta_phobosapproach[3]->SetMaximum(ymax_pad4);
0551         v_SPHENIX_dNdeta_phobosapproach[3]->SetMinimum(ymin_pad4);
0552         v_SPHENIX_dNdeta_phobosapproach[3]->GetYaxis()->SetNdivisions(4, 3, 0);
0553         v_SPHENIX_dNdeta_phobosapproach[3]->GetXaxis()->SetLimits(-absxlim, absxlim);
0554         v_SPHENIX_dNdeta_phobosapproach[3]->GetXaxis()->SetNdivisions(505);
0555 
0556         v_SPHENIX_dNdeta_phobosapproach[3]->GetYaxis()->SetLabelSize(axis_label_size * pad4_labeltextscale);
0557         v_SPHENIX_dNdeta_phobosapproach[3]->GetYaxis()->SetTickLength(yticklength / pad4_tickscale);
0558         v_SPHENIX_dNdeta_phobosapproach[3]->GetXaxis()->SetTickLength(xticklength / pad4_tickscale * 2);
0559         v_SPHENIX_dNdeta_phobosapproach[3]->Draw("A 5 P");
0560         v_SPHENIX_dNdeta_cmsapproach[3]->Draw("5 P");
0561 
0562         // draw labels
0563         double x, y;
0564         x = v_SPHENIX_dNdeta_phobosapproach[3]->GetPointX(v_SPHENIX_dNdeta_phobosapproach[3]->GetN() - 1) + v_SPHENIX_dNdeta_phobosapproach[3]->GetErrorXlow(v_SPHENIX_dNdeta_phobosapproach[3]->GetN() - 1);
0565         y = v_SPHENIX_dNdeta_phobosapproach[3]->GetPointY(v_SPHENIX_dNdeta_phobosapproach[3]->GetN() - 1);
0566         cout << "phobos: x=" << x << " y=" << y << endl;
0567         TLatex *lphobos = new TLatex(x + 0.02, y, v_SPHENIX_labels[3].c_str());
0568         lphobos->SetTextAlign(kHAlignLeft + kVAlignCenter);
0569         lphobos->SetTextSize(centlabel_textsize * pad4_labeltextscale);
0570         // set color to match the graph
0571         lphobos->SetTextColor(TColor::GetColor(color_sphenix_phobosapproach.c_str()));
0572         lphobos->Draw();
0573 
0574         x = v_SPHENIX_dNdeta_cmsapproach[3]->GetPointX(0) - v_SPHENIX_dNdeta_cmsapproach[3]->GetErrorXlow(0);
0575         y = v_SPHENIX_dNdeta_cmsapproach[3]->GetPointY(0);
0576         cout << "cms: x=" << x << " y=" << y << endl;
0577         TLatex *lcms = new TLatex(x - 0.02, y, v_SPHENIX_labels[3].c_str());
0578         // set right and center adjusted
0579         lcms->SetTextAlign(kHAlignRight + kVAlignCenter);
0580         lcms->SetTextSize(centlabel_textsize * pad2_labeltextscale);
0581         // set color to match the graph
0582         lcms->SetTextColor(TColor::GetColor(color_sphenix_cmsapproach.c_str()));
0583         lcms->Draw();
0584     }
0585 
0586     pad5->cd();
0587     if (draw_phobos) // will always draw combined sPHENIX
0588     {
0589         for (int i = 4; i < nsphenix; i++)
0590         {
0591             if (i == 4)
0592             {
0593                 v_PHOBOS_dNdeta[i]->SetMaximum(ymax_pad5);
0594                 v_PHOBOS_dNdeta[i]->SetMinimum(ymin_pad5);
0595                 v_PHOBOS_dNdeta[i]->GetYaxis()->SetNdivisions(10, 3, 0);
0596                 v_PHOBOS_dNdeta[i]->GetXaxis()->SetLimits(-absxlim, absxlim);
0597                 v_PHOBOS_dNdeta[i]->GetXaxis()->SetNdivisions(505);
0598 
0599                 v_PHOBOS_dNdeta[i]->GetYaxis()->SetLabelSize(axis_label_size * pad5_labeltextscale);
0600                 v_PHOBOS_dNdeta[i]->GetYaxis()->SetTickLength(yticklength / pad5_tickscale);
0601                 v_PHOBOS_dNdeta[i]->GetXaxis()->SetTitle("Pseudorapidity #eta");
0602                 v_PHOBOS_dNdeta[i]->GetXaxis()->SetTitleOffset(1.4);
0603                 v_PHOBOS_dNdeta[i]->GetXaxis()->SetTitleSize(axis_title_size * pad5_labeltextscale);
0604                 v_PHOBOS_dNdeta[i]->GetXaxis()->SetLabelSize(axis_label_size * pad5_labeltextscale);
0605                 v_PHOBOS_dNdeta[i]->GetXaxis()->SetTickLength(xticklength / pad5_tickscale * 0.5);
0606 
0607                 v_PHOBOS_dNdeta[i]->Draw("A 3 P");
0608             }
0609             else
0610             {
0611                 v_PHOBOS_dNdeta[i]->Draw("3 P");
0612             }
0613 
0614             v_sphenix_dNdeta[i]->Draw("5 P same");
0615 
0616             double x, y;
0617             x = v_sphenix_dNdeta[i]->GetPointX(v_sphenix_dNdeta[i]->GetN() - 1) + v_sphenix_dNdeta[i]->GetErrorXhigh(v_sphenix_dNdeta[i]->GetN() - 1);
0618             y = v_sphenix_dNdeta[i]->GetPointY(v_sphenix_dNdeta[i]->GetN() - 1) + v_sphenix_dNdeta[i]->GetErrorYhigh(v_sphenix_dNdeta[i]->GetN() - 1);
0619             // print out the first point for debugging
0620             cout << v_sphenix_dNdeta[i]->GetPointX(0) << " " << v_sphenix_dNdeta[i]->GetPointY(0) << " " << v_sphenix_dNdeta[i]->GetErrorYlow(0) << " " << v_sphenix_dNdeta[i]->GetErrorYhigh(0) << endl;
0621             TLatex *l = new TLatex(x, y, v_SPHENIX_labels[i].c_str());
0622             l->SetTextAlign(kHAlignLeft + kVAlignBottom);
0623             l->SetTextSize(centlabel_textsize * pad5_labeltextscale);
0624             // set color to match the graph
0625             l->SetTextColor(TColor::GetColor(color_sphenix_combine.c_str()));
0626             l->Draw();
0627         }
0628     }
0629     else // not draw phobos, will always draw sPHENIX separately
0630     {
0631         for (int i = 4; i < nsphenix; i++)
0632         {
0633             if (i == 4)
0634             {
0635                 v_SPHENIX_dNdeta_phobosapproach[i]->SetMaximum(ymax_pad5);
0636                 v_SPHENIX_dNdeta_phobosapproach[i]->SetMinimum(ymin_pad5);
0637                 v_SPHENIX_dNdeta_phobosapproach[i]->GetYaxis()->SetNdivisions(10, 3, 0);
0638                 v_SPHENIX_dNdeta_phobosapproach[i]->GetXaxis()->SetLimits(-absxlim, absxlim);
0639                 v_SPHENIX_dNdeta_phobosapproach[i]->GetXaxis()->SetNdivisions(505);
0640 
0641                 v_SPHENIX_dNdeta_phobosapproach[i]->GetYaxis()->SetLabelSize(axis_label_size * pad5_labeltextscale);
0642                 v_SPHENIX_dNdeta_phobosapproach[i]->GetYaxis()->SetTickLength(yticklength / pad5_tickscale);
0643                 v_SPHENIX_dNdeta_phobosapproach[i]->GetXaxis()->SetTitle("Pseudorapidity #eta");
0644                 v_SPHENIX_dNdeta_phobosapproach[i]->GetXaxis()->SetTitleOffset(1.4);
0645                 v_SPHENIX_dNdeta_phobosapproach[i]->GetXaxis()->SetTitleSize(axis_title_size * pad5_labeltextscale);
0646                 v_SPHENIX_dNdeta_phobosapproach[i]->GetXaxis()->SetLabelSize(axis_label_size * pad5_labeltextscale);
0647                 v_SPHENIX_dNdeta_phobosapproach[i]->GetXaxis()->SetTickLength(xticklength / pad5_tickscale * 0.5);
0648                 v_SPHENIX_dNdeta_phobosapproach[i]->Draw("A 5 P");
0649                 v_SPHENIX_dNdeta_cmsapproach[i]->Draw("5 P");
0650             }
0651             else
0652             {
0653                 v_SPHENIX_dNdeta_phobosapproach[i]->Draw("5 P");
0654                 v_SPHENIX_dNdeta_cmsapproach[i]->Draw("5 P");
0655             }
0656 
0657             // draw labels
0658             double x, y;
0659             x = v_SPHENIX_dNdeta_phobosapproach[i]->GetPointX(v_SPHENIX_dNdeta_phobosapproach[i]->GetN() - 1) + v_SPHENIX_dNdeta_phobosapproach[i]->GetErrorXlow(v_SPHENIX_dNdeta_phobosapproach[i]->GetN() - 1);
0660             y = v_SPHENIX_dNdeta_phobosapproach[i]->GetPointY(v_SPHENIX_dNdeta_phobosapproach[i]->GetN() - 1);
0661             cout << "phobos: x=" << x << " y=" << y << endl;
0662             TLatex *lphobos = new TLatex(x + 0.02, y, v_SPHENIX_labels[i].c_str());
0663             lphobos->SetTextAlign(kHAlignLeft + kVAlignCenter);
0664             lphobos->SetTextSize(centlabel_textsize * pad5_labeltextscale);
0665             // set color to match the graph
0666             lphobos->SetTextColor(TColor::GetColor(color_sphenix_phobosapproach.c_str()));
0667             lphobos->Draw();
0668 
0669             x = v_SPHENIX_dNdeta_cmsapproach[i]->GetPointX(0) - v_SPHENIX_dNdeta_cmsapproach[i]->GetErrorXlow(0);
0670             y = v_SPHENIX_dNdeta_cmsapproach[i]->GetPointY(0);
0671             cout << "cms: x=" << x << " y=" << y << endl;
0672             TLatex *lcms = new TLatex(x - 0.02, y, v_SPHENIX_labels[i].c_str());
0673             // set right and center adjusted
0674             lcms->SetTextAlign(kHAlignRight + kVAlignCenter);
0675             lcms->SetTextSize(centlabel_textsize * pad5_labeltextscale);
0676             // set color to match the graph
0677             lcms->SetTextColor(TColor::GetColor(color_sphenix_cmsapproach.c_str()));
0678             lcms->Draw();
0679         }
0680     }
0681 
0682     c->RedrawAxis();
0683     if (docombine)
0684     {
0685         if (draw_brahms)
0686         {
0687             c->SaveAs(Form("%s/dNdEta_RHIC_combine_wBRAHMS.pdf", plotdir.c_str()));
0688             c->SaveAs(Form("%s/dNdEta_RHIC_combine_wBRAHMS.png", plotdir.c_str()));
0689         }
0690         else
0691         {
0692             c->SaveAs(Form("%s/dNdEta_RHIC_combine_woBRAHMS.pdf", plotdir.c_str()));
0693             c->SaveAs(Form("%s/dNdEta_RHIC_combine_woBRAHMS.png", plotdir.c_str()));
0694         }
0695     }
0696     else
0697     {
0698         if (draw_brahms)
0699         {
0700             c->SaveAs(Form("%s/dNdEta_RHIC_wBRAHMS.pdf", plotdir.c_str()));
0701             c->SaveAs(Form("%s/dNdEta_RHIC_wBRAHMS.png", plotdir.c_str()));
0702         }
0703         else
0704         {
0705             c->SaveAs(Form("%s/dNdEta_RHIC_woBRAHMS.pdf", plotdir.c_str()));
0706             c->SaveAs(Form("%s/dNdEta_RHIC_woBRAHMS.png", plotdir.c_str()));
0707         }
0708     }
0709 }