def submit_batch_for_peds_scan(self): self.exportLocalPars() if not self.job_can_be_submitted(self.job_id_scan_str, self.time_scan_job_submitted, 'scan'): return self.time_scan_job_submitted = gu.get_time_sec() cfg.make_psana_cfg_file_for_peds_scan() command = 'psana -c ' + fnm.path_peds_scan_psana_cfg( ) + ' ' + fnm.path_to_xtc_files_for_run() # fnm.path_dark_xtc_cond() queue = self.queue.value() bat_log_file = fnm.path_peds_scan_batch_log() #print 'command :', command #print 'queue :', queue #print 'bat_log_file:', bat_log_file self.job_id_scan_str, out, err = gu.batch_job_submit( command, queue, bat_log_file) self.procDarkStatus ^= 1 # set bit to 1 if err != '': self.stop_auto_processing(is_stop_on_button_click=False) logger.warning( 'Autoprocessing for run %s is stopped due to batch submission error!!!' % self.str_run_number, __name__)
def submit_batch_for_peds_aver(self): self.exportLocalPars() # export run_number to cp.str_run_number if not self.job_can_be_submitted(self.job_id_peds_str, self.time_peds_job_submitted, 'peds'): return self.time_peds_job_submitted = gu.get_time_sec() self.command_for_peds_scan() cfg.make_psana_cfg_file_for_peds_aver() command = 'psana -c ' + fnm.path_peds_aver_psana_cfg( ) + ' ' + fnm.path_to_xtc_files_for_run() # fnm.path_dark_xtc_cond() queue = self.queue bat_log_file = fnm.path_peds_aver_batch_log() self.job_id_peds_str, out, err = gu.batch_job_submit( command, queue, bat_log_file) self.procDarkStatus ^= 2 # set bit to 1 if err != '': self.stop_auto_processing(is_stop_on_button_click=False) logger.warning( 'Autoprocessing is stopped due to batch submission error!!!', __name__)
def make_psana_cfg_file_for_peds_aver_princeton(self): self.path_in = apputils.AppDataPath( 'CalibManager/scripts/psana-peds-aver-princeton.cfg').path() self.path_out = fnm.path_peds_aver_psana_cfg() self.d_subs = { 'FNAME_XTC': str(fnm.path_to_xtc_files_for_run()), 'SKIP': str(cp.bat_dark_start.value() - 1), 'EVENTS': str(cp.bat_dark_end.value() - cp.bat_dark_start.value() + 1), 'IMG_REC_MODULE': str(cp.bat_img_rec_mod.value()), 'DETINFO': str(cp.bat_det_info.value()), 'FNAME_PEDS_AVE': fnm.path_peds_ave(), 'FNAME_PEDS_RMS': fnm.path_peds_rms() } self.d_subs['FNAME_HOTPIX_MASK'] = fnm.path_hotpix_mask() self.d_subs['HOTPIX_THRESHOLD_ADU'] = str(cp.mask_hot_thr.value()) #if cp.mask_hot_is_used.value() : # self.d_subs['FNAME_HOTPIX_MASK' ] = fnm.path_hotpix_mask() # self.d_subs['HOTPIX_THRESHOLD_ADU'] = str( cp.mask_hot_thr.value() ) #else : # self.d_subs['FNAME_HOTPIX_MASK' ] = '' # self.d_subs['HOTPIX_THRESHOLD_ADU'] = '10000' self.print_substitution_dict() self.make_cfg_file()
def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.instr_dir = cp.instr_dir self.instr_name = cp.instr_name self.exp_name = cp.exp_name self.run_number = cp.str_run_number self.setGeometry(100, 50, 600, 30) self.setWindowTitle('Instrument Experiment Run') self.setFrame() self.list_of_instr = ['AMO', 'SXR', 'XPP', 'XCS', 'CXI', 'MEC'] self.list_of_exp = None self.list_of_run = None self.titIns = QtGui.QLabel('Ins:') self.titExp = QtGui.QLabel('Exp:') self.titRun = QtGui.QLabel('Run:') self.butIns = QtGui.QPushButton(self.instr_name.value() + self.char_expand) self.butExp = QtGui.QPushButton(self.exp_name.value() + self.char_expand) self.butRun = QtGui.QPushButton(self.run_number.value() + self.char_expand) self.ediFile = QtGui.QLineEdit(str(fnm.path_to_xtc_files_for_run())) self.ediFile.setReadOnly(True) self.butIns.setMaximumWidth(50) self.butExp.setMaximumWidth(90) self.butRun.setMaximumWidth(70) self.ediFile.setMinimumWidth(330) self.hbox = QtGui.QHBoxLayout() self.hbox.addWidget(self.titIns) self.hbox.addWidget(self.butIns) self.hbox.addStretch(1) self.hbox.addWidget(self.titExp) self.hbox.addWidget(self.butExp) self.hbox.addStretch(1) self.hbox.addWidget(self.titRun) self.hbox.addWidget(self.butRun) self.hbox.addWidget(self.ediFile) self.setLayout(self.hbox) #self.connect( self.ediExp, QtCore.SIGNAL('editingFinished ()'), self.processEdiExp ) self.connect(self.butIns, QtCore.SIGNAL('clicked()'), self.onButIns) self.connect(self.butExp, QtCore.SIGNAL('clicked()'), self.onButExp) self.connect(self.butRun, QtCore.SIGNAL('clicked()'), self.onButRun) self.showToolTips() self.setStyle()
def make_psana_cfg_file_for_peds_scan (self) : self.path_in = apputils.AppDataPath('CalibManager/scripts/psana-peds-scan.cfg').path() self.path_out = fnm.path_peds_scan_psana_cfg() self.d_subs = {'FNAME_XTC' : str(fnm.path_to_xtc_files_for_run()), 'SKIP' : 'IS_NOT_USED', 'EVENTS' : 'FOR_ALL_EVENTS', } self.print_substitution_dict() self.make_cfg_file()
def make_psana_cfg_file_for_peds_scan(self): self.path_in = apputils.AppDataPath( 'CalibManager/scripts/psana-peds-scan.cfg').path() self.path_out = fnm.path_peds_scan_psana_cfg() self.d_subs = { 'FNAME_XTC': str(fnm.path_to_xtc_files_for_run()), 'SKIP': 'IS_NOT_USED', 'EVENTS': 'FOR_ALL_EVENTS', } self.print_substitution_dict() self.make_cfg_file()
def __init__ ( self, parent=None ) : QtGui.QWidget.__init__(self, parent) self.instr_dir = cp.instr_dir self.instr_name = cp.instr_name self.exp_name = cp.exp_name self.run_number = cp.str_run_number self.setGeometry(100, 50, 600, 30) self.setWindowTitle('Instrument Experiment Run') self.setFrame() self.list_of_instr = ['AMO', 'SXR', 'XPP', 'XCS', 'CXI', 'MEC'] self.list_of_exp = None self.list_of_run = None self.titIns = QtGui.QLabel('Ins:') self.titExp = QtGui.QLabel('Exp:') self.titRun = QtGui.QLabel('Run:') self.butIns = QtGui.QPushButton( self.instr_name.value() + self.char_expand ) self.butExp = QtGui.QPushButton( self.exp_name.value() + self.char_expand ) self.butRun = QtGui.QPushButton( self.run_number.value() + self.char_expand ) self.ediFile = QtGui.QLineEdit ( str(fnm.path_to_xtc_files_for_run()) ) self.ediFile .setReadOnly( True ) self.butIns .setMaximumWidth(50) self.butExp .setMaximumWidth(90) self.butRun .setMaximumWidth(70) self.ediFile.setMinimumWidth(330) self.hbox = QtGui.QHBoxLayout() self.hbox.addWidget(self.titIns) self.hbox.addWidget(self.butIns) self.hbox.addStretch(1) self.hbox.addWidget(self.titExp) self.hbox.addWidget(self.butExp) self.hbox.addStretch(1) self.hbox.addWidget(self.titRun) self.hbox.addWidget(self.butRun) self.hbox.addWidget(self.ediFile) self.setLayout(self.hbox) #self.connect( self.ediExp, QtCore.SIGNAL('editingFinished ()'), self.processEdiExp ) self.connect( self.butIns, QtCore.SIGNAL('clicked()'), self.onButIns ) self.connect( self.butExp, QtCore.SIGNAL('clicked()'), self.onButExp ) self.connect( self.butRun, QtCore.SIGNAL('clicked()'), self.onButRun ) self.showToolTips() self.setStyle()
def make_psana_cfg_file_for_peds_aver_cspad( self, module='cspad_mod.CsPadPedestals'): self.path_in = apputils.AppDataPath( 'CalibManager/scripts/psana-section-psana.cfg').path() self.path_out = fnm.path_peds_aver_psana_cfg() modules = '' for i in range(len(cp.blsp.list_of_sources)): modules += '%s:%i ' % (module, i) #print 'List of modules: %s' % modules self.d_subs = { 'FNAME_XTC': str(fnm.path_to_xtc_files_for_run()), 'SKIP': str(cp.bat_dark_start.value() - 1), 'EVENTS': str(cp.bat_dark_end.value() - cp.bat_dark_start.value() + 1), 'MODULES': modules } self.print_substitution_dict() self.make_cfg_file() #Add a few similar modules in loop self.path_in = apputils.AppDataPath( 'CalibManager/scripts/psana-section-module-cspad-peds.cfg').path() list_of_ave = cp.blsp.get_list_of_files_for_all_sources( fnm.path_peds_ave()) list_of_rms = cp.blsp.get_list_of_files_for_all_sources( fnm.path_peds_rms()) for i, (source, fname_ave, fname_rms) in enumerate( zip(cp.blsp.list_of_sources, list_of_ave, list_of_rms)): mod = '%s:%i' % (module, i) #print ' Add module with pars: ', mod, source, fname_ave, fname_rms self.d_subs = { 'MODULE': mod, 'DETINFO': source, 'FNAME_PEDS_AVE': fname_ave, 'FNAME_PEDS_RMS': fname_rms } #for item in self.d_subs.items() : # print '%20s : %s' % item self.make_cfg_file(fout_mode='a')
def submit_batch_for_peds_aver(self): self.exportLocalPars() # export run_number to cp.str_run_number if not self.job_can_be_submitted(self.job_id_peds_str, self.time_peds_job_submitted, 'peds'): return self.time_peds_job_submitted = gu.get_time_sec() self.command_for_peds_scan() if not cfg.make_psana_cfg_file_for_peds_aver(): self.stop_auto_processing(is_stop_on_button_click=False) logger.warning('BATCH JOB IS NOT SUBMITTED !!!', __name__) return False if not self.is_good_lsf(): self.stop_auto_processing(is_stop_on_button_click=False) logger.warning('BATCH JOB IS NOT SUBMITTED !!!', __name__) return False #command = 'psana -c ' + fnm.path_peds_aver_psana_cfg() + ' ' + fnm.path_to_xtc_files_for_run() # fnm.path_dark_xtc_cond() command = 'psana -c ' + fnm.path_peds_aver_psana_cfg( ) + self.opt + ' ' + fnm.path_to_xtc_files_for_run( ) # fnm.path_dark_xtc_cond() queue = self.queue.value() bat_log_file = fnm.path_peds_aver_batch_log() self.job_id_peds_str, out, err = gu.batch_job_submit( command, queue, bat_log_file) self.procDarkStatus ^= 2 # set bit to 1 if err != 'Warning: job being submitted without an AFS token.': logger.warning( 'This job is running on LCLS NFS, it does not need in AFS, ignore warning and continue.', __name__) return True elif err != '': self.stop_auto_processing(is_stop_on_button_click=False) logger.warning( 'Autoprocessing for run %s is stopped due to batch submission error!!!' % self.str_run_number, __name__) logger.warning('BATCH JOB IS NOT SUBMITTED !!!', __name__) return False return True
def submit_batch_for_peds_aver(self) : self.exportLocalPars() # export run_number to cp.str_run_number if not self.job_can_be_submitted(self.job_id_peds_str, self.time_peds_job_submitted, 'peds') : return self.time_peds_job_submitted = gu.get_time_sec() self.make_psana_cfg_file_for_peds_aver() command = 'psana -c ' + fnm.path_peds_aver_psana_cfg() + ' ' + fnm.path_to_xtc_files_for_run() # fnm.path_dark_xtc_cond() queue = self.queue bat_log_file = fnm.path_peds_aver_batch_log() self.job_id_peds_str, out, err = gu.batch_job_submit(command, queue, bat_log_file) self.procDarkStatus ^= 2 # set bit to 1 if err != '' : self.stop_auto_processing(is_stop_on_button_click=False) logger.warning('Autoprocessing is stopped due to batch submission error!!!', __name__)
def submit_batch_for_peds_scan(self) : self.exportLocalPars() if not self.job_can_be_submitted(self.job_id_scan_str, self.time_scan_job_submitted, 'scan') : return self.time_scan_job_submitted = gu.get_time_sec() cfg.make_psana_cfg_file_for_peds_scan() command = 'psana -c ' + fnm.path_peds_scan_psana_cfg() + ' ' + fnm.path_to_xtc_files_for_run() # fnm.path_dark_xtc_cond() queue = self.queue.value() bat_log_file = fnm.path_peds_scan_batch_log() #print 'command :', command #print 'queue :', queue #print 'bat_log_file:', bat_log_file self.job_id_scan_str, out, err = gu.batch_job_submit(command, queue, bat_log_file) self.procDarkStatus ^= 1 # set bit to 1 if err != '' : self.stop_auto_processing(is_stop_on_button_click=False) logger.warning('Autoprocessing for run %s is stopped due to batch submission error!!!' % self.str_run_number, __name__)
def make_psana_cfg_file_for_peds_aver_cspad (self, module='cspad_mod.CsPadPedestals') : self.path_in = apputils.AppDataPath('CalibManager/scripts/psana-section-psana.cfg').path() self.path_out = fnm.path_peds_aver_psana_cfg() modules = '' for i in range( len(cp.blsp.list_of_sources) ) : modules += '%s:%i ' % (module, i) #print 'List of modules: %s' % modules self.d_subs = {'FNAME_XTC' : str(fnm.path_to_xtc_files_for_run()), 'SKIP' : str( cp.bat_dark_start.value() - 1 ), 'EVENTS' : str( cp.bat_dark_end.value() - cp.bat_dark_start.value() + 1 ), 'MODULES' : modules } self.print_substitution_dict() self.make_cfg_file() #Add a few similar modules in loop self.path_in = apputils.AppDataPath('CalibManager/scripts/psana-section-module-cspad-peds.cfg').path() list_of_ave = cp.blsp.get_list_of_files_for_all_sources(fnm.path_peds_ave()) list_of_rms = cp.blsp.get_list_of_files_for_all_sources(fnm.path_peds_rms()) for i, (source, fname_ave, fname_rms) in enumerate( zip(cp.blsp.list_of_sources, list_of_ave, list_of_rms) ) : mod = '%s:%i' % (module, i) #print ' Add module with pars: ', mod, source, fname_ave, fname_rms self.d_subs = {'MODULE' : mod, 'DETINFO' : source, 'FNAME_PEDS_AVE' : fname_ave, 'FNAME_PEDS_RMS' : fname_rms } #for item in self.d_subs.items() : # print '%20s : %s' % item self.make_cfg_file(fout_mode='a')
def make_psana_cfg_file_for_peds_aver_princeton (self) : self.path_in = apputils.AppDataPath('CalibManager/scripts/psana-peds-aver-princeton.cfg').path() self.path_out = fnm.path_peds_aver_psana_cfg() self.d_subs = {'FNAME_XTC' : str(fnm.path_to_xtc_files_for_run()), 'SKIP' : str( cp.bat_dark_start.value() - 1 ), 'EVENTS' : str( cp.bat_dark_end.value() - cp.bat_dark_start.value() + 1 ), 'IMG_REC_MODULE' : str( cp.bat_img_rec_mod.value() ), 'DETINFO' : str( cp.bat_det_info.value() ), 'FNAME_PEDS_AVE' : fnm.path_peds_ave(), 'FNAME_PEDS_RMS' : fnm.path_peds_rms() } self.d_subs['FNAME_HOTPIX_MASK' ] = fnm.path_hotpix_mask() self.d_subs['HOTPIX_THRESHOLD_ADU'] = str( cp.mask_hot_thr.value() ) #if cp.mask_hot_is_used.value() : # self.d_subs['FNAME_HOTPIX_MASK' ] = fnm.path_hotpix_mask() # self.d_subs['HOTPIX_THRESHOLD_ADU'] = str( cp.mask_hot_thr.value() ) #else : # self.d_subs['FNAME_HOTPIX_MASK' ] = '' # self.d_subs['HOTPIX_THRESHOLD_ADU'] = '10000' self.print_substitution_dict() self.make_cfg_file()
def submit_batch_for_peds_aver(self) : self.exportLocalPars() # export run_number to cp.str_run_number if not self.job_can_be_submitted(self.job_id_peds_str, self.time_peds_job_submitted, 'peds') : return self.time_peds_job_submitted = gu.get_time_sec() self.command_for_peds_scan() if not cfg.make_psana_cfg_file_for_peds_aver() : self.stop_auto_processing(is_stop_on_button_click=False) logger.warning('BATCH JOB IS NOT SUBMITTED !!!', __name__) return False if not self.is_good_lsf() : self.stop_auto_processing(is_stop_on_button_click=False) logger.warning('BATCH JOB IS NOT SUBMITTED !!!', __name__) return False #command = 'psana -c ' + fnm.path_peds_aver_psana_cfg() + ' ' + fnm.path_to_xtc_files_for_run() # fnm.path_dark_xtc_cond() command = 'psana -c ' + fnm.path_peds_aver_psana_cfg() + self.opt + ' ' + fnm.path_to_xtc_files_for_run() # fnm.path_dark_xtc_cond() queue = self.queue.value() bat_log_file = fnm.path_peds_aver_batch_log() self.job_id_peds_str, out, err = gu.batch_job_submit(command, queue, bat_log_file) self.procDarkStatus ^= 2 # set bit to 1 if err != '' : self.stop_auto_processing(is_stop_on_button_click=False) logger.warning('Autoprocessing for run %s is stopped due to batch submission error!!!' % self.str_run_number, __name__) logger.warning('BATCH JOB IS NOT SUBMITTED !!!', __name__) return False return True
def setFile(self): path = str(fnm.path_to_xtc_files_for_run()) self.ediFile.setText(path) logger.info('set path to xtc file: ' + path, __name__)
def setFile(self): path = str(fnm.path_to_xtc_files_for_run()) self.ediFile.setText(path) logger.info('set path to xtc file: ' + path, __name__ )