From 0aaff96d0be7db37fc2e193ce208a5579af6858f Mon Sep 17 00:00:00 2001
From: Johannes Schumann <jschumann@km3net.de>
Date: Tue, 13 Oct 2020 15:02:06 +0200
Subject: [PATCH] Add secondary lepton to output particles in pandas df

---
 km3buu/output.py | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/km3buu/output.py b/km3buu/output.py
index 87f66b4..d526173 100644
--- a/km3buu/output.py
+++ b/km3buu/output.py
@@ -182,6 +182,19 @@ class GiBUUOutput:
         df.columns = [col[0] for col in df.columns]
         df["By"] = 1 - df.lepOut_E / df.lepIn_E
         df["xsec_wgt"] = self._event_weights(df)
+        # Add secondary lepton to particle list
+        sec_df = df[df.index.get_level_values(1) == 0]
+        sec_df.loc[:, "E"] = sec_df.lepOut_E
+        sec_df.loc[:, "Px"] = sec_df.lepOut_Px
+        sec_df.loc[:, "Py"] = sec_df.lepOut_Py
+        sec_df.loc[:, "Pz"] = sec_df.lepOut_Pz
+        sec_pdgid = (
+            PDGID_LOOKUP[self.jobcard["neutrino_induced"]["flavor_id"]] -
+            1) * np.sign(self.jobcard["neutrino_induced"]["process_id"])
+        sec_df.loc[:, "barcode"] = sec_pdgid
+        sec_df.index = pd.MultiIndex.from_tuples(
+            zip(*np.unique(df.index.get_level_values(0), return_counts=True)))
+        df = df.append(sec_df)
         return df
 
 
-- 
GitLab