**Next message:**Sam: "Re: assign Lorentz indices to arbitrary matrix"**Previous message:**Vladyslav Shtabovenko: "Re: assign Lorentz indices to arbitrary matrix"**Maybe in reply to:**zwhuang: "Problem on DiracTrace and TR"**Messages sorted by:**[ date ] [ thread ] [ subject ] [ author ]**Mail actions:**[ respond to this message ] [ mail a new topic ]

Hi,

after 12 years here is the resolution:

What goes wrong in this calculation is that you use 4-dim Dirac matrices (GA) to write down the trace.

So the trace in t remains unevaluated and gets converted to D-dims when OneLoop is executed. The trace

in s, however, has already been computed by TR in 4-dims (which is inconsistent for a D-dim loop integral in DR), so the output you get from evaluating s with OneLoop is not correct.

The lesson to learn from here is that one should *never* mix D-dim and 4-dim quantities when working

with purely D-dim amplitudes. When you want to write D-dim Dirac matrices use GAD and GSD instead of GA and GS. Otherwise things like this happen.

And here is the correct code:

ex = I ((el^2)/(16 Pi^4 (1 - D)))FAD[{q, mf}, {q - k, mf}] DiracTrace[(mf + GS[q - k]).GA[i].(mf + GS[q]).GA[i]]

t = ChangeDimension[ex, D]

s = ChangeDimension[ex, D] /. DiracTrace -> TR

r1 = OneLoop[q, t]

r2 = OneLoop[q, s]

(r1 - r2) // Simplify // PaVeReduce

which returns 0 as it should.

P.S. I guess it might be better to redesign the Dimension option in TID and OneLoop and make them abort the calculation when someone tries to compute things like TID[GS[q].GS[p] FAD[{q,m1},{q+p,m2}],q] ...

Cheers

Vladyslav

*> Hi,
*

*>
*

*> I have some questions about DiracTrace & TR functions. Here "t" and "s" are only different in
*

*> the trace function DiracTrace or TR. By using OneLoop, I suppose the result "rst1-rst2" should
*

*> be zero, but the output is not.
*

*>
*

*> (****************************************************************************)
*

*> \!\(t = I\ \(el\^2\/\(16\ \(Pi\^4\) \((
*

*> 1 - D)\)\)\) FAD[{q, mf}, {q - k, mf}] DiracTrace[\((mf + GS[q -
*

*> k])\) . GA[¦Ì] . \((mf + GS[q])\) .
*

*> GA[¦Ì]]\ // \ FCI\[IndentingNewLine]
*

*> s = I\ \(el\^2\/\(16\ \(Pi\^4\) \((1 - D)\)\)\) FAD[{q,
*

*> mf}, {q - k, mf}] TR[\((mf + GS[q - k])\) . GA[¦Ì] . \((mf +
*

*> GS[q])\) . GA[¦Ì]]\ // \ FCI\)
*

*> OneLoop[q, t]
*

*> rst1 = FullSimplify[%]
*

*> OneLoop[q, s]
*

*> rst2 = FullSimplify[%]
*

*> rst1 - rst2 // Simplify
*

*> (****************************************************************************)
*

*>
*

*> The attachment is the full file (Trace.nb) with outputs.
*

*>
*

*> Anther question is about the option "TraceOfOne". FeynCalc sets "TraceOfOne->4" in both
*

*> DiracTrace & TR functions in the usual cases. What I want to know is wether I should
*

*> set "TraceOfOne->D" when I do some calculations in D-dimension.
*

*>
*

*> Best regards,
*

*>
*

*> Zhiwei Huang,
*

*> Wuhan University, PRC
*

**Next message:**Sam: "Re: assign Lorentz indices to arbitrary matrix"**Previous message:**Vladyslav Shtabovenko: "Re: assign Lorentz indices to arbitrary matrix"**Maybe in reply to:**zwhuang: "Problem on DiracTrace and TR"**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-08:40:01 AM Z CET
*