207 lines
6.3 KiB
Python
207 lines
6.3 KiB
Python
#!/usr/bin/env python
|
|
|
|
from slic.core.acquisition import SFAcquisition
|
|
from slic.core.acquisition import PVAcquisition
|
|
#from slic.core.acquisition import FakeAcquisition
|
|
from slic.core.adjustable import PVAdjustable, DummyAdjustable
|
|
from slic.core.condition import PVCondition
|
|
from slic.core.scanner import Scanner
|
|
from slic.devices.general.delay_stage import DelayStage
|
|
from slic.devices.general.motor import Motor
|
|
from slic.devices.general.smaract import SmarActAxis
|
|
from slic.gui import GUI
|
|
from slic.utils import devices
|
|
from slic.devices.simpledevice import SimpleDevice
|
|
from slic.utils import as_shortcut, Marker
|
|
|
|
from undulator import Undulators
|
|
from undulator import Mono
|
|
from undulator import Coupled_MonoUnd
|
|
|
|
|
|
from tth import Coupled_tth
|
|
from tth import LakeShore
|
|
|
|
from qspace import QSpace3D
|
|
from qspace import Wavelength
|
|
from qspace import HistoryDummy
|
|
|
|
from constraints import ExtraConstraint
|
|
|
|
dummy = DummyAdjustable(units="au")
|
|
|
|
#mot_x = Motor("SATES30-RETRO:MOT_X", name="Retro X")
|
|
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")
|
|
|
|
|
|
#mono_slits = PVAdjustable("SATOP11-OSGM087:EXITSLIT",pvname_done_moving="SATOP31-OEXS132:MOT_H.DMOV", name = "Mono_Slits" )
|
|
|
|
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
|
|
|
|
und = Undulators(n_unds, n_und_ref, chic_fudge_offset, name="z Athos Undulators")
|
|
#und = Undulators(name="Undulators")
|
|
|
|
mono_name = "Athos_mono"
|
|
pv_mono_name="SATOP11-OSGM087"
|
|
|
|
#Mon = PVAdjustable("SATOP11-OSGM087:SetEnergy", pvname_done_moving="SATOP11-OSGM087:MOVING", name="MONO")
|
|
Mon = Mono(pv_mono_name=pv_mono_name, mono_name=mono_name)
|
|
MonUnd = Coupled_MonoUnd(
|
|
n_unds, n_und_ref, chic_fudge_offset, unds_name="z Athos Undulators",
|
|
pv_mono_name=pv_mono_name, mono_name=mono_name, delta=Mon2Unds_offset,
|
|
name="Mono+Und"
|
|
)
|
|
|
|
tth_scan = Coupled_tth(delta=0.3885, name="theta 2theta")
|
|
|
|
lakeshore = PVAdjustable("SATES30-LS336:LOOP1_SP", "SATES30-LS336:A_RBV", accuracy=0.25, name="Lakeshore Temp")
|
|
|
|
|
|
|
|
|
|
#lakeshore = LakeShore(name="Temperature")
|
|
|
|
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")
|
|
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")
|
|
|
|
|
|
|
|
PICO_X1 = PVAdjustable("SLAAT31-LMNP-PICO11:DRIVE", name="PICO X1")
|
|
PICO_Y1 = PVAdjustable("SLAAT31-LMNP-PICO12:DRIVE", name="PICO Y1")
|
|
|
|
|
|
|
|
|
|
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"
|
|
]
|
|
|
|
|
|
|
|
instrument = "furka"
|
|
pgroup = "p19735" #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)
|
|
|
|
daq = SFAcquisition(instrument, pgroup, default_channels=channels, default_pvs=pvs, rate_multiplicator=1)
|
|
#daq = FakeAcquisition(instrument, pgroup, default_channels=channels, default_pvs=pvs, rate_multiplicator=1)
|
|
|
|
#daqPV = PVAcquisition(instrument, pgroup, default_channels=live_channels)
|
|
scan = Scanner(default_acquisitions=[daq], condition=check_intensity)
|
|
|
|
gui = GUI(scan, show_goto=True, show_spec=True, show_run=True)
|
|
|
|
|
|
#scanPV = Scanner(default_acquisitions=[daqPV], condition=check_intensity)
|
|
|
|
|
|
'''
|
|
Button that runs a function
|
|
'''
|
|
@as_shortcut
|
|
def test():
|
|
print("test")
|
|
# use marker() to go to a marker position
|
|
|
|
'''
|
|
Single marker
|
|
'''
|
|
m1 = Marker(dummy,value=25,name='Normal IN')
|
|
|
|
|
|
|
|
print("To start the GUI, run: gui()")
|
|
|
|
|
|
|