Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:16:13

0001 #include "TFile.h"
0002 #include "TH1F.h"
0003 #include "TH2F.h"
0004 #include "TCanvas.h"
0005 #include "TLegend.h"
0006 
0007 #include "../util/HistogramContainer.h"
0008 
0009 TCanvas* plot_1dspectrum(std::string key,HistogramContainer& htrk, HistogramContainer& hpi, HistogramContainer& hK, HistogramContainer& hp)
0010 {
0011   std::cout << key << std::endl;
0012 
0013   TCanvas* c = new TCanvas(("c"+key+htrk.legend_name).c_str(),key.c_str(),600,600);
0014   htrk.spectra[key]->Draw("E");
0015   hpi.spectra[key]->Draw("E SAME");
0016   hK.spectra[key]->Draw("E SAME");
0017   hp.spectra[key]->Draw("E SAME");
0018 
0019   TLegend* l = new TLegend(0.6,0.8,0.9,0.9);
0020   l->AddEntry(htrk.spectra[key],htrk.legend_name.c_str(),"LP");
0021   l->AddEntry(hpi.spectra[key],hpi.legend_name.c_str(),"LP");
0022   l->AddEntry(hK.spectra[key],hK.legend_name.c_str(),"LP");
0023   l->AddEntry(hp.spectra[key],hp.legend_name.c_str(),"LP");
0024   l->Draw();
0025 
0026   return c;
0027 }
0028 
0029 TCanvas* plot_normalized_1dspectrum(std::string key, HistogramContainer& htrk, HistogramContainer& hpi, HistogramContainer& hK, HistogramContainer& hp)
0030 {
0031   htrk.spectra[key]->Scale(1./htrk.spectra[key]->Integral("width"));
0032   hpi.spectra[key]->Scale(1./hpi.spectra[key]->Integral("width"));
0033   hK.spectra[key]->Scale(1./hK.spectra[key]->Integral("width"));
0034   hp.spectra[key]->Scale(1./hp.spectra[key]->Integral("width"));
0035 
0036   return plot_1dspectrum(key,htrk,hpi,hK,hp);
0037 }
0038 
0039 TCanvas* plot_all_correlations(HistogramContainer& h)
0040 {
0041   TCanvas* c = new TCanvas("corr","corr",1200,600);
0042   c->Divide(3,2);
0043   
0044   c->cd(1);
0045   h.h_pt_y->Draw("COLZ");
0046   gPad->SetLogz();
0047   c->cd(2);
0048   h.h_pt_phi->Draw("COLZ");
0049   c->cd(3);
0050   h.h_pt_ntracks->Draw("COLZ");
0051   gPad->SetLogz();
0052   c->cd(4);
0053   h.h_y_phi->Draw("COLZ");
0054   c->cd(5);
0055   h.h_y_ntracks->Draw("COLZ");
0056   c->cd(6);
0057   h.h_phi_ntracks->Draw("COLZ");
0058 
0059   return c;
0060 }
0061 
0062 void plot_singletrack()
0063 {
0064   gStyle->SetOptStat(0);
0065 
0066   TFile* f = TFile::Open("output/data_singletrack.root");
0067 
0068   HistogramContainer track(f,"track","All tracks");
0069   HistogramContainer pi(f,"pi","#pi^{+}+#pi^{-}");
0070   HistogramContainer K(f,"K","K^{+}+K^{-}");
0071   HistogramContainer p(f,"p","p^{+}+p^{-}");
0072 
0073   HistogramContainer trackplus(f,"trackplus","Positively-charged tracks");
0074   HistogramContainer piplus(f,"piplus","#pi^{+}");
0075   HistogramContainer Kplus(f,"Kplus","K^{+}");
0076   HistogramContainer pplus(f,"pplus","p^{+}");
0077 
0078   HistogramContainer trackminus(f,"trackminus","Negatively-charged tracks");
0079   HistogramContainer piminus(f,"piminus","#pi^{-}");
0080   HistogramContainer Kminus(f,"Kminus","K^{-}");
0081   HistogramContainer pminus(f,"pminus","p^{-}");
0082 
0083   track.SetColor(kBlack);
0084   trackplus.SetColor(kBlack);
0085   trackminus.SetColor(kBlack);
0086 
0087   pi.SetColor(kBlue);
0088   piplus.SetColor(kBlue);
0089   piminus.SetColor(kBlue);
0090 
0091   K.SetColor(kGreen);
0092   Kplus.SetColor(kGreen);
0093   Kminus.SetColor(kGreen);
0094 
0095   p.SetColor(kRed);
0096   pplus.SetColor(kRed);
0097   pminus.SetColor(kRed);
0098 
0099   TCanvas* cpt = plot_1dspectrum("pt",track,pi,K,p);
0100   cpt->SetLogy();
0101   cpt->SaveAs("plots/singletrack_pt.pdf");
0102   cpt->Close();
0103 
0104   TCanvas* ceta = plot_1dspectrum("y",track,pi,K,p);
0105   ceta->SaveAs("plots/singletrack_eta.pdf");
0106   ceta->Close();
0107 
0108   TCanvas* cphi = plot_normalized_1dspectrum("phi",track,pi,K,p);
0109   track.h_phi->SetMinimum(0.);
0110   track.h_phi->SetMaximum(0.4);
0111   cphi->SaveAs("plots/singletrack_phi.pdf");
0112   cphi->Close();
0113 
0114   TCanvas* cntrk = plot_1dspectrum("ntracks",track,pi,K,p);
0115   cntrk->SetLogy();
0116   cntrk->SaveAs("plots/singletrack_ntracks.pdf");
0117   cntrk->Close();
0118 
0119   TCanvas* cptplus = plot_1dspectrum("pt",trackplus,piplus,Kplus,pplus);
0120   cptplus->SetLogy();
0121   cptplus->SaveAs("plots/singletrack_pt_plus.pdf");
0122   cptplus->Close();
0123 
0124   TCanvas* cetaplus = plot_1dspectrum("y",trackplus,piplus,Kplus,pplus);
0125   cetaplus->SaveAs("plots/singletrack_eta_plus.pdf");
0126   cetaplus->Close();
0127 
0128   TCanvas* cphiplus = plot_normalized_1dspectrum("phi",trackplus,piplus,Kplus,pplus);
0129   trackplus.h_phi->SetMinimum(0.);
0130   trackplus.h_phi->SetMaximum(0.4);
0131   cphiplus->SaveAs("plots/singletrack_phi_plus.pdf");
0132   cphiplus->Close();
0133 
0134   TCanvas* cntrkplus = plot_1dspectrum("ntracks",trackplus,piplus,Kplus,pplus);
0135   cntrkplus->SetLogy();
0136   cntrkplus->SaveAs("plots/singletrack_ntrack_plus.pdf");
0137   cntrkplus->Close();
0138 
0139   TCanvas* cptminus = plot_1dspectrum("pt",trackminus,piminus,Kminus,pminus);
0140   cptminus->SetLogy();
0141   cptminus->SaveAs("plots/singletrack_pt_minus.pdf");
0142   cptminus->Close();
0143 
0144   TCanvas* cetaminus = plot_1dspectrum("y",trackminus,piminus,Kminus,pminus);
0145   cetaminus->SaveAs("plots/singletrack_eta_minus.pdf");
0146   cetaminus->Close();
0147 
0148   TCanvas* cphiminus = plot_normalized_1dspectrum("phi",trackminus,piminus,Kminus,pminus);
0149   trackminus.h_phi->SetMinimum(0.);
0150   trackminus.h_phi->SetMaximum(0.4);
0151   cphiminus->SaveAs("plots/singletrack_phi_minus.pdf");
0152   cphiminus->Close();
0153 
0154   TCanvas* cntrkminus = plot_1dspectrum("ntracks",trackminus,piminus,Kminus,pminus);
0155   cntrkminus->SetLogy();
0156   cntrkminus->SaveAs("plots/singletrack_ntrack_minus.pdf");
0157   cntrkminus->Close();
0158 
0159   TCanvas* trkcorr = plot_all_correlations(track);
0160   trkcorr->SaveAs("plots/alltrack_corr.pdf");
0161   trkcorr->Close();
0162 
0163   TCanvas* picorr = plot_all_correlations(pi);
0164   picorr->SaveAs("plots/allpi_corr.pdf");
0165   picorr->Close();
0166 
0167   TCanvas* Kcorr = plot_all_correlations(K);
0168   Kcorr->SaveAs("plots/allK_corr.pdf");
0169   Kcorr->Close();
0170 
0171   TCanvas* pcorr = plot_all_correlations(p);
0172   pcorr->SaveAs("plots/allp_corr.pdf");
0173   pcorr->Close();
0174 
0175   TCanvas* trkpluscorr = plot_all_correlations(trackplus);
0176   trkpluscorr->SaveAs("plots/trackplus_corr.pdf");
0177   trkpluscorr->Close();
0178 
0179   TCanvas* pipluscorr = plot_all_correlations(piplus);
0180   pipluscorr->SaveAs("plots/piplus_corr.pdf");
0181   pipluscorr->Close();
0182 
0183   TCanvas* Kpluscorr = plot_all_correlations(Kplus);
0184   Kpluscorr->SaveAs("plots/Kplus_corr.pdf");
0185   Kpluscorr->Close();
0186 
0187   TCanvas* ppluscorr = plot_all_correlations(pplus);
0188   ppluscorr->SaveAs("plots/pplus_corr.pdf");
0189   ppluscorr->Close();
0190 
0191   TCanvas* trkminuscorr = plot_all_correlations(trackminus);
0192   trkminuscorr->SaveAs("plots/trackminus_corr.pdf");
0193   trkminuscorr->Close();
0194 
0195   TCanvas* piminuscorr = plot_all_correlations(piminus);
0196   piminuscorr->SaveAs("plots/piminus_corr.pdf");
0197   piminuscorr->Close();
0198 
0199   TCanvas* Kminuscorr = plot_all_correlations(Kminus);
0200   Kminuscorr->SaveAs("plots/Kminus_corr.pdf");
0201   Kminuscorr->Close();
0202 
0203   TCanvas* pminuscorr = plot_all_correlations(pminus);
0204   pminuscorr->SaveAs("plots/pminus_corr.pdf");
0205   pminuscorr->Close();
0206 }