Exemple #1
0
def boost(df, args):  #args must have 4 elements xyzt or pxpypzE
    px, py, pz = getXYZ(df, args)
    E = DfToNp(df[[args[3]]].dropna(axis=0))
    l = TLorentzVector()
    with np.nditer([px, py, pz, E, None, None, None, None]) as it:
        for pi, pj, pk, el, pm, en, phi, cost in it:
            l.SetPxPyPzE(pi, pj, pk, el)
            bi = pi / el
            bj = pj / el
            bk = pk / el
            l.Boost(-bi, -bj, -bk)
            pm[...] = l.Px()
            en[...] = l.E()
            phi[...] = l.Phi()
            cost[...] = l.CosTheta()
        return (it.operands[4], it.operands[5], it.operands[6], it.operands[7])
Exemple #2
0
    jpsi = mu_m + mu_p
    x    = mu_m + mu_p + g

    mu_m.Boost(-x.BoostVector());
    mu_p.Boost(-x.BoostVector());
    g.Boost   (-x.BoostVector());
    jpsi.Boost(-x.BoostVector());
    x.Boost   (-x.BoostVector());

    mu_m.Boost(-jpsi.BoostVector());
    mu_p.Boost(-jpsi.BoostVector());
    g.Boost   (-jpsi.BoostVector());

    # if ((jpsi.Vect().Mag()>tol) and (mu_p.Vect().Mag()>tol) and (mu_m.Vect().Mag()>tol) and (g.Vect().Mag()>tol) and (x.Vect().Mag()>0)):
    l_cosThetaStar.append(jpsi.CosTheta())

    cosTheta1 = jpsi.Vect().Dot(mu_p.Vect()) / ((jpsi.Vect().Mag())*(mu_p.Vect().Mag()));
    l_cosTheta1mu_p.append(cosTheta1)

    cosTheta1 = jpsi.Vect().Dot(mu_m.Vect()) / ((jpsi.Vect().Mag())*(mu_m.Vect().Mag()));
    l_cosTheta1mu_m.append(cosTheta1)

    M_mumu = (mu_m+mu_p).M()
    l_M_mumu.append(M_mumu)

    M_mumugamma = (mu_m+mu_p+g).M()
    l_M_mumugamma.append(M_mumugamma)

    tot_ev += 1
def CosTheta(parts):
	p=TLorentzVector(0,0,0,0)
	for part in parts:
		p=p+part.P4()
	return p.CosTheta()