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+""