diff --git a/src/toolbox_scs/detectors/digitizers.py b/src/toolbox_scs/detectors/digitizers.py index 58b35826e3964ab106283700ff96359a741e54d7..828f5a5754b55173409881ef4c321faa0cadadfd 100644 --- a/src/toolbox_scs/detectors/digitizers.py +++ b/src/toolbox_scs/detectors/digitizers.py @@ -447,6 +447,7 @@ def find_peak_integration_parameters(run, mnemonic, raw_trace=None, params = integParams.copy() # extract pulse ids from the parameters (starting at 0) + pulse_ids_params = None if hasattr(params['pulseStart'], '__len__'): if params.get('npulses') is not None and ( params.get('npulses') != len(params['pulseStart'])): @@ -456,10 +457,10 @@ def find_peak_integration_parameters(run, mnemonic, raw_trace=None, params['npulses'] = len(params['pulseStart']) pulse_ids_params = ((np.array(params['pulseStart']) - params['pulseStart'][0]) / pulse_period).astype(int) - else: - pulse_ids_params = np.arange(0, - params['npulses'] * params['period'] / pulse_period, - params['period'] / pulse_period).astype(int) + elif 'npulses' in params and 'period' in params: + pulse_ids_params = np.arange(0, + params['npulses'] * params['period'] / pulse_period, + params['period'] / pulse_period).astype(int) # Extract pulse_ids, period and npulses from bunch pattern pulse_ids_bp, npulses_bp, period_bp = None, None, 0 @@ -482,6 +483,12 @@ def find_peak_integration_parameters(run, mnemonic, raw_trace=None, else: period_bp = np.unique(periods)[0] * pulse_period # Compare parameters with bunch pattern + if pulse_ids_params is None: + params['npulses'] = npulses_bp + params['period'] = period_bp + pulse_ids_params = np.arange(0, + params['npulses'] * params['period'] / pulse_period, + params['period'] / pulse_period).astype(int) if len(pulse_ids_params) == len(pulse_ids_bp): if not (pulse_ids_params == pulse_ids_bp - pulse_ids_bp[0]).all(): log.warning('The provided pulseStart parameters do not match '