Exemple #1
0
    def __init__(self,xcjets = None, applyResidualCorrectionsToData = None,
                 applyResidualCorrectionBug = False,
                 gamma    = None, gammaDR    = 0,
                 electron = None, electronDR = 0,
                 muon     = None, muonDR     = 0,
                 correctForMuons = None,
                 jesAbs = 1,
                 jesRel = 0 ) :
        self.value = utils.vector()
        self.jetP4Source = ("%sCorrectedP4%s"%xcjets)[2:]

        for item in ["xcjets", "applyResidualCorrectionsToData", "applyResidualCorrectionBug", "correctForMuons", "jesAbs", "jesRel"] :
            setattr(self, item, eval(item))

        self.other = dict( [ (i,(eval(i),eval(i+"DR"))) for i in ["gamma","electron","muon"]] )
        self.resCorr = ("%sResidualCorrectionsFromFile%s"%self.xcjets)
        self.moreName = "; ".join(["%s%sDR<%.2f"%(v[0]+(v[1],)) for v in filter(lambda v: v[0], self.other.values())])
        if jesAbs!=1.0 or jesRel!=0.0:
            self.moreName2 += "jes corr: %.2f*(1+%.2f|eta|)"%(jesAbs,jesRel)
Exemple #2
0
    def update(self,ignored) :
        jetP4s = self.source[self.jetP4Source]
        killed = self.source["%sIndicesKilled%s"%self.xcjets]
        nMuonsMatched = self.source["%sNMuonsMatched%s"%self.xcjets]
        matchedMuons = []

        self.value = utils.vector()
        for iJet in range(len(jetP4s)) :
            self.value.push_back(self.jes(jetP4s[iJet]))
            
            if self.matchesIn("gamma",self.value[iJet]) \
            or self.matchesIn("electron",self.value[iJet]) :
                killed.add(iJet)
                continue

            for p4 in self.matchesIn("muon",self.value[iJet], exitEarly=False, indicesStr="%sIndicesNonIso%s") :
                matchedMuons.append(p4)
                nMuonsMatched[iJet] += 1
                if self.correctForMuons: self.value[iJet] += p4

        if self.other["muon"][0] :
            nonisomu = self.source["%sIndicesNonIso%s"%self.other["muon"][0]]
            self.source["crock"]["%s%sNonIsoMuonsUniquelyMatched"%self.xcjets]= (len(set(matchedMuons)) == len(nonisomu) == len(matchedMuons))