Files
x11ma/script/beamline_alignment/05_XBPM2_scans.py
2025-12-17 09:49:26 +01:00

135 lines
3.7 KiB
Python
Executable File

import time
def scan_2dfe_center():
started = time.strftime("%H:%M:%S", time.localtime())
fe_slit_sizex = 0.4
fe_slit_sizey = 0.4
offset_sizex = -0.3
offset_sizey = 0.0
fe_slit_centerx = 0.0
fe_slit_centery = 0.0
# offset_centerx = -0.3
# offset_centery = 1.25
offset_centerx = -0.6
offset_centery = 1.3
# Read initial speed
# original fe_slit_ini_x_speed = 0.1000
# original fe_slit_ini_y_speed = 0.1000
fe_slit_ini_x_speed = BML_FE_centerX.getSpeed()
fe_slit_ini_y_speed = BML_FE_centerY.getSpeed()
BML_FE_centerX.setSpeed(0.8)
BML_FE_centerY.setSpeed(0.8)
sizex = fe_slit_sizex + offset_sizex
sizey = fe_slit_sizey + offset_sizey
BML_FE_sizeX.move(sizex)
BML_FE_sizeY.move(sizey)
centerx = fe_slit_centerx + offset_centerx
centery = fe_slit_centery + offset_centery
BML_FE_centerX.move(centerx)
BML_FE_centerY.move(centery)
x_range = 1.1
y_range = 1.1
x_steps = 0.05
y_steps = 0.05
xmin = centerx - x_range/2
xmax = centerx + x_range/2
ymin = centery - y_range/2
ymax = centery + y_range/2
print(xmin)
print(xmax)
print(ymin)
print(ymax)
print(x_steps)
print(y_steps)
BML_FE_centerX.move(xmin)
BML_FE_centerY.move(ymin)
sensors = [BML_FE_CX_RBV, BML_FE_CY_RBV, BML_FE_CX_RBV, BML_FE_CX_RBV, BML_FE_CX_RBV, CADC2]
#sensors = [BML_FE_CX_RBV, BML_FE_CY_RBV, BML_XBPM_B_SUM, BML_XBPM_B_POS_X, BML_XBPM_B_POS_Y, CADC2]
#detector = Keithley_2_raw
ascan([BML_FE_centerX, BML_FE_centerY], sensors, [xmin, ymin], [xmax, ymax], [x_steps, y_steps], latency=0.1, zigzag=False)
BML_FE_sizeX.move(offset_sizex)
BML_FE_sizeY.move(offset_sizey)
BML_FE_centerX.move(offset_centerx)
BML_FE_centerY.move(offset_centery)
BML_FE_centerX.setSpeed(0.1)
BML_FE_centerY.setSpeed(0.1)
stopped = time.strftime("%H:%M:%S", time.localtime())
print("started: " + started)
print("stopped: " + stopped)
def scan_xbpm2():
started = time.strftime("%H:%M:%S", time.localtime())
# In case that we will later define a center position
# original xbpm2_cx = 1.395, see /sls/X11MA/data/X11MA/scans/2511/0081.json
# original xbpm2_cy = -139.7175
xbpm2_cx = 0.0
xbpm2_cy = -339.7
# Read initial speed
# original xbpm2_ini_x_speed = 2.500
# original xbpm2_ini_y_speed = 2.500
xbpm2_ini_x_speed = BML_XBPM_B_TRX.getSpeed()
xbpm2_ini_y_speed = BML_XBPM_B_TRY.getSpeed()
BML_XBPM_B_TRX.setSpeed(2.5)
BML_XBPM_B_TRY.setSpeed(2.5)
BML_XBPM_B_TRY.move(xbpm2_cy)
BML_XBPM_B_TRX.move(xbpm2_cx)
x_range = 0.5
y_range = 0.5
x_steps = 0.05
y_steps = 0.05
xmin = xbpm2_cx - x_range/2
xmax = xbpm2_cx + x_range/2
ymin = xbpm2_cy - y_range/2
ymax = xbpm2_cy + y_range/2
BML_XBPM_B_TRX.move(xmin)
BML_XBPM_B_TRY.move(ymin)
sensors = [BML_XBPM_B_TRX_RBV, BML_XBPM_B_TRY_RBV, BML_XBPM_B_SUM, BML_XBPM_B_POS_X, BML_XBPM_B_POS_Y]
#detector = Keithley_2_raw
ascan([BML_XBPM_B_TRX, BML_XBPM_B_TRY], sensors, [xmin, ymin], [xmax, ymax], [x_steps, y_steps], latency=0.4, zigzag=True)
#ascan([FE_CX, FE_CY], sensors, [-1.0, 0.3], [0.0, 1.3], [0.1, 0.1], latency=0.5, zigzag=True)
#ascan([FE_CX, FE_CY], sensors, [xmin, ymin], [xmax, ymax], [STEPS, STEPS], latency=0.25, zigzag=True)
BML_XBPM_B_TRY.move(xbpm2_cy)
BML_XBPM_B_TRX.move(xbpm2_cx)
BML_XBPM_B_TRY.setSpeed(xbpm2_ini_y_speed)
BML_XBPM_B_TRX.setSpeed(xbpm2_ini_x_speed)
stopped = time.strftime("%H:%M:%S", time.localtime())
print("started: " + started)
print("stopped: " + stopped)