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

Comparing UserCode/VHbb/python/evaluateMVA.py (file contents):
Revision 1.7 by nmohr, Tue Jun 19 22:55:47 2012 UTC vs.
Revision 1.8 by peller, Thu Aug 2 16:03:52 2012 UTC

# Line 111 | Line 111 | infofile.close()
111  
112   #eval
113   for job in Ainfo:
114 <
115 <    if job.name in namelist:
116 <        #get trees:
117 <        input = TFile.Open(job.getpath(),'read')
118 <        outfile = TFile.Open(job.path+'/'+MVAdir+job.prefix+job.identifier+'.root','recreate')
119 <        input.cd()
120 <        obj = ROOT.TObject
121 <        for key in ROOT.gDirectory.GetListOfKeys():
114 >    if eval(job.active):
115 >        if job.name in namelist:
116 >            #get trees:
117 >            input = TFile.Open(job.getpath(),'read')
118 >            outfile = TFile.Open(job.path+'/'+MVAdir+job.prefix+job.identifier+'.root','recreate')
119              input.cd()
120 <            obj = key.ReadObj()
121 <            #print obj.GetName()
122 <            if obj.GetName() == job.tree:
123 <                continue
120 >            obj = ROOT.TObject
121 >            for key in ROOT.gDirectory.GetListOfKeys():
122 >                input.cd()
123 >                obj = key.ReadObj()
124 >                #print obj.GetName()
125 >                if obj.GetName() == job.tree:
126 >                    continue
127 >                outfile.cd()
128 >                #print key.GetName()
129 >                obj.Write(key.GetName())
130 >            tree = input.Get(job.tree)
131 >            nEntries = tree.GetEntries()
132              outfile.cd()
133 <            #print key.GetName()
129 <            obj.Write(key.GetName())
130 <        tree = input.Get(job.tree)
131 <        nEntries = tree.GetEntries()
132 <        outfile.cd()
133 <        newtree = tree.CloneTree(0)
133 >            newtree = tree.CloneTree(0)
134  
135 <        #MCs:
136 <        if job.type != 'DATA':
137 <            MVA_formulas={}
138 <            MVA_formulas4={}
139 <            for systematic in systematics:
140 <                #print '\t\t - ' + systematic
141 <                MVA_formulas[systematic]=[]
142 <                MVA_formulas4[systematic]=[]
135 >            #MCs:
136 >            if job.type != 'DATA':
137 >                MVA_formulas={}
138 >                MVA_formulas4={}
139 >                for systematic in systematics:
140 >                    #print '\t\t - ' + systematic
141 >                    MVA_formulas[systematic]=[]
142 >                    MVA_formulas4[systematic]=[]
143 >                    #create TTreeFormulas
144 >                    for j in range(len( MVA_Vars['Nominal'])):
145 >                        MVA_formulas[systematic].append(ROOT.TTreeFormula("MVA_formula%s_%s"%(j,systematic),MVA_Vars[systematic][j],tree))
146 >                        MVA_formulas4[systematic].append(ROOT.TTreeFormula("MVA_formula4%s_%s"%(j,systematic),MVA_Vars['Nominal'][j]+'+('+MVA_Vars[systematic][j]+'-'+MVA_Vars['Nominal'][j]+')*4',tree))#HERE change
147 >                outfile.cd()
148 >                #Setup Branches
149 >                MVAbranches=[]
150 >                MVAbranches4=[]
151 >                for i in range(0,len(readers)):
152 >                    MVAbranches.append(array('f',[0]*9))
153 >                    MVAbranches4.append(array('f',[0]*9))
154 >                    newtree.Branch(MVAinfos[i].MVAname,MVAbranches[i],'nominal:JER_up:JER_down:JES_up:JES_down:beff_up:beff_down:bmis_up:bmis_down/F')
155 >                    newtree.Branch(MVAinfos[i].MVAname+'_4',MVAbranches4[i],'nominal:JER_up:JER_down:JES_up:JES_down:beff_up:beff_down:bmis_up:bmis_down/F')
156 >                print '\n--> ' + job.name +':'
157 >                #progbar setup
158 >                if nEntries >= longe:
159 >                    step=int(nEntries/longe)
160 >                    long=longe
161 >                else:
162 >                    long=nEntries
163 >                    step = 1
164 >                bar=progbar(long)
165 >                #Fill event by event:
166 >                for entry in range(0,nEntries):
167 >                    if entry % step == 0:
168 >                        bar.move()
169 >                    #load entry
170 >                    tree.GetEntry(entry)
171 >                    for systematic in systematics:
172 >                        for j in range(len( MVA_Vars['Nominal'])):
173 >                            MVA_var_buffer[j][0] = MVA_formulas[systematic][j].EvalInstance()
174 >                            
175 >                        for j in range(0,len(readers)):
176 >                            MVAbranches[j][systematics.index(systematic)] = readers[j].EvaluateMVA(MVAinfos[j].MVAname)
177 >                            
178 >                        for j in range(len( MVA_Vars['Nominal'])):
179 >                            MVA_var_buffer[j][0] = MVA_formulas4[systematic][j].EvalInstance()
180 >                            
181 >                        for j in range(0,len(readers)):
182 >                            MVAbranches4[j][systematics.index(systematic)] = readers[j].EvaluateMVA(MVAinfos[j].MVAname)
183 >                    #Fill:
184 >                    newtree.Fill()
185 >                newtree.AutoSave()
186 >                outfile.Close()
187 >                
188 >            #DATA:
189 >            if job.type == 'DATA':
190 >                #MVA Formulas
191 >                MVA_formulas_Nominal = []
192                  #create TTreeFormulas
193                  for j in range(len( MVA_Vars['Nominal'])):
194 <                    MVA_formulas[systematic].append(ROOT.TTreeFormula("MVA_formula%s_%s"%(j,systematic),MVA_Vars[systematic][j],tree))
195 <                    MVA_formulas4[systematic].append(ROOT.TTreeFormula("MVA_formula4%s_%s"%(j,systematic),MVA_Vars['Nominal'][j]+'+('+MVA_Vars[systematic][j]+'-'+MVA_Vars['Nominal'][j]+')*4',tree))#HERE change
196 <            outfile.cd()
197 <            #Setup Branches
198 <            MVAbranches=[]
199 <            MVAbranches4=[]
200 <            for i in range(0,len(readers)):
201 <                MVAbranches.append(array('f',[0]*9))
202 <                MVAbranches4.append(array('f',[0]*9))
203 <                newtree.Branch(MVAinfos[i].MVAname,MVAbranches[i],'nominal:JER_up:JER_down:JES_up:JES_down:beff_up:beff_down:bmis_up:bmis_down/F')
204 <                newtree.Branch(MVAinfos[i].MVAname+'_4',MVAbranches4[i],'nominal:JER_up:JER_down:JES_up:JES_down:beff_up:beff_down:bmis_up:bmis_down/F')
205 <            print '\n--> ' + job.name +':'
206 <            #progbar setup
207 <            if nEntries >= longe:
208 <                step=int(nEntries/longe)
209 <                long=longe
210 <            else:
211 <                long=nEntries
212 <                step = 1
213 <            bar=progbar(long)
214 <            #Fill event by event:
215 <            for entry in range(0,nEntries):
216 <                if entry % step == 0:
168 <                    bar.move()
169 <                #load entry
170 <                tree.GetEntry(entry)
171 <                for systematic in systematics:
194 >                    MVA_formulas_Nominal.append(ROOT.TTreeFormula("MVA_formula%s_Nominal"%j, MVA_Vars['Nominal'][j],tree))
195 >                outfile.cd()
196 >                MVAbranches=[]
197 >                for i in range(0,len(readers)):
198 >                    MVAbranches.append(array('f',[0]))
199 >                    newtree.Branch(MVAinfos[i].MVAname,MVAbranches[i],'nominal/F')
200 >                    newtree.Branch(MVAinfos[i].MVAname+'_4',MVAbranches[i],'nominal/F')
201 >                #progbar          
202 >                print '\n--> ' + job.name +':'
203 >                if nEntries >= longe:
204 >                    step=int(nEntries/longe)
205 >                    long=longe
206 >                else:
207 >                    long=nEntries
208 >                    step = 1
209 >                bar=progbar(long)
210 >                #Fill event by event:
211 >                for entry in range(0,nEntries):
212 >                    if entry % step == 0:
213 >                        bar.move()
214 >                    #load entry
215 >                    tree.GetEntry(entry)
216 >                    #nominal:
217                      for j in range(len( MVA_Vars['Nominal'])):
218 <                        MVA_var_buffer[j][0] = MVA_formulas[systematic][j].EvalInstance()
219 <                        
218 >                            MVA_var_buffer[j][0] = MVA_formulas_Nominal[j].EvalInstance()
219 >                            
220                      for j in range(0,len(readers)):
221 <                        MVAbranches[j][systematics.index(systematic)] = readers[j].EvaluateMVA(MVAinfos[j].MVAname)
222 <                        
223 <                    for j in range(len( MVA_Vars['Nominal'])):
224 <                        MVA_var_buffer[j][0] = MVA_formulas4[systematic][j].EvalInstance()
180 <                        
181 <                    for j in range(0,len(readers)):
182 <                        MVAbranches4[j][systematics.index(systematic)] = readers[j].EvaluateMVA(MVAinfos[j].MVAname)
183 <                #Fill:
184 <                newtree.Fill()
185 <            newtree.AutoSave()
186 <            outfile.Close()
187 <            
188 <        #DATA:
189 <        if job.type == 'DATA':
190 <            #MVA Formulas
191 <            MVA_formulas_Nominal = []
192 <            #create TTreeFormulas
193 <            for j in range(len( MVA_Vars['Nominal'])):
194 <                MVA_formulas_Nominal.append(ROOT.TTreeFormula("MVA_formula%s_Nominal"%j, MVA_Vars['Nominal'][j],tree))
195 <            outfile.cd()
196 <            MVAbranches=[]
197 <            for i in range(0,len(readers)):
198 <                MVAbranches.append(array('f',[0]))
199 <                newtree.Branch(MVAinfos[i].MVAname,MVAbranches[i],'nominal/F')
200 <                newtree.Branch(MVAinfos[i].MVAname+'_4',MVAbranches[i],'nominal/F')
201 <            #progbar          
202 <            print '\n--> ' + job.name +':'
203 <            if nEntries >= longe:
204 <                step=int(nEntries/longe)
205 <                long=longe
206 <            else:
207 <                long=nEntries
208 <                step = 1
209 <            bar=progbar(long)
210 <            #Fill event by event:
211 <            for entry in range(0,nEntries):
212 <                if entry % step == 0:
213 <                    bar.move()
214 <                #load entry
215 <                tree.GetEntry(entry)
216 <                #nominal:
217 <                for j in range(len( MVA_Vars['Nominal'])):
218 <                        MVA_var_buffer[j][0] = MVA_formulas_Nominal[j].EvalInstance()
219 <                        
220 <                for j in range(0,len(readers)):
221 <                    MVAbranches[j][0]= readers[j].EvaluateMVA(MVAinfos[j].MVAname)
222 <                newtree.Fill()
223 <            newtree.AutoSave()
224 <            outfile.Close()
221 >                        MVAbranches[j][0]= readers[j].EvaluateMVA(MVAinfos[j].MVAname)
222 >                    newtree.Fill()
223 >                newtree.AutoSave()
224 >                outfile.Close()
225  
226   print '\n'
227  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines