File indexing completed on 2026-10-15 08:20:45
0001 #include "../config/binning.h"
0002 #include "../config/cuts.h"
0003 #include "PVSVUncertainty.h"
0004
0005 void get_data_PVSVUncertainty(const std::string& numerator_infile = "/sphenix/tg/tg01/hf/mjpeters/LightFlavorProduction/bcoSkimmedDataSample/Lambda_run3pp_looseCuts_20260608_bco_skimmed.root",
0006 const CutSettings& numerator_cuts = StandardCuts::data_Lambda0_cuts,
0007 const std::string& denominator_infile = "/sphenix/tg/tg01/hf/mjpeters/LightFlavorProduction/bcoSkimmedDataSample/Kshort_run3pp_looseCuts_20260608_bco_skimmed.root",
0008 const CutSettings& denominator_cuts = StandardCuts::data_K_S0_cuts,
0009 const std::string& outfile = "/sphenix/tg/tg01/hf/mjpeters/LightFlavorProduction/cutEfficiencyCorrection/data_pvsv_uncertainty.root")
0010 {
0011 gROOT->SetBatch();
0012
0013 TFile* f_numerator = TFile::Open(numerator_infile.c_str());
0014 TFile* f_denominator = TFile::Open(denominator_infile.c_str());
0015
0016 TTree* t_numerator = (TTree*)f_numerator->Get("DecayTree");
0017 TTree* t_denominator = (TTree*)f_denominator->Get("DecayTree");
0018
0019 TFile* f_out = new TFile(outfile.c_str(),"RECREATE");
0020 PVSVUncertainty pvsv_numerator(numerator_cuts.mother_name,numerator_cuts.mother_name,300,0.,0.05);
0021 PVSVUncertainty pvsv_denominator(denominator_cuts.mother_name,denominator_cuts.mother_name,300,0.,0.05);
0022
0023 std::vector<HistogramInfo> variables =
0024 {
0025 BinInfo::final_pt_bins,
0026 BinInfo::final_eta_bins,
0027 BinInfo::final_phi_bins,
0028 BinInfo::final_rapidity_bins
0029 };
0030
0031 std::string numerator_cutstring = generate_selection_cutstring(numerator_cuts,variables);
0032 std::string denominator_cutstring = generate_selection_cutstring(denominator_cuts,variables);
0033
0034 t_numerator->Draw(("pow(primary_vertex_volume,1./3.)>>"+std::string(pvsv_numerator.PV_sigma->GetName())).c_str(),numerator_cutstring.c_str(),"goff");
0035 t_numerator->Draw(("sqrt(primary_vertex_Covariance[0]+primary_vertex_Covariance[2]-2.*primary_vertex_Covariance[1])>>"+std::string(pvsv_numerator.PV_sigma_xy->GetName())).c_str(),numerator_cutstring.c_str(),"goff");
0036 t_numerator->Draw(("pow("+numerator_cuts.mother_name+"_vertex_volume,1./3.)>>"+std::string(pvsv_numerator.SV_sigma->GetName())).c_str(),numerator_cutstring.c_str(),"goff");
0037 t_numerator->Draw(("track_1_IPErr>>"+std::string(pvsv_numerator.track_1_PV_DCA_sigma->GetName())).c_str(),numerator_cutstring.c_str(),"goff");
0038 t_numerator->Draw(("track_2_IPErr>>"+std::string(pvsv_numerator.track_2_PV_DCA_sigma->GetName())).c_str(),numerator_cutstring.c_str(),"goff");
0039 t_numerator->Draw(("sqrt(track_1_Covariance[0]+track_1_Covariance[2]-2.*track_1_Covariance[1])>>"+std::string(pvsv_numerator.track_1_PV_DCA_xy_sigma->GetName())).c_str(),numerator_cutstring.c_str(),"goff");
0040 t_numerator->Draw(("sqrt(track_2_Covariance[0]+track_2_Covariance[2]-2.*track_2_Covariance[1])>>"+std::string(pvsv_numerator.track_2_PV_DCA_xy_sigma->GetName())).c_str(),numerator_cutstring.c_str(),"goff");
0041
0042 t_denominator->Draw(("pow(primary_vertex_volume,1./3.)>>"+std::string(pvsv_denominator.PV_sigma->GetName())).c_str(),denominator_cutstring.c_str(),"goff");
0043 t_denominator->Draw(("sqrt(primary_vertex_Covariance[0]+primary_vertex_Covariance[2]-2.*primary_vertex_Covariance[1])>>"+std::string(pvsv_denominator.PV_sigma_xy->GetName())).c_str(),denominator_cutstring.c_str(),"goff");
0044 t_denominator->Draw(("pow("+denominator_cuts.mother_name+"_vertex_volume,1./3.)>>"+std::string(pvsv_denominator.SV_sigma->GetName())).c_str(),denominator_cutstring.c_str(),"goff");
0045 t_denominator->Draw(("track_1_IPErr>>"+std::string(pvsv_denominator.track_1_PV_DCA_sigma->GetName())).c_str(),denominator_cutstring.c_str(),"goff");
0046 t_denominator->Draw(("track_2_IPErr>>"+std::string(pvsv_denominator.track_2_PV_DCA_sigma->GetName())).c_str(),denominator_cutstring.c_str(),"goff");
0047 t_denominator->Draw(("sqrt(track_1_Covariance[0]+track_1_Covariance[2]-2.*track_1_Covariance[1])>>"+std::string(pvsv_denominator.track_1_PV_DCA_xy_sigma->GetName())).c_str(),denominator_cutstring.c_str(),"goff");
0048 t_denominator->Draw(("sqrt(track_2_Covariance[0]+track_2_Covariance[2]-2.*track_2_Covariance[1])>>"+std::string(pvsv_denominator.track_2_PV_DCA_xy_sigma->GetName())).c_str(),denominator_cutstring.c_str(),"goff");
0049
0050 pvsv_numerator.Write();
0051 pvsv_denominator.Write();
0052 }