def matchJets(self, event, jets): match = matchObjectCollection2(jets, event.genbquarks + event.genwzquarks, deltaRMax=0.3) for jet in jets: gen = match[jet] jet.mcParton = gen jet.mcMatchId = (gen.sourceId if gen != None else 0) jet.mcMatchFlav = (abs(gen.pdgId()) if gen != None else 0) match = matchObjectCollection2(jets, self.genJets, deltaRMax=0.3) for jet in jets: jet.mcJet = match[jet]
def matchJets(self, event, jets): match = matchObjectCollection2(jets, event.genbquarks + event.genwzquarks, deltaRMax = 0.3) for jet in jets: gen = match[jet] jet.mcParton = gen jet.mcMatchId = (gen.sourceId if gen != None else 0) jet.mcMatchFlav = (abs(gen.pdgId()) if gen != None else 0) match = matchObjectCollection2(jets, self.genJets, deltaRMax = 0.3) for jet in jets: jet.mcJet = match[jet]
def jetFlavour(self,event): def isFlavour(x,f): id = abs(x.pdgId()) if id > 999: return (id/1000)%10 == f if id > 99: return (id/100)%10 == f return id % 100 == f self.bqObjects = [ p for p in event.genParticles if (p.status() == 2 and isFlavour(p,5)) ] self.cqObjects = [ p for p in event.genParticles if (p.status() == 2 and isFlavour(p,4)) ] self.partons = [ p for p in event.genParticles if ((p.status() == 23 or p.status() == 3) and abs(p.pdgId())>0 and (abs(p.pdgId()) in [1,2,3,4,5,21]) ) ] match = matchObjectCollection2(self.cleanJetsAll, self.partons, deltaRMax = 0.3) for jet in self.cleanJetsAll: parton = match[jet] jet.partonId = (parton.pdgId() if parton != None else 0) jet.partonMotherId = (parton.mother(0).pdgId() if parton != None and parton.numberOfMothers()>0 else 0) for jet in self.jets: (bmatch, dr) = bestMatch(jet, self.bqObjects) if dr < 0.4: jet.mcFlavour = 5 else: (cmatch, dr) = bestMatch(jet, self.cqObjects) if dr < 0.4: jet.mcFlavour = 4 else: jet.mcFlavour = 0 self.heaviestQCDFlavour = 5 if len(self.bqObjects) else (4 if len(self.cqObjects) else 1);
def jetFlavour(self,event): def isFlavour(x,f): id = abs(x.pdgId()) if id > 999: return (id/1000)%10 == f if id > 99: return (id/100)%10 == f return id % 100 == f self.bqObjects = [ p for p in event.genParticles if (p.status() == 2 and isFlavour(p,5)) ] self.cqObjects = [ p for p in event.genParticles if (p.status() == 2 and isFlavour(p,4)) ] self.partons = [ p for p in event.genParticles if ((p.status() == 23 or p.status() == 3) and abs(p.pdgId())>0 and (abs(p.pdgId()) in [1,2,3,4,5,21]) ) ] match = matchObjectCollection2(self.cleanJetsAll, self.partons, deltaRMax = 0.3) for jet in self.cleanJetsAll: parton = match[jet] jet.partonId = (parton.pdgId() if parton != None else 0) jet.partonMotherId = (parton.mother(0).pdgId() if parton != None and parton.numberOfMothers()>0 else 0) for jet in self.jets: (bmatch, dr) = bestMatch(jet, self.bqObjects) if dr < 0.4: jet.mcFlavour = 5 else: (cmatch, dr) = bestMatch(jet, self.cqObjects) if dr < 0.4: jet.mcFlavour = 4 else: jet.mcFlavour = 0 self.heaviestQCDFlavour = 5 if len(self.bqObjects) else (4 if len(self.cqObjects) else 1);
def matchJets(self, event, jets): match = matchObjectCollection2(jets, event.genbquarks + event.genwzquarks, deltaRMax = 0.4) for jet in jets: gen = match[jet] jet.mcParton = gen jet.mcMatchId = (gen.sourceId if gen != None else 0) jet.mcMatchFlav = (abs(gen.pdgId()) if gen != None else 0) # use the genJet matching stored in miniAOD for jet in jets: mcJet = jet.genJet() jet.mcJet = mcJet jet.mcJet.index = self.genJets.index(mcJet) if mcJet!=None else -1
def matchJets(self, event, jets): match = matchObjectCollection2(jets, event.genbquarks + event.genwzquarks, deltaRMax = 0.4) for jet in jets: gen = match[jet] jet.mcParton = gen jet.mcMatchId = (gen.sourceId if gen != None else 0) jet.mcMatchFlav = (abs(gen.pdgId()) if gen != None else 0) # use the genJet matching stored in miniAOD for jet in jets: mcJet = jet.genJet() jet.mcJet = mcJet jet.mcJet.index = self.genJets.index(mcJet) if mcJet!=None else -1
def jetFlavour(self, event): def isFlavour(x, f): id = abs(x.pdgId()) if id > 999: return (id / 1000) % 10 == f if id > 99: return (id / 100) % 10 == f return id % 100 == f self.partons = [ p for p in event.genParticles if ((p.status() == 23 or p.status() == 3) and abs(p.pdgId()) > 0 and (abs(p.pdgId()) in [1, 2, 3, 4, 5, 21])) ] match = matchObjectCollection2(self.cleanJetsAll, self.partons, deltaRMax=0.3) for jet in self.cleanJetsAll: parton = match[jet] jet.partonId = (parton.pdgId() if parton != None else 0) jet.partonMotherId = (parton.mother(0).pdgId() if parton != None and parton.numberOfMothers() > 0 else 0)