Back to home page

sPhenix code displayed by LXR

 
 

    


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 }