06.2026
This commit is contained in:
@@ -5,14 +5,15 @@
|
||||
def scan_2DFE_energy():
|
||||
# 1 Define detector and scan parameters
|
||||
|
||||
sensors = [Keithley_2_raw.getAlias(), CADC2.getAlias(), SR_current.getAlias(), BML_energy_RBV.getAlias()]
|
||||
#sensors = [Keithley_2_raw.getAlias(), CADC2.getAlias(), SR_current.getAlias(), BML_energy_RBV.getAlias()]
|
||||
sensors = [Keithley_2_raw, CADC2, SR_current, BML_energy]
|
||||
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
|
||||
emin = 400
|
||||
emax = 415
|
||||
esteps = 20
|
||||
|
||||
#FE_centerX = -0.75
|
||||
#FE_centerY = 1.25
|
||||
@@ -22,11 +23,20 @@ def scan_2DFE_energy():
|
||||
FE_size_x = 0.1
|
||||
FE_size_y = 0.1
|
||||
|
||||
x_range = 4.0
|
||||
y_range = 4.0
|
||||
x_range = 3.0
|
||||
y_range = 3.0
|
||||
|
||||
x_steps = 0.1
|
||||
y_steps = 0.1
|
||||
|
||||
xmin = FE_centerX - x_range/2
|
||||
xmax = FE_centerX + x_range/2
|
||||
|
||||
ymin = FE_centerY - y_range/2
|
||||
ymax = FE_centerY + y_range/2
|
||||
|
||||
xsteps = x_steps
|
||||
ysteps = y_steps
|
||||
|
||||
|
||||
# Set detector and slit parameters for scan>
|
||||
@@ -42,11 +52,22 @@ def scan_2DFE_energy():
|
||||
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]
|
||||
#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)
|
||||
|
||||
for energy in range(emin, emax, esteps):
|
||||
print(energy)
|
||||
BML_energy.update()
|
||||
BML_energy.move(float(energy))
|
||||
print(BML_energy.read())
|
||||
ascan([BML_FE_centerX, BML_FE_centerY], sensors, [xmin, ymin], [xmax, ymax], [xsteps, ysteps], latency=0.1, zigzag=False)
|
||||
json_path = get_exec_pars().path
|
||||
bml_save_scan_settings_json(json_path)
|
||||
BML_energy.update()
|
||||
|
||||
|
||||
# scan_3D_FE_slits(Scan_params, sensors)
|
||||
|
||||
|
||||
# 4 Restore FE motor speed
|
||||
@@ -118,48 +139,87 @@ def scan_harmonic_energy_pol():
|
||||
# 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]
|
||||
sensors = [Keithley_2_raw.getAlias(), CADC2.getAlias(), SR_current.getAlias(), BML_energy.getAlias()]
|
||||
polarizations = [1]
|
||||
# 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
|
||||
emax = 800.0
|
||||
esteps = 5.0
|
||||
latency = 0.1
|
||||
|
||||
FE_centerX = 0.0
|
||||
FE_centerY = 0.0
|
||||
FE_size_x = 4.0
|
||||
FE_size_y = 4.0
|
||||
|
||||
energy_slit = 200.0
|
||||
energy_slit = 20.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
|
||||
#
|
||||
# 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.update()
|
||||
BML_FE_sizeY.update()
|
||||
BML_FE_centerX.update()
|
||||
BML_FE_centerY.update()
|
||||
|
||||
# BML_FE_centerX.write(FE_centerX)
|
||||
# BML_FE_centerY.write(FE_centerY)
|
||||
# BML_FE_sizeX.write(FE_size_x)
|
||||
# BML_FE_sizeY.write(FE_size_y)
|
||||
#
|
||||
# exit_slit.move(energy_slit)
|
||||
|
||||
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)
|
||||
# caput("X11MA-UIND2:MODE", p)
|
||||
BML_energy.write(emin)
|
||||
# ID2_mode.move("Linear H")
|
||||
sleep(300)
|
||||
sleep(1)
|
||||
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)
|
||||
# BML_FE_sizeX.write(0.0)
|
||||
# BML_FE_sizeY.write(0.0)
|
||||
#
|
||||
def scan_2DFE_energy_OTF():
|
||||
|
||||
for energy in range(380, 420, 5):
|
||||
print(energy)
|
||||
BML_energy.update()
|
||||
BML_energy.move(float(energy))
|
||||
BML_energy.update()
|
||||
run_parallel_scan()
|
||||
|
||||
|
||||
def scan_2DFE_energy_OTF_pol():
|
||||
|
||||
# polarizations = [7,6,5,4,3,2,1]
|
||||
polarizations = [2,7,1]
|
||||
# polarizations = ["Linear H", "Linear V+", "Linear V-","Circular+", "Circular-", "+45 deg", "-45 deg"]
|
||||
for p in polarizations:
|
||||
print(p)
|
||||
caput("X11MA-PGM:energy", 1650.0)
|
||||
caput("X11MA-PGM:setE.PROC", 1)
|
||||
# caput("X11MA-UIND2:ENERGY-SP", 1650.0)
|
||||
# sleep(10)
|
||||
caput("X11MA-UIND2:MODE", p)
|
||||
sleep(300)
|
||||
for i in range(16500, 17500, 50): # 0.2 → Faktor 10
|
||||
energy = i / 10.0
|
||||
print(energy)
|
||||
caput("X11MA-PGM:energy", energy)
|
||||
caput("X11MA-PGM:setE.PROC", 1)
|
||||
# caput("X11MA-UIND2:ENERGY-SP", energy)
|
||||
sleep(10)
|
||||
run_parallel_scan()
|
||||
|
||||
Reference in New Issue
Block a user