From 381334dda139e83d4860c070da78b5cbd3a1f221 Mon Sep 17 00:00:00 2001 From: "FR@29iduser" <rodolakis@anl.gov> Date: Mon, 19 Sep 2022 14:11:54 -0500 Subject: [PATCH] commissioning and startoftheweek --- iexcode/instruments/AD_utilities.py | 19 +++++++++-- iexcode/macros/cam_macros.py | 9 +++-- iexcode/macros/commissioning.py | 53 ++++++++++++----------------- iexcode/macros/start_of_the_week.py | 23 +++++++------ 4 files changed, 57 insertions(+), 47 deletions(-) diff --git a/iexcode/instruments/AD_utilities.py b/iexcode/instruments/AD_utilities.py index cbe60f3..d1e324d 100644 --- a/iexcode/instruments/AD_utilities.py +++ b/iexcode/instruments/AD_utilities.py @@ -17,6 +17,19 @@ from epics import caget, caput import iexcode.instruments.cfg as iex from iexcode.instruments.files_and_folders import get_next_fileNumber +def AD_exposure_time(ADplugin,exp_time,**kwargs): + """ + sets the aquiretime and the exposure time + overwrites what is in kwargs + """ + kwargs.setdefault("P",ADplugin.split(":")[0]+":") + kwargs.setdefault("R","cam1:") + kwargs.setdefault("P",ADplugin.split(":")[0]+":") + kwargs.setdefault("R","cam1:") + + caput(kwargs["P"]+kwargs["R"]+"AcquireTime",exp_time) + caput(kwargs["P"]+kwargs["R"]+"AcquireTime",exp_time+.01) + def AD_CurrentDirectory(ADplugin): """ @@ -223,8 +236,7 @@ def AD_snap(ADplugin,**kwargs): AD_DoneSingleSave(ADplugin,**kwargs) if "ExposureTime" in kwargs: - caput(kwargs["P"]+kwargs["R"]+"AcquireTime",kwargs["ExposureTime"]) - caput(kwargs["P"]+kwargs["R"]+"AcquireTime",kwargs["ExposureTime"]+.01) + AD_exposure_time(ADplugin,kwargs["ExposureTime"]) caput(kwargs["P"]+kwargs["R"]+"Acquire","Acquire",wait=True,timeout=5*60) @@ -288,6 +300,9 @@ def ADplugin_ScanSetup(ADplugin, **kwargs): kwargs.setdefault("R","cam1:") AD_DoneSingleSave(ADplugin,**kwargs) + + if "ExposureTime" in kwargs: + AD_exposure_time(ADplugin,kwargs["ExposureTime"]) AD_SaveFileSetup(ADplugin,**kwargs) AD_ScanTrigger(ADplugin, **kwargs) diff --git a/iexcode/macros/cam_macros.py b/iexcode/macros/cam_macros.py index 5bb7727..6ec96d1 100644 --- a/iexcode/macros/cam_macros.py +++ b/iexcode/macros/cam_macros.py @@ -26,8 +26,13 @@ def cam_snap(cam_num,ADtype='TIFF',**kwargs): ADplugin = cam_pv_dictionary()[cam_num]+ADtype+"1:" AD_snap(ADplugin,**kwargs) - - +def cam_exposure_time(cam_num,ExposureTime): + """ + sets the exposure and acquire times for camera + """ + ADtype='TIFF' # doesn't matter which type since not saving + ADplugin = cam_pv_dictionary()[cam_num]+ADtype+"1:" + AD_exposure_time(ADplugin,ExposureTime) ############################################################################################################## ############################## Scanning with a camera ############################## diff --git a/iexcode/macros/commissioning.py b/iexcode/macros/commissioning.py index ab8f95e..e383283 100644 --- a/iexcode/macros/commissioning.py +++ b/iexcode/macros/commissioning.py @@ -1,20 +1,23 @@ from os.path import join, isfile, exists, dirname from time import sleep +import matplotlib.pyplot as plt from epics import caget, caput import iexcode.instruments.cfg as iex from iexcode.instruments.xrays import * +from iexcode.instruments.VLS_PGM import * +from iexcode.instruments.IEX_VPU import * + from iexcode.instruments.current_amplifiers import * from iexcode.instruments.diagnostics import diagnostics_all_out, diagnostics_all_in,diode_c,diode_d from iexcode.instruments.m3r import * +from iexcode.instruments.slits import _slits_wide_open_dictionary from iexcode.instruments.slits import * from iexcode.instruments.utilities import * from iexcode.instruments.electron_analyzer import scanEA - -from instruments.slits import exit_slit_get, slit1A_get, slit1A_set, slits_set_size -from instruments.xrays import apertures_set +from iexcode.macros.cam_macros import * from .quick_plot import fit_mda, mda_1D @@ -174,7 +177,7 @@ def scan_mono_vs_slit(slit='2V',slit_parameters=[0.25,-2,2,0.5],energy_parameter """ hv_start,hv_stop,hv_step = energy_parameters # Filling Scans: - mono_scan_fillin(hv_start,hv_stop,hv_step) + mono_scan(hv_start,hv_stop,hv_step) scan_narrow_slit(slit='2V',slit_parameters=[0.25,-2,2,0.5],**kwargs) # Resetting everybody to normal: @@ -208,9 +211,7 @@ def mono_MIR_GRT_find_offset(grt,slit_list,**kwargs): for s in slit_list: exit_slit_set(s) print("\r") - - mono_motor_scan_fillin("GRT:P",ang-0.0005*s, ang+0.0005*s ,0.00002*s) - iex.BL.mda.go(**kwargs) + mono_motor_scan("GRT:P",ang-0.0005*s, ang+0.0005*s ,0.00002*s) sleep(1) print("\r") @@ -547,6 +548,8 @@ def monoVslit_quick_scan(slit_name, **kwargs): H,V = _slits_wide_open_dictionary()[slit_name] + c = mono_grating_density_get()/1200.0 + slits_scan_center(slit_name,'V',-V,V,0.25,size=(inf,0.25*c)) sleep(1) @@ -593,7 +596,6 @@ def check_slit1A(step=0.1): VAL='29idb:m'+str(m)+'.VAL' RBV='29idb:m'+str(m)+'.RBV' iex.BL.mda.fillin(VAL,RBV,-4,4.0,step) - iex.BL.mda.go() FileNum1 = iex.BL.mda.lastFileNum() #scanning inboard-blade @@ -603,7 +605,6 @@ def check_slit1A(step=0.1): VAL='29idb:m'+str(m)+'.VAL' RBV='29idb:m'+str(m)+'.RBV' iex.BL.mda.fillin(VAL,RBV,-4,4.0,step) - iex.BL.mda.go() FileNum2 = iex.BL.mda.lastFileNum() return FileNum1, FileNum2 @@ -632,7 +633,7 @@ def check_ID_steering(hv=2000): - beam center vs fixed aperture: given by the position of the bump in the middle """ slit1A_set(0.25,0.25,0,0) - ID_SP_set(hv) + ID_set(hv) scan_slit_center('1H',-3,3,0.1) scan_slit_center('1V',-3,3,0.1) @@ -789,31 +790,18 @@ def FermiEdges(Energy,Slit): def QP_curves(ID_energy,ID_mode_list,hv_start,hv_stop,hv_step): """ + Sets the ID to setpoint and scans the mono for a list of polarizations + + Does not set the QP_ratio first use, ID_QP_mode_set(QP_ratio) """ exit_slit_set(200) - #Switch_Grating("MEG") - #print "\r" - #print "**************** QP OFF ****************" - #for mode in list_mode: - # Switch_IDMode(mode) - # SetID_Raw(hv) - # SetSlit_BL() - # SetMono(250) - # Scan_Mono(1,start,stop,step) - # Scan_Go("b",1) - #print "\r" - #print "**************** QP ON ****************" - #Switch_IDQP("on") + for ID_mode in ID_mode_list: polarization(ID_mode) - ID_SP_set(ID_energy) - apertures_set()() - mono_energy_set(250) - mono_scan_fillin(hv_start,hv_stop,hv_step) - iex.BL.mda.go() - #Switch_IDQP("off") - #Switch_Grating("HEG") - #Switch_IDMode("RCP") + ID_set_eV(ID_energy) + apertures_set() + mono_scan(hv_start,hv_stop,hv_step) + @@ -828,7 +816,8 @@ def scan_cam_motor(motor_name,start,stop,step,cam_num,ExposureTime): Previously: Pixel_Calibration """ - cam_scan_setup(cam_num,ADtype='TIFF') + + cam_scan_setup(cam_num,ADtype='TIFF',) iex.BL.motors.scan(motor_name,start,stop,step) cam_live() diff --git a/iexcode/macros/start_of_the_week.py b/iexcode/macros/start_of_the_week.py index 355cdc7..3fdeaa3 100644 --- a/iexcode/macros/start_of_the_week.py +++ b/iexcode/macros/start_of_the_week.py @@ -4,7 +4,7 @@ import matplotlib.pyplot as plt import iexcode.instruments.cfg as iex from iexcode.instruments.ARPES import ARPES_init -from iexcode.instrumetns.kappa import kappa_init +from iexcode.instruments.Kappa import kappa_init from iexcode.instruments.scanRecord import * from iexcode.instruments.diagnostics import _diagnostics_dict, diagnostics_all_out, diagnostics_all_in,diode_c,diode_d @@ -108,7 +108,7 @@ def StartOfTheWeek(GRT,branch,wait=False,**kwargs): BL_init('staff',reset=False,set_folders=False) switch_branch(branch) log_name_set('StartOfTheWeek_log.txt') - log_print("\n\n================== Start Of The Week @ "+today('slash')+':\n',FileName=FileName) + log_print("\n\n================== Start Of The Week @ "+today('slash')+':\n') for scan in kwargs['scanType']: if scan not in ['slit1','wire','flux','monoVslit']: @@ -191,12 +191,13 @@ def StartOfTheWeek(GRT,branch,wait=False,**kwargs): #want to refit while flag == 3: try: - fitH=input('do you want to fit mda #'+str(m-1)+' ie horizontal (y or n)? >') + fitH=input('do you want to fit mda #'+str(scanNum_h)+' ie horizontal (y or n)? >') if fitH.lower() == 'y' or fitH.lower() == 'yes': x1=input('x1 >') x2=input('x2 >') - h_position = ID_steering_plots(scanNum_h,detCA4,xrange=[float(x1),float(x2)]) fitV=input('do you want to fit mda #'+str(m)+' ie vertical (y or n)? >') - + h_position = ID_steering_plots(scanNum_h,detCA4,xrange=[float(x1),float(x2)]) + + fitV=input('do you want to fit mda #'+str(scanNum_v)+' ie vertical (y or n)? >') if fitV.lower() == 'y' or fitV.lower() == 'yes': x1=input('x1 >') x2=input('x2 >') @@ -242,7 +243,7 @@ def StartOfTheWeek(GRT,branch,wait=False,**kwargs): diagnostics_all_out(diode_stay_in=True) print("\n\n================== Mono/slit scans:") if kwargs['monoVslit_quick']: - for i,slit_name in enumerate(['slit2B','slit1A']) + for i,slit_name in enumerate(['slit2B','slit1A']): print('\n---------- Scanning '+slit_name+':\n') flag=2 while flag==2: @@ -262,7 +263,7 @@ def StartOfTheWeek(GRT,branch,wait=False,**kwargs): flag=interactive_fct(mirror=True) #want to refit while flag == 3: - fitV2=input('do you want to FIT mda #'+str(m-1)+' ie slit2-V (y or n)? >') + fitV2=input('do you want to FIT mda #'+str(scanNum_v)+' ie slit2-V (y or n)? >') if fitV2.lower() == 'y' or fitV2.lower() == 'yes': x1=input('x1 >') x2=input('x2 >') @@ -272,7 +273,7 @@ def StartOfTheWeek(GRT,branch,wait=False,**kwargs): if foo.lower() == 'y' or foo.lower() == 'yes': list_position[1]=V2 - fitH2=input('do you want to FIT mda #'+str(m)+' ie slit2-H (y or n)? >') + fitH2=input('do you want to FIT mda #'+str(scanNum_h)+' ie slit2-H (y or n)? >') if fitH2.lower() == 'y' or fitH2.lower() == 'yes': x1=input('x1 >') x2=input('x2 >') @@ -282,12 +283,12 @@ def StartOfTheWeek(GRT,branch,wait=False,**kwargs): if foo.lower() == 'y' or foo.lower() == 'yes': list_position[1]=H2 - if slit_name = 'slit2B': + if slit_name == 'slit2B': M0M1_steering(H2,V2) list_position[4] = V2 list_position[3] = H2 mirror = True - elif slit_name: 'slit1A': + elif slit_name == 'slit1A': list_position[2] = V2 list_position[1] = H2 mirror = False @@ -343,7 +344,7 @@ def StartOfTheWeek(GRT,branch,wait=False,**kwargs): plot_mda(scanNum,detDiode,Flux=3);plt.show() except: print('Unable to plot. Try:') - print("plot_mda("+str(m)+","+str(detDiode)+",flux=3);plt.show()") + print("plot_mda("+str(scanNum)+","+str(detDiode)+",flux=3);plt.show()") flag=interactive_fct() if flag == '': return -- GitLab