File indexing completed on 2025-08-05 08:12:47
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include <TChain.h>
0012 #include <TFile.h>
0013 #include <TGraphAsymmErrors.h>
0014 #include <TGraphErrors.h>
0015 #include <TLatex.h>
0016 #include <TLegend.h>
0017 #include <TLine.h>
0018 #include <TString.h>
0019 #include <TTree.h>
0020 #include <TVirtualFitter.h>
0021 #include <cassert>
0022 #include <cmath>
0023 #include <vector>
0024 #include "SaveCanvas.C"
0025 #include "sPhenixStyle.C"
0026
0027 using namespace std;
0028
0029 TGraphAsymmErrors *
0030 GetFONLL_C();
0031 TGraphAsymmErrors *
0032 GetFONLL_B();
0033 TGraph *pQCDModel_HuangKangVitev(const double g);
0034 TGraph *LIDO_Ke();
0035 TGraph *
0036 GetPHENIX_jet();
0037
0038 TFile *_file0 = NULL;
0039 TTree *T = NULL;
0040
0041 TH1 *CrossSection2RelUncert(const TH1F *h_cross,
0042 const double suppression,
0043 const double deta,
0044 const double pp_quiv_int_lum)
0045 {
0046 assert(h_cross);
0047 TH1 *
0048 h_ratio = (TH1 *)
0049 h_cross->Clone(TString(h_cross->GetName()) + Form("_copy%d", rand()));
0050
0051
0052 h_ratio->Scale(deta * h_ratio->GetXaxis()->GetBinWidth(0) * pp_quiv_int_lum * suppression);
0053 h_ratio->Rebin(5);
0054
0055 for (int i = 1; i <= h_ratio->GetNbinsX(); ++i)
0056 {
0057 const double yield = h_ratio->GetBinContent(i);
0058
0059 if (yield > 0)
0060 {
0061 h_ratio->SetBinContent(i, suppression);
0062
0063 h_ratio->SetBinError(i, suppression / sqrt(yield));
0064 }
0065 else
0066 {
0067 h_ratio->SetBinContent(i, 0);
0068
0069 h_ratio->SetBinError(i, 0);
0070 }
0071 }
0072
0073 h_ratio->GetYaxis()->SetTitle("Relative Cross Section and Uncertainty");
0074
0075 return h_ratio;
0076 }
0077
0078 TGraphErrors *GetRAA(TH1 *h_pp, TH1 *h_AA)
0079 {
0080 int n_bin = 0;
0081
0082 double xs[1000] = {0};
0083 double ys[1000] = {0};
0084 double eys[1000] = {0};
0085
0086 assert(h_pp);
0087 assert(h_AA);
0088 assert(h_pp->GetNbinsX() == h_AA->GetNbinsX());
0089
0090 for (int i = 1; i <= h_pp->GetNbinsX(); ++i)
0091 {
0092 if (h_pp->GetBinError(i) > 0 && h_pp->GetBinError(i) < 1 && h_AA->GetBinError(i) > 0 && h_AA->GetBinError(i) < 1)
0093 {
0094 xs[n_bin] = h_pp->GetXaxis()->GetBinCenter(i);
0095
0096 ys[n_bin] = h_AA->GetBinContent(i) / h_pp->GetBinContent(i);
0097
0098 eys[n_bin] = ys[n_bin] * sqrt(pow(h_AA->GetBinError(i) / h_AA->GetBinContent(i), 2) + pow(h_pp->GetBinError(i) / h_pp->GetBinContent(i), 2));
0099
0100 n_bin += 1;
0101 }
0102 }
0103
0104 TGraphErrors *ge = new TGraphErrors(n_bin, xs, ys, NULL, eys);
0105 ge->SetName(TString("RAA_") + h_AA->GetName());
0106
0107 return ge;
0108 }
0109
0110 void CrossSection2RAA(const TString infile, const bool use_AA_jet_trigger = true, const double dy = .7 * 2)
0111 {
0112 TFile *f = TFile::Open(infile + "Draw_HFJetTruth_DrawCrossSection.root");
0113 assert(f);
0114
0115 TH1F *hall = (TH1F *) f->GetObjectChecked("hall", "TH1F");
0116 assert(hall);
0117 TH1F *h_b = (TH1F *) f->GetObjectChecked("h_b", "TH1F");
0118 assert(h_b);
0119
0120 TString s_suffix(use_AA_jet_trigger ? "_AAJetTriggered" : "_3yr");
0121 s_suffix += TString(Form("_deta%.2f", dy / 2));
0122
0123 const double b_jet_RAA = 0.6;
0124
0125 const double pp_eff = 0.6;
0126 const double pp_purity = 0.4;
0127 const double AuAu_eff = 0.4;
0128 const double AuAu_purity = 0.4;
0129
0130
0131
0132
0133
0134 const double pp_lumi = 62;
0135 const double pp_inelastic_crosssec = 42e-3 / 1e-12;
0136
0137 const double AuAu_MB_Evt = use_AA_jet_trigger ? 218e9 : 142e9;
0138 const double pAu_MB_Evt = 600e9;
0139
0140 const double AuAu_Ncoll_C0_10 = 960.2;
0141 const double AuAu_Ncoll_C0_20 = 770.6;
0142 const double AuAu_Ncoll_C0_100 = 250;
0143 const double pAu_Ncoll_C0_100 = 4.7;
0144
0145 const double AuAu_eq_lumi_C0_10 = AuAu_MB_Evt * 0.1 * AuAu_Ncoll_C0_10 / pp_inelastic_crosssec;
0146 const double AuAu_eq_lumi_C0_20 = AuAu_MB_Evt * 0.2 * AuAu_Ncoll_C0_20 / pp_inelastic_crosssec;
0147 const double AuAu_eq_lumi_C0_100 = AuAu_MB_Evt * 1 * AuAu_Ncoll_C0_100 / pp_inelastic_crosssec;
0148
0149 const double pAu_eq_lumi_C0_100 = pAu_MB_Evt * 1 * pAu_Ncoll_C0_100 / pp_inelastic_crosssec;
0150
0151 cout << "CrossSection2RAA integrated luminosity assumptions in pb^-1: " << endl;
0152 cout << "\t"
0153 << "pp_lumi = " << pp_lumi << endl;
0154 cout << "\t"
0155 << "AuAu_eq_lumi_C0_10 = " << AuAu_eq_lumi_C0_10 << endl;
0156 cout << "\t"
0157 << "AuAu_eq_lumi_C0_20 = " << AuAu_eq_lumi_C0_20 << endl;
0158 cout << "\t"
0159 << "AuAu_eq_lumi_C0_100 = " << AuAu_eq_lumi_C0_100 << endl;
0160 cout << "\t"
0161 << "pAu_eq_lumi_C0_100 = " << pAu_eq_lumi_C0_100 << endl;
0162
0163 TCanvas *c1 = new TCanvas("Draw_HFJetTruth_CrossSection2RAA_Ratio" + s_suffix, "Draw_HFJetTruth_CrossSection2RAA_Ratio" + s_suffix, 700, 600);
0164 c1->Divide(1, 1);
0165 int idx = 1;
0166 TPad *p;
0167
0168 p = (TPad *) c1->cd(idx++);
0169 c1->Update();
0170
0171
0172
0173
0174 TH1 *g_pp = CrossSection2RelUncert(h_b, 1., dy, pp_lumi * pp_eff * pp_purity);
0175 TH1 *g_AA = CrossSection2RelUncert(h_b, b_jet_RAA, dy, AuAu_eq_lumi_C0_10 * AuAu_eff * AuAu_purity);
0176
0177 g_pp->SetLineColor(kRed);
0178 g_AA->SetLineColor(kBlue);
0179
0180 g_pp->Draw();
0181 g_AA->Draw("same");
0182 SaveCanvas(c1, infile + "_" + TString(c1->GetName()), kTRUE);
0183
0184 c1 = new TCanvas("Draw_HFJetTruth_CrossSection2RAA" + s_suffix, "Draw_HFJetTruth_CrossSection2RAA" + s_suffix, 1100, 800);
0185 c1->Divide(1, 1);
0186 idx = 1;
0187
0188 p = (TPad *) c1->cd(idx++);
0189 c1->Update();
0190
0191 p->DrawFrame(11, 0, 45, 1.2)
0192 ->SetTitle(";Transverse Momentum [GeV/#it{c}];#it{R}_{AA}");
0193
0194 TGraphErrors *ge_RAA = GetRAA(g_pp, g_AA);
0195
0196 ge_RAA->SetLineWidth(4);
0197 ge_RAA->SetMarkerStyle(kFullCircle);
0198 ge_RAA->SetMarkerSize(3);
0199
0200 ge_RAA->Draw("pe");
0201 ge_RAA->Print();
0202
0203 TLegend *leg = new TLegend(.0, .67, .85, .91);
0204 leg->SetFillStyle(0);
0205 leg->AddEntry("", "#it{#bf{sPHENIX}} Projection", "");
0206
0207 leg->AddEntry("", Form("#it{b}-jet Anti-k_{T} R=0.4, 0-10%% Au+Au, Year 1-3"), "");
0208 leg->AddEntry("", Form("#it{p}+#it{p}: %.0fpb^{-1} samp., %.0f%% Eff., %.0f%% Pur.", pp_lumi, pp_eff * 100, pp_purity * 100), "");
0209 leg->AddEntry("", Form("Au+Au: %.0fnb^{-1} rec., %.0f%% Eff., %.0f%% Pur.", AuAu_MB_Evt / 6.8252 / 1e9, AuAu_eff * 100, AuAu_purity * 100), "");
0210 leg->Draw();
0211
0212 TLegend *leg2 = new TLegend(.17, .70, .88, .77);
0213 leg2->AddEntry(ge_RAA, "#it{b}-jet #it{R}_{AA}, Au+Au 0-10%C, #sqrt{s_{NN}}=200 GeV", "pl");
0214
0215
0216 SaveCanvas(c1, infile + "_" + TString(c1->GetName()), kTRUE);
0217
0218 c1 = new TCanvas("Draw_HFJetTruth_CrossSection2RAA_Theory" + s_suffix, "Draw_HFJetTruth_CrossSection2RAA_Theory" + s_suffix, 1100, 800);
0219 c1->Divide(1, 1);
0220 idx = 1;
0221 *p;
0222
0223 p = (TPad *) c1->cd(idx++);
0224 c1->Update();
0225
0226 p->DrawFrame(11, 0, 45, 1.2)
0227 ->SetTitle(";p_{T} [GeV];#it{R}_{AA}");
0228
0229 TGraph *gLIDO = LIDO_Ke();
0230 gLIDO->SetFillColor(kAzure - 9);
0231 gLIDO->Draw("3");
0232
0233 TGraph *g20 = pQCDModel_HuangKangVitev(2.0);
0234 TGraph *g22 = pQCDModel_HuangKangVitev(2.2);
0235
0236 g20->SetLineColor(kGreen + 3);
0237 g22->SetLineColor(kRed + 3);
0238 g20->SetLineWidth(3);
0239 g22->SetLineWidth(3);
0240
0241 g20->Draw("l");
0242 g22->Draw("l");
0243
0244 ge_RAA->DrawClone("pe");
0245 leg->DrawClone();
0246
0247
0248 TLegend *leg1 = new TLegend(.195, .17, .7, .3);
0249
0250 leg1->SetHeader("pQCD, Phys.Lett. B726 (2013) 251-256");
0251 leg1->AddEntry(g20, "g^{med} = 2.0", "l");
0252 leg1->AddEntry(g22, "g^{med} = 2.2", "l");
0253 leg1->Draw();
0254
0255 TLegend *leg_lido = new TLegend(.2, .32, .55, .37);
0256 leg_lido->AddEntry(gLIDO, "LIDO, arXiv:2008.07622 [nucl-th]", "f");
0257 leg_lido->Draw();
0258
0259 SaveCanvas(c1, infile + "_" + TString(c1->GetName()), kTRUE);
0260 }
0261
0262 TGraphErrors *GetZgPrediction(const TString data_config = "me_bbg")
0263 {
0264
0265
0266
0267
0268
0269 std::vector<double> zgs;
0270 std::vector<double> ymaxs;
0271 std::vector<double> ymins;
0272
0273 std::vector<double> ys;
0274 std::vector<double> eys;
0275
0276 if (data_config == "me_bbg")
0277 {
0278 zgs = {0.1,
0279 0.11,
0280 0.12,
0281 0.13,
0282 0.14,
0283 0.15,
0284 0.16,
0285 0.17,
0286 0.18,
0287 0.19,
0288 0.2,
0289 0.21,
0290 0.22,
0291 0.23,
0292 0.24,
0293 0.25,
0294 0.26,
0295 0.27,
0296 0.28,
0297 0.29,
0298 0.3,
0299 0.31,
0300 0.32,
0301 0.33,
0302 0.34,
0303 0.35,
0304 0.36,
0305 0.37,
0306 0.38,
0307 0.39,
0308 0.4,
0309 0.41,
0310 0.42,
0311 0.43,
0312 0.44,
0313 0.45,
0314 0.46,
0315 0.47,
0316 0.48,
0317 0.49,
0318 0.5};
0319
0320 ymaxs = {11.564966612100944,
0321 10.228774883485626,
0322 9.040211253937503,
0323 8.00426321286891,
0324 7.085316588030289,
0325 6.304057794111209,
0326 5.620901023346734,
0327 5.020252217399414,
0328 4.471418358587862,
0329 4.006557331982638,
0330 3.6029776961294937,
0331 3.2746530582558067,
0332 2.979082995195153,
0333 2.717548121923332,
0334 2.484039405367637,
0335 2.2743520629543212,
0336 2.0857993148942358,
0337 1.916461379592078,
0338 1.7644938665497385,
0339 1.6282027691535934,
0340 1.5063707131889736,
0341 1.3971555437989853,
0342 1.2987288248009365,
0343 1.2107212053236827,
0344 1.131621650833046,
0345 1.0605838573254032,
0346 0.9969458228908805,
0347 0.941899699579719,
0348 0.8934983992713553,
0349 0.8508943534347049,
0350 0.8130937637364388,
0351 0.7797214265194943,
0352 0.7506054526040817,
0353 0.7255735799970017,
0354 0.7043026708717507,
0355 0.6866658867399881,
0356 0.6724855329238311,
0357 0.6615441971815835,
0358 0.6538330585599965,
0359 0.6493379751029307,
0360 0.6477595200387519};
0361 ymins = {8.872885875265245,
0362 8.111748205961844,
0363 7.432473620102464,
0364 6.797408173274767,
0365 6.186769713061456,
0366 5.608088106815033,
0367 5.084027720317393,
0368 4.610111938188973,
0369 4.187760399167046,
0370 3.7940340683954212,
0371 3.43117457064948,
0372 3.093119987479635,
0373 2.7861576826055696,
0374 2.5128579366528596,
0375 2.270447062142767,
0376 2.055432334380884,
0377 1.8652346826114092,
0378 1.6966233161676936,
0379 1.5473576814988068,
0380 1.4149243923530526,
0381 1.2976881530156943,
0382 1.1933534033076159,
0383 1.1006617243222991,
0384 1.018247797082035,
0385 0.9450088178795155,
0386 0.8800255813710026,
0387 0.8223509153369435,
0388 0.7710124745428798,
0389 0.7244026618659434,
0390 0.6749851216252735,
0391 0.6388960527749336,
0392 0.6074597301268359,
0393 0.5801575320223376,
0394 0.5567239908569284,
0395 0.5368940589741338,
0396 0.5204904428643295,
0397 0.5073303543085547,
0398 0.4972605201973995,
0399 0.4901298441121407,
0400 0.4859016247798608,
0401 0.4844717994196453};
0402 }
0403 else if (data_config == "bbg_zg")
0404 {
0405 zgs = {0.1,
0406 0.11,
0407 0.12,
0408 0.13,
0409 0.14,
0410 0.15,
0411 0.16,
0412 0.17,
0413 0.18,
0414 0.19,
0415 0.2,
0416 0.21,
0417 0.22,
0418 0.23,
0419 0.24,
0420 0.25,
0421 0.26,
0422 0.27,
0423 0.28,
0424 0.29,
0425 0.3,
0426 0.31,
0427 0.32,
0428 0.33,
0429 0.34,
0430 0.35,
0431 0.36,
0432 0.37,
0433 0.38,
0434 0.39,
0435 0.4,
0436 0.41,
0437 0.42,
0438 0.43,
0439 0.44,
0440 0.45,
0441 0.46,
0442 0.47,
0443 0.48,
0444 0.49,
0445 0.5};
0446
0447 ymaxs = {9.762434858721084,
0448 8.47616359817982,
0449 7.492676243945642,
0450 6.654010010935872,
0451 5.913925919575108,
0452 5.27028638644749,
0453 4.713862130785145,
0454 4.2338140867044,
0455 3.8359176524435012,
0456 3.5411710604457696,
0457 3.2780402997684046,
0458 3.0428481843445376,
0459 2.8313528228811093,
0460 2.64115838360015,
0461 2.4819574262280666,
0462 2.338567310713753,
0463 2.2090001831145045,
0464 2.091727244023134,
0465 1.9854179724262009,
0466 1.888790011179277,
0467 1.8008939425055928,
0468 1.7209392536426298,
0469 1.6482358047754673,
0470 1.582167173395633,
0471 1.5221883540849073,
0472 1.467818836564728,
0473 1.4186285882228657,
0474 1.3742395815301207,
0475 1.3343146951863025,
0476 1.2985549222721922,
0477 1.266698029272377,
0478 1.2385132145874334,
0479 1.2137978220476016,
0480 1.1923789991503813,
0481 1.1741068974344762,
0482 1.1588532760513377,
0483 1.1465131698787123,
0484 1.1370016290107832,
0485 1.1302536619705346,
0486 1.1262226895802339,
0487 1.124882446490406};
0488 ymins = {7.5042886917903475,
0489 6.698904277963574,
0490 6.13325229167674,
0491 5.642204967225616,
0492 5.184676746368783,
0493 4.767489013960836,
0494 4.391074470600173,
0495 4.0530921099573165,
0496 3.747687167866155,
0497 3.4368852671586723,
0498 3.1391359733756863,
0499 2.872328619918876,
0500 2.637262134930488,
0501 2.430875459603178,
0502 2.24954656566354,
0503 2.090040255967163,
0504 1.9492781360305134,
0505 1.8247013582708238,
0506 1.7141703670450044,
0507 1.61589253533197,
0508 1.528349666705045,
0509 1.4502575139246554,
0510 1.3805229398832255,
0511 1.318209032398018,
0512 1.2625160741157493,
0513 1.2127547858323617,
0514 1.1683292385783044,
0515 1.1287292083339666,
0516 1.0935097910299434,
0517 1.0622884717784657,
0518 1.034734064269136,
0519 1.0105633112172412,
0520 0.9895286076610499,
0521 0.9714187985395711,
0522 0.9560602609384745,
0523 0.9433012733218156,
0524 0.9330225001525349,
0525 0.9251255015159976,
0526 0.9195356933679992,
0527 0.9162028180740642,
0528 0.9150954615243209};
0529 }
0530 else if (data_config == "bbg_zg_ratio")
0531 {
0532 zgs = {0.1,
0533 0.11,
0534 0.12,
0535 0.13,
0536 0.14,
0537 0.15,
0538 0.16,
0539 0.17,
0540 0.18,
0541 0.19,
0542 0.2,
0543 0.21,
0544 0.22,
0545 0.23,
0546 0.24,
0547 0.25,
0548 0.26,
0549 0.27,
0550 0.28,
0551 0.29,
0552 0.3,
0553 0.31,
0554 0.32,
0555 0.33,
0556 0.34,
0557 0.35,
0558 0.36,
0559 0.37,
0560 0.38,
0561 0.39,
0562 0.4,
0563 0.41,
0564 0.42,
0565 0.43,
0566 0.44,
0567 0.45,
0568 0.46,
0569 0.47,
0570 0.48,
0571 0.49,
0572 0.5};
0573
0574 ymaxs = {1.151982890151877,
0575 1.1664826852504495,
0576 1.172251389758727,
0577 1.1741255109207875,
0578 1.1714608638124098,
0579 1.1681087817987694,
0580 1.1632495306605235,
0581 1.155513671471374,
0582 1.1397719364148045,
0583 1.127051000823432,
0584 1.1119535300939027,
0585 1.0948424254600155,
0586 1.0760601346878573,
0587 1.055878624941244,
0588 1.0345055306535231,
0589 1.0120360659743335,
0590 0.9890362761525937,
0591 0.9655962994186251,
0592 0.9421308194393136,
0593 0.9186226313722144,
0594 0.895503201582456,
0595 0.8725753749800488,
0596 0.8501317891243333,
0597 0.8282275629034408,
0598 0.8069766690984213,
0599 0.7865577997621885,
0600 0.7669973631487963,
0601 0.7481674017140337,
0602 0.7304488459867333,
0603 0.7015931864543251,
0604 0.688687461757641,
0605 0.6766716415600889,
0606 0.6657247620008147,
0607 0.6559757617778346,
0608 0.6474142123454508,
0609 0.6401392451833807,
0610 0.6341568146936112,
0611 0.6294320803863227,
0612 0.6260810257194698,
0613 0.6241574732399557,
0614 0.6234333158108032};
0615 ymins = {1.096464697907084,
0616 1.1148057864579233,
0617 1.1277713781468222,
0618 1.136191604396884,
0619 1.1385826379515291,
0620 1.135722028529819,
0621 1.1284916532508826,
0622 1.1169591429988097,
0623 1.103666045140106,
0624 1.0854505401169579,
0625 1.0654328782085087,
0626 1.0442210459999413,
0627 1.0223533047937827,
0628 1.0001575721016631,
0629 0.9777309842954044,
0630 0.9550386037145693,
0631 0.9325222701437524,
0632 0.9101431388163338,
0633 0.8882340053200084,
0634 0.8667312777949217,
0635 0.8459583146041589,
0636 0.8256251575966925,
0637 0.8059969846816892,
0638 0.7869325271199851,
0639 0.7684747631437073,
0640 0.750777564978232,
0641 0.733824152526011,
0642 0.7174732270599817,
0643 0.7020666530820847,
0644 0.6931802179916633,
0645 0.6795859695799639,
0646 0.6666218950521552,
0647 0.6546221226148139,
0648 0.6438152297250573,
0649 0.6342654764486364,
0650 0.6261010548445681,
0651 0.6193616959253557,
0652 0.6140461556406446,
0653 0.6102701796326937,
0654 0.6080839713862733,
0655 0.6072750596686409};
0656 }
0657 else
0658 {
0659 cout << __PRETTY_FUNCTION__ << "Invalid configuration : " << data_config << endl;
0660 exit(1);
0661 }
0662
0663 double integral = 0;
0664 for (int i = 0; i < zgs.size(); ++i)
0665 {
0666 assert(i < ymaxs.size());
0667 assert(i < ymins.size());
0668
0669 ys.push_back(0.5 * (ymaxs[i] + ymins[i]));
0670 eys.push_back(0.5 * fabs(ymaxs[i] - ymins[i]));
0671
0672 integral += (zgs[1] - zgs[0]) * ys[i];
0673 }
0674 cout << __PRETTY_FUNCTION__ << " configuration : " << data_config << " integral = " << integral << endl;
0675
0676 TGraphErrors *ge = new TGraphErrors(zgs.size(), zgs.data(), ys.data(), NULL, eys.data());
0677 ge->SetName(TString("zg_") + data_config);
0678
0679 return ge;
0680 }
0681
0682 TH1 *CrossSection2zg_HistogramMaker(const TH1F *h_cross,
0683 const double suppression,
0684 const double deta, const double pt_max,
0685 const double pp_quiv_int_lum, const TString data_config)
0686 {
0687 assert(h_cross);
0688 TH1 *
0689 h_yield = (TH1 *)
0690 h_cross->Clone(TString(h_cross->GetName()) + Form("_copy%d", rand()));
0691
0692
0693 h_yield->Scale(deta * h_yield->GetXaxis()->GetBinWidth(0) * pp_quiv_int_lum * suppression);
0694
0695
0696 double sum_yield = 0;
0697 for (int i = 1; i <= h_yield->GetNbinsX(); ++i)
0698 {
0699 const double yield = h_yield->GetBinContent(i);
0700 if (h_yield->GetXaxis()->GetBinCenter(i) < pt_max) sum_yield += yield;
0701 }
0702
0703 TGraphErrors *ge_prediction = GetZgPrediction(data_config);
0704 const double bin_width = 0.05;
0705 TH1 *h_zg = new TH1F("hzg_" + data_config, "z_{g}", 0.4 / bin_width, 0.1, 0.5);
0706
0707 for (int i = 1; i <= h_zg->GetNbinsX(); ++i)
0708 {
0709 const double x_center = h_zg->GetBinCenter(i);
0710
0711 const double prediction = ge_prediction->Eval(x_center);
0712
0713 h_zg->SetBinContent(i, prediction);
0714
0715 const double bin_yield = bin_width * prediction * sum_yield;
0716
0717 h_zg->SetBinError(i, prediction / sqrt(bin_yield));
0718 }
0719
0720 return h_zg;
0721 }
0722
0723 void CrossSection2zg(const TString infile, const bool use_AA_jet_trigger = true, const double dy = .7 * 2)
0724 {
0725 TFile *f = TFile::Open(infile + "Draw_HFJetTruth_DrawCrossSection.root");
0726 assert(f);
0727
0728 TH1F *hall = (TH1F *) f->GetObjectChecked("hall", "TH1F");
0729 assert(hall);
0730 TH1F *h_b = (TH1F *) f->GetObjectChecked("h_b", "TH1F");
0731 assert(h_b);
0732
0733 TString s_suffix(use_AA_jet_trigger ? "_AAJetTriggered" : "_3yr");
0734 s_suffix += TString(Form("_deta%.2f", dy / 2));
0735
0736 const double pt_max = 30;
0737
0738 const double b_jet_RAA = 0.6;
0739
0740 const double pp_eff = 0.6;
0741 const double pp_purity = 0.4;
0742 const double AuAu_eff = 0.4;
0743 const double AuAu_purity = 0.4;
0744
0745
0746
0747
0748
0749 const double pp_lumi = 62;
0750 const double pp_inelastic_crosssec = 42e-3 / 1e-12;
0751
0752 const double AuAu_MB_Evt = use_AA_jet_trigger ? 218e9 : 142e9;
0753 const double pAu_MB_Evt = 600e9;
0754
0755 const double AuAu_Ncoll_C0_10 = 960.2;
0756 const double AuAu_Ncoll_C0_20 = 770.6;
0757 const double AuAu_Ncoll_C0_100 = 250;
0758 const double pAu_Ncoll_C0_100 = 4.7;
0759
0760 const double AuAu_eq_lumi_C0_10 = AuAu_MB_Evt * 0.1 * AuAu_Ncoll_C0_10 / pp_inelastic_crosssec;
0761 const double AuAu_eq_lumi_C0_20 = AuAu_MB_Evt * 0.2 * AuAu_Ncoll_C0_20 / pp_inelastic_crosssec;
0762 const double AuAu_eq_lumi_C0_100 = AuAu_MB_Evt * 1 * AuAu_Ncoll_C0_100 / pp_inelastic_crosssec;
0763
0764 const double pAu_eq_lumi_C0_100 = pAu_MB_Evt * 1 * pAu_Ncoll_C0_100 / pp_inelastic_crosssec;
0765
0766 cout << "CrossSection2zg integrated luminosity assumptions in pb^-1: " << endl;
0767 cout << "\t"
0768 << "pp_lumi = " << pp_lumi << endl;
0769 cout << "\t"
0770 << "AuAu_eq_lumi_C0_10 = " << AuAu_eq_lumi_C0_10 << endl;
0771 cout << "\t"
0772 << "AuAu_eq_lumi_C0_20 = " << AuAu_eq_lumi_C0_20 << endl;
0773 cout << "\t"
0774 << "AuAu_eq_lumi_C0_100 = " << AuAu_eq_lumi_C0_100 << endl;
0775 cout << "\t"
0776 << "pAu_eq_lumi_C0_100 = " << pAu_eq_lumi_C0_100 << endl;
0777
0778 TGraphErrors *bbg_zg_prediction = GetZgPrediction("bbg_zg");
0779 TGraphErrors *me_bbg_prediction = GetZgPrediction("me_bbg");
0780 TGraphErrors *bbg_zg_ratio_prediction = GetZgPrediction("bbg_zg_ratio");
0781
0782 TCanvas *c1 = new TCanvas("Draw_HFJetTruth_CrossSection2zg_check" + s_suffix, "Draw_HFJetTruth_CrossSection2zg_check" + s_suffix, 700, 600);
0783 c1->Divide(1, 1);
0784 int idx = 1;
0785 TPad *p;
0786
0787 p = (TPad *) c1->cd(idx++);
0788 c1->Update();
0789
0790
0791
0792
0793 TH1 *g_pp = CrossSection2zg_HistogramMaker(h_b, 1., dy, pt_max, pp_lumi * pp_eff * pp_purity, "bbg_zg");
0794 TH1 *g_AA = CrossSection2zg_HistogramMaker(h_b, b_jet_RAA, dy, pt_max, AuAu_eq_lumi_C0_10 * AuAu_eff * AuAu_purity, "me_bbg");
0795
0796 g_pp->SetLineColor(kRed);
0797 g_AA->SetLineColor(kBlue);
0798
0799 g_pp->Draw();
0800 g_AA->Draw("same");
0801 SaveCanvas(c1, infile + "_" + TString(c1->GetName()), kTRUE);
0802
0803
0804 c1 = new TCanvas("Draw_HFJetTruth_CrossSection2zg" + s_suffix, "Draw_HFJetTruth_CrossSection2RAA" + s_suffix, 1100, 800);
0805 c1->Divide(1, 1);
0806 idx = 1;
0807
0808 p = (TPad *) c1->cd(idx++);
0809 c1->Update();
0810
0811 p->DrawFrame(0.1, 0, .5, 13)
0812 ->SetTitle(";Jet z_{g};1/N_{jet} dN/dz_{g}");
0813
0814
0815
0816
0817 g_AA->SetLineColor(kBlack);
0818 g_AA->SetMarkerColor(kBlack);
0819 g_AA->SetLineWidth(4);
0820 g_AA->SetMarkerStyle(kFullCircle);
0821 g_AA->SetMarkerSize(3);
0822
0823 g_AA->Draw("pe same");
0824 g_AA->Print();
0825
0826 g_pp->SetLineColor(kRed + 2);
0827 g_pp->SetMarkerColor(kRed + 2);
0828 g_pp->SetLineWidth(4);
0829 g_pp->SetMarkerStyle(kFullCircle);
0830 g_pp->SetMarkerSize(3);
0831
0832 g_pp->Draw("pe same");
0833 g_pp->Print();
0834
0835 TLegend *leg = new TLegend(.0, .77, .85, .91);
0836 leg->SetFillStyle(0);
0837 leg->AddEntry("", "#it{#bf{sPHENIX}} Projection, Year 1-3", "");
0838
0839 leg->AddEntry("", Form("#it{b}-jet Anti-k_{T} R=0.4, 15<p_{T}<%.0f GeV, z_{cut}>0.1, #beta=0", pt_max), "");
0840 leg->Draw();
0841
0842 TLegend *leg2 = new TLegend(.2, .6, .85, .75);
0843 leg2->AddEntry(g_pp, Form("#it{p}+#it{p}: %.0fpb^{-1} samp., %.0f%% Eff., %.0f%% Pur.", pp_lumi, pp_eff * 100, pp_purity * 100), "pe");
0844 leg2->AddEntry(g_AA, Form("Au+Au: %.0fnb^{-1} rec., %.0f%% Eff., %.0f%% Pur.", AuAu_MB_Evt / 6.8252 / 1e9, AuAu_eff * 100, AuAu_purity * 100), "pe");
0845 leg2->SetFillStyle(0);
0846 leg2->Draw();
0847
0848 SaveCanvas(c1, infile + "_" + TString(c1->GetName()), kTRUE);
0849
0850 c1 = new TCanvas("Draw_HFJetTruth_CrossSection2zg_ratio" + s_suffix, "Draw_HFJetTruth_CrossSection2zg_ratio" + s_suffix, 1100, 800);
0851 c1->Divide(1, 1);
0852 idx = 1;
0853
0854 p = (TPad *) c1->cd(idx++);
0855 c1->Update();
0856
0857 p->DrawFrame(0.1, .55, .5, 1.5)
0858 ->SetTitle(";Jet z_{g};P_{AA}(z_{g})/P_{pp}(z_{g})");
0859
0860 bbg_zg_ratio_prediction->SetFillColor(kBlue - 5);
0861 bbg_zg_ratio_prediction->Draw("3");
0862
0863 TH1 *g_AA_ratio = (TH1 *) g_AA->Clone("g_AA_ratio");
0864 g_AA_ratio->Divide(g_pp);
0865
0866 for (int i = 0; i <= g_AA_ratio->GetNbinsX(); ++i)
0867 {
0868 g_AA_ratio->SetBinContent(i, 1.);
0869 }
0870
0871 g_AA_ratio->Draw("pe same X0");
0872 g_AA_ratio->Print();
0873
0874 leg = new TLegend(.0, .67, .85, .91);
0875 leg->SetFillStyle(0);
0876 leg->AddEntry("", "#it{#bf{sPHENIX}} Projection, Year 1-3", "");
0877
0878 leg->AddEntry("", Form("#it{b}-jet Anti-k_{T} R=0.4, 15<p_{T}<%.0f GeV, z_{cut}>0.1, #beta=0", pt_max), "");
0879 leg->AddEntry("", Form("#it{p}+#it{p}: %.0fpb^{-1} samp., %.0f%% Eff., %.0f%% Pur.", pp_lumi, pp_eff * 100, pp_purity * 100), "");
0880 leg->AddEntry("", Form("Au+Au: %.0fnb^{-1} rec., %.0f%% Eff., %.0f%% Pur.", AuAu_MB_Evt / 6.8252 / 1e9, AuAu_eff * 100, AuAu_purity * 100), "");
0881 leg->Draw();
0882
0883 leg2 = new TLegend(.2, .2, .75, .3);
0884 leg2->AddEntry(bbg_zg_ratio_prediction, Form("Li, Vitev, PLB 793 (2019)"), "f");
0885 leg2->AddEntry("", Form("b#rightarrowbg, g=2.0#pm0.1 MLL"), "");
0886 leg2->SetFillStyle(0);
0887 leg2->Draw();
0888
0889 SaveCanvas(c1, infile + "_" + TString(c1->GetName()), kTRUE);
0890 }
0891
0892 TGraph *CrossSection2v2Uncert(const TH1F *h_cross,
0893 const double suppression,
0894 const double deta,
0895 const double pp_quiv_int_lum,
0896 const double ep_resolution = 1,
0897 const double pt_shift = 0)
0898 {
0899 assert(h_cross);
0900 TH1 *
0901 h_ratio = (TH1 *)
0902 h_cross->Clone(TString(h_cross->GetName()) + Form("_copyv2%d", rand()));
0903
0904
0905 h_ratio->Scale(deta * h_ratio->GetXaxis()->GetBinWidth(0) * pp_quiv_int_lum * suppression);
0906 h_ratio->Rebin(5);
0907
0908 vector<double> pts;
0909 vector<double> v2s;
0910 vector<double> v2es;
0911
0912 for (int i = 1; i <= h_ratio->GetNbinsX(); ++i)
0913 {
0914 const double yield = h_ratio->GetBinContent(i);
0915
0916 if (yield > 100)
0917 {
0918 h_ratio->SetBinContent(i, 0);
0919
0920 h_ratio->SetBinError(i, 1. / sqrt(2 * yield) / ep_resolution);
0921
0922 pts.push_back(h_ratio->GetBinCenter(i) + pt_shift);
0923 v2s.push_back(h_ratio->GetBinContent(i));
0924 v2es.push_back(h_ratio->GetBinError(i));
0925 }
0926 else
0927 {
0928 h_ratio->SetBinContent(i, 0);
0929
0930 h_ratio->SetBinError(i, 0);
0931 }
0932 }
0933
0934 h_ratio->GetYaxis()->SetTitle("v2 and uncertainty");
0935
0936 TGraph *gr = new TGraphErrors(pts.size(), &pts[0], &v2s[0], 0, &v2es[0]);
0937 gr->SetName(TString("ge_") + h_ratio->GetName());
0938
0939 gr->SetLineWidth(3);
0940 gr->SetMarkerStyle(kFullCircle);
0941 gr->SetMarkerSize(2);
0942
0943 return gr;
0944 }
0945
0946 void CrossSection2v2(const TString infile, const bool use_AA_jet_trigger = true, const double ep_resolution = 0.5, const double dy = .7 * 2)
0947 {
0948 TFile *f = TFile::Open(infile + "Draw_HFJetTruth_DrawCrossSection.root");
0949 assert(f);
0950
0951 TH1F *hall = (TH1F *) f->GetObjectChecked("hall", "TH1F");
0952 assert(hall);
0953 TH1F *h_b = (TH1F *) f->GetObjectChecked("h_b", "TH1F");
0954 assert(h_b);
0955
0956 const double b_jet_RAA = 0.6;
0957
0958 const double pp_eff = 0.6;
0959 const double pp_purity = 0.4;
0960 const double AuAu_eff = 0.4;
0961 const double AuAu_purity = 0.4;
0962
0963
0964
0965
0966
0967 const double pp_lumi = 62;
0968 const double pp_inelastic_crosssec = 42e-3 / 1e-12;
0969
0970 const double AuAu_MB_Evt = use_AA_jet_trigger ? 550e9 : 142e9;
0971 const double pAu_MB_Evt = 600e9;
0972
0973 const double AuAu_Ncoll_C0_10 = 960.2;
0974 const double AuAu_Ncoll_C0_20 = 770.6;
0975 const double AuAu_Ncoll_C10_20 = 603;
0976 const double AuAu_Ncoll_C20_40 = 296;
0977 const double AuAu_Ncoll_C10_40 = (AuAu_Ncoll_C10_20 * 10 + AuAu_Ncoll_C20_40 * 20) / 30;
0978 const double AuAu_Ncoll_C40_60 = 94;
0979 const double AuAu_Ncoll_C60_92 = 15;
0980 const double AuAu_Ncoll_C0_100 = 250;
0981 const double pAu_Ncoll_C0_100 = 4.7;
0982
0983 const double AuAu_eq_lumi_C0_10 = AuAu_MB_Evt * 0.1 * AuAu_Ncoll_C0_10 / pp_inelastic_crosssec;
0984 const double AuAu_eq_lumi_C0_20 = AuAu_MB_Evt * 0.2 * AuAu_Ncoll_C0_20 / pp_inelastic_crosssec;
0985 const double AuAu_eq_lumi_C0_100 = AuAu_MB_Evt * 1 * AuAu_Ncoll_C0_100 / pp_inelastic_crosssec;
0986
0987 const double AuAu_eq_lumi_C10_20 = AuAu_MB_Evt * .1 * AuAu_Ncoll_C10_20 / pp_inelastic_crosssec;
0988 const double AuAu_eq_lumi_C20_40 = AuAu_MB_Evt * .2 * AuAu_Ncoll_C20_40 / pp_inelastic_crosssec;
0989 const double AuAu_eq_lumi_C10_40 = AuAu_MB_Evt * .3 * AuAu_Ncoll_C10_40 / pp_inelastic_crosssec;
0990 const double AuAu_eq_lumi_C40_60 = AuAu_MB_Evt * .2 * AuAu_Ncoll_C40_60 / pp_inelastic_crosssec;
0991 const double AuAu_eq_lumi_C60_92 = AuAu_MB_Evt * (.92 - .6) * AuAu_Ncoll_C60_92 / pp_inelastic_crosssec;
0992
0993 const double pAu_eq_lumi_C0_100 = pAu_MB_Evt * 1 * pAu_Ncoll_C0_100 / pp_inelastic_crosssec;
0994
0995 ;
0996
0997 TString s_suffix(use_AA_jet_trigger ? "_AAJetTriggered" : "_3yr");
0998 s_suffix += Form("_EPR%.1f", ep_resolution);
0999 s_suffix += Form("_deta%.2f", dy / 2);
1000
1001 cout << "CrossSection2v2 integrated luminosity assumptions in pb^-1: " << endl;
1002 cout << "\t"
1003 << "pp_lumi = " << pp_lumi << endl;
1004 cout << "\t"
1005 << "AuAu_eq_lumi_C0_10 = " << AuAu_eq_lumi_C0_10 << endl;
1006 cout << "\t"
1007 << "AuAu_eq_lumi_C0_20 = " << AuAu_eq_lumi_C0_20 << endl;
1008 cout << "\t"
1009 << "AuAu_eq_lumi_C0_100 = " << AuAu_eq_lumi_C0_100 << endl;
1010 cout << "\t"
1011 << "AuAu_eq_lumi_C10_20 = " << AuAu_eq_lumi_C10_20 << endl;
1012 cout << "\t"
1013 << "AuAu_eq_lumi_C20_40 = " << AuAu_eq_lumi_C20_40 << endl;
1014 cout << "\t"
1015 << "AuAu_eq_lumi_C10_40 = " << AuAu_eq_lumi_C10_40 << endl;
1016 cout << "\t"
1017 << "AuAu_eq_lumi_C40_60 = " << AuAu_eq_lumi_C40_60 << endl;
1018 cout << "\t"
1019 << "AuAu_eq_lumi_C60_92 = " << AuAu_eq_lumi_C60_92 << endl;
1020 cout << "\t"
1021 << "pAu_eq_lumi_C0_100 = " << pAu_eq_lumi_C0_100 << endl;
1022
1023 TGraph *g_AA_C0_10 = CrossSection2v2Uncert(h_b, b_jet_RAA, dy, AuAu_eq_lumi_C0_10 * AuAu_eff * AuAu_purity, ep_resolution, -1 * .7);
1024 TGraph *g_AA_C0_20 = CrossSection2v2Uncert(h_b, b_jet_RAA, dy, AuAu_eq_lumi_C0_20 * AuAu_eff * AuAu_purity, ep_resolution, 0);
1025 TGraph *g_AA_C10_20 = CrossSection2v2Uncert(h_b, b_jet_RAA, dy, AuAu_eq_lumi_C10_20 * AuAu_eff * AuAu_purity, ep_resolution, 0);
1026 TGraph *g_AA_C20_40 = CrossSection2v2Uncert(h_b, b_jet_RAA, dy, AuAu_eq_lumi_C20_40 * AuAu_eff * AuAu_purity, ep_resolution, 1 * .7);
1027 TGraph *g_AA_C10_40 = CrossSection2v2Uncert(h_b, b_jet_RAA, dy, AuAu_eq_lumi_C10_40 * AuAu_eff * AuAu_purity, ep_resolution, 1 * .7);
1028 TGraph *g_AA_C40_60 = CrossSection2v2Uncert(h_b, b_jet_RAA, dy, AuAu_eq_lumi_C40_60 * AuAu_eff * AuAu_purity, ep_resolution, 2 * .7);
1029 TGraph *g_AA_C60_92 = CrossSection2v2Uncert(h_b, b_jet_RAA, dy, AuAu_eq_lumi_C60_92 * AuAu_eff * AuAu_purity, ep_resolution, 3 * .7);
1030
1031 g_AA_C0_10->SetLineColor(kBlue + 3);
1032 g_AA_C10_20->SetLineColor(kAzure + 3);
1033 g_AA_C20_40->SetLineColor(kTeal + 3);
1034 g_AA_C10_40->SetLineColor(kTeal + 3);
1035 g_AA_C40_60->SetLineColor(kSpring + 3);
1036
1037 g_AA_C0_10->SetMarkerColor(kBlue + 3);
1038 g_AA_C10_20->SetMarkerColor(kAzure + 3);
1039 g_AA_C20_40->SetMarkerColor(kTeal + 3);
1040 g_AA_C10_40->SetMarkerColor(kTeal + 3);
1041 g_AA_C40_60->SetMarkerColor(kSpring + 3);
1042
1043 g_AA_C0_10->SetMarkerStyle(kFullCircle);
1044 g_AA_C10_20->SetMarkerStyle(kFullSquare);
1045 g_AA_C20_40->SetMarkerStyle(kFullDiamond);
1046 g_AA_C10_40->SetMarkerStyle(kFullDiamond);
1047 g_AA_C40_60->SetMarkerStyle(kFullCross);
1048
1049 g_AA_C0_10->SetLineWidth(4);
1050 g_AA_C0_10->SetMarkerSize(3);
1051 g_AA_C10_40->SetLineWidth(4);
1052 g_AA_C10_40->SetMarkerSize(3);
1053 g_AA_C40_60->SetLineWidth(4);
1054 g_AA_C40_60->SetMarkerSize(3);
1055
1056 TCanvas *c1 = new TCanvas("Draw_HFJetTruth_CrossSection2v2" + s_suffix, "Draw_HFJetTruth_CrossSection2v2" + s_suffix, 1100, 800);
1057 c1->Divide(1, 1);
1058 int idx = 1;
1059 TPad *p;
1060
1061 p = (TPad *) c1->cd(idx++);
1062 c1->Update();
1063
1064 p->DrawFrame(15, -.1, 40, .3)
1065 ->SetTitle(";p_{T} [GeV];v_{2}");
1066
1067 g_AA_C0_10->Draw("pe");
1068
1069
1070 g_AA_C10_40->Draw("pe");
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082 TLegend *leg = new TLegend(.0, .67, .85, .91);
1083 leg->SetFillStyle(0);
1084 leg->AddEntry("", "#it{#bf{sPHENIX}} Projection, Au+Au, Year 1-3", "");
1085 leg->AddEntry("", Form("#it{b}-jet, Anti-k_{T} R=0.4, |#eta|<%.2f,Res(#Psi_{2})=%.1f", dy / 2, ep_resolution), "");
1086 leg->AddEntry("", Form("%.0fnb^{-1} rec. Au+Au, %.0f%% Eff., %.0f%% Pur.", AuAu_MB_Evt / 6.8252 / 1e9, AuAu_eff * 100, AuAu_purity * 100), "");
1087 leg->Draw();
1088
1089 TLegend *leg2 = new TLegend(.19, .5, 1, .67);
1090
1091 leg2->AddEntry(g_AA_C0_10, "0-10% Au+Au", "pl");
1092
1093
1094 leg2->AddEntry(g_AA_C10_40, "10-40% Au+Au ", "pl");
1095
1096 leg2->SetFillStyle(0);
1097 leg2->Draw();
1098
1099 SaveCanvas(c1, infile + "_" + TString(c1->GetName()), kTRUE);
1100 }
1101
1102 void Convert2CrossSection(TH1 *h, const double int_lumi, const double dy)
1103 {
1104 h->Sumw2();
1105
1106 for (int i = 1; i <= h->GetXaxis()->GetNbins(); ++i)
1107 {
1108 const double pT1 = h->GetXaxis()->GetBinLowEdge(i);
1109 const double pT2 = h->GetXaxis()->GetBinUpEdge(i);
1110
1111
1112 const double dpT = pT2 - pT1;
1113
1114
1115 const double count2sigma = 1. / dpT / dy / int_lumi;
1116
1117 h->SetBinContent(i, h->GetBinContent(i) * count2sigma);
1118 h->SetBinError(i, h->GetBinError(i) * count2sigma);
1119 }
1120
1121
1122
1123 h->SetMarkerStyle(kFullCircle);
1124 }
1125
1126 TGraphAsymmErrors *
1127 GetFONLL_B()
1128 {
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164 const double deta = 0.6 * 2;
1165
1166 const double pts[] =
1167 {
1168
1169 10.0000, 11.0526, 12.1053, 13.1579, 14.2105, 15.2632, 16.3158, 17.3684,
1170 18.4211, 19.4737, 20.5263, 21.5789, 22.6316, 23.6842, 24.7368, 25.7895,
1171 26.8421, 27.8947, 28.9474, 30.0000
1172
1173 };
1174
1175 const double centrals[] =
1176 {4.1645e+03, 2.4830e+03, 1.5046e+03, 9.2707e+02, 5.8027e+02, 3.6865e+02,
1177 2.3744e+02, 1.5484e+02, 1.0215e+02, 6.8101e+01, 4.5818e+01, 3.1111e+01,
1178 2.1287e+01, 1.4663e+01, 1.0175e+01, 7.1026e+00, 4.9796e+00, 3.5103e+00,
1179 2.4892e+00, 1.7693e+00};
1180 const double min[] =
1181 {4.1645e+03 - 2.9134e+03, 2.4830e+03 - 1.7438e+03, 1.5046e+03 - 1.0602e+03,
1182 9.2707e+02 - 6.5506e+02, 5.8027e+02 - 4.1098e+02, 3.6865e+02 - 2.6159e+02, 2.3744e+02 - 1.6874e+02, 1.5484e+02 - 1.1016e+02,
1183 1.0215e+02 - 7.2725e+01, 6.8101e+01 - 4.8502e+01, 4.5818e+01 - 3.2631e+01, 3.1111e+01 - 2.2148e+01, 2.1287e+01 - 1.5142e+01,
1184 1.4663e+01 - 1.0419e+01, 1.0175e+01 - 7.2188e+00, 7.1026e+00 - 5.0296e+00, 4.9796e+00 - 3.5183e+00, 3.5103e+00 - 2.4738e+00,
1185 2.4892e+00 - 1.7492e+00, 1.7693e+00 - 1.2394e+00};
1186
1187 const double max[] =
1188 {6.0916e+03 - 4.1645e+03, 3.6234e+03 - 2.4830e+03, 2.1900e+03 - 1.5046e+03,
1189 1.3454e+03 - 9.2707e+02, 8.3990e+02 - 5.8027e+02, 5.3224e+02 - 3.6865e+02, 3.4198e+02 - 2.3744e+02, 2.2257e+02 - 1.5484e+02,
1190 1.4657e+02 - 1.0215e+02, 9.7587e+01 - 6.8101e+01, 6.5588e+01 - 4.5818e+01, 4.4506e+01 - 3.1111e+01, 3.0444e+01 - 2.1287e+01,
1191 2.0974e+01 - 1.4663e+01, 1.4562e+01 - 1.0175e+01, 1.0176e+01 - 7.1026e+00, 7.1439e+00 - 4.9796e+00, 5.0451e+00 - 3.5103e+00,
1192 3.5856e+00 - 2.4892e+00, 2.5556e+00 - 1.7693e+00};
1193
1194 TGraphAsymmErrors *gr = new TGraphAsymmErrors(20, pts, centrals, 0, 0, min,
1195 max);
1196
1197 for (int i = 0; i < gr->GetN(); ++i)
1198 {
1199 (gr->GetY())[i] /= deta;
1200 (gr->GetEYhigh())[i] /= deta;
1201 (gr->GetEYlow())[i] /= deta;
1202 }
1203
1204 return gr;
1205 }
1206
1207 TGraphAsymmErrors *
1208 GetFONLL_C()
1209 {
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245 const double deta = 0.6 * 2;
1246
1247 const double pts[] =
1248 {
1249
1250 10.0000, 11.0526, 12.1053, 13.1579, 14.2105, 15.2632, 16.3158, 17.3684,
1251 18.4211, 19.4737, 20.5263, 21.5789, 22.6316, 23.6842, 24.7368, 25.7895,
1252 26.8421, 27.8947, 28.9474, 30.0000
1253
1254 };
1255
1256 const double centrals[] =
1257 {
1258
1259
1260 9.7368e+03, 4.9069e+03, 2.5743e+03, 1.3990e+03, 7.8344e+02, 4.5087e+02,
1261 2.6550e+02, 1.5978e+02, 9.7903e+01, 6.0993e+01, 3.8605e+01, 2.4727e+01,
1262 1.6036e+01, 1.0532e+01, 6.9729e+00, 4.6560e+00, 3.1409e+00, 2.1346e+00,
1263 1.4557e+00, 9.9826e-01
1264
1265 };
1266 const double min[] =
1267 {
1268
1269
1270 9.7368e+03 - 6.5051e+03, 4.9069e+03 - 3.2787e+03, 2.5743e+03 - 1.7187e+03, 1.3990e+03 - 9.3274e+02, 7.8344e+02 - 5.2138e+02,
1271 4.5087e+02 - 2.9938e+02, 2.6550e+02 - 1.7584e+02, 1.5978e+02 - 1.0551e+02, 9.7903e+01 - 6.4459e+01, 6.0993e+01 - 4.0030e+01,
1272 3.8605e+01 - 2.5248e+01, 2.4727e+01 - 1.6108e+01, 1.6036e+01 - 1.0402e+01, 1.0532e+01 - 6.8006e+00, 6.9729e+00 - 4.4803e+00,
1273 4.6560e+00 - 2.9760e+00, 3.1409e+00 - 1.9970e+00, 2.1346e+00 - 1.3500e+00, 1.4557e+00 - 9.1535e-01, 9.9826e-01 - 6.2400e-01
1274
1275 };
1276
1277 const double max[] =
1278 {
1279
1280
1281 1.5528e+04 - 9.7368e+03, 7.7308e+03 - 4.9069e+03, 4.0147e+03 - 2.5743e+03, 2.1641e+03 - 1.3990e+03, 1.2037e+03 - 7.8344e+02,
1282 6.8902e+02 - 4.5087e+02, 4.0398e+02 - 2.6550e+02, 2.4232e+02 - 1.5978e+02, 1.4811e+02 - 9.7903e+01, 9.2103e+01 - 6.0993e+01,
1283 5.8239e+01 - 3.8605e+01, 3.7286e+01 - 2.4727e+01, 2.4185e+01 - 1.6036e+01, 1.5898e+01 - 1.0532e+01, 1.0540e+01 - 6.9729e+00,
1284 7.0510e+00 - 4.6560e+00, 4.7681e+00 - 3.1409e+00, 3.2500e+00 - 2.1346e+00, 2.2239e+00 - 1.4557e+00, 1.5310e+00 - 9.9826e-01
1285
1286 };
1287
1288 TGraphAsymmErrors *gr = new TGraphAsymmErrors(20, pts, centrals, 0, 0, min,
1289 max);
1290
1291 for (int i = 0; i < gr->GetN(); ++i)
1292 {
1293 (gr->GetY())[i] /= deta;
1294 (gr->GetEYhigh())[i] /= deta;
1295 (gr->GetEYlow())[i] /= deta;
1296 }
1297
1298 return gr;
1299 }
1300
1301 TGraph *pQCDModel_HuangKangVitev(const double g)
1302 {
1303
1304
1305
1306
1307 if (g == 2.0)
1308 {
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324 const double pT[] =
1325 {
1326 10.130739,
1327 13.8755,
1328 17.915709,
1329 19.950817,
1330 21.838287,
1331 24.758118,
1332 28.149998,
1333 30.303171,
1334 35.701473,
1335 40.21508,
1336 49.182514,
1337 54.492188,
1338 59.890347};
1339
1340 const double RAA[] =
1341 {
1342 0.8087402,
1343 0.7102165,
1344 0.64113617,
1345 0.62270004,
1346 0.59506375,
1347 0.5618901,
1348 0.53331053,
1349 0.5194738,
1350 0.52399224,
1351 0.54508865,
1352 0.53758913,
1353 0.5338267,
1354 0.52914274};
1355
1356 return new TGraph(13, pT, RAA);
1357 }
1358 else if (g == 2.2)
1359 {
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375 const double pT[] =
1376 {
1377 10.040924,
1378 11.750852,
1379 15.820038,
1380 18.946156,
1381 19.860464,
1382 21.010588,
1383 24.343283,
1384 29.888279,
1385 35.876522,
1386 40.154125,
1387 47.941647,
1388 55.64066,
1389 59.91793};
1390
1391 const double RAA[] =
1392 {
1393 0.72499925,
1394 0.6623964,
1395 0.56018674,
1396 0.51412654,
1397 0.50491005,
1398 0.484647,
1399 0.44410512,
1400 0.39800778,
1401 0.4006767,
1402 0.42085648,
1403 0.41521555,
1404 0.40865576,
1405 0.4076699};
1406
1407 return new TGraph(13, pT, RAA);
1408 }
1409 else
1410 {
1411 assert(0);
1412 }
1413
1414 return nullptr;
1415 }
1416
1417 TGraph *LIDO_Ke()
1418 {
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436 const vector<double> pT{
1437 9.0,
1438 12.0,
1439 16.0,
1440 21.5,
1441 30.0,
1442 40.0,
1443 52.5,
1444 70.0};
1445
1446 const vector<double> Raa_2piT{
1447 0.704,
1448 0.632,
1449 0.544,
1450 0.519,
1451 0.417,
1452 0.355,
1453 0.317,
1454 0.286};
1455
1456 const vector<double> Raa_1p5piT{
1457 0.586,
1458 0.552,
1459 0.469,
1460 0.368,
1461 0.341,
1462 0.282,
1463 0.186,
1464 0.143};
1465
1466 vector<double> Raa(pT.size());
1467 vector<double> Raa_Error(pT.size());
1468
1469 for (int i = 0; i < pT.size(); ++i)
1470 {
1471 Raa[i] = 0.5 * (Raa_2piT[i] + Raa_1p5piT[i]);
1472 Raa_Error[i] = 0.5 * fabs(Raa_2piT[i] - Raa_1p5piT[i]);
1473 }
1474
1475 return new TGraphErrors(pT.size(), pT.data(), Raa.data(), nullptr, Raa_Error.data());
1476 }
1477
1478 TGraph *
1479 GetPHENIX_jet()
1480 {
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495 const double pt_l[] =
1496 {
1497
1498
1499
1500 12.2, 14.5, 17.3, 20.7, 24.7, 29.4, 35.1, 41.9
1501
1502 };
1503
1504 const double pt_h[] =
1505 {
1506
1507
1508
1509 14.5, 17.3, 20.7, 24.7, 29.4, 35.1, 41.9, 50.0
1510
1511 };
1512 double yval[] =
1513 {
1514
1515
1516
1517 0.0001145, 3.774e-05, 1.263e-05, 4.230e-06, 1.224e-06, 2.962e-07,
1518 5.837e-08, 8.882e-09
1519
1520 };
1521 const double ystat[] =
1522 {
1523
1524
1525
1526 1.0, 1.3, 1.7, 2.3, 3.6, 6.1, 8.9, 11
1527
1528 };
1529
1530 const double ysyst[] =
1531 {
1532
1533
1534
1535 15.6, 16.3, 15.6, 17.3, 19.3, 21.0, 24.3, 32.3
1536
1537 };
1538
1539 double pT_c[100] =
1540 {0};
1541 double pT_e[100] =
1542 {0};
1543 double y_e[100] =
1544 {0};
1545
1546 for (int i = 0; i < 8; ++i)
1547 {
1548 pT_c[i] = 0.5 * (pt_l[i] + pt_h[i]);
1549 pT_e[i] = 0.5 * (pt_h[i] - pt_l[i]);
1550 yval[i] *= 1e9;
1551 y_e[i] = yval[i] * sqrt(ystat[i] * ystat[i] + ysyst[i] * ysyst[i]) / 100;
1552 }
1553
1554 TGraphErrors *gr = new TGraphErrors(8, pT_c, yval, pT_e, y_e);
1555
1556 return gr;
1557 }
1558
1559 void DrawCrossSection(double int_lumi, const double dy)
1560 {
1561 TH1 *hall = new TH1F("hall", ";p_{T} [GeV/c]", 100, 0, 100);
1562 TH1 *h_b = new TH1F("h_b", ";p_{T} [GeV/c]", 100, 0, 100);
1563 TH1 *h_bq = new TH1F("h_bq", ";p_{T} [GeV/c]", 100, 0, 100);
1564 TH1 *h_bh = new TH1F("h_bh", ";p_{T} [GeV/c]", 100, 0, 100);
1565 TH1 *h_bh5 = new TH1F("h_bh5", ";p_{T} [GeV/c]", 100, 0, 100);
1566 TH1 *h_ch5 = new TH1F("h_ch5", ";p_{T} [GeV/c]", 100, 0, 100);
1567 TH1 *h_c = new TH1F("h_c", ";p_{T} [GeV/c]", 100, 0, 100);
1568
1569 T->Draw("AntiKt_Truth_r04.get_pt()>>hall",
1570 "AntiKt_Truth_r04.get_pt()>15 && abs(AntiKt_Truth_r04.get_eta())<0.6",
1571 "goff");
1572
1573 T->Draw("AntiKt_Truth_r04.get_pt()>>h_b",
1574 "AntiKt_Truth_r04.get_pt()>15 && abs(AntiKt_Truth_r04.get_eta())<0.6 && abs(AntiKt_Truth_r04.get_property(1000))==5",
1575 "goff");
1576 T->Draw(
1577 "AntiKt_Truth_r04.get_pt()* AntiKt_Truth_r04.get_property(1001) >>h_bq",
1578 "AntiKt_Truth_r04.get_pt()>15 && abs(AntiKt_Truth_r04.get_eta())<0.6 && abs(AntiKt_Truth_r04.get_property(1000))==5",
1579 "goff");
1580
1581
1582
1583
1584
1585 T->Draw("AntiKt_Truth_r04.get_pt()>>h_bh5",
1586 "AntiKt_Truth_r04.get_pt()>15 && abs(AntiKt_Truth_r04.get_eta())<0.6 && abs(AntiKt_Truth_r04.get_property(1010))==5 && AntiKt_Truth_r04.get_property(1011) * AntiKt_Truth_r04.get_pt() > 5",
1587 "goff");
1588
1589 T->Draw("AntiKt_Truth_r04.get_pt()>>h_c",
1590 "AntiKt_Truth_r04.get_pt()>15 && abs(AntiKt_Truth_r04.get_eta())<0.6 && abs(AntiKt_Truth_r04.get_property(1000))==4",
1591 "goff");
1592 T->Draw("AntiKt_Truth_r04.get_pt()>>h_ch5",
1593 "AntiKt_Truth_r04.get_pt()>15 && abs(AntiKt_Truth_r04.get_eta())<0.6 && abs(AntiKt_Truth_r04.get_property(1010))==4 && AntiKt_Truth_r04.get_property(1011) * AntiKt_Truth_r04.get_pt() > 5",
1594 "goff");
1595
1596 Convert2CrossSection(hall, int_lumi, dy);
1597 Convert2CrossSection(h_b, int_lumi, dy);
1598 Convert2CrossSection(h_bq, int_lumi, dy);
1599 Convert2CrossSection(h_bh5, int_lumi, dy);
1600 Convert2CrossSection(h_ch5, int_lumi, dy);
1601 Convert2CrossSection(h_c, int_lumi, dy);
1602
1603 h_b->SetLineColor(kBlue);
1604 h_b->SetMarkerColor(kBlue);
1605
1606 h_bq->SetLineColor(kBlue + 3);
1607 h_bq->SetMarkerColor(kBlue + 3);
1608
1609 h_bh5->SetLineColor(kBlue + 3);
1610 h_bh5->SetMarkerColor(kBlue + 3);
1611 h_bh5->SetMarkerStyle(kStar);
1612
1613 h_c->SetLineColor(kRed);
1614 h_c->SetMarkerColor(kRed);
1615
1616 h_ch5->SetLineColor(kRed + 3);
1617 h_ch5->SetMarkerColor(kRed + 3);
1618 h_ch5->SetMarkerStyle(kStar);
1619
1620 TGraphAsymmErrors *gr_fonll_b = GetFONLL_B();
1621 gr_fonll_b->SetFillColor(kBlue - 7);
1622 gr_fonll_b->SetFillStyle(3002);
1623 TGraphAsymmErrors *gr_fonll_c = GetFONLL_C();
1624 gr_fonll_c->SetFillColor(kRed - 7);
1625 gr_fonll_c->SetFillStyle(3003);
1626 TGraph *gr_phenix = GetPHENIX_jet();
1627 gr_phenix->SetLineColor(kGray + 2);
1628 gr_phenix->SetMarkerColor(kBlack);
1629 gr_phenix->SetMarkerStyle(kOpenCross);
1630
1631 TCanvas *c1 = new TCanvas("Draw_HFJetTruth_DrawCrossSection", "Draw_HFJetTruth_DrawCrossSection", 1000, 860);
1632
1633 int idx = 1;
1634 TPad *p;
1635
1636 p = (TPad *) c1->cd(idx++);
1637 c1->Update();
1638 p->SetGridx(0);
1639 p->SetGridy(0);
1640 p->SetLogy();
1641
1642 hall->Draw();
1643
1644 gr_fonll_b->Draw("3");
1645 gr_fonll_c->Draw("3");
1646 gr_phenix->Draw("pe");
1647
1648 h_b->Draw("same");
1649 h_bh5->Draw("same");
1650 h_bq->Draw("same");
1651 h_c->Draw("same");
1652 h_ch5->Draw("same");
1653
1654 hall->GetXaxis()->SetRangeUser(12, 60);
1655 hall->GetYaxis()->SetTitle(
1656 "d^{2}#sigma/(dp_{T}dy), d^{2}#sigma/(dp_{T}d#eta) [pb/(GeV/c)]");
1657
1658 TLegend *leg = new TLegend(0.45, 0.6, 0.99, 0.95);
1659 leg->SetFillColor(kWhite);
1660 leg->SetFillStyle(1001);
1661 leg->SetHeader("#it{p}+#it{p} collisions @ sPHENIX, #sqrt{s} = 200 GeV, |#eta|<0.6");
1662 leg->AddEntry(hall, "Inclusive jet, Pythia8, Truth, anti-k_{t}, R=0.4",
1663 "lpe");
1664 leg->AddEntry(h_c, "c-quark jet, Pythia8, Truth, anti-k_{t}, R=0.4", "lpe");
1665 leg->AddEntry(h_b, "b-quark jet, Pythia8, Truth, anti-k_{t}, R=0.4", "lpe");
1666 leg->AddEntry(h_bq, "Leading b-quark in jet, Pythia8, anti-k_{t}, R=0.4", "lpe");
1667 leg->AddEntry(h_bh5,
1668 "b-hadron jet, Pythia8, Truth, anti-k_{t}, R=0.4, p_{T, b-hadron}>5 GeV/c",
1669 "lpe");
1670 leg->AddEntry(gr_phenix, "PHENIX inclusive jet, PRL 116, 122301 (2016)", "ple");
1671 leg->AddEntry(gr_fonll_c, "c-quark, FONLL v1.3.2, CTEQ6.6, |y|<0.6", "f");
1672 leg->AddEntry(gr_fonll_b, "b-quark, FONLL v1.3.2, CTEQ6.6, |y|<0.6", "f");
1673 leg->Draw();
1674
1675 SaveCanvas(c1, TString(_file0->GetName()) + TString(c1->GetName()), kTRUE);
1676 }
1677
1678 void Draw_HFJetTruth_DrawCrossSection_PR(const TString infile)
1679 {
1680 TFile *f = TFile::Open(infile + "Draw_HFJetTruth_DrawCrossSection.root");
1681 assert(f);
1682
1683 TH1F *hall = (TH1F *) f->GetObjectChecked("hall", "TH1F");
1684 assert(hall);
1685 TH1F *h_b = (TH1F *) f->GetObjectChecked("h_b", "TH1F");
1686 assert(h_b);
1687
1688 hall->SetMarkerColor(kBlack);
1689 hall->SetLineColor(kBlack);
1690 hall->SetMarkerStyle(kFullCircle);
1691
1692 h_b->SetMarkerColor(kBlue + 2);
1693 h_b->SetLineColor(kBlue + 2);
1694 h_b->SetMarkerStyle(kFullCircle);
1695
1696 TGraphAsymmErrors *gr_fonll_b = GetFONLL_B();
1697 gr_fonll_b->SetFillColor(kBlue - 7);
1698 gr_fonll_b->SetFillStyle(1001);
1699 TGraphAsymmErrors *gr_fonll_c = GetFONLL_C();
1700 gr_fonll_c->SetFillColor(kRed - 7);
1701 gr_fonll_c->SetFillStyle(3003);
1702 TGraph *gr_phenix = GetPHENIX_jet();
1703 gr_phenix->SetLineColor(kGray + 2);
1704 gr_phenix->SetLineWidth(3);
1705 gr_phenix->SetMarkerColor(kGray + 2);
1706 gr_phenix->SetMarkerSize(2);
1707 gr_phenix->SetMarkerStyle(kFullSquare);
1708
1709 TCanvas *c1 = new TCanvas("Draw_HFJetTruth_DrawCrossSection_PR", "Draw_HFJetTruth_DrawCrossSection_PR", 1000, 860);
1710
1711 int idx = 1;
1712 TPad *p;
1713
1714 p = (TPad *) c1->cd(idx++);
1715 c1->Update();
1716 p->SetLogy();
1717
1718 TH1 *hframe = p->DrawFrame(12, 0.1, 70, 1e8);
1719 hframe->SetTitle(";p_{T} [GeV/c];d^{2}#sigma/(dp_{T}d#eta) [pb/(GeV/c)]");
1720
1721 gr_fonll_b->Draw("3");
1722 gr_phenix->Draw("pe");
1723
1724 hall->Draw("same");
1725 h_b->Draw("same");
1726
1727 TLegend *leg = new TLegend(0.2, 0.7, 0.95, 0.92);
1728 leg->SetFillColor(kWhite);
1729 leg->SetFillStyle(1001);
1730
1731 leg->SetHeader("#it{#bf{sPHENIX }} Simulation, #it{p}+#it{p} #sqrt{s} = 200 GeV, |#eta|<0.6");
1732 leg->AddEntry(hall, "Inclusive jet, PYTHIA8 + CTEQ6L, anti-k_{T} R=0.4",
1733 "lpe");
1734 leg->AddEntry(h_b, "#it{b}-quark jet, PYTHIA8 + CTEQ6L, anti-k_{T} R=0.4", "lpe");
1735 leg->AddEntry(gr_phenix, "PHENIX inclusive jet, PRL 116, 122301 (2016)", "ple");
1736 leg->AddEntry(gr_fonll_b, "#it{b}-quark, FONLL v1.3.2, CTEQ6.6", "f");
1737 leg->Draw();
1738
1739 SaveCanvas(c1, TString(_file0->GetName()) + TString(c1->GetName()), kTRUE);
1740 }
1741
1742 void CrossSection2RAA_Proposal(const TString infile)
1743 {
1744 const double b_jet_RAA = 0.6;
1745
1746
1747
1748
1749
1750 const double pp_inelastic_crosssec = 42e-3 / 1e-12;
1751 const double AuAu_Ncoll_C0_10 = 960.2;
1752 const double AuAu_Ncoll_C0_20 = 770.6;
1753 const double AuAu_Ncoll_C0_100 = 250;
1754 const double pAu_Ncoll_C0_100 = 4.7;
1755
1756
1757
1758
1759
1760
1761
1762 const double pp_lumi_proposal = 175;
1763 const double AuAu_eq_lumi_C0_20_proposal = 0.1e12 * 0.2 * AuAu_Ncoll_C0_20 / pp_inelastic_crosssec;
1764 const double dy_proposal = 2.;
1765 const double eff_proposal = 0.5;
1766
1767 cout << "CrossSection2RAA_Proposal integrated luminosity assumptions in pb^-1: " << endl;
1768 cout << "\t"
1769 << "pp_lumi_proposal = " << pp_lumi_proposal << endl;
1770 cout << "\t"
1771 << "AuAu_eq_lumi_C0_20_proposal = " << AuAu_eq_lumi_C0_20_proposal << endl;
1772
1773 TFile *f = TFile::Open(infile + "Draw_HFJetTruth_DrawCrossSection.root");
1774 assert(f);
1775
1776 TH1F *h_b = (TH1F *) f->GetObjectChecked("h_b", "TH1F");
1777
1778 assert(h_b);
1779
1780 TCanvas *c1 = new TCanvas("Draw_HFJetTruth_CrossSection2RAA_Proposal", "Draw_HFJetTruth_CrossSection2RAA_Proposal", 1000, 860);
1781 c1->Divide(2, 2);
1782 int idx = 1;
1783 TPad *p;
1784
1785 p = (TPad *) c1->cd(idx++);
1786 c1->Update();
1787
1788
1789 p->SetLogy();
1790
1791 h_b->GetYaxis()->SetTitle(
1792 "d^{2}#sigma/(dp_{T}d#eta) [pb/(GeV/c)]");
1793 h_b->Draw();
1794
1795 p = (TPad *) c1->cd(idx++);
1796 c1->Update();
1797
1798
1799 p->SetLogy();
1800
1801 TH1 *h_b_int = (TH1 *) h_b->Clone(TString(h_b->GetName()) + "_IntrgratedCount");
1802 double integral = 0;
1803 for (int i = h_b_int->GetNbinsX(); i >= 1; --i)
1804 {
1805 const double cs = h_b_int->GetBinContent(i);
1806
1807 integral += cs * h_b_int->GetXaxis()->GetBinWidth(i) * dy_proposal * 0.2 * AuAu_Ncoll_C0_20 / pp_inelastic_crosssec;
1808
1809 h_b_int->SetBinContent(i, integral);
1810 h_b_int->SetBinError(i, 0);
1811 }
1812
1813 h_b_int->GetYaxis()->SetTitle(
1814 "(Count > p_{T} cut)/Event 0-20% AuAu");
1815 h_b_int->Draw();
1816
1817 p = (TPad *) c1->cd(idx++);
1818 c1->Update();
1819
1820
1821
1822
1823 TH1 *g_pp = CrossSection2RelUncert(h_b, 1., dy_proposal, pp_lumi_proposal * eff_proposal);
1824 TH1 *g_AA = CrossSection2RelUncert(h_b, b_jet_RAA, dy_proposal, AuAu_eq_lumi_C0_20_proposal * eff_proposal);
1825
1826 g_pp->Draw();
1827 g_AA->Draw("same");
1828
1829 p = (TPad *) c1->cd(idx++);
1830 c1->Update();
1831
1832
1833
1834
1835 p->DrawFrame(0, 0, 100, 1.2)
1836 ->SetTitle(";Transverse Momentum [GeV/#it{c}];#it{R}_{AA}");
1837 TLatex t;
1838 t.DrawLatex(10, 1, Form("#splitline{pp lumi %.0f pb^{-1}}{#splitline{AuAu 0-20 in 100B MB}{eff %.1f }}", pp_lumi_proposal, eff_proposal));
1839
1840 TGraphErrors *ge_RAA = GetRAA(g_pp, g_AA);
1841 ge_RAA->Draw("pe*");
1842
1843 SaveCanvas(c1, infile + "_" + TString(c1->GetName()), kTRUE);
1844 }
1845
1846 void Draw_HFJetTruth3yr(const TString infile =
1847
1848
1849 "/sphenix/user/jinhuang/HF-jet/event_gen/200pp_pythia8_CTEQ6L_7GeV/200pp_pythia8_CTEQ6L_7GeV_ALL.cfg_eneg_DSTReader.root",
1850 double int_lumi = 891093 / 3.332e-02 / 1e9, const double dy = 0.6 * 2)
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860 {
1861 SetsPhenixStyle();
1862 gStyle->SetOptStat(0);
1863 gStyle->SetOptFit(1111);
1864 TVirtualFitter::SetDefaultFitter("Minuit2");
1865
1866 gSystem->Load("libg4eval.so");
1867
1868 if (!_file0)
1869 {
1870 TString chian_str = infile;
1871 chian_str.ReplaceAll("ALL", "*");
1872
1873 TChain *t = new TChain("T");
1874 const int n = t->Add(chian_str);
1875
1876 int_lumi *= n;
1877
1878 cout << "int_lumi = " << int_lumi << " pb^-1 from " << n << " root files with " << chian_str << endl;
1879 assert(n > 0);
1880
1881 T = t;
1882
1883 _file0 = new TFile;
1884 _file0->SetName(infile);
1885 }
1886
1887
1888
1889
1890
1891 const double acceptance1 = 2. * (1.1 - .4);
1892
1893 CrossSection2zg(infile, false, acceptance1);
1894
1895
1896
1897
1898
1899
1900
1901
1902 }