""" photon flux spectrum SampleCurrent: diode RefCurrent: RMU AuxCurrent: not connected """ import time RANGE = "C K-edge" BEAM = "G1200 1x1" if RANGE == "G600 full": # G600 full spectrum STARTPOS = (50.0) ENDPOS = (1100.0) STEPS = 10.0 LATENCY = 5.0 DWELL = 1.0 elif RANGE == "G1200 full": # G1200 full spectrum STARTPOS = (100.0) ENDPOS = (2000.0) STEPS = 25.0 LATENCY = 5.0 DWELL = 1.0 elif RANGE == "C K-edge": # carbon edge STARTPOS = (250.0) ENDPOS = (330.0) STEPS = 0.2 LATENCY = 1.0 DWELL = 1.0 KEI_DIODE = "X03DA-KEITHLEY-1:" KEI_RMU = "X03DA-KEITHLEY-2:" if BEAM == "G600 1x1": # G600 1x1 reference sscan_2268 (elog:119) SampleCurrentGain.write("L, 10^7") RefCurrentGain.write("L, 10^9") caput(KEI_DIODE + "RANGE", 6) # 200 nA caput(KEI_RMU + "RANGE", 8) # 2 nA FrontendHSize.write(1.5) FrontendVSize.write(1.4) ExitSlit.write(100.0) elif BEAM == "G600 6x10": # G600 6x10 reference sscan_2268 (elog:119) SampleCurrentGain.write("L, 10^5") RefCurrentGain.write("L, 10^7") caput(KEI_DIODE + "RANGE", 4) # 20 uA caput(KEI_RMU + "RANGE", 6) # 200 nA FrontendHSize.write(6.5) FrontendVSize.write(10.4) ExitSlit.write(100.0) elif BEAM == "G1200 1x1": # G1200 1x1 reference sscan_2264 (elog:114) SampleCurrentGain.write("L, 10^7") RefCurrentGain.write("L, 10^9") caput(KEI_DIODE + "RANGE", 6) # 200 nA caput(KEI_RMU + "RANGE", 8) # 2 nA FrontendHSize.write(1.5) FrontendVSize.write(1.4) ExitSlit.write(100.0) elif BEAM == "G1200 6x10": # G1200 6x10 reference sscan_2266 (elog:116) SampleCurrentGain.write("L, 10^6") RefCurrentGain.write("L, 10^8") caput(KEI_DIODE + "RANGE", 5) # 2 uA caput(KEI_RMU + "RANGE", 7) # 20 nA FrontendHSize.write(6.5) FrontendVSize.write(10.4) ExitSlit.write(100.0) else: # use current settings pass def trig(): time.sleep(LATENCY) wait_beam() caput(KEI_DIODE + "DOINIT", 1) caput(KEI_RMU + "DOINIT", 1) caput(KEI_DIODE + "DOTRIGGER", 1) caput(KEI_RMU + "DOTRIGGER", 1) caput("X03DA-OP-10ADC:TRG.PROC", 1) time.sleep(DWELL) caput(KEI_DIODE + "DOFETCH", 1) caput(KEI_RMU + "DOFETCH", 1) value = DWELL * 10.0 SampleCurrentAveraging.write(value) RefCurrentAveraging.write(value) POSITIONERS = (Eph) SENSORS = (Keithley1, Keithley2, SampleCurrent, RefCurrent, MachineCurrent) lscan(POSITIONERS, SENSORS, STARTPOS, ENDPOS, STEPS, 0.0, before_read=trig, after_read=after_readout)