May updates

This commit is contained in:
gac-furka
2023-05-10 15:05:22 +02:00
parent b037315ac8
commit f1887e5f22
7 changed files with 968 additions and 89 deletions

159
furka.py
View File

@ -14,6 +14,10 @@ from slic.gui import GUI
from slic.utils import devices
from slic.utils import as_shortcut, Marker
from spreadsheet import overview, print_overview, print_line_for_spreadsheet
from channels import channels, pvs
from undulator import Undulators
from undulator import Mono
from undulator import Coupled_MonoUnd
@ -30,34 +34,54 @@ from constraints import ExtraConstraint
dummy = DummyAdjustable(units="au")
from slic.devices.general.smaract import SmarActAxis
parab_RY = SmarActAxis("SATES30-XSMA182:MOT4", name="Parab RY")
parab_RX = SmarActAxis("SATES30-XSMA182:MOT7", name="Parab RX")
taget_along_beam = SmarActAxis("SATES30-XSMA184:MOT6", name="Target along beam")
#Retro Chamber Motors
#mot_x = Motor("SATES30-RETRO:MOT_X", name="Retro X")
mot_y = Motor("SATES30-RETRO:MOT_Y", name="Retro Y")
#mot_y = Motor("SATES30-RETRO:MOT_Y", name="Retro Y")
#mot_z = Motor("SATES30-RETRO:MOT_Z", name="Retro Z")
#mot_theta = Motor("SATES30-RETRO:MOT_RY", name="Retro Theta")
#retro = SimpleDevice("Retro Stages", x=mot_x, y=mot_y, z=mot_z, theta=mot_theta)
KBV_RX = PVAdjustable("SATOP31-OKBV178:W_RX.VAL", pvname_moving="SATOP31-OKBV178:MOVING", name = "KB_Vertical_RX")
#KBV_RX = PVAdjustable("SATOP31-OKBV178:W_RX.VAL", process_time=1, name = "KBV_RX")
KBH_RY = PVAdjustable("SATOP31-OKBH179:W_RY.VAL", pvname_moving="SATOP31-OKBH179:MOVING", name = "KB_Horiz_RY")
#KBH_RY = PVAdjustable("SATOP31-OKBH179:W_RY.VAL", process_time=1, name = "KBH_RY")
lxt = PVAdjustable("SLAAT01-LTIM-PDLY:DELAY", pvname_done_moving="SLAAT01-LTIM-PDLY:WAITING", name="LXT")
#Furka Kbs motors
KBV_RX = PVAdjustable("SATOP31-OKBV178:W_RX.VAL", pvname_moving="SATOP31-OKBV178:MOVING", name = "KB Ver RX")
KBH_RY = PVAdjustable("SATOP31-OKBH179:W_RY.VAL", pvname_moving="SATOP31-OKBH179:MOVING", name = "KB Horiz RY")
#mono_slits = PVAdjustable("SATOP11-OSGM087:EXITSLIT",pvname_done_moving="SATOP31-OEXS132:MOT_H.DMOV", name = "Mono_Slits" )
## PMOS adjustables
PMOS127_FOCUS = PVAdjustable("SLAAT-GSLENS0:SET_CTS_POWER", process_time=1, name="PMOS127_FOCUS")
PMOS132_FOCUS = PVAdjustable("SLAAT-GSLENS1:SET_CTS_POWER", process_time=1, name="PMOS132_FOCUS")
#PMOS_FOCUS = PVAdjustable("SLAAT-GSLENS1:SET_CTS_POWER", process_time=1, name="PMOS_FOCUS")
MONO_G_rad = PVAdjustable("SATOP11-OSGM087:G_RADIUS", pvname_moving="SATOP11-OSGM087:MONO_STATUS", name="MONO_G_rad")
MONO_M_rad = PVAdjustable("SATOP11-OSGM087:M_RADIUS", pvname_moving="SATOP11-OSGM087:MONO_STATUS", name="MONO_M_rad")
MONO_M_curv = PVAdjustable("SATOP11-OSGM087:M_CURVATURE", pvname_moving="SATOP11-OSGM087:MONO_STATUS", name="MONO_M_curv")
## OAPU085
OAPU085_vert = PVAdjustable("SATOP11-OAPU085:MOTOR_Y.VAL", process_time=1, name="OAPU085_vert")
##mono_slits = PVAdjustable("SATOP11-OSGM087:EXITSLIT",pvname_done_moving="SATOP31-OEXS132:MOT_H.DMOV", name = "Mono_Slits" )
#undulators set-up
n_und_ref = 13
n_unds = [
6, 7, 8, 9, 10, 11, 12, 13, # 14 is the CHIC
15, 16, 17, 18, 19, 20, 21, 22
]
chic_fudge_offset = 0
Mon2Unds_offset = 9
Mon2Unds_offset = 1.8
und = Undulators(n_unds, n_und_ref, chic_fudge_offset, name="z Athos Undulators")
#und = Undulators(name="Undulators")
#Mono set up
mono_name = "Athos_mono"
pv_mono_name="SATOP11-OSGM087"
@ -69,11 +93,17 @@ MonUnd = Coupled_MonoUnd(
name="Mono+Und"
)
tth_scan = Coupled_tth(delta=0.3885, name="theta 2theta")
Mon_ES = PVAdjustable("SATOP11-OSGM087:EXITSLIT", pvname_done_moving="SATOP31-OEXS132:MOT_H.DMOV", name = "Mono ES")
gas_attenuator_trans = PVAdjustable("SATFE10-OGAT053:TRANSMISSION", process_time=20, name="Gas Attenuator Transmission")
lakeshore = PVAdjustable("SATES30-LS336:LOOP1_SP", "SATES30-LS336:A_RBV", accuracy=0.25, name="Lakeshore Temp")
#att = Attenuator("SATFE10-OATT064")
#shutter = Shutter("SATOP31-OPSH138")
#lakeshore = LakeShore(name="Temperature")
@ -83,98 +113,67 @@ wl = Wavelength(Mon)
mu = Motor("SATES30-RIXS:MOT_SRY.VAL")
chi = Motor("SATES30-RIXS:MOT_SRZ.VAL")
phi = Motor("SATES30-RIXS:MOT_SRX.VAL")
nu = Motor("SATES30-RIXS:MOT_DRY.VAL")
#Diffractometer motions
mu = Motor("SATES30-ARES:MOT_SRY.VAL", name = "Diff RY")
chi = Motor("SATES30-ARES:MOT_SRZ.VAL", name = "Diff RZ")
phi = Motor("SATES30-ARES:MOT_SRX.VAL", name = "Diff RX")
nu = Motor("SATES30-ARES:MOT_DRY.VAL", name = "Diff DRY")
q = QSpace3D("SOMETHING:Q", mu, chi, phi, nu, wl)
TX = Motor("SATES30-RIXS:MOT_STX.VAL")
TY = Motor("SATES30-RIXS:MOT_STY.VAL")
TZ = Motor("SATES30-RIXS:MOT_STZ.VAL")
TwoTRY=Motor("SATES30-RIXS:MOT_2TRY.VAL")
TX = Motor("SATES30-ARES:MOT_STX.VAL", name = "Diff TX")
TY = Motor("SATES30-ARES:MOT_STY.VAL", name = "Diff TY")
TZ = Motor("SATES30-ARES:MOT_STZ.VAL", name = "Diff TZ")
TwoTRY=Motor("SATES30-ARES:MOT_2TRY.VAL", name = "Diff 2TRY")
tth_scan = Coupled_tth(delta=0.3885, name="theta 2theta")
PICO_X1 = PVAdjustable("SLAAT31-LMNP-PICO11:DRIVE", name="PICO X1")
#fake_mu = HistoryDummy.init_from(mu)
#fake_chi = HistoryDummy.init_from(chi)
#fake_phi = HistoryDummy.init_from(phi)
#fake_nu = HistoryDummy.init_from(nu)
#fake_q = QSpace3D("FAKE:Q", fake_mu, fake_chi, fake_phi, fake_nu, wl)
##fake_q.set_lattice("FAKE:Q", fake_mu, fake_chi, fake_phi, fake_nu, wl)
#Laser motors
lxt = PVAdjustable("SLAAT01-LTIM-PDLY:DELAY", pvname_done_moving="SLAAT01-LTIM-PDLY:WAITING", name="LXT")
PICO_X1 = PVAdjustable("SLAAT31-LMNP-PICO11:DRIVE", name="PICO X1")
PICO_Y1 = PVAdjustable("SLAAT31-LMNP-PICO12:DRIVE", name="PICO Y1")
Thz_delay = Motor("SLAAT31-LMOT-M806:MOT", name="Thz Delay")
WL_delay = Motor("SLAAT31-LMOT-M807:MOT", name="WL Delay")
gate_delay = Motor("SLAAT31-LMOT-M808:MOT", name="Gate Delay")
fake_mu = HistoryDummy.init_from(mu)
fake_chi = HistoryDummy.init_from(chi)
fake_phi = HistoryDummy.init_from(phi)
fake_nu = HistoryDummy.init_from(nu)
fake_q = QSpace3D("FAKE:Q", fake_mu, fake_chi, fake_phi, fake_nu, wl)
#fake_q.set_lattice("FAKE:Q", fake_mu, fake_chi, fake_phi, fake_nu, wl)
laser_delay = Motor("SLAAT31-LMOT-M808:MOT", name="Laser Delay")
laser_WP = Motor("SLAAT31-LMOT-M801:MOT", name="Laser WavePlate")
channels = [
"SATFE10-PEPG046:FCUP-INTENSITY-CAL",
"SATFE10-PEPG046-EVR0:CALCI",
"SATFE10-PEPG046:PHOTON-ENERGY-PER-PULSE-AVG",
"SATES30-LSCP10-FNS:CH0:VAL_GET",
"SATES30-LSCP10-FNS:CH1:VAL_GET",
"SATES30-LSCP10-FNS:CH2:VAL_GET",
"SATES30-LSCP10-FNS:CH3:VAL_GET",
"SATES30-LSCP10-FNS:CH4:VAL_GET",
# "SATOP31-PMOS132-2D:SPECTRUM_CENTER",
# "SATOP31-PMOS132-2D:SPECTRUM_FWHM",
# "SATOP31-PMOS132-2D:SPECTRUM_X",
# "SATOP31-PMOS132-2D:SPECTRUM_Y",
# "SATOP31-PMOS132-2D:processing_parameters",
# "SATES30-CVME-EVR0:CALCS",
"SLAAT21-LSCP01-FNS:CH0:VAL_GET",
"SLAAT21-LSCP01:CH0:1",
# "SATES30-LSCP10-FNS:CH0:WFMi"
# "SATES31-CAMS187-RIXS1:SPC",
# "SATES31-CAMS187-RIXS1:SPC_gauss",
# "SATES31-CAMS187-RIXS1:SPC_wgt",
# "SATES31-CAMS187-RIXS1:Spectrum",
# "SATES31-CAMS187-RIXS1:evt_list",
# "SATES31-CAMS187-RIXS1:FPICTURE"
"SATES30-CVME-EVR0:DUMMY_PV1_NBS",
"SATES30-CVME-EVR0:DUMMY_PV2_NBS",
"SATES30-CVME-EVR0:DUMMY_PV3_NBS",
"SATES30-CVME-EVR0:DUMMY_PV4_NBS",
"SATES30-CVME-EVR0:DUMMY_PV5_NBS",
"SATES30-CVME-EVR0:DUMMY_PV6_NBS",
"SATES30-CVME-EVR0:DUMMY_PV7_NBS",
"SATES30-CVME-EVR0:DUMMY_PV8_NBS",
"SATES30-CVME-EVR0:DUMMY_PV9_NBS",
"SATES30-CVME-EVR0:DUMMY_PV10_NBS"
]
pvs = [
"SATFE10-PEPG046:PHOTON-ENERGY-PER-PULSE-AVG",
"SATES30-RETRO:MOT_RY.RBV",
"SATES30-RETRO:MOT_X.RBV",
"SATES30-RETRO:MOT_Y.RBV",
"SATES30-RETRO:MOT_Z.RBV",
"SATUN:FELPHOTENE"
]
live_channels = [
"SATES30-LSCP10-FNS:CH0:VAL_GET",
"SATES30-LSCP10-FNS:CH1:VAL_GET",
# "SATES30-LSCP10-FNS:CH0:WFM"
# "SATES30-LSCP10-FNS:CH4:VAL_GET"
]
#overview.Thz_delay = Thz_delay
instrument = "furka"
pgroup = "p19735" #Commissioning p group
pgroup = "p20452" #Commissioning p group
#check_intensity = PVCondition("SATFE10-PEPG046:FCUP-INTENSITY-CAL", vmin=5, vmax=None, wait_time=3, required_fraction=0.8)
#check_intensity = None
check_intensity = PVCondition("SATBD01-DBPM060:Q2", vmin=5, vmax=None, wait_time=1, required_fraction=0.8)
#check_intensity = None
daq = SFAcquisition(instrument, pgroup, default_channels=channels, default_pvs=pvs, rate_multiplicator=1)
daq.update_config_pvs()
#daq = FakeAcquisition(instrument, pgroup, default_channels=channels, default_pvs=pvs, rate_multiplicator=1)
#daq = BSAcquisition .... TBI
#daqPV = PVAcquisition(instrument, pgroup, default_channels=live_channels)
scan = Scanner(default_acquisitions=[daq], condition=check_intensity)