diff --git a/src/aare/gui/panels/rotation_data_collection.py b/src/aare/gui/panels/rotation_data_collection.py
index 1657b561..418049e4 100644
--- a/src/aare/gui/panels/rotation_data_collection.py
+++ b/src/aare/gui/panels/rotation_data_collection.py
@@ -103,16 +103,23 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
self._layout.addWidget(self.screening_type, 7, 0, 1, 6)
+ self._layout.addWidget(QLabel("Beam transmission", parent=self), 8, 0)
+ self.screening_transmission_enter = DbOverrideLineEdit(
+ 0, 1.0, default=self._transmission, decimals=4, parent=self
+ )
+ self._layout.addWidget(self.screening_transmission_enter, 8, 1, 1, 3)
+ self.screening_transmission_enter.valueChanged.connect(self.set_screening_transmission)
+ # increment later
self.screening_button = QPushButton("Run screening")
self.screening_button.setStyleSheet(f"color: {GO_TEXT};")
self.screening_button.clicked.connect(self.run_screening)
- self._layout.addWidget(self.screening_button, 8, 0, 1, 6)
+ self._layout.addWidget(self.screening_button, 9, 0, 1, 6)
self._layout.addWidget(
- QLabel("
Rotation", parent=self), 9, 0, 1, 6
+ QLabel("Rotation", parent=self), 10, 0, 1, 6
)
- self._layout.addWidget(QLabel("Total angle", parent=self), 10, 0)
+ self._layout.addWidget(QLabel("Total angle", parent=self), 11, 0)
default_steps = cfg_get(
"daq.data_collection_settings.default_rotation_settings.steps", 1800
)
@@ -123,33 +130,41 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
self.total_angle = DbOverrideLineEdit(
0, 9999.0, default=default_total_angle, decimals=3, parent=self
)
- self._layout.addWidget(self.total_angle, 10, 1, 1, 3)
+ self._layout.addWidget(self.total_angle, 11, 1, 1, 3)
self._layout.addWidget(QLabel("°", parent=self), 10, 4)
self._register_override_field(self.total_angle)
- self._layout.addWidget(QLabel("Image angle", parent=self), 11, 0)
+ self._layout.addWidget(QLabel("Image angle", parent=self), 12, 0)
self.image_angle = DbOverrideLineEdit(
0, 10.0, default=default_increment_omega, decimals=3, parent=self
)
- self._layout.addWidget(self.image_angle, 11, 1, 1, 3)
- self._layout.addWidget(QLabel("°", parent=self), 11, 4)
+ self._layout.addWidget(self.image_angle, 12, 1, 1, 3)
+ self._layout.addWidget(QLabel("°", parent=self), 12, 4)
self._register_override_field(self.image_angle)
# TODO add protection on X10SA to prevent too short exposure time/ too high detector rep rate
- self._layout.addWidget(QLabel("Image time", parent=self), 12, 0)
+ self._layout.addWidget(QLabel("Image time", parent=self), 13, 0)
default_image_exp_time = cfg_get(
"daq.data_collection_settings.default_rotation_settings.exp_time_s", 0.01
)
self.image_time_enter = DbOverrideLineEdit(
0.0005, 10.0, default=default_image_exp_time, decimals=4, parent=self
)
- self._layout.addWidget(self.image_time_enter, 12, 1, 1, 3)
- self._layout.addWidget(QLabel("s", parent=self), 12, 4)
+ self._layout.addWidget(self.image_time_enter, 13, 1, 1, 3)
+ self._layout.addWidget(QLabel("s", parent=self), 13, 4)
self._register_override_field(self.image_time_enter)
- self._layout.addWidget(QLabel("Total measurement time", parent=self), 13, 0)
+ self._layout.addWidget(QLabel("Beam transmission", parent=self), 14, 0)
+ self.transmission_enter = DbOverrideLineEdit(
+ 0, 1.0, default=self._transmission, decimals=4, parent=self
+ )
+ self._layout.addWidget(self.transmission_enter, 14, 1, 1, 3)
+ self.transmission_enter.valueChanged.connect(self.set_transmission)
+ self._register_override_field(self.transmission_enter)
+
+ self._layout.addWidget(QLabel("Total measurement time", parent=self), 15, 0)
self.total_time = QLabel(f"{self._total_time} min 0 s")
self.total_time.setAlignment(Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter)
- self._layout.addWidget(self.total_time, 13, 1, 1, 3)
+ self._layout.addWidget(self.total_time, 15, 1, 1, 3)
self.total_angle.valueChanged.connect(self.calculate_measurement_time)
self.image_angle.valueChanged.connect(self.calculate_measurement_time)
@@ -157,21 +172,21 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
# Initial compute
self.calculate_measurement_time()
- self._layout.addWidget(QLabel("Dose", parent=self), 14, 0)
+ self._layout.addWidget(QLabel("Dose", parent=self), 16, 0)
self.dose = QLabel(f"{self._dose_mgy}")
self.dose.setAlignment(Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter)
- self._layout.addWidget(self.dose, 14, 1, 1, 3)
- self._layout.addWidget(QLabel("MGy", parent=self), 14, 4)
+ self._layout.addWidget(self.dose, 16, 1, 1, 3)
+ self._layout.addWidget(QLabel("MGy", parent=self), 16, 4)
self.measurement_button = QPushButton("Run rotation")
self.measurement_button.setStyleSheet(f"color: {GO_TEXT};")
self.measurement_button.clicked.connect(self.run_measurement)
- self._layout.addWidget(self.measurement_button, 16, 0, 1, 6)
+ self._layout.addWidget(self.measurement_button, 17, 0, 1, 6)
# Per-tab Abort (DataCollectionSettings wires it to the DAQ cancel).
self.abort_button = QPushButton("Abort measurement")
self.abort_button.setStyleSheet(f"color: {ABORT_TEXT};")
- self._layout.addWidget(self.abort_button, 17, 0, 1, 6)
+ self._layout.addWidget(self.abort_button, 18, 0, 1, 6)
self._reset_to_defaults()
@Slot()
@@ -197,7 +212,7 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
wedge_omega_deg=screening_settings["omega_step_deg"],
steps=1,
dtz=self._dtz,
- transmission=self._transmission,
+ transmission=self._screening_transmission,
screening=True,
exp_time_s=self.screening_image_time_enter.value,
)
@@ -209,7 +224,7 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
incr_omega_deg=screening_settings["omega_step_deg"],
steps=screening_settings["steps"],
dtz=self._dtz,
- transmission=self._transmission,
+ transmission=self._screening_transmission,
screening=True,
exp_time_s=self.screening_image_time_enter.value,
)
diff --git a/src/aare/gui/panels/scan_settings_panel.py b/src/aare/gui/panels/scan_settings_panel.py
index 2a2e2ac7..ce5dc731 100644
--- a/src/aare/gui/panels/scan_settings_panel.py
+++ b/src/aare/gui/panels/scan_settings_panel.py
@@ -24,7 +24,6 @@ class ScanSettingsPanel(QWidget):
dtz_move = Signal(float)
# TODO min and max dtz is set by beamline add max
MIN_DTZ = 108.0 # this is beamline dependent
- transmission_updated = Signal(float)
def __init__(
self,
@@ -37,6 +36,7 @@ class ScanSettingsPanel(QWidget):
self._diffraction = diffraction
self._transmission = default_transmission
+ self._screening_transmission = default_transmission
self._dtz = default_dtz
self._high_res = diffraction.resolution_angstrom(self._dtz)
@@ -87,13 +87,6 @@ class ScanSettingsPanel(QWidget):
self._layout.addWidget(self.dtz_enter, 1, 1, 1, 3)
self._layout.addWidget(QLabel("mm", parent=self), 1, 4)
- self._layout.addWidget(QLabel("Beam transmission", parent=self), 2, 0)
- self.transmission_enter = DbOverrideLineEdit(
- 0, 1.0, default=self._transmission, decimals=4, parent=self
- )
- self._layout.addWidget(self.transmission_enter, 2, 1, 1, 3)
- self.transmission_enter.valueChanged.connect(self.set_transmission)
-
# dtz and resolution are two views of one quantity. They share the
# source toggle; ``valueChanged`` keeps internal state/downstream in
# sync (toggle, db updates), while ``edited`` (a real user edit) derives
@@ -105,8 +98,6 @@ class ScanSettingsPanel(QWidget):
self._override_fields.append(self.dtz_enter)
self._override_fields.append(self.high_res_enter)
- self._register_override_field(self.transmission_enter)
-
self._reset_to_defaults()
# -- source toggle -----------------------------------------------------
@@ -253,10 +244,13 @@ class ScanSettingsPanel(QWidget):
self.set_source(DbOverrideLineEdit.SOURCE_MINE)
self.dtz_updated.emit(self._dtz)
+ @Slot(float)
+ def set_screening_transmission(self, v: float):
+ self._screening_transmission = v
+
@Slot(float)
def set_transmission(self, v: float):
self._transmission = v
- self.transmission_updated.emit(self._transmission)
@Slot()
def reload_parameters(self):
diff --git a/uv.lock b/uv.lock
index 901b66d1..0a9c2ba6 100644
--- a/uv.lock
+++ b/uv.lock
@@ -31,7 +31,7 @@ wheels = [
[[package]]
name = "aaredaq"
-version = "0.17.3"
+version = "0.17.5"
source = { editable = "." }
dependencies = [
{ name = "aarecommon" },