From 0a027bad1e1bbbf3e0a9b25f3ef6ca3686fed73a Mon Sep 17 00:00:00 2001 From: Laurent Mercadier <laurent.mercadier@xfel.eu> Date: Fri, 9 Dec 2022 16:16:41 +0100 Subject: [PATCH] Add get_sase_pId() and load bpt only if number of pulses changes in load() --- src/toolbox_scs/load.py | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/toolbox_scs/load.py b/src/toolbox_scs/load.py index be22e18..a5bec21 100644 --- a/src/toolbox_scs/load.py +++ b/src/toolbox_scs/load.py @@ -152,12 +152,16 @@ def load(proposalNB=None, runNB=None, data_arrays = [] run_mnemonics = mnemonics_for_run(run) - # load pulse pattern info - bpt = load_bpt(run, run_mnemonics=run_mnemonics) - if bpt is None: - log.warning('Bunch pattern table not found in run. Skipping!') - else: - data_arrays.append(bpt) + # load pulse pattern info only if number of sase 3 pulses changed + sase3, sase3_changed = get_sase_pId(run) + if sase3_changed: + log.warning('Number of pulses changed during the run. ' + 'Loading bunch pattern table.') + bpt = load_bpt(run, run_mnemonics=run_mnemonics) + if bpt is None: + log.warning('Bunch pattern table not found in run. Skipping!') + else: + data_arrays.append(bpt) for f in fields: if type(f) == dict: @@ -505,3 +509,17 @@ def load_bpt(run, merge_with=None, run_mnemonics=None): return bpt log.debug('Could not find bunch pattern table.') return None + + +def get_sase_pId(run, sase='sase3'): + mnemonics = mnemonics_for_run(run) + if sase not in mnemonics: + # bunch pattern not recorded + return [], True + npulse_sase = np.unique(get_array(run, 'npulses_' + sase)) + if len(npulse_sase) == 1: + return np.unique(load_run_values(run)[sase])[1:], False + # number of pulses changed during the run + return np.unique(get_array(run, sase))[1:], True + + -- GitLab