Added radia fit of K-dependent roll-off parameters for Athos Apple-X undulators.
This commit is contained in:
19
model.py
19
model.py
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user