def TagVars(collections): results=[]; Et_ratio=[]; Dphi=[]; projB=[]; DzTagMuK=[]; DzTagMuL1=[]; DzTagMuL2=[]; tracks=collections[0] Bcands=collections[2] trgmuons=(collections[1]) trgmuon_vec=TLorentzVector() trgmuon_vec.SetPtEtaPhiM(0,0,0,0) trgmuon_vz=-99 for trgmuon in trgmuons: if not getattr(trgmuon,"isTriggering"): continue; trgmuon_vec.SetPtEtaPhiM(getattr(trgmuon,"pt"),getattr(trgmuon,"eta"),getattr(trgmuon,"phi"),0.105) trgmuon_vz=getattr(trgmuon,"vz") break if trgmuon_vec.M()==0: result=[[0], [0], [0], [0], [0], [0]] return result sum_track_vec=trgmuon_vec; sum_track=trgmuon_vec.Pt(); for track in tracks: track_vec=TLorentzVector(); track_vec.SetPtEtaPhiM(getattr(track,"pt"),getattr(track,"eta"),getattr(track,"phi"),0.139) if trgmuon_vec.DrEtaPhi(track_vec)>0.4: continue sum_track_vec=sum_track_vec+track_vec; sum_track+=track_vec.Pt() for Bcand in Bcands: Bcand_vec=TLorentzVector(); Bcand_vec.SetPtEtaPhiM(getattr(Bcand,"fit_pt"),getattr(Bcand,"fit_eta"),getattr(Bcand,"fit_phi"),getattr(Bcand,"fit_mass")) if sum_track>0: Et_ratio.append(Bcand_vec.Et()/sum_track) else: Et_ratio.append(0) Dphi.append(Bcand_vec.DeltaPhi(sum_track_vec)) projB.append(Bcand_vec*sum_track_vec) DzTagMuK.append( abs(trgmuon_vz-getattr(Bcand,"kVz")) ) DzTagMuL1.append( abs(trgmuon_vz-getattr(Bcand,"l1Vz")) ) DzTagMuL2.append( abs(trgmuon_vz-getattr(Bcand,"l2Vz")) ) result=[Et_ratio, Dphi, projB, DzTagMuL1, DzTagMuL2, DzTagMuK] return result
def TagVarsMC(collections): results=[]; Et_ratio=-99.; Dphi=-99.; projB=-99. tracks=collections[0] trgmuons=collections[1] recoB_pt=collections[2] recoB_eta=collections[3] recoB_phi=collections[4] recoB_mass=collections[5] recoE1_vz=collections[6] recoE2_vz=collections[7] recoK_vz=collections[8] trgmuon_vec=TLorentzVector() trgmuon_vec.SetPtEtaPhiM(0,0,0,0) for trgmuon in trgmuons: if getattr(trgmuon,"isTriggering")==0: continue trgmuon_vec.SetPtEtaPhiM(getattr(trgmuon,"pt"),getattr(trgmuon,"eta"),getattr(trgmuon,"phi"),0.105) break if trgmuon_vec.M()==0: result=[-99.,-99.,-99.,-99.,-99.,-99.] return result sum_track_vec=trgmuon_vec; sum_track=trgmuon_vec.Pt(); trgmuon_vz=getattr(trgmuon,"vz") for track in tracks: track_vec=TLorentzVector(); track_vec.SetPtEtaPhiM(getattr(track,"pt"),getattr(track,"eta"),getattr(track,"phi"),0.139) if trgmuon_vec.DrEtaPhi(track_vec)>0.4: continue sum_track_vec=sum_track_vec+track_vec; sum_track+=track_vec.Pt() recoB_vec=TLorentzVector(); recoB_vec.SetPtEtaPhiM(recoB_pt,recoB_eta,recoB_phi,recoB_mass) if sum_track>0: Et_ratio=recoB_vec.Et()/sum_track else: Et_ratio=0 Dphi=recoB_vec.DeltaPhi(sum_track_vec) projB=recoB_vec*sum_track_vec result=[Et_ratio,Dphi,projB,abs(trgmuon_vz-recoE1_vz),abs(trgmuon_vz-recoE2_vz),abs(trgmuon_vz-recoK_vz)] return result
def TagVarsMC(collections): results = [] Et_ratio = [] Dphi = [] projB = [] tracks = collections[0] trgmuons = collections[1] recoB_pt = collections[2] recoB_eta = collections[3] recoB_phi = collections[4] recoB_mass = collections[5] if len(trgmuons) == 0: default = [-99., -99., -99.] return default trgmuon = trgmuons[0] trgmuon_vec = TLorentzVector() trgmuon_vec.SetPtEtaPhiM(getattr(trgmuon, "pt"), getattr(trgmuon, "eta"), getattr(trgmuon, "phi"), 0.105) sum_track_vec = trgmuon_vec sum_track = trgmuon_vec.Pt() for track in tracks: track_vec = TLorentzVector() track_vec.SetPtEtaPhiM(getattr(track, "pt"), getattr(track, "eta"), getattr(track, "phi"), 0.139) if trgmuon_vec.DrEtaPhi(track_vec) > 0.4: continue sum_track_vec = sum_track_vec + track_vec sum_track += track_vec.Pt() recoB_vec = TLorentzVector() recoB_vec.SetPtEtaPhiM(recoB_pt, recoB_eta, recoB_phi, recoB_mass) if sum_track > 0: Et_ratio = recoB_vec.Et() / sum_track else: Et_ratio = 0 Dphi = recoB_vec.DeltaPhi(sum_track_vec) projB = recoB_vec * sum_track_vec result = [Et_ratio, Dphi, projB] return result
def TagVars(collections): results = [] Et_ratio = [] Dphi = [] projB = [] tracks = collections[0] Bcands = collections[2] trgmuon = (collections[1])[0] trgmuon_vec = TLorentzVector() trgmuon_vec.SetPtEtaPhiM(getattr(trgmuon, "pt"), getattr(trgmuon, "eta"), getattr(trgmuon, "phi"), 0.105) sum_track_vec = trgmuon_vec sum_track = trgmuon_vec.Pt() for track in tracks: track_vec = TLorentzVector() track_vec.SetPtEtaPhiM(getattr(track, "pt"), getattr(track, "eta"), getattr(track, "phi"), 0.139) if trgmuon_vec.DrEtaPhi(track_vec) > 0.4: continue sum_track_vec = sum_track_vec + track_vec sum_track += track_vec.Pt() for Bcand in Bcands: Bcand_vec = TLorentzVector() Bcand_vec.SetPtEtaPhiM(getattr(Bcand, "fit_pt"), getattr(Bcand, "fit_eta"), getattr(Bcand, "fit_phi"), getattr(Bcand, "fit_mass")) if sum_track > 0: Et_ratio.append(Bcand_vec.Et() / sum_track) else: Et_ratio.append(0) Dphi.append(Bcand_vec.DeltaPhi(sum_track_vec)) projB.append(Bcand_vec * sum_track_vec) result = [Et_ratio, Dphi, projB] return result