Name: V. Shtabovenko (email_not_shown)
Date: 10/19/17-04:47:15 PM Z

A small followup. While working on refactoring OneLoop
(which I hope to finish eventually *sigh*), I moved the
code responsible for wrapping spinor chains with StandardMatrixElement

The development version of FeynCalc now contains ToStandardMatrixElement
which will give you standard matrix elements in the sense of Denner's
famous paper on electroweak corrections (arXiv:0709.1075, Section 5).
AFAIK this was also the original reason why Rolf implemented this
functionality in OneLoop. Anyway, now one can do something like:

\$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^2*TID[amp1, q, UsePaVeBasis -> True, ToPaVe -> True];

res2 = ToStandardMatrixElement[res1]
var = Select[Variables[res2], (Head[#] === StandardMatrixElement) &]

This might be useful for current/future collaborators of Denner and
Dittmaier ;)

Cheers,

Am 13.02.2017 um 03:51 schrieb Vladyslav Shtabovenko:
> Hi,
>
> sorry for the late reply: I'm currently in the final stage of my PhD, so
> I can answer at most once a week at this mailing list.
>
> Dirac equation is actually automatically applied by DiracSimplify. Also
> in num2 you should use
> GS[Polarization[p2,Transversality->True] to have the transversality
> condition. The kinematics
> like SP[p2,p2]=0 is usually specified before the calculation (see
> examples bundled with FeynCalc).
>
> If you want to implement simplifications via replacement rules, you need
> to first understand the difference
> between the FCI- and FCE-notation:
>
> https://github.com/FeynCalc/feyncalc/wiki/FAQ#fci_fce
>
> Then use StandardForm to see how Mathematica sees your expressions and
> For example, comparing
>
> Cases[res, DOT[___, DiracGamma[Momentum[p1]], Spinor[Momentum[p1], ___],
> ___], Infinity] // Union
> % // StandardForm
> onshell[[2]] // StandardForm
>
> it is quite easy to see why patterns do not match.
>
> Cheers,
>
> Am 06.02.2017 um 13:03 schrieb Peter Meinzinger:
>> Hi and thanks for the help,
>> i've got another, more general problem, regarding substitutions.
>> As for the code I had before, I now want to insert some relations, for
>> example the Dirac equation and relations regarding the photon.
>> The simplifications, though, are not used.
>> See, for example, this code, the Dirac eq for the second spinor won't
>> be used.
>>
>> \$BreitMaison = True
>> num1 := SpinorUBar[p3, ms].GA[6].(GS[q] + mt).GA[
>>    7].PolarizationVector[p2, \[Mu],
>>    Transversality -> True].(2*FV[q, \[Mu]] + 2*FV[p1, \[Mu]] +
>>     FV[p2, \[Mu]]).SpinorU[p1, mb]
>> num2 := SpinorUBar[p3, ms].gB.(GSD[q] + mt).GS[
>>    Polarization[p2]].(GS[q] + GS[p2] + mt).gA.SpinorU[p1, mb]
>>
>> amp1 = num1*FAD[{q, mt}, {q + p1, mh}, {q + p1 + p2, mh}]
>> amp2 := num2*FAD[{q, mt}, {q + p2, mt}, {q + p2 + p1, mh}]
>> onshell = {SpinorUBar[p3, ms].DiracGamma[Momentum[p3, D]] ->
>>    ms*Spinor[Momentum[p3, D], ms, 1],
>>   DiracGamma[Momentum[p1, D]].Spinor[Momentum[p1, D], mb, 1] ->
>>    mb*Spinor[Momentum[p1, D], mb, 1],
>>   Pair[Momentum[p2, D], Momentum[p2, D]] -> 0,
>>   Pair[Momentum[p1, D],
>>     Momentum[Polarization[p2, I], D]] -> (mb^2 - ms^2)/2,
>>   Pair[Momentum[p3, D],
>>     Momentum[Polarization[p2, I], D]] -> (mb^2 - ms^2)/2,
>>   DiracGamma[Momentum[p1, D]].DiracGamma[6].Spinor[Momentum[p1, D],
>>      mb, 1] -> mb*DiracGamma[7].Spinor[Momentum[p1, D], mb, 1],
>>   DiracGamma[Momentum[p1, D]].DiracGamma[7].Spinor[Momentum[p1, D],
>>      mb, 1] -> mb*DiracGamma[6].Spinor[Momentum[p1, D], mb, 1],
>>   Pair[Momentum[p1, D], Momentum[p1, D]] -> mb^2,
>>   Pair[Momentum[p3, D], Momentum[p3, D]] -> ms^2,
>>   DiracGamma[Momentum[p1, D]].DiracGamma[5].Spinor[Momentum[p1, D],
>>      mb, 1] -> -mb*DiracGamma[5].Spinor[Momentum[p1, D], mb, 1],
>>   Momentum[-p1 - p2] -> Momentum[p3],
>>   DiracGamma[Momentum[Polarization[p2, I], D]].DiracGamma[
>>      Momentum[p2, D]] -> 0,
>>   Momentum[Polarization[p2, I], D].Momentum[p2, D] -> 0,
>>   DiracGamma[Momentum[p2, D]].DiracGamma[
>>      Momentum[Polarization[p2, I], D]] -> 0,
>>   Spinor[Momentum[p3, D], ms, 1].DiracGamma[Momentum[p3, D]] ->
>>    ms*Spinor[Momentum[p3, D], ms, 1],
>>   Pair[Momentum[p1],
>>     Momentum[Polarization[p2, I, Transversality -> True]]] -> p2epk}
>>
>> res1 = -I/Pi^2*TID[amp1, q]
>> res2 = -I/Pi^2*TID[amp2, q]
>> res = res1 + res2 /. onshell
>> aux = FCDiracIsolate[res, Head -> StandardMatrixElement] //
>>     Expand2[#, {StandardMatrixElement, Pair}] & //
>>    ReplaceRepeated[#,
>>      a_Pair StandardMatrixElement[b_] :>
>>       StandardMatrixElement[a b]] & //
>>   Collect2[#, StandardMatrixElement] &
>> Cases2[aux,StandardMatrixElement]
>>
>> Additionally, I sometimes get results, with a gamma matrix, but some
>> code as superscript written, seems to be a bug somewhere, but I
>> couldn't track it down to a function, I'll tell you if I find
>> something more precise.
>> Cheers,
>> Peter
>>
>

This archive was generated by hypermail 2b29 : 02/16/19-06:40:01 PM Z CET