ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/python/submitThem.py
(Generate patch)

Comparing UserCode/VHbb/python/submitThem.py (file contents):
Revision 1.27 by nmohr, Fri Feb 1 10:47:38 2013 UTC vs.
Revision 1.28 by peller, Fri Feb 8 14:36:00 2013 UTC

# Line 1 | Line 1
1   #! /usr/bin/env python
2   from optparse import OptionParser
3   import sys
4 + import time
5 + import os
6 + import shutil
7  
8   parser = OptionParser()
9   parser.add_option("-T", "--tag", dest="tag", default="",
# Line 11 | Line 14 | parser.add_option("-M", "--mass", dest="
14                        help="Mass for DC or Plots, 110...135")
15   parser.add_option("-S","--samples",dest="samples",default="",
16                        help="samples you want to run on")
17 <
17 > parser.add_option("-F", "--folderTag", dest="ftag", default="",
18 >                      help="Creats a new folder structure for outputs or uses an existing one with the given name")
19   (opts, args) = parser.parse_args(sys.argv)
20  
21   import os,shutil,pickle,subprocess,ROOT
# Line 27 | Line 31 | if opts.task == "":
31      print "Please provide a task.\n-J prep:\tpreparation of Trees\n-J sys:\t\twrite regression and systematics\n-J eval:\tcreate MVA output\n-J plot:\tproduce Plots\n-J dc:\t\twrite workspaces and datacards"
32      sys.exit(123)
33  
34 +
35 + en = opts.tag
36 +
37   #create the list with the samples to run over
38   samplesList=opts.samples.split(",")
39  
40 < en = opts.tag
40 > timestamp = time.asctime().replace(' ','_').replace(':','-')
41 >
42   configs = ['%sconfig/general'%(en),'%sconfig/paths'%(en),'%sconfig/plots'%(en),'%sconfig/training'%(en),'%sconfig/datacards'%(en),'%sconfig/cuts'%(en)]
43 <        
43 >
44 > pathconfig = BetterConfigParser()
45 > pathconfig.read('%sconfig/paths'%(en))
46 >
47 > if not opts.ftag == '':
48 >    tagDir = pathconfig.get('Directories','tagDir')
49 >    DirStruct={'tagDir':tagDir,'ftagdir':'%s/%s/'%(tagDir,opts.ftag),'logpath':'%s/%s/%s/'%(tagDir,opts.ftag,'Logs'),'plotpath':'%s/%s/%s/'%(tagDir,opts.ftag,'Plots'),'limitpath':'%s/%s/%s/'%(tagDir,opts.ftag,'Limits'),'confpath':'%s/%s/%s/'%(tagDir,opts.ftag,'config') }
50 >
51 >    for keys in ['tagDir','ftagdir','logpath','plotpath','limitpath','confpath']:
52 >        try:
53 >            os.stat(DirStruct[keys])
54 >        except:
55 >            os.mkdir(DirStruct[keys])
56 >
57 >    pathfile = open('%sconfig/paths'%(en))
58 >    buffer = pathfile.readlines()
59 >    pathfile.close()
60 >    os.rename('%sconfig/paths'%(en),'%sconfig/paths.bkp'%(en))
61 >    pathfile = open('%sconfig/paths'%(en),'w')
62 >    for line in buffer:
63 >        if line.startswith('plotpath'):
64 >            line = 'plotpath: %s\n'%DirStruct['plotpath']
65 >        elif line.startswith('logpath'):
66 >            line = 'logpath: %s\n'%DirStruct['logpath']
67 >        elif line.startswith('limits'):
68 >            line = 'limits: %s\n'%DirStruct['limitpath']
69 >        pathfile.write(line)
70 >    pathfile.close()
71 >
72 >    #copy config files
73 >    for item in configs:
74 >        shutil.copyfile(item,'%s/%s/%s'%(tagDir,opts.ftag,item.strip(en)))
75 >
76 >
77   print configs
78   config = BetterConfigParser()
79   config.read(configs)
80 +
81   btagLibrary = config.get('BTagReshaping','library')
82   submitDir = os.getcwd()
83   os.chdir(os.path.dirname(btagLibrary))
# Line 52 | Line 94 | if( not os.path.isdir(logPath) ):
94          print 'Exit'
95          sys.exit(-1)
96  
97 < repDict = {'en':en,'logpath':logPath,'job':'','task':opts.task,'queue': 'all.q'}
97 > repDict = {'en':en,'logpath':logPath,'job':'','task':opts.task,'queue': 'all.q','timestamp':timestamp}
98   def submit(job,repDict):
99          repDict['job'] = job
100 <        command = 'qsub -V -cwd -q %(queue)s -l h_vmem=6G -N %(job)s_%(en)s%(task)s -o %(logpath)s/%(job)s_%(en)s_%(task)s.out -e %(logpath)s/%(job)s_%(en)s_%(task)s.err runAll.sh %(job)s %(en)s ' %(repDict) + opts.task
100 >        command = 'qsub -V -cwd -q %(queue)s -l h_vmem=6G -N %(job)s_%(en)s%(task)s -o %(logpath)s/%(timestamp)s_%(job)s_%(en)s_%(task)s.out -e %(logpath)s/%(timestamp)s_%(job)s_%(en)s_%(task)s.err runAll.sh %(job)s %(en)s ' %(repDict) + opts.task
101          print command
102          subprocess.call([command], shell=True)
103  
# Line 97 | Line 139 | elif opts.task == 'eval' or opts.task ==
139              submit(sample,repDict)
140  
141   os.system('qstat')
142 + os.system('./qstat.py')

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines