Changes to psi_device and app_config to add gui options for JFJoch. PSI-device now parses these messages in a message to JFJoch
This commit is contained in:
134
app_config.py
134
app_config.py
@@ -57,9 +57,13 @@ class AppCfg(QSettings):
|
||||
DT_HOST="deltatau/host"
|
||||
DT_MISC="deltatau/miscellaneous"
|
||||
|
||||
DATA_PROC="data_processing"
|
||||
|
||||
DAQ_DET="daq/detector" #json
|
||||
DAQ_LOC="daq/location" #json
|
||||
DAQ_RUN="daq/run" #json
|
||||
DAQ_SAMPLE="daq/sample"#json
|
||||
DAQ_UC="daq/unit_cell" #json
|
||||
DAQ_BS_CH="daq/bs_channels" #list of str
|
||||
DAQ_PV_CH="daq/pv_channels" #list of str
|
||||
|
||||
@@ -120,6 +124,23 @@ class AppCfg(QSettings):
|
||||
dflt.append((AppCfg.DT_HOST, 'SAR-CPPM-EXPMX1'))
|
||||
if AppCfg.DT_MISC not in keys:
|
||||
dflt.append((AppCfg.DT_MISC,{'show_plots':True, 'vel_scl':1.0, 'fel_per':10.0, 'time_ofs':0.03, 'time_cor':0.0005, 'sync_mode':1, 'sync_flag':3, 'verbose':0xff}))
|
||||
|
||||
if AppCfg.DATA_PROC not in keys:
|
||||
dflt.append((AppCfg.DATA_PROC, {
|
||||
'indexing' : "xgandalf-latt-cell",
|
||||
'peaks' : "peakfinder8",
|
||||
'integration' : "rings-nocen-nograd",
|
||||
'tolerance': "10.0,10.0,10.0,2,3,2",
|
||||
'threshold': 10,
|
||||
'min-snr' : 5,
|
||||
'int-radius' : "5,7,9",
|
||||
'min-pix-count' : 1,
|
||||
'min-peaks' : 6,
|
||||
'multi' : False,
|
||||
'check-peaks' : False,
|
||||
'retry' : False,
|
||||
}))
|
||||
|
||||
if AppCfg.DAQ_DET not in keys:
|
||||
dflt.append((AppCfg.DAQ_DET, {
|
||||
"name" : "JF17T16V01",
|
||||
@@ -133,9 +154,31 @@ class AppCfg(QSettings):
|
||||
"crystfel_lists_laser" : True,
|
||||
}))
|
||||
if AppCfg.DAQ_LOC not in keys:
|
||||
dflt.append((AppCfg.DAQ_LOC, {'end_station':"cristallina", 'p_group':"p20516", 'jungfraujoch' : False,}))
|
||||
dflt.append((AppCfg.DAQ_LOC, {
|
||||
'end_station': "cristallina",
|
||||
'p_group': "p20516",
|
||||
'jungfraujoch': False,
|
||||
'event_trigger': 63,
|
||||
'beam_x': 1613.0,
|
||||
'beam_y': 1666.0,
|
||||
'incident_energy_kev': 12.4,
|
||||
'geometry_file_location': "/res/geometry_files/JF17T16V01.geom",
|
||||
}))
|
||||
|
||||
if AppCfg.DAQ_SAMPLE not in keys:
|
||||
dflt.append((AppCfg.DAQ_SAMPLE, {'protein':'hewl',}))
|
||||
if AppCfg.DAQ_UC not in keys:
|
||||
dflt.append((AppCfg.DAQ_UC, {'a':78.0, 'b':78.0, 'c':38.0 , 'alpha':90.0, 'beta':90.0, 'gamma':90.0, 'space_group_number':96,}))
|
||||
if AppCfg.DAQ_RUN not in keys:
|
||||
dflt.append((AppCfg.DAQ_RUN, {'prefix':'jf', 'padding':10, 'cell_name' : 'na', 'block_size':1000,}))
|
||||
dflt.append((AppCfg.DAQ_RUN, {
|
||||
'prefix':'jf',
|
||||
'padding':10,
|
||||
'cell_name' : 'na',
|
||||
'triggered': False,
|
||||
'laser_delay': '',
|
||||
'laser_pulse_energy': '',
|
||||
'block_size':1000,
|
||||
}))
|
||||
#if AppCfg.DAQ_BS_CH not in keys:
|
||||
dflt.append((AppCfg.DAQ_BS_CH, ("SARES30-LSCP1-CRISTA1:CH0:1","SAR-CVME-TIFALL6:EvtSet", "SARFE10-PBPG050:PHOTON-ENERGY-PER-PULSE-AVG", "SARFE10-PBIG050-EVR0:CALCI", "SARFE10-PBPG050:HAMP-INTENSITY-CAL",
|
||||
"SARFE10-PBPS053:INTENSITY", "SARFE10-PBPS053:XPOS", "SARFE10-PBPS053:YPOS", "SARFE10-PSSS059:SPECTRUM_X", "SARFE10-PSSS059:SPECTRUM_Y", "SARFE10-PSSS059:SPECTRUM_Y_SUM",
|
||||
@@ -199,7 +242,8 @@ class AppCfg(QSettings):
|
||||
AppCfg.GEO_FND_FID, AppCfg.GEO_AUTOFOC,
|
||||
AppCfg.DFT_POS_DET,AppCfg.DFT_POS_GONIO,AppCfg.DFT_POS_PST,AppCfg.DFT_POS_COL,AppCfg.DFT_POS_BKLGT,
|
||||
AppCfg.DT_MISC,
|
||||
AppCfg.DAQ_DET,AppCfg.DAQ_LOC,AppCfg.DAQ_RUN,AppCfg.DAQ_BS_CH,AppCfg.DAQ_PV_CH
|
||||
AppCfg.DATA_PROC,
|
||||
AppCfg.DAQ_DET,AppCfg.DAQ_LOC,AppCfg.DAQ_RUN,AppCfg.DAQ_BS_CH,AppCfg.DAQ_PV_CH,AppCfg.DAQ_UC,AppCfg.DAQ_SAMPLE
|
||||
):
|
||||
val=json.dumps(val, cls=MyJsonEncoder)
|
||||
val=val.replace('"',"'")
|
||||
@@ -226,7 +270,8 @@ class AppCfg(QSettings):
|
||||
AppCfg.GEO_FND_FID, AppCfg.GEO_AUTOFOC,
|
||||
AppCfg.DFT_POS_DET,AppCfg.DFT_POS_GONIO,AppCfg.DFT_POS_PST,AppCfg.DFT_POS_COL,AppCfg.DFT_POS_BKLGT,
|
||||
AppCfg.DT_MISC,
|
||||
AppCfg.DAQ_DET,AppCfg.DAQ_LOC,AppCfg.DAQ_RUN,AppCfg.DAQ_BS_CH,AppCfg.DAQ_PV_CH
|
||||
AppCfg.DATA_PROC,
|
||||
AppCfg.DAQ_DET,AppCfg.DAQ_LOC,AppCfg.DAQ_RUN,AppCfg.DAQ_BS_CH,AppCfg.DAQ_PV_CH,AppCfg.DAQ_UC,AppCfg.DAQ_SAMPLE
|
||||
):
|
||||
if val is not None:
|
||||
val=val.replace("'",'"')
|
||||
@@ -281,10 +326,15 @@ class WndParameter(QMainWindow):
|
||||
geo_cam_param = cfg.value(AppCfg.GEO_CAM_PARAM)
|
||||
dt_host = cfg.value(AppCfg.DT_HOST)
|
||||
dt_misc = cfg.value(AppCfg.DT_MISC)
|
||||
|
||||
data_proc = cfg.value(AppCfg.DATA_PROC)
|
||||
|
||||
daq_det = cfg.value(AppCfg.DAQ_DET)
|
||||
daq_loc = cfg.value(AppCfg.DAQ_LOC)
|
||||
daq_run = cfg.value(AppCfg.DAQ_RUN)
|
||||
|
||||
daq_sample = cfg.value(AppCfg.DAQ_SAMPLE)
|
||||
daq_uc = cfg.value(AppCfg.DAQ_UC)
|
||||
|
||||
tip_sync_mode='''\
|
||||
default=2
|
||||
@@ -387,8 +437,8 @@ verbose bits:
|
||||
{'name':'pos_diode','title':'Diode pos', 'value':dft_pos_bklgt.get('pos_diode', 0), 'type':'float','limits':(-31000, 1500), 'step':10, 'decimals':5, 'suffix':'ustep'},
|
||||
]},
|
||||
{'name': AppCfg.DFT_POS_DET, 'title':'detector reference positions', 'type':'group','expanded':False, 'children':[
|
||||
{'name':'pos_in', 'title':'In position', 'value':dft_pos_det.get('pos_in',0), 'type':'float', 'limits':(-200, 200),'step':0.1, 'decimals':5, 'suffix':' mm'},
|
||||
{'name':'pos_out','title':'Out position', 'value':dft_pos_det.get('pos_out',0), 'type':'float', 'limits':(-200, 200),'step':0.1, 'decimals':5, 'suffix':' mm'},
|
||||
{'name':'pos_in', 'title':'In position', 'value':dft_pos_det.get('pos_in',0), 'type':'float', 'limits':(112, 280),'step':0.1, 'decimals':5, 'suffix':' mm'},
|
||||
{'name':'pos_out','title':'Out position', 'value':dft_pos_det.get('pos_out',0), 'type':'float', 'limits':(112, 280),'step':0.1, 'decimals':5, 'suffix':' mm'},
|
||||
{'name':'set_in', 'title':'use current position as "in"', 'type':'action'},
|
||||
{'name':'set_out', 'title':'use current position as "out"', 'type':'action'},
|
||||
]},
|
||||
@@ -411,29 +461,62 @@ verbose bits:
|
||||
{'name':'verbose', 'value':dt_misc['verbose'], 'type':'int', 'tip':tip_verbose},
|
||||
]},
|
||||
]},
|
||||
|
||||
{'name': AppCfg.DATA_PROC, 'title':'data processing parameters', 'type':'group','expanded':False, 'children':[
|
||||
{'name':'indexing', 'value':data_proc['indexing'], 'type':'str', 'tip':"default=xgandalf-latt-cell"},
|
||||
{'name':'peaks', 'value':data_proc['peaks'], 'type':'str', 'tip':"default=peakfinder8"},
|
||||
{'name':'integration', 'value':data_proc['integration'], 'type':'str', 'tip':"default=rings-nocen-nograd"},
|
||||
{'name':'tolerance', 'value':data_proc['tolerance'], 'type':'str', 'tip':"default=10.0,10.0,10.0,2,3,2"},
|
||||
{'name':'threshold', 'value':data_proc['threshold'], 'type':'int', 'tip':"default=10"},
|
||||
{'name':'min-snr', 'value':data_proc['min-snr'], 'type':'int', 'tip':"default=5"},
|
||||
{'name':'min-pix-count', 'value':data_proc['min-pix-count'], 'type':'int', 'tip':"default=1"},
|
||||
{'name':'min-peaks', 'value':data_proc['min-peaks'], 'type':'int', 'tip':"default=6"},
|
||||
{'name':'int-radius', 'value':data_proc['int-radius'], 'type':'str', 'tip':"default=5,7,9"},
|
||||
{'name':'multi', 'value':data_proc['multi'], 'type':'bool', 'tip':"default=False"},
|
||||
{'name':'check-peaks', 'value':data_proc['check-peaks'], 'type':'bool', 'tip':"default=False"},
|
||||
{'name':'retry', 'value':data_proc['retry'], 'type':'bool', 'tip':"default=False"},
|
||||
]},
|
||||
{'name':'data acquisition', 'type':'group','expanded':False, 'children':[
|
||||
{'name':AppCfg.DAQ_DET, 'title':'detector', 'type':'group', 'children':[
|
||||
{'name':'name', 'value':daq_det['name'], 'type':'str',},
|
||||
{'name':'adc_to_energy', 'value':daq_det['adc_to_energy'], 'type':'bool'},
|
||||
{'name':'compression', 'value':daq_det['compression'], 'type':'bool'},
|
||||
{'name':'factor', 'value':daq_det['factor'], 'type':'float','step':0.01},
|
||||
{'name':'geometry', 'value':daq_det['geometry'], 'type':'bool'},
|
||||
{'name':AppCfg.DAQ_DET, 'title':'legacy daq parameters', 'type':'group', 'children':[
|
||||
{'name':'name', 'value':daq_det['name'], 'type':'str',},
|
||||
{'name':'adc_to_energy', 'value':daq_det['adc_to_energy'], 'type':'bool'},
|
||||
{'name':'compression', 'value':daq_det['compression'], 'type':'bool'},
|
||||
{'name':'factor', 'value':daq_det['factor'], 'type':'float', 'step':0.01},
|
||||
{'name':'geometry', 'value':daq_det['geometry'], 'type':'bool'},
|
||||
{'name':'double_pixels_action', 'value':daq_det['double_pixels_action'], 'type':'str'},
|
||||
{'name':'remove_raw_files', 'value':daq_det['remove_raw_files'], 'type':'bool'},
|
||||
{'name':'save_dap_results', 'value':daq_det['save_dap_results'], 'type':'bool'},
|
||||
{'name':'crystfel_lists_laser','value':daq_det['crystfel_lists_laser'],'type':'bool'}
|
||||
{'name':'remove_raw_files', 'value':daq_det['remove_raw_files'], 'type':'bool'},
|
||||
{'name':'save_dap_results', 'value':daq_det['save_dap_results'], 'type':'bool'},
|
||||
{'name':'crystfel_lists_laser', 'value':daq_det['crystfel_lists_laser'], 'type':'bool'}
|
||||
]},
|
||||
{'name':AppCfg.DAQ_LOC, 'title':'location', 'type':'group', 'children':[
|
||||
{'name':'end_station', 'value':daq_loc['end_station'], 'type':'str',},
|
||||
{'name':'p_group', 'value':daq_loc['p_group'], 'type':'str'},
|
||||
{'name':'jungfraujoch', 'value':daq_loc['jungfraujoch'], 'type':'bool'},
|
||||
{'name':AppCfg.DAQ_LOC, 'title':'data handling', 'type':'group', 'children':[
|
||||
{'name':'end_station', 'value':daq_loc['end_station'], 'type':'str',},
|
||||
{'name':'p_group', 'value':daq_loc['p_group'], 'type':'str'},
|
||||
{'name':'jungfraujoch', 'value':daq_loc['jungfraujoch'], 'type':'bool'},
|
||||
{'name':'event_trigger', 'value':daq_loc['event_trigger'], 'type':'int', 'limits':(1, 256)},
|
||||
{'name':'beam_x', 'value':daq_loc['beam_x'], 'type':'float','step':0.001, 'decimals':3},
|
||||
{'name':'beam_y', 'value':daq_loc['beam_y'], 'type':'float','step':0.001, 'decimals':3},
|
||||
{'name':'incident_energy_kev', 'value':daq_loc['incident_energy_kev'], 'type':'float','step':0.001, 'decimals':5},
|
||||
{'name':'geometry_file_location', 'value':daq_loc['geometry_file_location'], 'type':'str',},
|
||||
]},
|
||||
{'name':AppCfg.DAQ_RUN, 'title':'location', 'type':'group', 'children':[
|
||||
{'name':'prefix', 'value':daq_run['prefix'], 'type':'str',},
|
||||
{'name':'padding','value':daq_run['padding'], 'type':'int'},
|
||||
{'name':'cell_name', 'value':daq_run['cell_name'], 'type':'str'},
|
||||
{'name':'block_size', 'value':daq_run['block_size'], 'type':'int'},
|
||||
{'name':AppCfg.DAQ_RUN, 'title':'run paramters', 'type':'group', 'children':[
|
||||
{'name':'prefix', 'value':daq_run['prefix'], 'type':'str'},
|
||||
{'name':'padding', 'value':daq_run['padding'], 'type':'int'}, #at some point move to old_daq_config
|
||||
{'name':'cell_name', 'value':daq_run['cell_name'], 'type':'str'}, #at some point move to old_daq_config
|
||||
{'name':'laser_delay', 'value':daq_run['laser_delay'], 'type':'str'},
|
||||
{'name':'laser_pulse_energy', 'value':daq_run['laser_pulse_energy'], 'type':'str'},
|
||||
{'name':'triggered', 'value':daq_run['triggered'], 'type':'bool'},
|
||||
{'name':'block_size', 'value':daq_run['block_size'], 'type':'int'},
|
||||
]},
|
||||
{'name':AppCfg.DAQ_SAMPLE, 'title':'sample paramters', 'type':'group', 'children':[
|
||||
{'name':'protein', 'value':daq_sample['protein'], 'type':'str',},
|
||||
{'name':AppCfg.DAQ_UC, 'title':'unit cell', 'type':'group', 'children':[
|
||||
{'name':'a', 'value':daq_uc['a'], 'type':'float', 'step':0.001, 'decimals':3},
|
||||
{'name':'b', 'value':daq_uc['b'], 'type':'float', 'step':0.001, 'decimals':3},
|
||||
{'name':'c', 'value':daq_uc['c'], 'type':'float', 'step':0.001, 'decimals':3},
|
||||
{'name':'alpha', 'value':daq_uc['alpha'], 'type':'float', 'step':0.001, 'decimals':3},
|
||||
{'name':'beta', 'value':daq_uc['beta'], 'type':'float', 'step':0.001, 'decimals':3},
|
||||
{'name':'gamma', 'value':daq_uc['gamma'], 'type':'float', 'step':0.001, 'decimals':3},
|
||||
{'name':'space_group_number', 'value':daq_uc['space_group_number'], 'type':'int'},
|
||||
]},
|
||||
]},
|
||||
{'name':AppCfg.DAQ_BS_CH, 'title':'list of beam-sync channels','value':' '.join(cfg.value(AppCfg.DAQ_BS_CH)), 'type':'str'},
|
||||
{'name':AppCfg.DAQ_PV_CH, 'title':'list of PV channels','value':' '.join(cfg.value(AppCfg.DAQ_PV_CH)), 'type':'str'},
|
||||
@@ -560,6 +643,7 @@ verbose bits:
|
||||
cfg.setValue(nm,lst)
|
||||
elif par_nm in (AppCfg.GBL_MISC,AppCfg.DT_MISC,
|
||||
AppCfg.GEO_FND_FID,AppCfg.GEO_AUTOFOC,
|
||||
AppCfg.DAQ_UC, AppCfg.DAQ_SAMPLE, AppCfg.DATA_PROC,
|
||||
AppCfg.DAQ_DET,AppCfg.DAQ_LOC,AppCfg.DAQ_RUN):
|
||||
d=dict(map(lambda x:(x.name(),x.value()), parent.children()))
|
||||
cfg.setValue(par_nm, d)
|
||||
|
||||
@@ -138,6 +138,7 @@ class Jungfrau:
|
||||
bs_channels = cfg.value(AppCfg.DAQ_BS_CH)
|
||||
pv_channels = cfg.value(AppCfg.DAQ_PV_CH)
|
||||
loc=cfg.value(AppCfg.DAQ_LOC)
|
||||
run=cfg.value(AppCfg.DAQ_RUN)
|
||||
dt_misc = cfg.value(AppCfg.DT_MISC)
|
||||
code_gen=kwargs.get('code_gen',0)
|
||||
sync_mode=dt_misc['sync_mode']
|
||||
@@ -145,15 +146,19 @@ class Jungfrau:
|
||||
self.n_pulses_run = None
|
||||
if loc['jungfraujoch']:
|
||||
try:
|
||||
self.jfj = JFJ("http://sf-daq-2:5232")
|
||||
#self.jfj = JFJ("http://sf-daq-2:5232") old port
|
||||
self.jfj = JFJ("http://sf-daq-2:8080") #new port
|
||||
self.detectors=None
|
||||
_log.info(f'JungFrauJoch connected')
|
||||
print('JungFrauJoch connected')
|
||||
except NameError as e:
|
||||
self.jfj = None
|
||||
_log.critical(f'JungfrauJoch not connected: {e}')
|
||||
is_scan_step=False
|
||||
else:
|
||||
self.jfj = None
|
||||
_log.info(f'JungFrauJoch is not in use')
|
||||
print('JungFrauJoch not in use')
|
||||
if sync_flag==0:
|
||||
grid_cnt=kwargs['grid']['count']
|
||||
repetitions=grid_cnt[0] #'x' or number of columns
|
||||
@@ -168,23 +173,43 @@ class Jungfrau:
|
||||
else:
|
||||
wait_pulses=kwargs['twait']//kwargs['tmove']
|
||||
#xray_seq=[0,]*wait_pulses+[1] # multiplier is proportional to wait_time i.e. 10 ms = 1, 20 ms =2, 30 ms =3.
|
||||
xray_sequence=[0,]*wait_pulses+[1]
|
||||
cta.seq[200]=xray_sequence*cta_multiplier # x-ray_shutter
|
||||
cta.seq[214] = [1,] + [0,] * (len(xray_sequence * cta_multiplier) -1)
|
||||
trigger_sequence=[1,]*wait_pulses+[1]
|
||||
cta.seq[215]=trigger_sequence*(cta_multiplier//2) # laser_shutter
|
||||
image_label_sequence = [0,] * wait_pulses + [1] + [0,] * wait_pulses + [0]
|
||||
cta.seq[216]=image_label_sequence*(cta_multiplier//2)
|
||||
cta.seq[219] = xray_sequence * cta_multiplier
|
||||
#xray_sequence=[0,]*wait_pulses+[1]
|
||||
#cta.seq[200]=xray_sequence*cta_multiplier # x-ray_shutter
|
||||
#cta.seq[214] = [1,] + [0,] * (len(xray_sequence * cta_multiplier) -1)
|
||||
#trigger_sequence = [1,] + [0,] * wait_pulses + [0,] * wait_pulses + [0]
|
||||
#cta.seq[215]=trigger_sequence*(cta_multiplier//2) # laser_shutter
|
||||
#image_label_sequence = [0,] * wait_pulses + [1] + [0,] * wait_pulses + [0]
|
||||
#cta.seq[216]=image_label_sequence*(cta_multiplier//2)
|
||||
#cta.seq[219] = xray_sequence * cta_multiplier
|
||||
|
||||
on_off_ratio = 2 #1 on to 1 off which means 2 in the whole sequence
|
||||
xray_sequence = [0,] * (wait_pulses - 1) + [1,] + [0,]
|
||||
cta.seq[200] = xray_sequence * cta_multiplier # x-ray_shutter
|
||||
cta.seq[214] = [1,] + [0,] * (len(xray_sequence * cta_multiplier) -1) #start motion
|
||||
if run["triggered"]:
|
||||
trigger_on = [0,] * wait_pulses + [1,]
|
||||
trigger_off = [0,] + [0,] * wait_pulses
|
||||
trigger_sequence = trigger_on * (on_off_ratio-1) + trigger_off
|
||||
image_on = [0,] * (wait_pulses - 1) + [1,] + [0,]
|
||||
image_label_sequence = [0,] +[0,] * wait_pulses + image_on * (on_off_ratio-1)
|
||||
cta.seq[215] = trigger_sequence * (cta_multiplier//on_off_ratio) # trigger (laser_shutter or droplet ejector)
|
||||
cta.seq[216] = image_label_sequence * (cta_multiplier//on_off_ratio) # image label (on or off)
|
||||
else:
|
||||
no_trigger_sequence = [0,] * (wait_pulses - 1) + [0,] + [0,]
|
||||
cta.seq[215] = no_trigger_sequence * cta_multiplier # x-ray_shutter # trigger (laser_shutter or droplet ejector)
|
||||
cta.seq[216] = no_trigger_sequence * cta_multiplier # x-ray_shutter # image label (on or off)1
|
||||
cta.seq[219] = xray_sequence * cta_multiplier # detector trigger
|
||||
|
||||
else:
|
||||
print('not code gen 3')
|
||||
# no extra rows 1:1
|
||||
cta.seq[214]=[1,]+[0,]*(cta_multiplier-1) #start motion
|
||||
cta.seq[200]=[1,]*cta_multiplier # x-ray_shutter
|
||||
cta.seq[200]=[1,]*cta_multiplier #uncomment me for normal operation
|
||||
#cta.seq[200]=[1,0,]*(cta_multiplier//2) # x-ray_shutter
|
||||
cta.seq[219]=[1,]*cta_multiplier #trigger detector
|
||||
cta.seq[215]=[1,0,]*(cta_multiplier//2) # Trigger 1:1
|
||||
cta.seq[216]=[1,0,]*(cta_multiplier//2) # Label image light dark 1:1
|
||||
if run["triggered"]:
|
||||
cta.seq[215]=[1,0,]*(cta_multiplier//2) # Trigger 1:1
|
||||
cta.seq[216]=[1,0,]*(cta_multiplier//2) # Label image light dark 1:1 #change back to 1,0 for normal on off measurements
|
||||
|
||||
self.n_pulses_run = len(cta.seq[200])*repetitions
|
||||
self.bsdata_scalar = self.n_pulses_run/number_of_appertures
|
||||
@@ -212,9 +237,9 @@ class Jungfrau:
|
||||
cfg=app._cfg
|
||||
run=cfg.value(AppCfg.DAQ_RUN)
|
||||
loc=cfg.value(AppCfg.DAQ_LOC)
|
||||
#data_proc=cfg.value(AppCfg.DATA_PROC)
|
||||
#daq_sample=cfg.value(AppCfg.DAQ_SAMPLE)
|
||||
#daq_uc=cfg.value(AppCfg.DAQ_UC)
|
||||
data_proc=cfg.value(AppCfg.DATA_PROC)
|
||||
daq_sample=cfg.value(AppCfg.DAQ_SAMPLE)
|
||||
daq_uc=cfg.value(AppCfg.DAQ_UC)
|
||||
try:
|
||||
self._pulse_id_start=int(self._pv_pulse_id.value)
|
||||
except TypeError as e:
|
||||
@@ -228,12 +253,18 @@ class Jungfrau:
|
||||
_log.info(f'self.n_pulses_run {self.n_pulses_run} is not equal to n_pulses_run {n_pulses_run}')
|
||||
#n_pulses_run*=2 # comment me out please when not using 10 ms wait (for stop and go)
|
||||
images_per_file = run['block_size']
|
||||
sample_name = run['prefix'] #daq_sample['sample_name'] #protein_name
|
||||
sample_name = daq_sample['protein'] #protein_name
|
||||
prefix = run['prefix']
|
||||
user_tag = f'{sample_name}_{prefix}'
|
||||
if self.jfj:
|
||||
daq_uc={"a":70,"b":70,"c":70,"alpha":90,"beta":90,"gamma":90}
|
||||
#daq_uc={"a":70,"b":70,"c":70,"alpha":90,"beta":90,"gamma":90}
|
||||
unit_cell = {"a":daq_uc['a'],"b":daq_uc['b'], "c":daq_uc['c'],"alpha":daq_uc['alpha'], "beta":daq_uc['beta'], "gamma":daq_uc['gamma']}
|
||||
geometry_file_location = loc['geometry_file_location']
|
||||
trigger_event = loc['event_trigger']
|
||||
trigger_flag = run['triggered']
|
||||
trigger_delay = run['laser_delay']
|
||||
laser_energy = run['laser_pulse_energy']
|
||||
|
||||
transmission_ATT53 = epics.caget("SARFE10-OATT053:UsrRec.TD")
|
||||
transmission_ATT150 = epics.caget("SAROP31-OATA150:UsrRec.TD")
|
||||
transmission = transmission_ATT53*transmission_ATT150
|
||||
@@ -250,16 +281,21 @@ class Jungfrau:
|
||||
_log.info(f'got endstation through gui:{endstation}')
|
||||
jfj_file_prefix = f'sf/{endstation}/data/{pgroup}/raw/run{run_number:04}-{user_tag}/data/acq'
|
||||
|
||||
header_appendix ='{'
|
||||
#for key in data_proc.keys():
|
||||
# value = data_proc[key]
|
||||
# pair =f'"{key}":{value},'
|
||||
# header_appendix+=pair
|
||||
header_appendix+='}' #some keys are different in JFJoch
|
||||
header_appendix = {}
|
||||
for key in data_proc.keys():
|
||||
value = data_proc[key]
|
||||
header_appendix[f'{key}']=value
|
||||
|
||||
header_appendix['geometry_file_location'] = geometry_file_location
|
||||
header_appendix['trigger_flag'] = trigger_flag
|
||||
header_appendix['trigger_delay'] = trigger_delay
|
||||
header_appendix['trigger_event'] = trigger_event
|
||||
header_appendix['laser_pulse_energy'] = trigger_delay
|
||||
header_appendix['file_prefix'] = f'run{run_number:04}-{user_tag}'
|
||||
|
||||
self.jfj.acquire(beam_x_pxl = loc['beam_x'], beam_y_pxl = loc['beam_y'], detector_distance_mm = detector_distance_mm, incident_energy_keV = loc['incident_energy_kev'], transmission = transmission,
|
||||
sample_name = sample_name, run_number = run_number, file_prefix = jfj_file_prefix, experiment_group=pgroup, ntrigger = self.images, images_per_file = images_per_file,
|
||||
unit_cell=unit_cell, space_group_number='42',#daq_uc['space_group_number'],
|
||||
unit_cell=unit_cell, space_group_number=daq_uc['space_group_number'],
|
||||
header_appendix=header_appendix
|
||||
)
|
||||
_log.info('JFJ primed')
|
||||
|
||||
Reference in New Issue
Block a user