Files
maloja/maloja.py

129 lines
4.0 KiB
Python

#!/usr/bin/env python
from slic.gui import GUI
from slic.core.adjustable import PVAdjustable, DummyAdjustable
from slic.core.acquisition import SFAcquisition
from slic.core.condition import PVCondition
from slic.core.scanner import Scanner
from slic.devices.general.motor import Motor
from slic.devices.general.delay_stage import DelayStage
from slic.devices.general.smaract import SmarActAxis
from slic.utils import devices, Marker, as_shortcut
#from slic.utils import Channels, Config, Elog, Screenshot, PV
#from slic.core.acquisition.fakeacquisition import FakeAcquisition
from devices.attenuator import Attenuator
from devices.undulator import Undulators
from devices.magnet import Magnet
dummy = DummyAdjustable(units="au")
magnet = Magnet()
jet_delay = PVAdjustable("SATES20-CVME-EVR0:Pul6-Delay-SP", "SATES20-CVME-EVR0:Pul6-Delay-RB", accuracy=1, name="Jet Delay")
waveplate = Motor("SLAAT21-LMOT-M702:MOT", name="Laser Waveplate")
exp_delay = Motor("SLAAT21-LMOT-M704:MOT", name="PP delay chamber 3")
laser_delay = DelayStage("SLAAT21-LMOT-M708:MOT", name="Laser Delay")
lxt = PVAdjustable("SLAAT01-LTIM-PDLY:DELAY", pvname_done_moving="SLAAT01-LTIM-PDLY:WAITING", name="LXT")
source_y = Motor("SATES20-MANIP1:MOTOR_1", name="Source manipulator y")
source_x = Motor("SATES20-MANIP1:MOTOR_2", name="Source manipulator x")
att = Attenuator("SATFE10-OATT064")
n_und_cal = 6
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
und = Undulators(n_unds, n_und_cal, chic_fudge_offset, name="z Athos Undulators")
xota_z_trans = Motor("SATES21-XOTA166:W_Z", name="Table 1: Z coordinated")
#xota_hori_z = Motor("SATES21-XOTA166:MOTOR_Z", name="Table 1: Z raw")
mot1_x = SmarActAxis("SATES21-XSMA166:MOT4", name="Table 1: sma X")
mot1_y = SmarActAxis("SATES21-XSMA166:MOT5", name="Table 1: sma Y")
mot1_z = SmarActAxis("SATES21-XSMA166:MOT6", name="Table 1: sma Z")
mot3_z = SmarActAxis("SATES23-XSMA169:MOT3", name="Table 3: sma Z")
# "SLAAR11-LTIM01-EVR0:DUMMY_PV5_NBS",
channels_nbs = [f"SATES20-CVME-EVR0:DUMMY_PV{i+1}_NBS" for i in range(10)]
channels_inten = [
"SATFE10-PEPG046:FCUP-INTENSITY-CAL",
"SATFE10-PEPG046-EVR0:CALCI",
"SATFE10-PEPG046-EVR0:CALCS",
"SATFE10-PEPG046-EVR0:CALCT",
"SATFE10-PEPG046-EVR0:CALCX",
"SATFE10-PEPG046-EVR0:CALCY",
"SATFE10-PEPG046:FCUP-INTENSITY-AVG",
"SATFE10-PEPG046:FCUP-INTENSITY-CAL",
]
# CH 0-3 farday cup / 4&5 multipliers
channels_inten += [f"SATFE10-LSCP1:CH{n}:1" for n in range(6)]
channels_ks = [
"SATES21-GES1:A1_VALUES", #SATES21-GES1:TD_VALUES.VALZ
# "SATES21-GES1:A2_VALUES",
# "SATES21-GES1:A3_VALUES",
# "SATES21-GES1:A4_VALUES",
]
channels_cam = [
"SATES21-CAMS154-M1:FPICTURE",
"SATES24-CAMS161-M1:FPICTURE",
]
channels_giges = [
# "SATES21-CAMS154-GIGE3:FPICTURE",
]
#channels = channels_nbs + channels_inten + channels_ks + channels_cam
channels = channels_nbs + channels_inten + channels_ks + channels_giges + channels_cam
#channels = channels_nbs + channels_inten + channels_ks
pvs = [
"SATFE10-PEPG046:PHOTON-ENERGY-PER-PULSE-AVG",
]
pvs += [f"SATES20-CVME-EVR0:DUMMY_PV{i+1}_NBS.INP" for i in range(10)]
pvs += [f"SATUN{i:02}-UIND030:FELPHOTENE" for i in range(6, 22+1) if i != 14]
detectors = [
# "JF15T08V01"
]
instrument = "maloja"
#pgroup = "p18493" # commissioning june 2020
#pgroup = "p18722" # commissioning sept 2020
#pgroup = "p18863" # JF commissioning april 2021
#pgroup = "p19241" # two colors
#pgroup = "p19342" # XMCD
#pgroup = "p19343" # slic dev
pgroup = "p19373" # laser
daq = SFAcquisition(instrument, pgroup, default_channels=channels, default_pvs=pvs, default_detectors=detectors, rate_multiplicator=1)
#daq = FakeAcquisition(instrument, pgroup)
check_intensity = PVCondition("SATBD01-DBPM060:Q2", vmin=5, vmax=None, wait_time=3, required_fraction=0.8)
#check_intensity = None
scan = Scanner(scan_info_dir=f"/sf/{instrument}/data/{pgroup}/res/scan_info", default_acquisitions=[daq], condition=check_intensity)
gui = GUI(scan, show_goto=True)