Warning, file /analysis/LightFlavorRatios/swimming_correction/getCutEfficiency.C was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 #include "../util/binning.h"
0002
0003 void getCutEfficiency(const std::string& infile = "/sphenix/tg/tg01/hf/mjpeters/LightFlavorProduction/cutEfficiencyCorrection/merged_cutefficiency.root", const std::string& outfile = "/sphenix/tg/tg01/hf/mjpeters/LightFlavorProduction/cutEfficiencyCorrection/cut_efficiency_correction.root",const std::string& numerator_name = "Lambda0", const std::string& denominator_name = "K_S0")
0004 {
0005 std::vector<HistogramInfo> variables =
0006 {
0007 BinInfo::final_pt_bins,
0008 BinInfo::final_eta_bins,
0009 BinInfo::final_phi_bins,
0010 BinInfo::final_rapidity_bins
0011 };
0012
0013 TFile* f = TFile::Open(infile.c_str());
0014
0015 TFile* fout = new TFile(outfile.c_str(),"RECREATE");
0016
0017 for(const HistogramInfo& var : variables)
0018 {
0019 TH1F* numerator_truth_h = (TH1F*)f->Get((numerator_name+"_truth_vs"+var.name).c_str());
0020 TH1F* numerator_reco_h = (TH1F*)f->Get((numerator_name+"_reco_vs"+var.name).c_str());
0021 TH1F* denominator_truth_h = (TH1F*)f->Get((denominator_name+"_truth_vs"+var.name).c_str());
0022 TH1F* denominator_reco_h = (TH1F*)f->Get((denominator_name+"_reco_vs"+var.name).c_str());
0023
0024 TH1F* numerator_cuteff = makeHistogram((numerator_name+"_cuteff").c_str(),(numerator_name+" cut efficiency").c_str(),var);
0025 TH1F* denominator_cuteff = makeHistogram((denominator_name+"_cuteff").c_str(),(denominator_name+" cut efficiency").c_str(),var);
0026
0027 TH1F* cuteff_correction = makeHistogram((numerator_name+"_over_"+denominator_name+"_cuteff_correction").c_str(),(numerator_name+"/"+denominator_name+" cut efficiency correction").c_str(),var);
0028 TH1F* cuteff_inverse_correction = makeHistogram((denominator_name+"_over_"+numerator_name+"_cuteff_correction").c_str(),(denominator_name+"/"+numerator_name+" cut efficiency correction").c_str(),var);
0029
0030 numerator_cuteff->Divide(numerator_reco_h,numerator_truth_h);
0031 denominator_cuteff->Divide(denominator_reco_h,denominator_truth_h);
0032
0033 cuteff_correction->Divide(numerator_cuteff,denominator_cuteff);
0034 cuteff_inverse_correction->Divide(denominator_cuteff,numerator_cuteff);
0035
0036 numerator_truth_h->Write();
0037 numerator_reco_h->Write();
0038 denominator_truth_h->Write();
0039 denominator_reco_h->Write();
0040 numerator_cuteff->Write();
0041 denominator_cuteff->Write();
0042 cuteff_correction->Write();
0043 cuteff_inverse_correction->Write();
0044 }
0045 }