From 3ab76ea96e8c3ce51b9a6744a4f58b1fa0bdc1a6 Mon Sep 17 00:00:00 2001 From: Johannes Schumann <johannes.schumann@fau.de> Date: Wed, 8 Feb 2023 22:07:08 +0100 Subject: [PATCH] IO code optimizations --- km3buu/output.py | 25 +++++-------------------- km3buu/tests/test_output.py | 2 +- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/km3buu/output.py b/km3buu/output.py index fa3c771..26af2f2 100644 --- a/km3buu/output.py +++ b/km3buu/output.py @@ -45,8 +45,8 @@ except (ImportError, ModuleNotFoundError): warnings.warn("KM3NeT dataformat library was not loaded.", ImportWarning) EVENT_FILENAME = "FinalEvents.dat" -ROOT_PERT_FILENAME = "EventOutput.Pert.[0-9]{8}.root" -ROOT_REAL_FILENAME = "EventOutput.Real.[0-9]{8}.root" +ROOT_PERT_FILENAME = "EventOutput.Pert.*.root" +ROOT_REAL_FILENAME = "EventOutput.Real.*.root" FLUXDESCR_FILENAME = "neutrino_initialized_energyFlux.dat" XSECTION_FILENAMES = {"all": "neutrino_absorption_cross_section_ALL.dat"} @@ -61,7 +61,7 @@ EVENTINFO_COLUMNS = [ ] LHE_NU_INFO_DTYPE = np.dtype([ - ("type", np.int), + ("type", np.int64), ("weight", np.float64), ("mom_lepton_in_E", np.float64), ("mom_lepton_in_x", np.float64), @@ -576,23 +576,8 @@ class GiBUUOutput: """ GiBUU output data in awkward format """ - retval = None - for ifile in self.root_pert_files: - fobj = uproot.open(join(self.data_path, ifile)) - if retval is None: - retval = fobj["RootTuple"].arrays() - else: - tmp = fobj["RootTuple"].arrays() - retval = np.concatenate((retval, tmp)) - if retval is None or len(retval) == 0: - return ak.Array( - np.recarray(( - 0, - 0, - ), - dtype=list( - zip(GIBUU_FIELDNAMES, - len(GIBUU_FIELDNAMES) * [float])))) + path_descr = join(self.data_path, ROOT_PERT_FILENAME) + ":RootTuple" + retval = uproot.concatenate(path_descr) # Calculate additional information counts = ak.num(retval.E) retval["xsec"] = self._event_xsec(retval) diff --git a/km3buu/tests/test_output.py b/km3buu/tests/test_output.py index e469038..2b7ae98 100644 --- a/km3buu/tests/test_output.py +++ b/km3buu/tests/test_output.py @@ -33,7 +33,7 @@ try: libpath = Config().km3net_lib_path KM3NET_LIB_AVAILABLE = (ROOT.gSystem.Load(join(libpath, "libKM3NeTROOT.so")) >= 0) -except ModuleNotFoundError: +except (ImportError, ModuleNotFoundError): KM3NET_LIB_AVAILABLE = False -- GitLab