CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DTTTrigResidualCorr.py
Go to the documentation of this file.
1 from tools import loadCmsProcess,writeCfg
2 from addPoolDBESSource import addPoolDBESSource
3 from CmsswTask import CmsswTask
4 import os
5 
7  def __init__(self, run, dir, input_db, residuals, result_dir, config):
8  self.runnumber = int(run)
9  self.config = config
10  self.dir = dir
11  self.inputdb = input_db
12  self.residuals = residuals
13  self.result_dir = result_dir
14 
15  self.configs = ['dtTTrigResidualCorrection_cfg.py',
16  'dumpDBToFile_ResidCorr_cfg.py']
17 
18  self.pset_templates = {}
19  self.pset_templates['dtTTrigResidualCorrection_cfg.py'] = 'CalibMuon.DTCalibration.dtTTrigResidualCorrection_cfg'
20  self.pset_templates['dumpDBToFile_ResidCorr_cfg.py'] = 'CalibMuon.DTCalibration.dumpDBToFile_ttrig_cfg'
21 
22  self.initProcess()
23  self.task = CmsswTask(self.dir,self.configs)
24 
25  def initProcess(self):
26  ttrig_ResidCorr = self.result_dir + '/' + 'ttrig_residuals_' + str(self.runnumber)
27  ttrig_ResidCorr_db = os.path.abspath(ttrig_ResidCorr + '.db')
28  ttrig_ResidCorr_txt = os.path.abspath(ttrig_ResidCorr + '.txt')
29  root_file = self.residuals
30 
31  self.process = {}
32  # dtTTrigResidualCorrection
33  self.process['dtTTrigResidualCorrection_cfg.py'] = loadCmsProcess(self.pset_templates['dtTTrigResidualCorrection_cfg.py'])
34  self.process['dtTTrigResidualCorrection_cfg.py'].source.firstRun = self.runnumber
35  self.process['dtTTrigResidualCorrection_cfg.py'].GlobalTag.globaltag = self.config.globaltag
36 
37  if hasattr(self.config,'inputDBTag') and self.config.inputDBTag:
38  tag = self.config.inputDBTag
39  record = self.config.inputDBRcd
40  connect = self.config.connectStrDBTag
41  moduleName = 'customDB%s' % record
42  addPoolDBESSource(process = self.process['dtTTrigResidualCorrection_cfg.py'],
43  moduleName = moduleName,record = record,tag = tag,
44  connect = connect)
45 
46  # Input vDrift db
47  if hasattr(self.config,'inputVDriftDB') and self.config.inputVDriftDB:
48  addPoolDBESSource(process = self.process['dtTTrigResidualCorrection_cfg.py'],
49  moduleName = 'vDriftDB',record = 'DTMtimeRcd',tag = 'vDrift',
50  connect = 'sqlite_file:%s' % self.config.inputVDriftDB)
51 
52  # Input tTrig db
53  if(self.inputdb):
54  label = ''
55  if hasattr(self.config,'runOnCosmics') and self.config.runOnCosmics: label = 'cosmics'
56  addPoolDBESSource(process = self.process['dtTTrigResidualCorrection_cfg.py'],
57  moduleName = 'calibDB',record = 'DTTtrigRcd',tag = 'ttrig',label = label,
58  connect = 'sqlite_file:%s' % self.inputdb)
59 
60  # Change DB label if running on Cosmics
61  if hasattr(self.config,'runOnCosmics') and self.config.runOnCosmics:
62  self.process['dtTTrigResidualCorrection_cfg.py'].dtTTrigResidualCorrection.dbLabel = 'cosmics'
63  self.process['dtTTrigResidualCorrection_cfg.py'].dtTTrigResidualCorrection.correctionAlgoConfig.dbLabel = 'cosmics'
64 
65  self.process['dtTTrigResidualCorrection_cfg.py'].PoolDBOutputService.connect = 'sqlite_file:%s' % ttrig_ResidCorr_db
66  self.process['dtTTrigResidualCorrection_cfg.py'].dtTTrigResidualCorrection.correctionAlgoConfig.residualsRootFile = root_file
67 
68  # dumpDBToFile
69  self.process['dumpDBToFile_ResidCorr_cfg.py'] = loadCmsProcess(self.pset_templates['dumpDBToFile_ResidCorr_cfg.py'])
70  self.process['dumpDBToFile_ResidCorr_cfg.py'].calibDB.connect = 'sqlite_file:%s' % ttrig_ResidCorr_db
71  self.process['dumpDBToFile_ResidCorr_cfg.py'].dumpToFile.outputFileName = ttrig_ResidCorr_txt
72 
73  def writeCfg(self):
74  for cfg in self.configs:
75  writeCfg(self.process[cfg],self.dir,cfg)
76  #writeCfgPkl(self.process[cfg],self.dir,cfg)
77 
78  def run(self):
79  self.task.run()
80  return
def loadCmsProcess
Definition: tools.py:144
perl if(1 lt scalar(@::datatypes))
Definition: edlooper.cc:31