From 46fa2662a719050fbfc1d1b671b0f79ab94f4afc Mon Sep 17 00:00:00 2001 From: x01da Date: Tue, 16 Jun 2026 15:40:46 +0200 Subject: [PATCH] Added correction for defocused beam calculation --- .../widgets/digital_twin/calculations/calc_varia.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_varia.py b/debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_varia.py index b70e751..56c235e 100644 --- a/debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_varia.py +++ b/debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_varia.py @@ -264,14 +264,24 @@ def fm_ideal_pitch( assert fm_focx is not None, "fm_focx must be provided for Defocused mode" assert fm_focy is not None, "fm_focy must be provided for Defocused mode" a = 2 * np.tan(sldi_hacc) * bl.fm.center[1] # Beam width at focusing mirror + # logger.info(f"a: {a}") + # logger.info(f"sldi_hacc: {sldi_hacc}") + # logger.info(f"bl.fm.center[1]: {bl.fm.center[1]}") + # logger.info(f"p: {p}") + # logger.info(f"q: {q}") b = ( 2 * np.tan(sldi_vacc) * bl.cm.center[1] ) # Beam height at focusing mirror (collimated beam) x = fm_focx + # logger.info(f"x: {x}") + x = 0.098821 * x**2 + 0.512344 * x # polynom to correct for spot size + # logger.info(f"x (corrected): {x}") y = fm_focy qx = q + x * p / a - qy = q + y * p / b + qy = q + y * q / b f = (p * qx) / (p + qx) # focal length + # logger.info(f"qx: {qx}") + # logger.info(f"f: {f}") else: # Calculate for focused beam on sample in "manual" and "focused" mode qy = None f = (p * q) / (p + q) # focal length @@ -280,6 +290,7 @@ def fm_ideal_pitch( pitch = np.arcsin(bl.fm.r[0] / (2 * f)) # ideal pitch for FM if "Pt" in fm_stripe: pitch = np.arcsin(bl.fm.r[1] / (2 * f)) # ideal pitch for FM + # logger.info(f"pitch: {pitch}") return pitch, qy