Skip to content
Snippets Groups Projects

Resolve "Fix Pi0 benchmark"

Merged Marshall Scott requested to merge 37-fix-pi0-benchmark into master
Compare and
1 file
+ 11
10
Compare changes
  • Side-by-side
  • Inline
@@ -13,6 +13,9 @@
@@ -13,6 +13,9 @@
#include "mt.h"
#include "mt.h"
#include "util.h"
#include "util.h"
 
R__LOAD_LIBRARY(libfmt.so)
 
#include "fmt/core.h"
 
#include "TCanvas.h"
#include "TCanvas.h"
#include "TStyle.h"
#include "TStyle.h"
#include "TMath.h"
#include "TMath.h"
@@ -26,6 +29,7 @@ using namespace ROOT::VecOps;
@@ -26,6 +29,7 @@ using namespace ROOT::VecOps;
void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_barrel_pi0.root")
void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_barrel_pi0.root")
{
{
 
//input_fname = "../../../temp_pi0.root";
// Setting for graphs
// Setting for graphs
gROOT->SetStyle("Plain");
gROOT->SetStyle("Plain");
gStyle->SetOptFit(1);
gStyle->SetOptFit(1);
@@ -61,7 +65,7 @@ void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_b
@@ -61,7 +65,7 @@ void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_b
ROOT::RDataFrame d0("events", input_fname);
ROOT::RDataFrame d0("events", input_fname);
// Sampling Fraction
// Sampling Fraction
double samp_frac = 0.0136;
double samp_frac = 0.01;//0.0136
// Thrown Energy [GeV]
// Thrown Energy [GeV]
auto Ethr = [](std::vector<dd4pod::Geant4ParticleData> const& input) {
auto Ethr = [](std::vector<dd4pod::Geant4ParticleData> const& input) {
@@ -95,7 +99,7 @@ void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_b
@@ -95,7 +99,7 @@ void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_b
};
};
// Energy Resolution = Esampling/Sampling_fraction - Ethrown
// Energy Resolution = Esampling/Sampling_fraction - Ethrown
auto eResol = [samp_frac](const std::vector<double>& sampled, const std::vector<double>& thrown) {
auto eResol = [&samp_frac](const std::vector<double>& sampled, const std::vector<double>& thrown) {
std::vector<double> result;
std::vector<double> result;
auto it_sam = sampled.cbegin();
auto it_sam = sampled.cbegin();
auto it_thr = thrown.cbegin();
auto it_thr = thrown.cbegin();
@@ -106,7 +110,7 @@ void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_b
@@ -106,7 +110,7 @@ void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_b
};
};
// Relative Energy Resolution = (Esampling/Sampling fraction - Ethrown)/Ethrown
// Relative Energy Resolution = (Esampling/Sampling fraction - Ethrown)/Ethrown
auto eResol_rel = [samp_frac](const std::vector<double>& sampled, const std::vector<double>& thrown) {
auto eResol_rel = [&samp_frac](const std::vector<double>& sampled, const std::vector<double>& thrown) {
std::vector<double> result;
std::vector<double> result;
auto it_sam = sampled.cbegin();
auto it_sam = sampled.cbegin();
auto it_thr = thrown.cbegin();
auto it_thr = thrown.cbegin();
@@ -144,7 +148,8 @@ void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_b
@@ -144,7 +148,8 @@ void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_b
auto hdau = d1.Histo1D({"hdau", "Number of Daughters; Number of Daughters; Count", 10, 0, 10}, "dau");
auto hdau = d1.Histo1D({"hdau", "Number of Daughters; Number of Daughters; Count", 10, 0, 10}, "dau");
// Set sampling Fraction, ideally this will be taken from a json file
// Set sampling Fraction, ideally this will be taken from a json file
samp_frac = hfsam -> GetMean();
//samp_frac = hfsam -> GetMean();
 
//samp_frac = 0.5;
auto d2 = d1.Define("dE", eResol, {"Esim","Ethr"})
auto d2 = d1.Define("dE", eResol, {"Esim","Ethr"})
.Define("dE_rel", eResol_rel, {"Esim","Ethr"})
.Define("dE_rel", eResol_rel, {"Esim","Ethr"})
@@ -220,11 +225,7 @@ void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_b
@@ -220,11 +225,7 @@ void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_b
double sigmaOverE = res[2] / thrown_energy;
double sigmaOverE = res[2] / thrown_energy;
//Pass/Fail
//Pass/Fail
if (sigmaOverE <= resolutionTarget) {
sigmaOverE <= resolutionTarget ? pi0_energy_resolution.pass(sigmaOverE) : pi0_energy_resolution.fail(sigmaOverE);
pi0_energy_resolution.pass(sigmaOverE);
} else {
pi0_energy_resolution.fail(sigmaOverE);
}
//std::printf("Energy Resolution is %f\n", res[2]);
//std::printf("Energy Resolution is %f\n", res[2]);
//Energy Resolution Histogram Plotting
//Energy Resolution Histogram Plotting
@@ -247,7 +248,7 @@ void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_b
@@ -247,7 +248,7 @@ void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_b
cdE_rel->SaveAs("results/emcal_barrel_pi0_dE_rel.png");
cdE_rel->SaveAs("results/emcal_barrel_pi0_dE_rel.png");
cdE_rel->SaveAs("results/emcal_barrel_pi0_dE_rel.pdf");
cdE_rel->SaveAs("results/emcal_barrel_pi0_dE_rel.pdf");
eic::util::write_test({pi0_energy_resolution}, fmt::format("{}_pi0.json", detector));
eic::util::write_test({pi0_energy_resolution}, fmt::format("results/{}_pi0.json", detector));
}
}
Loading