CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/CalibMuon/DTCalibration/python/Workflow/DTNoiseCalibration.py

Go to the documentation of this file.
00001 from tools import loadCmsProcess,loadCrabCfg,loadCrabDefault,addCrabInputFile,writeCfg,prependPaths
00002 from addPoolDBESSource import addPoolDBESSource
00003 from CrabTask import *
00004 import os
00005 
00006 class DTNoiseCalibration:
00007     def __init__(self, run, dir, config):
00008         self.pset_name = 'dtNoiseCalibration_cfg.py'
00009         self.outputROOT = 'dtNoiseCalib.root'
00010         self.outputDB = 'noise.db'
00011         self.config = config
00012         self.dir = dir
00013 
00014         self.pset_template = 'CalibMuon.DTCalibration.dtNoiseCalibration_cfg'
00015         #if hasattr(self.config,'runOnCosmics') and self.config.runOnCosmics:
00016         #    self.pset_template = 'CalibMuon.DTCalibration.dtNoiseCalibration_cosmics_cfg'
00017 
00018         self.process = None  
00019         self.crab_cfg = None
00020         self.initProcess()
00021         self.initCrab()
00022         self.task = CrabTask(self.dir,self.crab_cfg)
00023 
00024     def initProcess(self):
00025         self.process = loadCmsProcess(self.pset_template)
00026         self.process.GlobalTag.globaltag = self.config.globaltag
00027         self.process.dtNoiseCalibration.rootFileName = self.outputROOT 
00028 
00029         if hasattr(self.config,'runOnRAW') and self.config.runOnRAW:
00030             prependPaths(self.process,self.config.digilabel)
00031  
00032         if hasattr(self.config,'preselection') and self.config.preselection:
00033             pathsequence = self.config.preselection.split(':')[0]
00034             seqname = self.config.preselection.split(':')[1]
00035             self.process.load(pathsequence)
00036             prependPaths(self.process,seqname)
00037 
00038     def initCrab(self):
00039         crab_cfg_parser = loadCrabCfg()
00040         loadCrabDefault(crab_cfg_parser,self.config)
00041         crab_cfg_parser.set('CMSSW','pset',self.pset_name)
00042         crab_cfg_parser.set('CMSSW','output_file','%s,%s' % (self.outputDB,self.outputROOT))
00043         crab_cfg_parser.remove_option('USER','additional_input_files')
00044 
00045         self.crab_cfg = crab_cfg_parser
00046 
00047     def writeCfg(self):
00048         writeCfg(self.process,self.dir,self.pset_name)
00049         #writeCfgPkl(self.process,self.dir,self.pset_name)
00050 
00051     def run(self):
00052         self.project = self.task.run()
00053         return self.project