From 7d875d45df1f97fde49afca32457cbad3378a997 Mon Sep 17 00:00:00 2001
From: Zineb Aly <zaly@km3net.de>
Date: Thu, 12 Nov 2020 13:18:21 +0100
Subject: [PATCH] rename is_cc and add docs

---
 km3io/tools.py | 37 +++++++++++++++++++++++--------------
 1 file changed, 23 insertions(+), 14 deletions(-)

diff --git a/km3io/tools.py b/km3io/tools.py
index b42a5ab..d0c338f 100644
--- a/km3io/tools.py
+++ b/km3io/tools.py
@@ -765,24 +765,24 @@ def _find_in_set_single(rec_stages, stages, builder):
     builder.end_list()
 
 
-def is_CC(fobj):
+def is_cc(fobj):
     """Determin if an event (or events) are a result of a Charged Curent interaction (CC)
     or a Neutral Curent interaction (NC).
 
-    According to: https://wiki.km3net.de/index.php/Simulations/The_gSeaGen_code#Physics_event_entries
-    the interaction types are defined as follow:
-
-        INTER   Interaction type
-        1       EM
-        2       Weak[CC]
-        3       Weak[NC]
-        4       Weak[CC+NC+interference]
-        5       NucleonDecay
-
     Parameters
     ----------
     fobj : km3io.offline.OfflineReader
         offline neutrino file object.
+
+    Returns
+    -------
+    awkward1.highlevel.Array
+        a mask where True corresponds to an event resulting from a CC interaction.
+
+    Raises
+    ------
+    ValueError
+        if the simulations program used to generate the neutrino file is neither gseagen nor genhen.
     """
     program = fobj.header.simul.program
     w2list = fobj.events.w2list
@@ -797,14 +797,23 @@ def is_CC(fobj):
 
     else:
         if "gseagen" in program.lower():
+
+            # According to: https://wiki.km3net.de/index.php/Simulations/The_gSeaGen_code#Physics_event_entries
+            # the interaction types are defined as follow:
+
+            # INTER   Interaction type
+            # 1       EM
+            # 2       Weak[CC]
+            # 3       Weak[NC]
+            # 4       Weak[CC+NC+interference]
+            # 5       NucleonDecay
+
             cc_flag = w2list[:, kw2gsg.W2LIST_GSEAGEN_CC]
             out = cc_flag > 0  # to be tested with a newly generated nu file.
         if "genhen" in program.lower():
             cc_flag = w2list[:, kw2gen.W2LIST_GENHEN_CC]
             out = cc_flag > 0
         else:
-            raise ValueError(
-                f"simulation program {fobj.header.simul.program} is not implemented."
-            )
+            raise ValueError(f"simulation program {program} is not implemented.")
 
     return out
-- 
GitLab