diff --git a/libeos/event_analysis.py b/libeos/event_analysis.py index 5ab55bc..14d1817 100644 --- a/libeos/event_analysis.py +++ b/libeos/event_analysis.py @@ -16,9 +16,8 @@ from .header import Header class ExtractWalltime(EventDataAction): def perform_action(self, dataset: EventDatasetProtocol) ->None: - # TODO: fix numba type definition after refactor wallTime = extract_walltime(dataset.data.events.tof, - dataset.data.packets.start_index.astype(np.uint64), + dataset.data.packets.start_index, dataset.data.packets.Time) logging.debug(f' expending event stream by wallTime') new_events = append_fields(dataset.data.events, [('wallTime', wallTime.dtype)]) @@ -39,9 +38,8 @@ class AnalyzePixelIDs(EventDataAction): def perform_action(self, dataset: EventDatasetProtocol) ->None: d = dataset.data - # TODO: change numba implementation to use native pixelID type (detZ, detXdist, delta, mask) = filter_project_x( - Detector.pixelLookUp, d.events.pixelID.astype(np.int64), self.yRange[0], self.yRange[1] + Detector.pixelLookUp, d.events.pixelID, self.yRange[0], self.yRange[1] ) ana_events = append_fields(d.events, [ ('detZ', detZ.dtype), ('detXdist', detXdist.dtype), ('delta', delta.dtype)]) diff --git a/libeos/helpers_numba.py b/libeos/helpers_numba.py index f849f6f..55e02fd 100644 --- a/libeos/helpers_numba.py +++ b/libeos/helpers_numba.py @@ -11,7 +11,7 @@ def merge_frames(tof_e, tofCut, tau, total_offset): tof_e_out[ti] = ((tof_e[ti]-dt)%tau)+total_offset # tof shifted to 1 frame return tof_e_out -@nb.jit(nb.int64[:](nb.float64[:], nb.uint64[:], nb.int64[:]), +@nb.jit(nb.int64[:](nb.float64[:], nb.uint32[:], nb.int64[:]), nopython=True, parallel=True, cache=True) def extract_walltime(tof_e, dataPacket_p, dataPacketTime_p): # assigning every event the wall time of the event packet (absolute time of pulse ?start?) @@ -25,7 +25,7 @@ def extract_walltime(tof_e, dataPacket_p, dataPacketTime_p): return wallTime_e @nb.jit(nb.types.Tuple((nb.int64[:], nb.float64[:], nb.float64[:], nb.boolean[:])) - (nb.float64[:, :], nb.int64[:], nb.int64, nb.int64), + (nb.float64[:, :], nb.uint32[:], nb.int64, nb.int64), nopython=True, parallel=True, cache=True) def filter_project_x(pixelLookUp, pixelID_e, ymin, ymax): # project events on z-axis and create filter for events outside of y-range