Files
x03da/script/optics/PhotonFluxSpectrum.py
2018-02-09 16:12:44 +01:00

111 lines
2.8 KiB
Python

"""
photon flux spectrum
SampleCurrent: diode
RefCurrent: RMU
AuxCurrent: not connected
"""
import time
RANGE = "C K-edge"
BEAM = "G600 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:"
prepare_keithleys(DWELL)
if BEAM == "G600 1x1":
# G600 1x1 reference sscan_2268 (elog:119)
#SampleCurrentGain.write("L, 10^7")
#RefCurrentGain.write("L, 10^9")
KeiSample.set_range(200e-9)
KeiReference.set_range(2e-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")
KeiSample.set_range(20e-6)
KeiReference.set_range(200e-9)
#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")
KeiSample.set_range(200e-9)
KeiReference.set_range(2e-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")
KeiSample.set_range(2e-6)
KeiReference.set_range(20e-9)
#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)
time.sleep(5.)
lscan(POSITIONERS, SENSORS, STARTPOS, ENDPOS, STEPS, LATENCY, before_read=before_readout, after_read=after_readout)