1227 lines
31 KiB
Python
1227 lines
31 KiB
Python
from datetime import datetime
|
|
from time import sleep, time
|
|
import numpy as np
|
|
from epics import PV
|
|
from slic.utils import nice_arange
|
|
from slic.devices.general.motor import Motor
|
|
|
|
|
|
#def kescan3D():
|
|
# x0 = 11.0
|
|
# y0 = 4.0
|
|
# z0 = 0.029
|
|
|
|
# npulses = 500
|
|
|
|
# step = 0.0005
|
|
|
|
# xstart = 10.535
|
|
# xstop = 10.575
|
|
|
|
# ystart = 0.295
|
|
# ystop = 0.335
|
|
|
|
# ntry = "04"
|
|
|
|
# wait_time = 0.1
|
|
|
|
# for i in range(100):
|
|
## for z_val in nice_arange(z0-1.0, z0+0.2, 0.05):
|
|
## for z_val in np.linspace(z0-1.0, z0+0.2, 25):
|
|
# for z_val in list(reversed(list(z0 + np.linspace(-1.0, -0.4, 5)) + list(z0 + np.linspace(-0.2, 0.2, 5)))):
|
|
# mot_z.set(z_val).wait()
|
|
|
|
# print(i)
|
|
|
|
# print(mot_x)
|
|
# print(mot_y)
|
|
# print(mot_z)
|
|
|
|
# mot_y.set(y0).wait()
|
|
# mot_x.set(xstart).wait()
|
|
# scan.scan1D(mot_x, xstart, xstop, step, npulses, f"focus_knifeedge3D_x_scan_{ntry}_{z_val}", return_to_initial_values=False)
|
|
# sleep(wait_time)
|
|
|
|
# print(mot_x)
|
|
# print(mot_y)
|
|
# print(mot_z)
|
|
|
|
# mot_x.set(x0).wait()
|
|
# mot_y.set(ystart).wait()
|
|
# scan.scan1D(mot_y, ystart, ystop, step, npulses, f"focus_knifeedge3D_y_scan_{ntry}_{z_val}", return_to_initial_values=False)
|
|
# sleep(wait_time)
|
|
|
|
# print("-" * 10)
|
|
# print()
|
|
|
|
|
|
|
|
#def overnight():
|
|
# current = mot_z.get_current_value()
|
|
|
|
# start = time()
|
|
|
|
# ntry = 7
|
|
|
|
# for i in range(100):
|
|
# si = str(i).zfill(6)
|
|
|
|
# fname = f"z_hop_{ntry}_coarse_{si}"
|
|
# print(fname)
|
|
|
|
# print(current, mot_z)
|
|
# mot_z.set_target_value(current).wait()
|
|
## sleep(0.5)
|
|
# if np.abs(mot_z.get_current_value() - current) > 0.01:
|
|
# break
|
|
|
|
# print(current, mot_z)
|
|
# scan.scan1D(mot_z, -0.1, +0.1, 0.1, 500, fname, relative=True, return_to_initial_values=True)
|
|
# print(current, mot_z)
|
|
## sleep(0.5)
|
|
|
|
# fname = f"z_hop_{ntry}_fine_{si}"
|
|
# print(fname)
|
|
|
|
# print(current, mot_z)
|
|
# mot_z.set_target_value(current).wait()
|
|
## sleep(0.5)
|
|
# if np.abs(mot_z.get_current_value() - current) > 0.01:
|
|
# break
|
|
|
|
# print(current, mot_z)
|
|
# scan.scan1D(mot_z, -0.01, +0.01, 0.001, 500, fname, relative=True, return_to_initial_values=True)
|
|
# print(current, mot_z)
|
|
## sleep(0.5)
|
|
|
|
# now = time()
|
|
# deltat = now - start
|
|
# print(start, now, deltat, 4*60*60)
|
|
# if deltat > 4*60*60:
|
|
# break
|
|
|
|
|
|
|
|
#def kescan3Dv2():
|
|
# x0 = 23.947
|
|
# y0 = 0
|
|
|
|
# npulses = 25 * 100/25
|
|
|
|
# step = 0.0005
|
|
|
|
# xstart = 21.897
|
|
# xstop = 21.997
|
|
|
|
# ystart = -2.573
|
|
# ystop = -2.713
|
|
|
|
# wait_time = 0.01
|
|
|
|
# for i in range(100):
|
|
# for z_val in nice_arange(0.2, -1.3, 0.1):
|
|
# mot_z.set(z_val).wait()
|
|
|
|
# print(i)
|
|
|
|
# print(mot_x)
|
|
# print(mot_y)
|
|
# print(mot_z)
|
|
|
|
# mot_y.set(y0).wait()
|
|
# mot_x.set(xstart).wait()
|
|
# scan.scan1D(mot_x, xstart, xstop, step, npulses, f"focus_knifeedge3D_v2_x_scan_{i}_{z_val}", return_to_initial_values=False)
|
|
# sleep(wait_time)
|
|
|
|
# print(mot_x)
|
|
# print(mot_y)
|
|
# print(mot_z)
|
|
|
|
# mot_x.set(x0).wait()
|
|
# mot_y.set(ystart).wait()
|
|
# scan.scan1D(mot_y, ystart, ystop, step, npulses, f"focus_knifeedge3D_v2_y_scan_{i}_{z_val}", return_to_initial_values=False)
|
|
# sleep(wait_time)
|
|
|
|
# print("-" * 10)
|
|
# print()
|
|
|
|
|
|
|
|
#def tof_loop():
|
|
# for i in range(50):
|
|
# fn = f"tof_loop2_{i}"
|
|
# daq.acquire(fn, n_pulses=10*10000)
|
|
|
|
|
|
|
|
#def overnight():
|
|
# sig = 101.617
|
|
# bkg = sig + 1
|
|
# while True:
|
|
# delay.set(sig).wait()
|
|
# sleep(10)
|
|
# daq.acquire("TT_overnight_sig", n_pulses=10 * 10000)
|
|
# delay.set(bkg).wait()
|
|
# daq.acquire("TT_overnight_bkg", n_pulses=10 * 1000)
|
|
# sleep(10)
|
|
|
|
|
|
|
|
#def overnight():
|
|
# start = 102.1
|
|
# stop = 102.4
|
|
# step = 0.015
|
|
|
|
# n_pulses = 10 * 500
|
|
|
|
# bkg = 103.3
|
|
|
|
# for i in range(1000):
|
|
# print(i, "sig")
|
|
# delay.set(start).wait()
|
|
# sleep(10)
|
|
# scan.scan1D(delay, start, stop, step, n_pulses, f"TT_overnight2_sig_{i:04}", return_to_initial_values=False)
|
|
|
|
# print(i, "bkg")
|
|
# delay.set(bkg).wait()
|
|
# daq.acquire(f"TT_overnight2_bkg_{i:04}", n_pulses=n_pulses)
|
|
# sleep(10)
|
|
|
|
|
|
|
|
#def overnight():
|
|
# start = 102.0
|
|
# stop = 102.3
|
|
# step = 0.0075
|
|
|
|
# n_pulses = 10 * 500
|
|
|
|
# bkg = 103.3
|
|
|
|
# for i in range(1000):
|
|
# print(i, "sig")
|
|
# delay.set(start).wait()
|
|
# sleep(10)
|
|
# scan.scan1D(delay, start, stop, step, n_pulses, f"TT_overnight3_sig_{i:04}", return_to_initial_values=False)
|
|
|
|
# print(i, "bkg")
|
|
# delay.set(bkg).wait()
|
|
# daq.acquire(f"TT_overnight3_bkg_{i:04}", n_pulses=n_pulses)
|
|
# sleep(10)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#SATFE10-OPSH066:REQUEST
|
|
|
|
#STATE 0: close
|
|
#STATE 1: open
|
|
|
|
|
|
|
|
#def overnight():
|
|
# shutter = PV("SATOP21-OPSH138:REQUEST")
|
|
|
|
# print("open shutter")
|
|
# shutter.put(1)
|
|
# sleep(3)
|
|
|
|
# base = "TT_overnight"
|
|
|
|
# x0 = 22.24
|
|
# start = x0 - 0.23
|
|
# stop = x0 + 0.23
|
|
# step = 0.01
|
|
|
|
# n_pulses = 2 * 2000
|
|
|
|
# for i in range(1000):
|
|
# print(i, "sig")
|
|
# scan.scan1D(exp_delay, start, stop, step, n_pulses, f"{base}_sig_{i:04}", return_to_initial_values=True)
|
|
|
|
# print("close shutter")
|
|
# shutter.put(0)
|
|
# sleep(3)
|
|
|
|
# print(i, "bkg")
|
|
# daq.acquire(f"{base}_bkg_{i:04}", n_pulses=n_pulses)
|
|
|
|
# print("open shutter")
|
|
# shutter.put(1)
|
|
# sleep(3)
|
|
|
|
|
|
|
|
|
|
|
|
#def overnight():
|
|
# shutter = PV("SATOP21-OPSH138:REQUEST")
|
|
|
|
# print("open shutter")
|
|
# shutter.put(1)
|
|
# sleep(3)
|
|
|
|
# base = "TT_overnight2"
|
|
|
|
# x0 = 21.36
|
|
# start = x0 - 0.225
|
|
# stop = x0 + 0.225
|
|
# step = 0.003
|
|
|
|
# n_pulses = 2 * 1000
|
|
|
|
# for i in range(1000):
|
|
# print(i, "sig")
|
|
# scan.scan1D(exp_delay, start, stop, step, n_pulses, f"{base}_sig_{i:04}", return_to_initial_values=True)
|
|
|
|
# print("close shutter")
|
|
# shutter.put(0)
|
|
# sleep(3)
|
|
|
|
# print(i, "bkg")
|
|
# daq.acquire(f"{base}_bkg_{i:04}", n_pulses=n_pulses)
|
|
|
|
# print("open shutter")
|
|
# shutter.put(1)
|
|
# sleep(3)
|
|
|
|
|
|
|
|
|
|
|
|
#def overnight():
|
|
# shutter = PV("SATOP21-OPSH138:REQUEST")
|
|
|
|
# print("open shutter")
|
|
# shutter.put(1)
|
|
# sleep(3)
|
|
|
|
# base = "TT_overnight3"
|
|
|
|
# x0 = 16.92
|
|
# start = x0 - 0.15
|
|
# stop = x0 + 0.15
|
|
# step = 0.003
|
|
|
|
# n_pulses = 4 * 500
|
|
|
|
# for i in range(1000):
|
|
# print(i, "sig")
|
|
# scan.scan1D(exp_delay, start, stop, step, n_pulses, f"{base}_sig_{i:04}", return_to_initial_values=True)
|
|
|
|
# print("close shutter")
|
|
# shutter.put(0)
|
|
# sleep(3)
|
|
|
|
# print(i, "bkg")
|
|
# daq.acquire(f"{base}_bkg_{i:04}", n_pulses=n_pulses)
|
|
|
|
# print("open shutter")
|
|
# shutter.put(1)
|
|
# sleep(3)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#end_time = datetime(2021, 9, 3, 8, 0, 0, 0)
|
|
|
|
|
|
#def overnight():
|
|
# shutter = PV("SATOP21-OPSH138:REQUEST")
|
|
#
|
|
# print("open shutter")
|
|
# shutter.put(1)
|
|
# sleep(3)
|
|
#
|
|
# base = "TT_nitrogen_overnight2"
|
|
#
|
|
# x0 = -14.55
|
|
# start = x0 - 0.2
|
|
# stop = x0 + 0.2
|
|
# step = 0.01
|
|
#
|
|
# n_pulses = 40 * 100
|
|
#
|
|
# for i in range(1000):
|
|
# if datetime.now() > end_time:
|
|
# break
|
|
#
|
|
# print(i, "sig")
|
|
# scan.scan1D(exp_delay, start, stop, step, n_pulses, f"{base}_sig_{i:04}", return_to_initial_values=True)
|
|
#
|
|
# print("close shutter")
|
|
# shutter.put(0)
|
|
# sleep(3)
|
|
#
|
|
# print(i, "bkg")
|
|
# daq.acquire(f"{base}_bkg_{i:04}", n_pulses=n_pulses)
|
|
#
|
|
# print("open shutter")
|
|
# shutter.put(1)
|
|
# sleep(3)
|
|
#
|
|
#
|
|
# shutter2 = PV("SATFE10-OPSH066:REQUEST")
|
|
#
|
|
# print("close both shutters")
|
|
# shutter.put(0)
|
|
# shutter2.put(0)
|
|
# sleep(3)
|
|
|
|
|
|
|
|
#def overnight():
|
|
# shutter = PV("SATOP21-OPSH138:REQUEST")
|
|
|
|
# print("open shutter")
|
|
# shutter.put(1)
|
|
# sleep(3)
|
|
|
|
# base = "CH3I_C1s_with_shutter_200_microJ"
|
|
|
|
# x0 = -2.816
|
|
# start = x0 - 0.12
|
|
# stop = x0 + 0.12
|
|
# step = 0.003
|
|
|
|
# n_pulses = 4 * 250
|
|
|
|
# for i in range(1000):
|
|
# print(i, "sig")
|
|
# scan.scan1D(exp_delay, start, stop, step, n_pulses, f"{base}_sig_{i:04}", return_to_initial_values=True)
|
|
|
|
# print("close shutter")
|
|
# shutter.put(0)
|
|
# sleep(3)
|
|
|
|
# print(i, "bkg")
|
|
# daq.acquire(f"{base}_bkg_{i:04}", n_pulses=n_pulses)
|
|
|
|
# print("open shutter")
|
|
# shutter.put(1)
|
|
# sleep(3)
|
|
|
|
|
|
|
|
|
|
#def overnight():
|
|
# currents = [
|
|
# 1.72090994e-04, 1.19335371e+01, 1.68765438e+01, 2.06694283e+01,
|
|
# 2.38669628e+01, 2.66840341e+01, 2.92308494e+01, 3.15728768e+01,
|
|
# 3.37527725e+01, 3.58001658e+01, 3.77366295e+01, 3.95784494e+01,
|
|
# 4.13382779e+01, 4.30261768e+01, 4.46503044e+01, 4.62173840e+01,
|
|
# 4.77330347e+01, 4.92020095e+01, 5.06283713e+01, 5.20156260e+01,
|
|
# 5.33668232e+01, 5.46846359e+01, 5.59714223e+01, 5.72292751e+01,
|
|
# 5.84600621e+01, 5.96654582e+01, 6.08469725e+01, 6.20059702e+01,
|
|
# 6.31436911e+01, 6.42612654e+01, 6.53597265e+01, 6.64400224e+01,
|
|
# 6.75030253e+01, 6.85495396e+01, 6.95803094e+01, 7.05960243e+01,
|
|
# 7.15973250e+01, 7.25848080e+01, 7.35590300e+01, 7.45205108e+01,
|
|
# 7.54697376e+01, 7.64071670e+01, 7.73332280e+01, 7.82483243e+01,
|
|
# 7.91528361e+01, 8.00471224e+01, 8.09315219e+01, 8.18063555e+01,
|
|
# 8.26719268e+01, 8.35285237e+01, 8.43764195e+01
|
|
# ]
|
|
|
|
# base = "CH3I_C1s_with_shutter_200_microJ"
|
|
|
|
# x0 = -2.816
|
|
# start = x0 - 0.12
|
|
# stop = x0 + 0.12
|
|
# step = 0.003
|
|
|
|
# n_pulses = 4 * 250
|
|
|
|
# for i in range(currents):
|
|
# chic_delay.set(I).wait()
|
|
|
|
# print("Chicane set to :",i)
|
|
|
|
# for ene in range(535,544):
|
|
# scan.scan1D(exp_delay, start, stop, step, n_pulses, f"{base}_sig_{i:04}", return_to_initial_values=True)
|
|
|
|
# print("close shutter")
|
|
# shutter.put(0)
|
|
# sleep(3)
|
|
|
|
# print(i, "bkg")
|
|
# daq.acquire(f"{base}_bkg_{i:04}", n_pulses=n_pulses)
|
|
|
|
# print("open shutter")
|
|
# shutter.put(1)
|
|
# sleep(3)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#def overnight():
|
|
# shutter = PV("SATOP21-OPSH138:REQUEST")
|
|
|
|
# print("open shutter")
|
|
# shutter.put(1)
|
|
# sleep(3)
|
|
|
|
# #base = "I4d_high_resolution_Ek472_Ep100_TTincluded_slit_2_008"
|
|
# #base = "I4d_high_resolution_Ek472_Ep200_TTincluded_slit_2_010"
|
|
|
|
# base = "CF3I_C1s_Ek230_Ep200_TTincluded_slit2_2609_130microJ_002"
|
|
|
|
# x0 = 15.813
|
|
|
|
# start = x0 - 0.12
|
|
# stop = x0 + 0.4
|
|
|
|
# step = 0.004
|
|
|
|
# n_pulses = 2 * 300
|
|
|
|
# for i in range(1000):
|
|
# print(i, "sig")
|
|
# scan.scan1D(exp_delay, start, stop, step, n_pulses, f"{base}_sig_{i:04}", return_to_initial_values=True)
|
|
|
|
# print("close shutter")
|
|
# shutter.put(0)
|
|
# sleep(3)
|
|
|
|
# print(i, "bkg")
|
|
# daq.acquire(f"{base}_bkg_{i:04}", n_pulses=n_pulses)
|
|
|
|
# print("open shutter")
|
|
# shutter.put(1)
|
|
# sleep(3)
|
|
|
|
|
|
|
|
|
|
|
|
#from datetime import datetime
|
|
#from time import sleep, time
|
|
|
|
#end_time = datetime(2021, 10, 14, 6, 0, 0, 0)
|
|
|
|
#def megadimensionalscan():
|
|
# positions = [
|
|
# 1.72090994e-04, 1.19335371e+01, 1.68765438e+01, 2.06694283e+01,
|
|
# 2.38669628e+01, 2.66840341e+01, 2.92308494e+01, 3.15728768e+01,
|
|
# 3.37527725e+01, 3.58001658e+01, 3.77366295e+01, 3.95784494e+01,
|
|
# 4.13382779e+01, 4.30261768e+01, 4.46503044e+01, 4.62173840e+01,
|
|
# 4.77330347e+01, 4.92020095e+01, 5.06283713e+01, 5.20156260e+01,
|
|
# 5.33668232e+01, 5.46846359e+01, 5.59714223e+01, 5.72292751e+01,
|
|
# 5.84600621e+01, 5.96654582e+01, 6.08469725e+01, 6.20059702e+01,
|
|
# 6.31436911e+01, 6.42612654e+01, 6.53597265e+01, 6.64400224e+01,
|
|
# 6.75030253e+01, 6.85495396e+01, 6.95803094e+01, 7.05960243e+01,
|
|
# 7.15973250e+01, 7.25848080e+01, 7.35590300e+01, 7.45205108e+01,
|
|
# 7.54697376e+01, 7.64071670e+01, 7.73332280e+01, 7.82483243e+01,
|
|
# 7.91528361e+01, 8.00471224e+01, 8.09315219e+01, 8.18063555e+01,
|
|
# 8.26719268e+01, 8.35285237e+01, 8.43764195e+01
|
|
# ]
|
|
|
|
## cycle = PV("SATUN14-MBND100:CYCLE")
|
|
|
|
# n_pulses = 2000
|
|
|
|
# und2.set(545)
|
|
|
|
## for i in range(1000):
|
|
## if datetime.now() > end_time:
|
|
## break
|
|
|
|
# for energy in (402, 420):
|
|
# und1.set(energy)
|
|
|
|
# fname = f"overnight_{energy}eV" #_{i:04}"
|
|
# scan.scan1D(chic_delay, positions, n_pulses, fname)
|
|
## cycle.put(1, wait=True)
|
|
## sleep(300)
|
|
|
|
|
|
|
|
#def overnight():
|
|
# currents = [
|
|
# 1.72090994e-04, 1.19335371e+01, 1.68765438e+01, 2.06694283e+01,
|
|
# 2.38669628e+01, 2.66840341e+01, 2.92308494e+01, 3.15728768e+01,
|
|
# 3.37527725e+01, 3.58001658e+01, 3.77366295e+01, 3.95784494e+01,
|
|
# 4.13382779e+01, 4.30261768e+01, 4.46503044e+01, 4.62173840e+01,
|
|
# 4.77330347e+01, 4.92020095e+01, 5.06283713e+01, 5.20156260e+01,
|
|
# 5.33668232e+01, 5.46846359e+01, 5.59714223e+01, 5.72292751e+01,
|
|
# 5.84600621e+01, 5.96654582e+01, 6.08469725e+01, 6.20059702e+01,
|
|
# 6.31436911e+01, 6.42612654e+01, 6.53597265e+01, 6.64400224e+01,
|
|
# 6.75030253e+01, 6.85495396e+01, 6.95803094e+01, 7.05960243e+01,
|
|
# 7.15973250e+01, 7.25848080e+01, 7.35590300e+01, 7.45205108e+01,
|
|
# 7.54697376e+01, 7.64071670e+01, 7.73332280e+01, 7.82483243e+01,
|
|
# 7.91528361e+01, 8.00471224e+01, 8.09315219e+01, 8.18063555e+01,
|
|
# 8.26719268e+01, 8.35285237e+01, 8.43764195e+01
|
|
# ]
|
|
|
|
## und2.set(545).wait()
|
|
## for energy in (402, 420):
|
|
|
|
# for I in currents:
|
|
# chic_delay.set(I).wait()
|
|
|
|
# for energy1 in (401.5, 406.5, 420):
|
|
# und1.set(energy1).wait()
|
|
|
|
# for energy2 in (534, 545):
|
|
# und2.set(energy2).wait()
|
|
|
|
# fname = f"overnight4_{energy1}eV_{energy2}eV_{I}A"
|
|
# print(fname)
|
|
# daq.acquire(fname, n_pulses=1500*4).wait()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#def delay_energy_scan():
|
|
## currents = [
|
|
## 1.72090994e-04, 1.19335371e+01, 1.68765438e+01, 2.06694283e+01,
|
|
## 2.38669628e+01, 2.66840341e+01, 2.92308494e+01, 3.15728768e+01,
|
|
## 3.37527725e+01, 3.58001658e+01, 3.77366295e+01, 3.95784494e+01,
|
|
## 4.13382779e+01, 4.30261768e+01, 4.46503044e+01, 4.62173840e+01,
|
|
## 4.77330347e+01, 4.92020095e+01, 5.06283713e+01, 5.20156260e+01,
|
|
## 5.33668232e+01, 5.46846359e+01, 5.59714223e+01, 5.72292751e+01,
|
|
## 5.84600621e+01, 5.96654582e+01, 6.08469725e+01, 6.20059702e+01,
|
|
## 6.31436911e+01, 6.42612654e+01, 6.53597265e+01, 6.64400224e+01,
|
|
## 6.75030253e+01, 6.85495396e+01, 6.95803094e+01, 7.05960243e+01,
|
|
### 7.15973250e+01, 7.25848080e+01, 7.35590300e+01, 7.45205108e+01,
|
|
### 7.54697376e+01, 7.64071670e+01, 7.73332280e+01, 7.82483243e+01,
|
|
### 7.91528361e+01, 8.00471224e+01, 8.09315219e+01, 8.18063555e+01,
|
|
### 8.26719268e+01, 8.35285237e+01, 8.43764195e+01
|
|
## ]
|
|
|
|
## currents = [
|
|
## 20, 35, 50
|
|
## ]
|
|
|
|
# currents = [
|
|
# 20.6694283,
|
|
# 23.8669628,
|
|
# 26.6840341,
|
|
# 29.2308494,
|
|
# 31.5728768,
|
|
# 33.7527725,
|
|
# 35.8001658,
|
|
# 37.7366295,
|
|
# 39.5784494,
|
|
# 41.3382779,
|
|
# 43.0261768,
|
|
# 44.6503044,
|
|
# 46.217384]
|
|
# #47.7330347,
|
|
# #49.2020095,
|
|
# #50.6283713]
|
|
# #52.015626,
|
|
# #53.3668232,
|
|
# #54.6846359,
|
|
# #55.9714223,
|
|
# #57.2292751,
|
|
# #59.6654582,
|
|
# #62.0059702,
|
|
# #64.2612654,
|
|
# #66.4400224,
|
|
# #68.5495396,
|
|
# #70.5960243
|
|
# #]
|
|
|
|
|
|
## shutter1 = PV("SATFE10-OPSH066:REQUEST")
|
|
## shutter2 = PV("SATOP21-OPSH138:REQUEST")
|
|
# cycle = PV("SATUN14-MBND100:CYCLE")
|
|
|
|
## end_time = datetime(2021, 11, 22, 8)
|
|
|
|
# for i in range(1):
|
|
## now = datetime.now()
|
|
## if now > end_time:
|
|
## break
|
|
|
|
# cycle.put(1, wait=True)
|
|
# sleep(250)
|
|
|
|
# for I in currents:
|
|
# chic_delay.set(I).wait()
|
|
|
|
## for energy1 in (510, 537.8, 555): # O2
|
|
## for energy1 in (540, 560): # N2O
|
|
## for energy1 in (403, 406.8, 420):
|
|
# for energy1 in (403,):
|
|
# und1.set(energy1).wait()
|
|
|
|
## for energy2 in (520, 543, 565): # O2
|
|
## for energy2 in (525, 535, 555): # N2O
|
|
## for energy2 in (543, 560):
|
|
# for energy2 in range(534, 544+1):
|
|
# und2.set(energy2).wait()
|
|
|
|
|
|
## !!! !!! !!! Change name here:
|
|
# fname = f"morning2_N2O_22mbar_{i:04}_{energy1}eV_{energy2}eV_{I}A"
|
|
# print(fname)
|
|
|
|
## while True:
|
|
## check_intensity.get_ready()
|
|
## daq.acquire(fname, n_pulses=1500*2).wait()
|
|
## if check_intensity.is_happy():
|
|
## break
|
|
|
|
# while check_intensity.wants_repeat():
|
|
# daq.acquire(fname, n_pulses=1000 * 2).wait()
|
|
|
|
|
|
## print("close shutter")
|
|
## shutter1.put(0)
|
|
## shutter2.put(0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#def overnight():
|
|
# currents = [
|
|
# 1.72090994e-04, 1.19335371e+01, 1.68765438e+01, 2.06694283e+01,
|
|
# 2.38669628e+01, 2.66840341e+01, 2.92308494e+01, 3.15728768e+01,
|
|
# 3.37527725e+01, 3.58001658e+01, 3.77366295e+01, 3.95784494e+01,
|
|
# 4.13382779e+01, 4.30261768e+01, 4.46503044e+01, 4.62173840e+01,
|
|
# 4.77330347e+01, 4.92020095e+01, 5.06283713e+01, 5.20156260e+01,
|
|
# 5.33668232e+01, 5.46846359e+01, 5.59714223e+01, 5.72292751e+01,
|
|
# 5.84600621e+01, 5.96654582e+01, 6.08469725e+01, 6.20059702e+01,
|
|
# 6.31436911e+01, 6.42612654e+01, 6.53597265e+01, 6.64400224e+01,
|
|
# 6.75030253e+01, 6.85495396e+01, 6.95803094e+01, 7.05960243e+01,
|
|
## 7.15973250e+01, 7.25848080e+01, 7.35590300e+01, 7.45205108e+01,
|
|
## 7.54697376e+01, 7.64071670e+01, 7.73332280e+01, 7.82483243e+01,
|
|
## 7.91528361e+01, 8.00471224e+01, 8.09315219e+01, 8.18063555e+01,
|
|
## 8.26719268e+01, 8.35285237e+01, 8.43764195e+01
|
|
# ]
|
|
|
|
## currents = [
|
|
## 20, 35, 50
|
|
## ]
|
|
|
|
## currents = [
|
|
## 20.6694283,
|
|
## 23.8669628,
|
|
## 26.6840341,
|
|
## 29.2308494,
|
|
## 31.5728768,
|
|
## 33.7527725,
|
|
## 35.8001658,
|
|
## 37.7366295,
|
|
## 39.5784494,
|
|
## 41.3382779,
|
|
## 43.0261768,
|
|
## 44.6503044,
|
|
## 46.217384]
|
|
## #47.7330347,
|
|
## #49.2020095,
|
|
## #50.6283713]
|
|
## #52.015626,
|
|
## #53.3668232,
|
|
## #54.6846359,
|
|
## #55.9714223,
|
|
## #57.2292751,
|
|
## #59.6654582,
|
|
## #62.0059702,
|
|
## #64.2612654,
|
|
## #66.4400224,
|
|
## #68.5495396,
|
|
## #70.5960243
|
|
## #]
|
|
|
|
|
|
## shutter1 = PV("SATFE10-OPSH066:REQUEST")
|
|
## shutter2 = PV("SATOP21-OPSH138:REQUEST")
|
|
# cycle = PV("SATUN14-MBND100:CYCLE")
|
|
|
|
## end_time = datetime(2021, 11, 22, 8)
|
|
|
|
# for i in range(100):
|
|
## now = datetime.now()
|
|
## if now > end_time:
|
|
## break
|
|
|
|
# cycle.put(1, wait=True)
|
|
# sleep(250)
|
|
|
|
# for I in currents:
|
|
# chic_delay.set(I).wait()
|
|
|
|
## for energy1 in (510, 537.8, 555): # O2
|
|
## for energy1 in (540, 560): # N2O
|
|
## for energy1 in (403, 406.8, 420):
|
|
## for energy1 in (403,):
|
|
# for energy1 in (403, 406, 420):
|
|
# und1.set(energy1).wait()
|
|
|
|
## for energy2 in (520, 543, 565): # O2
|
|
## for energy2 in (525, 535, 555): # N2O
|
|
## for energy2 in (543, 560):
|
|
## for energy2 in range(534, 544+1):
|
|
# for energy2 in (543, 560):
|
|
# und2.set(energy2).wait()
|
|
|
|
# fname = f"overnight7_{i:04}_{energy1}eV_{energy2}eV_{I}A"
|
|
# print(fname)
|
|
|
|
## while True:
|
|
## check_intensity.get_ready()
|
|
## daq.acquire(fname, n_pulses=1500*2).wait()
|
|
## if check_intensity.is_happy():
|
|
## break
|
|
|
|
# while check_intensity.wants_repeat():
|
|
# daq.acquire(fname, n_pulses=1000 * 2).wait()
|
|
|
|
|
|
## print("close shutter")
|
|
## shutter1.put(0)
|
|
## shutter2.put(0)
|
|
|
|
|
|
|
|
|
|
|
|
#def overnight():
|
|
## currents = [
|
|
### 10.0,
|
|
### 16.0,
|
|
### 22.7,
|
|
### 27.7,
|
|
### 32.0,
|
|
### 34.0,
|
|
### 35.8,
|
|
### 37.6,
|
|
### 39.2,
|
|
### 40.8,
|
|
### 42.2,
|
|
### 45.3,
|
|
### 48.0,
|
|
### 53.1
|
|
### 57.7,
|
|
### 62.0,
|
|
### 71.6,
|
|
### 80.0
|
|
###
|
|
## 31.48930094022534,
|
|
## 32.48918407498299,
|
|
## 33.459197405725845,
|
|
## 34.40186769985522,
|
|
## 35.31938437212558,
|
|
## 36.21365936509662,
|
|
## 37.08637401803952,
|
|
## 37.939016223878696,
|
|
## 38.77291022432906,
|
|
## 39.589240754262065,
|
|
## 40.38907278889524,
|
|
## 41.17336783651211,
|
|
## 41.9429974880303
|
|
### 35.8,
|
|
### 36.7,
|
|
### 37.6,
|
|
### 38.4,
|
|
### 39.2,
|
|
### 40.0,
|
|
### 40.8,
|
|
### 42.3
|
|
## ]
|
|
|
|
# currents = [
|
|
# 1.72090994e-04, 1.19335371e+01, 1.68765438e+01, 2.06694283e+01,
|
|
# 2.38669628e+01, 2.66840341e+01, 2.92308494e+01, 3.15728768e+01,
|
|
# 3.37527725e+01, 3.58001658e+01, 3.77366295e+01, 3.95784494e+01,
|
|
# 4.13382779e+01, 4.30261768e+01, 4.46503044e+01, 4.62173840e+01,
|
|
# 4.77330347e+01, 4.92020095e+01, 5.06283713e+01, 5.20156260e+01,
|
|
# 5.33668232e+01, 5.46846359e+01, 5.59714223e+01, 5.72292751e+01,
|
|
# 5.84600621e+01, 5.96654582e+01, 6.08469725e+01, 6.20059702e+01,
|
|
# 6.31436911e+01, 6.42612654e+01, 6.53597265e+01, 6.64400224e+01,
|
|
# 6.75030253e+01, 6.85495396e+01, 6.95803094e+01, 7.05960243e+01,
|
|
## 7.15973250e+01, 7.25848080e+01, 7.35590300e+01, 7.45205108e+01,
|
|
## 7.54697376e+01, 7.64071670e+01, 7.73332280e+01, 7.82483243e+01,
|
|
## 7.91528361e+01, 8.00471224e+01, 8.09315219e+01, 8.18063555e+01,
|
|
## 8.26719268e+01, 8.35285237e+01, 8.43764195e+01
|
|
# 7.45205108e+01,
|
|
# 7.82483243e+01,
|
|
# 8.18063555e+01,
|
|
# ]
|
|
|
|
# for i in range(100):
|
|
|
|
# for I in currents:
|
|
# chic_delay.set(I).wait()
|
|
|
|
# for energy1 in (395, 403, 406, 420):
|
|
# und1.set(energy1).wait()
|
|
|
|
# for energy2 in (543,):
|
|
# und2.set(energy2).wait()
|
|
|
|
# fname = f"overnight10_{i:04}_{energy1}eV_{energy2}eV_{I}A"
|
|
# print(fname)
|
|
|
|
# while check_intensity.wants_repeat():
|
|
# daq.acquire(fname, n_pulses=1000 * 2).wait()
|
|
|
|
# cycle_magnet().wait()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#def morning():
|
|
## this for the signal
|
|
# currents = [
|
|
# 10.0,
|
|
## 28.83830235412312,
|
|
## 30.977257705828176,
|
|
# 31.99314930809352,
|
|
## 32.977757827608926,
|
|
## 33.93380646207095,
|
|
## 34.86364484244994,
|
|
## 35.76931706628362,
|
|
## 36.652614587304065,
|
|
## 37.51511788345494,
|
|
## 38.358229684315006,
|
|
# 39.18320176115609,
|
|
## 39.99115673481851,
|
|
## 40.78310599684759,
|
|
## 41.55996455126603,
|
|
## 43.071659987530104,
|
|
# 43.80,
|
|
## 44.54,
|
|
# 50.5,
|
|
# 62.0,
|
|
# 80.0,
|
|
# 100.0
|
|
# ]
|
|
|
|
### this for the reference
|
|
## currents = [
|
|
## 30.977257705828176,
|
|
## 39.18320176115609,
|
|
## 41.55996455126603,
|
|
## ]
|
|
|
|
# # change number here, in case of repeat
|
|
# for i in [0]:
|
|
# cycle_magnet().wait()
|
|
|
|
# for I in currents:
|
|
# chic_delay.set(I).wait()
|
|
|
|
# for energy1 in (406,): # if done, switch to: 403
|
|
# und1.set(energy1).wait()
|
|
|
|
# for energy2 in range(530, 545+1):
|
|
# und2.set(energy2).wait()
|
|
|
|
# # adjust name here (5 should be the next correct number)
|
|
# fname = f"afternoon16_N2O_{i:04}_{energy1}eV_{energy2}eV_{I}A"
|
|
# print(fname)
|
|
|
|
# while check_intensity.wants_repeat():
|
|
# daq.acquire(fname, n_pulses=1000 * 2).wait()
|
|
|
|
|
|
|
|
|
|
|
|
#def mourning():
|
|
# currents = [
|
|
# 10.0,
|
|
# 31.99314930809352,
|
|
# 39.18320176115609,
|
|
# 43.80,
|
|
# 50.5,
|
|
# 62.0,
|
|
# 80.0,
|
|
# 100.0
|
|
# ]
|
|
#
|
|
# end_time = datetime(2021, 11, 29, 7, 45)
|
|
#
|
|
# for i in range(100):
|
|
# now = datetime.now()
|
|
# if now > end_time:
|
|
# break
|
|
#
|
|
# for I in currents:
|
|
# chic_delay.set(I).wait()
|
|
#
|
|
# for energy1 in (406,): # if done, switch to: 403
|
|
# und1.set(energy1).wait()
|
|
#
|
|
# for energy2 in range(530, 545+1):
|
|
# und2.set(energy2).wait()
|
|
#
|
|
# fname = f"afternoon17_N2O_{i:04}_{energy1}eV_{energy2}eV_{I}A"
|
|
# print(datetime.now(), fname)
|
|
#
|
|
# while check_intensity.wants_repeat():
|
|
# daq.acquire(fname, n_pulses=1000 * 2).wait()
|
|
#
|
|
# cycle_magnet().wait()
|
|
#
|
|
#
|
|
#
|
|
#def klappe_zu():
|
|
# shutter1 = PV("SATFE10-OPSH066:REQUEST")
|
|
# shutter2 = PV("SATOP21-OPSH138:REQUEST")
|
|
#
|
|
# end_time = datetime(2021, 11, 29, 8)
|
|
#
|
|
# while True:
|
|
# now = datetime.now()
|
|
# if now > end_time:
|
|
# break
|
|
# print(now)
|
|
# sleep(30)
|
|
#
|
|
# print("close shutters", datetime.now())
|
|
# shutter1.put(0)
|
|
# shutter2.put(0)
|
|
|
|
|
|
|
|
|
|
def TTmeasurements(daq, numIterations, nBackground, nMeas):
|
|
#increment run number
|
|
print(daq.pgroup)
|
|
repratefactor = 10 #check reprate of machine
|
|
|
|
shutter266 = PV('SLAAT21-LDIO-LAS6291:SET_BO01')
|
|
exp_delay = Motor("SLAAT21-LMOT-M704:MOT", name="Laser Exp delay")
|
|
|
|
dsStart = exp_delay.get()
|
|
|
|
### take background Time tool:
|
|
for i in range(0,numIterations):
|
|
|
|
# #close shutter
|
|
# shutter266.put(1)
|
|
# ### Take data
|
|
# #timestamp = datetime.today().strftime("%d_%m_%H_%M")
|
|
# fname = f"TimeToolBackground_{i}"
|
|
# daq.acquire(fname, n_pulses=nBackground * repratefactor)
|
|
# #Open shutter
|
|
# shutter266.put(0)
|
|
|
|
|
|
### take spectrometer bacground Time tool:
|
|
#while shutters open
|
|
#move away from T0
|
|
exp_delay.set(dsStart-1)
|
|
sleep(3)
|
|
### Take data
|
|
#timestamp = datetime.today().strftime("%d_%m_%H_%M")
|
|
fname = f"SpectrometerBackground_{i}"
|
|
daq.acquire(fname, n_pulses=nBackground * repratefactor)
|
|
#move back to T0
|
|
exp_delay.set(dsStart)
|
|
sleep(3)
|
|
### measure:
|
|
|
|
#timestamp = datetime.today().strftime("%d_%m_%H_%M")
|
|
fname = f"Measurement_{i}"
|
|
daq.acquire(fname, n_pulses=nMeas * repratefactor)
|
|
|
|
# n_pulses=nMeas * repratefactor
|
|
# scan.scan1D(exp_delay, start, stop, step, n_pulses, fname, return_to_initial_values=True)
|
|
|
|
|
|
def TTmeasurementsScan(daq, scan, sStage, numIterations, nBackground, nMeas, start, stop, step):
|
|
#increment run number
|
|
print(daq.pgroup)
|
|
repratefactor = 10 #check reprate of machine
|
|
print(sStage.name)
|
|
print(sStage.get())
|
|
|
|
shutter266 = PV('SLAAT21-LDIO-LAS6291:SET_BO01')
|
|
# delayStage = PV('SLAAT21-LMOT-M704:MOT.VAL')
|
|
delay = Motor("SLAAT21-LMOT-M704:MOT", name="Laser Exp delay")
|
|
|
|
dsStart = delay.get()
|
|
|
|
### take background Time tool:
|
|
for i in range(0,numIterations):
|
|
|
|
# #close shutter
|
|
# shutter266.put(1)
|
|
# ### Take data
|
|
# #timestamp = datetime.today().strftime("%d_%m_%H_%M")
|
|
# fname = f"TimeToolBackground_{i}"
|
|
# daq.acquire(fname, n_pulses=nBackground * repratefactor)
|
|
# #Open shutter
|
|
# shutter266.put(0)
|
|
|
|
|
|
### take spectrometer bacground Time tool:
|
|
#while shutters open
|
|
#move away from T0
|
|
delay.set(dsStart-1)
|
|
sleep(3)
|
|
### Take data
|
|
#timestamp = datetime.today().strftime("%d_%m_%H_%M")
|
|
fname = f"SpectrometerBackground_{i}"
|
|
daq.acquire(fname, n_pulses=nBackground * repratefactor)
|
|
#move back to T0
|
|
delay.set(dsStart)
|
|
sleep(3)
|
|
|
|
### measure:
|
|
|
|
#timestamp = datetime.today().strftime("%d_%m_%H_%M")
|
|
fname = f"Measurement_{i}"
|
|
# daq.acquire(fname, n_pulses=nMeas * repratefactor)
|
|
|
|
n_pulses=nMeas * repratefactor
|
|
|
|
print(sStage.get())
|
|
scan.scan1D(sStage, start, stop, step, n_pulses, fname, return_to_initial_values=True, relative=True)
|
|
|
|
|
|
|
|
from tqdm import trange
|
|
|
|
def focus_test(daq):
|
|
daq.pgroup = "p19743"
|
|
# daq.pgroup = "p19509"
|
|
i = 1
|
|
while True:
|
|
i += 1
|
|
name = f"focus_test2_{i}"
|
|
daq.acquire(name, n_pulses=1000)
|
|
print("sleep")
|
|
for _ in trange(900):
|
|
sleep(1)
|
|
|
|
|
|
|
|
|
|
|
|
#def scan_with_bkg():
|
|
# start = 102.1
|
|
# stop = 102.4
|
|
# step = 0.015
|
|
|
|
# n_pulses = 1 * 1000
|
|
|
|
# bkg = 0
|
|
|
|
# for i in range(1000):
|
|
# print(i, "sig")
|
|
# delay.set(start).wait()
|
|
# sleep(10)
|
|
# scan.scan1D(delay, start, stop, step, n_pulses, f"TT_overnight2_sig_{i:04}", return_to_initial_values=False)
|
|
|
|
# print(i, "bkg")
|
|
# delay.set(bkg).wait()
|
|
# daq.acquire(f"TT_overnight2_bkg_{i:04}", n_pulses=n_pulses)
|
|
# sleep(10)
|
|
|
|
|
|
|
|
|
|
|
|
from devices.simone import Magnet, Frequency
|
|
|
|
from itertools import count
|
|
from time import sleep
|
|
|
|
magnet = Magnet()
|
|
freq = Frequency()
|
|
shutter = Shutter("SATOP21-OPSH138")
|
|
|
|
def overnight():
|
|
|
|
pos_ref = -0.30145 #-0.857
|
|
pos_sig = -0.9516
|
|
|
|
for ii in range(1,4):
|
|
|
|
freq.set(ii)
|
|
|
|
frequency = 6.2832+0.1428*ii #6.2832 #GHz
|
|
|
|
delays1 = [ 0, 5/8, 1/8, 7/8]
|
|
delays2 = [3/8, 2/8, 6/8, 4/8]
|
|
|
|
n_pulses = 1000
|
|
Emin, Emax, Edelta = 708, 720, 2
|
|
|
|
for i in range(12):
|
|
#for i in count():
|
|
shutter.close()
|
|
mot3_x.set(pos_ref)
|
|
sleep(1)
|
|
shutter.open()
|
|
sleep(1)
|
|
|
|
magnet.set(0)
|
|
print("delay:", magnet)
|
|
scan.scan1D(und, Emin, Emax, Edelta, n_pulses, f"evening02_ref_{frequency}_{i:04}", return_to_initial_values=False)
|
|
|
|
shutter.close()
|
|
mot3_x.set(pos_sig)
|
|
sleep(1)
|
|
shutter.open()
|
|
|
|
for delay in delays1:
|
|
magnet.set(delay/frequency*1000)
|
|
print("delay:", magnet)
|
|
scan.scan1D(und, Emin, Emax, Edelta, n_pulses, f"evening02_sig_{frequency}_{i:04}_{delay}", return_to_initial_values=False)
|
|
delays1, delays2 = delays2, delays1
|
|
|
|
#shutter.open()
|
|
|
|
|
|
|
|
|
|
def smooth_attenuator():
|
|
photon_energies = [525, 600]
|
|
iterations = range(24)
|
|
|
|
for p in photon_energies:
|
|
und.set(p).wait()
|
|
und.set(p).wait()
|
|
for i in iterations:
|
|
name = f"n2o_{p}eV_{i:02}"
|
|
print(name)
|
|
daq.acquire(name, n_pulses=60000)
|
|
|
|
print("close shutter")
|
|
shutter.close()
|
|
|
|
|
|
|
|
|
|
|