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 |
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. |
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) |
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 |
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 = [] |
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() |
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() |
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() |
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() |
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() |