# photon2.wxmx
Explicit Circular Polarization 3-Vectors and 4-Vectors

photon2.wxmx,   Nov. 23, 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

 We use Heaviside-Lorentz electromagnetic units and natural 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).

In this worksheet we use lists to represent 3-vectors, and the 3-vector
dot product of lists L1 and L2 is given by L1 . L2.

Cross (j, L1, L2) ==>  j'th component of L1 X L2.

vprod (L1, L2) ==> list of components of the vector cross
product of 3-vectors L1 and L2 (each defined as a list).

load (dirac3);

## photon with k-hat = [0, 0, 1]

### Linear Polarization 3-Vectors

kh list represents k-hat, a unit 3-vector in the direction of a
 photon moving in the + z direction.

construct a pair of linear polarization 3-vectors ek1 and ek2 such
that each is normalized to 1, they are perpendicular to each other,
and ek1 X ek2 = k-hat  (vector cross product).

We arbitrarily choose ek1 to lie in  the z-x plane,
in which k-hat lies.  This is simply the unit vector  x-hat along
the positive x-axis, and ek2 will be y-hat, the unit vector along
the y-axis, in a right-handed coordinate system.

kh : [0, 0, 1]$
ek1 : [1, 0, 0]$
ek2 : [0, 1, 0]$

ek1 . ek1;
ek2 . ek2;
ek1 . ek2;
ek1 . kh;
ek2 . kh;

is (equal (vprod (ek1,ek2), kh));

vprod (ek1, ek2);

### Circular Polarization 3-Vectors

See, for example, MarkThompson, Modern Particle Physics, pp. 527 - 528, and
Peskin & Schroeder, Quantum Field Theory, p. 804
Halzen and Martin, Quarks and Leptons, p. 135, Eq (6.69) )

We now use the usual combinations of the linear polarization
3-vectors to define ekR (right circularly polarized) and
ekL (left circularly polarized) 3-vectors.

The 3-vector ekR corresponds to helicity +1, and
the 3-vector ekL corresponds to helicity -1.

ekR : -(ek1 + %i*ek2)/sqrt(2);
ekL : (ek1 - %i*ek2)/sqrt(2);

These complex circular polarization 3-vectors have the " orthonormality" properties:

ekR .  (ekR)^c = 1, where ( )^c stands for complex conjugate,
ekL . (ekL)^c = 1, 
 ekR . (ekL)^c = 0, 

 ekR .  conjugate ( ekR);
ekL .  conjugate ( ekL);
ekR .  conjugate ( ekL);
ekL .  conjugate ( ekR);

### Transverse Linear Polarization 4-vectors

Use comp_def to define four dimensional (zero based) arrays
whose zero component is equal to 0.

Let kZ be a "unit 4-vector" along the positive z-axis.

comp_def (kZ (0, 0, 0, 1),
 eps1 (0, 1, 0, 0 ),
 eps2 (0, 0, 1, 0) )$

map ('listarray, [kZ, eps1, eps2] );

VP(a, b) is the 4-vector dot product with our metric tensor choice.
We can use VP to explore the "orthonormality" of the linear polarization
4-vectors eps1 and eps2 relative to each other and to kZ.

VP (a, b);

VP (kZ, kZ);
VP (eps1, eps1);
VP (eps2, eps2);
VP (eps1, eps2);
VP (eps1, kZ);
VP (eps2, kZ);

### Transverse Circular Polarization 4-vectors

We define transverse complex circular polarization 4-vectors in terms of transverse
 linear polarization 4-vectors

epsR = - (eps1 + %i*eps2) / sqrt(2)

epsL =  (eps1 - %i*eps2) / sqrt(2)

and the complex conjugates of epsR and epsL:

epsRc = conjugate (epsR) =  - (eps1 - %i*eps2) / sqrt(2)

epsLc = conjugate (epsL) = (eps1 + %i*eps2) / sqrt(2)

comp_def (
     epsR (0, -1/sqrt(2),  -%i/sqrt(2), 0 ),
     epsL (0,  1/sqrt(2),  -%i/sqrt(2),  0),
     epsRc (0, -1/sqrt(2),  %i/sqrt(2), 0 ),
     epsLc  (0,  1/sqrt(2),  %i/sqrt(2),  0) )$

map ('listarray, [epsR, epsL, epsRc, epsLc] );

All are 4-orthogonal to the 4-vector kZ:

VP (epsR, kZ);
VP (epsL, kZ);
VP (epsRc, kZ);
VP (epsLc, kZ);

mutual orthonormality properties
(summation convention on repeated Lorentz
indices)

epsR ^{μ} epsRc_{μ} = -1

epsL ^{μ} epsLc_{μ} = -1

epsR ^{μ} epsLc_{μ} = 0

epsL ^{μ} epsRc_{μ} = 0

VP (epsR, epsRc);
VP (epsL, epsLc);
VP (epsR, epsLc);
VP (epsL, epsRc);

## photon with k-hat = [0, 0, -1]

### Linear Polarization 3-Vectors

If we rotate the previous case by 180 deg = π radians about the
positive y-axis, we can use the unit 3-vectors:

kh : [0, 0, -1]$
ek1 : [-1, 0, 0]$
ek2 : [0, 1, 0]$

check orthonormality

ek1 . ek1;
ek2 . ek2;
ek1 . ek2;
ek1 . kh;
ek2 . kh;

check right-hand rule

is (equal (vprod (ek1,ek2), kh));

### Circular Polarization 3-Vectors

See, for example, MarkThompson, Modern Particle Physics, pp. 527 - 528, and
Peskin & Schroeder, Quantum Field Theory, p. 804
Halzen and Martin, Quarks and Leptons, p. 135, Eq (6.69) )

We now use the usual combinations of the linear polarization
3-vectors to define ekR (right circularly polarized) and
ekL (left circularly polarized) 3-vectors.

The 3-vector ekR corresponds to helicity +1, and
the 3-vector ekL corresponds to helicity -1.

ekR : -(ek1 + %i*ek2)/sqrt(2);
ekL : (ek1 - %i*ek2)/sqrt(2);

These complex circular polarization 3-vectors have the " orthonormality" properties:

ekR .  (ekR)^c = 1, where ( )^c stands for complex conjugate,
ekL . (ekL)^c = 1, 
 ekR . (ekL)^c = 0, 

ekR .  conjugate ( ekR);
ekL .  conjugate ( ekL);
ekR .  conjugate ( ekL);
ekL .  conjugate ( ekR);

### Transverse Linear Polarization 4-vectors

Use comp_def to define four dimensional (zero based) arrays
whose zero component is equal to 0.

Let kmZ be a "unit 4-vector" along the NEGATIVE z-axis.

comp_def (kmZ (0, 0, 0, -1),
 e1 (0, -1, 0, 0 ),
 e2 (0, 0, 1, 0) )$

map ('listarray, [kmZ, e1, e2] );

As above, we can use VP to explore the "orthonormality" of the linear polarization
4-vectors e1 and e2 relative to each other and to kmZ.

VP (kmZ, kmZ);
VP (e1, e1);
VP (e2, e2);
VP (e1, e2);
VP (e1, kmZ);
VP (e2, kmZ);

### Transverse Circular Polarization 4-vectors

We define transverse complex circular polarization 4-vectors in terms of transverse
 linear polarization 4-vectors

eR = - (e1 + %i*e2) / sqrt(2)

eL =  (e1 - %i*e2) / sqrt(2)

and the complex conjugates of epsR and epsL:

eRc = conjugate (eR) =  - (e1 - %i*e2) / sqrt(2)

eLc = conjugate (eL) = (e1 + %i*e2) / sqrt(2)

comp_def (
     eR (0, 1/sqrt(2),  -%i/sqrt(2), 0 ),
     eL (0,  -1/sqrt(2),  -%i/sqrt(2),  0),
     eRc (0, 1/sqrt(2),  %i/sqrt(2), 0 ),
     eLc  (0,  -1/sqrt(2),  %i/sqrt(2),  0) )$

map ('listarray, [eR, eL, eRc, eLc] );

All are 4-orthogonal to the 4-vector kmZ:

VP (eR, kmZ);
VP (eL, kmZ);
VP (eRc, kmZ);
VP (eLc, kmZ);

mutual orthonormality properties
(summation convention on repeated Lorentz
indices)

eR ^{μ} eRc_{μ} = -1

eL ^{μ} eLc_{μ} = -1

eR ^{μ} eLc_{μ} = 0

eL ^{μ} eRc_{μ} = 0

VP (eR, eRc);
VP (eL, eLc);
VP (eR, eLc);
VP (eL, eRc);

## photon with k-hat = [sin(th), 0, cos(th)]

### Linear Polarization 3-Vectors

kh list represents k-hat, a unit 3-vector in the direction of an
outgoing photon.

construct a pair of linear polarization 3-vectors ek1 and ek2 such
that each is normalized to 1, they are perpendicular to each other,
and ek1 X ek2 = k-hat  (vector cross product).

We arbitrarily choose ek1 to lie in the "scattering plane", the z-x plane,
in which k-hat lies. Then elementary trig gives us the three components
of ek1, and it is properly normalized to 1.

kh : [sin(th),0,cos(th)];
ek1 : [cos(th), 0, -sin(th)];
ek2 : [d,e,f];

trigsimp (ek1 . ek1);

We need three equations to solve for the three
unknowns d, e, and f.

Cross (j,A,B) is our Dirac3 package function which 
returns the j'th component of the vector cross product
of the 3-vectors A and B.

eq1 : ek2 . ek2 = 1;

eq2 : ek2 . ek1 = 0;

eq3 : Cross(3,ek1,ek2) = kh[3];

solns : solve ([eq1,eq2,eq3],[d,e,f]);

Without trying to be fancy, we just write down the resulting
linear polarization vector ek2:

ek2 : [0,1,0];

Some of you want a fancier way, so here goes:

map ('rhs, solns [1]);

### Circular Polarization 3-Vectors

We now use the usual combinations of the linear polarization
vectors to define ekR (right circularly polarized) and
ekL (left circularly polarized) vectors.

The 3-vector ekR corresponds to helicity +1, and
the 3-vector ekL corresponds to helicity -1.

(See, for example, Halzen and Martin, Quarks and Leptons,
p. 135, Eq (6.69) )

ekR : -(ek1 + %i*ek2)/sqrt(2);

ekL : (ek1 - %i*ek2)/sqrt(2);

These complex circular polarization 3-vectors have the " orthonormality" properties:

ekR .  (ekR)^c = 1, where ( )^c stands for complex conjugate,
ekL . (ekL)^c = 1, 
 ekR . (ekL)^c = 0, 

trigsimp (  ekR .  conjugate ( ekR));

trigsimp (  ekL .  conjugate ( ekL));

trigsimp (  ekR .  conjugate ( ekL));

trigsimp ( ekL . conjugate (ekR));

vprod (A,B) is our Dirac3 package vector cross product
for 3-vectors defined as lists.

 trigsimp ( vprod (ekR, ekL));

### Circular Polarization 4-Vectors

Now to define corresponding circular polarization 4-vectors ek1R and ek1L.

Use our package function comp_def to define arrays k1, ek1R, and ek1L
 which hold the four components of 4-vectors.

comp_def (k1 (E,E*sin(th), 0, E*cos(th)),
                  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)) )$

k1[0];
listarray (k1);

We also need circular polarization 4-vectors constructed from the complex
conjugate 3-vectors for later use, so define the two arrays ek1Rc  (c for conjugate)
and ek1Lc.

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)) )$

map ('listarray, [ek1R,ek1L,ek1Rc,ek1Lc] );

VP (A, B) uses the components of 4-vectors defined using comp_def
to construct the 4 -vector dot product using our metric  tensor choice
(1, -1, -1, -1).

We then use VP to demonstrate "orthonormality"  properties of these
complex circular polarization vectors.

For example,  
  k . eps (k, R) = 0
  eps (k, R) . eps (k, R)^c = -1    (^c meaning complex conjugate here)
  eps (k, L) . eps (k, L)^c = -1
  eps (k, R) . eps (k, L)^c = 0

VP (k1, ek1R);

VP (k1, ek1L);

VP (ek1R,  ek1Rc);

VP (ek1L,  ek1Lc);

VP (ek1R,  ek1Lc);

VP (ek1L,  ek1Rc);

## photon with k-hat = [ - sin(th), 0, - cos(th)]

### Linear Polarization 3-Vectors

We now construct circular polarization vectors for a photon with 3-momentum opposite
to the case considered above (still confined to the z-x plane);
then kh representing k-hat is the negative of our previous case,
and we arbitrarily choose a linear polarization 3-vector ek1 opposite to
our previous case, as well.

kh : [- sin(th), 0,  - cos(th)];
ek1 : [-cos(th), 0, sin(th)];
ek2 : [d,e,f];

trigsimp (ek1 . ek1);

We need three equations to solve for the three
unknowns d, e, and f.

Cross (j,A,B) is our Dirac3 package function which 
returns the j'th component of the vector cross product
of the 3-vectors A and B.

eq1 : ek2 . ek2 = 1;

eq2 : ek2 . ek1 = 0;

eq3 : Cross(3,ek1,ek2) = kh[3];

solns : solve ([eq1,eq2,eq3],[d,e,f]);

ek2 : map ('rhs, solns[1]);

### Circular Polarization 3-Vectors

We now use the usual combinations of the linear polarization
vectors to define ekR (right circularly polarized) and
ekL (left circularly polarized) vectors.

The 3-vector ekR corresponds to helicity +1, and
the 3-vector ekL corresponds to helicity -1.

(See, for example, Halzen and Martin, Quarks and Leptons,
p. 135, Eq (6.69) )

ekR : -(ek1 + %i*ek2)/sqrt(2);

ekL : (ek1 - %i*ek2)/sqrt(2);

These complex circular polarization 3-vectors have the " orthonormality" properties:

ekR .  (ekR)^c = 1, where ( )^c stands for complex conjugate,
ekL . (ekL)^c = 1, 
 ekR . (ekL)^c = 0, 

trigsimp (  ekR .  conjugate ( ekR));

trigsimp (  ekL .  conjugate ( ekL));

trigsimp (  ekR .  conjugate ( ekL));

trigsimp (  ekL .  conjugate ( ekR));

### Circular Polarization 4-Vectors

Now to define corresponding circular polarization 4-vectors ek2R and ek2L.

Use our package function comp_def to define arrays k2, ek2R, and ek2L
 which hold the four components of 4-vectors.

As above, we also define arrays holding the complex conjugate 4-vectors.

comp_def (k2 (E, - E*sin(th), 0, - E*cos(th)),
                  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)),
                  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)) )$ 

k2[0];
listarray (k2);

map ('listarray, [ek2R, ek2L, ek2Rc, ek2Lc]);

VP (A, B) uses the components of 4-vectors defined using comp_def
to construct the 4 -vector dot product using our metric  tensor choice
(1, -1, -1, -1).

We then use VP to demonstrate "orthonormality"  properties of these
complex circular polarization vectors.

For example,  
  k . eps (k, R) = 0
  eps (k, R) . eps (k, R)^c = -1    (^c meaning complex conjugate here)
  eps (k, L) . eps (k, L)^c = -1
  eps (k, R) . eps (k, L)^c = 0

VP (k2, ek2R);
VP (k2, ek2L);
VP (ek2R,  ek2Rc);
VP (ek2L,  ek2Lc);
VP (ek2R,  ek2Lc);
VP (ek2L,  ek2Rc);

These circular polarization 4-vectors can then be used in calculations 
of the amplitudes of polarized pair annihilation e(-) e(+) -->  γ γ, for example,
in the center of momentum frame.  See the worksheet ee-gaga-HE.wxm
for example.

We observe the relations between the circular polarization 4-vectors associated with
four vectors k1 and k2, in which k2_vec = - k1_vec relates the 3-vector components:

ek2R^μ  = ek1L^μ

ek2L^μ = ek1R^μ

We are using "Coulomb gauge"  (or "transverse") photon polarization vector definitions
throughout this worksheet.