I'm using FeynCalc to calculate Compton's scattering. I need to use specific values for the components of the photon polarization four-vector. How can I do that?

  • $\begingroup$ Perhaps you can directly ask the authors of FeynCalc on their forum here: feyncalc.github.io/forum. I'm sure you'll get helpful pointers. $\endgroup$
    – QuantumDot
    Commented Dec 11, 2017 at 20:22

3 Answers 3


I recently came across this problem as well. How I ended up calculating fully contracted amplitudes with explicit four-vectors (let it be momenta, polarization vectors) is as follows:

Define the functions

Mink[t1_, t2_] := 
  t1[[1]] t2[[1]] - t1[[2]] t2[[2]] - t1[[3]] t2[[3]] - 
   t1[[4]] t2[[4]];
LevContracted[a_, b_, c_, d_] := 
      4][[mu, nu, alpha, beta]]] a[[mu]] b[[nu]] c[[alpha]] d[[beta]], {mu, 1, 4}, {nu, 1, 4}, {alpha, 1, 
   4}, {beta, 1, 4}];

for a Minkowski scalar product and a fully contracted expression with the Levi-Civita-Tensor. Here, I use the signature $(+---)$ and the convention $\epsilon^{0123}=+1$ (to improve readability, I replaced the \[Mu] from Mathematica by mu). If you then take your four-vectors to be contravariant, you get the additional minus sign in the definition of the second function. I will provide two examples of how to define the four-vectors. We will use lists, as can also be seen from the definition of the functions above. For the momentum of an on-shell particle with mass $m$ in its rest frame, we can define

p = {m, 0, 0, 0};

and for the three corresponding polarization vectors we use


i.e. a list of lists, in order to sum over all its polarizations.

Note that when calculating the spin-/polarization-averaged/-summed (I will refer to this as "pol.") squared amplitude and summing over the different polarization states, you have to add them after squaring, i.e.

$|\overset{\sim}{M}| = \frac{1}{(2J_1+1)\ldots (2J_N+1)}\sum_{\{\text{pol. }i\}}{|M_i|^2}$

where $i$ refers to one given polarization state, i.e. every particle has a fixed polarization and $J_i$ are the spins of the particle(s) in the initial state.

ScalarProduct[p, q] /. 
  FCI[SP[p, q]] -> {p1, p2, p3, p4}.{q1, -q2, -q3, -q4} 

I cannot say more.I found this


Here's how I did it.

MinkSP[vec1_, vec2_] := Times[vec1[[1]], vec2[[1]]] - Times[vec1[[2]], vec2[[2]]] - Times[vec1[[3]], vec2[[3]]] - Times[vec1[[4]], vec2[[4]]]


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.