def beginLoop(self, setup):
     super(NJetsAnalyzer, self).beginLoop(setup)
     self.averages.add('NUP', Average('NUP'))
     self.averages.add('NJets', Average('NJets'))
     self.averages.add('NJetWeight', Average('NJetWeight'))
     if self.cfg_comp.isMC:
         self.rootfile = TFile('/'.join([self.dirName, 'NUP.root']),
                               'recreate')
         self.nup = TH1F('nup', 'nup', 20, 0, 20)
         self.njets = TH1F('njets', 'njets', 10, 0, 10)
         self.tree = TreeNumpy('tree', 'test tree for NJetsAnalyzer')
         if self.cfg_ana.fillTree:
             self.tree.var('njets', int)
             self.tree.var('nup', int)
             self.tree.var('weight')
示例#2
0
        print 'arg should be "data" or the shift value (a float)'
        sys.exit(1)

chain = Chain(
    None,
    'Prod_Rochester_29Nov/{comp}/ZJetsTreeProducer/ZJetsTreeProducer_tree.root'
    .format(comp=comp))
# chain = Chain(None, 'higgsvbf125.root')

name = '{prefix}_{postfix}'.format(prefix=prefix, postfix=postfix)

print shift, name, comp

file = TFile(name + '.root', 'recreate')

tree = TreeNumpy(chain.GetName(), ', '.join([chain.GetTitle(), 'corrected']))

tree.copyStructure(chain)

toShift = ['jet1_pt', 'jet2_pt']

shift_factor = shift / 100.


def correct(tree, entry, jetname, shift):
    eta = getattr(ie, '_'.join([jetname, 'eta']))
    pt = getattr(ie, '_'.join([jetname, 'pt']))
    corpt = pt
    if shift < 0:
        etabin = h_cor.FindBin(eta)
        shift = h_cor.GetBinContent(etabin) / 100.