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
head into a separate function.

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,
Vladyslav

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
> adjust the rules accordingly.
> 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,
> Vladyslav
>
> 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 : 11/20/18-10:40:01 PM Z CET