3 from PhysicsTools.Heppy.analyzers.core.Analyzer
import Analyzer
4 from PhysicsTools.Heppy.analyzers.core.AutoHandle
import AutoHandle
5 from PhysicsTools.HeppyCore.framework.event
import Event
6 from PhysicsTools.HeppyCore.statistics.counter
import Counter, Counters
8 from DataFormats.FWLite
import Events, Handle,Lumis
15 def __init__(self, cfg_ana, cfg_comp, looperName):
16 super(SkimAnalyzerCount, self).
__init__(cfg_ana, cfg_comp, looperName)
17 self.
useLumiBlocks = self.cfg_ana.useLumiBlocks
if (hasattr(self.cfg_ana,
'useLumiBlocks'))
else False
22 self.mchandles[
'GenInfo'] = AutoHandle( (
'generator',
'',
''),
'GenEventInfoProduct' )
25 super(SkimAnalyzerCount,self).
beginLoop(setup)
27 self.counters.addCounter(
'SkimReport')
28 self.
count = self.counters.counter(
'SkimReport')
29 self.count.register(
'All Events')
30 if self.cfg_comp.isMC:
31 self.count.register(
'Sum Weights')
37 print 'Counting the total events before the skim by accessing luminosity blocks'
38 lumis = Lumis(self.cfg_comp.files)
43 totalEvents+=self.counterHandle.product().value
50 self.count.inc(
'All Events',totalEvents)
51 if self.cfg_comp.isMC:
52 self.count.inc(
'Sum Weights',totalEvents)
53 print 'Done -> proceeding with the analysis'
55 print 'Failed -> will have to actually count events (this can happen if the input dataset is not a CMG one)'
61 self.readCollections( event.input )
62 self.count.inc(
'All Events')
63 if self.cfg_comp.isMC:
64 self.count.inc(
'Sum Weights', self.mchandles[
'GenInfo'].product().
weight())