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

Comparing UserCode/VHbb/python/train.py (file contents):
Revision 1.8 by peller, Fri Aug 3 15:43:03 2012 UTC vs.
Revision 1.9 by nmohr, Mon Sep 17 18:23:58 2012 UTC

# Line 6 | Line 6 | import ROOT
6   from ROOT import TFile, TTree
7   import ROOT
8   from array import array
9 + from optparse import OptionParser
10   from BetterConfigParser import BetterConfigParser
11   import sys
12   from mvainfos import mvainfo
# Line 19 | Line 20 | from gethistofromtree import getScale
20  
21  
22   #CONFIGURE
23 + argv = sys.argv
24 + parser = OptionParser()
25 + parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False,
26 +                          help="Verbose mode.")
27 + parser.add_option("-T", "--training", dest="training", default="",
28 +                      help="Training")
29 + parser.add_option("-C", "--config", dest="config", default=[], action="append",
30 +                      help="configuration file")
31 + (opts, args) = parser.parse_args(argv)
32 + if opts.config =="":
33 +        opts.config = "config"
34  
35   #load config
36   config = BetterConfigParser()
37 < #config.read('./config')
38 < #config.read('./config7TeV')
39 < config.read('./config7TeV_ZZ')
40 <
37 > config.read(opts.config)
38 > anaTag = config.get("Analysis","tag")
39 > run=opts.training
40 > gui=opts.verbose
41  
42   #GLOABAL rescale from Train/Test Spliiting:
43   global_rescale=2.
# Line 42 | Line 54 | weightF=config.get('Weights','weightF')
54  
55  
56  
57 < def getTree(job,cut,subsample=-1):
58 <
59 <    newinput = TFile.Open(job.getpath(),'read')
57 > def getTree(job,cut,path,subsample=-1):
58 >    print path+'/'+job.getpath()
59 >    newinput = TFile.Open(path+'/'+job.getpath(),'read')
60      output.cd()
61      Tree = newinput.Get(job.tree)
62      #Tree.SetDirectory(0)
# Line 70 | Line 82 | def getTree(job,cut,subsample=-1):
82   #    #print lumi*xsecs[i]/hist.GetBinContent(1)
83   #    return float(job.lumi)*float(job.xsec)*float(job.sf)/(0.46502*CountWithPU.GetBinContent(1)+0.53498*CountWithPU2011B.GetBinContent(1))*2/float(job.split)
84  
73 run=sys.argv[1]
74 gui=sys.argv[2]
85  
86  
87   #CONFIG
# Line 117 | Line 127 | infofile.close()
127   workdir=ROOT.gDirectory.GetPath()
128  
129  
130 < TrainCut='%s && EventForTraining==1'%TCut
131 < EvalCut='%s && EventForTraining==0'%TCut
130 > TrainCut='%s & EventForTraining==1'%TCut
131 > EvalCut='%s & EventForTraining==0'%TCut
132  
133   #load TRAIN trees
134   Tbackgrounds = []
# Line 140 | Line 150 | for job in info:
150              for subsample in range(0,len(job.group)):
151                  if job.subnames[subsample] in signals:
152                      print '\t- %s as SIG'%job.group[subsample]
153 <                    Tsignal = getTree(job,TrainCut,subsample)
153 >                    Tsignal = getTree(job,TrainCut,path,subsample)
154                      ROOT.gDirectory.Cd(workdir)
155 <                    TsScale = getScale(job,global_rescale,subsample)
155 >                    TsScale = getScale(job,path,global_rescale,subsample)
156                      Tsignals.append(Tsignal)
157                      TsScales.append(TsScale)
158                      print '\t\t\t%s events'%Tsignal.GetEntries()
159                  elif job.subnames[subsample] in backgrounds:
160                      print '\t- %s as BKG'%job.group[subsample]
161 <                    Tbackground = getTree(job,TrainCut,subsample)
161 >                    Tbackground = getTree(job,TrainCut,path,subsample)
162                      ROOT.gDirectory.Cd(workdir)
163 <                    TbScale = getScale(job,global_rescale,subsample)
163 >                    TbScale = getScale(job,path,global_rescale,subsample)
164                      Tbackgrounds.append(Tbackground)
165                      TbScales.append(TbScale)
166                      print '\t\t\t%s events'%Tbackground.GetEntries()
# Line 158 | Line 168 | for job in info:
168          else:
169              if job.name in signals:
170                  print '\tREADING IN %s AS SIG'%job.name
171 <                Tsignal = getTree(job,TrainCut)
171 >                Tsignal = getTree(job,TrainCut,path)
172                  ROOT.gDirectory.Cd(workdir)
173 <                TsScale = getScale(job,global_rescale)
173 >                TsScale = getScale(job,path,global_rescale)
174                  Tsignals.append(Tsignal)
175                  TsScales.append(TsScale)
176                  print '\t\t\t%s events'%Tsignal.GetEntries()
177              elif job.name in backgrounds:
178                  print '\tREADING IN %s AS BKG'%job.name
179 <                Tbackground = getTree(job,TrainCut)
179 >                Tbackground = getTree(job,TrainCut,path)
180                  ROOT.gDirectory.Cd(workdir)
181 <                TbScale = getScale(job,global_rescale)
181 >                TbScale = getScale(job,path,global_rescale)
182                  Tbackgrounds.append(Tbackground)
183                  TbScales.append(TbScale)
184                  print '\t\t\t%s events'%Tbackground.GetEntries()
# Line 191 | Line 201 | for job in info:
201              for subsample in range(0,len(job.group)):
202                  if job.subnames[subsample] in signals:
203                      print '\t- %s as SIG'%job.group[subsample]
204 <                    Esignal = getTree(job,EvalCut,subsample)
204 >                    Esignal = getTree(job,EvalCut,path,subsample)
205                      ROOT.gDirectory.Cd(workdir)
206 <                    EsScale = getScale(job,global_rescale,subsample)
206 >                    EsScale = getScale(job,path,global_rescale,subsample)
207                      Esignals.append(Esignal)
208                      EsScales.append(EsScale)
209                      print '\t\t\t%s events'%Esignal.GetEntries()
210                  elif job.subnames[subsample] in backgrounds:
211                      print '\t- %s as BKG'%job.group[subsample]
212 <                    Ebackground = getTree(job,EvalCut,subsample)
212 >                    Ebackground = getTree(job,EvalCut,path,subsample)
213                      ROOT.gDirectory.Cd(workdir)
214 <                    EbScale = getScale(job,global_rescale,subsample)
214 >                    EbScale = getScale(job,path,global_rescale,subsample)
215                      Ebackgrounds.append(Ebackground)
216                      EbScales.append(EbScale)
217                      print '\t\t\t%s events'%Ebackground.GetEntries()
# Line 209 | Line 219 | for job in info:
219          else:
220              if job.name in signals:
221                  print '\tREADING IN %s AS SIG'%job.name
222 <                Esignal = getTree(job,EvalCut)
222 >                Esignal = getTree(job,EvalCut,path)
223                  ROOT.gDirectory.Cd(workdir)
224 <                EsScale = getScale(job,global_rescale)
224 >                EsScale = getScale(job,path,global_rescale)
225                  Esignals.append(Esignal)
226                  EsScales.append(EsScale)
227                  print '\t\t\t%s events'%Esignal.GetEntries()
228              elif job.name in backgrounds:
229                  print '\tREADING IN %s AS BKG'%job.name
230 <                Ebackground = getTree(job,EvalCut)
230 >                Ebackground = getTree(job,EvalCut,path)
231                  ROOT.gDirectory.Cd(workdir)
232 <                EbScale = getScale(job,global_rescale)
232 >                EbScale = getScale(job,path,global_rescale)
233                  Ebackgrounds.append(Ebackground)
234                  EbScales.append(EbScale)
235                  print '\t\t\t%s events'%Ebackground.GetEntries()
# Line 276 | Line 286 | pickle.dump(info,infofile)
286   infofile.close()
287  
288   # open the TMVA Gui
289 < if gui == 'gui':
289 > if gui == True:
290      ROOT.gROOT.ProcessLine( ".L TMVAGui.C")
291      ROOT.gROOT.ProcessLine( "TMVAGui(\"%s\")" % fnameOutput )
292      ROOT.gApplication.Run()

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines