File indexing completed on 2026-07-16 08:11:22
0001 std::string getDate()
0002 {
0003 std::time_t t = std::time(0);
0004 std::tm* now = std::localtime(&t);
0005
0006 std::stringstream date;
0007 date << (now->tm_mon + 1) << '/'
0008 << now->tm_mday << '/'
0009 << (now->tm_year + 1900);
0010 return date.str();
0011 }
0012
0013 void CutEfficiencySystematic()
0014 {
0015 std::string weightFileName = "/sphenix/user/rosstom/TrackingAnalysis/Physics_Val_TF/data/analysisMacros/normalized_sWeight_pT_distributions.root";
0016 TFile* weightFile = new TFile(weightFileName.c_str());
0017 TH1F* KS0_pT_histo_Normalized = (TH1F*)weightFile->Get("KS0_pT_histo_Normalized");
0018 TH1F* Xi_pT_histo_Normalized = (TH1F*)weightFile->Get("Xi_pT_histo_Normalized");
0019 KS0_pT_histo_Normalized->SetDirectory(0);
0020 Xi_pT_histo_Normalized->SetDirectory(0);
0021
0022 string sim_inFile_Xi = "/sphenix/user/rosstom/TrackingAnalysis/Physics_Val_TF/sim/pTComp/KFParticle_4Mcascade_nopTCut.root";
0023 TFile* sim_file_Xi = new TFile(sim_inFile_Xi.c_str());
0024 sim_file_Xi->cd();
0025 TTree* sim_tree_Xi = (TTree*)sim_file_Xi->Get("DecayTree");
0026
0027 const int nBins_pT = 4;
0028 double pTbins[nBins_pT + 1] = {0.75, 1.07, 1.25, 1.49, 2.0};
0029
0030 const int nBins_phi = 6;
0031 double phibins[nBins_phi + 1] = {-M_PI,-2.09439,-1.04719,0.0,1.04721,2.09441,M_PI};
0032
0033 const int nBins_eta = 6;
0034 double etabins[nBins_eta + 1] = {-1.1,-0.733333,-0.366666,0.0,0.366668,0.733335,1.1};
0035
0036 const int nBins_rap = 6;
0037 double rapbins[nBins_rap + 1] = {-1.0,-0.66,-0.33,0.0,0.33,0.66,1.0};
0038
0039 std::string truthCut = "abs(Lambda0_track_1_true_ID) == 211 && Sum$(abs(Lambda0_track_1_true_track_history_PDG_ID) == 3122) > 0 && Sum$(abs(Lambda0_track_1_true_track_history_PDG_ID) == 3312) > 0 && abs(Lambda0_track_2_true_ID) == 2212 && Sum$(abs(Lambda0_track_2_true_track_history_PDG_ID) == 3122) > 0 && Sum$(abs(Lambda0_track_2_true_track_history_PDG_ID) == 3312) > 0 && abs(track_3_true_ID) == 211 && Sum$(abs(track_3_true_track_history_PDG_ID) == 3312) > 0 && Sum$(abs(track_3_true_track_history_PDG_ID) == 3122) == 0 && abs(Ximinus_rapidity) <= 1.0 && Lambda0_track_1_MVTX_nHits > 0 && Lambda0_track_2_MVTX_nHits > 0 && track_3_MVTX_nHits > 0 && abs(primary_vertex_z) < 10 && Lambda0_track_1_charge == track_3_charge";
0040 std::string truthDataCut = "abs(Lambda0_track_1_true_ID) == 211 && Sum$(abs(Lambda0_track_1_true_track_history_PDG_ID) == 3122) > 0 && Sum$(abs(Lambda0_track_1_true_track_history_PDG_ID) == 3312) > 0 && abs(Lambda0_track_2_true_ID) == 2212 && Sum$(abs(Lambda0_track_2_true_track_history_PDG_ID) == 3122) > 0 && Sum$(abs(Lambda0_track_2_true_track_history_PDG_ID) == 3312) > 0 && abs(track_3_true_ID) == 211 && Sum$(abs(track_3_true_track_history_PDG_ID) == 3312) > 0 && Sum$(abs(track_3_true_track_history_PDG_ID) == 3122) == 0 && Lambda0_track_1_MVTX_nHits > 0 && Lambda0_track_2_MVTX_nHits > 0 && track_3_MVTX_nHits > 0 && abs(primary_vertex_z) < 10 && Lambda0_track_1_charge == track_3_charge && Lambda0_track_1_INTT_nHits > 0 && Lambda0_track_2_INTT_nHits > 0 && track_3_INTT_nHits > 0 && Lambda0_track_1_TPC_nHits > 19 && Lambda0_track_2_TPC_nHits > 19 && track_3_TPC_nHits > 19 && abs(Lambda0_mass - 1.1157) <= 0.01 && Ximinus_decayLength_xy >= 0.15 && Lambda0_decayLength_xy >= 0.01 && (Lambda0_track_1_chi2/Lambda0_track_1_nDoF) <= 400 && (Lambda0_track_2_chi2/Lambda0_track_2_nDoF) <= 400 && (track_3_chi2/track_3_nDoF) <= 400 && track_1_track_2_DCA <= 0.5 && track_1_track_3_DCA <= 0.5 && track_2_track_3_DCA <= 0.5 && Ximinus_chi2/Ximinus_nDoF <= 50 && Lambda0_chi2/Lambda0_nDoF <= 50 && abs(Ximinus_rapidity) <= 1.0 && Lambda0_track_1_pT >= 0.2 && Lambda0_track_2_pT >= 0.2 && track_3_pT >= 0.2";
0041
0042 TH1F* h_pT_truth = new TH1F("h_pT_truth",";#Xi^{-} p_{T} [GeV/c];Cut Efficiency",nBins_pT,pTbins);
0043 TH1F* h_pT_truthCuts = new TH1F("h_pT_truthCuts",";#Xi^{-} p_{T} [GeV/c];Cut Efficiency",nBins_pT,pTbins);
0044
0045 TH1F* h_eta_truth = new TH1F("h_eta_truth",";#Xi^{-} #eta;Cut Efficiency",nBins_eta,etabins);
0046 TH1F* h_eta_truthCuts = new TH1F("h_eta_truthCuts",";#Xi^{-} #eta;Cut Efficiency",nBins_eta,etabins);
0047
0048 TH1F* h_phi_truth = new TH1F("h_phi_truth",";#Xi^{-} #phi;Cut Efficiency",nBins_phi,phibins);
0049 TH1F* h_phi_truthCuts = new TH1F("h_phi_truthCuts",";#Xi^{-} #phi;Cut Efficiency",nBins_phi,phibins);
0050
0051 TH1F* h_y_truth = new TH1F("h_y_truth",";#Xi^{-} y;Cut Efficiency",nBins_rap,rapbins);
0052 TH1F* h_y_truthCuts = new TH1F("h_y_truthCuts",";#Xi^{-} y;Cut Efficiency",nBins_rap,rapbins);
0053
0054 h_pT_truth->Sumw2();
0055 h_pT_truthCuts->Sumw2();
0056 h_eta_truth->Sumw2();
0057 h_eta_truthCuts->Sumw2();
0058 h_phi_truth->Sumw2();
0059 h_phi_truthCuts->Sumw2();
0060 h_y_truth->Sumw2();
0061 h_y_truthCuts->Sumw2();
0062
0063 std::cout << "Writing Xi base histograms" << std::endl;
0064
0065 sim_tree_Xi->Draw("Ximinus_pT>>+h_pT_truth",truthCut.c_str());
0066 sim_tree_Xi->Draw("Ximinus_pT>>+h_pT_truthCuts",truthDataCut.c_str());
0067 sim_tree_Xi->Draw("Ximinus_pseudorapidity>>+h_eta_truth",truthCut.c_str());
0068 sim_tree_Xi->Draw("Ximinus_pseudorapidity>>+h_eta_truthCuts",truthDataCut.c_str());
0069 sim_tree_Xi->Draw("Ximinus_phi>>+h_phi_truth",truthCut.c_str());
0070 sim_tree_Xi->Draw("Ximinus_phi>>+h_phi_truthCuts",truthDataCut.c_str());
0071 sim_tree_Xi->Draw("Ximinus_rapidity>>+h_y_truth",truthCut.c_str());
0072 sim_tree_Xi->Draw("Ximinus_rapidity>>+h_y_truthCuts",truthDataCut.c_str());
0073
0074 std::cout << "Done writing Xi base histograms" << std::endl;
0075
0076 TH1F* h_cutEff_pT_KS0_denom = new TH1F("h_cutEff_pT_KS0_denom",";K_{S}^{0} p_{T} [GeV/c];Cut Efficiency",nBins_pT,pTbins);
0077 TH1F* h_cutEff_pT_KS0_num = new TH1F("h_cutEff_pT_KS0_num",";K_{S}^{0} p_{T} [GeV/c];Cut Efficiency",nBins_pT,pTbins);
0078 TH1F* h_cutEff_eta_KS0_denom = new TH1F("h_cutEff_eta_KS0_denom",";K_{S}^{0} #eta;Cut Efficiency",nBins_eta,etabins);
0079 TH1F* h_cutEff_eta_KS0_num = new TH1F("h_cutEff_eta_KS0_num",";K_{S}^{0} #eta;Cut Efficiency",nBins_eta,etabins);
0080 TH1F* h_cutEff_phi_KS0_denom = new TH1F("h_cutEff_phi_KS0_denom",";K_{S}^{0} #phi [rad];Cut Efficiency",nBins_phi,phibins);
0081 TH1F* h_cutEff_phi_KS0_num = new TH1F("h_cutEff_phi_KS0_num",";K_{S}^{0} #phi [rad];Cut Efficiency",nBins_phi,phibins);
0082 TH1F* h_cutEff_rap_KS0_denom = new TH1F("h_cutEff_rap_KS0_denom",";K_{S}^{0} Rapidity (y);Cut Efficiency",nBins_rap,rapbins);
0083 TH1F* h_cutEff_rap_KS0_num = new TH1F("h_cutEff_rap_KS0_num",";K_{S}^{0} Rapidity (y);Cut Efficiency",nBins_rap,rapbins);
0084
0085 TH1F* h_cutEff_pT_Xi_denom = new TH1F("h_cutEff_pT_Xi_denom",";#Xi^{-} p_{T} [GeV/c];Cut Efficiency",nBins_pT,pTbins);
0086 TH1F* h_cutEff_pT_Xi_num = new TH1F("h_cutEff_pT_Xi_num",";#Xi^{-} p_{T} [GeV/c];Cut Efficiency",nBins_pT,pTbins);
0087 TH1F* h_cutEff_eta_Xi_denom = new TH1F("h_cutEff_eta_Xi_denom",";#Xi^{-} #eta;Cut Efficiency",nBins_eta,etabins);
0088 TH1F* h_cutEff_eta_Xi_num = new TH1F("h_cutEff_eta_Xi_num",";#Xi^{-} #eta;Cut Efficiency",nBins_eta,etabins);
0089 TH1F* h_cutEff_phi_Xi_denom = new TH1F("h_cutEff_phi_Xi_denom",";#Xi^{-} #phi [rad];Cut Efficiency",nBins_phi,phibins);
0090 TH1F* h_cutEff_phi_Xi_num = new TH1F("h_cutEff_phi_Xi_num",";#Xi^{-} #phi [rad];Cut Efficiency",nBins_phi,phibins);
0091 TH1F* h_cutEff_rap_Xi_denom = new TH1F("h_cutEff_rap_Xi_denom",";#Xi^{-} Rapidity (y);Cut Efficiency",nBins_rap,rapbins);
0092 TH1F* h_cutEff_rap_Xi_num = new TH1F("h_cutEff_rap_Xi_num",";#Xi^{-} Rapidity (y);Cut Efficiency",nBins_rap,rapbins);
0093
0094 h_cutEff_pT_KS0_denom->Sumw2();
0095 h_cutEff_pT_KS0_num->Sumw2();
0096 h_cutEff_eta_KS0_denom->Sumw2();
0097 h_cutEff_eta_KS0_num->Sumw2();
0098 h_cutEff_phi_KS0_denom->Sumw2();
0099 h_cutEff_phi_KS0_num->Sumw2();
0100 h_cutEff_rap_KS0_denom->Sumw2();
0101 h_cutEff_rap_KS0_num->Sumw2();
0102 h_cutEff_pT_Xi_denom->Sumw2();
0103 h_cutEff_pT_Xi_num->Sumw2();
0104 h_cutEff_eta_Xi_denom->Sumw2();
0105 h_cutEff_eta_Xi_num->Sumw2();
0106 h_cutEff_phi_Xi_denom->Sumw2();
0107 h_cutEff_phi_Xi_num->Sumw2();
0108 h_cutEff_rap_Xi_denom->Sumw2();
0109 h_cutEff_rap_Xi_num->Sumw2();
0110
0111 TFile* outputFile = TFile::Open("cutEfficiencyCorrections.root", "RECREATE");
0112 outputFile->cd();
0113 TTree* XiTree_truth = sim_tree_Xi->CopyTree(truthCut.c_str());
0114 XiTree_truth->SetName("XiTree_truth");
0115 std::cout << "Copied XiTree_truth" << std::endl;
0116 TTree* XiTree_truthCuts = sim_tree_Xi->CopyTree(truthDataCut.c_str());
0117 XiTree_truthCuts->SetName("XiTree_truthCuts");
0118 std::cout << "Copied XiTree_truthCuts" << std::endl;
0119
0120 float Ximinus_pT, Ximinus_eta, Ximinus_phi, Ximinus_rap;
0121 float K_S0_pT, K_S0_eta, K_S0_phi, K_S0_rap;
0122 float weight;
0123 XiTree_truth->SetBranchAddress("Ximinus_pT", &Ximinus_pT);
0124 XiTree_truth->SetBranchAddress("Ximinus_pseudorapidity", &Ximinus_eta);
0125 XiTree_truth->SetBranchAddress("Ximinus_phi", &Ximinus_phi);
0126 XiTree_truth->SetBranchAddress("Ximinus_rapidity", &Ximinus_rap);
0127 for (int i = 0; i < XiTree_truth->GetEntries(); i++)
0128 {
0129 XiTree_truth->GetEntry(i);
0130
0131 if (Ximinus_pT < 0 || Ximinus_pT > 5)
0132 {
0133 weight = 0;
0134 }
0135 else
0136 {
0137 int binNumber = Xi_pT_histo_Normalized->GetXaxis()->FindBin(Ximinus_pT);
0138 weight = Xi_pT_histo_Normalized->GetBinContent(binNumber);
0139 }
0140
0141 h_cutEff_pT_Xi_denom->Fill(Ximinus_pT, weight);
0142 h_cutEff_eta_Xi_denom->Fill(Ximinus_eta, weight);
0143 h_cutEff_phi_Xi_denom->Fill(Ximinus_phi, weight);
0144 h_cutEff_rap_Xi_denom->Fill(Ximinus_rap, weight);
0145 }
0146 std::cout << "Filled Xi denom" << std::endl;
0147
0148 XiTree_truthCuts->SetBranchAddress("Ximinus_pT", &Ximinus_pT);
0149 XiTree_truthCuts->SetBranchAddress("Ximinus_pseudorapidity", &Ximinus_eta);
0150 XiTree_truthCuts->SetBranchAddress("Ximinus_phi", &Ximinus_phi);
0151 XiTree_truthCuts->SetBranchAddress("Ximinus_rapidity", &Ximinus_rap);
0152 for (int i = 0; i < XiTree_truthCuts->GetEntries(); i++)
0153 {
0154 XiTree_truthCuts->GetEntry(i);
0155
0156 if (Ximinus_pT < 0 || Ximinus_pT > 5)
0157 {
0158 weight = 0;
0159 }
0160 else
0161 {
0162 int binNumber = Xi_pT_histo_Normalized->GetXaxis()->FindBin(Ximinus_pT);
0163 weight = Xi_pT_histo_Normalized->GetBinContent(binNumber);
0164 }
0165
0166 h_cutEff_pT_Xi_num->Fill(Ximinus_pT, weight);
0167 h_cutEff_eta_Xi_num->Fill(Ximinus_eta, weight);
0168 h_cutEff_phi_Xi_num->Fill(Ximinus_phi, weight);
0169 h_cutEff_rap_Xi_num->Fill(Ximinus_rap, weight);
0170 }
0171 std::cout << "Filled Xi num" << std::endl;
0172
0173 string sim_inFile_KS0 = "/sphenix/user/cdean/software/analysis/LightFlavorRatios/geometric_acceptance/simulation/outputKFParticle_Kshort_reco.root";
0174 TFile* sim_file_KS0 = new TFile(sim_inFile_KS0.c_str());
0175 sim_file_KS0->cd();
0176 TTree* sim_tree_KS0 = (TTree*)sim_file_KS0->Get("DecayTree");
0177
0178 std::string truthCut_KS0 = "abs(track_1_true_ID) == 211 && Sum$(abs(track_1_true_track_history_PDG_ID) == 310) > 0 && abs(track_2_true_ID) == 211 && Sum$(abs(track_2_true_track_history_PDG_ID) == 310) > 0 && abs(K_S0_rapidity) <= 1.0 && track_1_MVTX_nHits > 0 && track_2_MVTX_nHits > 0 && abs(primary_vertex_z) < 10";
0179 std::string truthDataCut_KS0 = "abs(track_1_true_ID) == 211 && Sum$(abs(track_1_true_track_history_PDG_ID) == 310) > 0 && abs(track_2_true_ID) == 211 && Sum$(abs(track_2_true_track_history_PDG_ID) == 310) > 0 && abs(K_S0_rapidity) <= 1.0 && track_1_MVTX_nHits > 0 && track_2_MVTX_nHits > 0 && abs(primary_vertex_z) < 10 && track_1_INTT_nHits > 0 && track_2_INTT_nHits > 0 && track_1_TPC_nHits > 19 && track_2_TPC_nHits > 19 && (track_1_chi2/track_1_nDoF) <= 300 && (track_2_chi2/track_2_nDoF) <= 300 && abs(track_1_IP_xy) >= 0.05 && abs(track_2_IP_xy) >= 0.05 && track_1_track_2_DCA <= 0.5 && track_1_track_2_DCA_xy <= 1.0 && K_S0_DIRA >= 0.99 && (K_S0_chi2/K_S0_nDoF) <= 20 && abs(K_S0_mass - 0.5) <= 0.1 && track_1_pT >= 0.2 && track_2_pT >= 0.2";
0180
0181 TH1F* h_pT_truth_KS0 = new TH1F("h_pT_truth_KS0",";K_{S}^{0} p_{T} [GeV/c];Cut Efficiency",nBins_pT,pTbins);
0182 TH1F* h_pT_truthCuts_KS0 = new TH1F("h_pT_truthCuts_KS0",";K_{S}^{0} p_{T} [GeV/c];Cut Efficiency",nBins_pT,pTbins);
0183
0184 TH1F* h_eta_truth_KS0 = new TH1F("h_eta_truth_KS0",";K_{S}^{0} #eta;Cut Efficiency",nBins_eta,etabins);
0185 TH1F* h_eta_truthCuts_KS0 = new TH1F("h_eta_truthCuts_KS0",";K_{S}^{0} #eta;Cut Efficiency",nBins_eta,etabins);
0186
0187 TH1F* h_phi_truth_KS0 = new TH1F("h_phi_truth_KS0",";K_{S}^{0} #phi;Cut Efficiency",nBins_phi,phibins);
0188 TH1F* h_phi_truthCuts_KS0 = new TH1F("h_phi_truthCuts_KS0",";K_{S}^{0} #phi;Cut Efficiency",nBins_phi,phibins);
0189
0190 TH1F* h_y_truth_KS0 = new TH1F("h_y_truth_KS0",";K_{S}^{0} y;Cut Efficiency",nBins_rap,rapbins);
0191 TH1F* h_y_truthCuts_KS0 = new TH1F("h_y_truthCuts_KS0",";K_{S}^{0} y;Cut Efficiency",nBins_rap,rapbins);
0192
0193 h_pT_truth_KS0->Sumw2();
0194 h_pT_truthCuts_KS0->Sumw2();
0195 h_eta_truth_KS0->Sumw2();
0196 h_eta_truthCuts_KS0->Sumw2();
0197 h_phi_truth_KS0->Sumw2();
0198 h_phi_truthCuts_KS0->Sumw2();
0199 h_y_truth_KS0->Sumw2();
0200 h_y_truthCuts_KS0->Sumw2();
0201
0202 sim_tree_KS0->Draw("K_S0_pT>>+h_pT_truth_KS0",truthCut_KS0.c_str());
0203 sim_tree_KS0->Draw("K_S0_pT>>+h_pT_truthCuts_KS0",truthDataCut_KS0.c_str());
0204 sim_tree_KS0->Draw("K_S0_pseudorapidity>>+h_eta_truth_KS0",truthCut_KS0.c_str());
0205 sim_tree_KS0->Draw("K_S0_pseudorapidity>>+h_eta_truthCuts_KS0",truthDataCut_KS0.c_str());
0206 sim_tree_KS0->Draw("K_S0_phi>>+h_phi_truth_KS0",truthCut_KS0.c_str());
0207 sim_tree_KS0->Draw("K_S0_phi>>+h_phi_truthCuts_KS0",truthDataCut_KS0.c_str());
0208 sim_tree_KS0->Draw("K_S0_rapidity>>+h_y_truth_KS0",truthCut_KS0.c_str());
0209 sim_tree_KS0->Draw("K_S0_rapidity>>+h_y_truthCuts_KS0",truthDataCut_KS0.c_str());
0210 std::cout << "Filled KS0 base" << std::endl;
0211
0212 TH1F* h_cutEff_pT_KS0 = (TH1F*)h_pT_truthCuts_KS0->Clone("h_cutEff_pT_KS0");
0213 h_cutEff_pT_KS0->Divide(h_pT_truthCuts_KS0, h_pT_truth_KS0, 1, 1, "B");
0214 TH1F* h_cutEff_phi_KS0 = (TH1F*)h_phi_truthCuts_KS0->Clone("h_cutEff_phi_KS0");
0215 h_cutEff_phi_KS0->Divide(h_phi_truthCuts_KS0, h_phi_truth_KS0, 1, 1, "B");
0216 TH1F* h_cutEff_eta_KS0 = (TH1F*)h_eta_truthCuts_KS0->Clone("h_cutEff_eta_KS0");
0217 h_cutEff_eta_KS0->Divide(h_eta_truthCuts_KS0, h_eta_truth_KS0, 1, 1, "B");
0218 TH1F* h_cutEff_rap_KS0 = (TH1F*)h_y_truthCuts_KS0->Clone("h_cutEff_rap_KS0");
0219 h_cutEff_rap_KS0->Divide(h_y_truthCuts_KS0, h_y_truth_KS0, 1, 1, "B");
0220
0221 TH1F* h_cutEff_pT_Xi = (TH1F*)h_pT_truthCuts->Clone("h_cutEff_pT_Xi");
0222 h_cutEff_pT_Xi->Divide(h_pT_truthCuts, h_pT_truth, 1, 1, "B");
0223 TH1F* h_cutEff_phi_Xi = (TH1F*)h_phi_truthCuts->Clone("h_cutEff_phi_Xi");
0224 h_cutEff_phi_Xi->Divide(h_phi_truthCuts, h_phi_truth, 1, 1, "B");
0225 TH1F* h_cutEff_eta_Xi = (TH1F*)h_eta_truthCuts->Clone("h_cutEff_eta_Xi");
0226 h_cutEff_eta_Xi->Divide(h_eta_truthCuts, h_eta_truth, 1, 1, "B");
0227 TH1F* h_cutEff_rap_Xi = (TH1F*)h_y_truthCuts->Clone("h_cutEff_rap_Xi");
0228 h_cutEff_rap_Xi->Divide(h_y_truthCuts, h_y_truth, 1, 1, "B");
0229
0230 outputFile->cd();
0231 TTree* KS0Tree_truth = sim_tree_KS0->CopyTree(truthCut_KS0.c_str());
0232 KS0Tree_truth->SetName("KS0Tree_truth");
0233 std::cout << "Copied KS0Tree_truth" << std::endl;
0234 TTree* KS0Tree_truthCuts = sim_tree_KS0->CopyTree(truthDataCut_KS0.c_str());
0235 KS0Tree_truthCuts->SetName("KS0Tree_truthCuts");
0236 std::cout << "Copied KS0Tree_truthCuts" << std::endl;
0237
0238 KS0Tree_truth->SetBranchAddress("K_S0_pT", &K_S0_pT);
0239 KS0Tree_truth->SetBranchAddress("K_S0_pseudorapidity", &K_S0_eta);
0240 KS0Tree_truth->SetBranchAddress("K_S0_phi", &K_S0_phi);
0241 KS0Tree_truth->SetBranchAddress("K_S0_rapidity", &K_S0_rap);
0242 for (int i = 0; i < KS0Tree_truth->GetEntries(); i++)
0243 {
0244 KS0Tree_truth->GetEntry(i);
0245
0246 if (K_S0_pT < 0 || K_S0_pT > 5)
0247 {
0248 weight = 0;
0249 }
0250 else
0251 {
0252 int binNumber = KS0_pT_histo_Normalized->GetXaxis()->FindBin(K_S0_pT);
0253 weight = KS0_pT_histo_Normalized->GetBinContent(binNumber);
0254 }
0255
0256 h_cutEff_pT_KS0_denom->Fill(K_S0_pT, weight);
0257 h_cutEff_eta_KS0_denom->Fill(K_S0_eta, weight);
0258 h_cutEff_phi_KS0_denom->Fill(K_S0_phi, weight);
0259 h_cutEff_rap_KS0_denom->Fill(K_S0_rap, weight);
0260 }
0261 std::cout << "Wrote KS0 denom" << std::endl;
0262
0263 KS0Tree_truthCuts->SetBranchAddress("K_S0_pT", &K_S0_pT);
0264 KS0Tree_truthCuts->SetBranchAddress("K_S0_pseudorapidity", &K_S0_eta);
0265 KS0Tree_truthCuts->SetBranchAddress("K_S0_phi", &K_S0_phi);
0266 KS0Tree_truthCuts->SetBranchAddress("K_S0_rapidity", &K_S0_rap);
0267 for (int i = 0; i < KS0Tree_truthCuts->GetEntries(); i++)
0268 {
0269 KS0Tree_truthCuts->GetEntry(i);
0270
0271 if (K_S0_pT < 0 || K_S0_pT > 5)
0272 {
0273 weight = 0;
0274 }
0275 else
0276 {
0277 int binNumber = KS0_pT_histo_Normalized->GetXaxis()->FindBin(K_S0_pT);
0278 weight = KS0_pT_histo_Normalized->GetBinContent(binNumber);
0279 }
0280
0281 h_cutEff_pT_KS0_num->Fill(K_S0_pT, weight);
0282 h_cutEff_eta_KS0_num->Fill(K_S0_eta, weight);
0283 h_cutEff_phi_KS0_num->Fill(K_S0_phi, weight);
0284 h_cutEff_rap_KS0_num->Fill(K_S0_rap, weight);
0285 }
0286 std::cout << "Wrote KS0 num" << std::endl;
0287
0288 TH1F* h_cutEff_pT_KS0_max = (TH1F*)h_cutEff_pT_KS0_num->Clone("h_cutEff_pT_KS0_max");
0289 h_cutEff_pT_KS0_max->Divide(h_cutEff_pT_KS0_num, h_cutEff_pT_KS0_denom, 1., 1.);
0290 TH1F* h_cutEff_eta_KS0_max = (TH1F*)h_cutEff_eta_KS0_num->Clone("h_cutEff_eta_KS0_max");
0291 h_cutEff_eta_KS0_max->Divide(h_cutEff_eta_KS0_num, h_cutEff_eta_KS0_denom, 1., 1.);
0292 TH1F* h_cutEff_phi_KS0_max = (TH1F*)h_cutEff_phi_KS0_num->Clone("h_cutEff_phi_KS0_max");
0293 h_cutEff_phi_KS0_max->Divide(h_cutEff_phi_KS0_num, h_cutEff_phi_KS0_denom, 1., 1.);
0294 TH1F* h_cutEff_rap_KS0_max = (TH1F*)h_cutEff_rap_KS0_num->Clone("h_cutEff_rap_KS0_max");
0295 h_cutEff_rap_KS0_max->Divide(h_cutEff_rap_KS0_num, h_cutEff_rap_KS0_denom, 1., 1.);
0296 TH1F* h_cutEff_pT_Xi_max = (TH1F*)h_cutEff_pT_Xi_num->Clone("h_cutEff_pT_Xi_max");
0297 h_cutEff_pT_Xi_max->Divide(h_cutEff_pT_Xi_num, h_cutEff_pT_Xi_denom, 1., 1.);
0298 TH1F* h_cutEff_eta_Xi_max = (TH1F*)h_cutEff_eta_Xi_num->Clone("h_cutEff_eta_Xi_max");
0299 h_cutEff_eta_Xi_max->Divide(h_cutEff_eta_Xi_num, h_cutEff_eta_Xi_denom, 1., 1.);
0300 TH1F* h_cutEff_phi_Xi_max = (TH1F*)h_cutEff_phi_Xi_num->Clone("h_cutEff_phi_Xi_max");
0301 h_cutEff_phi_Xi_max->Divide(h_cutEff_phi_Xi_num, h_cutEff_phi_Xi_denom, 1., 1.);
0302 TH1F* h_cutEff_rap_Xi_max = (TH1F*)h_cutEff_rap_Xi_num->Clone("h_cutEff_rap_Xi_max");
0303 h_cutEff_rap_Xi_max->Divide(h_cutEff_rap_Xi_num, h_cutEff_rap_Xi_denom, 1., 1.);
0304
0305 outputFile->cd();
0306 h_cutEff_pT_KS0->Write();
0307 h_cutEff_phi_KS0->Write();
0308 h_cutEff_eta_KS0->Write();
0309 h_cutEff_rap_KS0->Write();
0310 h_cutEff_pT_Xi->Write();
0311 h_cutEff_phi_Xi->Write();
0312 h_cutEff_eta_Xi->Write();
0313 h_cutEff_rap_Xi->Write();
0314 h_cutEff_pT_KS0_max->Write();
0315 h_cutEff_phi_KS0_max->Write();
0316 h_cutEff_eta_KS0_max->Write();
0317 h_cutEff_rap_KS0_max->Write();
0318 h_cutEff_pT_Xi_max->Write();
0319 h_cutEff_phi_Xi_max->Write();
0320 h_cutEff_eta_Xi_max->Write();
0321 h_cutEff_rap_Xi_max->Write();
0322 outputFile->Close();
0323 std::cout << "Done" << std::endl;
0324 }