From 983ff0abd16c545e9dd04f09452d382ca74bd09d Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Thu, 2 Dec 2021 13:25:45 +0100 Subject: [PATCH] N2O repeat overnights; shutter closer --- overnight.py | 621 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 587 insertions(+), 34 deletions(-) diff --git a/overnight.py b/overnight.py index 3dcc296..2026273 100644 --- a/overnight.py +++ b/overnight.py @@ -412,50 +412,603 @@ from slic.utils import nice_arange -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 +#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 ] - base = "CH3I_C1s_with_shutter_200_microJ" + end_time = datetime(2021, 11, 29, 7, 45) - x0 = -2.816 - start = x0 - 0.12 - stop = x0 + 0.12 - step = 0.003 + for i in range(100): + now = datetime.now() + if now > end_time: + break - n_pulses = 4 * 250 + for I in currents: + chic_delay.set(I).wait() - for i in range(currents): - chic_delay.set(I).wait() + for energy1 in (406,): # if done, switch to: 403 + und1.set(energy1).wait() - print("Chicane set to :",i) + for energy2 in range(530, 545+1): + und2.set(energy2).wait() - 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) + fname = f"afternoon17_N2O_{i:04}_{energy1}eV_{energy2}eV_{I}A" + print(datetime.now(), fname) - print("close shutter") - shutter.put(0) - sleep(3) + while check_intensity.wants_repeat(): + daq.acquire(fname, n_pulses=1000 * 2).wait() - print(i, "bkg") - daq.acquire(f"{base}_bkg_{i:04}", n_pulses=n_pulses) + 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) - print("open shutter") - shutter.put(1) - sleep(3)