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
Exemple #3
0
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
Exemple #4
0
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