File indexing completed on 2025-08-05 08:11:18
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 = 0.9;
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 = 0.9;
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 = 0.9;
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
0047 int mkstyle_phobos = 25;
0048 float mksize_phobos = 0.9;
0049
0050 float absxlim = (draw_phobos) ? 1.99 : 1.59;
0051
0052 std::string prelimtext = "";
0053
0054 float LeftMargin = 0.25;
0055 float RightMargin = 0.05;
0056 float TopMargin = 0.05;
0057 float BottomMargin = 0.13;
0058 bool logy = true;
0059 float ymax_pad = (logy) ? 1800 : ((docombine) ? 940 : 970);
0060 float ymin_pad = (logy) ? 75 : 60;
0061 float axis_title_size = 0.045;
0062 float axis_label_size = 0.04;
0063 float leg_textsize = 0.04;
0064 float centlabel_textsize = 0.025;
0065 float xticklength = 0.03;
0066 float yticklength = 0.03;
0067 float pad1_legtextscale = 1.1;
0068 float pad1_titletextscale = 1.2;
0069 float pad1_labeltextscale = 1.1;
0070 float pad1_ytitleoffset = 2.2;
0071 float pad2_labeltextscale = 1.4;
0072 float pad2_tickscale = 1.25;
0073
0074 void PHOBOS_dNdeta()
0075 {
0076
0077 TFile *f = new TFile("./measurements/PHOBOS-PhysRevC.83.024913/auau_200GeV.root", "READ");
0078 f->cd();
0079 for (int i = 0; i < nphobos; i++)
0080 {
0081 TGraphAsymmErrors *g = (TGraphAsymmErrors *)gDirectory->Get(Form("AuAu_200GeV_Centrality_%dto%d", (int)v_phobos_centralitybin[i], (int)v_phobos_centralitybin[i + 1]));
0082 v_PHOBOS_dNdeta.push_back(g);
0083 v_PHOBOS_labels.push_back(Form("%d-%d%%", (int)v_phobos_centralitybin[i], (int)v_phobos_centralitybin[i + 1]));
0084 }
0085 f->Close();
0086 }
0087
0088 TGraphAsymmErrors *TH1toTGraphAsymmErrors(TH1 *h)
0089 {
0090 int Nbins = h->GetNbinsX();
0091
0092 std::vector<float> vx, vy, vxerr, vyerr;
0093 vx.clear();
0094 vy.clear();
0095 vxerr.clear();
0096 vyerr.clear();
0097 for (int i = 1; i <= Nbins; i++)
0098 {
0099 if (h->GetBinContent(i) <= 0)
0100 continue;
0101
0102 if (fabs(h->GetBinCenter(i)) >= 1.1)
0103 continue;
0104
0105 vx.push_back(h->GetBinCenter(i));
0106 vy.push_back(h->GetBinContent(i));
0107 vxerr.push_back(h->GetBinWidth(i) * 0.49);
0108 vyerr.push_back(h->GetBinError(i));
0109 }
0110
0111 TGraphAsymmErrors *g = new TGraphAsymmErrors(vx.size(), vx.data(), vy.data(), vxerr.data(), vxerr.data(), vyerr.data(), vyerr.data());
0112 return g;
0113 }
0114
0115 void SPHENIX_dNdeta()
0116 {
0117 TFile *f_comb = new TFile(comb_fname.c_str(), "READ");
0118
0119 for (int i = 0; i < nsphenix; i++)
0120 {
0121 int Mbin = GetMbinNum(Form("Centrality%dto%d", (int)v_sphenix_centralitybin[i], (int)v_sphenix_centralitybin[i + 1]));
0122
0123
0124 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");
0125 TH1D *h = (TH1D *)f->Get("hM_final");
0126 h->SetDirectory(0);
0127 v_sphenix_dNdeta_cmsapproach_hist.push_back(h);
0128 TGraphAsymmErrors *g_cms = TH1toTGraphAsymmErrors(h);
0129 v_SPHENIX_dNdeta_cmsapproach.push_back(g_cms);
0130 v_SPHENIX_labels.push_back(Form("%d-%d%%", (int)v_sphenix_centralitybin[i], (int)v_sphenix_centralitybin[i + 1]));
0131 f->Close();
0132
0133
0134 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");
0135 TH1D *hphobos = (TH1D *)fphobos->Get("h1D_dNdEta_reco");
0136 hphobos->SetDirectory(0);
0137 v_sphenix_dNdeta_phobosapproach_hist.push_back(hphobos);
0138 TGraphAsymmErrors *g_phobos = TH1toTGraphAsymmErrors(hphobos);
0139 v_SPHENIX_dNdeta_phobosapproach.push_back(g_phobos);
0140 fphobos->Close();
0141
0142
0143 TFile *f_comb = new TFile(comb_fname.c_str(), "READ");
0144 TGraphAsymmErrors *g = (TGraphAsymmErrors *)f_comb->Get(Form("tgae_combine_Centrality%dto%d", (int)v_sphenix_centralitybin[i], (int)v_sphenix_centralitybin[i + 1]));
0145 v_sphenix_dNdeta.push_back(g);
0146 f_comb->Close();
0147 }
0148 }
0149
0150 void draw_dNdetaRHIC_v3()
0151 {
0152 std::string plotdir = "./dNdEtaFinal";
0153 system(Form("mkdir -p %s", plotdir.c_str()));
0154
0155 SPHENIX_dNdeta();
0156
0157 if (draw_phobos)
0158 PHOBOS_dNdeta();
0159
0160 for (int i = 0; i < nsphenix; i++)
0161 {
0162 v_SPHENIX_dNdeta_cmsapproach[i]->SetMarkerStyle(mkstyle_sphenix_cmsapproach);
0163 v_SPHENIX_dNdeta_cmsapproach[i]->SetMarkerSize(mksize_sphenix_cmsapproach);
0164 v_SPHENIX_dNdeta_cmsapproach[i]->SetLineColor(TColor::GetColor(color_sphenix_cmsapproach.c_str()));
0165 v_SPHENIX_dNdeta_cmsapproach[i]->SetLineWidth(1);
0166 v_SPHENIX_dNdeta_cmsapproach[i]->SetMarkerColor(TColor::GetColor(color_sphenix_cmsapproach.c_str()));
0167 v_SPHENIX_dNdeta_cmsapproach[i]->SetFillColorAlpha(TColor::GetColor(color_sphenix_cmsapproach.c_str()), 0.2);
0168
0169 v_SPHENIX_dNdeta_phobosapproach[i]->SetMarkerStyle(mkstyle_sphenix_phobosapproach);
0170 v_SPHENIX_dNdeta_phobosapproach[i]->SetMarkerSize(mksize_sphenix_phobosapproach);
0171 v_SPHENIX_dNdeta_phobosapproach[i]->SetLineColor(TColor::GetColor(color_sphenix_phobosapproach.c_str()));
0172 v_SPHENIX_dNdeta_phobosapproach[i]->SetLineWidth(1);
0173 v_SPHENIX_dNdeta_phobosapproach[i]->SetMarkerColor(TColor::GetColor(color_sphenix_phobosapproach.c_str()));
0174 v_SPHENIX_dNdeta_phobosapproach[i]->SetFillColorAlpha(TColor::GetColor(color_sphenix_phobosapproach.c_str()), 0.2);
0175
0176 v_sphenix_dNdeta[i]->SetMarkerStyle(mkstyle_sphenix_combine);
0177 v_sphenix_dNdeta[i]->SetMarkerSize(mksize_sphenix_combine);
0178 v_sphenix_dNdeta[i]->SetLineColor(TColor::GetColor(color_sphenix_combine.c_str()));
0179 v_sphenix_dNdeta[i]->SetLineWidth(1);
0180 v_sphenix_dNdeta[i]->SetMarkerColor(TColor::GetColor(color_sphenix_combine.c_str()));
0181 v_sphenix_dNdeta[i]->SetFillColorAlpha(TColor::GetColor(color_sphenix_combine.c_str()), 0.2);
0182
0183
0184 if (verbose)
0185 {
0186
0187 for (int j = 0; j < v_SPHENIX_dNdeta_cmsapproach[i]->GetN(); j++)
0188 {
0189 double x, y, xerrl, xerru, yerrl, yerru;
0190 v_SPHENIX_dNdeta_cmsapproach[i]->GetPoint(j, x, y);
0191 xerrl = v_SPHENIX_dNdeta_cmsapproach[i]->GetErrorXlow(j);
0192 xerru = v_SPHENIX_dNdeta_cmsapproach[i]->GetErrorXhigh(j);
0193 yerrl = v_SPHENIX_dNdeta_cmsapproach[i]->GetErrorYlow(j);
0194 yerru = v_SPHENIX_dNdeta_cmsapproach[i]->GetErrorYhigh(j);
0195
0196 }
0197 for (int j = 0; j < v_SPHENIX_dNdeta_phobosapproach[i]->GetN(); j++)
0198 {
0199 double x, y, xerrl, xerru, yerrl, yerru;
0200 v_SPHENIX_dNdeta_phobosapproach[i]->GetPoint(j, x, y);
0201 xerrl = v_SPHENIX_dNdeta_phobosapproach[i]->GetErrorXlow(j);
0202 xerru = v_SPHENIX_dNdeta_phobosapproach[i]->GetErrorXhigh(j);
0203 yerrl = v_SPHENIX_dNdeta_phobosapproach[i]->GetErrorYlow(j);
0204 yerru = v_SPHENIX_dNdeta_phobosapproach[i]->GetErrorYhigh(j);
0205
0206 }
0207 }
0208 }
0209
0210 if (draw_phobos)
0211 {
0212 for (int i = 0; i < nphobos; i++)
0213 {
0214 v_PHOBOS_dNdeta[i]->SetMarkerStyle(mkstyle_phobos);
0215 v_PHOBOS_dNdeta[i]->SetMarkerSize(mksize_phobos);
0216 v_PHOBOS_dNdeta[i]->SetLineColor(TColor::GetColor(color_phobos.c_str()));
0217 v_PHOBOS_dNdeta[i]->SetLineWidth(1);
0218 v_PHOBOS_dNdeta[i]->SetMarkerColor(TColor::GetColor(color_phobos.c_str()));
0219 v_PHOBOS_dNdeta[i]->SetFillColorAlpha(TColor::GetColor(color_phobos.c_str()), 0.15);
0220
0221 }
0222 }
0223
0224 TCanvas *c = new TCanvas("c", "c", 1000, 600);
0225 TPad *pad1 = new TPad("pad1", "pad1", 0, 0.0, 0.56, 1);
0226 TPad *pad2 = new TPad("pad2", "pad2", 0.56, 0.0, 1, 1);
0227 pad1->SetTopMargin(TopMargin);
0228 pad1->SetBottomMargin(BottomMargin);
0229 pad1->SetLeftMargin(LeftMargin);
0230 pad1->SetRightMargin(0);
0231 pad2->SetTopMargin(TopMargin);
0232 pad2->SetBottomMargin(BottomMargin);
0233 pad2->SetRightMargin(RightMargin);
0234 pad2->SetLeftMargin(0);
0235 pad1->Draw();
0236 pad2->Draw();
0237 pad1->cd();
0238 pad1->SetLogy(logy);
0239
0240 if (draw_phobos)
0241 {
0242
0243 for (size_t i = 0; i < v_PHOBOS_dNdeta.size() && i < v_sphenix_dNdeta.size(); i += 2)
0244 {
0245 if (i == 0)
0246 {
0247 v_PHOBOS_dNdeta[i]->SetMaximum(ymax_pad);
0248 v_PHOBOS_dNdeta[i]->SetMinimum(ymin_pad);
0249
0250 v_PHOBOS_dNdeta[i]->GetXaxis()->SetLimits(-absxlim, absxlim);
0251 if (logy)
0252 v_PHOBOS_dNdeta[i]->GetYaxis()->SetMoreLogLabels();
0253 v_PHOBOS_dNdeta[i]->GetXaxis()->SetNdivisions(505);
0254
0255 v_PHOBOS_dNdeta[i]->GetYaxis()->SetTitle("dN_{ch}/d#eta");
0256
0257 v_PHOBOS_dNdeta[i]->GetYaxis()->SetTitleOffset(pad1_ytitleoffset);
0258 v_PHOBOS_dNdeta[i]->GetYaxis()->SetTitleSize(axis_title_size * pad1_titletextscale);
0259 v_PHOBOS_dNdeta[i]->GetYaxis()->SetLabelSize(axis_label_size * pad1_labeltextscale);
0260 v_PHOBOS_dNdeta[i]->GetYaxis()->SetTickLength(yticklength);
0261 v_PHOBOS_dNdeta[i]->GetXaxis()->SetLabelSize(axis_label_size * pad1_labeltextscale);
0262 v_PHOBOS_dNdeta[i]->GetXaxis()->SetTickLength(xticklength);
0263
0264 v_PHOBOS_dNdeta[i]->Draw("A 3 P");
0265 v_sphenix_dNdeta[i]->Draw("5 P same");
0266 }
0267 else
0268 {
0269 v_PHOBOS_dNdeta[i]->Draw("3 P same");
0270 v_sphenix_dNdeta[i]->Draw("5 P same");
0271 }
0272
0273 double x, y;
0274 x = v_sphenix_dNdeta[i]->GetPointX(v_sphenix_dNdeta[i]->GetN() - 1) + v_sphenix_dNdeta[i]->GetErrorXhigh(v_sphenix_dNdeta[i]->GetN() - 1);
0275 y = v_sphenix_dNdeta[i]->GetPointY(v_sphenix_dNdeta[i]->GetN() - 1) + v_sphenix_dNdeta[i]->GetErrorYhigh(v_sphenix_dNdeta[i]->GetN() - 1);
0276
0277 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;
0278 TLatex *l = new TLatex(x, y, v_SPHENIX_labels[i].c_str());
0279 l->SetTextAlign(kHAlignLeft + kVAlignBottom);
0280 l->SetTextSize(centlabel_textsize * pad1_labeltextscale);
0281
0282 l->SetTextColor(TColor::GetColor(color_sphenix_combine.c_str()));
0283 l->Draw();
0284 }
0285 }
0286 else
0287 {
0288
0289 for (size_t i = 0; i < v_SPHENIX_dNdeta_phobosapproach.size() && i < v_SPHENIX_dNdeta_cmsapproach.size(); i += 2)
0290 {
0291 if (i == 0)
0292 {
0293 v_SPHENIX_dNdeta_phobosapproach[i]->SetMaximum(ymax_pad);
0294 v_SPHENIX_dNdeta_phobosapproach[i]->SetMinimum(ymin_pad);
0295
0296 v_SPHENIX_dNdeta_phobosapproach[i]->GetXaxis()->SetLimits(-absxlim, absxlim);
0297 if (logy)
0298 v_SPHENIX_dNdeta_phobosapproach[i]->GetYaxis()->SetMoreLogLabels();
0299 v_SPHENIX_dNdeta_phobosapproach[i]->GetXaxis()->SetNdivisions(505);
0300
0301 v_SPHENIX_dNdeta_phobosapproach[i]->GetYaxis()->SetTitle("dN_{ch}/d#eta");
0302
0303 v_SPHENIX_dNdeta_phobosapproach[i]->GetYaxis()->SetTitleOffset(pad1_ytitleoffset);
0304 v_SPHENIX_dNdeta_phobosapproach[i]->GetYaxis()->SetTitleSize(axis_title_size * pad1_titletextscale);
0305 v_SPHENIX_dNdeta_phobosapproach[i]->GetYaxis()->SetLabelSize(axis_label_size * pad1_labeltextscale);
0306 v_SPHENIX_dNdeta_phobosapproach[i]->GetYaxis()->SetTickLength(yticklength);
0307 v_SPHENIX_dNdeta_phobosapproach[i]->GetXaxis()->SetTickLength(xticklength);
0308
0309 v_SPHENIX_dNdeta_phobosapproach[i]->Draw("A 5 P");
0310 v_SPHENIX_dNdeta_cmsapproach[i]->Draw("5 P same");
0311 }
0312 else
0313 {
0314 v_SPHENIX_dNdeta_phobosapproach[i]->Draw("5 P same");
0315 v_SPHENIX_dNdeta_cmsapproach[i]->Draw("5 P same");
0316 }
0317
0318
0319 double x, y;
0320 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);
0321 y = v_SPHENIX_dNdeta_phobosapproach[i]->GetPointY(v_SPHENIX_dNdeta_phobosapproach[i]->GetN() - 1);
0322 cout << "phobos: x=" << x << " y=" << y << endl;
0323 TLatex *lphobos = new TLatex(x + 0.02, y, v_SPHENIX_labels[i].c_str());
0324 lphobos->SetTextAlign(kHAlignLeft + kVAlignCenter);
0325 lphobos->SetTextSize(centlabel_textsize * pad1_labeltextscale);
0326
0327 lphobos->SetTextColor(TColor::GetColor(color_sphenix_phobosapproach.c_str()));
0328 lphobos->Draw();
0329
0330 x = v_SPHENIX_dNdeta_cmsapproach[i]->GetPointX(0) - v_SPHENIX_dNdeta_cmsapproach[i]->GetErrorXlow(0);
0331 y = v_SPHENIX_dNdeta_cmsapproach[i]->GetPointY(0);
0332 cout << "cms: x=" << x << " y=" << y << endl;
0333 TLatex *lcms = new TLatex(x - 0.02, y, v_SPHENIX_labels[i].c_str());
0334
0335 lcms->SetTextAlign(kHAlignRight + kVAlignCenter);
0336 lcms->SetTextSize(centlabel_textsize * pad1_labeltextscale);
0337
0338 lcms->SetTextColor(TColor::GetColor(color_sphenix_cmsapproach.c_str()));
0339 lcms->Draw();
0340 }
0341 }
0342 TLegend *sphnxleg = new TLegend(pad1->GetLeftMargin() + 0.04,
0343 1 - pad1->GetTopMargin() - 0.16,
0344 pad1->GetLeftMargin() + 0.2,
0345 1 - pad1->GetTopMargin() - 0.05
0346 );
0347 sphnxleg->SetLineStyle(1);
0348 sphnxleg->SetLineWidth(1);
0349 sphnxleg->SetLineColor(1);
0350 sphnxleg->SetTextAlign(kHAlignLeft + kVAlignCenter);
0351 sphnxleg->SetTextSize(leg_textsize);
0352 sphnxleg->SetFillStyle(0);
0353 sphnxleg->AddEntry("", Form("#it{#bf{sPHENIX}} %s", prelimtext.c_str()), "");
0354 sphnxleg->AddEntry("", "Au+Au #sqrt{s_{NN}}=200 GeV", "");
0355 sphnxleg->Draw();
0356
0357 pad2->cd();
0358 pad2->SetLogy(logy);
0359 TLegend *leg = new TLegend((!docombine) ? pad2->GetLeftMargin() + 0.1 : pad2->GetLeftMargin() + 0.07,
0360 (!docombine) ? 1 - pad2->GetTopMargin() - 0.175 : 1 - pad2->GetTopMargin() - 0.115,
0361 pad2->GetLeftMargin() + 0.55,
0362 (!docombine) ? 1 - pad2->GetTopMargin() - 0.05 : 1 - pad2->GetTopMargin() - 0.04
0363 );
0364
0365 leg->SetTextSize(leg_textsize);
0366 leg->SetBorderSize(0);
0367 leg->SetFillStyle(0);
0368
0369
0370 TLegend *leg2 = new TLegend((!docombine) ? pad2->GetLeftMargin() + 0.1 : pad2->GetLeftMargin() + 0.07,
0371 1 - pad2->GetTopMargin() - 0.19,
0372 pad2->GetLeftMargin() + 0.55,
0373 1 - pad2->GetTopMargin() - 0.115
0374 );
0375 leg2->SetTextAlign(kHAlignLeft + kVAlignTop);
0376 leg2->SetTextSize(leg_textsize);
0377 leg2->SetBorderSize(0);
0378 leg2->SetFillStyle(0);
0379
0380 if (draw_phobos)
0381 {
0382
0383 for (size_t i = 1; i < v_PHOBOS_dNdeta.size() && i < v_sphenix_dNdeta.size(); i += 2)
0384 {
0385 if (i == 1)
0386 {
0387 v_PHOBOS_dNdeta[i]->SetMaximum(ymax_pad);
0388 v_PHOBOS_dNdeta[i]->SetMinimum(ymin_pad);
0389
0390 v_PHOBOS_dNdeta[i]->GetXaxis()->SetLimits(-absxlim, absxlim);
0391 if (logy)
0392 v_SPHENIX_dNdeta_phobosapproach[i]->GetYaxis()->SetMoreLogLabels();
0393 v_PHOBOS_dNdeta[i]->GetXaxis()->SetNdivisions(505);
0394
0395 v_PHOBOS_dNdeta[i]->GetXaxis()->SetLabelOffset(-0.005);
0396 v_PHOBOS_dNdeta[i]->GetXaxis()->SetLabelSize(axis_label_size * pad2_labeltextscale);
0397 v_PHOBOS_dNdeta[i]->GetXaxis()->SetTickLength(xticklength * pad2_tickscale / 1.6);
0398 v_PHOBOS_dNdeta[i]->GetYaxis()->SetTickLength(yticklength * pad2_tickscale);
0399
0400 v_PHOBOS_dNdeta[i]->Draw("A 3 P");
0401 v_sphenix_dNdeta[i]->Draw("5 P same");
0402 }
0403 else
0404 {
0405 v_PHOBOS_dNdeta[i]->Draw("3 P same");
0406 v_sphenix_dNdeta[i]->Draw("5 P same");
0407 }
0408
0409 double x, y;
0410 x = v_sphenix_dNdeta[i]->GetPointX(v_sphenix_dNdeta[i]->GetN() - 1) + v_sphenix_dNdeta[i]->GetErrorXhigh(v_sphenix_dNdeta[i]->GetN() - 1);
0411 y = v_sphenix_dNdeta[i]->GetPointY(v_sphenix_dNdeta[i]->GetN() - 1) + v_sphenix_dNdeta[i]->GetErrorYhigh(v_sphenix_dNdeta[i]->GetN() - 1);
0412
0413 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;
0414 TLatex *l = new TLatex(x, y, v_SPHENIX_labels[i].c_str());
0415 l->SetTextAlign(kHAlignLeft + kVAlignBottom);
0416 l->SetTextSize(centlabel_textsize * pad2_labeltextscale);
0417
0418 l->SetTextColor(TColor::GetColor(color_sphenix_combine.c_str()));
0419 l->Draw();
0420 }
0421
0422 leg->AddEntry(v_sphenix_dNdeta[0], leg_sphenix_combine.c_str(), "pf");
0423 leg2->AddEntry(v_PHOBOS_dNdeta[0], leg_phobos.c_str(), "pf");
0424 }
0425 else
0426 {
0427 for (size_t i = 1; i < v_SPHENIX_dNdeta_phobosapproach.size() && i < v_SPHENIX_dNdeta_cmsapproach.size(); i += 2)
0428 {
0429 if (i == 1)
0430 {
0431 v_SPHENIX_dNdeta_phobosapproach[i]->SetMaximum(ymax_pad);
0432 v_SPHENIX_dNdeta_phobosapproach[i]->SetMinimum(ymin_pad);
0433
0434 v_SPHENIX_dNdeta_phobosapproach[i]->GetXaxis()->SetLimits(-absxlim, absxlim);
0435 if (logy)
0436 v_SPHENIX_dNdeta_phobosapproach[i]->GetYaxis()->SetMoreLogLabels();
0437 v_SPHENIX_dNdeta_phobosapproach[i]->GetXaxis()->SetNdivisions(505);
0438
0439 v_SPHENIX_dNdeta_phobosapproach[i]->GetXaxis()->SetLabelOffset(-0.006);
0440 v_SPHENIX_dNdeta_phobosapproach[i]->GetXaxis()->SetLabelSize(axis_label_size * pad2_labeltextscale);
0441 v_SPHENIX_dNdeta_phobosapproach[i]->GetXaxis()->SetTickLength(xticklength * pad2_tickscale / 1.6);
0442 v_SPHENIX_dNdeta_phobosapproach[i]->GetYaxis()->SetTickLength(yticklength * pad2_tickscale);
0443
0444 v_SPHENIX_dNdeta_phobosapproach[i]->Draw("A 5 P");
0445 v_SPHENIX_dNdeta_cmsapproach[i]->Draw("5 P same");
0446 }
0447 else
0448 {
0449
0450 v_SPHENIX_dNdeta_phobosapproach[i]->Draw("5 P same");
0451 v_SPHENIX_dNdeta_cmsapproach[i]->Draw("5 P same");
0452 }
0453
0454
0455 double x, y;
0456 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);
0457 y = v_SPHENIX_dNdeta_phobosapproach[i]->GetPointY(v_SPHENIX_dNdeta_phobosapproach[i]->GetN() - 1);
0458 cout << "phobos: x=" << x << " y=" << y << endl;
0459 TLatex *lphobos = new TLatex(x + 0.02, y, v_SPHENIX_labels[i].c_str());
0460 lphobos->SetTextAlign(kHAlignLeft + kVAlignCenter);
0461 lphobos->SetTextSize(centlabel_textsize * pad2_labeltextscale);
0462
0463 lphobos->SetTextColor(TColor::GetColor(color_sphenix_phobosapproach.c_str()));
0464 lphobos->Draw();
0465
0466 x = v_SPHENIX_dNdeta_cmsapproach[i]->GetPointX(0) - v_SPHENIX_dNdeta_cmsapproach[i]->GetErrorXlow(0);
0467 y = v_SPHENIX_dNdeta_cmsapproach[i]->GetPointY(0);
0468 cout << "cms: x=" << x << " y=" << y << endl;
0469 TLatex *lcms = new TLatex(x - 0.02, y, v_SPHENIX_labels[i].c_str());
0470
0471 lcms->SetTextAlign(kHAlignRight + kVAlignCenter);
0472 lcms->SetTextSize(centlabel_textsize * pad2_labeltextscale);
0473
0474 lcms->SetTextColor(TColor::GetColor(color_sphenix_cmsapproach.c_str()));
0475 lcms->Draw();
0476 }
0477
0478 leg->AddEntry(v_SPHENIX_dNdeta_phobosapproach[0], leg_sphenix_phobosapproach.c_str(), "pf");
0479 leg->AddEntry(v_SPHENIX_dNdeta_cmsapproach[0], leg_sphenix_cmsapproach.c_str(), "pf");
0480 }
0481 leg->Draw();
0482 if (draw_phobos)
0483 leg2->Draw();
0484
0485 c->cd();
0486
0487 TLatex *xaxistitle = new TLatex();
0488 xaxistitle->SetTextAlign(kHAlignCenter + kVAlignCenter);
0489 xaxistitle->SetTextSize(0.049);
0490 xaxistitle->DrawLatexNDC(0.56, 0.035, "Pseudorapidity #eta");
0491 c->RedrawAxis();
0492 if (docombine)
0493 {
0494 if (draw_brahms)
0495 {
0496 c->SaveAs(Form("%s/dNdEta_RHIC_combine_wBRAHMS_altCent.pdf", plotdir.c_str()));
0497 c->SaveAs(Form("%s/dNdEta_RHIC_combine_wBRAHMS_altCent.png", plotdir.c_str()));
0498 }
0499 else
0500 {
0501 c->SaveAs(Form("%s/dNdEta_RHIC_combine_woBRAHMS_altCent.pdf", plotdir.c_str()));
0502 c->SaveAs(Form("%s/dNdEta_RHIC_combine_woBRAHMS_altCent.png", plotdir.c_str()));
0503 }
0504 }
0505 else
0506 {
0507 if (draw_brahms)
0508 {
0509 c->SaveAs(Form("%s/dNdEta_RHIC_wBRAHMS_altCent.pdf", plotdir.c_str()));
0510 c->SaveAs(Form("%s/dNdEta_RHIC_wBRAHMS_altCent.png", plotdir.c_str()));
0511 }
0512 else
0513 {
0514 c->SaveAs(Form("%s/dNdEta_RHIC_woBRAHMS_altCent.pdf", plotdir.c_str()));
0515 c->SaveAs(Form("%s/dNdEta_RHIC_woBRAHMS_altCent.png", plotdir.c_str()));
0516 }
0517 }
0518 }