Skip to content

Commit a2cbc84

Browse files
committed
Preliminary code for handling more parameters from the diffractionPlan
1 parent 4ceff9d commit a2cbc84

File tree

2 files changed

+43
-24
lines changed

2 files changed

+43
-24
lines changed

mxcubecore/HardwareObjects/Gphl/GphlWorkflow.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,12 @@ class GphlWorkflowStates(enum.Enum):
8686
EMULATION_DATA = {
8787
"3n0s": {"radiationSensitivity": 0.9},
8888
"4j8p": {"radiationSensitivity": 1.1},
89+
"4mxt":{
90+
"exposureTime": 0.055,
91+
"oscillationRange": 0.15,
92+
"radiationSensitivity": 1.0,
93+
"energy": 12.2222,
94+
},
8995
}
9096

9197
# Centring modes for use in centring mode pulldown.
@@ -2759,14 +2765,11 @@ def get_emulation_samples(self):
27592765
# Use "Mad, "SAD", "OSC"
27602766
dfp = data["diffractionPlan"] = {
27612767
# "diffractionPlanId": 457980,
2762-
"experimentKind": "Default",
2763-
"numberOfPositions": 0,
2764-
"observedResolution": 0.0,
2765-
"preferredBeamDiameter": 0.0,
2768+
# "experimentKind": "Default",
2769+
"exposureTime": 0.0,
2770+
"oscillationRange": 0.0,
27662771
"radiationSensitivity": 1.0,
2767-
"requiredCompleteness": 0.0,
2768-
"requiredMultiplicity": 0.0,
2769-
# "requiredResolution": 0.0,
2772+
"energy": 0.0,
27702773
}
27712774
dfp["aimedResolution"] = resolution
27722775
dfp["diffractionPlanId"] = 5000000 + serial

mxcubecore/model/queue_model_objects.py

Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2431,25 +2431,41 @@ def init_from_task_data(self, sample_model, params):
24312431
)
24322432

24332433
# Set parameters from diffraction plan
2434-
diffraction_plan = sample_model.diffraction_plan
2435-
if diffraction_plan:
2434+
plan = sample_model.diffraction_plan
2435+
if plan:
24362436
# It is not clear if diffraction_plan is a dict or an object,
24372437
# and if so which kind
2438-
if hasattr(diffraction_plan, "radiationSensitivity"):
2439-
radiation_sensitivity = diffraction_plan.radiationSensitivity
2440-
else:
2441-
radiation_sensitivity = diffraction_plan.get("radiationSensitivity")
2442-
2443-
if radiation_sensitivity:
2444-
self.relative_rad_sensitivity = radiation_sensitivity
2445-
2446-
if hasattr(diffraction_plan, "aimedResolution"):
2447-
resolution = diffraction_plan.aimedResolution
2448-
else:
2449-
resolution = diffraction_plan.get("aimedResolution")
2450-
2451-
if resolution:
2452-
self.aimed_resolution = resolution
2438+
# NB if 'val' is ever not None but zero we still want to skip it
2439+
tag = "radiationSensitivity"
2440+
val = getattr(plan, tag, plan.get(tag))
2441+
if val:
2442+
self.relative_rad_sensitivity = val
2443+
tag = "aimedResolution"
2444+
val = getattr(plan, tag, plan.get(tag))
2445+
if val:
2446+
self.aimed_resolution = val
2447+
if self.automation_mode:
2448+
tag = "exposureTime"
2449+
val = getattr(plan, tag, plan.get(tag))
2450+
if val:
2451+
self.auto_acq_parameters[-1]["exposure_time"] = val
2452+
tag = "oscillationRange"
2453+
val = getattr(plan, tag, plan.get(tag))
2454+
if val:
2455+
self.auto_acq_parameters[-1]["image_width"] = val
2456+
tag = "energy"
2457+
val = getattr(plan, tag, plan.get(tag))
2458+
if val:
2459+
if self.wftype == "diffractcal":
2460+
energy_tag = "Main"
2461+
else:
2462+
energy_tag = "Characterisation"
2463+
self.wavelengths = (
2464+
GphlMessages.PhasingWavelength(
2465+
wavelength=HWR.beamline.energy.calculate_wavelength(val),
2466+
role=energy_tag,
2467+
),
2468+
)
24532469

24542470
# Parameters for start of workflow
24552471
def get_path_template(self):

0 commit comments

Comments
 (0)