Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-01-09 10:34:44

0001 #include "RiceStyle.h"
0002 
0003 using namespace std;
0004 
0005 void plot_rho_physics_benchmark(TString filename="./sim_output/plot_combined.root"){
0006   Ssiz_t dotPosition = filename.Last('.');
0007   TString figure_directory = filename(0, dotPosition);
0008   figure_directory += "_figures";   
0009   
0010   TFile* file = new TFile(filename);
0011   TString vm_label="#rho^{0}";
0012   TString daug_label="#pi^{#plus}#pi^{#minus}";
0013   //mass distribution
0014   TH1D* h_VM_mass_MC = (TH1D*) file->Get("h_VM_mass_MC");
0015   TH1D* h_VM_mass_REC = (TH1D*) file->Get("h_VM_mass_REC");
0016   TH1D* h_VM_mass_REC_justpions = (TH1D*) file->Get("h_VM_mass_REC_justpions");
0017   //mass distribution within B0
0018   TH1D* h_VM_mass_MC_etacut = (TH1D*) file->Get("h_VM_mass_MC_etacut");
0019   TH1D* h_VM_mass_REC_etacut = (TH1D*) file->Get("h_VM_mass_REC_etacut");
0020   //efficiencies
0021   TProfile2D* h_effEtaPtPi = (TProfile2D*) file->Get("h_effEtaPtPi");
0022   TProfile2D* h_effEtaPtPip = (TProfile2D*) file->Get("h_effEtaPtPip"); 
0023   TProfile2D* h_effEtaPtPim = (TProfile2D*) file->Get("h_effEtaPtPim"); 
0024   TProfile2D* h_effPhiEtaPi = (TProfile2D*) file->Get("h_effPhiEtaPi"); 
0025   TProfile2D* h_effPhiEtaPip = (TProfile2D*) file->Get("h_effPhiEtaPip"); 
0026   TProfile2D* h_effPhiEtaPim = (TProfile2D*) file->Get("h_effPhiEtaPim");   
0027 
0028 
0029   TLatex* r42 = new TLatex(0.18, 0.91, "ep 10#times100 GeV");
0030   r42->SetNDC();
0031   r42->SetTextSize(22);
0032   r42->SetTextFont(43);
0033   r42->SetTextColor(kBlack);
0034 
0035   TLatex* r43 = new TLatex(0.9,0.91, "#bf{EPIC}");
0036   r43->SetNDC();
0037   //r43->SetTextSize(0.04);
0038   r43->SetTextSize(22);
0039 
0040   TLatex* r44 = new TLatex(0.53, 0.78, "10^{-3}<Q^{2}<10 GeV^{2}, W>2 GeV");
0041   r44->SetNDC();
0042   r44->SetTextSize(20);
0043   r44->SetTextFont(43);
0044   r44->SetTextColor(kBlack);
0045 
0046   TLatex* r44_2 = new TLatex(0.5, 0.83, ""+vm_label+" #rightarrow "+daug_label+" eSTARlight");
0047   r44_2->SetNDC();
0048   r44_2->SetTextSize(30);
0049   r44_2->SetTextFont(43);
0050   r44_2->SetTextColor(kBlack);
0051 
0052   TCanvas* c2 = new TCanvas("c2","c2",1,1,600,600);
0053   gPad->SetTicks();
0054   gPad->SetLeftMargin(0.18);
0055   gPad->SetBottomMargin(0.18);
0056   gPad->SetTopMargin(0.10);
0057   gPad->SetRightMargin(0.01);
0058   TH1D* base2 = makeHist("base2", "", "#pi^{#plus}#pi^{#minus} inv. mass (GeV)", "counts", 100,0.05,2.05,kBlack);
0059   base2->GetYaxis()->SetRangeUser(0.5, 1.2*(h_VM_mass_MC->GetMaximum()));
0060   base2->GetXaxis()->SetTitleColor(kBlack);
0061   fixedFontHist1D(base2,1.,1.2);
0062   base2->GetYaxis()->SetTitleSize(base2->GetYaxis()->GetTitleSize()*1.5);
0063   base2->GetXaxis()->SetTitleSize(base2->GetXaxis()->GetTitleSize()*1.5);
0064   base2->GetYaxis()->SetLabelSize(base2->GetYaxis()->GetLabelSize()*1.5);
0065   base2->GetXaxis()->SetLabelSize(base2->GetXaxis()->GetLabelSize()*1.5);
0066   base2->GetXaxis()->SetNdivisions(4,4,0);
0067   base2->GetYaxis()->SetNdivisions(5,5,0);
0068   base2->GetYaxis()->SetTitleOffset(1.3);
0069   base2->Draw();
0070 
0071   TH1D* h_VM_mass_REC_justprotons = (TH1D*)h_VM_mass_REC->Clone("h_VM_mass_REC_justprotons");
0072   for(int ibin=1; ibin<h_VM_mass_REC_justprotons->GetNbinsX(); ibin++){
0073     h_VM_mass_REC_justprotons->SetBinContent(ibin,h_VM_mass_REC_justprotons->GetBinContent(ibin) - h_VM_mass_REC_justpions->GetBinContent(ibin));
0074   }
0075 
0076   h_VM_mass_MC->SetFillColorAlpha(kBlack,0.2);
0077   h_VM_mass_REC->SetFillColorAlpha(kMagenta,0.2);
0078   h_VM_mass_MC->SetLineColor(kBlack);
0079   h_VM_mass_REC->SetLineColor(kMagenta);
0080   h_VM_mass_REC_justpions->SetLineColor(kViolet+10);
0081   h_VM_mass_REC_justprotons->SetLineColor(kRed);
0082   h_VM_mass_MC->SetLineWidth(2);
0083   h_VM_mass_REC->SetLineWidth(2);
0084   h_VM_mass_REC_justpions->SetLineWidth(2);
0085   h_VM_mass_REC_justprotons->SetLineWidth(2);
0086 
0087   h_VM_mass_REC->Scale(3.0);
0088   h_VM_mass_REC_justpions->Scale(3.0);
0089   h_VM_mass_REC_justprotons->Scale(3.0);
0090 
0091   h_VM_mass_MC->Draw("HIST E same");
0092   h_VM_mass_REC->Draw("HIST E same");
0093   h_VM_mass_REC_justpions->Draw("HIST same");
0094   h_VM_mass_REC_justprotons->Draw("HIST same");
0095 
0096   r42->Draw("same");
0097   r43->Draw("same");
0098   r44->Draw("same");
0099   r44_2->Draw("same");
0100 
0101   TLegend *w8 = new TLegend(0.58,0.63,0.93,0.76);
0102   w8->SetLineColor(kWhite);
0103   w8->SetFillColor(0);
0104   w8->SetTextSize(17);
0105   w8->SetTextFont(45);
0106   w8->AddEntry(h_VM_mass_MC, ""+vm_label+" MC ", "L");
0107   w8->AddEntry(h_VM_mass_REC, vm_label+" reco.#times3", "L");
0108   w8->AddEntry(h_VM_mass_REC_justpions, vm_label+" reco.#times3 (#pi^{#minus}#pi^{#plus})", "L");
0109   w8->AddEntry(h_VM_mass_REC_justprotons, vm_label+" reco.#times3 (#pi^{#minus}p)", "L");
0110   w8->Draw("same");
0111 
0112   TString figure1name = figure_directory+"/benchmark_rho_mass.pdf";
0113   c2->Print(figure1name);
0114 
0115 
0116   ///////////////////// Figure 4
0117   TCanvas* c4 = new TCanvas("c4","c4",1,1,600,600);
0118   gPad->SetTicks();
0119   gPad->SetLeftMargin(0.18);
0120   gPad->SetBottomMargin(0.18);
0121   gPad->SetTopMargin(0.10);
0122   gPad->SetRightMargin(0.01);
0123   TH1D* base4 = makeHist("base4", "", "#pi^{#plus}#pi^{#minus} inv. mass (GeV)", "counts", 100,0.05,2.05,kBlack);
0124   base4->GetYaxis()->SetRangeUser(0.5, 1.2*(h_VM_mass_MC_etacut->GetMaximum()));
0125   base4->GetXaxis()->SetTitleColor(kBlack);
0126   fixedFontHist1D(base4,1.,1.2);
0127   base4->GetYaxis()->SetTitleSize(base4->GetYaxis()->GetTitleSize()*1.5);
0128   base4->GetXaxis()->SetTitleSize(base4->GetXaxis()->GetTitleSize()*1.5);
0129   base4->GetYaxis()->SetLabelSize(base4->GetYaxis()->GetLabelSize()*1.5);
0130   base4->GetXaxis()->SetLabelSize(base4->GetXaxis()->GetLabelSize()*1.5);
0131   base4->GetXaxis()->SetNdivisions(4,4,0);
0132   base4->GetYaxis()->SetNdivisions(5,5,0);
0133   base4->GetYaxis()->SetTitleOffset(1.3);
0134   base4->Draw();
0135 
0136   h_VM_mass_MC_etacut->SetFillColorAlpha(kBlack,0.2);
0137   h_VM_mass_REC_etacut->SetFillColorAlpha(kMagenta,0.2);
0138   h_VM_mass_MC_etacut->SetLineColor(kBlack);
0139   h_VM_mass_REC_etacut->SetLineColor(kMagenta);
0140   h_VM_mass_MC_etacut->SetLineWidth(2);
0141   h_VM_mass_REC_etacut->SetLineWidth(2);
0142 
0143   h_VM_mass_MC_etacut->Draw("HIST E same");
0144   h_VM_mass_REC_etacut->Draw("HIST E same");
0145 
0146   double minbineff = h_VM_mass_MC_etacut->FindBin(0.6);
0147   double maxbineff = h_VM_mass_MC_etacut->FindBin(1.0);
0148   double thiseff = 100.0*(1.0*h_VM_mass_REC_etacut->Integral(minbineff,maxbineff))/(1.0*h_VM_mass_MC_etacut->Integral(minbineff,maxbineff));
0149 
0150   r42->Draw("same");
0151   r43->Draw("same");
0152   r44->Draw("same");
0153   r44_2->Draw("same");
0154 
0155   TLegend *w10 = new TLegend(0.58,0.62,0.93,0.7);
0156   w10->SetLineColor(kWhite);
0157   w10->SetFillColor(0);
0158   w10->SetTextSize(17);
0159   w10->SetTextFont(45);
0160   w10->AddEntry(h_VM_mass_MC_etacut, vm_label+" MC ", "L");
0161   w10->AddEntry(h_VM_mass_REC_etacut, vm_label+" reco. (#pi^{#minus}#pi^{#plus})", "L");
0162   w10->Draw("same");
0163 
0164   TLatex* anglelabel = new TLatex(0.59, 0.73, "9<#theta_{#pi^{#pm},MC}<13 mrad");
0165   anglelabel->SetNDC();
0166   anglelabel->SetTextSize(20);
0167   anglelabel->SetTextFont(43);
0168   anglelabel->SetTextColor(kBlack);
0169   anglelabel->Draw("same");
0170 
0171   TLatex* efflabel = new TLatex(0.59, 0.55, "reco. eff (0.6<m^{2}<1 GeV^{2})");
0172   efflabel->SetNDC();
0173   efflabel->SetTextSize(20);
0174   efflabel->SetTextFont(43);
0175   efflabel->SetTextColor(kBlack);
0176   efflabel->Draw("same");
0177   TLatex* effnlabel = new TLatex(0.59, 0.51, Form("          = %.0f%%",thiseff));
0178   effnlabel->SetNDC();
0179   effnlabel->SetTextSize(20);
0180   effnlabel->SetTextFont(43);
0181   effnlabel->SetTextColor(kBlack);
0182   effnlabel->Draw("same");
0183 
0184   TString figure2name = figure_directory+"/benchmark_rho_mass_cuts.pdf";
0185   c4->Print(figure2name);
0186 
0187   ///////////////////// Figure 5
0188   TCanvas* c5 = new TCanvas("c5","c5",1,1,700,560);
0189   TPad* p5 = new TPad("p5","Pad5",0.,0.,1.,1.);
0190   p5->Divide(3,2,0,0);
0191   p5->Draw();
0192   gStyle->SetPalette(kBlueRedYellow);
0193   gStyle->SetOptStat(0);    
0194 
0195   h_effEtaPtPi  ->GetXaxis()->SetLabelSize(h_effEtaPtPi  ->GetXaxis()->GetLabelSize()*1.8);
0196   h_effEtaPtPip ->GetXaxis()->SetLabelSize(h_effEtaPtPip ->GetXaxis()->GetLabelSize()*1.8);
0197   h_effEtaPtPim ->GetXaxis()->SetLabelSize(h_effEtaPtPim ->GetXaxis()->GetLabelSize()*1.8);
0198   h_effEtaPtPi  ->GetYaxis()->SetLabelSize(h_effEtaPtPi  ->GetYaxis()->GetLabelSize()*1.8);
0199   h_effEtaPtPim ->GetZaxis()->SetLabelSize(h_effEtaPtPim ->GetZaxis()->GetLabelSize()*0.5);
0200   h_effEtaPtPim ->GetZaxis()->SetTitleSize(h_effEtaPtPim ->GetZaxis()->GetTitleSize()*0.5);
0201   h_effPhiEtaPi ->GetXaxis()->SetLabelSize(h_effPhiEtaPi ->GetXaxis()->GetLabelSize()*1.8);
0202   h_effPhiEtaPip->GetXaxis()->SetLabelSize(h_effPhiEtaPip->GetXaxis()->GetLabelSize()*1.8);
0203   h_effPhiEtaPim->GetXaxis()->SetLabelSize(h_effPhiEtaPim->GetXaxis()->GetLabelSize()*1.8);
0204   h_effPhiEtaPi ->GetYaxis()->SetLabelSize(h_effPhiEtaPi ->GetYaxis()->GetLabelSize()*1.8);
0205   h_effPhiEtaPim->GetZaxis()->SetLabelSize(h_effPhiEtaPim->GetZaxis()->GetLabelSize()*0.5);
0206   h_effPhiEtaPim->GetZaxis()->SetTitleSize(h_effPhiEtaPim->GetZaxis()->GetTitleSize()*0.5);
0207 
0208   fixedFontHist1D(h_effEtaPtPi,1.,1.2);
0209   fixedFontHist1D(h_effEtaPtPip,1.,1.2);
0210   fixedFontHist1D(h_effEtaPtPim,1.,1.2);
0211   fixedFontHist1D(h_effPhiEtaPi,1.,1.2);
0212   fixedFontHist1D(h_effPhiEtaPip,1.,1.2);
0213   fixedFontHist1D(h_effPhiEtaPim,1.,1.2);
0214 
0215   p5->cd(1);
0216   TVirtualPad* p51 = p5->cd(1);
0217   p51->SetTopMargin(0.08);
0218   p51->SetRightMargin(0);
0219   p51->SetLeftMargin(0.21);
0220   p51->SetBottomMargin(0.2);
0221   h_effEtaPtPi->GetXaxis()->SetRangeUser(3.9,6.05);
0222   h_effEtaPtPi->GetYaxis()->SetRangeUser(0,1.7);
0223   h_effEtaPtPi->GetZaxis()->SetRangeUser(0,1);
0224   h_effEtaPtPi->GetXaxis()->SetNdivisions(5);
0225   h_effEtaPtPi->GetYaxis()->SetNdivisions(5);
0226   h_effEtaPtPi->SetContour(99);
0227   h_effEtaPtPi->Draw("COLZ");
0228   TLatex* pilabel = new TLatex(0.81, 0.75, "#pi^{#pm}");
0229   pilabel->SetNDC();
0230   pilabel->SetTextSize(40);
0231   pilabel->SetTextFont(43);
0232   pilabel->SetTextColor(kBlack);
0233   pilabel->Draw("same");
0234   TLatex* r44fig5c = new TLatex(0.21, 0.93, "ep 10#times100 GeV         #rho^{0}#rightarrow#pi^{#plus}#pi^{#minus}");
0235   r44fig5c->SetNDC();
0236   r44fig5c->SetTextSize(15);
0237   r44fig5c->SetTextFont(43);
0238   r44fig5c->SetTextColor(kBlack);
0239   r44fig5c->Draw("same");
0240 
0241   p5->cd(2);
0242   TVirtualPad* p52 = p5->cd(2);
0243   p52->SetTopMargin(0.08);
0244   p52->SetRightMargin(0);
0245   p52->SetLeftMargin(0);
0246   p52->SetBottomMargin(0.2);
0247   h_effEtaPtPip->GetXaxis()->SetRangeUser(4.05,6.05);
0248   h_effEtaPtPip->GetYaxis()->SetRangeUser(0,1.7);
0249   h_effEtaPtPip->GetZaxis()->SetRangeUser(0,1);
0250   h_effEtaPtPip->GetXaxis()->SetNdivisions(5);
0251   h_effEtaPtPip->GetYaxis()->SetNdivisions(5);
0252   h_effEtaPtPip->SetContour(99);
0253   h_effEtaPtPip->Draw("COLZ");
0254   TLatex* piplabel = new TLatex(0.81, 0.75, "#pi^{#plus}");
0255   piplabel->SetNDC();
0256   piplabel->SetTextSize(40);
0257   piplabel->SetTextFont(43);
0258   piplabel->SetTextColor(kBlack);
0259   piplabel->Draw("same");
0260   TLatex* r44fig5a = new TLatex(0.01, 0.93, "eSTARlight        10^{-3}<Q^{2}<10 GeV^{2}");
0261   r44fig5a->SetNDC();
0262   r44fig5a->SetTextSize(15);
0263   r44fig5a->SetTextFont(43);
0264   r44fig5a->SetTextColor(kBlack);
0265   r44fig5a->Draw("same");
0266 
0267   p5->cd(3);
0268   TVirtualPad* p53 = p5->cd(3);
0269   p53->SetTopMargin(0.08);
0270   p53->SetRightMargin(0.2);
0271   p53->SetLeftMargin(0);
0272   p53->SetBottomMargin(0.2);
0273   h_effEtaPtPim->SetTitle(";#eta;;efficiency");
0274   h_effEtaPtPim->GetXaxis()->SetRangeUser(4.05,6.05);
0275   h_effEtaPtPim->GetYaxis()->SetRangeUser(0,1.7);
0276   h_effEtaPtPim->GetZaxis()->SetRangeUser(0,1);
0277   h_effEtaPtPim->GetXaxis()->SetNdivisions(5);
0278   h_effEtaPtPim->GetYaxis()->SetNdivisions(5);
0279   h_effEtaPtPim->SetContour(99);
0280   h_effEtaPtPim->Draw("COLZ");
0281   TLatex* pimlabel = new TLatex(0.62, 0.75, "#pi^{#minus}");
0282   pimlabel->SetNDC();
0283   pimlabel->SetTextSize(40);
0284   pimlabel->SetTextFont(43);
0285   pimlabel->SetTextColor(kBlack);
0286   pimlabel->Draw("same");
0287   TLatex* r43fig5 = new TLatex(0.66,0.93, "#bf{EPIC}");
0288   r43fig5->SetNDC();
0289   r43fig5->SetTextSize(15);
0290   r43fig5->SetTextFont(43);
0291   r43fig5->SetTextColor(kBlack);
0292   r43fig5->Draw("same");
0293   TLatex* r44fig5b = new TLatex(0.01, 0.93, "W>2 GeV");
0294   r44fig5b->SetNDC();
0295   r44fig5b->SetTextSize(15);
0296   r44fig5b->SetTextFont(43);
0297   r44fig5b->SetTextColor(kBlack);
0298   r44fig5b->Draw("same");
0299 
0300   p5->cd(4);
0301   TVirtualPad* p54 = p5->cd(4);
0302   p54->SetTopMargin(0.05);
0303   p54->SetRightMargin(0);
0304   p54->SetLeftMargin(0.2);
0305   p54->SetBottomMargin(0.21);
0306   h_effPhiEtaPi->GetXaxis()->SetRangeUser(0,6.2);
0307   h_effPhiEtaPi->GetYaxis()->SetRangeUser(4,6);
0308   h_effPhiEtaPi->GetZaxis()->SetRangeUser(0,1);
0309   h_effPhiEtaPi->GetXaxis()->SetNdivisions(8);
0310   h_effPhiEtaPi->GetYaxis()->SetNdivisions(5);
0311   h_effPhiEtaPi->SetContour(99);
0312   h_effPhiEtaPi->Draw("COLZ");
0313   TLatex* pilabela = new TLatex(0.3, 0.82, "#pi^{#pm}");
0314   TLatex* pilabelb = new TLatex(0.5, 0.84, "(p_{T}>0.2 GeV/c)");
0315   pilabela->SetNDC();
0316   pilabelb->SetNDC();
0317   pilabela->SetTextSize(40);
0318   pilabelb->SetTextSize(15);
0319   pilabela->SetTextFont(43);
0320   pilabelb->SetTextFont(43);
0321   pilabela->SetTextColor(kWhite);
0322   pilabelb->SetTextColor(kWhite);
0323   pilabela->Draw("same");
0324   pilabelb->Draw("same");
0325 
0326   p5->cd(5);
0327   TVirtualPad* p55 = p5->cd(5);
0328   p55->SetTopMargin(0.05);
0329   p55->SetRightMargin(0);
0330   p55->SetLeftMargin(0);
0331   p55->SetBottomMargin(0.2);
0332   h_effPhiEtaPip->GetXaxis()->SetRangeUser(0.15,6.2);
0333   h_effPhiEtaPip->GetYaxis()->SetRangeUser(4,6);
0334   h_effPhiEtaPip->GetZaxis()->SetRangeUser(0,1);
0335   h_effPhiEtaPip->GetXaxis()->SetNdivisions(8);
0336   h_effPhiEtaPip->GetYaxis()->SetNdivisions(5);
0337   h_effPhiEtaPip->SetContour(99);
0338   h_effPhiEtaPip->Draw("COLZ");
0339   TLatex* piplabela = new TLatex(0.2, 0.82, "#pi^{#plus}");
0340   TLatex* piplabelb = new TLatex(0.4, 0.84, "(p_{T}>0.2 GeV/c)");
0341   piplabela->SetNDC();
0342   piplabelb->SetNDC();
0343   piplabela->SetTextSize(40);
0344   piplabelb->SetTextSize(15);
0345   piplabela->SetTextFont(43);
0346   piplabelb->SetTextFont(43);
0347   piplabela->SetTextColor(kWhite);
0348   piplabelb->SetTextColor(kWhite);
0349   piplabela->Draw("same");
0350   piplabelb->Draw("same");
0351 
0352   p5->cd(6);
0353   TVirtualPad* p56 = p5->cd(6);
0354   p56->SetTopMargin(0.05);
0355   p56->SetRightMargin(0.2);
0356   p56->SetLeftMargin(0);
0357   p56->SetBottomMargin(0.2);
0358   h_effPhiEtaPim->SetTitle(";#phi (rad);;efficiency");
0359   h_effPhiEtaPim->GetXaxis()->SetRangeUser(0.15,6.2);
0360   h_effPhiEtaPim->GetYaxis()->SetRangeUser(4,6);
0361   h_effPhiEtaPim->GetZaxis()->SetRangeUser(0,1);
0362   h_effPhiEtaPim->GetXaxis()->SetNdivisions(8);
0363   h_effPhiEtaPim->GetYaxis()->SetNdivisions(5);
0364   h_effPhiEtaPim->SetContour(99);
0365   h_effPhiEtaPim->Draw("COLZ");
0366   TLatex* pimlabela = new TLatex(0.1, 0.82, "#pi^{#minus}");
0367   TLatex* pimlabelb = new TLatex(0.25, 0.84, "(p_{T}>0.2 GeV/c)");
0368   pimlabela->SetNDC();
0369   pimlabelb->SetNDC();
0370   pimlabela->SetTextSize(40);
0371   pimlabelb->SetTextSize(15);
0372   pimlabela->SetTextFont(43);
0373   pimlabelb->SetTextFont(43);
0374   pimlabela->SetTextColor(kWhite);
0375   pimlabelb->SetTextColor(kWhite);
0376   pimlabela->Draw("same");
0377   pimlabelb->Draw("same");
0378 
0379   TString figure3name = figure_directory+"/benchmark_rho_efficiencies.pdf";
0380   c5->Print(figure3name);
0381 }