diff --git a/km3buu/output.py b/km3buu/output.py
index 31766f0b30178cd19141ff6ca4e866d3393a516b..2e1f3056768bb76dc7ee8070ef4af3431eb5958e 100644
--- a/km3buu/output.py
+++ b/km3buu/output.py
@@ -27,6 +27,7 @@ from scipy.optimize import curve_fit
 import mendeleev
 from datetime import datetime
 
+from .physics import visible_energy_fraction
 from .jobcard import Jobcard, read_jobcard, PDGID_LOOKUP
 from .geometry import DetectorVolume, CanVolume
 from .config import Config, read_default_media_compositions
@@ -561,10 +562,14 @@ class GiBUUOutput:
                                 zip(GIBUU_FIELDNAMES,
                                     len(GIBUU_FIELDNAMES) * [float]))))
         # Calculate additional information
+        counts = ak.num(retval.E)
         retval["xsec"] = self._event_xsec(retval)
         retval["Bx"] = GiBUUOutput.bjorken_x(retval)
         retval["By"] = GiBUUOutput.bjorken_y(retval)
         retval["Q2"] = GiBUUOutput.Qsquared(retval)
+        visEfrac = visible_energy_fraction(ak.flatten(retval.barcode),
+                                           ak.flatten(retval.E))
+        retval["visEfrac"] = ak.unflatten(visEfrac, counts)
         return retval
 
     @property
diff --git a/km3buu/physics.py b/km3buu/physics.py
index d47ac14504f2bc331c1afd574643f3fe16530786..fd295706204f582c0158d69f1cb23a76a6b89807 100644
--- a/km3buu/physics.py
+++ b/km3buu/physics.py
@@ -98,7 +98,7 @@ HE_PARAMS = {
     "Mkref": 2.698,
 }
 
-
+@np.vectorize
 def visible_energy_fraction(pdgid, energy):
     """
     Returns the visible energy fraction in the one particle approximation (OPA)