Files
x11ma/script/old_scripts/Electric_field_loop2.py
2021-03-12 12:19:10 +01:00

128 lines
3.3 KiB
Python
Executable File

import os
import traceback
import thread
import time
import datetime
#ID settings
#Set PGM ID2
caput ("X11PHS-E:OPT","PGM+ID2")
#set ID2 to C+
OFFSETp = -1.9
OFFSETm = -1.9
caput(OTF_MODE2,2)
caput(OTF_OFF2,OFFSETp)
E1 = 779.3 # Edge
#E2 = 770 #preedge
# Voltage/magnetic field setting
Max = 10.0;
Min=-Max;
No_of_steps = 20;
step_size = float(Max/No_of_steps);
Noavg = 3;
N_loops = 2;
print "step_size = ", step_size
print "step_size = ", step_size
loops=frange(0,N_loops,1);
forward=frange(Min,Max,step_size);
reverse=frange(Max,Min,-step_size);
#print "forward = ", forward
os.chdir("/sls/X11MA/data/X11MA/beamtime_december/")
#forward loop
open_vg13()
#for i in range(0,No_of_steps):
# B = -Max + 2*i*dB;
# print "Setting field = ", B
# caput("X11MA-XMCD:I-SETraw",B)
print "Setting energy = ", E1
caput(OTF_ESET, E1)
wait_channel(OTF_DONE, 1, type = 'i')
readback2 = energy.read()
sleep(3);
for k in range(0,20):
print "Setting field = ", k*Min/20
caput("X11MA-XMCD:I-SETraw", k*Min/20)
sleep(0.3);
for k in range(0,len(loops)):
file_prefix = time.strftime("%y%m%d")
ts=time.time();
time_prefix = datetime.datetime.fromtimestamp(ts).strftime('%H%M%S')
filename=open("data"+file_prefix+time_prefix+"scan_"+str(k)+".txt","a");
for i in range(0,len(forward)):
print "Setting field = ", forward[i]
caput("X11MA-XMCD:I-SETraw",forward[i])
temp_tey=0;
temp_tey_E2 = 0;
ADC2_temp_E1=0;
ADC1_temp_E1=0;
ADC2_temp_E2=0;
ADC1_temp_E2=0;
for j in range(0,Noavg):
detector1 = keithley_1a.read() #Keithley1
detector2 = keithley_2a.read() #Keithley2
M1 = float(detector2)/float(detector1)
temp_tey=temp_tey+M1;
ADC2_temp_E1=ADC2_temp_E1+detector2;
ADC1_temp_E1=ADC1_temp_E1+detector1;
tey_norm_E1=temp_tey/Noavg;
ADC2_E1=ADC2_temp_E1/Noavg;
ADC1_E1=ADC1_temp_E1/Noavg;
detector4 = caget(OTF_MODE2)
filename.write("%f %f %e %e %s \n" %(forward[i], E1, ADC2_E1, tey_norm_E1, detector4));
#reverse loop
for i in range(0,len(reverse)):
print "Setting field = ", reverse[i]
caput("X11MA-XMCD:I-SETraw",reverse[i])
temp_tey=0;
temp_tey_E2 = 0;
ADC2_temp_E1=0;
ADC1_temp_E1=0;
ADC2_temp_E2=0;
ADC1_temp_E2=0;
for j in range(0,Noavg):
detector1 = keithley_1a.read() #Keithley1
detector2 = keithley_2a.read() #Keithley2
M1 = float(detector2)/float(detector1)
temp_tey=temp_tey+M1;
ADC2_temp_E1=ADC2_temp_E1+detector2;
ADC1_temp_E1=ADC1_temp_E1+detector1;
tey_norm_E1=temp_tey/Noavg;
ADC2_E1=ADC2_temp_E1/Noavg;
ADC1_E1=ADC1_temp_E1/Noavg;
detector4 = caget(OTF_MODE2)
filename.write("%f %f %e %e %s \n" %(forward[i], E1, ADC2_E1, tey_norm_E1, detector4));
filename.close();
for k in range(0,20):
print "Setting field = ", (20-k)*Min/20
caput("X11MA-XMCD:I-SETraw", (20-k)*Min/20)
sleep(0.1);
close_vg13()
#plot(data"+file_prefix", title = "2d", xdata = B, ydata = data_y)
# plot properties
set_preference(Preference.ENABLED_PLOTS, ['forward', 'tey_norm'])
set_preference(Preference.PLOT_TYPES, {'tey_norm':1})
print "Data saved in data "+file_prefix+time_prefix+""