Name: Vladyslav Shtabovenko Date: 05/19/17-07:46:24 PM Z


Dear Ula,

nevermind, I got your point and I finally realized what was going wrong
here. Many thanks for your bug report, reinstalling FeynCalc (again)
should fix the issue. Your original code

R = GA[6];
L = GA[7];
yiPR = YiPR L + YiPRCC R;
ys1 = Ys1 L + Ys1CC R;
ys2 = Ys2 L + Ys2CC R;
SetMandelstam[s, t, u, p1, p2, -q1, -q2, mc1, mc2, ms1, ms2];
AmpSquare :=
   Tr[yiPR.(GS[p1] - mc1 ID).ys1.(GS[p2 - q2] + mb ID).ys2.(GS[p2] +
        mc2 ID)] // Simplify;

ID = 1; Res1 = AmpSquare;

Clear[ID, Res2]
ID = GA[6] + GA[7]; Res2 = AmpSquare;

Res1 - Res2 // Simplify

now works as it should. This

Clear[ID]
DeclareNonCommutative[ID]

Res3 = (AmpSquare /. ID -> 1 /. DiracTrace -> Tr) // Simplify
Res4 = (AmpSquare /. ID -> GA[6] + GA[7] /. DiracTrace -> Tr) //
   Simplify

Res1 - Res3 // Simplify
Res1 - Res4 // Simplify

works as well.

Cheers,
Vladyslav

Am 19.05.2017 um 13:11 schrieb Ula:
> Dear Vladyslav,
>
> I was using
>
> AmpSquare := Tr[…]
>
> (rather than =), so in your case ID is unknown to FeynCalc at the time of evaluation.
>
> I also guess that the Dependence of Res2 on GA[] was somehow caused by DeclareNonCommutative – in my original example Res2 was a ``number”, as it should be, even though it was a wrong number.
>
> Thanks and best wishes,
> Ula
>
>> Dear Ula,
>>
>> I apologize, I’m afraid I skimmed through your code only
>> very briefly and overlooked that you already define L and
>> R as GA[6] and GA[7], instead of first using the sole symbols in the
>> calculation.
>>
>> On the other hand, now I’m afraid that I’m not able to reproduce your
>> wrong result. With FeynCalc 9.2 this (now without DeclareNonCommutative)
>>
>> R = GA[6];
>> L = GA[7];
>> yiPR = YiPR L + YiPRCC R;
>> ys1 = Ys1 L + Ys1CC R;
>> ys2 = Ys2 L + Ys2CC R;
>> SetMandelstam[s, t, u, p1, p2, -q1, -q2, mc1, mc2, ms1, ms2];
>>
>> AmpSquare =
>> Tr[yiPR.(GS[p1] - mc1 ID).ys1.(GS[p2 - q2] + mb ID).ys2.(GS[p2] +
>> mc2 ID)] // Simplify;
>>
>> ID = 1; Res1 = AmpSquare
>>
>> Clear[ID, Res2]
>> ID = GA[6] + GA[7];
>> Res2 = AmpSquare
>>
>> (Res1 - Res2) // Simplify
>> % // DiracSimplify[#, DiracSubstitute67 -> True] &
>>
>> yields 0 as it should (c.f. the attached notebook)
>>
>>
>> As to your second comment, in FeynCalc there are no explicit Dirac
>> indices, and hence no special unit matrix in the Dirac space.
>> This means, that when you compute a Dirac trace, all the Dirac
>> matrices should be spelled out explicitly.
>>
>>
>> Otherwise you get such strange results with Dirac matrices remaining
>> after the trace. Here the issue is really that FeynCalc does not know
>> what is ID and assumes it to be a c-number, i.e. something free of
>> Dirac matrices.
>>
>> Again, you could do
>>
>> R = GA[6];
>> L = GA[7];
>> yiPR = YiPR L + YiPRCC R;
>> ys1 = Ys1 L + Ys1CC R;
>> ys2 = Ys2 L + Ys2CC R;
>>
>> SetMandelstam[s, t, u, p1, p2, -q1, -q2, mc1, mc2, ms1, ms2];
>> DeclareNonCommutative[ID];
>>
>> AmpSquare =
>> DiracTrace[
>> yiPR.(GS[p1] - mc1 ID).ys1.(GS[p2 - q2] + mb ID).ys2.(GS[p2] +
>> mc2 ID), DiracTraceEvaluate -> True]
>>
>> However, in this case DiracTrace will abort evaluation, once it
>> encounters a trace over ID that it does not know how to handle.
>>
>> Cheers,
>> Vladyslav
>>
>> Am 19.05.2017 um 12:15 schrieb Ula:
>>> Dear Vladyslav,
>>>
>>> I don’t have much experience with FeynCalc (I hope this will change soon), maybe that is why I don’t understand why should I use DeclareNonCommutative[L, R]. I mean, L and R are just abbreviations for internal FeynCalc objects (I was using SetDelayed in my definitions of AmpSquare).
>>>
>>> I checked that with your tip it works correctly, but, to be honest, the fact that Res2 still depends on chiral projectors is even more strange.
>>>
>>> Best regards,
>>> Ula
>>>
>>>> Dear Ula,
>>>>
>>>> in this case you are missing a declaration of L and R
>>>> as noncommutative quantities.
>>>>
>>>> By default, FeynCalc will treat every symbol that has not been
>>>> explicitly declared to be noncommutatuve, as a c-number. The following
>>>> works fine
>>>>
>>>> DeclareNonCommutative[L, R]
>>>> R = GA[6];
>>>> L = GA[7];
>>>> yiPR = YiPR L + YiPRCC R;
>>>> ys1 = Ys1 L + Ys1CC R;
>>>> ys2 = Ys2 L + Ys2CC R;
>>>> SetMandelstam[s, t, u, p1, p2, -q1, -q2, mc1, mc2, ms1, ms2];
>>>>
>>>> AmpSquare =
*>>>> Tr[yiPR.(GS[p1] - mc1 ID).ys1.(GS[p2 - q2]