示例#1
0
文件: CalcBDT.py 项目: anantoni/CMG
    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()
示例#3
0
文件: CalcBDT.py 项目: anantoni/CMG
    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')
示例#5
0
文件: CalcBDT.py 项目: anantoni/CMG
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()