def update(self,_) : csv = self.source[self.leaf] if self.source['isRealData'] or not self.activated: self.value = csv return iB = self.source[self.IndicesGenB] self.value = utils.vector( [ self.funcsBN[0 if i in iB else 1].Eval(c) for i,c in enumerate(csv) ] )
def update(self,_) : jets = self.source[self.p4jet] iLep = next(iter(self.source[self.indices]), None ) lep = self.source[self.p4lep][iLep] if iLep>None else None self.value = utils.vector() for iJet in range(len(jets)) : jet = jets[iJet] self.value.push_back( self.jes( next( j if j.M()>0 else utils.LorentzV(1,jet.eta(),jet.phi(),0) for j in [jet - lep]) if lep and 0.5>r.Math.VectorUtil.DeltaR(jet,lep) else jet ) )
def update(self, _): csv = self.source[self.leaf] if self.source['isRealData'] or not self.activated: self.value = csv return iB = self.source[self.IndicesGenB] self.value = utils.vector([ self.funcsBN[0 if i in iB else 1].Eval(c) for i, c in enumerate(csv) ])
def __init__(self,xcjets = None, applyResidualCorrectionsToData = None, gamma = None, gammaDR = 0, electron = None, electronDR = 0, muon = None, muonDR = 0, correctForMuons = None, jesAbs = 1, jesRel = 0 ) : self.value = utils.vector() self.jetP4Source = "CorrectedP4".join(xcjets)[2:] if applyResidualCorrectionsToData : print "WARNING: you are applying Spring10 Residual corrections to data!" for item in ["xcjets", "applyResidualCorrectionsToData", "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)
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))