def fillall(self, sample): for itree in range(len(sample.names)): tree = sample.getchain(itree) # print sample.name,itree # print tree.GetEntries() nentries = tree.GetEntries() downscale = sample.downscale iterator = self.createGenerator(tree.GetEntries(), sample.downscale) if self.readElist or self.writeElist: elist, elistFile = self.prepareElist(sample, sample.names[itree]) if self.readElist: iterator = self.createGenerator(elist.GetN()) self.timers[6].start() eh = EventHelper(tree) self.timers[6].stop() # for iev in range(tree.GetEntries()): nall = 0 nsel = 0 self.timers[7].start(paused=True) for iev in iterator: # for iev in sample.getentries(tree): # if sample.downscale==1 or (iev%sample.downscale)==0: jev = iev if not self.readElist else elist.GetEntry(iev) eh.getEntry(jev) nall += 1 if self.readElist or ( \ ( self.preselection==None or self.preselection.accept(eh,sample) ) and \ ( sample.filter==None or sample.filter.accept(eh) ) ): self.timers[7].resume() self.fill(eh, sample.downscale) self.timers[7].pause() if self.writeElist: elist.Enter(iev) nsel += 1 # print "Ntot for ",sample.name,sample.names[itree]," = ",nall,nsel # for ev in tree: # self.fill(ev) self.timers[7].stop() if self.writeElist: elist.Write() if self.writeElist or self.readElist: elistFile.Close() # handle under- & overflows for n, v in PlotsBase.variables.iteritems(): v.moveUnderOverFlow(self.histogramList[n]) self.showTimers()
def fillall(self, sample): for itree in range(len(sample.names)): tree = sample.getchain(itree) # print sample.name,itree # print tree.GetEntries() nentries = tree.GetEntries() nprog = nentries downscale = sample.downscale iterator = self.createGenerator(tree.GetEntries(), sample.downscale) if self.readElist or self.writeElist: elist, elistFile = self.prepareElist(sample, sample.names[itree]) if self.readElist: iterator = self.createGenerator(elist.GetN()) nprog = elist.GetN() self.timers[6].start() eh = EventHelper(tree) self.timers[6].stop() # for iev in range(tree.GetEntries()): nall = 0 nsel = 0 # self.timers[7].start(paused=True) # self.timers[8].start(paused=True) if self.progress: self.progress.initialize(length=nprog, title=sample.name + " " + sample.names[itree]) for iev in iterator: # for iev in sample.getentries(tree): # if sample.downscale==1 or (iev%sample.downscale)==0: jev = iev if not self.readElist else elist.GetEntry(iev) # self.timers[8].resume() self.timers[8].start() eh.getEntry(jev) # self.timers[8].pause() self.timers[8].stop() nall += 1 if self.progress and nall % 100 == 0: self.progress.increment(100) if self.readElist or ( \ ( self.preselection==None or self.preselection.accept(eh,sample) ) and \ ( sample.filter==None or sample.filter.accept(eh) ) ): # if sample.name.startswith("TTJets"): # print "Accepted for ",sample.name,":",eh.get("run"),eh.get("lumi"),eh.get("evt") # self.timers[7].resume() self.timers[7].start() self.fill(eh, sample, itree) # self.timers[7].pause() self.timers[7].stop() for timer in self.timers[:7]: if timer.active: timer.stop() if self.writeElist: elist.Enter(iev) nsel += 1 # print "Ntot for ",sample.name,sample.names[itree]," = ",nall,nsel # for ev in tree: # self.fill(ev) # self.timers[7].stop() # self.timers[8].stop() if self.writeElist: elist.Write() if self.writeElist or self.readElist: elistFile.Close() if self.progress and self.progress.status != 3: self.progress.update(1.) # handle under- & overflows for n, v in PlotsBase.variables.iteritems(): v.moveUnderOverFlow(self.histogramList[n]) self.showTimers()