diff --git a/broker/OpenAPIConvert.cpp b/broker/OpenAPIConvert.cpp
index 7cbcb38eb..e44b9fca2 100644
--- a/broker/OpenAPIConvert.cpp
+++ b/broker/OpenAPIConvert.cpp
@@ -663,6 +663,10 @@ DatasetSettings Convert(const org::openapitools::server::model::Dataset_settings
if (input.totalFluxIsSet())
ret.TotalFlux(input.getTotalFlux());
+ if (input.beamSizeXUmIsSet())
+ ret.BeamSizeX_um(input.getBeamSizeXUm());
+ if (input.beamSizeYUmIsSet())
+ ret.BeamSizeY_um(input.getBeamSizeYUm());
if (input.transmissionIsSet())
ret.AttenuatorTransmission(input.getTransmission());
// Not alternatives: a grid scan is often collected at a given head position, so an axis and a
diff --git a/broker/gen/model/Dataset_settings.cpp b/broker/gen/model/Dataset_settings.cpp
index 86698ba44..a464d929e 100644
--- a/broker/gen/model/Dataset_settings.cpp
+++ b/broker/gen/model/Dataset_settings.cpp
@@ -45,6 +45,10 @@ Dataset_settings::Dataset_settings()
m_Total_fluxIsSet = false;
m_Transmission = 0.0f;
m_TransmissionIsSet = false;
+ m_Beam_size_x_um = 0.0f;
+ m_Beam_size_x_umIsSet = false;
+ m_Beam_size_y_um = 0.0f;
+ m_Beam_size_y_umIsSet = false;
m_GoniometerIsSet = false;
m_Grid_scanIsSet = false;
m_Header_appendixIsSet = false;
@@ -237,6 +241,34 @@ bool Dataset_settings::validate(std::stringstream& msg, const std::string& pathP
}
}
+
+ if (beamSizeXUmIsSet())
+ {
+ const float& value = m_Beam_size_x_um;
+ const std::string currentValuePath = _pathPrefix + ".beamSizeXUm";
+
+
+ if (value < static_cast
/entry/instrument/attenuator/attenuator_transmission Transmission of attenuator (filter) [no units]
+First element of /entry/instrument/beam/incident_beam_size in NXmx +Horizontal size of the X-ray beam where it meets the sample - the FWHM of a focused beam, +the full width of a slit-defined one. [um]
+Second element of /entry/instrument/beam/incident_beam_size in NXmx +Vertical size of the X-ray beam where it meets the sample. [um]
Definition of a crystal rotation axis
Definition of a grid scan. May be combined with a goniometer axis: a grid is often collected at a particular head position, and a stationary axis records where that was.
@@ -517,7 +522,7 @@ Assuming that Smargon is used as static positioner and not moving during the sca{- "images_per_trigger": 1,
- "ntrigger": 1,
- "image_time_us": 0,
- "beam_x_pxl": 0.1,
- "beam_y_pxl": 0.1,
- "detector_distance_mm": 0.1,
- "incident_energy_keV": 0.001,
- "file_prefix": "",
- "images_per_file": 1,
- "space_group_number": 1,
- "sample_name": "",
- "compression": "bslz4",
- "total_flux": 0.1,
- "transmission": 1,
- "goniometer": {
- "name": "omega",
- "step": 0.1,
- "start": 50,
- "vector": [
- 1,
- 0,
- 0
], - "helical_step_um": [
- -5,
- -2,
- 0
], - "screening_wedge_deg": 0.1
}, - "grid_scan": {
- "n_fast": 20,
- "step_x_um": 5,
- "step_y_um": -3,
- "vertical": false,
- "snake": false
}, - "header_appendix": null,
- "image_appendix": null,
- "data_reduction_factor_serialmx": 1,
- "pixel_value_low_threshold": 0,
- "run_number": 0,
- "run_name": "string",
- "experiment_group": "string",
- "poisson_compression": 16,
- "write_nxmx_hdf5_master": true,
- "save_calibration": true,
- "polarization_factor": -1,
- "ring_current_mA": 0.1,
- "sample_temperature_K": 0.1,
- "poni_rot1_rad": 0,
- "poni_rot2_rad": 0,
- "poni_rot3_rad": 0,
- "unit_cell": {
- "a": 37,
- "b": 37,
- "c": 78,
- "alpha": 90,
- "beta": 90,
- "gamma": 90
}, - "spot_finding": true,
- "smargon": {
- "phi_deg": 0.1,
- "chi_deg": 90,
- "phi_axis": [
- 1,
- 0,
- 0
], - "chi_axis": [
- 0,
- 0,
- 1
]
}, - "max_spot_count": 250,
- "detect_ice_rings": true,
- "async_start": false,
- "xray_fluorescence_spectrum": {
- "energy_eV": [
- 0.1
], - "data": [
- 0.1
]
}
}{- "msg": "Detector in wrong state",
- "reason": "WrongDAQState"
}{- "images_per_trigger": 1,
- "ntrigger": 1,
- "image_time_us": 0,
- "beam_x_pxl": 0.1,
- "beam_y_pxl": 0.1,
- "detector_distance_mm": 0.1,
- "incident_energy_keV": 0.001,
- "file_prefix": "",
- "images_per_file": 1,
- "space_group_number": 1,
- "sample_name": "",
- "compression": "bslz4",
- "total_flux": 0.1,
- "transmission": 1,
- "beam_size_x_um": 0.1,
- "beam_size_y_um": 0.1,
- "goniometer": {
- "name": "omega",
- "step": 0.1,
- "start": 50,
- "vector": [
- 1,
- 0,
- 0
], - "helical_step_um": [
- -5,
- -2,
- 0
], - "screening_wedge_deg": 0.1
}, - "grid_scan": {
- "n_fast": 20,
- "step_x_um": 5,
- "step_y_um": -3,
- "vertical": false,
- "snake": false
}, - "header_appendix": null,
- "image_appendix": null,
- "data_reduction_factor_serialmx": 1,
- "pixel_value_low_threshold": 0,
- "run_number": 0,
- "run_name": "string",
- "experiment_group": "string",
- "poisson_compression": 16,
- "write_nxmx_hdf5_master": true,
- "save_calibration": true,
- "polarization_factor": -1,
- "ring_current_mA": 0.1,
- "sample_temperature_K": 0.1,
- "poni_rot1_rad": 0,
- "poni_rot2_rad": 0,
- "poni_rot3_rad": 0,
- "unit_cell": {
- "a": 37,
- "b": 37,
- "c": 78,
- "alpha": 90,
- "beta": 90,
- "gamma": 90
}, - "spot_finding": true,
- "smargon": {
- "phi_deg": 0.1,
- "chi_deg": 90,
- "phi_axis": [
- 1,
- 0,
- 0
], - "chi_axis": [
- 0,
- 0,
- 1
]
}, - "max_spot_count": 250,
- "detect_ice_rings": true,
- "async_start": false,
- "xray_fluorescence_spectrum": {
- "energy_eV": [
- 0.1
], - "data": [
- 0.1
]
}
}{- "msg": "Detector in wrong state",
- "reason": "WrongDAQState"
}Block execution of external script till detector and Jungfraujoch are ready to collect data. To not block web server for a indefinite period of time, the procedure is provided with a timeout. Extending timeout is possible, but requires to ensure safety that client will not close the connection and retry the connection.
| timeout | integer [ 0 .. 3600 ] Default: 60 Timeout in seconds (0 == immediate response) @@ -988,7 +993,7 @@ then image might be replaced in the buffer between calling /images and /image.cb |