Name: Vladyslav Shtabovenko Date: 05/19/17-12:44:06 PM Z


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] + mb ID).ys2.(GS[p2] +
>> mc2 ID)] // Simplify;
>>
>> ID = 1; Res1 = AmpSquare
>>
>> Clear[ID, Res2]
>> ID = GA[6] + GA[7];
>> Res2 = AmpSquare
>>
>> (Res1 - Res2) // DiracSimplify[#, DiracSubstitute67 -> True] &
>>
>> Here DiracSubstitute67 merely replaces GA[6] and GA[7] by their
>> explicit values, i.e. 1/2(1+GA[5]) and 1/2(1-GA[5]) respectively.
>> Otherwise the difference is proportional to (GA[6]+GA[7]-1)
>>
>> Cheers,
>> Vladyslav
>>
>>
>> Am 19.05.2017 um 11:24 schrieb Ula:
>>> Dear Vladyslav,
>>>
>>> Thanks for the fast reply and your great work with FeynCalc. I checked that many examples with chiral projectors indeed yield correct results now, but not all of them. In the example below, Res1 is consistent with my own calculations.
>>>
>>> (*Definitions*)
>>>
>>> In[2]:= R = GA[6];
>>>
>>> In[3]:= L = GA[7];
>>>
>>> In[4]:= yiPR = YiPR L + YiPRCC R;
>>>
>>> In[5]:= ys1 = Ys1 L + Ys1CC R;
>>>
>>> In[6]:= ys2 = Ys2 L + Ys2CC R;
>>>
>>> In[7]:= SetMandelstam[s, t, u, p1, p2, -q1, -q2, mc1, mc2, ms1, ms2];
>>>
>>> In[8]:= AmpSquare :=
>>> Tr[yiPR.(GS[p1] - mc1 ID).ys1.(GS[p2 - q2] + mb ID).ys2.(GS[p2] +
>>> mc2 ID)] // Simplify;
>>>
>>> (*Correct Result*)
>>>
>>> In[9]:= ID = 1; Res1 = AmpSquare;
>>>
>>> (*Wrong Result*)
>>>
>>> In[10]:= Clear[ID, Res2]
>>>
>>> In[11]:= ID = GA[6] + GA[7]; Res2 = AmpSquare;
>>>
>>> (*Difference*)
>>>
>>> In[12]:= Res1 - Res2 // Simplify
>>>
>>> Out[12]= mc2 (2 mc1^2 + mc2^2 + ms2^2 - s - u) (YiPR Ys1 Ys2 +
>>> YiPRCC Ys1CC Ys2CC)
>>>
>>>
>>> All the best,
>>> Ula
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> Hi,
>>>
>>> thanks for the bug report. It is a bug that affects terms like
>>> (L1 GA[7] + R1 GA[6]) where both projectors appear multiplied with
>>> different constants. Should be now fixed. Please reinstall FeynCalc 9.2
>>> and let us know if you encounter any further issues.
>>>
>>> Cheers,
>>> Vladyslav
>>>
>>> Am 17.05.2017 um 11:02 schrieb Ula:
>>>> Dear FeynCalc users,
>>>>
>>>> In ``official” FeynCalc examples the identity matrix is not used under the trace. However, it seems that sometimes this yields wrong results when chiral projectors are present. Is this an expected bahavior, or I am doing something wrong? (I’m using FeynCalc 9.2.0 with Mathematica 8.0.4.)
>>>>
>>>> (*Definitions*)
>>>>
>>>> In[2]:= ID = GA[6] + GA[7];
>>>>
>>>> In[3]:= y1 = L1 GA[7] + R1 GA[6];
>>>>
>>>> In[4]:= y2 = L2 GA[7] + R2 GA[6];
>>>>
>>>>
>>>> (*Worng result*)
>>>>
>>>> In[5]:= Tr[y1.(GS[p2] + m2).y2.(GS[p1] - m1)] // FCE
>>>>
>>>> Out[5]= -2 (L2 R1 + L1 R2) (m1 m2 - SP[p1, p2])
>>>>
>>>> (*Correct result*)
>>>>
>>>> In[6]:= Tr[y1.(m2).y2.(-m1)]
>>>>
>>>> Out[6]= -2 m1 m2 (L1 L2 + R1 R2)
>>>>
>>>>
>>>> (*Correct result*)
>>>>
>>>> In[7]:= Tr[y1.(GS[p2] + m2 ID).y2.(GS[p1] - m1 ID)] // Simplify // FCE
>>>>
>>>> Out[7]= -2 m1 m2 (L1 L2 + R1 R2) + 2 (L2 R1 + L1 R2) SP[p1, p2]
>>>>
>>>>
>>>> Thanks and best wishes,
>>>> Ula
>>>>
>>>
>