Ejemplo n.º 1
0
    def fill_histograms(self, entry, event):
        if self.triggerName == 'SingleMu':
            if not muonfilter(event.muons):
                return True
        pileup = event.nVertex

        leadingRecoJet = event.getLeadingRecoJet()
        matchedL1Jet = event.getMatchedL1Jet(leadingRecoJet)

        if not leadingRecoJet or not matchedL1Jet:
            return True

        recoEt = leadingRecoJet.etCorr
        recoEta = leadingRecoJet.eta
        recoPhi = foldPhi(leadingRecoJet.phi)

        l1Et = matchedL1Jet.et
        l1Eta = matchedL1Jet.eta
        l1Phi = foldPhi(matchedL1Jet.phi)

        resolution_et = (l1Et - recoEt) / recoEt if recoEt != 0 else 0

        resolution_eta = l1Eta - recoEta
        # should it not be
        # resolution_eta = abs(l1Et - recoEta)
        # ?
        resolution_phi = l1Phi - recoPhi
        self.resolutions.set_pileup(pileup)
        self.resolutions.set_region_by_eta(recoEta)
        self.resolutions.fill('JetEt', resolution_et)
        self.resolutions.fill('JetEta', resolution_eta)
        self.resolutions.fill('JetPhi', resolution_phi)

        return True
    def fill_histograms(self, entry, event):
        if self.triggerName == 'SingleMu':
            if not muonfilter(event.muons):
                return True
        if not event.passesMETFilter():
            return True

        pileup = event.nVertex
        self.efficiencies.set_pileup(pileup)

        l1MetBE = event.l1Sums['L1Met'].et
        l1MetBERecalc = recalcMET(event.caloTowers).mag

        l1MetBEEmu = event.l1Sums['L1EmuMet'].et
        l1MetBERecalcEmu = recalcMET(event.emuCaloTowers).mag

        l1Htt = event.l1Sums['L1Htt'].et

        offlineMetBE = event.sums.caloMetBE
        recoHtt = event.sums.Ht

        self.efficiencies.fill('metBE', offlineMetBE, l1MetBE)
        self.efficiencies.fill('metBERecalc', offlineMetBE, l1MetBERecalc)
        self.efficiencies.fill('metBEEmu', offlineMetBE, l1MetBEEmu)
        self.efficiencies.fill('metBERecalcEmu', offlineMetBE,
                               l1MetBERecalcEmu)

        self.efficiencies.fill('htt', recoHtt, l1Htt)

        return True
Ejemplo n.º 3
0
    def fill_histograms(self, entry, event):
        if self.triggerName == 'SingleMu':
            if not muonfilter(event.muons):
                return True
        pileup = event.nVertex

        leadingRecoJet = event.getLeadingRecoJet()
        matchedL1Jet = event.getMatchedL1Jet(leadingRecoJet)

        if not leadingRecoJet or not matchedL1Jet:
            return True

        recoEt = leadingRecoJet.etCorr
        recoEta = leadingRecoJet.eta

        l1Et = matchedL1Jet.et

        self.efficiencies.set_pileup(pileup)
        if is_in_region('B', recoEta):
            self.efficiencies.fill('JetEtBarrel', recoEt, l1Et)
        elif is_in_region('BE', recoEta):
            self.efficiencies.fill('JetEtCentral', recoEt, l1Et)
        elif is_in_region('E', recoEta):
            self.efficiencies.fill('JetEtEndcap', recoEt, l1Et)
        else:
            self.efficiencies.fill('JetEtHF', recoEt, l1Et)

        return True
Ejemplo n.º 4
0
    def fill_histograms(self, entry, event):
        if self.triggerName == 'SingleMu':
            if not muonfilter(event):
                return True
        pileup = event.Vertex_nVtx
        if pileup < 5 or not pfMetFilter(event):
            return True

        self.efficiencies.set_pileup(pileup)

        offlineMetBE = event.Sums_caloMetBE
        for name, config in self.met_calcs.items():
            onlineMet = getattr(event, config['attr'])
            onlineMet = onlineMet.et
            self.efficiencies.fill(name, offlineMetBE, onlineMet)
        return True
Ejemplo n.º 5
0
    def fill_histograms(self, entry, event):
        if self.triggerName == 'SingleMu':
            if not muonfilter(event.muons):
                return True
        pileup = event.nVertex
        if pileup < 5 or not event.passesMETFilter():
            return True

        self.efficiencies.set_pileup(pileup)

        offlineMetBE = event.sums.caloMetBE
        for name, config in self.met_calcs.items():
            onlineMet = config['calculate'](event.caloTowers)
            onlineMet = onlineMet.mag
            self.efficiencies.fill(name, offlineMetBE, onlineMet)
        return True