CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/CalibMuon/DTCalibration/python/Workflow/DTTTrigTimeBoxesWriter.py

Go to the documentation of this file.
00001 from tools import loadCmsProcess,writeCfg
00002 from addPoolDBESSource import addPoolDBESSource
00003 from CmsswTask import CmsswTask
00004 import os
00005 
00006 class DTTTrigTimeBoxesWriter:
00007     def __init__(self, run, dir, result_dir, config):
00008         self.runnumber = int(run)
00009         self.config = config
00010         self.dir = dir
00011         self.result_dir = result_dir
00012 
00013         """
00014         self.configs = ['dtTTrigWriter_cfg.py',
00015                         'dumpDBToFile_first_cfg.py',
00016                         'dtTTrigCorrection_cfg.py',
00017                         'dumpDBToFile_second_cfg.py']
00018 
00019         self.pset_templates = {'dtTTrigWriter_cfg.py':'CalibMuon.DTCalibration.dtTTrigWriter_cfg',
00020                                'dumpDBToFile_first_cfg.py':'CalibMuon.DTCalibration.dumpDBToFile_ttrig_cfg',
00021                                'dtTTrigCorrection_cfg.py':'CalibMuon.DTCalibration.dtTTrigCorrection_cfg',
00022                                'dumpDBToFile_second_cfg.py':'CalibMuon.DTCalibration.dumpDBToFile_ttrig_cfg'}
00023         """
00024         self.configs = ['dtTTrigWriter_cfg.py',
00025                         'dtTTrigCorrection_cfg.py',
00026                         'dumpDBToFile_ttrig_cfg.py']
00027 
00028         self.pset_templates = {'dtTTrigWriter_cfg.py':'CalibMuon.DTCalibration.dtTTrigWriter_cfg',
00029                                'dtTTrigCorrection_cfg.py':'CalibMuon.DTCalibration.dtTTrigCorrection_cfg',
00030                                'dumpDBToFile_ttrig_cfg.py':'CalibMuon.DTCalibration.dumpDBToFile_ttrig_cfg'}
00031  
00032 
00033         self.initProcess()
00034         self.task = CmsswTask(self.dir,self.configs)
00035 
00036     def initProcess(self):
00037         timeBoxes = os.path.abspath( self.result_dir + '/' + 'DTTimeBoxes_' + str(self.runnumber) + '.root' )
00038         ttrig_uncorrected_db = os.path.abspath( self.result_dir + '/' + 'ttrig_uncorrected_' + str(self.runnumber) + '.db' )
00039         ttrig_timeboxes_db = os.path.abspath( self.result_dir + '/' + 'ttrig_timeboxes_' + str(self.runnumber) + '.db' )
00040         ttrig_timeboxes_txt = os.path.abspath( self.result_dir + '/' + 'ttrig_timeboxes_' + str(self.runnumber) + '.txt' )       
00041  
00042         self.process = {}
00043         # dtTTrigWriter_cfg.py
00044         self.process['dtTTrigWriter_cfg.py'] = loadCmsProcess(self.pset_templates['dtTTrigWriter_cfg.py'])
00045         self.process['dtTTrigWriter_cfg.py'].dtTTrigWriter.rootFileName = timeBoxes
00046         self.process['dtTTrigWriter_cfg.py'].PoolDBOutputService.connect = 'sqlite_file:%s' % ttrig_uncorrected_db
00047 
00048         # dtTTrigCorrection_cfg.py
00049         self.process['dtTTrigCorrection_cfg.py'] = loadCmsProcess(self.pset_templates['dtTTrigCorrection_cfg.py'])
00050         self.process['dtTTrigCorrection_cfg.py'].GlobalTag.globaltag = self.config.globaltag
00051         self.process['dtTTrigCorrection_cfg.py'].source.firstRun = self.runnumber
00052         addPoolDBESSource(process = self.process['dtTTrigCorrection_cfg.py'],
00053                           moduleName = 'calibDB',record = 'DTTtrigRcd',tag = 'ttrig',
00054                           connect = 'sqlite_file:%s' % ttrig_uncorrected_db)
00055 
00056         self.process['dtTTrigCorrection_cfg.py'].PoolDBOutputService.connect = 'sqlite_file:%s' % ttrig_timeboxes_db
00057 
00058         # dumpDBToFile_ttrig_cfg.py
00059         self.process['dumpDBToFile_ttrig_cfg.py'] = loadCmsProcess(self.pset_templates['dumpDBToFile_ttrig_cfg.py'])
00060         self.process['dumpDBToFile_ttrig_cfg.py'].calibDB.connect = 'sqlite_file:%s' % ttrig_timeboxes_db
00061         self.process['dumpDBToFile_ttrig_cfg.py'].dumpToFile.outputFileName = ttrig_timeboxes_txt
00062  
00063     def writeCfg(self):
00064         for cfg in self.configs:
00065             writeCfg(self.process[cfg],self.dir,cfg)
00066             #writeCfgPkl(self.process[cfg],self.dir,cfg)
00067            
00068     def run(self):
00069         self.task.run()
00070         return