From b8829419ec350aeedba8538a69bd3dc8350845b6 Mon Sep 17 00:00:00 2001 From: Egor Sobolev <egor.sobolev@xfel.eu> Date: Wed, 25 Sep 2024 21:18:09 +0200 Subject: [PATCH] Add decision mask to every arbter kernel output schema --- src/calng/FrameSelectionArbiter.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/calng/FrameSelectionArbiter.py b/src/calng/FrameSelectionArbiter.py index 079252af..7522981f 100644 --- a/src/calng/FrameSelectionArbiter.py +++ b/src/calng/FrameSelectionArbiter.py @@ -402,6 +402,7 @@ class AdvancedFrameSelectionArbiter(BaseFrameSelectionArbiter): except Exception as ex: warn(f"Kernel for {prefix} failed: {ex}") res[selection_name] = np.ones(num_frames, dtype=bool) + out_hash[f"{selection_name}.mask"] = list(map(bool, res[selection_name])) return res def _configure_decision(self, decision_string): @@ -480,6 +481,17 @@ class AdvancedFrameSelectionArbiter(BaseFrameSelectionArbiter): kernel_class.extend_device_schema( schema_update, kernel_prefix ) + ( + NODE_ELEMENT(output_schema_update) + .key(selection_name) + .commit(), + + VECTOR_BOOL_ELEMENT(output_schema_update) + .key(f"{selection_name}.mask") + .assignmentOptional() + .defaultValue([]) + .commit(), + ) kernel_class.extend_output_schema(output_schema_update, selection_name) new_selection_steps[selection_name] = (kernel_class, preselection) -- GitLab