diff --git a/eos/file_reader.py b/eos/file_reader.py index 1c8d452..3bc1806 100644 --- a/eos/file_reader.py +++ b/eos/file_reader.py @@ -572,18 +572,16 @@ class AmorEventData(AmorHeader): def read_beam_monitor_stream(self, packets): if self._beam_monitor is None: return None - _signal = self._beam_monitor.signal - _time = self._beam_monitor.time plse = np.array([0, 5, 6, 11]) base = np.array([2, 3, 8, 9]) - i = 0 - beam_monitor = np.recarray(shape=np.shape(packets.time)[0], dtype=BM_TYPE) - for tt, tme in enumerate(_time): - if (tme>=packets.time[0])&(tme<=packets.time[-1]): - beam_monitor.value[i] = _signal[tt][plse].sum() - _signal[tt][base].sum() - beam_monitor.time[i] = tme - i += 1 - return beam_monitor[:i+1] + _time = self._beam_monitor.time + fltr = (self.eventStartTime<=_time)&(_time<=packets.time[-1]) + _time = _time[fltr] + _signal = self._beam_monitor.signal[fltr] + beam_monitor = np.recarray(shape=_time.shape[0], dtype=BM_TYPE) + beam_monitor.time = _time + beam_monitor.value = _signal[:, plse].sum(axis=1) - _signal[:, base].sum(axis=1) + return beam_monitor def info(self): output = ""