Added radia fit of K-dependent roll-off parameters for Athos Apple-X undulators.

This commit is contained in:
2026-02-16 10:40:26 +01:00
parent 18715cfb75
commit bc81dcce00

View File

@@ -90,14 +90,18 @@ class Model:
if 'UIND' in name:
self.om.setRegExpElement(name[0:7], name[8:15], 'K', float(val[0]))
if 'SATUN' in name:
kx = 0
ky = 1
if 'LV' in val[1]:
kx = 1
ky = 0
if 'C' in val[1]:
if 'LV' in val[1] or 'LH' in val[1]:
K = float(val[0])
fit = 0.04701805*K*K+ 0.20133565*K+ 0.83336356
if 'LH' in val[1]:
kx = fit
ky = 1 - kx
else:
ky = fit
kx = 1- ky
else:
kx = 0.5
ky=0.5
ky = 0.5
self.om.setRegExpElement(name[0:7], name[8:15], 'kx', kx)
self.om.setRegExpElement(name[0:7], name[8:15], 'ky', ky)
if 'RSYS' in name:
@@ -105,7 +109,6 @@ class Model:
phase = float(val[1])
if 'CB' in name[0:7]:
grad = grad/ 4.
elif 'XB' in name[0:7] or 'SINSB03' in name or 'SINSB04' in name:
grad = grad/2
L = self.om.getRegExpElement(name[0:7], 'RACC', 'Length')[0]
self.om.setRegExpElement(name[0:7], 'RACC', 'Gradient', grad/L)