From 69a94f0fe8b6951648e6b909a22733dfd9cac631 Mon Sep 17 00:00:00 2001 From: yoshikisd Date: Thu, 18 Dec 2025 18:15:19 +0000 Subject: [PATCH] Bragg2DPtycho scattering_mode string values only inspected if scattering_mode is a string --- src/cdtools/models/bragg_2d_ptycho.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/cdtools/models/bragg_2d_ptycho.py b/src/cdtools/models/bragg_2d_ptycho.py index b3869a9c..507323d0 100644 --- a/src/cdtools/models/bragg_2d_ptycho.py +++ b/src/cdtools/models/bragg_2d_ptycho.py @@ -285,13 +285,14 @@ def from_dataset( # > dataset.sample_info['orientation'] > transmission geometry if surface_normal is not None: surface_normal = np.asarray(surface_normal) - elif scattering_mode.strip().lower() in {'t', 'transmission'}: - surface_normal = np.array([0.,0.,1.]) - elif scattering_mode.strip().lower() in {'r', 'reflection'}: - outgoing_dir = np.cross(det_basis[:,0], det_basis[:,1]) - outgoing_dir /= np.linalg.norm(outgoing_dir) - surface_normal = outgoing_dir + np.array([0.,0.,1.]) - surface_normal /= np.linalg.norm(outgoing_dir) + elif isinstance(scattering_mode, str): + if scattering_mode.strip().lower() in {'t', 'transmission'}: + surface_normal = np.array([0.,0.,1.]) + elif scattering_mode.strip().lower() in {'r', 'reflection'}: + outgoing_dir = np.cross(det_basis[:,0], det_basis[:,1]) + outgoing_dir /= np.linalg.norm(outgoing_dir) + surface_normal = outgoing_dir + np.array([0.,0.,1.]) + surface_normal /= np.linalg.norm(outgoing_dir) elif scattering_mode is not None: raise ValueError( 'Scattering mode must be either "transmission" ("t"), "reflection" ("r"), or the default of None.'