Helicity and Traces Process e-  e+ -> μ- μ+
Set of Programs to explain how to use traces to obtain helicity amplitudes
Author: Jorge C. Romão
Email: jorge.romao@tecnico.ulisboa.pt
Last Update: 10/12/2024

Load FeynCalc

<<FeynCalc`

Definitions and Kinematics

P[h_,s_]:=(1+h GA[5].GS[s])/2;

kin1={SP[p1,p2]->1/2 (s-2 m1^2),SP[p1,p3]->s/4 (1-b1 b3 Cos[t]),SP[p1,p4]->s/4 (1+b1 b3 Cos[t]),SP[p2,p3]->s/4 (1+b1 b3 Cos[t]),SP[p2,p4]->s/4 (1-b1 b3 Cos[t]),SP[p3,p4]->1/2 (s-2 m3^2)};

kin2={SP[s1,s1]->-1,SP[s2,s2]->-1,SP[s3,s3]->-1,SP[s4,s4]->-1,SP[s1,s2]->s/2/m1^2-1,SP[s1,s3]->s/(4 m1 m3) (b1 b3-Cos[t]),SP[s1,s4]->s/(4 m1 m3) (b1 b3+Cos[t]),SP[s2,s3]->s/(4 m1 m3) (b1 b3+Cos[t]),SP[s2,s4]->s/(4 m1 m3) (b1 b3-Cos[t]),SP[s3,s4]->s/(2 m3^2)-1};

kin3={SP[p1,s1]->0,SP[p2,s2]->0,SP[p3,s3]->0,SP[p4,s4]->0,SP[s1,p2]->s/(2 m1) b1,SP[s1,p3]->s/(4 m1) (b1-b3 Cos[t]),SP[s1,p4]->s/(4 m1) (b1+b3 Cos[t]),SP[s2,p1]->s/(2 m1) b1,SP[s2,p3]->s/(4 m1) (b1+b3 Cos[t]),SP[s2,p4]->s/(4 m1) (b1-b3 Cos[t]),SP[s3,p1]->s/(4 m3) (b3-b1 Cos[t]),SP[s3,p2]->s/(4 m3) (b3+b1 Cos[t]),SP[s3,p4]->s/(2 m3) b3,SP[s4,p1]->s/(4 m3) (b3+b1 Cos[t]),SP[s4,p2]->s/(4 m3) (b3-b1 Cos[t]),SP[s4,p3]->s/(2 m3) b3};

kin=Flatten[{kin1,kin2,kin3}];

SimpMasses={m3^2->s/4 (1-b3^2),m1^2->s/4 (1-b1^2)};

SimpBetas={b1->Sqrt[1-4*m1^2/s],b3->Sqrt[1-4*m3^2/s]};

Fermion Lines

Line1=Function[{h1,h2,s1,s2},(GS[p2]-m1).P[h2,s2].GA[mu].P[h1,s1].(GS[p1]+m1).P[h1,s1].GA[nu].P[h2,s2]];
Line2=Function[{h3,h4,s3,s4},(GS[p3]+m3).P[h3,s3].GA[mu].P[h4,s4].(GS[p4]-m3).P[h4,s4].GA[nu].P[h3,s3]];

Do Traces to calculate |M|^2 for each helicity combination

Msq=Function[{h1,h2,h3,h4,s1,s2,s3,s4},Contract[TR[Line1[h1,h2,s1,s2]] TR[Line2[h3,h4,s3,s4]] (e^4/s^2)]//FCE];

MsqAux=Msq[x1,x2,x3,x4,s1,s2,s3,s4];

Define the Amplitude squared for a given helicity combination

MsqHel=Function[{h1,h2,h3,h4},MsqAux /.{x1->h1,x2->h2,x3->h3,x4->h4}/.kin//Simplify];

Check the results

MsqHel[1,1,1,1]/.SimpBetas//Simplify

MsqHel[1,-1,1,1]/.SimpBetas//Simplify

MsqHel[-1,1,1,1]/.SimpBetas//Simplify

MsqHel[-1,-1,1,1]/.SimpBetas//Simplify

MsqHel[1,1,1,-1]/.SimpBetas//Simplify

MsqHel[1,-1,1,-1]/.SimpBetas//Simplify

MsqHel[-1,1,1,-1]/.SimpBetas//Simplify

MsqHel[-1,-1,1,-1]/.SimpBetas//Simplify

MsqHel[1,1,-1,1]/.SimpBetas//Simplify

MsqHel[1,-1,-1,1]/.SimpBetas//Simplify

MsqHel[-1,1,-1,1]/.SimpBetas//Simplify

MsqHel[-1,-1,-1,1]/.SimpBetas//Simplify

MsqHel[1,1,-1,-1]/.SimpBetas//Simplify

MsqHel[1,-1,-1,-1]/.SimpBetas//Simplify

MsqHel[-1,1,-1,-1]/.SimpBetas//Simplify

MsqHel[-1,-1,-1,-1]/.SimpBetas//Simplify

TimeUsed[]