Name: Vladyslav Shtabovenko (email_not_shown)
Date: 02/02/17-04:49:09 PM Z

Hi Peter,

TID does not single out matrix elements like OneLoop. However, one can
easily do this afterwards.

If you want to have output like in OneLoop, just use

$BreitMaison = True;
num1 := SpinorUBar[p3, ms].GA[6].(GS[q] + mt).GA[
     p2, \[Mu]].(2*FV[q, \[Mu]] + 2*FV[p1, \[Mu]] +
      FV[p2, \[Mu]]).SpinorU[p1, mb] // DiracSimplify
amp1 = num1*FAD[{q, mt}, {q + p1, mh}, {q + p1 + p2, mh}]

res1 = -I/Pi^2*TID[amp1, q, UsePaVeBasis -> True, ToPaVe -> True]

res2 = FCDiracIsolate[res1, Head -> StandardMatrixElement] //
     Expand2[#, {StandardMatrixElement, Pair}] & //
      a_Pair StandardMatrixElement[b_] :>
       StandardMatrixElement[a b]] & //
   Collect2[#, StandardMatrixElement] &
var = Select[Variables[res2], (Head[#] === StandardMatrixElement) &]

Some explanations: UsePaveBasis forces TID to decompose tensor loop
integrals in terms of PaVe coefficients functions. This makes the result
more compact and is more convenient for numerical evaluation.
By default, TID tries to break everything down to the scalar integrals
A0, B0, C0, D0 etc. This is more convenient for analytic evaluation but
takes more time and you may end up with huge kinematic prefactors.

FCDiracIsolate wraps all the Dirac structures in your expression with
the head StandardMatrixElement. Then a simple replacement rule is used
to pull scalar products inside StandardMatrixElement head. After that
your command works as expected. However,

Cases2[res2, StandardMatrixElement]

is actually faster to write.

BTW, note that unlike OneLoop, TID does not attempt to change the
dimension of your input expression. So when you write a GS[q], it will
indeed be treated as a 4-dim Dirac slash, not a D-dim one. So always
make sure that the input expression is written with all dimensions
correct, as one would do it by hand.

Oh yeah, and don't forget to check out

from time to time and reinstall the stable version of FeynCalc via the
automatic installer when there are fixes available, as explained in

If you are signed up on GitHub, one can watch the repository to be
notified about new commits (which is what I do for FORM, to know when I
have to compile a new binary :) ).


Am 02.02.2017 um 14:45 schrieb Peter Meinzinger:
> Hello,
> i've got a question regarding the "Head StandardMatrixElement".
> I'm doing a one loop calculation and want to select the coefficients of the matrix elements in a list.
> I solve the problem using the function TID and got information that formerly, using the function OneLoop, it was possible to access the coefficients by something like
> var=Select[Variables[ans1],(Head[#]===StandardMatrixElement)&]
> now this gives no output, though.
> Could you explain what has changed in TID's output in regard to OneLoop's?
> Kind regards,
> Peter
> PS: I'm using version 9.2 (development version) and a example code would be
> $BreitMaison = True
> num1 := SpinorUBar[p3, ms].GA[6].(GS[q] + mt).GA[7].PolarizationVector[p2, \[Mu]].(2*FV[q, \[Mu]] + 2*FV[p1, \[Mu]] + FV[p2, \[Mu]]).SpinorU[p1, mb] // DiracSimplify
> amp1 = num1*FAD[{q, mt}, {q + p1, mh}, {q + p1 + p2, mh}]
> res1 = -I/Pi\.b2*TID[amp1 , q]
> var = Select[Variables[res1], (Head[#] === StandardMatrixElement) &]

This archive was generated by hypermail 2b29 : 02/17/19-09:00:01 AM Z CET