From 7298f75dfa21fa14c30e1d61c5c92fed3c11903a Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 24 Jun 2025 11:12:33 +0200 Subject: [PATCH] DAQ: Minor fixes to logic for setting up JFJoch dataset --- daq/src/aaredaq/aaredb.py | 92 ++++++++++----------------------------- daq/src/mxlibs3/jfjoch.py | 12 ++--- 2 files changed, 30 insertions(+), 74 deletions(-) diff --git a/daq/src/aaredaq/aaredb.py b/daq/src/aaredaq/aaredb.py index f8f68384..4230f64a 100644 --- a/daq/src/aaredaq/aaredb.py +++ b/daq/src/aaredaq/aaredb.py @@ -150,79 +150,32 @@ class AareWrapper: verify=False, headers=headers) print(response.status_code) - def create_characterization_run(self, s: Optional[SampleShortInfo], r:RotationScanRequest, d:DAQStatusModel): - if s is None: - return - - try: - characterization = CharacterizationParameters( - omegaStart_deg=r.start_omega_deg, - omegaStep=r.incr_omega_deg, - phi=d.geom.smargon.phi_deg, - chi=d.geom.smargon.chi_deg, - numberOfImages=r.steps, - exposureTime_s=r.exp_time_s, - ) - dataset = Datasets( - filepath=r.file_prefix, - status="written", - written_at=datetime.datetime.now() - ) - detector_data = DetectorParameters( - manufacturer="DECTRIS", - model=d.diffraction.detector_description, - type="photon-counting", - serialNumber=d.diffraction.detector_serial_number, - detectorDistance_mm=r.dtz, - beamCenterX_px=d.diffraction.beam_center_pxl[0], - beamCenterY_px=d.diffraction.beam_center_pxl[1], - pixelSizeX_um=d.diffraction.pixel_size_mm * 1000, - pixelSizeY_um=d.diffraction.pixel_size_mm * 1000, - dataset=dataset - ) - beamline_params = BeamlineParametersInput( - synchrotron="Swiss Light Source", - beamline=d.bl.name, - detector=detector_data, - energy_keV=d.diffraction.energy_keV, - wavelength_Ang=d.diffraction.wavelength_angstrom, - ringCurrent_mA=d.bl.ring_current_mA, - ringMode="Beamline Development", - monochromator="Si111", - transmission=r.transmission, - focusingOptic="Kirkpatrick-Baez", - beamlineFluxAtSample_ph_s=d.bl.flux_ph_s, - beamSizeWidth=d.geom.beam_size_mm.x * 100, - beamSizeHeight=d.geom.beam_size_mm.y * 100, - cryojetTemperature_K=d.bl.cryojet_K, - characterization=characterization, - ) - experiment_params_payload = ExperimentParametersCreate( - type="standard", - beamline_parameters=beamline_params, - sample_id=s.db_id - ) - response = self.__sample_api.create_experiment_parameters_for_sample( - sample_id=s.db_id, - experiment_parameters_create=experiment_params_payload - ) - print("Experiment parameters created:", response) - except Exception as e: - print(e) - def create_rotation_run(self, s: Optional[SampleShortInfo], r:RotationScanRequest, d:DAQStatusModel): if s is None: return try: - rotation = RotationParameters( - omegaStart_deg=r.start_omega_deg, - omegaStep=r.incr_omega_deg, - phi=d.geom.smargon.phi_deg, - chi=d.geom.smargon.chi_deg, - numberOfImages=r.steps, - exposureTime_s=r.exp_time_s, - ) + if r.screening: + characterization = CharacterizationParameters( + omegaStart_deg=r.start_omega_deg, + omegaStep=r.incr_omega_deg, + phi=d.geom.smargon.phi_deg, + chi=d.geom.smargon.chi_deg, + numberOfImages=r.steps, + exposureTime_s=r.exp_time_s, + oscillation_deg=r.wedge_omega_deg + ) + rotation = None + else: + rotation = RotationParameters( + omegaStart_deg=r.start_omega_deg, + omegaStep=r.incr_omega_deg, + phi=d.geom.smargon.phi_deg, + chi=d.geom.smargon.chi_deg, + numberOfImages=r.steps, + exposureTime_s=r.exp_time_s, + ) + characterization = None dataset = Datasets( filepath=r.file_prefix, status="written", @@ -255,7 +208,8 @@ class AareWrapper: beamSizeWidth=d.geom.beam_size_mm.x * 100, beamSizeHeight=d.geom.beam_size_mm.y * 100, cryojetTemperature_K=d.bl.cryojet_K, - rotation=rotation + rotation=rotation, + characterization=characterization ) experiment_params_payload = ExperimentParametersCreate( type="standard", diff --git a/daq/src/mxlibs3/jfjoch.py b/daq/src/mxlibs3/jfjoch.py index 777a8d1d..4fb03609 100644 --- a/daq/src/mxlibs3/jfjoch.py +++ b/daq/src/mxlibs3/jfjoch.py @@ -51,7 +51,7 @@ class JFJochWrapper: step=r.incr_omega_deg, start=r.start_omega_deg, name="omega", - vector= [0,1,0], + vector= [1,0,0], screening_wedge_deg = wedge ) @@ -67,14 +67,16 @@ class JFJochWrapper: beam_y_pxl=s.diffraction.beam_center_pxl[1], ntrigger= trigger, images_per_trigger=images, - detector_distance_mm=s.diffraction.dtz_mm, + detector_distance_mm=r.dtz, file_prefix=f"{pgroup}/raw/{r.file_prefix}", incident_energy_keV=s.diffraction.energy_keV, goniometer=goniometer_settings, sample_name=sample, image_time_us=round(r.exp_time_s * 1e6), experiment_group=pgroup, - transmission=s.bl.transmission + transmission=s.bl.transmission, + ring_current_mA=s.bl.ring_current_mA, + sample_temperature_K=s.bl.cryojet_K ) self.__api.start_post(dataset_settings=dataset_settings) @@ -109,8 +111,8 @@ class JFJochWrapper: image_time_us=round(r.exp_time_s * 1e6), experiment_group=pgroup, transmission=s.bl.transmission, - ring_current_m_a=s.bl.ring_current_mA, - sample_temperature_k=s.bl.cryojet_K + ring_current_mA=s.bl.ring_current_mA, + sample_temperature_K=s.bl.cryojet_K ) self.__api.start_post(dataset_settings=dataset_settings)