コード例 #1
0
    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__)
コード例 #2
0
    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__)
コード例 #3
0
    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()
コード例 #4
0
    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()
コード例 #5
0
    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()
コード例 #6
0
    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()
コード例 #7
0
ファイル: GUIInsExpRunV1.py プロジェクト: FilipeMaia/psdmrepo
    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()
コード例 #8
0
    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')
コード例 #9
0
    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
コード例 #10
0
    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__)
コード例 #11
0
    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__)
コード例 #12
0
    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')
コード例 #13
0
    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()
コード例 #14
0
    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
コード例 #15
0
 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__)
コード例 #16
0
ファイル: GUIInsExpRunV1.py プロジェクト: FilipeMaia/psdmrepo
 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__ )