CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/CalibMuon/DTCalibration/python/Workflow/DTTTrigCorrFirst.py

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         #desc = 'Run%s'%run
00008         #desc += '/Ttrig/Exec'
00009         #self.desc = desc 
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         #self.task = CmsswTask(self.desc,self.configs,self.pset_templates,self.common_opts,self.pset_opts)
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