CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DTTTrigValid.py
Go to the documentation of this file.
1 from tools import loadCmsProcess,loadCrabCfg,loadCrabDefault,addCrabInputFile,writeCfg,prependPaths
2 from addPoolDBESSource import addPoolDBESSource
3 from CrabTask import *
4 import os
5 
7  def __init__(self, run, dir, input_db, config):
8  self.pset_name = 'dtCalibValidation_cfg.py'
9  #self.outputfile = 'residuals.root,DQM.root'
10  self.outputfile = 'DQM.root'
11  self.config = config
12  self.dir = dir
13  self.inputdb = input_db
14 
15  self.pset_template = 'CalibMuon.DTCalibration.dtCalibValidation_cfg'
16  if hasattr(self.config,'runOnCosmics') and self.config.runOnCosmics:
17  self.pset_template = 'CalibMuon.DTCalibration.dtCalibValidation_cosmics_cfg'
18 
19  self.process = None
20  self.crab_cfg = None
21  self.initProcess()
22  self.initCrab()
23  self.task = CrabTask(self.dir,self.crab_cfg)
24 
25  def initProcess(self):
27  self.process.GlobalTag.globaltag = self.config.globaltag
28  #self.process.dtCalibValidation.OutputMEsInRootFile = True
29 
30  if hasattr(self.config,'inputDBTag') and self.config.inputDBTag:
31  tag = self.config.inputDBTag
32  record = self.config.inputDBRcd
33  connect = self.config.connectStrDBTag
34  moduleName = 'customDB%s' % record
35  addPoolDBESSource(process = self.process,
36  moduleName = moduleName,record = record,tag = tag,
37  connect = connect)
38 
39  if hasattr(self.config,'inputVDriftDB') and self.config.inputVDriftDB:
40  addPoolDBESSource(process = self.process,
41  moduleName = 'vDriftDB',record = 'DTMtimeRcd',tag = 'vDrift',
42  connect = 'sqlite_file:%s' % os.path.basename(self.config.inputVDriftDB))
43 
44  if(self.inputdb):
45  label = ''
46  if hasattr(self.config,'runOnCosmics') and self.config.runOnCosmics: label = 'cosmics'
47  addPoolDBESSource(process = self.process,
48  moduleName = 'calibDB',record = 'DTTtrigRcd',tag = 'ttrig',label=label,
49  connect = 'sqlite_file:%s' % os.path.basename(self.inputdb))
50 
51  if hasattr(self.config,'runOnRAW') and self.config.runOnRAW:
52  if hasattr(self.config,'runOnMC') and self.config.runOnMC:
53  getattr(self.process,self.config.digilabel).inputLabel = 'rawDataCollector'
54  prependPaths(self.process,self.config.digilabel)
55 
56  if hasattr(self.config,'preselection') and self.config.preselection:
57  pathsequence = self.config.preselection.split(':')[0]
58  seqname = self.config.preselection.split(':')[1]
59  self.process.load(pathsequence)
60  prependPaths(self.process,seqname)
61 
62  def initCrab(self):
63  crab_cfg_parser = loadCrabCfg()
64  loadCrabDefault(crab_cfg_parser,self.config)
65  crab_cfg_parser.set('CMSSW','pset',self.pset_name)
66  crab_cfg_parser.set('CMSSW','output_file',self.outputfile)
67  crab_cfg_parser.remove_option('USER','additional_input_files')
68  if self.inputdb:
69  addCrabInputFile(crab_cfg_parser,self.inputdb)
70 
71  if hasattr(self.config,'inputVDriftDB') and self.config.inputVDriftDB:
72  addCrabInputFile(crab_cfg_parser,self.config.inputVDriftDB)
73 
74  self.crab_cfg = crab_cfg_parser
75 
76  def writeCfg(self):
77  writeCfg(self.process,self.dir,self.pset_name)
78  #writeCfgPkl(self.process,self.dir,self.pset_name)
79 
80  def run(self):
81  self.project = self.task.run()
82  return self.project
def addCrabInputFile
Definition: tools.py:183
def loadCrabDefault
Definition: tools.py:195
def loadCmsProcess
Definition: tools.py:144
def loadCrabCfg
Definition: tools.py:178
perl if(1 lt scalar(@::datatypes))
Definition: edlooper.cc:31
def prependPaths
Definition: tools.py:154