File indexing completed on 2026-04-05 08:10:20
0001 #include <iostream>
0002 #include <filesystem>
0003 #include <string>
0004
0005
0006 TGaxis::SetMaxDigits(3);
0007
0008 template <typename T> T *getObject(const std::string filename, const std::string objname)
0009 {
0010 TFile *file = TFile::Open(filename.c_str(), "READ");
0011 if (!file || file->IsZombie())
0012 {
0013 std::cerr << "Error opening file: " << filename << std::endl;
0014 return nullptr;
0015 }
0016 T *obj = dynamic_cast<T *>(file->Get(objname.c_str()));
0017 if (!obj)
0018 {
0019 std::cerr << "Error getting object: " << objname << " from file: " << filename << std::endl;
0020 file->Close();
0021 return nullptr;
0022 }
0023 obj->SetDirectory(0);
0024 file->Close();
0025 return obj;
0026 }
0027
0028 void draw1Dhistogram(TH1 *hist,
0029 bool normalize,
0030 bool logx,
0031 bool logy,
0032 std::string xtitle,
0033 std::string ytitle,
0034 std::vector<std::string> addinfo,
0035 std::string plotoption,
0036 std::string filename
0037 )
0038 {
0039 if (!hist)
0040 {
0041 std::cerr << "draw1Dhistogram received a null histogram pointer" << std::endl;
0042 return;
0043 }
0044
0045 if (normalize)
0046 {
0047 const double integral = hist->Integral();
0048 if (integral > 0)
0049 {
0050 hist->Scale(1.0 / integral);
0051 }
0052 }
0053
0054 TCanvas *c = new TCanvas("c", "c", 800, 700);
0055
0056 gPad->SetLeftMargin(0.18);
0057 gPad->SetTopMargin(0.07);
0058 c->cd();
0059 c->SetLogx(logx);
0060 c->SetLogy(logy);
0061 hist->GetXaxis()->SetTitle(xtitle.c_str());
0062 hist->GetYaxis()->SetTitle(ytitle.c_str());
0063 hist->GetYaxis()->SetTitleOffset(1.6);
0064 hist->GetYaxis()->SetRangeUser((logy) ? hist->GetMinimum(0) * 0.5 : 0, (logy) ? hist->GetMaximum() * 25 : hist->GetMaximum() * 1.5);
0065
0066 if (plotoption.find("PE") != std::string::npos)
0067 {
0068 hist->SetMarkerStyle(20);
0069 hist->SetMarkerSize(1.0);
0070 hist->SetLineWidth(2);
0071 }
0072 hist->Draw(plotoption.c_str());
0073
0074 TLatex *latex = new TLatex();
0075 latex->SetTextSize(0.04);
0076 latex->SetTextAlign(12);
0077 latex->SetNDC();
0078 for (size_t i = 0; i < addinfo.size(); ++i)
0079 {
0080 latex->DrawLatex(gPad->GetLeftMargin() + 0.04, 0.88 - i * 0.05, addinfo[i].c_str());
0081 }
0082 c->SaveAs(Form("%s.png", filename.c_str()));
0083 c->SaveAs(Form("%s.pdf", filename.c_str()));
0084 delete c;
0085 }
0086
0087 void draw2Dhistogram(TH2 *hist, bool logz, std::string xtitle, std::string ytitle, std::vector<std::string> addinfo, std::string drawoption, std::string filename)
0088 {
0089 TCanvas *c = new TCanvas("c", "c", 800, 700);
0090 gPad->SetRightMargin(0.15);
0091 c->cd();
0092 c->SetLogz(logz);
0093 hist->GetXaxis()->SetTitle(xtitle.c_str());
0094 hist->GetYaxis()->SetTitle(ytitle.c_str());
0095 hist->Draw(drawoption.c_str());
0096
0097 TLatex *latex = new TLatex();
0098 latex->SetTextSize(0.04);
0099 latex->SetTextAlign(12);
0100 latex->SetNDC();
0101 for (size_t i = 0; i < addinfo.size(); ++i)
0102 {
0103 latex->DrawLatex(0.2, 0.88 - i * 0.05, addinfo[i].c_str());
0104 }
0105 c->SaveAs(Form("%s.png", filename.c_str()));
0106 c->SaveAs(Form("%s.pdf", filename.c_str()));
0107 delete c;
0108 }
0109
0110 void cascade_feeddown()
0111 {
0112 const std::string base_dir = "/sphenix/tg/tg01/hf/hjheng/HF-analysis/simulation/Pythia_ppMinBias/";
0113
0114 std::vector<TH1 *> v_h_lambda_pt_all;
0115 std::vector<TH1 *> v_h_lambda_pt_from_xi_all;
0116 std::vector<TH1 *> v_h_lambda_pt_from_xi_charged;
0117 std::vector<TH1 *> v_h_lambda_pt_from_xi_neutral;
0118 std::vector<TH1 *> v_h_lambda_rapidity_all;
0119 std::vector<TH1 *> v_h_lambda_rapidity_from_xi_all;
0120 std::vector<TH1 *> v_h_lambda_rapidity_from_xi_charged;
0121 std::vector<TH1 *> v_h_lambda_rapidity_from_xi_neutral;
0122 std::vector<TH1 *> v_h_lambda_eta_all;
0123 std::vector<TH1 *> v_h_lambda_eta_from_xi_all;
0124 std::vector<TH1 *> v_h_lambda_eta_from_xi_charged;
0125 std::vector<TH1 *> v_h_lambda_eta_from_xi_neutral;
0126 std::vector<TH1 *> v_h_lambda_phi_all;
0127 std::vector<TH1 *> v_h_lambda_phi_from_xi_all;
0128 std::vector<TH1 *> v_h_lambda_phi_from_xi_charged;
0129 std::vector<TH1 *> v_h_lambda_phi_from_xi_neutral;
0130 std::vector<TH1 *> v_h_event_counter;
0131 std::vector<TH2 *> v_h_phi_decaylengthcut;
0132 std::vector<TH1 *> v_h_lambda_transverse_decay_length_cm;
0133
0134 for (const auto &entry : std::filesystem::directory_iterator(base_dir))
0135 {
0136 const std::string filename = entry.path().filename().string();
0137 if (entry.is_regular_file() && filename.rfind("ppMinBias_Xi_fraction_", 0) == 0 && entry.path().extension() == ".root")
0138 {
0139 std::cout << "Found file: " << entry.path().filename() << std::endl;
0140 TH1D *h_lambda_pt_all = getObject<TH1D>(entry.path().string(), "h_lambda_pt_all");
0141 TH1D *h_lambda_pt_from_xi_all = getObject<TH1D>(entry.path().string(), "h_lambda_pt_from_xi_all");
0142 TH1D *h_lambda_pt_from_xi_charged = getObject<TH1D>(entry.path().string(), "h_lambda_pt_from_xi_charged");
0143 TH1D *h_lambda_pt_from_xi_neutral = getObject<TH1D>(entry.path().string(), "h_lambda_pt_from_xi_neutral");
0144 TH1D *h_lambda_rapidity_all = getObject<TH1D>(entry.path().string(), "h_lambda_rapidity_all");
0145 TH1D *h_lambda_rapidity_from_xi_all = getObject<TH1D>(entry.path().string(), "h_lambda_rapidity_from_xi_all");
0146 TH1D *h_lambda_rapidity_from_xi_charged = getObject<TH1D>(entry.path().string(), "h_lambda_rapidity_from_xi_charged");
0147 TH1D *h_lambda_rapidity_from_xi_neutral = getObject<TH1D>(entry.path().string(), "h_lambda_rapidity_from_xi_neutral");
0148 TH1D *h_lambda_eta_all = getObject<TH1D>(entry.path().string(), "h_lambda_eta_all");
0149 TH1D *h_lambda_eta_from_xi_all = getObject<TH1D>(entry.path().string(), "h_lambda_eta_from_xi_all");
0150 TH1D *h_lambda_eta_from_xi_charged = getObject<TH1D>(entry.path().string(), "h_lambda_eta_from_xi_charged");
0151 TH1D *h_lambda_eta_from_xi_neutral = getObject<TH1D>(entry.path().string(), "h_lambda_eta_from_xi_neutral");
0152 TH1D *h_lambda_phi_all = getObject<TH1D>(entry.path().string(), "h_lambda_phi_all");
0153 TH1D *h_lambda_phi_from_xi_all = getObject<TH1D>(entry.path().string(), "h_lambda_phi_from_xi_all");
0154 TH1D *h_lambda_phi_from_xi_charged = getObject<TH1D>(entry.path().string(), "h_lambda_phi_from_xi_charged");
0155 TH1D *h_lambda_phi_from_xi_neutral = getObject<TH1D>(entry.path().string(), "h_lambda_phi_from_xi_neutral");
0156 TH1D *h_event_counter = getObject<TH1D>(entry.path().string(), "h_event_counter");
0157 TH2D *h_phi_decaylengthcut = getObject<TH2D>(entry.path().string(), "h_phi_decaylengthcut");
0158 TH1D *h_lambda_transverse_decay_length_cm = getObject<TH1D>(entry.path().string(), "h_lambda_transverse_decay_length_cm");
0159
0160 if (!h_lambda_pt_all || !h_lambda_pt_from_xi_all || !h_lambda_pt_from_xi_charged || !h_lambda_pt_from_xi_neutral ||
0161 !h_lambda_rapidity_all || !h_lambda_rapidity_from_xi_all || !h_lambda_rapidity_from_xi_charged || !h_lambda_rapidity_from_xi_neutral ||
0162 !h_lambda_eta_all || !h_lambda_eta_from_xi_all || !h_lambda_eta_from_xi_charged || !h_lambda_eta_from_xi_neutral ||
0163 !h_lambda_phi_all || !h_lambda_phi_from_xi_all || !h_lambda_phi_from_xi_charged || !h_lambda_phi_from_xi_neutral ||
0164 !h_event_counter || !h_phi_decaylengthcut || !h_lambda_transverse_decay_length_cm)
0165 {
0166 std::cerr << "Skipping file with missing histograms: " << filename << std::endl;
0167 delete h_lambda_pt_all;
0168 delete h_lambda_pt_from_xi_all;
0169 delete h_lambda_pt_from_xi_charged;
0170 delete h_lambda_pt_from_xi_neutral;
0171 delete h_lambda_rapidity_all;
0172 delete h_lambda_rapidity_from_xi_all;
0173 delete h_lambda_rapidity_from_xi_charged;
0174 delete h_lambda_rapidity_from_xi_neutral;
0175 delete h_lambda_eta_all;
0176 delete h_lambda_eta_from_xi_all;
0177 delete h_lambda_eta_from_xi_charged;
0178 delete h_lambda_eta_from_xi_neutral;
0179 delete h_lambda_phi_all;
0180 delete h_lambda_phi_from_xi_all;
0181 delete h_lambda_phi_from_xi_charged;
0182 delete h_lambda_phi_from_xi_neutral;
0183 delete h_event_counter;
0184 delete h_phi_decaylengthcut;
0185 delete h_lambda_transverse_decay_length_cm;
0186 continue;
0187 }
0188
0189 v_h_lambda_pt_all.push_back(h_lambda_pt_all);
0190 v_h_lambda_pt_from_xi_all.push_back(h_lambda_pt_from_xi_all);
0191 v_h_lambda_pt_from_xi_charged.push_back(h_lambda_pt_from_xi_charged);
0192 v_h_lambda_pt_from_xi_neutral.push_back(h_lambda_pt_from_xi_neutral);
0193 v_h_lambda_rapidity_all.push_back(h_lambda_rapidity_all);
0194 v_h_lambda_rapidity_from_xi_all.push_back(h_lambda_rapidity_from_xi_all);
0195 v_h_lambda_rapidity_from_xi_charged.push_back(h_lambda_rapidity_from_xi_charged);
0196 v_h_lambda_rapidity_from_xi_neutral.push_back(h_lambda_rapidity_from_xi_neutral);
0197 v_h_lambda_eta_all.push_back(h_lambda_eta_all);
0198 v_h_lambda_eta_from_xi_all.push_back(h_lambda_eta_from_xi_all);
0199 v_h_lambda_eta_from_xi_charged.push_back(h_lambda_eta_from_xi_charged);
0200 v_h_lambda_eta_from_xi_neutral.push_back(h_lambda_eta_from_xi_neutral);
0201 v_h_lambda_phi_all.push_back(h_lambda_phi_all);
0202 v_h_lambda_phi_from_xi_all.push_back(h_lambda_phi_from_xi_all);
0203 v_h_lambda_phi_from_xi_charged.push_back(h_lambda_phi_from_xi_charged);
0204 v_h_lambda_phi_from_xi_neutral.push_back(h_lambda_phi_from_xi_neutral);
0205 v_h_event_counter.push_back(h_event_counter);
0206 v_h_phi_decaylengthcut.push_back(h_phi_decaylengthcut);
0207 v_h_lambda_transverse_decay_length_cm.push_back(h_lambda_transverse_decay_length_cm);
0208 }
0209 }
0210
0211 if (v_h_lambda_pt_all.empty())
0212 {
0213 std::cerr << "No valid ppMinBias_Xi_fraction_*.root inputs found in " << base_dir << std::endl;
0214 return;
0215 }
0216
0217
0218 TH1D *h_lambda_pt_all = (TH1D *)v_h_lambda_pt_all[0]->Clone("h_lambda_pt_all");
0219 TH1D *h_lambda_pt_from_xi_all = (TH1D *)v_h_lambda_pt_from_xi_all[0]->Clone("h_lambda_pt_from_xi_all");
0220 TH1D *h_lambda_pt_from_xi_charged = (TH1D *)v_h_lambda_pt_from_xi_charged[0]->Clone("h_lambda_pt_from_xi_charged");
0221 TH1D *h_lambda_pt_from_xi_neutral = (TH1D *)v_h_lambda_pt_from_xi_neutral[0]->Clone("h_lambda_pt_from_xi_neutral");
0222 TH1D *h_lambda_rapidity_all = (TH1D *)v_h_lambda_rapidity_all[0]->Clone("h_lambda_rapidity_all");
0223 TH1D *h_lambda_rapidity_from_xi_all = (TH1D *)v_h_lambda_rapidity_from_xi_all[0]->Clone("h_lambda_rapidity_from_xi_all");
0224 TH1D *h_lambda_rapidity_from_xi_charged = (TH1D *)v_h_lambda_rapidity_from_xi_charged[0]->Clone("h_lambda_rapidity_from_xi_charged");
0225 TH1D *h_lambda_rapidity_from_xi_neutral = (TH1D *)v_h_lambda_rapidity_from_xi_neutral[0]->Clone("h_lambda_rapidity_from_xi_neutral");
0226 TH1D *h_lambda_eta_all = (TH1D *)v_h_lambda_eta_all[0]->Clone("h_lambda_eta_all");
0227 TH1D *h_lambda_eta_from_xi_all = (TH1D *)v_h_lambda_eta_from_xi_all[0]->Clone("h_lambda_eta_from_xi_all");
0228 TH1D *h_lambda_eta_from_xi_charged = (TH1D *)v_h_lambda_eta_from_xi_charged[0]->Clone("h_lambda_eta_from_xi_charged");
0229 TH1D *h_lambda_eta_from_xi_neutral = (TH1D *)v_h_lambda_eta_from_xi_neutral[0]->Clone("h_lambda_eta_from_xi_neutral");
0230 TH1D *h_lambda_phi_all = (TH1D *)v_h_lambda_phi_all[0]->Clone("h_lambda_phi_all");
0231 TH1D *h_lambda_phi_from_xi_all = (TH1D *)v_h_lambda_phi_from_xi_all[0]->Clone("h_lambda_phi_from_xi_all");
0232 TH1D *h_lambda_phi_from_xi_charged = (TH1D *)v_h_lambda_phi_from_xi_charged[0]->Clone("h_lambda_phi_from_xi_charged");
0233 TH1D *h_lambda_phi_from_xi_neutral = (TH1D *)v_h_lambda_phi_from_xi_neutral[0]->Clone("h_lambda_phi_from_xi_neutral");
0234 TH1D *h_event_counter = (TH1D *)v_h_event_counter[0]->Clone("h_event_counter");
0235 TH2D *h_phi_decaylengthcut = (TH2D *)v_h_phi_decaylengthcut[0]->Clone("h_phi_decaylengthcut");
0236 TH1D *h_lambda_transverse_decay_length_cm = (TH1D *)v_h_lambda_transverse_decay_length_cm[0]->Clone("h_lambda_transverse_decay_length_cm");
0237
0238 h_lambda_pt_all->Reset();
0239 h_lambda_pt_from_xi_all->Reset();
0240 h_lambda_pt_from_xi_charged->Reset();
0241 h_lambda_pt_from_xi_neutral->Reset();
0242 h_lambda_rapidity_all->Reset();
0243 h_lambda_rapidity_from_xi_all->Reset();
0244 h_lambda_rapidity_from_xi_charged->Reset();
0245 h_lambda_rapidity_from_xi_neutral->Reset();
0246 h_lambda_eta_all->Reset();
0247 h_lambda_eta_from_xi_all->Reset();
0248 h_lambda_eta_from_xi_charged->Reset();
0249 h_lambda_eta_from_xi_neutral->Reset();
0250 h_lambda_phi_all->Reset();
0251 h_lambda_phi_from_xi_all->Reset();
0252 h_lambda_phi_from_xi_charged->Reset();
0253 h_lambda_phi_from_xi_neutral->Reset();
0254 h_event_counter->Reset();
0255 h_phi_decaylengthcut->Reset();
0256 h_lambda_transverse_decay_length_cm->Reset();
0257
0258 for (size_t i = 0; i < v_h_lambda_pt_all.size(); ++i)
0259 {
0260 h_lambda_pt_all->Add(v_h_lambda_pt_all[i]);
0261 h_lambda_pt_from_xi_all->Add(v_h_lambda_pt_from_xi_all[i]);
0262 h_lambda_pt_from_xi_charged->Add(v_h_lambda_pt_from_xi_charged[i]);
0263 h_lambda_pt_from_xi_neutral->Add(v_h_lambda_pt_from_xi_neutral[i]);
0264 h_lambda_rapidity_all->Add(v_h_lambda_rapidity_all[i]);
0265 h_lambda_rapidity_from_xi_all->Add(v_h_lambda_rapidity_from_xi_all[i]);
0266 h_lambda_rapidity_from_xi_charged->Add(v_h_lambda_rapidity_from_xi_charged[i]);
0267 h_lambda_rapidity_from_xi_neutral->Add(v_h_lambda_rapidity_from_xi_neutral[i]);
0268 h_lambda_eta_all->Add(v_h_lambda_eta_all[i]);
0269 h_lambda_eta_from_xi_all->Add(v_h_lambda_eta_from_xi_all[i]);
0270 h_lambda_eta_from_xi_charged->Add(v_h_lambda_eta_from_xi_charged[i]);
0271 h_lambda_eta_from_xi_neutral->Add(v_h_lambda_eta_from_xi_neutral[i]);
0272 h_lambda_phi_all->Add(v_h_lambda_phi_all[i]);
0273 h_lambda_phi_from_xi_all->Add(v_h_lambda_phi_from_xi_all[i]);
0274 h_lambda_phi_from_xi_charged->Add(v_h_lambda_phi_from_xi_charged[i]);
0275 h_lambda_phi_from_xi_neutral->Add(v_h_lambda_phi_from_xi_neutral[i]);
0276 h_event_counter->Add(v_h_event_counter[i]);
0277 h_phi_decaylengthcut->Add(v_h_phi_decaylengthcut[i]);
0278 h_lambda_transverse_decay_length_cm->Add(v_h_lambda_transverse_decay_length_cm[i]);
0279 }
0280
0281 TH1D *h_feeddown_frac_xi_all = (TH1D *)h_lambda_pt_from_xi_all->Clone("h_feeddown_frac_xi_all");
0282 h_feeddown_frac_xi_all->Divide(h_lambda_pt_from_xi_all, h_lambda_pt_all, 1.0, 1.0, "B");
0283 h_feeddown_frac_xi_all->SetTitle(";#Lambda^{0}(+c.c) p_{T} [GeV];f_{#Xi feeddown}");
0284
0285 TH1D *h_feeddown_frac_xi_rapidity_all = (TH1D *)h_lambda_rapidity_from_xi_all->Clone("h_feeddown_frac_xi_rapidity_all");
0286 h_feeddown_frac_xi_rapidity_all->Divide(h_lambda_rapidity_from_xi_all, h_lambda_rapidity_all, 1.0, 1.0, "B");
0287 h_feeddown_frac_xi_rapidity_all->SetTitle(";#Lambda^{0}(+c.c) rapidity;f_{#Xi feeddown}");
0288
0289 TH1D *h_feeddown_frac_xi_eta_all = (TH1D *)h_lambda_eta_from_xi_all->Clone("h_feeddown_frac_xi_eta_all");
0290 h_feeddown_frac_xi_eta_all->Divide(h_lambda_eta_from_xi_all, h_lambda_eta_all, 1.0, 1.0, "B");
0291 h_feeddown_frac_xi_eta_all->SetTitle(";#Lambda^{0}(+c.c) #eta;f_{#Xi feeddown}");
0292
0293 TH1D *h_feeddown_frac_xi_phi_all = (TH1D *)h_lambda_phi_from_xi_all->Clone("h_feeddown_frac_xi_phi_all");
0294 h_feeddown_frac_xi_phi_all->Divide(h_lambda_phi_from_xi_all, h_lambda_phi_all, 1.0, 1.0, "B");
0295 h_feeddown_frac_xi_phi_all->SetTitle(";#Lambda^{0}(+c.c) #phi;f_{#Xi feeddown}");
0296
0297 std::string plotdir = base_dir + "/cascade_feeddown/figure/";
0298 system(("mkdir -p " + plotdir).c_str());
0299 std::string cutinfo = "#Lambda^{0} |#eta| < 1.3; #phi-dependent L_{xy} cut";
0300 draw1Dhistogram(h_feeddown_frac_xi_all, false, false, false, "#Lambda^{0}(+c.c) p_{T} [GeV]", "f_{#Xi feeddown}=N_{#Lambda^{0}(+c.c)}^{#Xi feedown}/N_{#Lambda^{0}(+c.c)}^{Inclusive}", {"PYTHIA8 p+p minimum bias (w. Detroit tune)", cutinfo}, "PE1", plotdir + "feeddown_fraction_xi_all");
0301 draw1Dhistogram(h_feeddown_frac_xi_rapidity_all, false, false, false, "#Lambda^{0}(+c.c) rapidity", "f_{#Xi feeddown}=N_{#Lambda^{0}(+c.c)}^{#Xi feedown}/N_{#Lambda^{0}(+c.c)}^{Inclusive}", {"PYTHIA8 p+p minimum bias (w. Detroit tune)", cutinfo}, "PE1", plotdir + "feeddown_fraction_xi_rapidity_all");
0302 draw1Dhistogram(h_feeddown_frac_xi_eta_all, false, false, false, "#Lambda^{0}(+c.c) #eta", "f_{#Xi feeddown}=N_{#Lambda^{0}(+c.c)}^{#Xi feedown}/N_{#Lambda^{0}(+c.c)}^{Inclusive}", {"PYTHIA8 p+p minimum bias (w. Detroit tune)", cutinfo}, "PE1", plotdir + "feeddown_fraction_xi_eta_all");
0303 draw1Dhistogram(h_feeddown_frac_xi_phi_all, false, false, false, "#Lambda^{0}(+c.c) #phi", "f_{#Xi feeddown}=N_{#Lambda^{0}(+c.c)}^{#Xi feedown}/N_{#Lambda^{0}(+c.c)}^{Inclusive}", {"PYTHIA8 p+p minimum bias (w. Detroit tune)", cutinfo}, "PE1", plotdir + "feeddown_fraction_xi_phi_all");
0304
0305 TFile *fout = new TFile(Form("%s/cascade_feeddown/Cascade_feeddown_fraction.root", base_dir.c_str()), "RECREATE");
0306 h_feeddown_frac_xi_all->Write();
0307 h_feeddown_frac_xi_rapidity_all->Write();
0308 h_feeddown_frac_xi_eta_all->Write();
0309 h_feeddown_frac_xi_phi_all->Write();
0310 fout->Close();
0311
0312 const double n_pythia_events = h_event_counter->Integral();
0313 if (n_pythia_events <= 0)
0314 {
0315 std::cerr << "No counted PYTHIA events found." << std::endl;
0316 return;
0317 }
0318
0319 h_lambda_pt_all->Scale(1.0 / n_pythia_events);
0320 h_lambda_pt_from_xi_all->Scale(1.0 / n_pythia_events);
0321 h_lambda_pt_from_xi_charged->Scale(1.0 / n_pythia_events);
0322 h_lambda_pt_from_xi_neutral->Scale(1.0 / n_pythia_events);
0323 h_lambda_rapidity_all->Scale(1.0 / n_pythia_events);
0324 h_lambda_rapidity_from_xi_all->Scale(1.0 / n_pythia_events);
0325 h_lambda_rapidity_from_xi_charged->Scale(1.0 / n_pythia_events);
0326 h_lambda_rapidity_from_xi_neutral->Scale(1.0 / n_pythia_events);
0327 h_lambda_eta_all->Scale(1.0 / n_pythia_events);
0328 h_lambda_eta_from_xi_all->Scale(1.0 / n_pythia_events);
0329 h_lambda_eta_from_xi_charged->Scale(1.0 / n_pythia_events);
0330 h_lambda_eta_from_xi_neutral->Scale(1.0 / n_pythia_events);
0331 h_lambda_phi_all->Scale(1.0 / n_pythia_events);
0332 h_lambda_phi_from_xi_all->Scale(1.0 / n_pythia_events);
0333 h_lambda_phi_from_xi_charged->Scale(1.0 / n_pythia_events);
0334 h_lambda_phi_from_xi_neutral->Scale(1.0 / n_pythia_events);
0335 h_lambda_transverse_decay_length_cm->Scale(1.0 / n_pythia_events);
0336
0337 draw1Dhistogram(h_lambda_pt_all, false, false, true, "#Lambda^{0}(+c.c) p_{T} [GeV]", "Normalized entries", {"Prompt + non-prompt (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_pt_all");
0338 draw1Dhistogram(h_lambda_pt_from_xi_all, false, false, true, "#Lambda^{0}(+c.c) p_{T} [GeV]", "Normalized entries", {"From #Xi^{-}+#Xi^{0} (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_pt_from_xi_all");
0339 draw1Dhistogram(h_lambda_pt_from_xi_charged, false, false, true, "#Lambda^{0}(+c.c) p_{T} [GeV]", "Normalized entries", {"From #Xi^{-} (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_pt_from_xi_charged");
0340 draw1Dhistogram(h_lambda_pt_from_xi_neutral, false, false, true, "#Lambda^{0}(+c.c) p_{T} [GeV]", "Normalized entries", {"From #Xi^{0} (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_pt_from_xi_neutral");
0341 draw1Dhistogram(h_lambda_rapidity_all, false, false, false, "#Lambda^{0}(+c.c) rapidity", "Normalized entries", {"Prompt + non-prompt (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_rapidity_all");
0342 draw1Dhistogram(h_lambda_rapidity_from_xi_all, false, false, false, "#Lambda^{0}(+c.c) rapidity", "Normalized entries", {"From #Xi^{-}+#Xi^{0} (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_rapidity_from_xi_all");
0343 draw1Dhistogram(h_lambda_rapidity_from_xi_charged, false, false, false, "#Lambda^{0}(+c.c) rapidity", "Normalized entries", {"From #Xi^{-} (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_rapidity_from_xi_charged");
0344 draw1Dhistogram(h_lambda_rapidity_from_xi_neutral, false, false, false, "#Lambda^{0}(+c.c) rapidity", "Normalized entries", {"From #Xi^{0} (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_rapidity_from_xi_neutral");
0345 draw1Dhistogram(h_lambda_eta_all, false, false, false, "#Lambda^{0}(+c.c) #eta", "Normalized entries", {"Prompt + non-prompt (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_eta_all");
0346 draw1Dhistogram(h_lambda_eta_from_xi_all, false, false, false, "#Lambda^{0}(+c.c) #eta", "Normalized entries", {"From #Xi^{-}+#Xi^{0} (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_eta_from_xi_all");
0347 draw1Dhistogram(h_lambda_eta_from_xi_charged, false, false, false, "#Lambda^{0}(+c.c) #eta", "Normalized entries", {"From #Xi^{-} (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_eta_from_xi_charged");
0348 draw1Dhistogram(h_lambda_eta_from_xi_neutral, false, false, false, "#Lambda^{0}(+c.c) #eta", "Normalized entries", {"From #Xi^{0} (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_eta_from_xi_neutral");
0349 draw1Dhistogram(h_lambda_phi_all, false, false, false, "#Lambda^{0}(+c.c) #phi [rad]", "Normalized entries", {"Prompt + non-prompt (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_phi_all");
0350 draw1Dhistogram(h_lambda_phi_from_xi_all, false, false, false, "#Lambda^{0}(+c.c) #phi [rad]", "Normalized entries", {"From #Xi^{-}+#Xi^{0} (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_phi_from_xi_all");
0351 draw1Dhistogram(h_lambda_phi_from_xi_charged, false, false, false, "#Lambda^{0}(+c.c) #phi [rad]", "Normalized entries", {"From #Xi^{-} (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_phi_from_xi_charged");
0352 draw1Dhistogram(h_lambda_phi_from_xi_neutral, false, false, false, "#Lambda^{0}(+c.c) #phi [rad]", "Normalized entries", {"From #Xi^{0} (+c.c)", cutinfo, "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_phi_from_xi_neutral");
0353 draw2Dhistogram(h_phi_decaylengthcut, false, "#phi [rad]", "#Lambda^{0}(+c.c) transverse decay length cut [cm]", {}, "colz", plotdir + "phi_decaylengthcut");
0354 draw1Dhistogram(h_lambda_transverse_decay_length_cm, false, false, false, "#Lambda^{0}(+c.c) transverse decay length [cm]", "Normalized entries", {"Prompt + non-prompt (+c.c)", "(Normalized by N_{PYTHIA events})"}, "hist e1", plotdir + "lambda_transverse_decay_length_cm");
0355 }