Files
sf-op/script/Undulators/K-calc_AT.py
2020-08-14 16:25:14 +02:00

39 lines
1.1 KiB
Python

undlist = ("SATUN17","SATUN18","SATUN19","SATUN20","SATUN21","SATUN22")
### getting current photon energy:
Eph1 = caget(undlist[0] + "-UIND030:FELPHOTENE")
#Eph1 = 0.530 # actual photon energy in keV
print("Photon energy at start (at ", undlist[0],") : ", round(Eph1,4))
### give desired photon energy via relative or absolute method.
### please comment the other out!
### relative change in photon energy:
#step = -0.002 # desired step to scale in keV
#Eph2 = Eph1 + step
### absolute change in photon energy:
Eph2 = 0.540 # desired photon energy in keV
print("Photon energy at end: ", round(Eph2,4))
do_elog = True
### actual code:
K1, K2 = {}, {}
for und in undlist:
K = caget(und + "-UIND030:K_SET")
K1[und] = K
K2[und] = ((Eph1 / Eph2 * (K**2 + 2) - 2))**0.5
print(K1)
print(K2)
for und in undlist: caput(und + "-UIND030:K_SET", K2[und])
### create Elog entry
if do_elog:
title = "Athos wavelength change"
log_msg = "Old photon energy: %0.4f" % Eph1 + " kev\n"
log_msg = log_msg + "New photon energy: %0.4f" % Eph2 + " keV\n"
elog(title, log_msg)