From bd63f89323772ea10cbd11726c0b7cc6b98706c7 Mon Sep 17 00:00:00 2001 From: Livio Redar-Jacot Date: Fri, 7 Feb 2025 10:58:15 +0100 Subject: [PATCH] Fix lumi calculation (keep pairing of runs and lumisections while sorting) --- scripts/dump_processed.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/scripts/dump_processed.py b/scripts/dump_processed.py index 87930f99..8e55cc0a 100644 --- a/scripts/dump_processed.py +++ b/scripts/dump_processed.py @@ -12,10 +12,16 @@ def dump_lumi(output, fname): lumi.extend(output[m][f]["lumi"].value) run.extend(output[m][f]["run"].value) - lumi, run = np.array(sorted(lumi)), np.array(sorted(run)) + # Sort runs and keep lumisections matched + run, lumi = np.array(run), np.array(lumi) + sorted_indices = np.lexsort((lumi, run)) # Sort by run first, then lumi + run = run[sorted_indices] + lumi = lumi[sorted_indices] + # Create dictionary with ls values for each run dicts = {} - for r in list(set(run)): - dicts[str(r)] = lumi[r == run] + for r in np.unique(run): + dicts[str(r)] = lumi[run == r] + # Convert to format for brilcalc for r in dicts.keys(): ar = ak.singletons(ak.Array(dicts[r])) ars = ak.concatenate([ar, ar], axis=-1)