Skip to content
Snippets Groups Projects
Commit 0a027bad authored by Laurent Mercadier's avatar Laurent Mercadier
Browse files

Add get_sase_pId() and load bpt only if number of pulses changes in load()

parent a15e1866
No related branches found
No related tags found
1 merge request!234Only use bunch pattern table when necessary
...@@ -152,12 +152,16 @@ def load(proposalNB=None, runNB=None, ...@@ -152,12 +152,16 @@ def load(proposalNB=None, runNB=None,
data_arrays = [] data_arrays = []
run_mnemonics = mnemonics_for_run(run) run_mnemonics = mnemonics_for_run(run)
# load pulse pattern info # load pulse pattern info only if number of sase 3 pulses changed
bpt = load_bpt(run, run_mnemonics=run_mnemonics) sase3, sase3_changed = get_sase_pId(run)
if bpt is None: if sase3_changed:
log.warning('Bunch pattern table not found in run. Skipping!') log.warning('Number of pulses changed during the run. '
else: 'Loading bunch pattern table.')
data_arrays.append(bpt) 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: for f in fields:
if type(f) == dict: if type(f) == dict:
...@@ -505,3 +509,17 @@ def load_bpt(run, merge_with=None, run_mnemonics=None): ...@@ -505,3 +509,17 @@ def load_bpt(run, merge_with=None, run_mnemonics=None):
return bpt return bpt
log.debug('Could not find bunch pattern table.') log.debug('Could not find bunch pattern table.')
return None 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
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