-
Administrator authored
Apply code formatting to all source/header files and root macros.
Administrator authoredApply code formatting to all source/header files and root macros.
draw.C 39.71 KiB
#define MPION 0.1395700
#define MKAON 0.493677
#define MPROT 0.938272
#define M2PION 0.0194797849
#define M2KAON 0.243716980329
#define M2PROT 0.880354345984
#include "drawStyle.C"
#define C1 0.3989422804014327
Double_t fun_m2_mc(Double_t* x, Double_t* par) {
return (par[1] * C1 / par[0] * exp(-0.5 * pow((x[0] - M2PION) / par[0], 2))
+ par[2] * C1 / par[0] * exp(-0.5 * pow((x[0] - M2KAON) / par[0], 2))
+ par[3] * C1 / par[0]
* exp(-0.5 * pow((x[0] - M2PROT) / par[0], 2)));
}
Double_t fun_m2_pika(Double_t* x, Double_t* par) {
return (par[1] * C1 / par[0] * exp(-0.5 * pow((x[0] - par[3]) / par[0], 2))
+ par[2] * C1 / par[0]
* exp(-0.5 * pow((x[0] - M2KAON) / par[0], 2)));
}
Double_t fun_m2(Double_t* x, Double_t* par) {
return (par[1] * C1 / par[0] * exp(-0.5 * pow((x[0] - par[2]) / par[0], 2)));
}
// ------------------------------------------------------------------
void plot_hadron_m2mom(Int_t level) {
// Check level
// 1 - MC truth
// 2 - RECO
// 3 - RECO truth (proper match)
if (level < 1 || level > 3) return;
// Drawing style
TPstyle();
// CBM software version
char* ver = getenv("CBMVER");
// Define filenames
char fileName[3][1000];
sprintf(fileName[0],
"/home/kresan/data/hadron/%s/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.m2mom.root",
ver);
sprintf(fileName[1],
"/home/kresan/data/hadron/%s/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.m2mom.reco.root",
ver);
sprintf(fileName[2],
"/home/kresan/data/hadron/%s/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.m2mom.reco.root",
ver);
// Define PS file names
char psName[3][1000];
sprintf(psName[0], "plots/%s/hadron.m2mom.mc.eps", ver);
sprintf(psName[1], "plots/%s/hadron.m2mom.reco.eps", ver);
sprintf(psName[2], "plots/%s/hadron.m2mom.reco.true.eps", ver);
// Labels on the plots for diff. levels
char* label[] = {"MC", "RECO", "RECO TRUE"};
// Open the file
TFile* file = new TFile(fileName[level - 1]);
TH2F* h_m2mom;
if (level < 3) {
h_m2mom = (TH2F*) file->Get("h_m2mom_hadron");
} else if (3 == level) {
h_m2mom = (TH2F*) file->Get("h_m2mom_hadron_true");
}
Style(h_m2mom, "p (GeV/c)", "m^{2} (GeV^{2}/c^{4})");
h_m2mom->Scale(1. / 1000.);
h_m2mom->GetXaxis()->SetRangeUser(0., 6.);
h_m2mom->GetYaxis()->SetRangeUser(-0.5, 1.5);
h_m2mom->GetZaxis()->SetRangeUser(1, 1e4);
h_m2mom->GetZaxis()->SetTitle("dn/dp/dm^{2}");
// Make three projections
Int_t bins[] = {111, 131, 151};
char* strBins[] = {"1 GeV/c", "3 GeV/c", "5 GeV/c"};
TString strNames[] = {"_1", "_3", "_5"};
TH1D* h_m2[3];
for (Int_t i = 0; i < 3; i++) {
h_m2[i] =
h_m2mom->ProjectionY(("h_m2" + strNames[i]).Data(), bins[i], bins[i]);
Style(h_m2[i], "m^{2} (GeV^{2}/c^{4})", "dn/dm^{2}");
h_m2[i]->Scale(0.1);
h_m2[i]->GetXaxis()->SetRangeUser(-0.5, 1.5);
// h_m2[i]->GetYaxis()->SetRangeUser(1e-1, 3e2);
}
// Fitting functions
TF1* f1;
TF1* f_pika_f;
TF1* f_prot_f;
if (level < 2) {
f1 = new TF1("f1", fun_m2_mc, -0.5, 1.5, 4);
f1->SetParameters(0.1, 150, 20, 80);
} else {
f_pika_f = new TF1("f_pika_f", fun_m2_pika, -0.2, 0.5, 4);
f_pika_f->SetParameters(0.1, 1., 1., 0.001);
f_prot_f = new TF1("f_prot_f", fun_m2, 0.7, 1.3, 3);
f_prot_f->SetParameters(0.3, 1., M2PROT);
}
TF1* f_pion = new TF1("f_pion", fun_m2, -0.5, 1.5, 3);
// f_pion->SetLineWidth(1.2);
f_pion->SetLineColor(2);
TF1* f_kaon = new TF1("f_kaon", fun_m2, -0.5, 1.5, 3);
// f_kaon->SetLineWidth(1.2);
f_kaon->SetLineColor(4);
TF1* f_prot = new TF1("f_prot", fun_m2, -0.5, 1.5, 3);
// f_prot->SetLineWidth(1.2);
f_prot->SetLineColor(3);
// Plot hitogramms
TCanvas* c1;
if (level < 2) {
gStyle->SetPaperSize(32, 16);
c1 = new TCanvas("c1", "", 10, 10, 1020, 510);
c1->Divide(2, 1);
} else {
gStyle->SetPaperSize(32, 32);
c1 = new TCanvas("c1", "", 10, 10, 1020, 1020);
c1->Divide(2, 2);
}
TPostScript* ps1 = new TPostScript(psName[level - 1], -113);
if (level < 2) {
ps1->Range(32, 16);
} else {
ps1->Range(32, 32);
}
c1->cd(1);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.17);
gPad->SetLogz();
gPad->SetGridx();
gPad->SetGridy();
h_m2mom->Draw("colz");
TPaveLabel* l1 =
new TPaveLabel(0.37, 0.90, 0.80, 0.98, label[level - 1], "NDC");
Style(l1);
l1->SetTextColor(2);
l1->Draw();
if (level < 2) {
c1->cd(2);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.05);
gPad->SetLogy();
gPad->SetGridx();
gPad->SetGridy();
h_m2[1]->Draw();
h_m2[1]->Fit(f1, "QN");
f_pion->SetParameters(f1->GetParameter(0), f1->GetParameter(1), M2PION);
f_kaon->SetParameters(f1->GetParameter(0), f1->GetParameter(2), M2KAON);
f_prot->SetParameters(f1->GetParameter(0), f1->GetParameter(3), M2PROT);
f_pion->Draw("same");
f_kaon->Draw("same");
f_prot->Draw("same");
TPaveLabel* l2 = new TPaveLabel(0.41, 0.79, 0.73, 0.88, strBins[1], "NDC");
Style(l2);
l2->SetTextColor(4);
l2->Draw();
TLegend* leg1 = new TLegend(0.73, 0.62, 0.94, 0.86);
Style(leg1);
leg1->AddEntry(f_pion, " #pi^{+}", "l");
leg1->AddEntry(f_kaon, " K^{+}", "l");
leg1->AddEntry(f_prot, " p", "l");
leg1->Draw();
} else {
for (Int_t i = 0; i < 3; i++) {
c1->cd(i + 2);
// c1->cd(2);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.05);
gPad->SetLogy();
gPad->SetGridx();
gPad->SetGridy();
h_m2[i]->SetLineColor(1);
h_m2[i]->Draw();
h_m2[i]->Fit(f_pika_f, "QNR+");
h_m2[i]->Fit(f_prot_f, "QNR+");
f_pion->SetParameters(f_pika_f->GetParameter(0),
f_pika_f->GetParameter(1),
f_pika_f->GetParameter(3));
f_kaon->SetParameters(
f_pika_f->GetParameter(0), f_pika_f->GetParameter(2), M2KAON);
f_prot->SetParameters(f_prot_f->GetParameter(0),
f_prot_f->GetParameter(1),
f_prot_f->GetParameter(2));
f_pion->DrawClone("same");
f_kaon->DrawClone("same");
f_prot->DrawClone("same");
// f_pika_f->SetLineColor(2);
// f_pika_f->DrawClone("same");
TPaveLabel* l2 =
new TPaveLabel(0.41, 0.79, 0.73, 0.88, strBins[i], "NDC");
Style(l2);
l2->SetTextColor(4);
l2->Draw();
if (0 == i) {
TLegend* leg1 = new TLegend(0.765, 0.652, 0.935, 0.862);
Style(leg1);
leg1->AddEntry(f_pion, " #pi^{+}", "l");
leg1->AddEntry(f_kaon, " K^{+}", "l");
leg1->AddEntry(f_prot, " p", "l");
leg1->Draw();
}
}
}
c1->cd(0);
ps1->Close();
}
// ------------------------------------------------------------------
// ------------------------------------------------------------------
void plot_hadron_m2mom_simple(Int_t level) {
// Check level
if (level < 1 || level > 4) return;
// Drawing style
TPstyle();
// CBM software version
char* ver = getenv("CBMVER");
// Define filenames
char fileName[4][1000];
sprintf(fileName[0],
"/lustre/cbm/user/kresan/hadron/%s/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.m2mom.root",
ver);
sprintf(fileName[1],
"/lustre/cbm/user/kresan/hadron/%s/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.m2mom.recoIdeal.root",
ver);
sprintf(fileName[2],
"/lustre/cbm/user/kresan/hadron/%s/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.m2mom.reco.root",
ver);
sprintf(fileName[3],
"/lustre/cbm/user/kresan/hadron/%s/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.m2mom.reco.root",
ver);
// Define PS file names
char psName[4][1000];
sprintf(psName[0], "plots/%s/m2mom.mc.eps", ver);
sprintf(psName[1], "plots/%s/m2mom.recoIdeal.eps", ver);
sprintf(psName[2], "plots/%s/m2mom.reco.eps", ver);
sprintf(psName[3], "plots/%s/m2mom.reco.true.eps", ver);
// Labels on the plots for diff. levels
char* label[] = {"MC", "RECO ideal", "RECO", "RECO TRUE"};
// Open the file
TFile* file = new TFile(fileName[level - 1]);
TH2F* h_m2mom;
if (level < 4) {
h_m2mom = (TH2F*) file->Get("h_m2mom_hadron");
} else if (4 == level) {
h_m2mom = (TH2F*) file->Get("h_m2mom_hadron_true");
}
Style(h_m2mom, "p (GeV/c)", "m^{2} (GeV^{2}/c^{4})");
h_m2mom->Scale(1. / 200000.);
h_m2mom->GetXaxis()->SetRangeUser(0., 6.);
h_m2mom->GetYaxis()->SetRangeUser(-0.5, 1.5);
h_m2mom->GetZaxis()->SetRangeUser(1, 1e4);
h_m2mom->GetZaxis()->SetTitle("dn/dp/dm^{2}");
// Plot hitogramms
gStyle->SetPaperSize(16, 16);
TCanvas* c1 = new TCanvas("c1", "", 10, 10, 510, 510);
TPostScript* ps1 = new TPostScript(psName[level - 1], -113);
ps1->Range(16, 16);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.17);
gPad->SetLogz();
gPad->SetGridx();
gPad->SetGridy();
h_m2mom->Draw("colz");
ps1->Close();
}
// ------------------------------------------------------------------
// ------------------------------------------------------------------
void plot_hadron_m2mom_GSI(Int_t level) {
// Check level
if (level < 1 || level > 3) return;
// Drawing style
TPstyle();
// CBM software version
char* ver = getenv("CBMVER");
// Define filenames
char fileName[3][1000];
sprintf(fileName[0],
"/lustre/cbm/user/kresan/hadron/%s/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.m2mom.root",
ver);
sprintf(fileName[1],
"/lustre/cbm/user/kresan/hadron/%s/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.m2mom.recoIdeal.root",
ver);
sprintf(fileName[2],
"/lustre/cbm/user/kresan/hadron/%s/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.m2mom.reco.root",
ver);
// Define PS file names
char psName[3][1000];
sprintf(psName[0], "plots/%s/hadron.m2mom.mc.eps", ver);
sprintf(psName[1], "plots/%s/hadron.m2mom.recoIdeal.eps", ver);
sprintf(psName[2], "plots/%s/hadron.m2mom.reco.GSI.eps", ver);
// Labels on the plots for diff. levels
char* label[] = {"MC", "RECO ideal", "RECO"};
// Open the file
TFile* file = new TFile(fileName[level - 1]);
TH2F* h_m2mom = (TH2F*) file->Get("h_m2mom_hadron");
Style(h_m2mom, "p (GeV/c)", "m^{2} (GeV^{2}/c^{4})");
h_m2mom->Scale(1. / 200000.);
h_m2mom->GetXaxis()->SetRangeUser(0., 6.);
h_m2mom->GetYaxis()->SetRangeUser(-0.5, 1.5);
h_m2mom->GetZaxis()->SetRangeUser(1, 1e4);
h_m2mom->GetZaxis()->SetTitle("dn/dp/dm^{2}");
// Make three projections
Int_t bins[] = {111, 131, 151};
char* strBins[] = {"1 GeV/c", "3 GeV/c", "5 GeV/c"};
TString strNames[] = {"_1", "_3", "_5"};
TH1D* h_m2[3];
for (Int_t i = 0; i < 3; i++) {
h_m2[i] =
h_m2mom->ProjectionY(("h_m2" + strNames[i]).Data(), bins[i], bins[i]);
Style(h_m2[i], "m^{2} (GeV^{2}/c^{4})", "dn/dm^{2}");
h_m2[i]->Scale(0.1);
h_m2[i]->GetXaxis()->SetRangeUser(-0.5, 1.5);
// h_m2[i]->GetYaxis()->SetRangeUser(1e-1, 3e2);
}
// Fitting functions
TF1* f1;
TF1* f_pika_f;
TF1* f_prot_f;
if (level < 2) {
f1 = new TF1("f1", fun_m2_mc, -0.5, 1.5, 4);
f1->SetParameters(0.1, 150, 20, 80);
} else {
f_pika_f = new TF1("f_pika_f", fun_m2_pika, -0.5, 0.5, 3);
f_pika_f->SetParameters(0.01, 1., 1.);
f_prot_f = new TF1("f_prot_f", fun_m2, 0.7, 1.3, 3);
f_prot_f->SetParameters(0.3, 1., M2PROT);
}
TF1* f_pion = new TF1("f_pion", fun_m2, -0.5, 1.5, 3);
f_pion->SetLineWidth(1.2);
f_pion->SetLineColor(2);
TF1* f_kaon = new TF1("f_kaon", fun_m2, -0.5, 1.5, 3);
f_kaon->SetLineWidth(1.2);
f_kaon->SetLineColor(4);
TF1* f_prot = new TF1("f_prot", fun_m2, -0.5, 1.5, 3);
f_prot->SetLineWidth(1.2);
f_prot->SetLineColor(3);
// Plot hitogramms
TCanvas* c1;
if (level < 2) {
gStyle->SetPaperSize(32, 16);
c1 = new TCanvas("c1", "", 10, 10, 1020, 510);
c1->Divide(2, 1);
} else {
gStyle->SetPaperSize(32, 16);
c1 = new TCanvas("c1", "", 10, 10, 1020, 510);
c1->Divide(2, 1);
}
TPostScript* ps1 = new TPostScript(psName[level - 1], -113);
if (level < 2) {
ps1->Range(32, 16);
} else {
ps1->Range(32, 16);
}
c1->cd(1);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.17);
gPad->SetLogz();
gPad->SetGridx();
gPad->SetGridy();
h_m2mom->Draw("colz");
TPaveLabel* l1 =
new TPaveLabel(0.37, 0.90, 0.80, 0.98, label[level - 1], "NDC");
Style(l1);
l1->SetTextColor(2);
l1->Draw();
if (level < 2) {
c1->cd(2);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.05);
gPad->SetLogy();
gPad->SetGridx();
gPad->SetGridy();
h_m2[2]->Draw();
h_m2[2]->Fit(f1, "QN");
f_pion->SetParameters(f1->GetParameter(0), f1->GetParameter(1), M2PION);
f_kaon->SetParameters(f1->GetParameter(0), f1->GetParameter(2), M2KAON);
f_prot->SetParameters(f1->GetParameter(0), f1->GetParameter(3), M2PROT);
f_pion->Draw("same");
f_kaon->Draw("same");
f_prot->Draw("same");
TPaveLabel* l2 = new TPaveLabel(0.41, 0.79, 0.73, 0.88, strBins[2], "NDC");
Style(l2);
l2->SetTextColor(4);
l2->Draw();
TLegend* leg1 = new TLegend(0.71, 0.62, 0.92, 0.86);
Style(leg1);
leg1->AddEntry(f_pion, " #pi^{+}", "l");
leg1->AddEntry(f_kaon, " K^{+}", "l");
leg1->AddEntry(f_prot, " p", "l");
leg1->Draw();
} else {
for (Int_t i = 0; i < 1; i++) {
c1->cd(i + 2);
// c1->cd(2);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.05);
gPad->SetLogy();
gPad->SetGridx();
gPad->SetGridy();
h_m2[i + 1]->Draw();
h_m2[i + 1]->Fit(f_pika_f, "QNR+");
h_m2[i + 1]->Fit(f_prot_f, "QNR+");
f_pion->SetParameters(
f_pika_f->GetParameter(0), f_pika_f->GetParameter(1), M2PION);
f_kaon->SetParameters(
f_pika_f->GetParameter(0), f_pika_f->GetParameter(2), M2KAON);
f_prot->SetParameters(f_prot_f->GetParameter(0),
f_prot_f->GetParameter(1),
f_prot_f->GetParameter(2));
f_pion->DrawClone("same");
f_kaon->DrawClone("same");
f_prot->DrawClone("same");
TPaveLabel* l2 =
new TPaveLabel(0.41, 0.79, 0.73, 0.88, strBins[i + 1], "NDC");
Style(l2);
l2->SetTextColor(4);
l2->Draw();
if (0 == i) {
TLegend* leg1 = new TLegend(0.705, 0.652, 0.935, 0.862);
Style(leg1);
leg1->AddEntry(f_pion, " #pi^{+}", "l");
leg1->AddEntry(f_kaon, " K^{+}", "l");
leg1->AddEntry(f_prot, " p", "l");
leg1->Draw();
}
}
}
c1->cd(0);
ps1->Close();
}
// ------------------------------------------------------------------
// ------------------------------------------------------------------
void plot_hadron_m2mom_ghost(Int_t level) {
// Check level
if (level < 1 || level > 3) return;
// Drawing style
TPstyle();
// CBM software version
char* ver = getenv("CBMVER");
// Define filenames
char fileName[3][1000];
sprintf(fileName[0],
"/d/cbm02/kresan/hadron/%s/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.99percent.hadron.pdf.root",
ver);
sprintf(fileName[1],
"/d/cbm02/kresan/hadron/%s/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.99percent.hadron.pdf.recoIdeal.root",
ver);
sprintf(fileName[2],
"/d/cbm02/kresan/hadron/%s/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.99percent.hadron.pdf.reco.root",
ver);
// Define PS file names
char psName[3][1000];
sprintf(psName[0], "plots/%s/hadron.m2mom.ghost.mc.eps", ver);
sprintf(psName[1], "plots/%s/hadron.m2mom.ghost.recoIdeal.eps", ver);
sprintf(psName[2], "plots/%s/hadron.m2mom.ghost.reco.eps", ver);
// Labels on the plots for diff. levels
char* label[] = {"MC", "RECO ideal", "RECO"};
// Open the file
TFile* file = new TFile(fileName[level - 1]);
// All tracks
TH2F* h_m2mom = (TH2F*) file->Get("h_m2mom_good");
Style(h_m2mom, "p (GeV/c)", "m^{2} (GeV^{2}/c^{4})");
h_m2mom->Scale(1. / 10000.);
h_m2mom->GetXaxis()->SetRangeUser(0., 6.);
h_m2mom->GetYaxis()->SetRangeUser(-0.5, 1.5);
h_m2mom->GetZaxis()->SetRangeUser(1e-1, 1e2);
h_m2mom->GetZaxis()->SetTitle("dn/dp/dm^{2}");
// Ghost tracks
TH2F* h_m2mom_ghost = (TH2F*) file->Get("h_m2mom_fake");
Style(h_m2mom_ghost, "p (GeV/c)", "m^{2} (GeV^{2}/c^{4})");
h_m2mom_ghost->Scale(1. / 10000.);
h_m2mom_ghost->GetXaxis()->SetRangeUser(0., 6.);
h_m2mom_ghost->GetYaxis()->SetRangeUser(-0.5, 1.5);
h_m2mom_ghost->GetZaxis()->SetRangeUser(1e-1, 1e2);
h_m2mom_ghost->GetZaxis()->SetTitle("dn/dp/dm^{2}");
cout << h_m2mom_ghost->GetEntries()
/ (h_m2mom->GetEntries() + h_m2mom_ghost->GetEntries()) * 100
<< endl;
// Tracks with TOF double hits
TH2F* h_m2mom_tdh = (TH2F*) file->Get("h_m2mom_tdh");
Style(h_m2mom_tdh, "p (GeV/c)", "m^{2} (GeV^{2}/c^{4})");
h_m2mom_tdh->Scale(1. / 10000.);
h_m2mom_tdh->GetXaxis()->SetRangeUser(0., 6.);
h_m2mom_tdh->GetYaxis()->SetRangeUser(-0.5, 1.5);
h_m2mom_tdh->GetZaxis()->SetRangeUser(1e-1, 1e2);
h_m2mom_tdh->GetZaxis()->SetTitle("dn/dp/dm^{2}");
// Ghost tracks without TDH
TH2F* h_m2mom_gwtdh =
new TH2F("h_m2mom_gwtdh", "", 200, -10., 10., 900, -1.5, 3.0);
Style(h_m2mom_gwtdh, "p (GeV/c)", "m^{2} (GeV^{2}/c^{4})");
h_m2mom_gwtdh->Scale(1. / 10000.);
h_m2mom_gwtdh->GetZaxis()->SetTitle("dn/dp/dm^{2}");
h_m2mom_gwtdh->Add(h_m2mom_ghost);
h_m2mom_gwtdh->Add(h_m2mom_tdh, -1);
h_m2mom_gwtdh->GetXaxis()->SetRangeUser(0., 6.);
h_m2mom_gwtdh->GetYaxis()->SetRangeUser(-0.5, 1.5);
h_m2mom_gwtdh->GetZaxis()->SetRangeUser(1e-1, 1e2);
gStyle->SetPaperSize(32, 32);
TCanvas* c1 = new TCanvas("c1", "", 10, 10, 1020, 1020);
c1->Divide(2, 2);
TPostScript* ps1 = new TPostScript(psName[level - 1], -113);
ps1->Range(32, 32);
c1->cd(1);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.17);
gPad->SetLogz();
gPad->SetGridx();
gPad->SetGridy();
h_m2mom->Draw("colz");
TPaveLabel* l1 =
new TPaveLabel(0.37, 0.90, 0.80, 0.98, label[level - 1], "NDC");
Style(l1);
l1->SetTextColor(2);
l1->Draw();
TPaveLabel* l2 = new TPaveLabel(0.25, 0.80, 0.75, 0.88, "good", "NDC");
Style(l2);
l2->DrawClone();
c1->cd(2);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.17);
gPad->SetLogz();
gPad->SetGridx();
gPad->SetGridy();
h_m2mom_ghost->Draw("colz");
l2->SetLabel("ghost");
l2->DrawClone();
c1->cd(3);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.17);
gPad->SetLogz();
gPad->SetGridx();
gPad->SetGridy();
h_m2mom_tdh->Draw("colz");
l2->SetLabel("ghost (TDH)");
l2->DrawClone();
c1->cd(4);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.17);
if (h_m2mom_gwtdh->GetMaximum() > 1) { gPad->SetLogz(); }
gPad->SetGridx();
gPad->SetGridy();
h_m2mom_gwtdh->Draw("colz");
l2->SetLabel("ghost (w/o TDH)");
l2->DrawClone();
c1->cd(0);
ps1->Close();
}
// ------------------------------------------------------------------
// ------------------------------------------------------------------
void plot_hadron_sm2() {
TPstyle();
TFile* file =
new TFile("/d/cbm06/user/kresan/hadron/head/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.99percent.fitted.root");
TFile* file_r =
new TFile("/d/cbm06/user/kresan/hadron/head/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.99percent.fitted.reco.root");
TH1F* h_sm2 = (TH1F*) file->Get("h_sm2");
// h_sm2->GetXaxis()->SetRangeUser(1., 5.);
// h_sm2->GetYaxis()->SetRangeUser(0., 0.6);
TH1F* h_sm2_r = (TH1F*) file_r->Get("h_sm2");
h_sm2_r->GetXaxis()->SetRangeUser(1., 5.);
h_sm2_r->GetYaxis()->SetRangeUser(0., 0.6);
// Style(h_sm2, "p (GeV/c)", "#sigma_{m^{2}} (GeV^{2}/c^{4})");
Style(h_sm2_r, "p (GeV/c)", "#sigma_{m^{2}} (GeV^{2}/c^{4})");
// h_sm2_r->SetLineColor(3);
TF1* f1 = new TF1("f1", "0.05605928625", 1., 10.);
f1->SetLineWidth(2);
f1->SetLineColor(6);
f1->SetLineStyle(2);
TF1* f2 = new TF1("f2", "0.21521862875", 1., 10.);
f2->SetLineWidth(2);
f2->SetLineColor(4);
f2->SetLineStyle(2);
gStyle->SetPaperSize(16, 16);
TCanvas* c1 = new TCanvas("c1", "", 10, 10, 510, 510);
TPostScript* ps1 = new TPostScript("plots/head/hadron.sm2.eps", -113);
ps1->Range(16, 16);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.05);
// h_sm2->Draw();
// h_sm2_r->Draw("same");
h_sm2_r->Draw();
TLegend* leg1 = new TLegend(0.2648, 0.693, 0.504, 0.844);
Style(leg1);
leg1->AddEntry(h_sm2, "MC", "pl");
leg1->AddEntry(h_sm2_r, "RECO", "pl");
// leg1->Draw();
f1->Draw("same");
f2->Draw("same");
TPaveLabel* label1 =
new TPaveLabel(0.178, 0.402, 0.573, 0.475, "2#sigma separation", "NDC");
Style(label1);
label1->Draw();
TPaveLabel* label2 =
new TPaveLabel(0.759, 0.317, 0.949, 0.376, "p and #pi", "NDC");
Style(label2);
label2->SetTextColor(4);
label2->Draw();
TPaveLabel* label3 =
new TPaveLabel(0.751, 0.164, 0.949, 0.226, "K and #pi", "NDC");
Style(label3);
label3->SetTextColor(6);
label3->Draw();
ps1->Close();
}
// ------------------------------------------------------------------
// ------------------------------------------------------------------
void plot_hadron_kaoneff() {
TPstyle();
TFile* file =
new TFile("/d/cbm06/user/kresan/hadron/head/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.99percent.fitted.root");
TFile* file_r =
new TFile("/d/cbm06/user/kresan/hadron/head/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.99percent.fitted.reco.root");
TH1F* h_eff = (TH1F*) file->Get("h_eff_ka");
TH1F* h_eff_r = (TH1F*) file_r->Get("h_eff_ka");
Style(h_eff, "p (GeV/c)", "efficiency (%)");
h_eff->GetXaxis()->SetRangeUser(1., 8.);
h_eff_r->SetLineColor(3);
gStyle->SetPaperSize(16, 16);
TCanvas* c1 = new TCanvas("c1", "", 10, 10, 510, 510);
TPostScript* ps1 = new TPostScript("plots/head/hadron.kaoneff.eps", -113);
ps1->Range(16, 16);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.05);
h_eff->Draw();
h_eff_r->Draw("same");
TLegend* leg1 = new TLegend(0.692, 0.737, 0.877, 0.865);
Style(leg1);
leg1->AddEntry(h_eff, "MC", "l");
leg1->AddEntry(h_eff_r, "RECO", "l");
leg1->Draw();
ps1->Close();
}
// ------------------------------------------------------------------
// ------------------------------------------------------------------
void plot_hadron_kaonmom() {
TPstyle();
TFile* file =
new TFile("/lustre/cbm/user/kresan/hadron/head/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.90percent.hadron.spectra.root");
TH1F* h_all = (TH1F*) file->Get("h_mom_all_kap");
TH1F* h_acc = (TH1F*) file->Get("h_mom_acc_kap");
TH1F* h_rpid = (TH1F*) file->Get("h_mom_rpid_kap");
Style(h_all, "p (GeV/c)", "dn/dp");
h_all->SetLineStyle(2);
h_all->GetXaxis()->SetRangeUser(1., 10.);
h_rpid->SetFillColor(42);
TH1F* h1 = new TH1F("h1", "", 40, 0., 10.);
for (Int_t i = 0; i < 100; i++) {
h1->SetBinContent(i + 1, h_rpid->GetBinContent(i + 1));
}
h1->SetFillColor(41);
gStyle->SetPaperSize(16, 16);
TCanvas* c1 = new TCanvas("c1", "", 10, 10, 510, 510);
TPostScript* ps1 = new TPostScript("plots/head/hadron.kaonmom.eps", -113);
ps1->Range(16, 16);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.05);
h_all->Draw();
h1->Draw("same");
h_acc->Draw("same");
TLegend* leg1 = new TLegend(0.443, 0.463, 0.943, 0.892);
Style(leg1);
leg1->AddEntry(h_all, "ALL", "pl");
leg1->AddEntry(h_acc, "ACCEPTED", "pl");
leg1->AddEntry(h1, "RECO + PID", "f");
leg1->Draw();
ps1->Close();
}
// ------------------------------------------------------------------
// ------------------------------------------------------------------
void plot_hadron_pty() {
TPstyle();
TFile* file =
new TFile("/lustre/cbm/user/kresan/hadron/head/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.50percent.hadron.spectra.root");
TH2F* h_all_pip = (TH2F*) file->Get("h_pty_all_pip");
TH2F* h_all_kap = (TH2F*) file->Get("h_pty_all_kap");
TH2F* h_all_prot = (TH2F*) file->Get("h_pty_all_prot");
TH2F* h_acc_pip = (TH2F*) file->Get("h_pty_acc_pip");
TH2F* h_acc_kap = (TH2F*) file->Get("h_pty_acc_kap");
TH2F* h_acc_prot = (TH2F*) file->Get("h_pty_acc_prot");
TH2F* h_rpid_pip = (TH2F*) file->Get("h_pty_rpid_pip");
TH2F* h_rpid_kap = (TH2F*) file->Get("h_pty_rpid_kap");
TH2F* h_rpid_prot = (TH2F*) file->Get("h_pty_rpid_prot");
Style(h_all_pip, "y", "p_{t} (GeV/c)");
Style(h_all_kap, "y", "p_{t} (GeV/c)");
Style(h_all_prot, "y", "p_{t} (GeV/c)");
Style(h_acc_pip, "y", "p_{t} (GeV/c)");
Style(h_acc_kap, "y", "p_{t} (GeV/c)");
Style(h_acc_prot, "y", "p_{t} (GeV/c)");
Style(h_rpid_pip, "y", "p_{t} (GeV/c)");
Style(h_rpid_kap, "y", "p_{t} (GeV/c)");
Style(h_rpid_prot, "y", "p_{t} (GeV/c)");
h_all_pip->GetXaxis()->SetTitleSize(0.07);
h_all_pip->GetXaxis()->SetLabelSize(0.07);
h_all_pip->GetXaxis()->SetTitleOffset(1.1);
h_all_pip->GetYaxis()->SetTitleSize(0.07);
h_all_pip->GetYaxis()->SetLabelSize(0.07);
h_all_pip->GetYaxis()->SetTitleOffset(1.1);
h_all_kap->GetXaxis()->SetTitleSize(0.07);
h_all_kap->GetXaxis()->SetLabelSize(0.07);
h_all_kap->GetXaxis()->SetTitleOffset(1.1);
h_all_kap->GetYaxis()->SetTitleSize(0.07);
h_all_kap->GetYaxis()->SetLabelSize(0.07);
h_all_kap->GetYaxis()->SetTitleOffset(1.1);
h_all_prot->GetXaxis()->SetTitleSize(0.07);
h_all_prot->GetXaxis()->SetLabelSize(0.07);
h_all_prot->GetXaxis()->SetTitleOffset(1.1);
h_all_prot->GetYaxis()->SetTitleSize(0.07);
h_all_prot->GetYaxis()->SetLabelSize(0.07);
h_all_prot->GetYaxis()->SetTitleOffset(1.1);
h_acc_pip->GetXaxis()->SetTitleSize(0.07);
h_acc_pip->GetXaxis()->SetLabelSize(0.07);
h_acc_pip->GetXaxis()->SetTitleOffset(1.1);
h_acc_pip->GetYaxis()->SetTitleSize(0.07);
h_acc_pip->GetYaxis()->SetLabelSize(0.07);
h_acc_pip->GetYaxis()->SetTitleOffset(1.1);
h_acc_kap->GetXaxis()->SetTitleSize(0.07);
h_acc_kap->GetXaxis()->SetLabelSize(0.07);
h_acc_kap->GetXaxis()->SetTitleOffset(1.1);
h_acc_kap->GetYaxis()->SetTitleSize(0.07);
h_acc_kap->GetYaxis()->SetLabelSize(0.07);
h_acc_kap->GetYaxis()->SetTitleOffset(1.1);
h_acc_prot->GetXaxis()->SetTitleSize(0.07);
h_acc_prot->GetXaxis()->SetLabelSize(0.07);
h_acc_prot->GetXaxis()->SetTitleOffset(1.1);
h_acc_prot->GetYaxis()->SetTitleSize(0.07);
h_acc_prot->GetYaxis()->SetLabelSize(0.07);
h_acc_prot->GetYaxis()->SetTitleOffset(1.1);
h_rpid_pip->GetXaxis()->SetTitleSize(0.07);
h_rpid_pip->GetXaxis()->SetLabelSize(0.07);
h_rpid_pip->GetXaxis()->SetTitleOffset(1.1);
h_rpid_pip->GetYaxis()->SetTitleSize(0.07);
h_rpid_pip->GetYaxis()->SetLabelSize(0.07);
h_rpid_pip->GetYaxis()->SetTitleOffset(1.1);
h_rpid_kap->GetXaxis()->SetTitleSize(0.07);
h_rpid_kap->GetXaxis()->SetLabelSize(0.07);
h_rpid_kap->GetXaxis()->SetTitleOffset(1.1);
h_rpid_kap->GetYaxis()->SetTitleSize(0.07);
h_rpid_kap->GetYaxis()->SetLabelSize(0.07);
h_rpid_kap->GetYaxis()->SetTitleOffset(1.1);
h_rpid_prot->GetXaxis()->SetTitleSize(0.07);
h_rpid_prot->GetXaxis()->SetLabelSize(0.07);
h_rpid_prot->GetXaxis()->SetTitleOffset(1.1);
h_rpid_prot->GetYaxis()->SetTitleSize(0.07);
h_rpid_prot->GetYaxis()->SetLabelSize(0.07);
h_rpid_prot->GetYaxis()->SetTitleOffset(1.1);
TF1* f1 = new TF1("f1", fun_pty_p, 0., 4., 2);
f1->SetParameter(0, MKAON);
f1->SetParameter(1, 5.0);
f1->SetLineWidth(2);
f1->SetLineColor(2);
TF1* f_pi_27 = new TF1("f_pi_27", fun_pty_theta, 0., 4., 2);
f_pi_27->SetParameter(0, MPION);
f_pi_27->SetParameter(1, 27 * TMath::Pi() / 180.);
f_pi_27->SetLineWidth(2);
TF1* f_pi_3 = new TF1("f_pi_3", fun_pty_theta, 0., 4., 2);
f_pi_3->SetParameter(0, MPION);
f_pi_3->SetParameter(1, 2.5 * TMath::Pi() / 180.);
f_pi_3->SetLineWidth(2);
TF1* f_ka_27 = new TF1("f_ka_27", fun_pty_theta, 0., 4., 2);
f_ka_27->SetParameter(0, MKAON);
f_ka_27->SetParameter(1, 27 * TMath::Pi() / 180.);
f_ka_27->SetLineWidth(2);
TF1* f_ka_3 = new TF1("f_ka_3", fun_pty_theta, 0., 4., 2);
f_ka_3->SetParameter(0, MKAON);
f_ka_3->SetParameter(1, 2.5 * TMath::Pi() / 180.);
f_ka_3->SetLineWidth(2);
TF1* f_prot_27 = new TF1("f_prot_27", fun_pty_theta, 0., 4., 2);
f_prot_27->SetParameter(0, MPROT);
f_prot_27->SetParameter(1, 27 * TMath::Pi() / 180.);
f_prot_27->SetLineWidth(2);
TF1* f_prot_3 = new TF1("f_prot_3", fun_pty_theta, 0., 4., 2);
f_prot_3->SetParameter(0, MPROT);
f_prot_3->SetParameter(1, 2.5 * TMath::Pi() / 180.);
f_prot_3->SetLineWidth(2);
cout << "pi" << endl;
cout << "Acceptance: "
<< 100 * (Double_t) h_acc_pip->GetEntries()
/ (Double_t) h_all_pip->GetEntries()
<< endl;
cout << "RECO + PID: "
<< 100 * (Double_t) h_rpid_pip->GetEntries()
/ (Double_t) h_acc_pip->GetEntries()
<< endl;
cout << endl;
cout << "K" << endl;
cout << "Acceptance: "
<< 100 * (Double_t) h_acc_kap->GetEntries()
/ (Double_t) h_all_kap->GetEntries()
<< endl;
cout << "RECO + PID: "
<< 100 * (Double_t) h_rpid_kap->GetEntries()
/ (Double_t) h_acc_kap->GetEntries()
<< endl;
cout << endl;
cout << "p" << endl;
cout << "Acceptance: "
<< 100 * (Double_t) h_acc_prot->GetEntries()
/ (Double_t) h_all_prot->GetEntries()
<< endl;
cout << "RECO + PID: "
<< 100 * (Double_t) h_rpid_prot->GetEntries()
/ (Double_t) h_acc_prot->GetEntries()
<< endl;
cout << endl;
gStyle->SetPaperSize(48, 48);
TCanvas* c1 = new TCanvas("c1", "", 10, 10, 1020, 1020);
c1->Divide(3, 3, 0, 0);
TPostScript* ps1 = new TPostScript("plots/head/hadron.pty.eps", -113);
ps1->Range(48, 48);
c1->cd(1);
gPad->SetLeftMargin(0.2);
gPad->SetRightMargin(0.);
h_all_pip->Draw("col");
TPaveLabel* label_all =
new TPaveLabel(0.220, 0.788, 0.485, 0.981, "ALL", "NDC");
Style(label_all);
label_all->Draw();
TPaveLabel* label_pip =
new TPaveLabel(0.821, 0.813, 0.987, 0.988, "#pi", "NDC");
Style(label_pip);
label_pip->Draw();
c1->cd(2);
gPad->SetLeftMargin(0.);
gPad->SetRightMargin(0.);
h_all_kap->Draw("col");
TPaveLabel* label_kap =
new TPaveLabel(0.821, 0.813, 0.987, 0.988, "K", "NDC");
Style(label_kap);
label_kap->Draw();
c1->cd(3);
gPad->SetLeftMargin(0.);
gPad->SetRightMargin(0.01);
h_all_prot->Draw("col");
TPaveLabel* label_prot =
new TPaveLabel(0.821, 0.813, 0.987, 0.988, "p", "NDC");
Style(label_prot);
label_prot->Draw();
c1->cd(4);
gPad->SetLeftMargin(0.2);
gPad->SetRightMargin(0.);
h_acc_pip->Draw("col");
f_pi_27->Draw("same");
f_pi_3->Draw("same");
TPaveLabel* label_acc =
new TPaveLabel(0.220, 0.788, 0.485, 0.981, "ACC", "NDC");
Style(label_acc);
label_acc->Draw();
c1->cd(5);
gPad->SetLeftMargin(0.);
gPad->SetRightMargin(0.);
h_acc_kap->Draw("col");
f_ka_27->Draw("same");
f_ka_3->Draw("same");
c1->cd(6);
gPad->SetLeftMargin(0.);
gPad->SetRightMargin(0.01);
h_acc_prot->Draw("col");
f_prot_27->Draw("same");
f_prot_3->Draw("same");
c1->cd(7);
gPad->SetLeftMargin(0.2);
gPad->SetRightMargin(0.);
gPad->SetBottomMargin(0.15);
h_rpid_pip->Draw("col");
f_pi_27->Draw("same");
f_pi_3->Draw("same");
TPaveLabel* label_pid =
new TPaveLabel(0.220, 0.788, 0.485, 0.981, "PID", "NDC");
Style(label_pid);
label_pid->Draw();
c1->cd(8);
gPad->SetLeftMargin(0.);
gPad->SetRightMargin(0.);
gPad->SetBottomMargin(0.15);
h_rpid_kap->Draw("col");
f_ka_27->Draw("same");
f_ka_3->Draw("same");
f1->Draw("same");
TPaveLabel* label1 =
new TPaveLabel(0.39, 0.82, 0.90, 0.96, "p=5.0 GeV/c", "NDC");
Style(label1);
label1->SetTextColor(2);
label1->Draw();
c1->cd(9);
gPad->SetLeftMargin(0.);
gPad->SetRightMargin(0.01);
gPad->SetBottomMargin(0.15);
h_rpid_prot->Draw("col");
f_prot_27->Draw("same");
f_prot_3->Draw("same");
c1->cd(0);
ps1->Close();
}
// ------------------------------------------------------------------
// ------------------------------------------------------------------
void plot_hadron_kaonpty0() {
TPstyle();
TFile* file =
new TFile("/lustre/cbm/user/kresan/hadron/head/urqmd/auau/25gev/centr/\
urqmd.auau.25gev.centr.80ps.50percent.hadron.spectra.root");
TH2F* h_all_kap = (TH2F*) file->Get("h_pty_all_kap");
TH2F* h_acc_kap = (TH2F*) file->Get("h_pty_acc_kap");
TH2F* h_rpid_kap = (TH2F*) file->Get("h_pty_rpid_kap");
// TH1D *h_all_kap_pt = new TH1D("h_all_kap_pt", "", 20, 0., 2.);
// TH1D *h_acc_kap_pt = new TH1D("h_acc_kap_pt", "", 20, 0., 2.);
// TH1D *h_rpid_kap_pt = new TH1D("h_rpid_kap_pt", "", 20, 0., 2.);
TH1D* h_all_kap_pt = h_all_kap->ProjectionY("h_all_kap_pt", 19, 19);
h_all_kap_pt->Scale(1. / 0.01 * 1. / 200000.);
TH1D* h_acc_kap_pt = h_acc_kap->ProjectionY("h_acc_kap_pt", 19, 19);
h_acc_kap_pt->Scale(1. / 0.01 * 1. / 200000.);
TH1D* h_rpid_kap_pt = h_rpid_kap->ProjectionY("h_rpid_kap_pt", 19, 19);
h_rpid_kap_pt->Scale(1. / 0.01 * 1. / 200000.);
Style(h_all_kap_pt, "p_{t} (GeV/c)", "d^{2}n/dp_{t}/dy (GeV/c)^{-1}");
h_all_kap_pt->SetLineStyle(2);
h_rpid_kap_pt->SetFillColor(42);
gStyle->SetPaperSize(16, 16);
TCanvas* c1 = new TCanvas("c1", "", 10, 10, 510, 510);
TPostScript* ps1 = new TPostScript("plots/head/hadron.kaon.pty0.eps", -113);
ps1->Range(16, 16);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.05);
gPad->SetLogy();
h_all_kap_pt->Draw();
h_rpid_kap_pt->Draw("same");
h_acc_kap_pt->Draw("same");
TLegend* leg1 = new TLegend(0.561, 0.616, 0.939, 0.894);
Style(leg1);
leg1->AddEntry(h_all_kap_pt, "4#pi", "l");
leg1->AddEntry(h_acc_kap_pt, "accepted", "l");
leg1->AddEntry(h_rpid_kap_pt, "RECO+PID", "f");
leg1->Draw();
ps1->Close();
}
// ------------------------------------------------------------------
// ------------------------------------------------------------------
void plot_hadron_kaonmt() {
TPstyle();
TFile* file = new TFile("/d/cbm02/kresan/hadron/JAN06/urqmd/auau/35gev/centr/\
urqmd.auau.35gev.centr.80ps.99percent.hadron.spectra.root");
TH2F* h_mty_all = (TH2F*) file->Get("h_mty_all_kap");
TH2F* h_mty_acc = (TH2F*) file->Get("h_mty_acc_kap");
TH2F* h_mty_reco = (TH2F*) file->Get("h_mty_reco_kap");
TH2F* h_mty_pid = (TH2F*) file->Get("h_mty_recopid_kap");
TH1D* h_mt_all = h_mty_all->ProjectionY("h_mt_all", 21, 21);
TH1D* h_mt_acc = h_mty_acc->ProjectionY("h_mt_acc", 21, 21);
TH1D* h_mt_reco = h_mty_reco->ProjectionY("h_mt_reco", 21, 21);
TH1D* h_mt_pid = h_mty_pid->ProjectionY("h_mt_pid", 21, 21);
Style(h_mt_all, "m_{t} at ycm (GeV^{2}/c^{4})", "dn/dm_{t}");
h_mt_all->SetLineStyle(2);
h_mt_all->SetMarkerStyle(25);
h_mt_acc->SetMarkerStyle(20);
h_mt_reco->SetLineColor(2);
h_mt_reco->SetMarkerStyle(21);
h_mt_reco->SetMarkerColor(2);
h_mt_pid->SetLineColor(4);
h_mt_pid->SetMarkerStyle(22);
h_mt_pid->SetMarkerColor(4);
gStyle->SetPaperSize(16, 16);
TCanvas* c1 = new TCanvas("c1", "", 10, 10, 510, 510);
TPostScript* ps1 = new TPostScript("plots/hadron.kaonmt.eps", -113);
ps1->Range(16, 16);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.05);
gPad->SetLogy();
h_mt_all->Draw("pe1");
h_mt_acc->Draw("pe1same");
h_mt_reco->Draw("pe1same");
h_mt_pid->Draw("pe1same");
TLegend* leg1 = new TLegend(0.542, 0.595, 0.943, 0.894);
Style(leg1);
leg1->AddEntry(h_mt_all, "all", "p");
leg1->AddEntry(h_mt_acc, "accepted", "p");
leg1->AddEntry(h_mt_reco, "reconstructed", "p");
leg1->AddEntry(h_mt_pid, "identified", "p");
leg1->Draw();
ps1->Close();
}
// ------------------------------------------------------------------
// ------------------------------------------------------------------
void plot_stseff() {
TPstyle();
TFile* file =
new TFile("/misc/kresan/jan06/cbmroot2/macro/hadron/reco/histo.root");
TProfile* p_eff = (TProfile*) file->Get("p_eff_all_vs_mom");
p_eff->SetLineColor(2);
p_eff->SetMarkerColor(2);
gStyle->SetPaperSize(16, 16);
TCanvas* c1 = new TCanvas("c1", "", 10, 10, 510, 510);
TPostScript* ps1 = new TPostScript("plots/sts.eff.eps", -113);
ps1->Range(16, 16);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.05);
gPad->SetGridx();
gPad->SetGridy();
p_eff->Draw();
Style(p_eff, "p (GeV/c)", "efficiency (%)");
p_eff->GetYaxis()->SetRangeUser(1, 101);
ps1->Close();
}
// ------------------------------------------------------------------
// ------------------------------------------------------------------
void plot_stsmomres() {
TPstyle();
TFile* file =
new TFile("/misc/kresan/jan06/cbmroot2/macro/hadron/reco/histo.root");
TH2F* h_momres = (TH2F*) file->Get("P_vs_P");
Style(h_momres, "p (GeV/c)", "#deltap/p");
TH1F* h_sigma = new TH1F("h_sigma", "", 20, 0., 20.);
Style(h_sigma, "p (GeV/c)", "resolution");
h_sigma->SetMarkerStyle(21);
h_sigma->SetMarkerColor(2);
h_sigma->GetXaxis()->SetRangeUser(0., 10.);
h_sigma->GetYaxis()->SetRangeUser(0., 0.02);
TF1* f1 = new TF1("f1", "gaus", -0.05, 0.05);
TH1D* h_py;
for (Int_t i = 0; i < 20; i++) {
h_py = h_momres->ProjectionY("h_py", i + 1, i + 1);
h_py->Fit(f1, "QN");
h_sigma->SetBinContent(i + 1, f1->GetParameter(2));
h_sigma->SetBinError(i + 1, f1->GetParError(2));
}
gStyle->SetPaperSize(32, 16);
TCanvas* c1 = new TCanvas("c1", "", 10, 10, 1020, 510);
c1->Divide(2, 1);
TPostScript* ps1 = new TPostScript("plots/sts.momres.eps", -113);
ps1->Range(32, 16);
c1->cd(1);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.05);
h_momres->Draw("cont0");
h_momres->GetXaxis()->SetRangeUser(0., 10.);
c1->cd(2);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.05);
gPad->SetGridx();
gPad->SetGridy();
h_sigma->Draw("pe1");
c1->cd(0);
ps1->Close();
}
// ------------------------------------------------------------------
// ------------------------------------------------------------------
void plot_trdeff() {
TPstyle();
TFile* file =
new TFile("/d/cbm02/kresan/reco/JAN06/urqmd/auau/35gev/centr/80ps/\
urqmd.auau.35gev.centr.0002.80ps.reco.root");
TH1F* h_eff = (TH1F*) file->Get("h_mom_eff_good");
Style(h_eff, "p (GeV/c)", "efficiency");
h_eff->Rebin(5);
h_eff->Scale(1. / 5.);
h_eff->GetYaxis()->SetRangeUser(0.01, 1.01);
h_eff->SetLineColor(2);
h_eff->SetMarkerColor(2);
// h_eff->SetMarkerStyle(21);
gStyle->SetPaperSize(16, 16);
TCanvas* c1 = new TCanvas("c1", "", 10, 10, 510, 510);
TPostScript* ps1 = new TPostScript("plots/trd.eff.eps", -113);
ps1->Range(16, 16);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.05);
gPad->SetGridx();
gPad->SetGridy();
h_eff->Draw("");
ps1->Close();
}
// ------------------------------------------------------------------
// ------------------------------------------------------------------
void plot_glbeff() {
TPstyle();
TFile* file =
new TFile("/d/cbm02/kresan/reco/JAN06/urqmd/auau/35gev/centr/80ps/\
urqmd.auau.35gev.centr.0002.80ps.reco.root");
TH1F* h_eff = (TH1F*) file->Get("h_mom_eff_good_glb");
Style(h_eff, "p (GeV/c)", "efficiency");
h_eff->Rebin(5);
h_eff->Scale(1. / 5.);
h_eff->GetYaxis()->SetRangeUser(0.01, 1.01);
h_eff->SetLineColor(4);
h_eff->SetMarkerColor(4);
// h_eff->SetMarkerStyle(21);
gStyle->SetPaperSize(16, 16);
TCanvas* c1 = new TCanvas("c1", "", 10, 10, 510, 510);
TPostScript* ps1 = new TPostScript("plots/glb.eff.eps", -113);
ps1->Range(16, 16);
gPad->SetLeftMargin(0.15);
gPad->SetRightMargin(0.05);
gPad->SetGridx();
gPad->SetGridy();
h_eff->Draw("");
ps1->Close();
}
// ------------------------------------------------------------------
Double_t fun_pty_theta(Double_t* x, Double_t* par) {
Double_t shy = TMath::SinH(x[0]);
Double_t chy = TMath::CosH(x[0]);
Double_t sint = TMath::Sin(par[1]);
Double_t cost = TMath::Cos(par[1]);
Double_t temp = cost * cost * chy * chy - shy * shy;
if (temp > 0)
return par[0] * sint * shy / TMath::Sqrt(temp);
else
return 2.6;
}
Double_t fun_pty_p(Double_t* x, Double_t* par) {
Double_t m2 = par[0] * par[0];
Double_t p2 = par[1] * par[1];
Double_t sh2y = TMath::Power(TMath::SinH(x[0]), 2);
Double_t chy = TMath::CosH(x[0]);
if ((m2 * sh2y) > p2) { return 0.; }
return TMath::Sqrt(p2 - m2 * sh2y) / chy;
}