diff --git a/xfel/command_line/detector_residuals.py b/xfel/command_line/detector_residuals.py index 1724863d05..39065ef434 100644 --- a/xfel/command_line/detector_residuals.py +++ b/xfel/command_line/detector_residuals.py @@ -444,6 +444,14 @@ def run(self): experiments = flatten_experiments(params.input.experiments) + # XFEL stills .expt files carry a shared wavelength-less XFELBeam plus + # per-frame wavelengths in the scan; resolve each experiment's monochromatic + # beam up front so the residual/prediction code can call beam.get_s0(). + # A no-op for ordinary beams. This tool only reads experiments, so it is + # safe to replace the beam in place here. + for expt in experiments: + expt.beam = expt.get_monochromatic_beam() + # Find all detector objects detectors = experiments.detectors() diff --git a/xfel/cxi/cspad_ana/mod_view.py b/xfel/cxi/cspad_ana/mod_view.py index dcd2235fdc..1c8e48fe9e 100644 --- a/xfel/cxi/cspad_ana/mod_view.py +++ b/xfel/cxi/cspad_ana/mod_view.py @@ -62,7 +62,7 @@ def __init__(self, **kwargs): from copy import deepcopy - from dxtbx.model.beam import Beam, BeamFactory + from dxtbx.model.beam import BeamBase, BeamFactory from dxtbx.model.detector import Detector, DetectorFactory from dxtbx.model.goniometer import Goniometer, GoniometerFactory from dxtbx.model import Scan, ScanFactory @@ -119,7 +119,7 @@ def __init__(self, **kwargs): self._detector_instance = detector_instance beam_instance = self._beam() - assert(isinstance(beam_instance, Beam)) + assert(isinstance(beam_instance, BeamBase)) self._beam_instance = beam_instance scan_instance = self._scan()