def __init__(self, oldTree): self.sel = BranchDumper(oldTree) self.tree = self.sel.make_tree(False) self.reader = rt.TMVA.Reader() self.bdt_vars = {} for h in self.sel.headers_for_MVA(): self.bdt_vars['%s_var' % h] = array.array('f', [0]) self.reader.AddVariable(h, self.bdt_vars['%s_var' % h]) self.mr_var = array.array('f', [0]) self.rsq_var = array.array('f', [0]) self.nvertex_var = array.array('f', [0]) self.reader.AddSpectator('MR', self.mr_var) self.reader.AddSpectator('RSQ', self.rsq_var) self.reader.AddSpectator('nVertex', self.nvertex_var) self.reader.BookMVA( 'BDT', '/afs/cern.ch/user/w/wreece/work/CMGTools/V5_6_0/CMGTools/CMSSW_5_3_3_patch3/src/CMGTools/Susy/prod/MultiJet/TMVAClassification_BDT.weights.xml' )
class CalcBDT(object): def __init__(self, oldTree): self.sel = BranchDumper(oldTree) self.tree = self.sel.make_tree(False) self.reader = rt.TMVA.Reader() self.bdt_vars = {} for h in self.sel.headers_for_MVA(): self.bdt_vars['%s_var'%h] = array.array('f',[0]) self.reader.AddVariable(h,self.bdt_vars['%s_var'%h]) self.mr_var = array.array('f',[0]) self.rsq_var = array.array('f',[0]) self.nvertex_var = array.array('f',[0]) self.reader.AddSpectator('MR',self.mr_var) self.reader.AddSpectator('RSQ',self.rsq_var) self.reader.AddSpectator('nVertex',self.nvertex_var) self.reader.BookMVA('BDT','/afs/cern.ch/user/w/wreece/public/Razor2012/BDT/Had/TMVAClassification_BDT.weights.xml') def select(self): return self.sel.select() def bdt(self): for h in self.sel.headers_for_MVA(): self.bdt_vars['%s_var'%h][0] = getattr(self.sel,h)() bdt = self.reader.EvaluateMVA('BDT') return bdt def Fill(self): self.sel.set_tree(self.tree, False) self.sel.vars.BDT = self.bdt() self.tree.Fill()
def make_tree(self, clone=False): rt.gROOT.ProcessLine(""" struct BranchDumper{\ Double_t weight;\ Double_t weightPU;\ Double_t thetaH1;\ Double_t thetaH2;\ Double_t topMass1;\ Double_t topMass2;\ Double_t wMass1;\ Double_t wMass2;\ Double_t jet1pt;\ Double_t jet2pt;\ Double_t jet3pt;\ Double_t jet4pt;\ Double_t jet5pt;\ Double_t jet6pt;\ Double_t jet1mult;\ Double_t jet2mult;\ Double_t jet3mult;\ Double_t jet4mult;\ Double_t jet5mult;\ Double_t jet6mult;\ Double_t jet1girth;\ Double_t jet2girth;\ Double_t jet3girth;\ Double_t jet4girth;\ Double_t jet5girth;\ Double_t jet6girth;\ Double_t MR;\ Double_t RSQ;\ Double_t nVertex;\ Double_t BDT;\ };""") from ROOT import BranchDumper if not clone: tree = rt.TTree('RMRTree', 'Multijet events') else: tree = self.tree.CloneTree(0) tree.SetDirectory(0) def setAddress(obj, flag): for branch in dir(obj): if branch.startswith('__'): continue tree.Branch(branch, rt.AddressOf(obj, branch), '%s/%s' % (branch, flag)) self.vars = BranchDumper() setAddress(self.vars, 'D') return tree
def __init__(self, oldTree): self.sel = BranchDumper(oldTree) self.tree = self.sel.make_tree(False) self.reader = rt.TMVA.Reader() self.bdt_vars = {} for h in self.sel.headers_for_MVA(): self.bdt_vars['%s_var'%h] = array.array('f',[0]) self.reader.AddVariable(h,self.bdt_vars['%s_var'%h]) self.mr_var = array.array('f',[0]) self.rsq_var = array.array('f',[0]) self.nvertex_var = array.array('f',[0]) self.reader.AddSpectator('MR',self.mr_var) self.reader.AddSpectator('RSQ',self.rsq_var) self.reader.AddSpectator('nVertex',self.nvertex_var) self.reader.BookMVA('BDT','/afs/cern.ch/user/w/wreece/public/Razor2012/BDT/Had/TMVAClassification_BDT.weights.xml')
class CalcBDT(object): def __init__(self, oldTree): self.sel = BranchDumper(oldTree) self.tree = self.sel.make_tree(False) self.reader = rt.TMVA.Reader() self.bdt_vars = {} for h in self.sel.headers_for_MVA(): self.bdt_vars['%s_var' % h] = array.array('f', [0]) self.reader.AddVariable(h, self.bdt_vars['%s_var' % h]) self.mr_var = array.array('f', [0]) self.rsq_var = array.array('f', [0]) self.nvertex_var = array.array('f', [0]) self.reader.AddSpectator('MR', self.mr_var) self.reader.AddSpectator('RSQ', self.rsq_var) self.reader.AddSpectator('nVertex', self.nvertex_var) self.reader.BookMVA( 'BDT', '/afs/cern.ch/user/w/wreece/work/CMGTools/V5_6_0/CMGTools/CMSSW_5_3_3_patch3/src/CMGTools/Susy/prod/MultiJet/TMVAClassification_BDT.weights.xml' ) def select(self): return self.sel.select() def bdt(self): for h in self.sel.headers_for_MVA(): self.bdt_vars['%s_var' % h][0] = getattr(self.sel, h)() bdt = self.reader.EvaluateMVA('BDT') return bdt def Fill(self): self.sel.set_tree(self.tree, False) self.sel.vars.BDT = self.bdt() self.tree.Fill()