Go to the documentation of this file.00001 from tools import loadCmsProcess,writeCfg
00002 from CmsswTask import *
00003 import os
00004
00005 class DTTTrigCorrFirst:
00006 def __init__(self, run, dir, result_dir, config):
00007
00008
00009
00010 self.runnumber = int(run)
00011 self.config = config
00012 self.dir = dir
00013 self.result_dir = result_dir
00014
00015 self.configs = ['DTTTrigWriter_cfg.py','DumpDBToFile_first_cfg.py','DTTTrigCorrection_cfg.py','DumpDBToFile_second_cfg.py']
00016
00017 self.pset_templates = {'DTTTrigWriter_cfg.py':config.templatepath + '/config/DTTTrigWriter_cfg.py',
00018 'DumpDBToFile_first_cfg.py':config.templatepath + '/config/DumpDBToFile_ttrig_cfg.py',
00019 'DTTTrigCorrection_cfg.py':config.templatepath + '/config/DTTTrigCorrection_cfg.py',
00020 'DumpDBToFile_second_cfg.py':config.templatepath + '/config/DumpDBToFile_ttrig_cfg.py'}
00021
00022
00023 self.initProcess()
00024 self.task = CmsswTask(self.dir,self.configs)
00025
00026 def initProcess(self):
00027 timeBoxes = os.path.abspath(self.result_dir + '/' + 'DTTimeBoxes_' + str(self.runnumber) + '.root')
00028 ttrig_first = self.result_dir + '/' + 'ttrig_first_' + str(self.runnumber)
00029 ttrig_first_db = os.path.abspath(ttrig_first + '.db')
00030 ttrig_first_txt = os.path.abspath(ttrig_first + '.txt')
00031 ttrig_second = self.result_dir + '/' + 'ttrig_second_' + str(self.runnumber)
00032 ttrig_second_db = os.path.abspath(ttrig_second + '.db')
00033 ttrig_second_txt = os.path.abspath(ttrig_second + '.txt')
00034
00035 self.process = {}
00036 self.process['DTTTrigWriter_cfg.py'] = loadCmsProcess(self.pset_templates['DTTTrigWriter_cfg.py'])
00037 self.process['DTTTrigWriter_cfg.py'].ttrigwriter.rootFileName = timeBoxes
00038 self.process['DTTTrigWriter_cfg.py'].PoolDBOutputService.connect = 'sqlite_file:%s' % ttrig_first_db
00039
00040 self.process['DumpDBToFile_first_cfg.py'] = loadCmsProcess(self.pset_templates['DumpDBToFile_first_cfg.py'])
00041 self.process['DumpDBToFile_first_cfg.py'].calibDB.connect = 'sqlite_file:%s' % ttrig_first_db
00042 self.process['DumpDBToFile_first_cfg.py'].dumpToFile.outputFileName = ttrig_first_txt
00043
00044 self.process['DTTTrigCorrection_cfg.py'] = loadCmsProcess(self.pset_templates['DTTTrigCorrection_cfg.py'])
00045 self.process['DTTTrigCorrection_cfg.py'].GlobalTag.globaltag = self.config.globaltag
00046 self.process['DTTTrigCorrection_cfg.py'].source.firstRun = self.runnumber
00047 self.process['DTTTrigCorrection_cfg.py'].calibDB.connect = 'sqlite_file:%s' % ttrig_first_db
00048 self.process['DTTTrigCorrection_cfg.py'].PoolDBOutputService.connect = 'sqlite_file:%s' % ttrig_second_db
00049
00050 self.process['DumpDBToFile_second_cfg.py'] = loadCmsProcess(self.pset_templates['DumpDBToFile_second_cfg.py'])
00051 self.process['DumpDBToFile_second_cfg.py'].calibDB.connect = 'sqlite_file:%s' % ttrig_second_db
00052 self.process['DumpDBToFile_second_cfg.py'].dumpToFile.outputFileName = ttrig_second_txt
00053
00054 def writeCfg(self):
00055 for cfg in self.configs:
00056 writeCfg(self.process[cfg],self.dir,cfg)
00057
00058 def run(self):
00059 self.task.run()
00060
00061 if __name__ == '__main__':
00062
00063 run = None
00064 import sys
00065 for opt in sys.argv:
00066 if opt[:4] == 'run=':
00067 run = opt[4:]
00068
00069 if not run: raise ValueError,'Need to set run number'
00070
00071 result_dir = 'Run%s'%run
00072 result_dir += '/Ttrig/Results'
00073 if not os.path.exists(result_dir): os.makedirs(result_dir)
00074
00075 class config: pass
00076 config.templatepath = 'templates'
00077 config.globaltag = 'GR09_P_V1::All'
00078 config.rundir = '.'
00079
00080 dtTtrigCorrFirst = DTTTrigCorrFirst(run,config.rundir,result_dir,config)
00081 dtTtrigCorrFirst.writeCfg()
00082 dtTtrigCorrFirst.run()
00083
00084 print "Finished processing:"
00085 for pset in dtTtrigCorrFirst.configs: print "--->",pset