diff --git a/benchmarks/barrel_ecal/scripts/emcal_barrel_pions_analysis.cxx b/benchmarks/barrel_ecal/scripts/emcal_barrel_pions_analysis.cxx index eef7ac6b4e877a3e3a85309b722a1b92805e0bf3..2be65740944a31e2912d27a44438bf38e8170c0c 100644 --- a/benchmarks/barrel_ecal/scripts/emcal_barrel_pions_analysis.cxx +++ b/benchmarks/barrel_ecal/scripts/emcal_barrel_pions_analysis.cxx @@ -41,7 +41,11 @@ void emcal_barrel_pions_analysis(const char* input_fname = "sim_output/sim_emcal std::string test_tag = "Barrel_emcal_pi0"; //TODO: Change test_tag to something else std:string detector = "Barrel_emcal"; - double resolutionTarget = 0.1; + //Energy resolution in teh barrel region(-1 < eta < 1) + // 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 thrown_energy = 5; // Current thrown energy, will need to grab from json file + double resolutionTarget = TMath::Sqrt(0.12 * 0.12 / thrown_energy + 0.02 * 0.02); eic::util::Test pi0_energy_resolution{ {{"name", fmt::format("{}_energy_resolution", test_tag)}, @@ -195,18 +199,19 @@ void emcal_barrel_pions_analysis(const char* input_fname = "sim_output/sim_emcal c5->SaveAs("results/emcal_barrel_pions_pid.png"); c5->SaveAs("results/emcal_barrel_pions_pid.pdf"); - //Energy Resolution Work + //Energy Resolution Calculation auto hdE = d2.Histo1D({"hdE", "dE; dE[GeV]; Events", 20, -7.5, 7.5}, "dE");//changed from 100 auto hdE_rel = d2.Histo1D({"hdE_rel", "dE Relative; dE Relative; Events", 20, -2, 2}, "dE_rel");//changed from 100 - hdE_rel->Fit("gaus", "", "", -2, 2); - double* res = hdE_rel->GetFunction("gaus")->GetParameters(); + hdE->Fit("gaus", "", "", -2, 2); + double* res = hdE->GetFunction("gaus")->GetParameters(); + double sigmaOverE = res[2] / thrown_energy; //Pass/Fail - if (res[2] <= resolutionTarget) { - pi0_energy_resolution.pass(res[2]); + if (sigmaOverE <= resolutionTarget) { + pi0_energy_resolution.pass(sigmaOverE); } else { - pi0_energy_resolution.fail(res[2]); + pi0_energy_resolution.fail(sigmaOverE); } //std::printf("Energy Resolution is %f\n", res[2]); @@ -216,6 +221,8 @@ void emcal_barrel_pions_analysis(const char* input_fname = "sim_output/sim_emcal hdE->GetYaxis()->SetTitleOffset(1.4); hdE->SetLineWidth(2); hdE->SetLineColor(kBlue); + hdE->GetFunction("gaus")->SetLineWidth(2); + hdE->GetFunction("gaus")->SetLineColor(kRed); hdE->DrawClone(); cdE->SaveAs("results/emcal_barrel_pi0_dE.png"); cdE->SaveAs("results/emcal_barrel_pi0_dE.pdf");