def buildDiLeptonsSingle(self, leptons, event): ''' ''' # RIC: patch to adapt it to the di-tau case. Need to talk to Jan di_objects = [] if hasattr(event, 'calibratedTaus'): taus = event.calibratedTaus else: taus = self.handles['taus'].product() if hasattr(event, 'calibratedPfMet'): met = event.calibratedPfMet else: met = self.handles['pfMET'].product()[0] for leg1 in taus: for leg2 in taus: if leg1 != leg2: di_tau = DirectDiTau(Tau(leg1), Tau(leg2), met) di_tau.leg2().associatedVertex = event.goodVertices[0] di_tau.leg1().associatedVertex = event.goodVertices[0] di_tau.mvaMetSig = None di_objects.append(di_tau) return di_objects
def __init__(self, diobject, iso='byIsolationMVArun2v1DBnewDMwLTraw'): super(TauTau, self).__init__(diobject) if super(TauTau, self).leg1().tauID(iso) > super(TauTau, self).leg2().tauID(iso): self.tau = Tau(super(TauTau, self).leg1()) self.tau2 = Tau(super(TauTau, self).leg2()) else: self.tau = Tau(super(TauTau, self).leg2()) self.tau2 = Tau(super(TauTau, self).leg1()) self.iso = iso
def __init__(self, diobject, iso='byIsolationMVArun2v1DBoldDMwLTraw'): super(TauTau, self).__init__(diobject) # if super(TauTau, self).leg1().tauID(iso) > super(TauTau, self).leg2().tauID(iso): if super(TauTau, self).leg1().pt() > super(TauTau, self).leg2().pt(): self.tau = Tau(super(TauTau, self).leg1()) self.tau2 = Tau(super(TauTau, self).leg2()) else: self.tau = Tau(super(TauTau, self).leg2()) self.tau2 = Tau(super(TauTau, self).leg1()) self.iso = iso self.diobject.setP4(self.p4())
def FillLeg(self, leg, weight): dbetaFactor = 0.5 self.h_pt.Fill(leg.pt(), weight) self.h_eta.Fill(leg.eta(), weight) self.h_iso.Fill(leg.relIso(), weight) self.h_iso_dbeta.Fill(leg.relIso(dbetaFactor), weight) self.h_iso_abs.Fill(leg.absIso(), weight) self.h_iso_abs_dbeta.Fill(leg.absIso(dbetaFactor), weight) self.h_iso_ch.Fill(leg.chargedHadronIso(), weight) self.h_iso_nh.Fill(leg.neutralHadronIso(), weight) self.h_iso_ph.Fill(leg.photonIso(), weight) if isTau(leg): tau = Tau(leg) self.h_eOverP.Fill(tau.calcEOverP(), weight) self.h_decMode.Fill(tau.decayMode(), weight)
def buildDiLeptonsSingle(self, leptons, event): ''' ''' di_objects = [] if hasattr(event, 'calibratedTaus'): taus = event.calibratedTaus else: taus = self.handles['taus'].product() met = event.pfmet taus = [Tau(tau) for tau in taus] if getattr(self.cfg_ana, 'scaleTaus', False): for tau in taus: HTTGenAnalyzer.genMatch(event, tau, event.ptSelGentauleps, event.ptSelGenleps, event.ptSelGenSummary) HTTGenAnalyzer.attachGenStatusFlag(tau) self.scaleP4(tau, self.cfg_ana.tes_scale) for leg1 in taus: for leg2 in taus: if leg1 != leg2: di_tau = DirectTauTau(leg1, leg2, met) di_tau.leg2().associatedVertex = event.goodVertices[0] di_tau.leg1().associatedVertex = event.goodVertices[0] di_tau.leg1().event = event.input.object() di_tau.leg2().event = event.input.object() di_tau.mvaMetSig = None di_objects.append(di_tau) return di_objects
class TauTau(DiTau): def __init__(self, diobject, iso='byIsolationMVArun2v1DBoldDMwLTraw'): super(TauTau, self).__init__(diobject) # if super(TauTau, self).leg1().tauID(iso) > super(TauTau, self).leg2().tauID(iso): if super(TauTau, self).leg1().pt() > super(TauTau, self).leg2().pt(): self.tau = Tau(super(TauTau, self).leg1()) self.tau2 = Tau(super(TauTau, self).leg2()) else: self.tau = Tau(super(TauTau, self).leg2()) self.tau2 = Tau(super(TauTau, self).leg1()) self.iso = iso self.diobject.setP4(self.p4()) def leg1(self): if self.tau.pt() > self.tau2.pt(): return self.tau else: return self.tau2 def leg2(self): if self.tau.pt() > self.tau2.pt(): return self.tau2 else: return self.tau
def __init__(self, diobject): super(TauElectron, self).__init__(diobject) self.tau = Tau(super(TauElectron, self).leg1()) self.ele = Electron(super(TauElectron, self).leg2()) self.diobject.setP4(self.p4())
def __init__(self, diobject): super(TauMuon, self).__init__(diobject) self.tau = Tau(super(TauMuon, self).leg1()) self.mu = Muon(super(TauMuon, self).leg2()) self.diobject.setP4(self.p4())
def process(self, event): ''' ''' self.readCollections(event.input) taus = [Tau(tau) for tau in self.handles['taus'].product()] jets = [Jet(jet) for jet in self.handles['jets'].product()] pfmet = self.handles['pfMET' ].product()[0] puppimet = self.handles['puppiMET'].product()[0] pairs = matchObjectCollection(taus, jets, 0.5 * 0.5) # import pdb ; pdb.set_trace() # associating a jet to each lepton for tau in taus: jet = pairs[tau] if jet is None: pass else: tau.jet = jet event.calibratedTaus = [] for tau in taus: tau.associatedVertex = event.goodVertices[0] tau_p4_scale = 1. if tau.decayMode() in (0, 1, 10) and hasattr(tau, 'jet'): self.tauIsoBreakdown(tau) self.variables['tau_pt' ][0] = tau.pt() self.variables['tau_eta' ][0] = tau.eta() self.variables['tau_mass' ][0] = tau.mass() self.variables['tau_decayMode' ][0] = tau.decayMode() self.variables['tau_charged_iso' ][0] = tau.chargedPtSumIso self.variables['tau_gamma_iso' ][0] = tau.gammaPtSumIso self.variables['tau_charged_sig' ][0] = tau.chargedPtSumSignal self.variables['tau_gamma_sig' ][0] = tau.gammaPtSumSignal self.variables['tau_jet_pt' ][0] = tau.jet.pt() self.variables['tau_jet_mass' ][0] = tau.jet.mass() self.variables['tau_jet_nConstituents' ][0] = tau.jet.nConstituents() self.variables['tau_jet_rawFactor' ][0] = tau.jet.rawFactor() self.variables['tau_jet_chargedHadronEnergy'][0] = tau.jet.chargedHadronEnergy() self.variables['tau_jet_neutralHadronEnergy'][0] = tau.jet.neutralHadronEnergy() self.variables['tau_jet_neutralEmEnergy' ][0] = tau.jet.neutralEmEnergy() self.variables['tau_jet_chargedEmEnergy' ][0] = tau.jet.chargedEmEnergy() calibrated_tau_pt = self.reader.EvaluateRegression('BDTG')[0] tau_p4_scale = calibrated_tau_pt / tau.pt() pfmetP4 = pfmet .p4() puppimetP4 = puppimet.p4() # remove pre-calibrated tau from met computation pfmetP4 += tau.p4() puppimetP4 += tau.p4() self.scaleP4(tau, tau_p4_scale) tau.ptScale = tau_p4_scale # include calibrated tau into the met computation pfmetP4 -= tau.p4() puppimetP4 -= tau.p4() pfmet .setP4(pfmetP4 ) puppimet.setP4(puppimetP4) event.calibratedTaus.append(tau) event.calibratedPfMet = pfmet event.calibratedPuppiMet = puppimet return True
def __init__(self, diobject): super(TauTau, self).__init__(diobject) self.tau = Tau(super(TauTau, self).leg1()) self.tau2 = Tau(super(TauTau, self).leg2())
def __init__(self, diobject): super(TauElectron, self).__init__(diobject) self.tau = Tau(diobject.leg1()) self.ele = HTauTauElectron(diobject.leg2())