def makeMETV(self, event): output = [] # loop on the leptons leptons = filter( lambda x: (abs(x.pdgId()) == 11 and x.heepID) or (abs(x.pdgId()) == 13 and x.highPtIDIso), event.selectedLeptons) fatJets = self.selectJets( event.jetsAK8, lambda x: x.pt() > 200.0 and abs(x.eta()) < 2.4 and x.jetID('POG_PFID_Tight'), leptons, 1.0) if len(fatJets) < 1: return output self.substructure(fatJets[0]) VV = Pair(event.met, fatJets[0]) # kinematics if VV.deltaPhi() < 2.0 or VV.leg1.pt() < 200: return output if self.cfg_comp.isMC: self.softDropGen(fatJets[0], event) VVGEN = Pair(event.met, Singlet(VV.leg2.genJet().p4())) VV.genPartialMass = VVGEN.mt() else: VV.genPartialMass = -1 # topology satteliteJets = self.selectJets( event.jets, lambda x: x.pt() > 30.0 and x.jetID('POG_PFID_Tight'), leptons, 0.3, [VV.leg2], 0.8) self.topology(VV, satteliteJets, leptons) output.append(VV) return output
def makeMETV(self, event): output = [] # loop on the leptons leptons = filter( lambda x: (abs(x.pdgId()) == 11 and x.heepID) or (abs(x.pdgId()) == 13 and x.highPtIDIso), event.selectedLeptons) fatJets = self.selectJets( event.jetsAK8, lambda x: x.pt() > 200.0 and abs(x.eta()) < 2.4 and x.jetID('POG_PFID_Tight'), leptons, 1.0) if len(fatJets) < 1: return output VV = Pair(event.met, fatJets[0]) # kinematics if VV.deltaPhi() < 2.0 or VV.leg1.pt() < 200: return output self.substructure(VV.leg2, event) if not hasattr(VV.leg2, "substructure"): return output # substructure changes jet, so we need to recalculate the resonance # mass VV = Pair(event.met, fatJets[0]) # check if there are subjets # if len(VV.leg2.substructure.prunedSubjets)<2: # print 'No substructure' # return output if self.cfg_comp.isMC: self.substructureGEN(VV.leg2, event) if hasattr(VV.leg2, 'substructureGEN'): VVGEN = Pair(event.met, Singlet(VV.leg2.substructureGEN.jet)) VV.genPartialMass = VVGEN.mt() # topology satteliteJets = self.selectJets( event.jets, lambda x: x.pt() > 30.0 and x.jetID('POG_PFID_Tight'), leptons, 0.3, [VV.leg2], 0.8) self.topology(VV, satteliteJets, leptons) output.append(VV) return output