def make_psana_cfg_file_for_cora_split (self) : self.path_in = apputils.AppDataPath('CorAna/scripts/psana-cora-split.cfg').path() self.path_out = fnm.path_cora_split_psana_cfg() self.d_subs = {'FNAME_XTC' : fnm.path_data_xtc_cond(), 'SKIP' : str( cp.bat_data_start.value() - 1 ), 'EVENTS' : str( cp.bat_data_end.value() - cp.bat_data_start.value() + 1 ), 'IMG_REC_MODULE' : str( cp.bat_img_rec_mod.value() ), 'DETINFO' : str( cp.bat_det_info.value() ), 'PATH_PREFIX_CORA': str( fnm.path_prefix_cora() ), 'IMG_NPARTS' : str( cp.bat_img_nparts.value() ), 'FNAME_PEDS_AVE' : fnm.path_pedestals_ave(), } if cp.lld_type.value() == 'ADU' : # ['NONE', 'ADU', 'RMS'] self.d_subs['THRESHOLD_ADU' ] = str( cp.lld_adu.value() ) self.d_subs['THRESHOLD_NRMS'] = '0' self.d_subs['FNAME_PEDS_RMS'] = '' elif cp.lld_type.value() == 'RMS' : self.d_subs['THRESHOLD_ADU' ] = '-123456' # = default value - will not use trheshold self.d_subs['THRESHOLD_NRMS'] = str( cp.lld_rms.value() ) self.d_subs['FNAME_PEDS_RMS'] = fnm.path_pedestals_rms() else : self.d_subs['THRESHOLD_ADU' ] = '-123456' # = default value - will not use trheshold self.d_subs['THRESHOLD_NRMS'] = '0' self.d_subs['FNAME_PEDS_RMS'] = '' self.print_substitution_dict() self.make_cfg_file()
def make_psana_cfg_file_for_cora_split (self) : self.path_in = apputils.AppDataPath('CorAna/scripts/psana-cora-split.cfg').path() self.path_out = fnm.path_cora_split_psana_cfg() self.d_subs = {'FNAME_XTC' : fnm.path_data_xtc_cond(), 'SKIP' : str( cp.bat_data_start.value() - 1 ), 'EVENTS' : str( cp.bat_data_end.value() - cp.bat_data_start.value() + 1 ), 'IMG_REC_MODULE' : str( cp.bat_img_rec_mod.value() ), 'DETINFO' : str( cp.bat_det_info.value() ), 'PATH_PREFIX_CORA': str( fnm.path_prefix_cora() ), 'IMG_NPARTS' : str( cp.bat_img_nparts.value() ), 'FNAME_PEDS_AVE' : fnm.path_pedestals_ave(), } if cp.lld_type.value() == 'ADU' : # ['NONE', 'ADU', 'RMS'] self.d_subs['THRESHOLD_ADU' ] = str( cp.lld_adu.value() ) self.d_subs['DO_CONST_THR' ] = 'true' self.d_subs['THRESHOLD_NRMS'] = '0' self.d_subs['FNAME_PEDS_RMS'] = '' elif cp.lld_type.value() == 'RMS' : self.d_subs['THRESHOLD_ADU' ] = '0' self.d_subs['DO_CONST_THR' ] = 'false' self.d_subs['THRESHOLD_NRMS'] = str( cp.lld_rms.value() ) self.d_subs['FNAME_PEDS_RMS'] = fnm.path_pedestals_rms() else : self.d_subs['THRESHOLD_ADU' ] = '0' self.d_subs['DO_CONST_THR' ] = 'false' self.d_subs['THRESHOLD_NRMS'] = '0' self.d_subs['FNAME_PEDS_RMS'] = '' self.print_substitution_dict() self.make_cfg_file()
def setTableInfoItems(self): self.item_data_file.setText(os.path.basename(fnm.path_data_xtc_cond())) if cp.bat_dark_is_used.value(): self.item_dark_file.setText( os.path.basename(fnm.path_pedestals_ave())) else: self.item_dark_file.setText('is not used') if cp.ccdcorr_flatfield.value(): self.item_flat_file.setText(os.path.basename(fnm.path_flat())) else: self.item_flat_file.setText('is not used') if cp.ccdcorr_blemish.value(): self.item_blem_file.setText(os.path.basename(fnm.path_blem())) else: self.item_blem_file.setText('is not used') self.item_data_start.setText(str(cp.bat_data_start.value())) self.item_data_end.setText(str(cp.bat_data_end.value())) self.item_data_total.setText(str(cp.bat_data_total.value())) self.item_data_time.setText( str(cp.bat_data_dt_ave.value()) + u'\u00B1' + str(cp.bat_data_dt_rms.value()))
def make_psana_cfg_file_for_data_aver_v1(self): self.path_in = apputils.AppDataPath( 'CorAna/scripts/psana-data-aver.cfg').path() self.path_out = fnm.path_data_aver_psana_cfg() self.d_subs = { 'FNAME_XTC': fnm.path_data_xtc_cond(), 'SKIP': str(cp.bat_data_start.value() - 1), 'EVENTS': str(cp.bat_data_end.value() - cp.bat_data_start.value() + 1), 'IMG_REC_MODULE': str(cp.bat_img_rec_mod.value()), 'DETINFO': str(cp.bat_det_info.value()), 'FNAME_DATA_AVE': fnm.path_data_raw_ave(), 'FNAME_DATA_RMS': fnm.path_data_raw_rms(), 'SAT_THR_ADU': str(cp.ccdset_adcsatu.value()), 'SATPIX_MASK': fnm.path_satpix_mask(), 'SATPIX_FRAC': fnm.path_satpix_frac(), 'HOTPIX_MASK': '', # fnm.path_hotpix_mask(), 'HOTPIX_FRAC': '' # fnm.path_hotpix_frac() } # cp.ccdset_ccdgain.value() # cp.ccdset_ccdeff .value() #self.print_substitution_dict() #self.make_cfg_file() txt_cfg = self.text_for_section() self.save_cfg_file(txt_cfg, self.path_out)
def on_cbx_all_chunks(self): #if self.cbx_all_chunks .hasFocus() : par = cp.use_data_xtc_all par.setValue( self.cbx_all_chunks.isChecked() ) msg = 'on_cbx - set status of parameter use_data_xtc_all: ' + str(par.value()) logger.info(msg, __name__ ) self.setButtonState() self.edi_path.setText( fnm.path_data_xtc_cond() )
def make_psana_cfg_file_for_cora_split_v1(self): self.path_in = apputils.AppDataPath( 'CorAna/scripts/psana-cora-split.cfg').path() self.path_out = fnm.path_cora_split_psana_cfg() self.d_subs = { 'FNAME_XTC': fnm.path_data_xtc_cond(), 'SKIP': str(cp.bat_data_start.value() - 1), 'EVENTS': str(cp.bat_data_end.value() - cp.bat_data_start.value() + 1), 'IMG_REC_MODULE': str(cp.bat_img_rec_mod.value()), 'DETINFO': str(cp.bat_det_info.value()), 'PATH_PREFIX_CORA': str(fnm.path_prefix_cora()), 'IMG_NPARTS': str(cp.bat_img_nparts.value()), 'FNAME_PEDS_AVE': fnm.path_pedestals_ave(), 'FNAME_DATA_AVE': fnm.path_data_ave(), 'FNAME_DATA_RMS': fnm.path_data_rms() } fname_imon_cfg = fnm.path_cora_split_imon_cfg() self.make_imon_cfg_file(fname_imon_cfg) self.d_subs['FNAME_IMON_CFG'] = str(fname_imon_cfg) if cp.lld_type.value() == 'ADU': # ['NONE', 'ADU', 'RMS'] self.d_subs['THRESHOLD_ADU'] = str(cp.lld_adu.value()) self.d_subs['DO_CONST_THR'] = 'true' self.d_subs['THRESHOLD_NRMS'] = '0' self.d_subs['FNAME_PEDS_RMS'] = '' elif cp.lld_type.value() == 'RMS': self.d_subs['THRESHOLD_ADU'] = '0' self.d_subs['DO_CONST_THR'] = 'false' self.d_subs['THRESHOLD_NRMS'] = str(cp.lld_rms.value()) self.d_subs['FNAME_PEDS_RMS'] = fnm.path_pedestals_rms() else: self.d_subs['THRESHOLD_ADU'] = '0' self.d_subs['DO_CONST_THR'] = 'false' self.d_subs['THRESHOLD_NRMS'] = '0' self.d_subs['FNAME_PEDS_RMS'] = '' if os.path.lexists(fnm.path_cora_split_map_static_q()): self.d_subs['FNAME_MAP_BINS'] = fnm.path_cora_split_map_static_q() else: self.d_subs['FNAME_MAP_BINS'] = '' self.d_subs['FNAME_INT_BINS'] = fnm.path_cora_split_int_static_q() self.d_subs['NUMBER_OF_BINS'] = str(cp.ana_stat_part_q.value()) #self.print_substitution_dict() #self.make_cfg_file() txt_cfg = self.text_for_section() self.save_cfg_file(txt_cfg, self.path_out)
def make_psana_cfg_file_for_data_scan (self) : self.path_in = apputils.AppDataPath('CorAna/scripts/psana-data-scan.cfg').path() self.path_out = fnm.path_data_scan_psana_cfg() self.d_subs = {'FNAME_XTC' : fnm.path_data_xtc_cond(), 'SKIP' : 'IS_NOT_USED', 'EVENTS' : 'FOR_ALL_EVENTS', 'FNAME_TIMESTAMP_LIST' : fnm.path_data_scan_tstamp_list(), 'FNAME_INTENSITY_MONITORS_DATA' : fnm.path_data_scan_monitors_data(), 'FNAME_INTENSITY_MONITORS_COMMENTS' : fnm.path_data_scan_monitors_commments() } self.print_substitution_dict() self.make_cfg_file()
def make_psana_cfg_file_for_cora_split_v1 (self) : self.path_in = apputils.AppDataPath('CorAna/scripts/psana-cora-split.cfg').path() self.path_out = fnm.path_cora_split_psana_cfg() self.d_subs = {'FNAME_XTC' : fnm.path_data_xtc_cond(), 'SKIP' : str( cp.bat_data_start.value() - 1 ), 'EVENTS' : str( cp.bat_data_end.value() - cp.bat_data_start.value() + 1 ), 'IMG_REC_MODULE' : str( cp.bat_img_rec_mod.value() ), 'DETINFO' : str( cp.bat_det_info.value() ), 'PATH_PREFIX_CORA': str( fnm.path_prefix_cora() ), 'IMG_NPARTS' : str( cp.bat_img_nparts.value() ), 'FNAME_PEDS_AVE' : fnm.path_pedestals_ave(), 'FNAME_DATA_AVE' : fnm.path_data_ave(), 'FNAME_DATA_RMS' : fnm.path_data_rms() } fname_imon_cfg = fnm.path_cora_split_imon_cfg() self.make_imon_cfg_file (fname_imon_cfg) self.d_subs['FNAME_IMON_CFG' ] = str( fname_imon_cfg ) if cp.lld_type.value() == 'ADU' : # ['NONE', 'ADU', 'RMS'] self.d_subs['THRESHOLD_ADU' ] = str( cp.lld_adu.value() ) self.d_subs['DO_CONST_THR' ] = 'true' self.d_subs['THRESHOLD_NRMS'] = '0' self.d_subs['FNAME_PEDS_RMS'] = '' elif cp.lld_type.value() == 'RMS' : self.d_subs['THRESHOLD_ADU' ] = '0' self.d_subs['DO_CONST_THR' ] = 'false' self.d_subs['THRESHOLD_NRMS'] = str( cp.lld_rms.value() ) self.d_subs['FNAME_PEDS_RMS'] = fnm.path_pedestals_rms() else : self.d_subs['THRESHOLD_ADU' ] = '0' self.d_subs['DO_CONST_THR' ] = 'false' self.d_subs['THRESHOLD_NRMS'] = '0' self.d_subs['FNAME_PEDS_RMS'] = '' if os.path.lexists( fnm.path_cora_split_map_static_q() ) : self.d_subs['FNAME_MAP_BINS' ] = fnm.path_cora_split_map_static_q() else : self.d_subs['FNAME_MAP_BINS' ] = '' self.d_subs['FNAME_INT_BINS' ] = fnm.path_cora_split_int_static_q() self.d_subs['NUMBER_OF_BINS' ] = str( cp.ana_stat_part_q.value() ) #self.print_substitution_dict() #self.make_cfg_file() txt_cfg = self.text_for_section() self.save_cfg_file(txt_cfg, self.path_out)
def make_psana_cfg_file_for_peds_aver (self) : self.str_of_modules = '' self.txt_cfg_header = '# Autogenerated config file for dark average\n' \ + '# Useful command:\n' \ + '# psana -m EventKeys -n 5 ' + fnm.path_data_xtc_cond() \ + '\n' self.txt_cfg_body = '\n\n' self.add_cfg_module_tahometer() self.add_cfg_module_img_producer() self.add_cfg_module_ndarraverage_for_peds_aver() self.cfg_file_header_for_peds_aver() self.save_cfg_file(self.txt_cfg_header + self.txt_cfg_body, fnm.path_peds_aver_psana_cfg())
def make_psana_cfg_file_for_peds_aver(self): self.str_of_modules = '' self.txt_cfg_header = '# Autogenerated config file for dark average\n' \ + '# Useful command:\n' \ + '# psana -m EventKeys -n 5 ' + fnm.path_data_xtc_cond() \ + '\n' self.txt_cfg_body = '\n\n' self.add_cfg_module_tahometer() self.add_cfg_module_img_producer() self.add_cfg_module_ndarraverage_for_peds_aver() self.cfg_file_header_for_peds_aver() self.save_cfg_file(self.txt_cfg_header + self.txt_cfg_body, fnm.path_peds_aver_psana_cfg())
def on_but_path(self): logger.debug('Data file browser', __name__ ) path = str(self.edi_path.text()) path = str( QtGui.QFileDialog.getOpenFileName(self,'Select file',path) ) dname, fname = os.path.split(path) if dname == '' or fname == '' : logger.info('Input directiry name or file name is empty... keep file path unchanged...') return cp.in_dir_data .setValue(dname) cp.in_file_data.setValue(fname) #self.edi_path.setText(path) self.edi_path.setText( fnm.path_data_xtc_cond() ) logger.info('selected file: ' + str(fnm.path_data_xtc()), __name__ ) self.set_default_pars() blp.parse_batch_log_data_scan() self.set_fields()
def setTableInfoItems(self) : self.item_data_file.setText( os.path.basename(fnm.path_data_xtc_cond()) ) if cp.bat_dark_is_used.value() : self.item_dark_file.setText( os.path.basename(fnm.path_pedestals_ave()) ) else : self.item_dark_file.setText( 'is not used' ) if cp.ccdcorr_flatfield.value() : self.item_flat_file.setText( os.path.basename(fnm.path_flat()) ) else : self.item_flat_file.setText( 'is not used' ) if cp.ccdcorr_blemish.value() : self.item_blam_file.setText( os.path.basename(fnm.path_blam()) ) else : self.item_blam_file.setText( 'is not used' ) self.item_data_start.setText ( str( cp.bat_data_start.value() ) ) self.item_data_end .setText ( str( cp.bat_data_end .value() ) ) self.item_data_total.setText ( str( cp.bat_data_total.value() ) ) self.item_data_time .setText ( str( cp.bat_data_dt_ave.value() ) + u'\u00B1' + str( cp.bat_data_dt_rms.value() ) )
def make_psana_cfg_file_for_data_aver (self) : self.path_in = apputils.AppDataPath('CorAna/scripts/psana-data-aver.cfg').path() self.path_out = fnm.path_data_aver_psana_cfg() self.d_subs = {'FNAME_XTC' : fnm.path_data_xtc_cond(), 'SKIP' : str( cp.bat_data_start.value() - 1 ), 'EVENTS' : str( cp.bat_data_end.value() - cp.bat_data_start.value() + 1 ), 'IMG_REC_MODULE' : str( cp.bat_img_rec_mod.value() ), 'DETINFO' : str( cp.bat_det_info.value() ), 'FNAME_DATA_AVE' : fnm.path_data_ave(), 'FNAME_DATA_RMS' : fnm.path_data_rms(), 'SAT_THR_ADU' : str( cp.ccdset_adcsatu.value() ), 'SATPIX_MASK' : fnm.path_satpix_mask(), 'SATPIX_FRAC' : fnm.path_satpix_frac(), 'HOTPIX_MASK' : '', # fnm.path_hotpix_mask(), 'HOTPIX_FRAC' : '' # fnm.path_hotpix_frac() } # cp.ccdset_ccdgain.value() # cp.ccdset_ccdeff .value() self.print_substitution_dict() self.make_cfg_file()
def __init__ ( self, parent=None ) : QtGui.QWidget.__init__(self, parent) self.setGeometry(200, 400, 530, 30) self.setWindowTitle('Data file') self.setFrame() self.cbx_data = QtGui.QCheckBox('Activate / protect buttons', self) self.cbx_data.setChecked( cp.is_active_data_gui.value() ) self.cbx_all_chunks = QtGui.QCheckBox('Use all xtc chunks', self) self.cbx_all_chunks.setChecked( cp.use_data_xtc_all.value() ) self.edi_path = QtGui.QLineEdit( fnm.path_data_xtc_cond() ) self.edi_path.setReadOnly( True ) self.lab_status = QtGui.QLabel('Status') self.lab_batch = QtGui.QLabel('Batch') self.lab_start = QtGui.QLabel('Start') self.lab_end = QtGui.QLabel('End') self.lab_total = QtGui.QLabel('Total') self.lab_time = QtGui.QLabel(u'\u0394t(sec)') self.edi_bat_start = QtGui.QLineEdit ( str( cp.bat_data_start.value() ) ) self.edi_bat_end = QtGui.QLineEdit ( str( cp.bat_data_end .value() ) ) self.edi_bat_total = QtGui.QLineEdit ( str( cp.bat_data_total.value() ) ) self.edi_bat_time = QtGui.QLineEdit ( str( cp.bat_data_time .value() ) ) self.but_path = QtGui.QPushButton('File:') self.but_plot = QtGui.QPushButton('img-Plot') self.but_tspl = QtGui.QPushButton('t-Plot') self.but_brow = QtGui.QPushButton('Browse') self.but_scan = QtGui.QPushButton('Scan') self.but_aver = QtGui.QPushButton('Average') self.but_status = QtGui.QPushButton('Check status') self.but_remove = QtGui.QPushButton('Remove') self.table_scan = GUIFilesStatusTable (parent=self, list_of_files=fnm.get_list_of_files_data_scan()) self.table_aver = GUIFilesStatusTable (parent=self, list_of_files=fnm.get_list_of_files_data_aver()) #self.table_aver = GUIFilesStatusTable (parent=self, list_of_files=fnm.get_list_of_files_data_aver_short()) #self.table_scan.setMinimumHeight(285) #self.table_scan.table.setFixedWidth(self.table_scan.table.horizontalHeader().length() + 4) #self.table_scan.table.setFixedHeight(self.table_scan.table.verticalHeader().length() + 29) self.grid = QtGui.QGridLayout() self.grid_row = 1 self.grid.addWidget(self.cbx_data, self.grid_row, 0, 1, 6) self.grid.addWidget(self.but_path, self.grid_row+1, 0) self.grid.addWidget(self.edi_path, self.grid_row+1, 1, 1, 7) self.grid.addWidget(self.cbx_all_chunks,self.grid_row+2, 1, 1, 6) self.grid.addWidget(self.lab_batch, self.grid_row+3, 0) self.grid.addWidget(self.lab_status, self.grid_row+3, 1, 1, 2) self.grid.addWidget(self.lab_start, self.grid_row+3, 3) self.grid.addWidget(self.lab_end, self.grid_row+3, 4) self.grid.addWidget(self.lab_total, self.grid_row+3, 5) self.grid.addWidget(self.lab_time, self.grid_row+3, 6) self.grid.addWidget(self.but_scan, self.grid_row+4, 0) self.grid.addWidget(self.but_status, self.grid_row+4, 1, 2, 2) self.grid.addWidget(self.edi_bat_start, self.grid_row+4, 3) self.grid.addWidget(self.edi_bat_end, self.grid_row+4, 4) self.grid.addWidget(self.edi_bat_total, self.grid_row+4, 5) self.grid.addWidget(self.edi_bat_time, self.grid_row+4, 6, 1, 2) self.grid.addWidget(self.but_aver, self.grid_row+5, 0) self.grid.addWidget(self.but_brow, self.grid_row+5, 3) self.grid.addWidget(self.but_plot, self.grid_row+5, 4) self.grid.addWidget(self.but_tspl, self.grid_row+5, 5) self.grid.addWidget(self.but_remove, self.grid_row+5, 7) self.grid.addWidget(self.table_scan, self.grid_row+6, 0, 7, 8) self.grid.addWidget(self.table_aver, self.grid_row+13,0, 4, 8) self.connect(self.but_path, QtCore.SIGNAL('clicked()'), self.on_but_path ) self.connect(self.but_plot, QtCore.SIGNAL('clicked()'), self.on_but_plot ) self.connect(self.but_tspl, QtCore.SIGNAL('clicked()'), self.on_but_tspl ) self.connect(self.but_brow, QtCore.SIGNAL('clicked()'), self.on_but_brow ) self.connect(self.but_aver, QtCore.SIGNAL('clicked()'), self.on_but_aver ) self.connect(self.but_scan, QtCore.SIGNAL('clicked()'), self.on_but_scan ) self.connect(self.but_status, QtCore.SIGNAL('clicked()'), self.on_but_status ) self.connect(self.but_remove, QtCore.SIGNAL('clicked()'), self.on_but_remove ) self.connect(self.edi_bat_start, QtCore.SIGNAL('editingFinished()'), self.on_edi_bat_start ) self.connect(self.edi_bat_end, QtCore.SIGNAL('editingFinished()'), self.on_edi_bat_end ) self.connect(self.cbx_data, QtCore.SIGNAL('stateChanged(int)'), self.on_cbx ) self.connect(self.cbx_all_chunks,QtCore.SIGNAL('stateChanged(int)'), self.on_cbx_all_chunks ) self.setLayout(self.grid) self.showToolTips() self.setStyle() self.setButtonState()
def cfg_file_header_for_data_aver(self): self.cfg_file_header( fnm.path_data_xtc_cond(), \ cp.bat_data_start.value() - 1, \ cp.bat_data_end.value() - cp.bat_data_start.value() + 1 )
def cfg_file_header_for_data_aver (self) : self.cfg_file_header( fnm.path_data_xtc_cond(), \ cp.bat_data_start.value() - 1, \ cp.bat_data_end.value() - cp.bat_data_start.value() + 1 )