예제 #1
0
      if (l > 1): #when tau starts decaying
         for jj in range(len(tau_d)):
             daughter = tau_d[jj].getPDG()
             if ((abs(daughter)==15)): 
                photorecoil=True
 #               print "photon recoil"
                break # tau just emits photon
             if ((abs(daughter)>=11) and (abs(daughter)<=14)):
                flaglep=True #looking for lepton decay
                tau_lepdk = tau_lepdk + 1
                break      
         if ((photorecoil==False)):
            taucount=taucount+1
         if ((flaglep==False)and(photorecoil==False)):
            leptau=LParticle('tauhad-dir')
            leptau.setPxPyPz(par.getMomentum()[0], par.getMomentum()[1], par.getMomentum()[2])
            truejet=[]
            for aa in range(len(tau_d)):
               daughtau=tau_d[aa]
               if ((abs(daughtau.getPDG()))!=16):
                  if (((abs(daughtau.getPDG()))!=113) and ((abs(daughtau.getPDG()))!=213) and ((abs(daughtau.getPDG()))!=323) and ((abs(daughtau.getPDG()))!=313)):
                     truejetmem=LParticle(str(daughtau.getPDG()))
                     truejetmem.setPxPyPzE(daughtau.getMomentum()[0], daughtau.getMomentum()[1], daughtau.getMomentum()[2], daughtau.getEnergy())
                     truejetmem.setCharge(daughtau.getCharge())
                     truejet.append(truejetmem)
                  else:
                     for reso in daughtau.getDaughters():
                        truejetmem=LParticle(str(reso.getPDG()))
                        truejetmem.setPxPyPzE(reso.getMomentum()[0], reso.getMomentum()[1], reso.getMomentum()[2], reso.getEnergy())
                        truejetmem.setCharge(reso.getCharge())
                        truejet.append(truejetmem)