Skip to content
Snippets Groups Projects

[AGIPD][CORRECT] Add reading of AGIPD number of cells from CONTROL data

Merged Egor Sobolev requested to merge fix/agipd-num-cells into master
+ 26
8
@@ -53,12 +53,19 @@ class AgipdCtrl:
self.ctrl_src = ctrl_src
self.raise_error = raise_error
def get_num_cells(self) -> Optional[int]:
"""Read number of memory cells from fast data.
def _get_num_cells_ctrl(self) -> Optional[int]:
"""Get number of cells from CONTROL source."""
# Attempt to look for number of cells in slow data
ncell_src = (
self.ctrl_src, "bunchStructure.nPulses.value")
if (
ncell_src[0] in self.run_dc.all_sources and
ncell_src[1] in self.run_dc.keys_for_source(ncell_src[0])
):
return int(self.run_dc[ncell_src].as_single_value(reduce_by='max'))
:return mem_cells: Number of memory cells
return None, if no data available.
"""
def _get_num_cells_instr(self) -> Optional[int]:
"""Get number of cells from INSTRUMENT source."""
cells = np.squeeze(
self.run_dc[
self.image_src, "image.cellId"].drop_empty_trains().ndarray()
@@ -70,6 +77,20 @@ class AgipdCtrl:
dists = [abs(o - maxcell) for o in options]
return options[np.argmin(dists)]
def get_num_cells(self) -> Optional[int]:
"""Read number of memory cells from fast data.
:return mem_cells: Number of memory cells
return None, if no data available.
"""
ncell = self._get_num_cells_ctrl()
if ncell is not None:
return ncell
# The method implemented in this function doesn't suit for filtered
# data. If DAQ filters data and the last cell is removed, the
# function returns wrong value
return self._get_num_cells_instr()
def _get_acq_rate_ctrl(self) -> Optional[float]:
"""Get acquisition (repetition) rate from CONTROL source."""
# Attempt to look for acquisition rate in slow data
@@ -83,9 +104,6 @@ class AgipdCtrl:
# about bucketing the rate for managing meta-data.
return round(float(self.run_dc[rep_rate_src].as_single_value()), 1)
def _get_acq_rate_instr(self) -> Optional[float]:
"""Get acquisition (repetition rate) from INSTRUMENT source."""
def _get_acq_rate_instr(self) -> Optional[float]:
"""Get acquisition (repetition rate) from INSTRUMENT source."""
Loading