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

166 lines
4.4 KiB
Python

# def scan_2DFE_energy():
# def scan_harmonic_energy_pol():
def scan_2DFE_energy():
# 1 Define detector and scan parameters
sensors = [Keithley_2_raw.getAlias(), CADC2.getAlias(), SR_current.getAlias(), BML_energy_RBV.getAlias()]
Keithley_channel = Keithley_2_raw.getChannelName()
Keithley_range = "2 uA"
#Keithley range: "AUTO", "20 mA", "2 mA", "200 uA", "20 uA", "2 uA", "200 nA", "20 nA", "2 nA", "200 pA", "20 pA"
emin = 450.0
emax = 470.0
esteps = 5.0
#FE_centerX = -0.75
#FE_centerY = 1.25
FE_centerX = 0.0
FE_centerY = 0.0
FE_size_x = 0.1
FE_size_y = 0.1
x_range = 4.0
y_range = 4.0
x_steps = 0.1
y_steps = 0.1
# Set detector and slit parameters for scan>
range_number = range_to_number(Keithley_range)
Keithley_range_cmd = Keithley_channel.replace('READOUT', 'RANGE')
caput(Keithley_range_cmd, range_number) # 6 --> 200 nA
BML_FE_sizeX.setSpeed(1.0)
BML_FE_sizeY.setSpeed(1.0)
BML_FE_centerX.setSpeed(1.0)
BML_FE_centerY.setSpeed(1.0)
BML_FE_sizeX.write(FE_size_x)
BML_FE_sizeY.write(FE_size_y)
Scan_params = [emin, emax, esteps, FE_centerX, FE_centerY, FE_size_x, FE_size_y, x_range, y_range, x_steps, y_steps]
# 3 Perform scans
scan_3D_FE_slits(Scan_params, sensors)
# 4 Restore FE motor speed
BML_FE_sizeX.setSpeed(0.1)
BML_FE_sizeY.setSpeed(0.1)
BML_FE_centerX.setSpeed(0.1)
BML_FE_centerY.setSpeed(0.1)
# FE_centerX_ini = BML_FE_centerX.read()
# FE_centerY_ini = BML_FE_centerY.read()
# FE_sizeX_ini = BML_FE_sizeX.read()
# FE_sizeY_ini = BML_FE_sizeY.read()
# BML_FE_sizeX.move(FE_sizeX)
# BML_FE_sizeY.move(FE_sizeY)
# BML_FE_centerX.move(xmin)
# BML_FE_centerY.move(ymin)
# sleep(1.0)
# ID2_mode
# BML_energy_set
# BML_FE_sizeX.update()
# BML_FE_sizeY.update()
# BML_FE_centerX.update()
# BML_FE_centerY.update()
#
# BML_FE_sizeX.move(FE_sizeX_ini)
# BML_FE_sizeY.move(FE_sizeY_ini)
# BML_FE_centerX.move(FE_centerX_ini)
# BML_FE_centerY.move(FE_centerY_ini)
#
# BML_FE_sizeX.setSpeed(0.1)
# BML_FE_sizeY.setSpeed(0.1)
# BML_FE_centerX.setSpeed(0.1)
# BML_FE_centerY.setSpeed(0.1)
def scan_2DFE_energy_pol():
polarizations = [1,2,3,4,5,6,7]
for p in polarizations:
print(p)
caput("X11MA-UIND2:MODE", p)
sleep(60)
ID_state = caget("X11MA-UIND2:MODE")
print(ID_state)
ID_energy = caget("X11MA-UIND2:ENERGY-RBV")
print(ID_energy)
scan_2DFE_energy()
BML_FE_sizeX.write(0.0)
BML_FE_sizeY.write(0.0)
def scan_harmonic_energy_pol():
# 0 Off
# 1 Linear H
# 2 Linear V+
# 3 Linear V-
# 4 Circular+
# 5 Circular-
# 6 +45 deg
# 7 -45 deg
sensors = [Keithley_1_raw.getAlias(), CADC1.getAlias(), SR_current.getAlias(), BML_energy_RBV.getAlias()]
polarizations = [1,2,3,4,5,6]
# polarizations = ["Linear H", "Linear V+", "Linear V-","Circular+", "Circular-", "+45 deg", "-45 deg"]
Keithley_channel = Keithley_2_raw.getChannelName()
Keithley_range = "AUTO"
#Keithley range: "AUTO", "20 mA", "2 mA", "200 uA", "20 uA", "2 uA", "200 nA", "20 nA", "2 nA", "200 pA", "20 pA"
emin = 500.0
emax = 900.0
esteps = 0.1
latency = 1.0
FE_centerX = 0.0
FE_centerY = 0.0
FE_size_x = 4.0
FE_size_y = 4.0
energy_slit = 200.0
# # Set detector and slit parameters for scan>
# range_number = range_to_number(Keithley_range)
# Keithley_range_cmd = Keithley_channel.replace('READOUT', 'RANGE')
# caput(Keithley_range_cmd, range_number) # 6 --> 200 nA
#
# BML_FE_sizeX.write(FE_size_x)
# BML_FE_sizeY.write(FE_size_y)
#
# exit_slit.move(energy_slit)
scan_energy_values = [emin, emax, esteps,latency]
for p in polarizations:
print(p)
caput("X11MA-UIND2:MODE", p)
BML_energy_set.write(emin)
# ID2_mode.move("Linear H")
sleep(300)
ID_state = caget("X11MA-UIND2:MODE")
print(ID_state)
ID_energy = caget("X11MA-UIND2:ENERGY-RBV")
print(ID_energy)
scan_energy(scan_energy_values, sensors)
BML_FE_sizeX.write(0.0)
BML_FE_sizeY.write(0.0)