before MX beamtime October 2024
This commit is contained in:
@ -9,8 +9,10 @@ from slic.core.acquisition.detcfg import DetectorConfig
|
||||
|
||||
# TODO: JF settings regarding raw conversion, compression, etc.
|
||||
detectors = [
|
||||
"JF16T03V01",
|
||||
"JF16T03V02",
|
||||
# "JF16T03V01",
|
||||
# "JF17T16V01",
|
||||
"JF20T01V01",
|
||||
]
|
||||
|
||||
# ALLOWED_PARAMS = dict(
|
||||
@ -160,6 +162,7 @@ channels_Xeye = ["SARES30-CAMS156-XE:intensity",
|
||||
"SARES30-CAMS156-XE:y_fwhm",
|
||||
"SARES30-CAMS156-XE:y_profile",
|
||||
"SARES30-CAMS156-XE:y_rms",
|
||||
# "SARES30-CAMS156-XE:FPICTURE",
|
||||
]
|
||||
|
||||
######################
|
||||
@ -207,15 +210,49 @@ channels_PSSS059_LB = [
|
||||
###################################
|
||||
## Bernina channels
|
||||
# Beam position monitor PBPS113
|
||||
channels_Bernina = [
|
||||
#channels_Bernina = [
|
||||
# "SAROP21-PBPS103:INTENSITY",
|
||||
# "SAROP21-PBPS103:XPOS",
|
||||
# "SAROP21-PBPS103:YPOS",
|
||||
# #"SAROP21-PPRM113:FPICTURE",
|
||||
# "SAROP21-PPRM113:intensity",
|
||||
# "SAROP21-PPRM113:x_fit_mean",
|
||||
# "SAROP21-PPRM113:y_fit_mean",
|
||||
#]
|
||||
|
||||
channels_PBPS113_bernina = [
|
||||
"SAROP21-PBPS103:INTENSITY",
|
||||
"SAROP21-PBPS103:INTENSITY_UJ",
|
||||
"SAROP21-PBPS103:Lnk9Ch0-PP_VAL_PD0",
|
||||
"SAROP21-PBPS103:Lnk9Ch0-PP_VAL_PD1",
|
||||
"SAROP21-PBPS103:Lnk9Ch0-PP_VAL_PD2",
|
||||
"SAROP21-PBPS103:Lnk9Ch0-PP_VAL_PD3",
|
||||
"SAROP21-PBPS103:XPOS",
|
||||
"SAROP21-PBPS103:YPOS",
|
||||
#"SAROP21-PPRM113:FPICTURE",
|
||||
"SAROP21-PPRM113:intensity",
|
||||
"SAROP21-PPRM113:x_fit_mean",
|
||||
"SAROP21-PPRM113:y_fit_mean",
|
||||
]
|
||||
|
||||
channels_PPRM113_bernina = [
|
||||
"SAROP21-PPRM113:intensity",
|
||||
"SAROP21-PPRM113:x_center_of_mass",
|
||||
"SAROP21-PPRM113:x_fit_amplitude",
|
||||
"SAROP21-PPRM113:x_fit_mean",
|
||||
"SAROP21-PPRM113:x_fit_offset",
|
||||
"SAROP21-PPRM113:x_fit_standard_deviation",
|
||||
"SAROP21-PPRM113:x_fwhm",
|
||||
"SAROP21-PPRM113:x_profile",
|
||||
"SAROP21-PPRM113:x_rms",
|
||||
"SAROP21-PPRM113:y_center_of_mass",
|
||||
"SAROP21-PPRM113:y_fit_amplitude",
|
||||
"SAROP21-PPRM113:y_fit_mean",
|
||||
"SAROP21-PPRM113:y_fit_offset",
|
||||
"SAROP21-PPRM113:y_fit_standard_deviation",
|
||||
"SAROP21-PPRM113:y_fwhm",
|
||||
"SAROP21-PPRM113:y_profile",
|
||||
"SAROP21-PPRM113:y_rms",
|
||||
# "SAROP31-PPRM113:FPICTURE", # full pictures for debugging purposes at the moment, from _ib process
|
||||
]
|
||||
|
||||
|
||||
###################################
|
||||
# Beam position monitor PBPS113
|
||||
channels_PBPS113 = [
|
||||
@ -360,3 +397,12 @@ bs_channels = (
|
||||
+ channels_other
|
||||
)
|
||||
|
||||
bs_channels_bernina_DCM = (
|
||||
channels_gas_monitor
|
||||
# + channels_RF
|
||||
+ channels_PBPS053
|
||||
+ channels_PSSS059
|
||||
+ channels_PSSS059_LB
|
||||
+ channels_PBPS113_bernina
|
||||
# + channels_PPRM113_bernina
|
||||
)
|
||||
|
@ -193,9 +193,84 @@ pvs_PPRM053 = [
|
||||
|
||||
###################
|
||||
# Bernina mono
|
||||
pvs_Bernina = [
|
||||
#pvs_Bernina = [
|
||||
# "SAROP21-ARAMIS:ENERGY_SP",
|
||||
# "SAROP21-ARAMIS:ENERGY",
|
||||
# "SAROP21-PBPS103:MOTOR_X1.DRBV",
|
||||
# "SAROP21-PBPS103:MOTOR_Y1.DRBV",
|
||||
# "SAROP21-PBPS103:MOTOR_X1.RBV",
|
||||
# "SAROP21-PBPS103:MOTOR_Y1.RBV",
|
||||
# "SAROP21-PBPS103:MOTOR_PROBE.RBV",
|
||||
# "SAROP21-PPRM113:MOTOR_PROBE.RBV"
|
||||
#]
|
||||
pvs_photon_energy_bernina = [
|
||||
"SAROP21-ARAMIS:ENERGY_SP",
|
||||
"SAROP21-ARAMIS:ENERGY",
|
||||
]
|
||||
|
||||
pvs_OAPU092_bernina = [
|
||||
"SAROP21-OAPU044:MOTOR_X.RBV",
|
||||
"SAROP21-OAPU044:MOTOR_Y.RBV",
|
||||
"SAROP21-OAPU044:MOTOR_W.RBV",
|
||||
"SAROP21-OAPU044:MOTOR_H.RBV",
|
||||
]
|
||||
|
||||
pvs_OOMV092_bernina = [
|
||||
"SAROP21-OOMV092:W_X.RBV",
|
||||
"SAROP21-OOMV092:W_Y.RBV",
|
||||
"SAROP21-OOMV092:W_RX.RBV",
|
||||
"SAROP21-OOMV092:W_RZ.RBV",
|
||||
"SAROP21-OOMV092:BU.RBV",
|
||||
"SAROP21-OOMV092:BD.RBV",
|
||||
"SAROP21-OOMV092:VS1.RBV",
|
||||
"SAROP21-OOMV092:VS2.RBV",
|
||||
"SAROP21-OOMV092:VS3.RBV",
|
||||
"SAROP21-OOMV092:TX.RBV",
|
||||
]
|
||||
|
||||
pvs_PPRM094_bernina = [
|
||||
"SAROP21-PPRM113:MOTOR_PROBE",
|
||||
#"SAROP21-PPRM113:FPICTURE",
|
||||
]
|
||||
|
||||
pvs_OOMV096_bernina = [
|
||||
"SAROP21-OOMV096:W_X.RBV",
|
||||
"SAROP21-OOMV096:W_Y.RBV",
|
||||
"SAROP21-OOMV096:W_RX.RBV",
|
||||
"SAROP21-OOMV096:W_RZ.RBV",
|
||||
"SAROP21-OOMV096:BU.RBV",
|
||||
"SAROP21-OOMV096:BD.RBV",
|
||||
"SAROP21-OOMV096:VS1.RBV",
|
||||
"SAROP21-OOMV096:VS2.RBV",
|
||||
"SAROP21-OOMV096:VS3.RBV",
|
||||
"SAROP21-OOMV096:TX.RBV",
|
||||
]
|
||||
|
||||
pvs_PSCR097_bernina = [
|
||||
"SAROP21-PSCR097:MOTOR_Y1.RBV",
|
||||
]
|
||||
|
||||
pvs_ODCM098_bernina = [
|
||||
"SAROP21-ODCM098:RX12.RBV", # BRAGG
|
||||
"SAROP21-ODCM098:TX12.RBV", # Horizontal
|
||||
"SAROP21-ODCM098:T2.RBV", # Crystal gap T2
|
||||
"SAROP21-ODCM098:RZ1.RBV", # 1st xtal roll
|
||||
"SAROP21-ODCM098:RZ2.RBV", # 2nd xtal roll
|
||||
"SAROP21-ODCM098:RX2.RBV", # 2nd xtal pitch
|
||||
]
|
||||
|
||||
pvs_OAPU102_bernina = [
|
||||
"SAROP21-OAPU092:MOTOR_X.RBV",
|
||||
"SAROP21-OAPU092:MOTOR_Y.RBV",
|
||||
"SAROP21-OAPU092:MOTOR_W.RBV",
|
||||
"SAROP21-OAPU092:MOTOR_H.RBV",
|
||||
]
|
||||
|
||||
pvs_PSRD103_bernina = [
|
||||
"SAROP21-PSRD103:MOTOR_PROBE",
|
||||
]
|
||||
|
||||
pvs_PBPS113_bernina = [
|
||||
"SAROP21-PBPS103:MOTOR_X1.DRBV",
|
||||
"SAROP21-PBPS103:MOTOR_Y1.DRBV",
|
||||
"SAROP21-PBPS103:MOTOR_X1.RBV",
|
||||
@ -204,6 +279,17 @@ pvs_Bernina = [
|
||||
"SAROP21-PPRM113:MOTOR_PROBE.RBV"
|
||||
]
|
||||
|
||||
pvs_OPPI113_bernina = [
|
||||
"SAROP21-OPPI113:MOTOR_X1.RBV", # X1 instead of X
|
||||
"SAROP21-OPPI113:MOTOR_Y1.RBV", # Y1 instead of X
|
||||
"SAROP21-OPPI113:TC1", # Pulse picker temperature
|
||||
]
|
||||
|
||||
|
||||
pvs_PPRM113 = [
|
||||
"SAROP21-PPRM113:MOTOR_PROBE.RBV",
|
||||
]
|
||||
|
||||
|
||||
####################
|
||||
# First Cristallina horizontal offset mirror OOMH067
|
||||
@ -347,8 +433,8 @@ pvs_OATA150 = [
|
||||
####################
|
||||
# Pulse picker OPPI151
|
||||
pvs_OPPI151 = [
|
||||
# "SAROP31-OPPI151:MOTOR_X.RBV", # Not available
|
||||
# "SAROP31-OPPI151:MOTOR_Y.RBV", # Not available
|
||||
"SAROP31-OPPI151:MOTOR_X1.RBV", # X1 instead of X
|
||||
"SAROP31-OPPI151:MOTOR_Y1.RBV", # Y1 instead of X
|
||||
"SAROP31-OPPI151:TC1", # Pulse picker temperature
|
||||
]
|
||||
|
||||
@ -528,3 +614,42 @@ pv_channels = (
|
||||
|
||||
# + pvs_attocube
|
||||
# + pvs_smaract_juraj
|
||||
|
||||
pv_channels_front_end = (
|
||||
pvs_machine
|
||||
# + pvs_RF
|
||||
# + pvs_undulator
|
||||
+ pvs_gas_monitor
|
||||
+ pvs_OAPU044
|
||||
+ pvs_PBPS053
|
||||
+ pvs_OATT053
|
||||
+ pvs_PPRM053
|
||||
+ pvs_PSSS059
|
||||
+ pvs_OOMH067
|
||||
+ pvs_PSCR068
|
||||
)
|
||||
|
||||
pv_channels_bernina = (
|
||||
pvs_machine
|
||||
# + pvs_RF
|
||||
# + pvs_undulator
|
||||
+ pvs_gas_monitor
|
||||
+ pvs_OAPU044
|
||||
+ pvs_PBPS053
|
||||
+ pvs_OATT053
|
||||
+ pvs_PPRM053
|
||||
+ pvs_PSSS059
|
||||
+ pvs_OOMH067
|
||||
+ pvs_PSCR068
|
||||
+ pvs_photon_energy_bernina
|
||||
+ pvs_OAPU092_bernina
|
||||
+ pvs_OOMV092_bernina
|
||||
+ pvs_PPRM094_bernina
|
||||
+ pvs_OOMV096_bernina
|
||||
+ pvs_PSCR097_bernina
|
||||
+ pvs_ODCM098_bernina
|
||||
+ pvs_OAPU102_bernina
|
||||
+ pvs_PSRD103_bernina
|
||||
+ pvs_PBPS113_bernina
|
||||
+ pvs_PPRM113
|
||||
)
|
||||
|
@ -133,9 +133,15 @@ from crq_exp.diffractometer import Diffractometer
|
||||
diffractometer = Diffractometer("diffractometer")
|
||||
|
||||
|
||||
# Dilution fridge
|
||||
from crq_exp.dilsc import Dilution
|
||||
|
||||
dilution = Dilution()
|
||||
try:
|
||||
dilution = Dilution()
|
||||
except Exception as e:
|
||||
logger.warning(f"Error: Could not connect to dilution fridge. {e}")
|
||||
dilution = None
|
||||
|
||||
|
||||
# MX adajustables
|
||||
import mx.mx_adjustables
|
||||
@ -145,10 +151,11 @@ import mx.mx_adjustables
|
||||
|
||||
# TODO: requires the stand client, need small howto how to start and configure or let it run all the time
|
||||
from slic.core.acquisition.spreadsheet import Spreadsheet
|
||||
from stand.time import Time
|
||||
|
||||
# setup spreadsheet for transmission to stand
|
||||
spreadsheet = Spreadsheet(
|
||||
{
|
||||
|
||||
adjs_for_spreadsheet = {
|
||||
#"Time": Time(),
|
||||
"Transmission": attenuator.trans1st,
|
||||
"Upstream Transmission": upstream_attenuator.trans1st,
|
||||
"Energy_setpoint": undulators,
|
||||
@ -160,12 +167,27 @@ spreadsheet = Spreadsheet(
|
||||
"TRYBASE": diffractometer.try_base,
|
||||
"THETA": diffractometer.theta,
|
||||
"TWOTHETA": diffractometer.twotheta,
|
||||
}
|
||||
|
||||
|
||||
if dilution is not None:
|
||||
adjs_dilsc = {
|
||||
"Magnet_X": dilution.x,
|
||||
"Magnet_Y": dilution.y,
|
||||
"Magnet_Z": dilution.z,
|
||||
"DilSc_T_chip": dilution.T_chip,
|
||||
"DilSc_T_pucksensor": dilution.T_pucksensor,
|
||||
},
|
||||
}
|
||||
adjs_for_spreadsheet.update(adjs_dilsc)
|
||||
|
||||
|
||||
# temporary mono
|
||||
from exp_temp.mono import Mono_rotation
|
||||
|
||||
|
||||
# setup spreadsheet for transmission to stand
|
||||
spreadsheet = Spreadsheet(
|
||||
adjs_for_spreadsheet,
|
||||
placeholders=("comment", "sample", "run_usable"),
|
||||
host="saresc-vcons-02.psi.ch",
|
||||
port=9090,
|
||||
@ -187,26 +209,47 @@ except Exception as error:
|
||||
|
||||
################# DAQ Setup #################
|
||||
instrument = "cristallina"
|
||||
experiment_type = "MX" # "MX" or "Q" for the different setups and detector configurations
|
||||
|
||||
from pgroups import pgroup, pgroup_scratch
|
||||
|
||||
|
||||
# setup pgroup specific logger
|
||||
setup_logging_pgroup(pgroup)
|
||||
|
||||
daq = SFAcquisition(
|
||||
instrument,
|
||||
pgroup,
|
||||
default_channels=bs_channels,
|
||||
default_pvs=pv_channels,
|
||||
default_detectors=detectors,
|
||||
rate_multiplicator=1,
|
||||
spreadsheet=spreadsheet,
|
||||
)
|
||||
logger.info(f"Using Cristallina{experiment_type} setup for detectors.")
|
||||
|
||||
if experiment_type == "MX":
|
||||
daq = SFAcquisition(
|
||||
instrument,
|
||||
pgroup,
|
||||
default_channels=bs_channels,
|
||||
default_pvs=pv_channels,
|
||||
default_detectors=detectors_MX,
|
||||
rate_multiplicator=1,
|
||||
spreadsheet=spreadsheet,
|
||||
)
|
||||
elif experiment_type == "Q":
|
||||
daq = SFAcquisition(
|
||||
instrument,
|
||||
pgroup,
|
||||
default_channels=bs_channels,
|
||||
default_pvs=pv_channels,
|
||||
default_detectors=detectors,
|
||||
rate_multiplicator=1,
|
||||
spreadsheet=spreadsheet,
|
||||
)
|
||||
else:
|
||||
logger.error(f"Experiment type {experiment_type} not supported. Exiting.")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
daq.update_config_pvs()
|
||||
|
||||
# There is a new EPICS buffer, so the archiver is no longer used. This makes sure we are taking PVs from the right place.
|
||||
daq.update_config_pvs()
|
||||
try:
|
||||
daq.update_config_pvs()
|
||||
except Exception as e:
|
||||
print(e)
|
||||
|
||||
from acquisition import multiple_daqs
|
||||
|
||||
@ -228,5 +271,5 @@ check_intensity_gas_monitor = PVCondition(
|
||||
scan = Scanner(default_acquisitions=[daq], condition=check_intensity_gas_monitor)
|
||||
gui = GUI(scan, show_goto=True, show_spec=True)
|
||||
|
||||
logger.info(f"Running at {instrument} with pgroup {pgroup}.")
|
||||
logger.info(f"Running at {instrument} with pgroup {pgroup}. Experiment type: {experiment_type}.")
|
||||
logger.info("Loading finished.")
|
||||
|
6
exp_temp/mono.py
Normal file
6
exp_temp/mono.py
Normal file
@ -0,0 +1,6 @@
|
||||
from slic.devices.general.motor import Motor
|
||||
|
||||
|
||||
Mono_rotation = Motor("SARES30-MOBI2:MOT_RY") # large rotation stage
|
||||
|
||||
|
@ -33,7 +33,11 @@ pgroup_scratch = "p19150" # Scratch
|
||||
|
||||
# pgroup = "p21741" # CrQ - DilSc - SAXS LiHoF4
|
||||
|
||||
#pgroup = "p21735" # Cr-MX Aller 2024-06-04
|
||||
# pgroup = "p21735" # Cr-MX Aller 2024-06-04
|
||||
# pgroup = "p21736" # Cr-MX Weik 2024-06-07
|
||||
|
||||
pgroup = "p21977" # CrQ - Dilsc - LiErF4
|
||||
# pgroup = "p21977" # CrQ - Dilsc - LiErF4
|
||||
|
||||
# pgroup = "p21981" # CrMX JFJ commissioning and other related detector bullocks
|
||||
pgroup = "p22198" # CrMX Fromme - 2024-10-25
|
||||
|
||||
|
25
stand/time.py
Normal file
25
stand/time.py
Normal file
@ -0,0 +1,25 @@
|
||||
from slic.core.adjustable import Adjustable
|
||||
import datetime
|
||||
|
||||
class Time(Adjustable):
|
||||
""" Adjustable only for spreadsheet, no other functionality
|
||||
"""
|
||||
def __init__(self):
|
||||
super().__init__(self, "")
|
||||
|
||||
def get_current_value(self):
|
||||
return datetime.datetime.now().replace(microsecond=0).isoformat()
|
||||
|
||||
def is_moving(self):
|
||||
return False
|
||||
|
||||
def set_target_value(self):
|
||||
pass
|
||||
|
||||
def __repr__(self):
|
||||
name = "Time"
|
||||
value = self._printable_value()
|
||||
return f"{name} : {value}"
|
||||
|
||||
def __str__(self):
|
||||
return self._printable_value()
|
Reference in New Issue
Block a user