Skip to content
Snippets Groups Projects
Commit 13318567 authored by Whitney Armstrong's avatar Whitney Armstrong
Browse files

Revert "Resolve "Broken pi0 ecal barrel analysis script""

This reverts commit ed85f282.
parent ed85f282
No related branches found
No related tags found
1 merge request!76Fix broken pipeline
......@@ -29,11 +29,9 @@ using ROOT::RDataFrame;
using namespace ROOT::VecOps;
using json = nlohmann::json;
void emcal_barrel_pi0_analysis(
const char* input_fname = "sim_output/sim_emcal_barrel_pi0.root"
//const char* input_fname = "../sim_output/sim_emcal_barrel_uniform_pi0.root"
)
void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_barrel_pi0.root")
{
//input_fname = "../sim_output/sim_emcal_barrel_pi0.root";
// Setting for graphs
gROOT->SetStyle("Plain");
gStyle->SetOptFit(1);
......@@ -99,28 +97,33 @@ void emcal_barrel_pi0_analysis(
};
// Define variables
auto d1 = d0.Define("Ethr", Ethr, {"mcparticles"})
.Define("nhits", nhits, {"EcalBarrelHits"})
.Define("EsimImg", Esim, {"EcalBarrelHits"})
.Define("EsimScFi", Esim, {"EcalBarrelScFiHits"})
.Define("Esim", "EsimImg+EsimScFi")
.Define("fsam", fsam, {"Esim","Ethr"})
.Define("pid", getpid, {"mcparticles"})
.Define("dau", getdau, {"mcparticles"})
.Define("dE", eResol, {"Esim","Ethr"})
.Define("dE_rel", eResol_rel, {"Esim","Ethr"})
auto d1 = d0.Define("Ethr", Ethr, {"mcparticles"})
.Define("nhits", nhits, {"EcalBarrelHits"})
.Define("EsimImg", Esim, {"EcalBarrelHits"})
.Define("EsimScFi", Esim, {"EcalBarrelScFiHits"})
.Define("Esim", "EsimImg+EsimScFi")
.Define("fsam", fsam, {"Esim","Ethr"})
.Define("pid", getpid, {"mcparticles"})
.Define("dau", getdau, {"mcparticles"})
.Define("dE", eResol, {"Esim","Ethr"})
.Define("dE_rel", eResol_rel, {"Esim","Ethr"})
;
// Define Histograms
auto hEthr = d1.Histo1D({"hEthr", "Thrown Energy; Thrown Energy [GeV]; Events", 100, 0.0, 7.5}, "Ethr");
auto hNhits = d1.Histo1D({"hNhits", "Number of hits per events; Number of hits; Events", 100, 0.0, 2000.0}, "nhits");
auto hEsim = d1.Histo1D({"hEsim", "Energy Deposit; Energy Deposit [GeV]; Events", 100, 0.0, 2.0}, "Esim");
auto hfsam = d1.Histo1D({"hfsam", "Sampling Fraction; Sampling Fraction; Events", 150, 0.0, 0.15}, "fsam");
auto hpid = d1.Histo1D({"hpid", "PID; PID; Count", 100, -220, 220}, "pid");
auto hdau = d1.Histo1D({"hdau", "Number of Daughters; Number of Daughters; Count", 10, 0, 10}, "dau");
auto hdE_rel = d1.Histo1D({"hdE_rel", "dE Relative; dE Relative; Events", 100, -3.0, 3.0}, "dE_rel");
auto hEthr = d1.Histo1D({"hEthr", "Thrown Energy; Thrown Energy [GeV]; Events", 100, 0.0, 7.5}, "Ethr");
auto hNhits = d1.Histo1D({"hNhits", "Number of hits per events; Number of hits; Events", 100, 0.0, 2000.0}, "nhits");
auto hEsim = d1.Histo1D({"hEsim", "Energy Deposit; Energy Deposit [GeV]; Events", 100, 0.0, 2.0}, "Esim");
auto hfsam = d1.Histo1D({"hfsam", "Sampling Fraction; Sampling Fraction; Events", 150, 0.0, 0.15}, "fsam");
auto hpid = d1.Histo1D({"hpid", "PID; PID; Count", 100, -220, 220}, "pid");
auto hdau = d1.Histo1D({"hdau", "Number of Daughters; Number of Daughters; Count", 10, 0, 10}, "dau");
const double meanE = hEthr->GetMean();
// put this line above GetMean below so it can be lazily evaluated with the histgorams.
auto nevents_thrown = d1.Count();
const double meanE = hEthr->GetMean();
// Event Counts
std::cout << "Number of Thrown Events: " << (*nevents_thrown) << "\n";
// Draw Histograms
TCanvas *c1 = new TCanvas("c1", "c1", 700, 500);
......@@ -135,89 +138,105 @@ void emcal_barrel_pi0_analysis(
fmt::print("1\n");
TCanvas *c2 = new TCanvas("c2", "c2", 700, 500);
c2->SetLogy(1);
h1 = hNhits->DrawCopy();
h1->GetYaxis()->SetTitleOffset(1.4);
h1->SetLineWidth(2);
h1->SetLineColor(kBlue);
c2->SaveAs("results/emcal_barrel_pi0_nhits.png");
c2->SaveAs("results/emcal_barrel_pi0_nhits.pdf");
TCanvas *c3 = new TCanvas("c3", "c3", 700, 500);
c3->SetLogy(1);
h1 = hEsim->DrawCopy();
h1->GetYaxis()->SetTitleOffset(1.4);
h1->SetLineWidth(2);
h1->SetLineColor(kBlue);
c3->SaveAs("results/emcal_barrel_pi0_Esim.png");
c3->SaveAs("results/emcal_barrel_pi0_Esim.pdf");
TCanvas *c4 = new TCanvas("c4", "c4", 700, 500);
c4->SetLogy(1);
h1 = hfsam->DrawCopy();
h1->GetYaxis()->SetTitleOffset(1.4);
h1->SetLineWidth(2);
h1->SetLineColor(kBlue);
h1->Fit("gaus","","",0.005,0.1);
h1->GetFunction("gaus")->SetLineWidth(2);
h1->GetFunction("gaus")->SetLineColor(kRed);
c4->SaveAs("results/emcal_barrel_pi0_fsam.png");
c4->SaveAs("results/emcal_barrel_pi0_fsam.pdf");
TCanvas *cdE_rel = new TCanvas("cdE_rel", "cdE_rel", 700, 500);
h1 = hdE_rel->DrawCopy();
h1->GetYaxis()->SetTitleOffset(1.4);
h1->SetLineWidth(2);
h1->SetLineColor(kBlue);
cdE_rel->SaveAs("results/emcal_barrel_pi0_dE_rel.png");
cdE_rel->SaveAs("results/emcal_barrel_pi0_dE_rel.pdf");
h1->Delete();
// Energy Resolution Calculation
std::string test_tag = "Barrel_emcal_pi0";// TODO: Change test_tag to something else
std:string detEle = "Barrel_emcal";
// Energy resolution in the barrel region (-1 < eta < 1)
// Taken from : Initial considerations for EMCal of the EIC detector by A. Bazilevsky
// sigma_E / E = 12% / E^0.5 convoluted with 2%
// sigma_E / E = [ (0.12/E^0.5)^2 + 0.02^2]^0.5, with E in [GeV]
//TCanvas *c2 = new TCanvas("c2", "c2", 700, 500);
//c2->SetLogy(1);
//h1 = hNhits->DrawCopy();
//h1->GetYaxis()->SetTitleOffset(1.4);
//h1->SetLineWidth(2);
//h1->SetLineColor(kBlue);
//c2->SaveAs("results/emcal_barrel_pi0_nhits.png");
//c2->SaveAs("results/emcal_barrel_pi0_nhits.pdf");
//TCanvas *c3 = new TCanvas("c3", "c3", 700, 500);
//c3->SetLogy(1);
//h1 = hEsim->DrawCopy();
//h1->GetYaxis()->SetTitleOffset(1.4);
//h1->SetLineWidth(2);
//h1->SetLineColor(kBlue);
//c3->SaveAs("results/emcal_barrel_pi0_Esim.png");
//c3->SaveAs("results/emcal_barrel_pi0_Esim.pdf");
//TCanvas *c4 = new TCanvas("c4", "c4", 700, 500);
//c4->SetLogy(1);
//h1 = hfsam->DrawCopy();
//h1->GetYaxis()->SetTitleOffset(1.4);
//h1->SetLineWidth(2);
//h1->SetLineColor(kBlue);
//h1->Fit("gaus","","",0.005,0.1);
//h1->GetFunction("gaus")->SetLineWidth(2);
//h1->GetFunction("gaus")->SetLineColor(kRed);
//c4->SaveAs("results/emcal_barrel_pi0_fsam.png");
//c4->SaveAs("results/emcal_barrel_pi0_fsam.pdf");
//TCanvas *c5 = new TCanvas("c5", "c5", 700, 500);
//c5->SetLogy(1);
//h1 = hpid->DrawCopy();
//h1->GetYaxis()->SetTitleOffset(1.4);
//h1->SetLineWidth(2);
//h1->SetLineColor(kBlue);
//c5->SaveAs("results/emcal_barrel_pi0_pid.png");
//c5->SaveAs("results/emcal_barrel_pi0_pid.pdf");
//TCanvas *c6 = new TCanvas("c6", "c6", 700, 500);
//c5->SetLogy(1);
//h1 = hdau->DrawCopy();
//h1->GetYaxis()->SetTitleOffset(1.4);
//h1->SetLineWidth(2);
//h1->SetLineColor(kBlue);
//c6->SaveAs("results/emcal_barrel_pi0_dau.png");
//c6->SaveAs("results/emcal_barrel_pi0_dau.pdf");
//// Energy Resolution Calculation
//std::string test_tag = "Barrel_emcal_pi0";// TODO: Change test_tag to something else
//std:string detEle = "Barrel_emcal";
//// Energy resolution in the barrel region (-1 < eta < 1)
//// Taken from : Initial considerations for EMCal of the EIC detector by A. Bazilevsky
//// sigma_E / E = 12% / E^0.5 convoluted with 2%
//// sigma_E / E = [ (0.12/E^0.5)^2 + 0.02^2]^0.5, with E in [GeV]
//
double resolutionTarget = TMath::Sqrt(0.12 * 0.12 / meanE + 0.02 * 0.02);
common_bench::Test pi0_energy_resolution{
{{"name", fmt::format("{}_energy_resolution", test_tag)},
{"title", "Pi0 Energy resolution"},
{"description",
fmt::format("Pi0 energy resolution for {}, estimated using a Gaussian fit.", detEle)},
{"quantity", "resolution (in %)"},
{"target", std::to_string(resolutionTarget)}}
};
//double resolutionTarget = TMath::Sqrt(0.12 * 0.12 / meanE + 0.02 * 0.02);
//common_bench::Test pi0_energy_resolution{
// {{"name", fmt::format("{}_energy_resolution", test_tag)},
// {"title", "Pi0 Energy resolution"},
// {"description",
// fmt::format("Pi0 energy resolution for {}, estimated using a Gaussian fit.", detEle)},
// {"quantity", "resolution (in %)"},
// {"target", std::to_string(resolutionTarget)}}
//};
//// Histograms and Fitting
auto hdE = d1.Histo1D({"hdE", "dE; dE[GeV]; Events", 100, -3.0, 3.0}, "dE");
auto h2 = hdE->DrawCopy();
h2->Fit("gaus", "", "", -3.0, 3.0);
double* res = h2->GetFunction("gaus")->GetParameters();
double sigmaOverE = res[2] / meanE;
auto tf = h2->GetFunction("gaus");
//auto hdE = d1.Histo1D({"hdE", "dE; dE[GeV]; Events", 100, -3.0, 3.0}, "dE");
//auto hdE_rel = d1.Histo1D({"hdE_rel", "dE Relative; dE Relative; Events", 100, -3.0, 3.0}, "dE_rel");
//auto hdEcopy = hdE->DrawCopy();
//hdEcopy->Fit("gaus", "", "", -3.0, 3.0);
//double* res = hdEcopy->GetFunction("gaus")->GetParameters();
//double sigmaOverE = res[2] / meanE;
//// Pass/Fail
sigmaOverE <= resolutionTarget ? pi0_energy_resolution.pass(sigmaOverE) : pi0_energy_resolution.fail(sigmaOverE);
common_bench::write_test({pi0_energy_resolution}, fmt::format("results/{}_pi0.json", detEle));
std::printf("Energy Resolution is %f\n", res[2]);
//sigmaOverE <= resolutionTarget ? pi0_energy_resolution.pass(sigmaOverE) : pi0_energy_resolution.fail(sigmaOverE);
//std::printf("Energy Resolution is %f\n", res[2]);
//// Energy Resolution Histogram Plotting
auto *cdE = new TCanvas("cdE", "cdE", 700, 500);
cdE->SetLogy(1);
//auto h3 = hdE->DrawCopy();
h2->GetYaxis()->SetTitleOffset(1.4);
h2->SetLineWidth(2);
h2->SetLineColor(kBlue);
tf->SetLineWidth(2);
tf->SetLineColor(kRed);
tf->DrawClone("same");
cdE->SaveAs("results/emcal_barrel_pi0_dE.png");
cdE->SaveAs("results/emcal_barrel_pi0_dE.pdf");
//auto *cdE = new TCanvas("cdE", "cdE", 700, 500);
//cdE->SetLogy(1);
//h1 = hdEcopy->DrawCopy();
//hdEcopy->GetYaxis()->SetTitleOffset(1.4);
//hdEcopy->SetLineWidth(2);
//hdEcopy->SetLineColor(kBlue);
//hdEcopy->GetFunction("gaus")->SetLineWidth(2);
//hdEcopy->GetFunction("gaus")->SetLineColor(kRed);
//cdE->SaveAs("results/emcal_barrel_pi0_dE.png");
//cdE->SaveAs("results/emcal_barrel_pi0_dE.pdf");
//auto *cdE_rel = new TCanvas("cdE_rel", "cdE_rel", 700, 500);
//h1 = hdE_rel->DrawCopy();
//hdE_rel->GetYaxis()->SetTitleOffset(1.4);
//hdE_rel->SetLineWidth(2);
//hdE_rel->SetLineColor(kBlue);
//cdE_rel->SaveAs("results/emcal_barrel_pi0_dE_rel.png");
//cdE_rel->SaveAs("results/emcal_barrel_pi0_dE_rel.pdf");
//common_bench::write_test({pi0_energy_resolution}, fmt::format("results/{}_pi0.json", detEle));
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment