From c8de0f68ae7a0b5a0e0748ba5cc709fb0e7ad245 Mon Sep 17 00:00:00 2001
From: zineb aly <aly.zineb.az@gmail.com>
Date: Fri, 5 Jun 2020 13:34:20 +0200
Subject: [PATCH] wrap w2list params

---
 km3io/tools.py | 52 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 51 insertions(+), 1 deletion(-)

diff --git a/km3io/tools.py b/km3io/tools.py
index acbb258..d817618 100644
--- a/km3io/tools.py
+++ b/km3io/tools.py
@@ -4,7 +4,7 @@ import numpy as np
 import awkward1 as ak1
 import uproot
 
-from .definitions import fitparameters, reconstruction
+from .definitions import fitparameters, reconstruction, w2list_genhen, w2list_gseagen
 
 # 110 MB based on the size of the largest basket found so far in km3net
 BASKET_CACHE_SIZE = 110 * 1024**2
@@ -90,6 +90,56 @@ def uniquecount(array, dtype=np.int64):
     return out
 
 
+def w2list_genhen_keys():
+    """names of the w2list parameters as defined in the official
+    KM3NeT-Dataformat for genhen.
+
+    Returns
+    -------
+    dict_keys
+        genhen w2list keys.
+    """
+    return w2list_genhen.keys()
+
+
+def w2list_gseagen_keys():
+    """names of the w2list parameters as defined in the official
+    KM3NeT-Dataformat for gseagen.
+
+    Returns
+    -------
+    dict_keys
+        gseagen w2list keys.
+    """
+    return w2list_gseagen.keys()
+
+
+def get_w2list_param(events, generator, param):
+    """get all the values of a specific parameter from the w2list
+    in offline neutrino files.
+
+    Parameters
+    ----------
+    events : class km3io.offline.OfflineBranch
+        events class in offline neutrino files.
+    generator : str
+        the name of the software generating neutrinos, it is either
+        'genhen' or 'gseagen'. 
+    param : str
+        the name of the parameters found in w2list as defined in the
+        KM3NeT-Dataformat for both genhen and gseagen.
+
+    Returns
+    -------
+    awkward array
+        array of the values of interest.
+    """
+    if generator == "gseagen":
+        return events.w2list[:, w2list_gseagen[param]]
+    if generator == "genhen":
+        return events.w2list[:, w2list_genhen[param]]
+
+
 def rec_types():
     """name of the reconstruction type as defined in the official
     KM3NeT-Dataformat.
-- 
GitLab