예제 #1
0
    def __init__(self, name, component, cfg):
        super( DiMuAnalyzer, self).__init__(component.fraction)
        self.name = name
        self.cmp = component
        self.cfg = cfg 
        self.events = Events( glob.glob( self.cmp.files) )
        self.triggerList = TriggerList( self.cmp.triggers )
##         if self.cmp.isMC or self.cmp.isEmbed:
##             self.trigEff = TriggerEfficiency()
##             self.trigEff.tauEff = None
##             self.trigEff.lepEff = None
##             if self.cmp.tauEffWeight is not None:
##                 self.trigEff.tauEff = getattr( self.trigEff,
##                                                self.cmp.tauEffWeight )
##             if self.cmp.muEffWeight is not None:
##                 self.trigEff.lepEff = getattr( self.trigEff,
##                                                self.cmp.muEffWeight )
        
        # here create outputs
##         self.regions = H2TauTauRegions( self.cfg.cuts )
##         self.output = Output( self.name, self.regions )
##         if self.cmp.name == 'DYJets':
##             self.outputFakes = Output( self.name + '_Fakes', self.regions )

        self.output = DiMuOutput( self.name )

        self.counters = Counters()
        self.averages = {}        
        self.InitHandles()
        self.InitCounters()
    
        self.logger = logging.getLogger(self.name)
        self.logger.addHandler(logging.FileHandler('/'.join([self.output.name,
                                                            'log.txt'])))
예제 #2
0
    def InitOutput(self):
        '''Initialize histograms physics objects, counters.'''

        #COLIN do I really need to declare them?
        # declaring physics objects
        self.diTau = None
        self.triggerObject = None

        # declaring counters and averages
        self.counters = Counters()
        self.counters.addCounter('triggerPassed')
        self.counters.addCounter('exactlyOneDiTau')
        self.counters.addCounter('singleDiTau')
        self.counters.addCounter('VBF')

        # self.averages['triggerWeight']=Average('triggerWeight')
        self.averages['lepEffWeight'] = Average('lepEffWeight')
        self.averages['tauEffWeight'] = Average('tauEffWeight')
        self.averages['vertexWeight'] = Average('vertexWeight')
        self.averages['eventWeight'] = Average('eventWeight')

        self.regions = H2TauTauRegions(self.cfg.cuts)
        self.histoLists = {}
        inclusiveRegions = set()
        for regionName in self.regions.regionNames():
            self.histoLists[regionName] = H2TauTauHistogramList('/'.join(
                [self.name, regionName]))
            incRegName = inclusiveRegionName(regionName)
            inclusiveRegions.add(incRegName)
        for regionName in inclusiveRegions:
            self.histoLists[regionName] = H2TauTauHistogramList('/'.join(
                [self.name, regionName]))
예제 #3
0
    def __init__(self, name, component, cfg):
        '''Build a loop object.

        listOfFiles can be "*.root".
        name will be used to make the output directory'''

        self.name = name
        self.cmp = component
        self.cfg = cfg
        self.events = Events(glob.glob(self.cmp.files))
        self.triggerList = TriggerList(self.cmp.triggers)
        if self.cmp.isMC:
            self.trigEff = TriggerEfficiency()
            self.trigEff.tauEff = None
            self.trigEff.lepEff = None
            if self.cmp.tauEffWeight is not None:
                self.trigEff.tauEff = getattr(self.trigEff,
                                              self.cmp.tauEffWeight)
            if self.cmp.muEffWeight is not None:
                self.trigEff.lepEff = getattr(self.trigEff,
                                              self.cmp.muEffWeight)

        #self.cmp.turnOnCurve = None
        #if self.cmp.isMC:
        #    if self.cmp.tauTriggerTOC is not None:
        #        self.cmp.turnOnCurve = TurnOnCurve( self.cmp.tauTriggerTOC )

        self._MakeOutputDir()
        self.counters = Counters()
        self.averages = {}
        # self.histograms = []
        self.InitHandles()
예제 #4
0
    def InitCounters(self):
        '''Initialize histograms physics objects, counters.'''

        # declaring counters and averages
        self.counters = Counters()
        self.counters.addCounter('triggerPassed')
        self.counters.addCounter('exactlyOneDiMu')
        self.counters.addCounter('singleDiMu')
        self.counters.addCounter('VBF')
        
        # self.averages['triggerWeight']=Average('triggerWeight')
##         self.averages['lepEffWeight']=Average('lepEffWeight')
##         self.averages['tauEffWeight']=Average('tauEffWeight')
        self.averages['vertexWeight']=Average('vertexWeight')
##         self.averages['generatorWeight']=Average('generatorWeight')
        self.averages['eventWeight']=Average('eventWeight')
예제 #5
0
    def __init__(self, name, component, cfg):
        '''Build a loop object.

        listOfFiles can be "*.root".
        name will be used to make the output directory'''

        self.name = name
        self.cmp = component
        self.cfg = cfg
        self.events = Events(glob.glob(self.cmp.files))
        self.triggerList = TriggerList(self.cmp.triggers)
        if self.cmp.isMC or self.cmp.isEmbed:
            self.trigEff = TriggerEfficiency()
            self.trigEff.tauEff = None
            self.trigEff.lepEff = None
            if self.cmp.tauEffWeight is not None:
                self.trigEff.tauEff = getattr(self.trigEff,
                                              self.cmp.tauEffWeight)
            if self.cmp.muEffWeight is not None:
                self.trigEff.lepEff = getattr(self.trigEff,
                                              self.cmp.muEffWeight)

        # here create outputs
        self.regions = H2TauTauRegions(self.cfg.cuts)
        self.output = Output(self.name, self.regions)
        if self.cmp.name == 'DYJets':
            self.outputFakes = Output(self.name + '_Fakes', self.regions)

        self.logger = logging.getLogger(self.name)
        self.logger.addHandler(
            logging.FileHandler('/'.join([self.name, 'log.txt'])))

        self.counters = Counters()
        self.averages = {}
        # self.histograms = []
        self.InitHandles()
        self.InitCounters()