**Next message:**Fabrizio Nesti: "Re: Dimension->D?"**Previous message:**Alexandra: "Problem functions order FermionSpinSum and DoPolarizationSums"**In reply to:**Alexandra: "Problem functions order FermionSpinSum and DoPolarizationSums"**Messages sorted by:**[ date ] [ thread ] [ subject ] [ author ]**Mail actions:**[ respond to this message ] [ mail a new topic ]

Hi,

DoPolarizationSums and FermionSpinSum can be interchanged freely but the

results (although numerically identical) may not look the same. This is

because the traces of Dirac matrices in 4 dimensions are not unique due

to the Schouten's identity (just use the search function and look for

"Schouten", this is a recurring topic on this mailing list).

One explanation is here:

<http://www.feyncalc.org/forum/0859.html>

Just a short example:

expr1 = Tr[GA[i1, i2, i3, i4, i5, i6, i7, i8, i9, i10]];

tmp1 = GA[i1, i2, i3, i4, i5, i6, i7, i8, i9, i10] // Chisholm;

expr2 = Tr[tmp1];

diff = expr1 - expr2 // FCI // Simplify

expr1 was computed using the internal algorithm, expr2 by first

replacing products of 3 Dirac matrices using the known identity

as in

GA[i1, i2, i3] // Chisholm

diff is in fact 0, but owing to Schouten's identity it is extremely

difficult to prove something like that symbolically.

In your case there is a traces of 12 matrices, so that is out of question.

I'm pretty sure that your test1 and test2 are identical for the same

reason. You should be able to show this numerically by replacing each

scalar product in the difference by its numerical value. However,

the numerical values must be chosen such, that the energy-momentum

conservation is satisfied. Just plugging in some random numbers wouldn't do.

Coming back to the diff from the above example with 10 matrices. If you

don't believe that it is 0, one can show this by contracting with

p1^i1*...p10^i10 and then decomposing each scalar product into

its components:

vecs = Times @@

Table[FVD[p[i], ToExpression["i" <> ToString[i]]], {i, 1, 10}]

diff2 = diff vecs // Contract;

diff3 = diff2 /.

FCI[SP[p[i_], p[j_]]] :>

pComp[i, 0] pComp[j, 0] - pComp[i, 1] pComp[j, 1] -

pComp[i, 2] pComp[j, 2] - pComp[i, 3] pComp[j, 3];

diff3 // Expand

This yields 0 as predicted. But don't do this in real calculations, the

number of terms explodes so rapidly that even FORM wouldn't handle it.

A purely numerical check is usually sufficient.

BTW, there is no Schouten's identity in D-dimensions so the traces there

are unique, but it still exists in every space with a finite number of

dimensions.

2D: eps^ij p^k + eps^jk p^i + eps^ki p^j = 0

3D: eps^ijk p^l - eps^jkl p^i + eps^kli p^j - eps^lij p^k = 0

and so on.

Cheers,

Vladyslav

Cheers,

Vladyslav

Am 22.03.2018 um 20:28 schrieb Alexandra:

*> 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?
*

*>
*

**Next message:**Fabrizio Nesti: "Re: Dimension->D?"**Previous message:**Alexandra: "Problem functions order FermionSpinSum and DoPolarizationSums"**In reply to:**Alexandra: "Problem functions order FermionSpinSum and DoPolarizationSums"**Messages sorted by:**[ date ] [ thread ] [ subject ] [ author ]**Mail actions:**[ respond to this message ] [ mail a new topic ]

*
This archive was generated by hypermail 2b29
: 02/16/19-07:00:01 PM Z CET
*