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 replaceTemplate
2 from tools import loadCmsProcess,loadCrabCfg,loadCrabDefault,writeCfg,prependPaths
3 from CrabTask import *
4 import os
5 
7  def __init__(self, run, dir, input_db, config):
8  self.pset_name = 'DTkFactValidation_1_cfg.py'
9  self.outputfile = 'residuals.root,DQM.root'
10  self.config = config
11  self.dir = dir
12  self.inputdb = input_db
13 
14  #self.crab_template = os.environ['CMSSW_BASE'] + '/src/Workflow/' + 'templates/crab/crab_Valid_TEMPL.cfg'
15  #self.pset_template = os.environ['CMSSW_BASE'] + '/src/Workflow/' + 'templates/config/DTkFactValidation_1_TEMPL_cfg.py'
16  self.crab_template = config.templatepath + '/crab/crab_ttrig_valid.cfg'
17  self.pset_template = config.templatepath + '/config/DTkFactValidation_1_cfg.py'
18 
19  #self.crab_opts = crab_opts
20  #self.crab_opts['PSET'] = pset_name
21 
22  #self.pset_opts = pset_opts
23 
24  #self.crab_cfg = replaceTemplate(self.crab_template,**self.crab_opts)
25  #self.pset = replaceTemplate(self.pset_template,**self.pset_opts)
26 
27  #desc = 'Run%s'%run
28  #desc += '/Ttrig/Validation'
29  #self.desc = desc
30 
31  self.initProcess()
32  self.initCrab()
33  #self.task = CrabTask(self.desc,self.crab_cfg,self.pset,pset_name)
34  self.task = CrabTask(self.dir,self.crab_cfg)
35 
36  def initProcess(self):
37  import FWCore.ParameterSet.Config as cms
39  self.process.GlobalTag.globaltag = self.config.globaltag
40  if(self.inputdb):
41  self.process.calibDB = cms.ESSource("PoolDBESSource",self.process.CondDBSetup,
42  timetype = cms.string('runnumber'),
43  toGet = cms.VPSet(cms.PSet(
44  record = cms.string('DTTtrigRcd'),
45  tag = cms.string('ttrig')
46  )),
47  connect = cms.string('sqlite_file:'),
48  authenticationMethod = cms.untracked.uint32(0))
49 
50  self.process.calibDB.connect = 'sqlite_file:%s' % os.path.basename(self.inputdb)
51  self.process.es_prefer_calibDB = cms.ESPrefer('PoolDBESSource','calibDB')
52 
53  if hasattr(self.config,'preselection') and self.config.preselection:
54  pathsequence = self.config.preselection.split(':')[0]
55  seqname = self.config.preselection.split(':')[1]
56  self.process.load(pathsequence)
57  prependPaths(self.process,seqname)
58 
59  def initCrab(self):
60  crab_cfg_parser = loadCrabCfg(self.crab_template)
61  loadCrabDefault(crab_cfg_parser,self.config)
62  crab_cfg_parser.set('CMSSW','pset',self.pset_name)
63  crab_cfg_parser.set('CMSSW','output_file',self.outputfile)
64  if self.inputdb: crab_cfg_parser.set('USER','additional_input_files',self.inputdb)
65  else: crab_cfg_parser.remove_option('USER','additional_input_files')
66  self.crab_cfg = crab_cfg_parser
67 
68  def writeCfg(self):
69  writeCfg(self.process,self.dir,self.pset_name)
70 
71  def run(self):
72  self.project = self.task.run()
73  return self.project
74 
75 if __name__ == '__main__':
76 
77  run = None
78  trial = None
79  import sys
80  for opt in sys.argv:
81  if opt[:4] == 'run=':
82  run = opt[4:]
83  if opt[:6] == 'trial=':
84  trial = opt[6:]
85 
86  if not run: raise ValueError,'Need to set run number'
87  if not trial: raise ValueError,'Need to set trial number'
88 
89  run_dir = 'Test'
90  ttrig_second_db = os.path.abspath(run_dir + '/' + 'ttrig_second_' + run + '.db')
91 
92  config.globaltag = 'GR09_P_V1::All'
93  config.scheduler = 'CAF'
94  config.useserver = True
95  config.datasetpath = '/StreamExpress/CRAFT09-MuAlCalIsolatedMu-v1/ALCARECO'
96  config.runselection = run
97  config.totalnumberevents = 1000000
98  config.eventsperjob = 50000
99  config.stageOutCAF = True
100  config.userdircaf = 'TTRIGCalibration/Validation/First/Run' + str(run) + '/v' + str(trial)
101  config.email = 'vilela@to.infn.it'
102  config.templatepath = 'templates'
103 
104  dtTtrigValid = DTTTrigValid(run,run_dir,ttrig_second_db,config)
105  #project = dtTtrigValid.run()
106  #print "Sent validation jobs with project",project
def loadCrabDefault
Definition: tools.py:110
def loadCmsProcess
Definition: tools.py:93
def loadCrabCfg
Definition: tools.py:105
perl if(1 lt scalar(@::datatypes))
Definition: edlooper.cc:31
def prependPaths
Definition: tools.py:97