added some example config files, cleaned up things a bit

This commit is contained in:
2019-12-02 16:14:10 +00:00
parent e2f667e085
commit ff253408af
5 changed files with 379 additions and 168 deletions

View File

@ -5,21 +5,21 @@ from slic.daq import BS, DIA, Scanner
from slic.utils import Channels, Config, Elog, Screenshot from slic.utils import Channels, Config, Elog, Screenshot
from slic.checkers import PVChecker from slic.checkers import PVChecker
from slic.devices.device import Device
from alvra_devices import * from alvra_devices import *
from alvra_adhoc import * from alvra_adhoc import *
cfg = Config("/sf/alvra/config/exp/current_experiment.json") #fn_cfg = "/sf/alvra/config/exp/current_experiment.json"
fn_cfg = "./slickits/alvra/config.json"
cfg = Config(fn_cfg)
elog = Elog(cfg.elog_url, cfg.user, cfg.screenshot_directory) elog = Elog(cfg.elog_url, cfg.screenshot_directory, user=cfg.user, password="supercorrect") #TODO: remove fake password
screenshot = Screenshot(cfg.screenshot_directory) screenshot = Screenshot(cfg.screenshot_directory)
check_intensity = PVChecker("SARFE10-PBPG050:HAMP-INTENSITY-CAL", vmin=100, vmax=300, wait_time=3) check_intensity = PVChecker("SARFE10-PBPG050:HAMP-INTENSITY-CAL", vmin=100, vmax=300, wait_time=3)
bsdaqJF = DIA( bsdaqJF = DIA(#TODO: gain and pedestal?
api_address="http://sf-daq-alvra:10000", api_address="http://sf-daq-alvra:10000",
jf_name="JF_4.5M", jf_name="JF_4.5M",
pgroup=cfg.pgroup pgroup=cfg.pgroup
@ -30,22 +30,28 @@ scansJF = Scanner(
scan_info_dir="/sf/alvra/data/{}/res/scan_info".format(cfg.pgroup), scan_info_dir="/sf/alvra/data/{}/res/scan_info".format(cfg.pgroup),
default_counters=[bsdaqJF], default_counters=[bsdaqJF],
checker=check_intensity, checker=check_intensity,
scan_directories=True, scan_directories=True
) )
channels = Channels("/sf/alvra/config/com/channel_lists/default_channel_list") #fn_channels = "/sf/alvra/config/com/channel_lists/default_channel_list"
fn_channels = "./slickits/alvra/channel_list"
channels = Channels(fn_channels)
bsdaq = BS(channels, default_file_path="???") bsdaq = BS(channels, default_file_path="???")
scansBSreadLocal = Scanner( scansBSreadLocal = Scanner(
data_base_dir="/sf/alvra/config/com/data/scan_data", data_base_dir="/sf/alvra/data/{}/res/scan_data".format(cfg.pgroup),
scan_info_dir="/sf/alvra/config/com/data/scan_info", scan_info_dir="/sf/alvra/data/{}/res/scan_info".format(cfg.pgroup),
default_counters=[bsdaq], default_counters=[bsdaq],
scan_directories=True
) )
#TODO: just some generic examples:
from slic.devices.device import Device
shut_und = Device( shut_und = Device(
"SARFE10-OPSH044", "SARFE10-OPSH044",
description="Photon shutter after Undulator" description="Photon shutter after Undulator"
@ -62,14 +68,3 @@ print(pbps_und)

View File

@ -5,3 +5,18 @@ class LXT:
lxt = LXT() lxt = LXT()
from slic.devices.xoptics.dcm import AlvraDCM_FEL
monoFEL = AlvraDCM_FEL("SAROP11-ODCM105")
from slic.devices.general.smaract import SmarActRecord
laser_pitch = SmarActRecord("SARES11-XICM125:ROX1")
laser_trans = SmarActRecord("SARES11-XICM125:TRX1")
laser_yaw = SmarActRecord("SARES11-XICM125:ROY1")
microscope_pitch = SmarActRecord("SARES11-XMI125:ROY1")
microscope_yaw = SmarActRecord("SARES11-XMI125:ROZ1")

View File

@ -7,17 +7,27 @@ phaseShifter = sd.general.alvra_timing.PhaseShifterAramis(
description="Experiment laser phase shifter (Globi)" description="Experiment laser phase shifter (Globi)"
) )
flexTable = sd.endstations.alvra_flex.table(
"SARES12-XOTA128",
z_undulator=129,
description="Flex optical table"
)
prism = sd.general.smaract.SmarActStage( prism = sd.general.smaract.SmarActStage(
gonio="SARES11-CMOV-SMA691110", dict(
trans="SARES11-CMOV-SMA691111", gonio="SARES11-CMOV-SMA691110",
rotat="SARES11-CMOV-SMA691112", trans="SARES11-CMOV-SMA691111",
rotat="SARES11-CMOV-SMA691112"
),
z_undulator=127, z_undulator=127,
description="Prime laser prism" description="Prime laser prism"
) )
xmic = sd.general.smaract.SmarActStage( xmic = sd.general.smaract.SmarActStage(
gonio="SARES11-CMOV-SMA691113", dict(
rotat="SARES11-CMOV-SMA691114", gonio="SARES11-CMOV-SMA691113",
rotat="SARES11-CMOV-SMA691114"
),
z_undulator=127, z_undulator=127,
description="Prime microscope mirror" description="Prime microscope mirror"
) )
@ -52,171 +62,171 @@ primeCryTrans = sd.endstations.alvra_prime.VonHamosBragg(
description="Prime von Hamos X-trans (Bragg)" description="Prime von Hamos X-trans (Bragg)"
) )
#laser = sd.loptics.alvra_experiment.Laser_Exp( laser = sd.loptics.alvra_experiment.Laser_Exp(
# "SLAAR11-LMOT", "SLAAR11-LMOT",
# z_undulator=122, z_undulator=122,
# description="Experiment laser hardware" description="Experiment laser hardware"
)
laserShutter = sd.loptics.alvra_laser_shutter.laser_shutter(
"SLAAR11-LDIO-LAS6891",
z_undulator=122,
description="Laser Shutter"
)
pbpsOpt = sd.xdiagnostics.intensity_monitors.SolidTargetDetectorPBPS(
"SAROP11-PBPS117",
VME_crate="SAROP11-CVME-PBPS1",
link=9,
description="Intensity/position monitor after Optics hutch (PBPS)"
)
pbpsAtt = sd.xdiagnostics.intensity_monitors.SolidTargetDetectorPBPS(
"SAROP11-PBPS122",
VME_crate="SAROP11-CVME-PBPS1",
link=9,
description="Intensity/Position monitor after Attenuator"
)
screenFE = sd.xdiagnostics.profile_monitors.Pprm(
"SARFE10-PPRM053",
description="Profile monitor after single-shot spectrometer (PPRM)"
)
screenOP = sd.xdiagnostics.profile_monitors.Pprm(
"SARFE10-PPRM064",
description="Profile monitor after Front End"
)
screenMirrAlv1 = sd.xdiagnostics.profile_monitors.Pprm(
"SAROP11-PPRM066",
description="Profile monitor after Alvra Mirror 1 (PPRM)"
)
screenMirrAlv2 = sd.xdiagnostics.profile_monitors.Pprm(
"SAROP11-PPRM078",
description="Profile monitor after Alvra Mirror 2 (PPRM)"
)
screenMirrorV2 = sd.xdiagnostics.profile_monitors.Pprm(
"SAROP11-PPRM110",
description="Profile monitor after Vertical Mirror 2 (PPRM)"
)
screenOPEnd = sd.xdiagnostics.profile_monitors.Pprm(
"SAROP11-PPRM117",
description="Profile monitor after Optics hutch (PPRM)"
)
screenAtt = sd.xdiagnostics.profile_monitors.Pprm(
"SAROP11-PPRM122",
description="Profile monitor after Attenuator"
)
kbHor = sd.xoptics.kbhor.KBhor(
"SAROP11-OKBH124",
description="Alvra horizontal KB mirror"
)
kbVer = sd.xoptics.kbver.KBver(
"SAROP11-OKBV123",
description="Alvra vertical KB mirror"
)
attFE = sd.xoptics.attenuator_aramis.AttenuatorAramis(
"SARFE10-OATT053",
description="Attenuator in Front End"
)
attExp = sd.xoptics.attenuator_aramis.AttenuatorAramis(
"SAROP11-OATT120",
description="Attenuator Alvra"
)
mono = sd.xoptics.dcm.Double_Crystal_Mono(
"SAROP11-ODCM105",
description="Alvra DCM Monochromator"
)
refLaser = sd.xoptics.reflaser.RefLaser_Aramis(
"SAROP11-OLAS120",
description="Alvra beamline reference laser before KBs (OLAS)"
)
slitSwitch = sd.xoptics.slits.SlitBlades_old(
"SAROP11-OAPU104",
description="Slit in Optics hutch after Photon switchyard and before Alvra mono"
)
slitUnd = sd.xoptics.slits.SlitFourBlades_old(
"SARFE10-OAPU044",
description="Slit after Undulator"
)
slitAttExp = sd.xoptics.slits.SlitPosWidth_old(
"SAROP11-OAPU120",
description="Slits behind attenuator"
)
#shutUnd = sd.???(
# "SARFE10-OPSH044",
# description="Photon shutter after Undulator"
#) #)
#laserShutter = sd.loptics.alvra_laser_shutter.laser_shutter( #gasMon = sd.???(
# "SLAAR11-LTIM01-EVR0", # "SARFE10-PBIG050",
# z_undulator=122, # description="Gas Monitor Intensity (PBIG)"
# description="Laser Shutter"
#) #)
#pbpsOpt = sd.xdiagnostics.intensity_monitors.SolidTargetDetectorPBPS( #pbpsUnd = sd.???(
# "SAROP11-PBPS117", # "SARFE10-PBPS053",
# VME_crate="SAROP11-CVME-PBPS1", # z_undulator=44,
# link=9, # description="Intensity position monitor after Undulator (PBPS)"
# description="Intensity/position monitor after Optics hutch (PBPS)"
#) #)
#pbpsAtt = sd.xdiagnostics.intensity_monitors.SolidTargetDetectorPBPS( #shutFE = sd.???(
# "SAROP11-PBPS122", # "SARFE10-SBST060",
# VME_crate="SAROP11-CVME-PBPS1", # description="Photon shutter in the end of Front End"
# link=9,
# description="Intensity/Position monitor after Attenuator"
#) #)
#screenFE = sd.xdiagnostics.profile_monitors.Pprm( #mirrorAlv1 = sd.???(
# "SARFE10-PPRM053", # "SAROP11-OOMH064",
# description="Profile monitor after single-shot spectrometer (PPRM)" # description="First Alvra Horizontal offset mirror (OMH064)"
#) #)
#screenOP = sd.xdiagnostics.profile_monitors.Pprm( #mirrorAlv2 = sd.???(
# "SARFE10-PPRM064", # "SAROP11-OOMH076",
# description="Profile monitor after Front End" # description="Second Alvra Horizontal offset mirror (OMH076)"
#) #)
#screenMirrAlv1 = sd.xdiagnostics.profile_monitors.Pprm( #mirrorV1 = sd.???(
# "SAROP11-PPRM066", # "SAROP11-OOMV108",
# description="Profile monitor after Alvra Mirror 1 (PPRM)" # description="Alvra Vertical offset Mirror 1 (OMV108)"
#) #)
#screenMirrAlv2 = sd.xdiagnostics.profile_monitors.Pprm( #mirrorV2 = sd.???(
# "SAROP11-PPRM078", # "SAROP11-OOMV109",
# description="Profile monitor after Alvra Mirror 2 (PPRM)" # description="Alvra Vertical offset Mirror 2 (OMV109)"
#) #)
#screenMirrorV2 = sd.xdiagnostics.profile_monitors.Pprm( #pulsePicker = sd.???(
# "SAROP11-PPRM110", # "SAROP11-OPPI110",
# description="Profile monitor after Vertical Mirror 2 (PPRM)" # description="X-ray pulse picker"
#) #)
#screenOPEnd = sd.xdiagnostics.profile_monitors.Pprm( #shutOpt = sd.???(
# "SAROP11-PPRM117", # "SAROP11-SBST114",
# description="Profile monitor after Optics hutch (PPRM)" # description="Shutter after Optics hutch"
#) #)
#screenAtt = sd.xdiagnostics.profile_monitors.Pprm( #DelayPALM = sd.???(
# "SAROP11-PPRM122", # "SAROP11-PALM118",
# description="Profile monitor after Attenuator" # description="Timing diagnostics THz streaking (PALM)"
#) #)
#kbHor = sd.xoptics.KBhor.KBhor( #DelayPSEN = sd.???(
# "SAROP11-OKBH124", # "SAROP11-PSEN119",
# description="Alvra horizontal KB mirror" # description="Timing diagnostics spectral encoding (PSEN)"
#) #)
#kbVer = sd.xoptics.KBver.KBver(
# "SAROP11-OKBV123",
# description="Alvra vertical KB mirror"
#)
#attFE = sd.xoptics.attenuator_aramis.AttenuatorAramis(
# "SARFE10-OATT053",
# description="Attenuator in Front End"
#)
#attExp = sd.xoptics.attenuator_aramis.AttenuatorAramis(
# "SAROP11-OATT120",
# description="Attenuator Alvra"
#)
#mono = sd.xoptics.dcm.Double_Crystal_Mono(
# "SAROP11-ODCM105",
# description="Alvra DCM Monochromator"
#)
#refLaser = sd.xoptics.reflaser.RefLaser_Aramis(
# "SAROP11-OLAS120",
# description="Alvra beamline reference laser before KBs (OLAS)"
#)
#slitSwitch = sd.xoptics.slits.SlitBlades_old(
# "SAROP11-OAPU104",
# description="Slit in Optics hutch after Photon switchyard and before Alvra mono"
#)
#slitUnd = sd.xoptics.slits.SlitFourBlades_old(
# "SARFE10-OAPU044",
# description="Slit after Undulator"
#)
#slitAttExp = sd.xoptics.slits.SlitPosWidth_old(
# "SAROP11-OAPU120",
# description="Slits behind attenuator"
#)
##shutUnd = sd.???(
## "SARFE10-OPSH044",
## description="Photon shutter after Undulator"
##)
##gasMon = sd.???(
## "SARFE10-PBIG050",
## description="Gas Monitor Intensity (PBIG)"
##)
##pbpsUnd = sd.???(
## "SARFE10-PBPS053",
## z_undulator=44,
## description="Intensity position monitor after Undulator (PBPS)"
##)
##shutFE = sd.???(
## "SARFE10-SBST060",
## description="Photon shutter in the end of Front End"
##)
##mirrorAlv1 = sd.???(
## "SAROP11-OOMH064",
## description="First Alvra Horizontal offset mirror (OMH064)"
##)
##mirrorAlv2 = sd.???(
## "SAROP11-OOMH076",
## description="Second Alvra Horizontal offset mirror (OMH076)"
##)
##mirrorV1 = sd.???(
## "SAROP11-OOMV108",
## description="Alvra Vertical offset Mirror 1 (OMV108)"
##)
##mirrorV2 = sd.???(
## "SAROP11-OOMV109",
## description="Alvra Vertical offset Mirror 2 (OMV109)"
##)
##pulsePicker = sd.???(
## "SAROP11-OPPI110",
## description="X-ray pulse picker"
##)
##shutOpt = sd.???(
## "SAROP11-SBST114",
## description="Shutter after Optics hutch"
##)
##DelayPALM = sd.???(
## "SAROP11-PALM118",
## description="Timing diagnostics THz streaking (PALM)"
##)
##DelayPSEN = sd.???(
## "SAROP11-PSEN119",
## description="Timing diagnostics spectral encoding (PSEN)"
##)

182
channel_list Normal file
View File

@ -0,0 +1,182 @@
##### WARNING: DUPLICATE ENTRIES BREAK BEAM SYNCHRONOUS DATA ACQUISITION #####
# fresh list of channels working 15.2.2019 - CJM
## edited list of channels to try to reduce time taken to retrieve BS data - 2.11.2019 CJM
# note that according to Dima there is a limit of 100 BS channels in this file
# otherwise bs writer on the server crashes, there are currently 93 channels in this list
# that aren't commented out
SLAAR11-LTIM01-EVR0:DUMMY_PV10_NBS
SLAAR11-LTIM01-EVR0:DUMMY_PV1_NBS
SLAAR11-LTIM01-EVR0:DUMMY_PV2_NBS
SLAAR11-LTIM01-EVR0:DUMMY_PV3_NBS
SLAAR11-LTIM01-EVR0:DUMMY_PV4_NBS
SLAAR11-LTIM01-EVR0:DUMMY_PV5_NBS
SLAAR11-LTIM01-EVR0:DUMMY_PV6_NBS
SLAAR11-LTIM01-EVR0:DUMMY_PV7_NBS
SLAAR11-LTIM01-EVR0:DUMMY_PV8_NBS
SLAAR11-LTIM01-EVR0:DUMMY_PV9_NBS
# PSSS channels, including the new extracted values
# updated from Tine 23.8.2019
#SARFE10-PSSS059:FPICTURE
##SARFE10-PSSS059:SPECTRUM_CENTER
##SARFE10-PSSS059:SPECTRUM_FWHM
##SARFE10-PSSS059:SPECTRUM_X
##SARFE10-PSSS059:SPECTRUM_Y
# Laser IOxOS
SLAAR11-LSCP1-FNS:CH0:VAL_GET
##SLAAR11-LSCP1-FNS:CH1:VAL_GET
SLAAR11-LSCP1-FNS:CH2:VAL_GET
##SLAAR11-LSCP1-FNS:CH3:VAL_GET
SLAAR11-LSCP1-FNS:CH4:VAL_GET
##SLAAR11-LSCP1-FNS:CH5:VAL_GET
##SLAAR11-LSCP1-FNS:CH6:VAL_GET
##SLAAR11-LSCP1-FNS:CH7:VAL_GET
# Prime Keysight
##SARES11-GES1:BUFF_BS_INT
##SARES11-GES1:BUFF_WFM_CTR
##SARES11-GES1:CH1_BUFFER
##SARES11-GES1:CH1_VAL_GET
##SARES11-GES1:CH2_BUFFER
##SARES11-GES1:CH2_VAL_GET
#SARCL01-DBPM150:X1-RT
#SARCL01-DBPM060:X1-RT
#SARMA01-DBPM100:Q1-RT
#SARCL02-DBPM110:X1-RT
# arrival time BAM in ps
S10BC01-DBAM070:EOM1_T1
# Phil's Empire of delay lines bwahahahahah
# Topas pump delay
SLAAR11-LMOT-M451:ENC_1_BS
# Global Globi
SLAAR11-LMOT-M452:ENC_1_BS
# Harmonics pump delay (800 nm#)
##SLAAR11-LMOT-M453:ENC_1_BS
# Edwin CALC channels running on Laser IOxOS
##SLAAR11-LTIM01-EVR0:CALCI
##SLAAR11-LTIM01-EVR0:CALCX
##SLAAR11-LTIM01-EVR0:CALCY
##SLAAR11-LTIM01-EVR0:CALCS
# PALM Keysight
SAROP11-PALMK118:BUFF_BS_INT
SAROP11-PALMK118:BUFF_WFM_CTR
SAROP11-PALMK118:CH1_BUFFER
SAROP11-PALMK118:CH1_VAL_GET
SAROP11-PALMK118:CH2_BUFFER
SAROP11-PALMK118:CH2_VAL_GET
# and additional PALM calc channels
SAROP11-PALMK118:ANALYSIS_PALM_DEL
SAROP11-PALMK118:ANALYSIS_PALM_DT
##SARCL02-DBPM220:X1
##SARCL02-DBPM260:X1
##SARCL02-DBPM330:X1
##SARCL02-DBPM470:X1
##SARBD02-DBPM010:T1
##SARBD02-DBPM040:T1
##SARBD01-DBPM040:T1
# Gas monitor
# these two are in the bs channels as of today 6.9.2019
##SARFE10-PBPG050:HAMP-INTENSITY-AVG
##SARFE10-PBPG050:HAMP-INTENSITY-CAL
# FE electronics channels (PBPS117)
SAROP11-CVME-PBPS2:Lnk9Ch12-DATA-CALIBRATED
SAROP11-CVME-PBPS2:Lnk9Ch13-DATA-CALIBRATED
SAROP11-CVME-PBPS2:Lnk9Ch14-DATA-CALIBRATED
SAROP11-CVME-PBPS2:Lnk9Ch15-DATA-CALIBRATED
SAROP11-CVME-PBPS2:Lnk9Ch12-DATA-SUM
SAROP11-CVME-PBPS2:Lnk9Ch13-DATA-SUM
SAROP11-CVME-PBPS2:Lnk9Ch14-DATA-SUM
SAROP11-CVME-PBPS2:Lnk9Ch15-DATA-SUM
SAROP11-PBPS117:XPOS
SAROP11-PBPS117:YPOS
SAROP11-PBPS117:INTENSITY
# FE electronics channels (PBPS122)
##SAROP11-CVME-PBPS1:Lnk9Ch3-DATA-CALIBRATED
##SAROP11-CVME-PBPS1:Lnk9Ch3-DATA-SUM
##SAROP11-CVME-PBPS1:Lnk9Ch4-DATA-CALIBRATED
##SAROP11-CVME-PBPS1:Lnk9Ch4-DATA-SUM
##SAROP11-CVME-PBPS1:Lnk9Ch5-DATA-CALIBRATED
##SAROP11-CVME-PBPS1:Lnk9Ch5-DATA-SUM
##SAROP11-CVME-PBPS1:Lnk9Ch7-DATA-CALIBRATED
##SAROP11-CVME-PBPS1:Lnk9Ch7-DATA-SUM
##SAROP11-PBPS122:XPOS
##SAROP11-PBPS122:YPOS
##SAROP11-PBPS122:INTENSITY
#ESA IOxOS
##SARES11-LSCP10-FNS:CH0:VAL_GET
##SARES11-LSCP10-FNS:CH1:VAL_GET
##SARES11-LSCP10-FNS:CH2:VAL_GET
##SARES11-LSCP10-FNS:CH3:VAL_GET
##SARES11-LSCP10-FNS:CH4:VAL_GET
##SARES11-LSCP10-FNS:CH5:VAL_GET
##SARES11-LSCP10-FNS:CH6:VAL_GET
##SARES11-LSCP10-FNS:CH7:VAL_GET
# Event code mask
SAR-CVME-TIFALL5:EvtSet
SAR-CVME-TIFALL4:EvtSet
# PCO edge camera for spatial TT
#SARES20-CAMS142-M4:FPICTURE
## BS channels for Prime Huber XYZ encoders
## added 25.7.2019 - CJM
SARES11-XSAM125:ENC_X1_BS
SARES11-XSAM125:ENC_Y1_BS
SARES11-XSAM125:ENC_Z1_BS
## Flex - currently not connected
#SARES12-XSAM128:ENC_X1_BS
#SARES12-XSAM128:ENC_Y1_BS
#SARES12-XSAM128:ENC_Z1_BS
# add some cameras for testing the microscope LCP viewing ability:
# microscope
#
##SARES11-XMI125-C4P1:FPICTURE
# YAG
#SARES11-XPR125-C4P2:FPICTURE
# Edwin test setup with flushing numbers
#SLAAR11-LCAM-C452:FPICTURE
# testing for Goran
SARCL01-DBPM060:Q1-RT
SARCL01-DBPM060:Q1-VALID-RT
SARCL01-DBPM060:X1-RT
SARCL01-DBPM060:X1-VALID-RT
SARCL01-DBPM060:Y1-RT
SARCL01-DBPM060:Y1-VALID-RT
SARCL01-DBPM150:Q1-RT
SARCL01-DBPM150:Q1-VALID-RT
SARCL01-DBPM150:X1-RT
SARCL01-DBPM150:X1-VALID-RT
SARCL01-DBPM150:Y1-RT
SARCL01-DBPM150:Y1-VALID-RT
SARCL02-DBPM110:Q1-RT
SARCL02-DBPM110:Q1-VALID-RT
SARCL02-DBPM110:X1-RT
SARCL02-DBPM110:X1-VALID-RT
SARCL02-DBPM110:Y1-RT
SARCL02-DBPM110:Y1-VALID-RT
SARMA01-DBPM100:Q1-RT
SARMA01-DBPM100:Q1-VALID-RT
SARMA01-DBPM100:X1-RT
SARMA01-DBPM100:X1-VALID-RT
SARMA01-DBPM100:Y1-RT
SARMA01-DBPM100:Y1-VALID-RT

9
config.json Normal file
View File

@ -0,0 +1,9 @@
{
"elog_url": "https://elog-gfa.psi.ch/Alvra",
"user": "gac-alvra",
"screenshot_directory": "/sf/alvra/config/screenshots",
"pgroup": "p17983"
}