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')
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.