CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Functions
tools Namespace Reference

Functions

def addCrabInputFile
 
def dqmWorkflowName
 
def haddInCastor
 
def haddLocal
 
def listFilesInCastor
 
def listFilesLocal
 
def loadCmsProcess
 
def loadCmsProcessFile
 
def loadCrabCfg
 
def loadCrabDefault
 
def parseInput
 
def prependPaths
 
def replaceTemplate
 
def setGridEnv
 
def writeCfg
 
def writeCfgPkl
 

Function Documentation

def tools.addCrabInputFile (   crabCfg,
  inputFile 
)

Definition at line 147 of file tools.py.

Referenced by DTResidualCalibration.DTResidualCalibration.initCrab(), DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.initCrab(), DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.initCrab(), and DTTTrigValid.DTTTrigValid.initCrab().

148 def addCrabInputFile(crabCfg,inputFile):
149  additionalInputFiles = ''
150  if crabCfg.has_option('USER','additional_input_files'):
151  additionalInputFiles = crab_cfg_parser.get('USER','additional_input_files')
152 
153  if additionalInputFiles: additionalInputFiles += ',%s' % inputFile
154  else: additionalInputFiles = inputFile
155 
156  crabCfg.set('USER','additional_input_files',additionalInputFiles)
157 
158  return crabCfg
def addCrabInputFile
Definition: tools.py:147
def tools.dqmWorkflowName (   datasetpath,
  type,
  rev = 1 
)

Definition at line 15 of file tools.py.

Referenced by DTDqm.DTDqm.initProcess().

15 
16 def dqmWorkflowName(datasetpath,type,rev=1):
17  workflowName = datasetpath
18  sections = workflowName.split('/')[1:]
19  workflowName = '/%s/%s-%s-rev%d/%s' % (sections[0],sections[1],type,rev,sections[2])
20 
21  return workflowName
def dqmWorkflowName
Definition: tools.py:15
def tools.haddInCastor (   castor_dir,
  result_file,
  type = 'root',
  prefix = 'rfio:',
  suffix = None 
)

Definition at line 47 of file tools.py.

References listFilesInCastor().

47 
48 def haddInCastor(castor_dir,result_file,type = 'root',prefix = 'rfio:',suffix = None):
49  if not castor_dir: raise ValueError,'Please specify valid castor dir'
50  if not result_file: raise ValueError,'Please specify valid output file name'
51 
52  #cmd = 'hadd %s `./listfilesCastor %s | grep %s`'%(result_file,castor_dir,type)
53  #print "Running",cmd
54  #os.system(cmd)
55  from subprocess import call
56  files = listFilesInCastor(castor_dir,type,prefix)
57  if suffix: files = [item + suffix for item in files]
58 
59  cmd = ['hadd',result_file]
60  cmd.extend(files)
61  #print cmd
62  retcode = call(cmd)
63  return retcode
def listFilesInCastor
Definition: tools.py:22
def haddInCastor
Definition: tools.py:47
def tools.haddLocal (   dir,
  result_file,
  type = 'root' 
)

Definition at line 64 of file tools.py.

References listFilesLocal().

64 
65 def haddLocal(dir,result_file,type = 'root'):
66  if not dir: raise ValueError,'Please specify valid dir'
67  if not result_file: raise ValueError,'Please specify valid output file name'
68 
69  from subprocess import call
70  files = listFilesLocal(dir,type)
71  cmd = ['hadd',result_file]
72  cmd.extend(files)
73  #print cmd
74  retcode = call(cmd)
75  return retcode
def listFilesLocal
Definition: tools.py:34
def haddLocal
Definition: tools.py:64
def tools.listFilesInCastor (   castor_dir,
  type = 'root',
  prefix = 'rfio:' 
)

Definition at line 22 of file tools.py.

Referenced by haddInCastor(), and DTDqm.runDQM().

22 
23 def listFilesInCastor(castor_dir,type = 'root',prefix = 'rfio:'):
24  if not castor_dir: raise ValueError,'Please specify valid castor dir'
25 
26  from subprocess import Popen,PIPE
27  p1 = Popen(['nsls',castor_dir],stdout=PIPE)
28  #p2 = Popen(['grep',type],stdin=p1.stdout,stdout=PIPE)
29  #files = [prefix + castor_dir + "/" + item[:-1] for item in p2.stdout]
30  #p2.stdout.close()
31  files = [ "%s%s/%s" % (prefix,castor_dir,item.rstrip()) for item in p1.stdout if item.find(type) != -1 ]
32  p1.stdout.close()
33  return files
def listFilesInCastor
Definition: tools.py:22
def tools.listFilesLocal (   dir,
  type = 'root' 
)

Definition at line 34 of file tools.py.

Referenced by haddLocal().

34 
35 def listFilesLocal(dir,type = 'root'):
36  if not dir: raise ValueError,'Please specify valid dir'
37 
38  #from subprocess import Popen,PIPE
39  #p1 = Popen(['ls',dir],stdout=PIPE)
40  #p2 = Popen(['grep',type],stdin=p1.stdout,stdout=PIPE)
41  #files = [dir + "/" + item[:-1] for item in p2.stdout]
42  #p2.stdout.close()
43  files = os.listdir(dir)
44  files = [ "%s/%s" % (dir,item) for item in files if item.find(type) != -1 ]
45 
46  return files
def listFilesLocal
Definition: tools.py:34
def tools.loadCmsProcess (   psetPath)

Definition at line 110 of file tools.py.

Referenced by DTTTrigProd.DTTTrigProd.initProcess(), DTValidSummary.DTValidSummary.initProcess(), DTDqm.DTDqm.initProcess(), DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.initProcess(), DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.initProcess(), DTResidualCalibration.DTResidualCalibration.initProcess(), and DTTTrigValid.DTTTrigValid.initProcess().

111 def loadCmsProcess(psetPath):
112  module = __import__(psetPath)
113  process = sys.modules[psetPath].process
114 
115  import copy
116  processNew = copy.copy(process)
117  return processNew
def loadCmsProcess
Definition: tools.py:110
def tools.loadCmsProcessFile (   psetName)

Definition at line 106 of file tools.py.

107 def loadCmsProcessFile(psetName):
108  pset = imp.load_source("psetmodule",psetName)
109  return pset.process
def loadCmsProcessFile
Definition: tools.py:106
def tools.loadCrabCfg (   cfgName = None)

Definition at line 142 of file tools.py.

Referenced by DTTTrigProd.DTTTrigProd.initCrab(), DTResidualCalibration.DTResidualCalibration.initCrab(), DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.initCrab(), DTTTrigValid.DTTTrigValid.initCrab(), and DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.initCrab().

143 def loadCrabCfg(cfgName=None):
144  config = ConfigParser.ConfigParser()
145  if cfgName: config.read(cfgName)
146  return config
def loadCrabCfg
Definition: tools.py:142
def tools.loadCrabDefault (   crabCfg,
  config 
)

Definition at line 159 of file tools.py.

Referenced by DTTTrigProd.DTTTrigProd.initCrab(), DTResidualCalibration.DTResidualCalibration.initCrab(), DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.initCrab(), DTTTrigValid.DTTTrigValid.initCrab(), and DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.initCrab().

160 def loadCrabDefault(crabCfg,config):
161  # CRAB section
162  if not crabCfg.has_section('CRAB'): crabCfg.add_section('CRAB')
163  crabCfg.set('CRAB','jobtype','cmssw')
164 
165  if hasattr(config,'scheduler') and config.scheduler: crabCfg.set('CRAB','scheduler',config.scheduler)
166  else: crabCfg.set('CRAB','scheduler','CAF')
167 
168  if hasattr(config,'useserver') and config.useserver: crabCfg.set('CRAB','use_server',1)
169 
170  # CMSSW section
171  if not crabCfg.has_section('CMSSW'): crabCfg.add_section('CMSSW')
172  if hasattr(config,'datasetpath') and config.datasetpath: crabCfg.set('CMSSW','datasetpath',config.datasetpath)
173  else: crabCfg.set('CMSSW','datasetpath','/XXX/YYY/ZZZ')
174  crabCfg.set('CMSSW','pset','pset.py')
175 
176  # Splitting config
177  crabCfg.remove_option('CMSSW','total_number_of_events')
178  crabCfg.remove_option('CMSSW','events_per_job')
179  crabCfg.remove_option('CMSSW','number_of_jobs')
180  crabCfg.remove_option('CMSSW','total_number_of_lumis')
181  crabCfg.remove_option('CMSSW','lumis_per_job')
182  crabCfg.remove_option('CMSSW','lumi_mask')
183  crabCfg.remove_option('CMSSW','split_by_run')
184 
185  if hasattr(config,'runselection') and config.runselection: crabCfg.set('CMSSW','runselection',config.runselection)
186  """
187  if hasattr(config,'totalnumberevents'): crabCfg.set('CMSSW','total_number_of_events',config.totalnumberevents)
188  if hasattr(config,'eventsperjob'): crabCfg.set('CMSSW','events_per_job',config.eventsperjob)
189  """
190  if hasattr(config,'splitByLumi') and config.splitByLumi:
191  crabCfg.set('CMSSW','total_number_of_lumis',config.totalnumberlumis)
192  crabCfg.set('CMSSW','lumis_per_job',config.lumisperjob)
193  if hasattr(config,'lumimask') and config.lumimask: crabCfg.set('CMSSW','lumi_mask',config.lumimask)
194  else:
195  crabCfg.set('CMSSW','split_by_run',1)
196 
197  # USER section
198  if not crabCfg.has_section('USER'): crabCfg.add_section('USER')
199 
200  # Stageout config
201  if hasattr(config,'stageOutCAF') and config.stageOutCAF:
202  crabCfg.set('USER','return_data',0)
203  crabCfg.set('USER','copy_data',1)
204  crabCfg.set('USER','storage_element','T2_CH_CAF')
205  crabCfg.set('USER','user_remote_dir',config.userdircaf)
206  crabCfg.set('USER','check_user_remote_dir',0)
207  elif hasattr(config,'stageOutLocal') and config.stageOutLocal:
208  crabCfg.set('USER','return_data',1)
209  crabCfg.set('USER','copy_data',0)
210  crabCfg.remove_option('USER','storage_element')
211  crabCfg.remove_option('USER','user_remote_dir')
212  crabCfg.remove_option('USER','check_user_remote_dir')
213 
214  if hasattr(config,'email') and config.email: crabCfg.set('USER','eMail',config.email)
215  crabCfg.set('USER','xml_report','crabReport.xml')
216 
217  if hasattr(config,'runOnGrid') and config.runOnGrid:
218  crabCfg.remove_section('CAF')
219  else:
220  if not crabCfg.has_section('CAF'): crabCfg.add_section('CAF')
221  crabCfg.set('CAF','queue',config.queueAtCAF)
222 
223  return crabCfg
def loadCrabDefault
Definition: tools.py:159
def tools.parseInput (   inputFields,
  requiredFields = () 
)

Definition at line 88 of file tools.py.

88 
89 def parseInput(inputFields,requiredFields = ()):
90 
91  class options: pass
92  for item in sys.argv:
93  option = item.split('=')[0]
94  if option in inputFields:
95  value = item.split('=')[1]
96  if value in ('true','True','yes','Yes'): value = True
97  elif value in ('false','False','no','No'): value = False
98 
99  setattr(options,option,value)
100 
101  for item in requiredFields:
102  if not hasattr(options,item):
103  raise RuntimeError,'Need to set "%s"' % item
104 
105  return options
def parseInput
Definition: tools.py:88
def tools.prependPaths (   process,
  seqname 
)

Definition at line 118 of file tools.py.

Referenced by DTTTrigProd.DTTTrigProd.initProcess(), DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.initProcess(), DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.initProcess(), DTResidualCalibration.DTResidualCalibration.initProcess(), and DTTTrigValid.DTTTrigValid.initProcess().

119 def prependPaths(process,seqname):
120  for path in process.paths:
121  getattr(process,path)._seq = getattr(process,seqname)*getattr(process,path)._seq
def prependPaths
Definition: tools.py:118
def tools.replaceTemplate (   template,
  opts 
)

Definition at line 5 of file tools.py.

References SiPixelLorentzAngle_cfi.read.

5 
6 def replaceTemplate(template,**opts):
7  result = open(template).read()
8  for item in opts:
9  old = '@@%s@@'%item
10  new = str(opts[item])
11  print "Replacing",old,"to",new
12  result = result.replace(old,new)
13 
14  return result
def replaceTemplate
Definition: tools.py:5
def tools.setGridEnv (   cmssw_dir)

Definition at line 76 of file tools.py.

76 
77 def setGridEnv(cmssw_dir):
78  cwd = os.getcwd()
79  os.chdir(cmssw_dir)
80 
81  os.system('source /afs/cern.ch/cms/LCG/LCG-2/UI/cms_ui_env.sh')
82  os.system('cmsenv')
83  os.system('source /afs/cern.ch/cms/ccs/wm/scripts/Crab/crab.sh')
84 
85  os.chdir(cwd)
86 
87  return
def setGridEnv
Definition: tools.py:76
def tools.writeCfg (   process,
  dir,
  psetName 
)

Definition at line 122 of file tools.py.

123 def writeCfg(process,dir,psetName):
124  if not os.path.exists(dir): os.makedirs(dir)
125  open(dir + '/' + psetName,'w').write(process.dumpPython())
def writeCfg
Definition: tools.py:122
def tools.writeCfgPkl (   process,
  dir,
  psetName 
)

Definition at line 126 of file tools.py.

127 def writeCfgPkl(process,dir,psetName):
128  if not os.path.exists(dir): os.makedirs(dir)
129 
130  pklFileName = psetName.split('.')[0] + '.pkl'
131  pklFile = open(dir + '/' + pklFileName,"wb")
132  myPickle = pickle.Pickler(pklFile)
133  myPickle.dump(process)
134  pklFile.close()
135 
136  outFile = open(dir + '/' + psetName,"w")
137  outFile.write("import FWCore.ParameterSet.Config as cms\n")
138  outFile.write("import pickle\n")
139  outFile.write("process = pickle.load(open('%s', 'rb'))\n" % pklFileName)
140  outFile.close()
141 
def writeCfgPkl
Definition: tools.py:126