Name: Alexandra Date: 03/22/18-01:28:08 PM Z


Hello,

I faced a problem calculating matrix elements at tree level.
It arises for the amplitudes containing more than 5 Gamma-matrices between spinors, and more than 2 external vector bosons. The problem is, that the result of ME calculation depends on the order of applying functions DoPolarizationSums and FermionSpinSum, and the correct result is obtained only if FermionSpinSum is used first, and DoPolarizationSums – after. But for the shorter chains between spinors there is no such difference.

A model example:

 test=(Spinor[Momentum[k1], 0, 1] . DiracGamma[Momentum[np]] .
   DiracGamma[Momentum[k1 - p2]] . DiracGamma[LorentzIndex[Lor2]] .
   DiracGamma[Momentum[-k2 + p1]] . DiracGamma[LorentzIndex[Lor1]] .
       Spinor[Momentum[nm], 0, 1]*
  Spinor[Momentum[nm], 0, 1] . DiracGamma[Momentum[p1]] .
   DiracGamma[Momentum[k1 + k2 - p2]] . DiracGamma[Momentum[np]] .
   DiracGamma[Momentum[k1 + k2]] .
       DiracGamma[LorentzIndex[beta]] . Spinor[Momentum[k1], 0, 1]*
     Pair[LorentzIndex[alpha], Momentum[nm]])*Pair[LorentzIndex[Lor1],
  Momentum[Polarization[k2, I, Transversality -> True]]]*
    Pair[LorentzIndex[Lor2],
  Momentum[Polarization[-k1 - k2 + p1 + p2, I,
    Transversality -> True]]]*
 Pair[LorentzIndex[beta],
  Momentum[Polarization[k2, -I, Transversality -> True]]]*
 Pair[LorentzIndex[alpha],
  Momentum[Polarization[-k1 - k2 + p1 + p2, -I,
    Transversality -> True]]]

If we call

 test1 =
 test // FermionSpinSum // ReplaceAll[#, {DiracTrace -> Tr}] & //
       ExpandScalarProduct //
     DoPolarizationSums[#, -k1 - k2 + p1 + p2, 0] & //
    DoPolarizationSums[#, k2, np] & // PropagatorDenominatorExplicit //
   Simplify

and

 test=test00 // DoPolarizationSums[#, -k1 - k2 + p1 + p2, 0] & //
       DoPolarizationSums[#, k2, np] & // FermionSpinSum //
     ReplaceAll[#, {DiracTrace -> Tr}] & // ExpandScalarProduct //
   PropagatorDenominatorExplicit // Simplify

than test1=/=test2, and the correct result is test1.

May you explain what causes this problem, or if it is programmatically allowed in the FeynCalc to call DoPolarizationSums before FermionSpinSum?