From 0a7f5ffd4833e28e8d23a893122ed745dd044dfa Mon Sep 17 00:00:00 2001
From: David Hammer <dhammer@mailbox.org>
Date: Wed, 18 Sep 2024 14:03:36 +0200
Subject: [PATCH] Fix arbiter geometry stuff

---
 src/calng/FrameSelectionArbiter.py | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/calng/FrameSelectionArbiter.py b/src/calng/FrameSelectionArbiter.py
index b34a660f..5b7ffed6 100644
--- a/src/calng/FrameSelectionArbiter.py
+++ b/src/calng/FrameSelectionArbiter.py
@@ -144,9 +144,6 @@ class BaseFrameSelectionArbiter(TrainMatcher.TrainMatcher):
         )
 
         self._geometry = None
-        geom_utils.subscribe_to_geometry_bound(
-            self, self.get("geometryDevice"), on_geometry=self._on_geometry
-        )
 
     def _guess_number_of_frames(self, sources):
         # TODO: robust frame deduction
@@ -184,6 +181,9 @@ class SimpleFrameSelectionArbiter(BaseFrameSelectionArbiter):
         self._initialize_kernel(
             self["frameSelection.kernelChoice"], self["frameSelection.kernelParameters"]
         )
+        geom_utils.subscribe_to_geometry_bound(
+            self, self.get("geometryDevice"), on_geometry=self._on_geometry
+        )
 
         if self["state"] != State.ERROR:
             self.start()  # Auto-start this type of matcher.
@@ -307,6 +307,9 @@ class AdvancedFrameSelectionArbiter(BaseFrameSelectionArbiter):
         self._validate_plan_and_update_schema(self["frameSelection.plan"])
         self._initialize_kernels()
         self._configure_decision(self["frameSelection.decision"])
+        geom_utils.subscribe_to_geometry_bound(
+            self, self.get("geometryDevice"), on_geometry=self._on_geometry
+        )
 
         if self["state"] != State.ERROR:
             self.start()  # Auto-start this type of matcher.
@@ -517,5 +520,5 @@ class AdvancedFrameSelectionArbiter(BaseFrameSelectionArbiter):
                     kernel.reconfigure(conf[kernel_prefix])
 
     def _on_geometry(self, geometry):
-        for kernel in self._selection_kernels.values()
+        for kernel in self._selection_kernels.values():
             kernel.on_new_geometry(geometry)
-- 
GitLab