Catani-Seymour and FHP Mappings: Mercedes Star System

Jack Holguin, Simon Platzer, Michael H. Seymour and Siddharth Sule

This code is designed to add an emission to a Mercedes Star System. It creates the emission in x-z space, and for both Catani-Seymour and FHP Mappings. The diagram is only for illustrative use, and is in 1+2 Dimensional Space.

Initialisation and Setup

(* Function to Multiply Two Four Vectors *)
mul[a_, b_]:=a[[1]]*b[[1]] - a[[2]]*b[[2]]-a[[3]]*b[[3]];

(* Mercedes Star Setup - Divide Energy By 3 *)
91.2/3

(* Clear any prev stored variables *)
Clear[pi, pj, pk, qiPP, qPP, qjPP, qkPP, qiP, qP, qjP, qkP, qi, q,qj,qk, qiC, qC, qjC, qkC];

(* Pre Emission System*)
pi= {30.4, 30.4, 0.}
pj = {30.4, -30.4/2, 30.4*Sqrt[3]/2}
pk = {30.4, -30.4/2, -30.4*Sqrt[3]/2}

(* Draw Pre Emission Momenta *)
Graphics[{
Blue,Arrow[{{0,0},{pi[[2]],pi[[3]]}}],
Text["pi",{pi[[2]],pi[[3]]},{-1,1}],
Blue,Arrow[{{0,0},{pj[[2]],pj[[3]]}}],
Text["pj",{pj[[2]],pj[[3]]},{2,1}],
Black,Arrow[{{0,0},{pk[[2]],pk[[3]]}}],
Text["pk",{pk[[2]],pk[[3]]},{-1,1}]
 }]

(* Find Vector Perp to pi and pj - Coarse method, but ok for illustration *)
Clear[k0,k1,k2,kTemp,pT,z,m2];
kTemp = {k0, k1, k2};
Solve[{mul[kTemp, pi]==0, mul[kTemp, pj]==0, mul[kTemp,kTemp]==-1}, {k0, k1, k2}]

(* kt, z, and m2 *)
pT = 5;
k0 =0.5773502691896257 *pT;
k1 = 0.5773502691896257 * pT;
k2 = 1 *pT;
kt = {k0, k1,k2}; (* Random Vector *)
z = 0.7;
m2 = mul[pi, pj];

Catani-Seymour Kinematics

(* CS Kinematics + Check Momentum Conservation *)
qiC =  z * pi + kt + (Abs[mul[kt, -kt]]/(z*m2))*pj
qC = (1 - z)*pi - kt + (Abs[mul[kt, -kt]]/((1-z)*m2))*pj
qjC = (1-(Abs[mul[kt, -kt]]/(z*(1-z)*m2)))pj
qkC = pk
qTC = qiC + qjC + qC +qkC

(* Draw Pre and Post Emission Momenta *)
Graphics[{
Gray,Arrow[{{0,0},{pi[[2]],pi[[3]]}}],
Text["pi",{pi[[2]],pi[[3]]},{-1,1}],
Gray,Arrow[{{0,0},{pj[[2]],pj[[3]]}}],
Text["pj",{pj[[2]],pj[[3]]},{2,1}],
Gray,Arrow[{{0,0},{pk[[2]],pk[[3]]}}],
Text["pk",{pk[[2]],pk[[3]]},{-1,1}],
Blue,Arrow[{{0,0},{qiC[[2]],qiC[[3]]}}],
Text["qi",{qiC[[2]],qiC[[3]]},{-1,1}],
Blue,Arrow[{{0,0},{qC[[2]],qC[[3]]}}],
Text["q",{qC[[2]],qC[[3]]},{-1,1}],
Blue,Arrow[{{0,0},{qjC[[2]],qjC[[3]]}}],
Text["qj",{qjC[[2]],qjC[[3]]},{2,1}],
Black,Arrow[{{0,0},{qkC[[2]],qkC[[3]]}}],
Text["qk",{qkC[[2]],qkC[[3]]},{-1,1}]
}]

FHP Kinematics

(* Post Emission, Pre Boost-Rescaling *)
qiPP = z * pi
qPP = (1 - z)*pi - kt + (mul[kt, -kt]/((1-z)*m2))*pj
qjPP = pj
qkPP = pk

(* Diagram *)
Graphics[{
Blue,Arrow[{{0,0},{qiPP[[2]],qiPP[[3]]}}],
Text["qi''",{qiPP[[2]],qiPP[[3]]},{-1,1}],
Blue,Arrow[{{0,0},{qPP[[2]],qPP[[3]]}}],
Text["q''",{qPP[[2]],qPP[[3]]},{-1,1}],
Blue,Arrow[{{0,0},{qjPP[[2]],qjPP[[3]]}}],
Text["qj''",{qjPP[[2]],qjPP[[3]]},{2,1}],
Black,Arrow[{{0,0},{qkPP[[2]],qkPP[[3]]}}],
Text["qk''",{qkPP[[2]],qkPP[[3]]},{-1,1}]
}]

(* Boost Variables*)
Clear[recoilQ, recoilN, recoilA];
recoilQ = {91.2, 0., 0.};
recoilN = recoilQ - kt + (mul[kt, -kt]/((1-z)*m2))*pj
recoilA = Sqrt[mul[recoilQ, recoilQ] / mul[recoilN, recoilN]]
boost[p_]:=(p+(2.*recoilA*recoilQ*(mul[recoilN,p]))/(mul[recoilQ,recoilQ])-(2.*(recoilQ+recoilA*recoilN)*(mul[recoilQ,p]+recoilA*mul[recoilN,p]))/(mul[recoilQ,recoilQ]+recoilA*recoilA*mul[recoilN,recoilN]+2.*recoilA*mul[recoilQ,recoilN]));

(* Boost ALL Particles *)
qiP =boost[qiPP]
qP = boost[qPP]
qjP=boost[qjPP]
qkP=boost[qkPP]

(* Diagram *)
Graphics[{
Blue,Arrow[{{0,0},{qiP[[2]],qiP[[3]]}}],
Text["qi'",{qiP[[2]],qiP[[3]]},{-1,1}],
Blue,Arrow[{{0,0},{qP[[2]],qP[[3]]}}],
Text["q'",{qP[[2]],qP[[3]]},{-1,1}],
Blue,Arrow[{{0,0},{qjP[[2]],qjP[[3]]}}],
Text["qj'",{qjP[[2]],qjP[[3]]},{2,1}],
Black,Arrow[{{0,0},{qkP[[2]],qkP[[3]]}}],
Text["qk'",{qkP[[2]],qkP[[3]]},{-1,1}]
}]

(* Rescale ALL Particles *)
qi = recoilA*qiP
q= recoilA*qP
qj = recoilA*qjP
qk = recoilA*qkP

(* Momentum Conservation Check *)
qT = qi + qj+q +qk

(* Diagram *)
Graphics[{
Blue,Arrow[{{0,0},{qi[[2]],qi[[3]]}}],
Text["qi",{qi[[2]],qi[[3]]},{-1,1}],
Blue,Arrow[{{0,0},{q[[2]],q[[3]]}}],
Text["q",{q[[2]],q[[3]]},{-1,1}],
Blue,Arrow[{{0,0},{qj[[2]],qj[[3]]}}],
Text["qj",{qj[[2]],qj[[3]]},{2,1}],
Black,Arrow[{{0,0},{qk[[2]],qk[[3]]}}],
Text["qk",{qk[[2]],qk[[3]]},{-1,1}]
}]

(* Pre and Post Emission Momenta *)
Graphics[{
Gray,Arrow[{{0,0},{pi[[2]],pi[[3]]}}],
Text["pi",{pi[[2]],pi[[3]]},{-1,1}],
Gray,Arrow[{{0,0},{pj[[2]],pj[[3]]}}],
Text["pj",{pj[[2]],pj[[3]]},{2,1}],
Gray,Arrow[{{0,0},{pk[[2]],pk[[3]]}}],
Text["pk",{pk[[2]],pk[[3]]},{-1,1}],
Blue,Arrow[{{0,0},{qi[[2]],qi[[3]]}}],
Text["qi",{qi[[2]],qi[[3]]},{-1,1}],
Blue,Arrow[{{0,0},{q[[2]],q[[3]]}}],
Text["q",{q[[2]],q[[3]]},{-1,1}],
Blue,Arrow[{{0,0},{qj[[2]],qj[[3]]}}],
Text["qj",{qj[[2]],qj[[3]]},{2,1}],
Black,Arrow[{{0,0},{qk[[2]],qk[[3]]}}],
Text["qk",{qk[[2]],qk[[3]]},{-1,1}]
}]