# ee-gaga-HE.wxmx   High Energy Case of

    e(-,p1,σ1) + e(+,p2,σ2) --> γ(k1,λ1) + γ(k2,λ2)

ee-gaga-HE.wxmx,   Dec. 13, 2018
Edwin (Ted) Woollett, Maxima by Example,  
ch. 12,   Dirac Algebra and Quantum Electrodynamics, ver. 3, "Dirac3"

http://web.csulb.edu/~woollett/ 
woollett@charter.net

"High Energy"  means center of momentum frame lepton
energy E  is  large compared to the electron mass m, so we
can neglect m (set m = 0).

 We use Heaviside-Lorentz electromagnetic units.
In general, we follow the conventions in Peskin & Schroeder: Quantum Field Theory.

In particular, the diagonal elements of the metric tensor g^{μ, ν} are
diag (g)  = (1, -1, -1, -1).

## HE UNPOLARIZED CROSS SECTION USING TRACES AND CONTRACTIONS

First load the dirac3 package by loading dirac3.mac:

load (dirac3);

Note from the last two printouts, that invar_flag = true and stu_flag = false (our defaults).

The fact that invar_flag = true means that the symbolic trace function tr
will automatically make use of the list invarR (produced by the function set_invarR) which defines
the replacements for D(pa,pb) in terms of the Mandelstam variables s, t, u.
(After the package loads, invarR has an empty list [  ] as the default value. )

The fact that stu_flag = false means that the function noncov will not
automatically replace the Mandelstam variables s, t, u, by s_th, t_th, and u_th.

### UNPOLARIZED CROSS SECTION Using Mandelstam Variables s, t, and u

This first section works out the unpolarized differential
  cross section in the high energy (HE) limit, first in an arbitrary frame in terms
  of the Mandelstam variables s, t, and u, and then  in the CMS frame, using symbolic methods
for the process

      e(-,p1,σ1) + e(+,p2,σ2) --> γ(k1,λ1) + γ(k2,λ2).

These symbolic methods use our dirac3 package functions set_invarR, tr, Con, pullfac,
 comp_def, VP, sub_stu, to_ao2, fr_ao2

The amplitude for specific helicities σ1, σ2,  and specific photon polarizations
 λ1, λ2, used in Sec. 2 which employs explicit Dirac spinors and photon polarization
vectors is

M(σ1, σ2, λ1, λ2) = -e^2 Mr
 
and the "reduced amplitude"  Mr = M1 + M2, where
-------------------------------------------------------------------------
M1 =   - (v2bar SL( ε2c ) SL (p1 - k1) SL (ε1c) u1) / t  

M2 =   - (v2bar SL( ε1c ) SL (p1 - k2) SL (ε2c) u1) / u  
----------------------------------------------------------------------------
 where 

 t = (p1 - k1)^2,  
u = (p1 - k2)^2, 
s = (p1 + p2)^2
and  convervation of 4-momentum implies

p1^α + p2^α = k1^α + k2^α. 

In M1 and M2,

u1  = u (p1, σ1),  

v2bar = sbar ( v(p2, σ2)),

ε1c  =  the complex conjugate of the polarization 4-vector ε (k1, λ1),

ε2c  =  the complex conjugate of the polarization 4-vector ε (k2, λ2),

and SL(A) = "Feynman slash of 4-vector A" =  γ_α A^α (summed over the
dummy Lorentz index α for α = 0, 1, 2, 3.),  and SL is a linear operator:

 SL (A + B)  = SL (A)  +  SL (B)

and "sbar" is a Dirac3 package matrix operator with the effect

sbar (matrix([a1 + %i*a2],[b1 + %i*b2],[c1 + %i*c2],[d1 + %i*d2]));

grind (%)$

In terms of ordinary Dirac matrix and spinor notation,

sbar (v2) = v2^{+} γ^0,  where v2^{+} = Hermitian conjugate of the spinor v2
    and  γ^0 is one of the four Dirac gamma matrices γ^α,  α = 0, 1, 2, 3.

 sbar (v2) is a "row vector," while v2 is a "column vector."

To introduce Mandelstam variables s, t, and u into the calculation,
first POPULATE THE LIST invarR OF symbolic D(pa,pb) 4-VEC DOT PRODUCT VALUES,
  using  set_invarR( D(p1,p1) = r11, D(p1,p2) = r12, ...)
using  convervation of 4-momentum
    p1^α + p2^α = k1^α + k2^α
and with A^2 (with A being defined as a 4-vector)  standing for A_α A ^α summed over
the dummy Lorentz index  α for α = 0, 1, 2, 3.

    s = (p1 + p2)^2 = (k1 + k2)^2,
     t = (p1 - k1)^2 = (p2 - k2)^2, and  
     u = (p1 - k2)^2 = (p2 - k1)^2 

These definitions are independent of coordinate frame.

D(pa,pb)  is a symbolic representation of the 4-vector dot product (scalar product)
of 4-vectors pa and pb.

In this high-energy limit, E >>  m so effectively   m--> 0 and
 D(p1,p1) and D(p2,p2) are  approx 0  instead of m^2, etc. The physical (external)
photons have zero mass.

The dimensions of s, t and u are all the same
[s]  = [t]  = [u]  = E^2

Both D and Gm are symbols which are declared symmetric in the file dirac3.mac, 
with the line:

declare ( [D,Gm], symmetric )$, 

and during symbolic evaluations involving these symbols,
reversing a pair of arguments is assumed to refer to the
same quantity.

is (equal (Gm(mu,nu),Gm(nu,mu)) );

is (equal (D(p,q),D(q,p)) );

set_invarR (D(p1,p1) = 0,
         D(p1, p2) = s/2,
         D(p1, k1) =  - t/2,
         D(p1, k2) =  - u/2,
         D(p2, p2) = 0,
         D(p2, k1) =  - u/2,
         D(p2, k2) =  - t/2,
         D(k1, k1) = 0,
         D(k1, k2) = s/2,
         D(k2, k2) = 0)$

invarR;

Let's check recovering these definitions with an ev(expr, conditions & rules) in disguise  here:

D(p1,p2);

D(p1,p2), invarR;

D(p2,p1), invarR;

so we see that the symmetric property declared for the symbol D allows us to
only include the value of D(p1,p2), but still get the same value for D(p2,p1).
Since D(p1,p2) is a symbol standing for the scalar 4-vector dot product of
p1 and p2,  we need D(p1,p2) = D(p2,p1).

The sum over all helicities σ and photon polarizations λ  of the absolute value squared
of Mfi is:

<|Mfi|^2> =  Σ(σ1, σ2, λ1, λ2)  | Mfi(σ1, σ2, λ1, λ2) |^2

                 = e^4  Σ(σ1, σ2, λ1, λ2)  | Mr(σ1, σ2, λ1, λ2) |^2 
                 =  e^4 MfiSQ, in the notation used below.

The sum over helicities and photon polarizations of the absolute
value square of the  "reduced" amplitude can be written in the
three term form:

  MfiSQ  =  < |Mr|^2>  =   M11n / t^2  +  M22n / u^2 + 2*M12n / (t*u),

and we concentrate on getting these three quantities M11n, M22n, and M12n  first.

Note that contractions on the repeated Lorentz indices mu and nu inside
a single trace performed with our symbolic trace function tr are automatically
carried out, and we don't have to carry out an explicit contraction using Con.

M11n :  tr (mu,p1 - k1,nu,p1,nu,p1 - k1, mu,p2) ;

M22n :  tr (nu,p1 - k2,mu,p1,mu,p1 - k2, nu,p2);

M12n :  tr (mu, p1 - k1, nu, p1, mu, p1 - k2, nu, p2);

Now simplify based on the identity (see Sec. 2.1 in pdf) 
s + t + u = the sum of the mass-squared of each particle = 0 here
since the photon is massless and we are  neglecting the mass
of the electron and positron.

M12n : M12n, s = -t -u, expand;

so ignoring the term ~ M12n, which is zero,

MfiSQ : M11n / t^2 + M22n / u^2;

pullfac (expr, fac) is a Dirac3 package function to pull out fac from each 
term, once expr is expanded out.

MfiSQ : pullfac (MfiSQ, 8);

Since the Mandelstam variables are Lorentz scalar invariants, we have
in this expression for MfiSQ an expression which can be used in any
chosen frame of reference.  In the following, we use a prefactor A which
applies specifically to the center of momentum frame.

We have absorbed e^4 into a factor we call A, with e^2 = 4πα.

In  2 --> 2 scattering in CMS,  A = (α^2/(4 s)) (pf/pi) (see p. 90-91 in
Halzen and Martin)  but in the high energy limit we neglect electron and positron masses
 so  |p-vec|   approx = particle energy E .

E(cm) = 2 E, shared equally by electron and positron in CMS,
and then shared equally by the two photons with equal and
opposite 3-momenta in CMS, 

so pf = pi, and A =  α^2/(4 s)
  
 Averaging over initial helicities of the electron and positron means we need to divide A by 4
  to get the unpolarized differential cross section in the CMS and in the  high energy limit.

A : alpha^2/(4*s);

dsigdo_unpol_HE : (A/4)*MfiSQ;

which agrees with Peter Renton, Electroweak Interactions, Sec. 4.4, p. 169, Eq. (4.91), 
and R. Gastmans and Tai Tsun Wu, The Ubiquitous Photon (the Helicity Method for
QED and QCD), Sec. 2.4, p. 19, Eq. (2.39).

### CONVERSION TO AN  EXPLICIT FUNCTION OF THE SCATTERING ANGLE θ

  CONVERSION TO EXPLICIT FUNCTION OF SCATTERING ANGLE θ 

(in center of momentum frame); th stands for the emergent angle of
the k1 outgoing photon relative to the direction of the incident electron p1.

We replace s, t, and u with explicit functions s_th, t_th, u_th of  the
angle th.

Let p be  the magnitude of the 3-momentum of the initial electron
and positron.  Since we are neglecting the mass of the electrons, the value of p is
the same as the energy E of the electron and the positron, and of the energy
of  each of the final photons.  Then the magnitude of the  3-momentum of each outgoing
photon is also equal to E in the CMS.

### Use comp_def(...) to define the 4-momenta components

These are the CMS 4-momentum components.
All the particle 3-momentum vectors lie in the z-x plane.

comp_def ( p1 (E1, px, py, pz), ...) for example assigns to the particle
with 4-momentum p1 the energy E1, and the 3-momentum components the
values px, py, and pz.

assume ( E > 0, th >= 0, th <= %pi )$

comp_def ( p1( E,0,0,E),
            p2( E,0,0,-E),
            k1 (E,E*sin(th),0,E*cos(th)),
            k2 (E,-E*sin(th),0,-E*cos(th)) )$

comp_def creates a separate (zero based)  array for each 4-vector.
Use listarray to see the components

listarray(k2);

k2[0];

### Use VP(...) to define s_th, t_th, and u_th

now define explicit frame dependent functions of th, the angle of 
the k1 emerging photon relative to the p1 incident electron direction.

VP(...) is our "4-vector product" function.  For example

VP(pa,pa);

Use VP to compute CMS values of the Mandelstam variables s, t, and u.
We call them  s_th, t_th, and u_th here, notation which is later used by our
package function sub_stu.

  s_th : factor(VP (p1 + p2, p1 + p2));
  
  t_th : factor (VP (p1 - k1, p1 - k1));
  
  u_th : factor (VP (p1 - k2, p1 - k2));

t_th goes to zero as th --> 0 (the "forward direction") and
u_th goes to zero as the --> π (the "backward direction").

Due to our neglect of the electron mass m, the differential
cross section diverges in both the forward and backward
direction.

t_th, th = 0;

u_th, th = %pi;

### Use sub_stu(expr) to replace s by s_th, t by t_th, and u by u_th in expr

above, we had MfiSQ in terms of Mandelstam variables.
Let MfiSQ_th be the same quantity, but expressed in terms of
the angle th (of the k1 photon in the CMS) relative to the
direction of travel of the incident electron.

We let MfiSQ_th  be the label for a suitably massaged expression...
this takes some experimentation  with Maxima simplification functions
(as well as our package functions ts and pullfac ):

sub_stu (MfiSQ);

ts (%, th);

expand(%);

 MfiSQ_th :   pullfac (%, 16);

dsigdo_HE : (A/4) * MfiSQ_th;

which agrees with Peter Renton (see ref. above).

Look at the forward and backward direction limits:

limit (dsigdo_HE, th, 0, plus);

limit (dsigdo_HE, th, %pi, minus );

Use taylor for a power series expansion thru terms of order th^2
about the point th = 0:

taylor (dsigdo_HE, th, 0, 2);

so the differential cross section diverges as ~ 1/th^2 near th = 0.

### Unpolarized Cross Section  WITHOUT  Mandelstam Variables, using symbolic tr and Con

reset the list invarR of invariant replacement rules to avoid the Mandelstam variables s, t, and u,
using set_invarR.

set_invarR (
         D(p1, p1) = 0,         
         D(p2, p2) = 0,         
         D(k1, k1) = 0,         
         D(k2, k2) = 0)$

invarR;

The sum over all helicities σ and photon polarizations λ  of the absolute value squared
of Mfi is:

<|Mfi|^2> =  Σ(σ1, σ2, λ1, λ2)  | Mfi(σ1, σ2, λ1, λ2) |^2

                 = e^4  Σ(σ1, σ2, λ1, λ2)  | Mr(σ1, σ2, λ1, λ2) |^2 
                 =  e^4 MfiSQ, in the notation used below.

The sum over helicities and photon polarizations of the absolute
value square of the  "reduced" amplitude can be written in the
three term form:

  MfiSQ  =  < |Mr|^2>  =   M11n / t^2  +  M22n / u^2 + 2*M12n / (t*u),

and we concentrate on getting the three quantities M11n, M22n, and M12n  first.

Note that contractions on the repeated Lorentz indices mu and nu inside
a single trace performed with our symbolic trace function tr are automatically
carried out, and we don't have to carry out an explicit contraction using Con.

We later form MfiSQ using our known values of   s_th, t_th, and u_th.

M11n :  tr (mu,p1 - k1,nu,p1,nu,p1 - k1, mu,p2);

M22n :  tr (nu,p1 - k2,mu,p1,mu,p1 - k2, nu,p2);

M12n :  tr (mu, p1 - k1, nu, p1, mu, p1 - k2, nu, p2);

note we get D(pa,pb)'s  since tr(...) works here without knowledge of the invariants involving s, t, u.

### Use noncov(expr) To Make Use of Frame Dependent Quantities Defined by comp_def(...)

M11n_nc : noncov(M11n);

M22n_nc : noncov(M22n);

M12n_nc : noncov(M12n);

so, ignoring the zero contribution of M12n_nc, and using known t_th and u_th values,

MfiSQ_th_meth2 : M11n_nc / t_th^2 + M22n_nc / u_th^2;

ts (%, th);

expand(%);

MfiSQ_th_meth2 : pullfac (%, 16);

this is the same result as MfiSQ_th which we obtained in the first method
using tr(...) method via the Mandelstam variable route.

is (equal (MfiSQ_th_meth2, MfiSQ_th));

To summarize, this non-Mandelstam symbolic method needs either an empty list invarR,
or a list invarR which has no Mandelstam variable replacement information regarding 
 the dot products of the 4-momenta involved before using tr(...).

But this second symbolic method needs the use of comp_def to define 4-momenta
components, so we can use noncov(...), and also, the evaluation of t_th and u_th
using VP.

Both noncov and VP use the components of the 4-vectors.

Recall from the top of this worksheet that since stu_flag = false, noncov does NOT
replace s by s_th, t by t_th, u by u_th.  You can still use sub_stu(expr) for this job
(as long as you have defined s_th, t_th, and u_th using VP(pa,pb) ).

### Unpolarized Cross Section, WITHOUT  Mandelstam Variables, Using nc_tr(...) and mcon

nc_tr  is a special function which is not just tr followed by noncov, but
  rather as TR1 generates the trace of each term of the initial argument
  expansion, the function noncov is immediately applied to the trace result,
  and the output is accumulated in a sum which is eventually returned by
  nc_tr. For expressions with many terms, this is a more efficient method
of symbolic trace evaluation for the whole complicated expression.

We first make sure invarR is either an empty list or a list of replacement rules
which don't involve the Mandelstam variables s, t, and u.

invarR;

M11n :  nc_tr (mu,p1 - k1,nu,p1,nu,p1 - k1, mu,p2);

M22n :  nc_tr (nu,p1 - k2,mu,p1,mu,p1 - k2, nu,p2);

M12n :  nc_tr (mu, p1 - k1, nu, p1, mu, p1 - k2, nu, p2);

again, ignoring M12n term,

MfiSQ_th_meth3 : M11n / t_th^2 + M22n / u_th^2;

ts (%, th), expand;

MfiSQ_th_meth3 : pullfac (%, 16);

is (equal (MfiSQ_th_meth3, MfiSQ_th));

which confirms the correctness of this method.

### Explicit Matrix Traces and Contractions: the m_tr(...) with mcon

m_tr uses the same syntax as  tr or nc_tr, but translates everything into explicit matrices
and doesn't call the symbolic tr function, so the nature of the invarR list does
not matter.  

The explicit matrix method using m_tr for traces and mcon for contraction
is the fastest general method.

listarray (k1);

grind (%)$

As an example of the m_tr method,

m_tr ( mu, p1,  nu, k1 )  is automatically converted into the explicit matrix expression:

mat_trace (  Gam[mu] .  sL(p1)   . Gam[nu]  . sL(k1)   )

where mat_trace is defined in the linearalgebra package and is
automatically loaded when we first try to use mat_trace.

In this example, k1[0] = E, k1[1] = E*sin(th), k1[2] = 0, k1[3] = E*cos(th),  and
k1 is a "zero based array" holding the components of the
4-momentum vector k1. The components were defined
above using the comp_def function.

sL(k1) is the Feynman slash  matrix corresponding to 
the 4-momentum k1.

Gam[mu] is the explicit matrix representation of γ^μ, for example.

### Use mcon (expr, index1,index2,..) for traces produced using m_tr or mat_trace

M11n :   mcon ( m_tr (mu,p1 - k1,nu,p1,nu,p1 - k1, mu,p2), mu, nu);

Since m_tr is a purely matrix method (in disguise), no use is made of the symbolic tr function,
so the contents of the list invarR do not matter, and no automatic contraction is carried out
on repeated indices.  Instead you should call mcon (expr, indices).

Here is an example of what happens with m_tr if you forget to call mcon:

 m_tr (mu,p1 - k1,nu,p1,nu,p1 - k1, mu,p2);

M22n :   mcon ( m_tr (nu,p1 - k2,mu,p1,mu,p1 - k2, nu,p2), mu, nu );

M12n :   mcon ( m_tr (mu, p1 - k1, nu, p1, mu, p1 - k2, nu, p2), mu, nu);

trigsimp (%);

MfiSQ_th_meth4 : M11n / t_th^2 + M22n / u_th^2;

ts(%,th);

ts(%,th);

MfiSQ_th_meth4 :  pullfac( expand(%), 16);

is (equal (MfiSQ_th_meth4, MfiSQ_th));

which confirms the correctness of the mcon ( m_tr,  indices) method.

We could also use "method 5", direct use of mat_trace(....) with explicit matrices as arguments.
See ee-mumu-AE.wxmx for an example in that context.

## HELICITY AMPLITUDES USING EXPLICIT DIRAC SPINORS AND POLARIZATION VECTORS

Using explicit Dirac matrices, in this section we use the package
    functions UU, VV, sbar,  Avsq, ts.

 GENERAL COMMENTS: DIRAC SPINORS FOR SPIN 1/2 PARTICLES
                           AND ANTI-PARTICLES

  If upa is a Dirac spinor (column vector) corresponding to a
    lepton with 4-momentum pa, then  sbar(upa) is the barred Dirac 
    spinor (row vector) upa^{+} γ^0,   where (something)^{+} indicates 
     Hermitian conjugate.

   If vpa is a Dirac spinor (column vector) corresponding to an
     anti-lepton with 4-momentum pa, then sbar(vpa) is the barred 
     Dirac spinor (row vector) vpa^{+} γ^0,  where (something)^{+} 
     indicates the Hermitian conjugate.
    
 Our normalization is  upa_bar . upa = 2m and  vpa_bar . vpa = - 2m (for electrons and
positrons respectively  (in this high energy case m --> 0).
    
    UU(E,p,θ,φ,σ) is the Dirac spinor (4-element column vector) corresponding to a lepton with 
      relativistic energy  E = sqrt(p^2 + m^2) (if the lepton mass is m),  3-momentum magnitude p, 
      with direction of    3-momentum vector defined by the spherical polar angles θ and φ, and 
      helicity σ equal to   (+1 for R  and  -1 for L.

   VV(E,p,θ,φ,σ) is the Dirac spinor (4-element column vector) corresponding to an anti-lepton 
     with  relativistic energy  E = sqrt(p^2 + m^2) (if the anti-lepton mass is m), 3-momentum magnitude p, 
     with direction of   3-momentum vector defined by the spherical polar angles θ and φ, and 
     helicity σ  equal to    +1 for R and  -1 for L.

 In the center of momentum frame, the incident electron e(-) and positron e(+)have equal and opposite
    3-momentum vectors.
    
    These parameters should agree with those specified in the comp_def statement above.
E(CM) =  E + E = 2 E,  and   s = E(cm)^2 = 4 E^2

We use explicit Dirac spinors, photon polarization vectors and Dirac
matrices to compute the amplitudes for the process

      e(-,p1,σ1) + e(+,p2,σ2) --> γ(k1,λ1) + γ(k2,λ2).


The amplitude for specific helicities σ1, σ2,  and specific photon polarizations
 λ1, λ2, employs explicit Dirac spinors and photon polarization
vectors is

M(σ1, σ2, λ1, λ2) = -e^2 Mr
 
and the "reduced amplitude"  Mr = M1 + M2, where
-------------------------------------------------------------------------
M1 =   - (v2bar SL( ε2c ) SL (p1 - k1) SL (ε1c) u1) / t  

M2 =   - (v2bar SL( ε1c ) SL (p1 - k2) SL (ε2c) u1) / u  
----------------------------------------------------------------------------
 where 

 t = (p1 - k1)^2,  
u = (p1 - k2)^2, 
s = (p1 + p2)^2
and  convervation of 4-momentum implies

p1^α + p2^α = k1^α + k2^α. 

In M1 and M2,

u1  = u (p1, σ1),  

v2bar = sbar ( v(p2, σ2)),

ε1c  =  the complex conjugate of the polarization 4-vector ε (k1, λ1),

ε2c  =  the complex conjugate of the polarization 4-vector ε (k2, λ2),

and SL(A) = "Feynman slash of 4-vector A" =  γ_α A^α (summed over the
dummy Lorentz index α for α = 0, 1, 2, 3.),  and SL is a linear operator:

 SL (A + B)  = SL (A)  +  SL (B)

and "sbar" is a Dirac3 package matrix operator with the effect

To calculate M1 and M2, we need to define circular polarization 4-vectors
(actually we need the complex conjugates, indicated here by "c")  associated
with the two outgoing photons (4-momenta k1 and k2), which, in the center of momentum frame
have equal and opposite 3-momentum vectors k1_vec = - k2_vec.

Since we have two outgoing photons, calculating the amplitude requires
the complex conjugate of the polarization 4-vectors, called above ε1c and ε2c.

So ek1Rc is the complex conjugate of ek1R = right-handed circular polarization
4-vector associated with the photon with 4-momentum k1,  so ek1Rc corresponds
to outgoing photon k1 having helicity = +1.

Likewise ek1Lc corresponds to the outgoing photon k1 having helicity = -1,
(left-handed circular polarization).

The explicit circular polarization 4-vectors (used here) are derived in detail in the
worksheet photon2.wxm.

comp_def (ek1Rc (0, - cos (th)/sqrt(2), %i/sqrt(2), sin(th)/sqrt(2) ),
                  ek1Lc (0, cos (th)/sqrt(2), %i/sqrt(2), - sin(th)/sqrt(2)),
                  ek2Rc (0,  cos (th)/sqrt(2),  %i/sqrt(2), - sin(th)/sqrt(2) ),
                  ek2Lc (0, - cos (th)/sqrt(2),  %i/sqrt(2),  sin(th)/sqrt(2)) )$

Define two functions Ek1c( lam ) and Ek2c (lam), where lam is short for "lambda",
which takes on values 1 and -1.

Ek1c(lam) :=  if lam = 1 then ek1Rc 
                else if lam = -1 then ek1Lc
              else (print ("error"), done) $

Ek2c(lam) :=  if lam = 1 then ek2Rc 
                else if lam = -1 then ek2Lc
              else (print ("error"), done) $

listarray (ek1Rc);

listarray (Ek1c(1));

Then we can get the same correct Feynman slash matrix either of two ways:

sL1 : sL (ek1Rc);

sL2 : sL ( Ek1c (1) );

is (equal (sL1, sL2));

We expect to get 0 for the helicity amplitude RR --> RR

for e(-, p1, R) + e (+,p2,R) --> γ(k1, R) + γ(k2, R)
We have σ1 = 1, σ2 = 1,  λ1 = 1, λ2 = 1

define needed spinors  up1 and vp2b (recall definitions of
UU and VV above):

up1 : UU (E,E,0, 0, 1);
vp2b : sbar ( VV (E,E,%pi, 0, 1));

 set M1 = M1n/t  and M2 = M2n/u,  where we can use t_th and u_th from our definitions above.

M1n : - vp2b . sL(Ek2c(1)) . sL(p1 - k1) . sL(Ek1c(1)) . up1;

M2n : - vp2b . sL(Ek1c(1)) . sL(p1 - k2) . sL(Ek2c(1)) . up1;

so the helicity amplitude RR --> RR is 0, as we expected.

Next consider the case RL --> RL,  up1 is same but need to redefine vp2b

for e(-, p1, R) + e (+,p2,L) --> γ(k1, R) + γ(k2, L)

We have σ1 = 1, σ2 = -1,  λ1 = 1, λ2 = -1

vp2b : sbar ( VV (E,E,%pi, 0, -1));

M1n : -  trigsimp ( vp2b . sL(Ek2c(-1)) . sL(p1 - k1) . sL(Ek1c(1)) . up1);

M1 : M1n / t_th, factor;

M2n : - trigsimp (  vp2b . sL(Ek1c(1)) . sL(p1 - k2) . sL(Ek2c(-1)) . up1 );

M2 : M2n / u_th, factor;

so the (reduced) helicity amplitude for R L --> R L is 

Mr : trigsimp (M1 + M2);

Now automate calculation of the reduced amplitudes for given helicity
assignments, defining the function Amplitude(s1v,s2v,lam1,lam2), which
stands for  Mr (σ1, σ2, λ1, λ2).

In this definition,  E is an unbound parameter, and  t_th and u_th have been  defined above.

This produces the reduced helicity amplitude as a function of θ for given
helicity assignments:  sv = +/-1 corresponds to R/L , likewise lam = +/- 1 
corresponds to R/L.

Amplitude (s1v,s2v,lam1,lam2) := 
  block ([up1,vp2b, M1, M2],
    up1 : UU (E, E, 0, 0, s1v),    
    vp2b : sbar ( VV (E, E, %pi, 0, s2v)),
    -  trigsimp ( vp2b . sL(Ek2c(lam2)) . sL(p1 - k1) . sL(Ek1c(lam1)) . up1),
   M1 : factor ( %% / t_th ),
   - trigsimp (  vp2b . sL(Ek1c(lam1)) . sL(p1 - k2) . sL(Ek2c(lam2)) . up1 ),
  M2 : factor (%% / u_th),
  trigsimp (M1 + M2))$

Test this function with the two cases we did "by hand."

Amplitude (1,1,1,1);

Amplitude (1,-1,1,-1);

## Helicity amplitudes --> unpolarized cross section

AN ALTERNATIVE PATH TO THE UNPOLARIZED CROSS SECTION
 IS TO CALCULATE THE INDIVIDUAL AMPLITUDES FOR SPECIFIC 
POLARIZATIONS  OF THE INITIAL AND FINAL PARTICLES (SEE 
SEC. 3 "SPIN SUMS" IN CH. 12 pdf file) AND THEN FIND THE 
UNPOLARIZED CROSS SECTION BY  COMPUTING THE SUM OF 
THE ABSOLUTE VALUE SQUARED OF EACH OF THE POLARIZED 
AMPLITUDES, WHICH WE NOW DO.

 The function Avsq(expr) is defined in dgmatrix3.mac 
and computes the absolute value squared.
  (We could also use here abs(expr)^2 )  

sL : [1, -1]$
mssq : 0$

block([s1, s2, l1, l2, temp],    
    print ("  "),
    print (" s1 s2  l1  l2     amplitude     "), 
    for s1 in sL do
        for s2 in sL do
            for l1 in sL do
                for l2 in sL do (
                     temp :  Amplitude (s1, s2, l1, l2),                     
                     mssq : mssq + Avsq(temp),
                     print ("  "),
                      print (s1, s2, l1, l2," ",temp ) ),
    mssq : trigsimp (mssq),
    print ("   "))$

mssq;

We will compare this with MfiSQ_th found in method 1 (First method using
Mandelstam variable route to unpolarized case).

MfiSQ_th;

trigsimp (mssq - MfiSQ_th);

which confirms the equality, taking into account trig identities.

Let's factor out the "16" from the numerator of mssq.

pullfac( num(mssq), 16) / denom (mssq);

## Squared Helicity Amplitudes via mat_trace methods

We used comp_def above to define the 4-vector arrays ek1Rc, ek1Lc, ek2Rc, and ek2Lc,
corresponding the the complex conjugates, as well as the function Ek1c(lam)
and Ek2c(lam).

To allow computations with both real and complex polarization 4-vectors, we need
to add the definitions (pasted from photon2.wxm):

comp_def ( ek1R (0, - cos (th)/sqrt(2), - %i/sqrt(2), sin(th)/sqrt(2) ),
                  ek1L (0, cos (th)/sqrt(2), - %i/sqrt(2), - sin(th)/sqrt(2)),
                   ek2R (0,  cos (th)/sqrt(2), - %i/sqrt(2), - sin(th)/sqrt(2) ),
                  ek2L (0, - cos (th)/sqrt(2), - %i/sqrt(2),  sin(th)/sqrt(2)) )$

Ek1(lam) :=  if lam = 1 then ek1R 
                else if lam = -1 then ek1L
              else (print ("error"), done) $
Ek2(lam) :=  if lam = 1 then ek2R 
                else if lam = -1 then ek2L
              else (print ("error"), done) $

For given helicity assignments, we write the square of the reduced amplitude 
  Mr = M1 + M2     as  (using  complex conjugate of a matrix expression is the
    same as the hermitian conjugate of the matrix exprression):

MfiSQ  =    |Mr|^2 = |M1|^2 + |M2|^2 + M2 * M1^{+} + M1 * M2^{+} 

              =  M11n/t^2  + M22n/u^2 +  M21n/(t*u)  + M12n/(t*u), where ^{+} indicates hermitian conjugate.

case RR --> RR,  or more specifically

 e(-, p1, R) + e(+,p2,P) --> γ(k1,R)  +  γ(k2,R)

so we get factors such as P(1) . sL(p1)  from u1 . u1bar,   
P(-1) . sL(p2)  from v2 . v2bar,    sL (Ek1(1)), and  sL (Ek2(1))  for example.

M11n : mat_trace (sL(Ek2c(1)) . sL(p1 - k1) . sL(Ek1c(1)) . P(1) . sL(p1) . sL(Ek1(1)) . 
        sL(p1 - k1) . sL(Ek2(1)) . P(-1) . sL(p2) )  ;

M22n : mat_trace (sL(Ek1c(1)) . sL(p1 - k2) . sL(Ek2c(1)) . P(1) . sL(p1) . sL(Ek2(1)) . 
        sL(p1 - k2) . sL(Ek1(1)) . P(-1) . sL(p2) );

M21n : mat_trace (sL(Ek1c(1)) . sL(p1 - k2) . sL(Ek2c(1)) . P(1) . sL(p1) . sL(Ek1(1)) . 
        sL(p1 - k1)  . sL(Ek2(1)) . P(-1) . sL(p2) );

M12n : mat_trace (sL(Ek2c(1)) . sL(p1 - k1) . sL(Ek1c(1)) . P(1) . sL(p1) . sL(Ek2(1)) . 
        sL(p1 - k2) . sL(Ek1(1)) . P(-1) . sL(p2) );

So the square helicity amplitude for the case RR ---> RR is zero.

Case  RL --> RL,  more specifically

 e(-, p1, R) + e(+,p2,L) --> γ(k1,R)  +  γ(k2,L)

so we get factors such as P(1) . sL(p1)  from u1 . u1bar,
 P(1) . sL(p2)   from v2 . v2bar,   sL (Ek1(1)), and  sL (Ek2(-1))  for example.

M11n :  trigsimp (   mat_trace (sL(Ek2c(-1)) . sL(p1 - k1) . sL(Ek1c(1)) . P(1) . sL(p1) . sL(Ek1(1)) . 
        sL(p1 - k1) . sL(Ek2(-1)) . P(1) . sL(p2) ) ) ;

M22n :  trigsimp (  mat_trace (sL(Ek1c(1)) . sL(p1 - k2) . sL(Ek2c(-1)) . P(1) . sL(p1) . sL(Ek2(-1)) . 
        sL(p1 - k2) . sL(Ek1(1)) . P(1) . sL(p2) )) ;

M21n :  trigsimp (  mat_trace (sL(Ek1c(1)) . sL(p1 - k2) . sL(Ek2c(-1)) . P(1) . sL(p1) . sL(Ek1(1)) . 
        sL(p1 - k1) . sL(Ek2(-1)) . P(1) . sL(p2) )) ;

M12n : trigsimp (  mat_trace (sL(Ek2c(-1)) . sL(p1 - k1) . sL(Ek1c(1)) . P(1) . sL(p1) . sL(Ek2(-1)) . 
        sL(p1 - k2) . sL(Ek1(1)) . P(1) . sL(p2) )) ;

MfiSQ : trigsimp ( M11n / t_th^2 + M22n / u_th^2 + M21n / (t_th*u_th)  + M12n / (t_th*u_th) ) ;

Compare this result which used the mat_trace method with the square of the
helicity amplitude found using explicit Dirac spinors.

MfiSQ_DS : Amplitude (1, -1, 1, -1)^2;

trigsimp (MfiSQ - MfiSQ_DS);

which confirms the equality with the square of the helicity amplitude computed
using the explicit Dirac spinor methods.

For a short tutorial on the explicit spin projection matrix P(σ)  when used
in the high energy case (neglecting the mass of the particles), see section (3.4)
of the worksheet ee-mumu-HE.wxm.

is (equal (P(sv), ( I4 + sv*Gam[5]) / 2 ));