Skip to content
Snippets Groups Projects
Commit 8de00ffc authored by Zineb Aly's avatar Zineb Aly
Browse files

add is_CC function

parent 38377d76
No related branches found
No related tags found
No related merge requests found
......@@ -763,3 +763,34 @@ def _find_in_set_single(rec_stages, stages, builder):
else:
builder.append(0)
builder.end_list()
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).
Parameters
----------
fobj : km3io.offline.OfflineReader
offline neutrino file object.
"""
program = fobj.header.simul.program
w2list = fobj.events.w2list
len_w2lists = ak1.num(w2list, axis=1)
if all(len_w2lists <= 7): # old nu file have w2list of len 7.
usr = fobj.events.mc_tracks.usr_names
cc_flag = usr[:, 0][:, 3]
out = (cc_flag == b'cc') # not very reliable, found NC files with cc flag!
else:
if "gseagen" in program.lower():
cc_flag = w2list[:, kw2gsg.W2LIST_GSEAGEN_CC]
out = (cc_flag > 0)
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.")
return out
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment