Program to evaluate the Helicity Amplitudes for (SuperMinus[e])(SuperPlus[e])→ γ γ . See my text “Introdução à Teoria do Campo”, section 5.5 (version of 2020)

Last Version: 02/05/2020
Jorge C. Romão
jorge.romao@tecnico.ulisboa.pt

Inputs and Definitions

Input FeynCalc

<<FeynCalc`

Definitions

Notice that we define the polarization vector complex conjugated for outgoing photons. These definitions were modified to work with FeynCalc 9.3

dp[s_]:=(1+s GA[5])/2;

U[p_,s_]:=dp[s].Spinor[p,0];
UBar[p_,s_]:=SpinorUBar[p,0].dp[-s];

MydsU=Function[{p,i},If[i==1,U[p,1],If[i==2,U[p,-1]]]];
MydsUBar=Function[{p,i},If[i==1,UBar[p,1],If[i==2,UBar[p,-1]]]];

PolSConjU=Function[{k,p,l,i},If[i==1,2 U[k,l],If[i==2,2 U[p,-l]]]];
PolSConjUBar=Function[{k,p,l,i},If[i==1,UBar[p,l],If[i==2,UBar[k,-l]]]];

Simplifications

vlist={p1,p2,k1,k2};

simp1=Table[Spinor[vlist[[i]],0].Spinor[vlist[[j]],0]->MySP[vlist[[i]],vlist[[j]]]+MySPc[vlist[[j]],vlist[[i]]],{i,1,4},{j,1,4}]/.{MySP[p_,p_]->0,MySPc[q_,q_]->0};

simp2=Table[Spinor[vlist[[i]],0].DiracMatrix[5].Spinor[vlist[[j]],0]->-MySP[vlist[[i]],vlist[[j]]]+MySPc[vlist[[j]],vlist[[i]]],{i,1,4},{j,1,4}]/.{MySP[p_,p_]->0,MySPc[q_,q_]->0};

simp=Flatten[{simp1,simp2}];

kin={MySP[p1,p2]*MySPc[p1,p2]->s,MySP[k1,k2]*MySPc[k1,k2]->s,MySP[p1,k1]*MySPc[p1,k1]->-t,MySP[p2,k2]*MySPc[p2,k2]->-t,MySP[p1,k2]*MySPc[p1,k2]->-u,MySP[p2,k1]*MySPc[p2,k1]->-u};

EpsNorm={N11->(2 MySP[p1,k1] MySPc[p1,k1])^(1/2),N12->(2 MySP[p1,k2] MySPc[p1,k2])^(1/2)};

SymSP={MySP[k1,p1]->-MySP[p1,k1],MySP[k2,p1]->-MySP[p1,k2],MySPc[k1,p1]->-MySPc[p1,k1],MySPc[k2,p1]->-MySPc[p1,k2],MySP[k1,p2]->-MySP[p2,k1],MySP[k2,p2]->-MySP[p2,k2],MySPc[k1,p2]->-MySPc[p2,k1],MySPc[k2,p2]->-MySPc[p2,k2]};

Definition of Spinor Products for Numerical or Algebraic Evaluation

$Assumptions={s∈Reals,θ∈Reals};

sp=Function[{p1,p2},(p1[[2]]+ I p1[[3]])Sqrt[(p2[[4]]-p2[[1]])/(p1[[4]]-p1[[1]])]-(p2[[2]]+ I p2[[3]])Sqrt[(p1[[4]]-p1[[1]])/(p2[[4]]-p2[[1]])]];

spc=Function[{p1,p2},(p1[[2]]-I p1[[3]])Sqrt[(p2[[4]]-p2[[1]])/(p1[[4]]-p1[[1]])]-(p2[[2]]- I p2[[3]])Sqrt[(p1[[4]]-p1[[1]])/(p2[[4]]-p2[[1]])]];

With the best choice for the Polarization vectors (Eq (5.109))

Amplitude M1 (t-channel) for (SuperMinus[e])(SuperPlus[e])→ γ γ

M1[s1_,s2_,l1_,l2_]:=Sum[(UBar[p2,s2].PolSConjU[k2,p2,l2,i1] PolSConjUBar[k2,p2,l2,i1].MydsU[p1,i2] MydsUBar[p1,i2].PolSConjU[k1,p1,l1,i3] PolSConjUBar[k1,p1,l1,i3].U[p1,s1]),{i1,1,2},{i2,1,2},{i3,1,2}]-Sum[(UBar[p2,s2].PolSConjU[k2,p2,l2,i1] PolSConjUBar[k2,p2,l2,i1].MydsU[k1,i2] MydsUBar[k1,i2].PolSConjU[k1,p1,l1,i3] PolSConjUBar[k1,p1,l1,i3].U[p1,s1]),{i1,1,2},{i2,1,2},{i3,1,2}];

res1[s1_,s2_,l1_,l2_]:=(-e^2)DiracSimplify[M1[s1,s2,l1,l2],DiracSubstitute67->True]/t/N11^2;

Amplitude M2 (u-channel) for (SuperMinus[e])(SuperPlus[e])→ γ γ

M2[s1_,s2_,l1_,l2_]:=Sum[UBar[p2,s2].PolSConjU[k1,p2,l1,i1] PolSConjUBar[k1,p2,l1,i1].MydsU[p1,i2] MydsUBar[p1,i2].PolSConjU[k2,p1,l2,i3] PolSConjUBar[k2,p1,l2,i3].U[p1,s1],{i1,1,2},{i2,1,2},{i3,1,2}]-Sum[UBar[p2,s2].PolSConjU[k1,p2,l1,i1] PolSConjUBar[k1,p2,l1,i1].MydsU[k2,i2] MydsUBar[k2,i2].PolSConjU[k2,p1,l2,i3] PolSConjUBar[k2,p1,l2,i3].U[p1,s1],{i1,1,2},{i2,1,2},{i3,1,2}];

res2[s1_,s2_,l1_,l2_]:=(-e^2)DiracSimplify[M2[s1,s2,l1,l2],DiracSubstitute67->True]/u/N12^2;

Total Amplitude for (SuperMinus[e])(SuperPlus[e])→ γ γ

MTotal[s1_,s2_,l1_,l2_]:=res1[s1,s2,l1,l2]+res2[s1,s2,l1,l2]/.simp;

Results

MTotal[1,1,1,1]//Expand

MTotal[1,1,1,-1]//Expand

((MTotal[1,1,1,-1]//Expand)/. EpsNorm )/. SymSP

MTotal[1,1,-1,1]//Expand

((MTotal[1,1,-1,1]//Expand)/. EpsNorm )/. SymSP

MTotal[1,1,-1,-1]//Expand

MTotal[-1,-1,1,1]//Expand

MTotal[-1,-1,1,-1]//Expand

((MTotal[-1,-1,1,-1]//Expand)/. EpsNorm )/. SymSP

MTotal[-1,-1,-1,1]//Expand

((MTotal[-1,-1,-1,1]//Expand)/. EpsNorm )/. SymSP

MTotal[-1,-1,-1,-1]//Expand

With the other choice for the Polarization vectors (Eq (5.111))

Amplitude M1 (t-channel) for (SuperMinus[e])(SuperPlus[e])→ γ γ

M1[s1_,s2_,l1_,l2_]:=Sum[(UBar[p2,s2].PolSConjU[k2,p2,l2,i1] PolSConjUBar[k2,p2,l2,i1].MydsU[p1,i2] MydsUBar[p1,i2].PolSConjU[k1,p1,l1,i3] PolSConjUBar[k1,p1,l1,i3].U[p1,s1]),{i1,1,2},{i2,1,2},{i3,1,2}]-Sum[(UBar[p2,s2].PolSConjU[k2,p2,l2,i1] PolSConjUBar[k2,p2,l2,i1].MydsU[k1,i2] MydsUBar[k1,i2].PolSConjU[k1,p1,l1,i3] PolSConjUBar[k1,p1,l1,i3].U[p1,s1]),{i1,1,2},{i2,1,2},{i3,1,2}];

res1[s1_,s2_,l1_,l2_]:=(-e^2)DiracSimplify[DotSimplify[M1[s1,s2,l1,l2]]]/t/N11^2;

Amplitude M2 (u-channel) for (SuperMinus[e])(SuperPlus[e])→ γ γ

M2[s1_,s2_,l1_,l2_]:=Sum[UBar[p2,s2].PolSConjU[k1,p1,l1,i1] PolSConjUBar[k1,p1,l1,i1].MydsU[p1,i2] MydsUBar[p1,i2].PolSConjU[k2,p2,l2,i3] PolSConjUBar[k2,p2,l2,i3].U[p1,s1],{i1,1,2},{i2,1,2},{i3,1,2}]-Sum[UBar[p2,s2].PolSConjU[k1,p1,l1,i1] PolSConjUBar[k1,p1,l1,i1].MydsU[k2,i2] MydsUBar[k2,i2].PolSConjU[k2,p2,l2,i3] PolSConjUBar[k2,p2,l2,i3].U[p1,s1],{i1,1,2},{i2,1,2},{i3,1,2}];

res2[s1_,s2_,l1_,l2_]:=(-e^2)DiracSimplify[DotSimplify[M2[s1,s2,l1,l2]]]/u/N11^2;

Total Amplitude for (SuperMinus[e])(SuperPlus[e])→ γ γ

MTotal[s1_,s2_,l1_,l2_]:=res1[s1,s2,l1,l2]+res2[s1,s2,l1,l2]/.simp;

Results

MTotal[1,1,1,1]//Expand

MTotal[1,1,1,-1]//Expand

MTotal[1,1,-1,1]//Expand

MTotal[1,1,-1,-1]//Expand

MTotal[-1,-1,1,1]//Expand

MTotal[-1,-1,1,-1]//Expand

MTotal[-1,-1,-1,1]//Expand

MTotal[-1,-1,-1,-1]//Expand

Showing that the results coincide independently of the choice

Kinematics

vp1={0,0,Sqrt[s]/2,Sqrt[s]/2};

vp2={0,0,-Sqrt[s]/2,Sqrt[s]/2};

vk1={0,Sqrt[s]/2 Sin[θ],Sqrt[s]/2 Cos[θ],Sqrt[s]/2};

vk2={0,-Sqrt[s]/2 Sin[θ],-Sqrt[s]/2 Cos[θ],Sqrt[s]/2};

Check that it cancels out. Take, for instance M(+,+,+,+)

(MTotal[1,1,1,1]//Expand) /. {MySP[p2,p1]-> sp[vp2,vp1],MySP[k2,p2]-> sp[vk2,vp2],MySPc[k2,k1]-> spc[vk2,vk1],MySPc[p1,k2]-> spc[vp1,vk2],MySPc[p1,k1]-> spc[vp1,vk1],MySP[p1,p2]-> sp[vp1,vp2]}//Simplify

TimeUsed[]