Name: Vladyslav Shtabovenko (email_not_shown)
Date: 06/13/17-02:15:36 PM Z


Hi Stefano,

I suppose you are aware that in FeynCalc (and Mathematica in general)
Times is a commutative product, so that you need Dot when working with
noncommutative products.

Hence,

Contract[prop[pG + pN, mA] AmpFconj prop[pN, mN] AmpF];

should be

Contract[prop[pG + pN, mA].AmpFconj.prop[pN, mN].AmpF];

since otherwise you would calculate nonsense.

Moreover, inserting intermediate DiracReduce makes your calculation take
much longer than without. DiracTrace is optimized to work on the full
expressions so that mostly you do not need to simplify things in advance.

Having

AmpF = (I Q)/(16 \[Pi]^2) Contract[
     DiracSimplify[Proj[g2L, g2R], dm[\[Rho]], dm[\[Mu]], dm[\[Sigma]],
         Proj[g1L, g1R]] (C\[Mu]\[Nu]F[\[Rho], \[Sigma]] +
         FVD[pN, \[Rho]] C\[Mu]F[\[Sigma]] +
         FVD[pG + pN, \[Sigma]] C\[Mu]F[\[Rho]] +
         FVD[pN, \[Rho]] FVD[pN + pG, \[Sigma]] C0F) +
      mF*DiracSimplify[Proj[g2L, g2R], dm[\[Rho]], dm[\[Mu]],
        Proj[g1L, g1R]] (C\[Mu]F[\[Rho]] + FVD[pN, \[Rho]] C0F) +
      mF*DiracSimplify[Proj[g2L, g2R], dm[\[Mu]], dm[\[Sigma]],
        Proj[g1L,
         g1R]] (C\[Mu]F[\[Sigma]] + (FVD[pN, \[Sigma]] +
            FVD[pG, \[Sigma]]) C0F) +
      mF^2*DiracSimplify[Proj[g2L, g2R], dm[\[Mu]],
        Proj[g1L, g1R]] C0F];

AmpFconj = -((I Q)/(16 \[Pi]^2)) Contract[
     DiracSimplify[Proj[Conjugate[g1R], Conjugate[g1L]], dm[\[Beta]],
        dm[\[Mu]], dm[\[Alpha]],
        Proj[Conjugate[g2L],
         Conjugate[g2L]]] (C\[Mu]\[Nu]F[\[Alpha], \[Beta]] +
         FVD[pN, \[Alpha]] C\[Mu]F[\[Beta]] +
         FVD[pG + pN, \[Beta]] C\[Mu]F[\[Alpha]] +
         FVD[pN, \[Alpha]] FVD[pN + pG, \[Beta]] C0F) +
      mF*DiracSimplify[Proj[Conjugate[g1R], Conjugate[g1L]],
        dm[\[Beta]], dm[\[Mu]],
        Proj[Conjugate[g2L], Conjugate[g2L]]] (C\[Mu]F[\[Beta]] +
         FVD[pN, \[Beta]] C0F) +
      mF*DiracSimplify[Proj[Conjugate[g1R], Conjugate[g1L]], dm[\[Mu]],
         dm[\[Alpha]],
        Proj[g1L,
         g1R]] (C\[Mu]F[\[Alpha]] + (FVD[pN, \[Alpha]] +
            FVD[pG, \[Alpha]]) C0F) +
      mF^2*DiracSimplify[Proj[Conjugate[g1R], Conjugate[g1L]],
        dm[\[Mu]], Proj[g1L, g1R]] C0F];

AmpF2 = Contract[prop[pG + pN, mA].AmpFconj.prop[pN, mN].AmpF];

res = DiracTrace[AmpF2, DiracTraceEvaluate -> True];

already works much faster.

Cheers,
Vladyslav

Am 13.06.2017 um 13:35 schrieb Stefano Colucci:
> Dear FeynCalc team,
>
> first of all thanks for providing particle physicists like me such a useful and simple tool like FeynCalc. Unfortuntely I am experiencing an issue I am not sure how to fix. I keep getting this error message
>
> "Error! DiracTrace has encountered a fatal problem and must abort the computation. The problem reads: Irregular trace structure in”
>
> … FeynCalc`DiracTrace`Private`dsHead(Overscript[\[Gamma], _]^5.Overscript[\[Gamma], _]^5) FeynCalc`DiracTrace`Private`dsHead(Overscript[\[Gamma], _]^6.Overscript[\[Gamma], _]^6) ...
>
> when I try to calculate a trace of an amplitude squared. Here is the code ( I am sorry it’s not very readable, but the amplitude structure is rather involved ) :
>
> DeclareNonCommutative[L, R];
> L = ChiralityProjector[-1];
> R = ChiralityProjector[+1];
>
> dm[mu_] := GAD[mu]
> ds[p_] := GSD[p]
> IDm = L + R;
> sp[p_, q_] := ScalarProduct[p, q, Dimension -> D]
> prop[p_, m_] := GSD[p] + IDm*m;
> (*PV[k_,\[Mu]_]:= PolarizationVector[k,\[Mu]]*)
> Proj[gL_, gR_] := gL*L + gR*R;
>
> ScalarProduct[pN, pN] = mN^2;
> ScalarProduct[pG, pG] = 0;
> ScalarProduct[pN, pG] = mA^2/2;
> ScalarProduct[pG, pN] = mA^2/2;
>
>
> C\[Mu]F[\[Mu]_] := (FVD[pN, \[Mu]] + FVD[pG, \[Mu]]) C1F + FVD[pN, \[Mu]] C2F
> C\[Mu]\[Nu]F[\[Mu]_, \[Nu]_] :=
> MTD[\[Mu], \[Nu]] C00F + (FVD[pN, \[Mu]] + FVD[pG, \[Mu]]) (FVD[pN, \[Nu]] +
> FVD[pG, \[Nu]]) C11F +
> FVD[pN, \[Mu]] FVD[
> pN, \[Nu]] C22F + ((FVD[pN, \[Mu]] + FVD[pG, \[Mu]]) FVD[pN, \[Nu]] +
> FVD[pN, \[Mu]] (FVD[pN, \[Nu]] + FVD[pG, \[Nu]])) C12F
>
> (* I am not defining PV functions explicitly already at this stage: it would be too messy and it doesn’t help with the trace *)
>
>
> AmpF = (I Q)/(16 \[Pi]^2)
> DiracReduce[
> Contract[DiracSimplify[Proj[g2L, g2R], dm[\[Rho]], dm[\[Mu]],
> dm[\[Sigma]],
> Proj[g1L, g1R]] (C\[Mu]\[Nu]F[\[Rho], \[Sigma]] +
> FVD[pN, \[Rho]] C\[Mu]F[\[Sigma]] +
> FVD[pG + pN, \[Sigma]] C\[Mu]F[\[Rho]] +
> FVD[pN, \[Rho]] FVD[pN + pG, \[Sigma]] C0F) +
> mF*DiracSimplify[Proj[g2L, g2R], dm[\[Rho]], dm[\[Mu]],
> Proj[g1L, g1R]] (C\[Mu]F[\[Rho]] + FVD[pN, \[Rho]] C0F) +
> mF*DiracSimplify[Proj[g2L, g2R], dm[\[Mu]], dm[\[Sigma]],
> Proj[g1L,
> g1R]] (C\[Mu]F[\[Sigma]] + (FVD[pN, \[Sigma]] +
> FVD[pG, \[Sigma]]) C0F) +
> mF^2*DiracSimplify[Proj[g2L, g2R], dm[\[Mu]], Proj[g1L, g1R]] C0F]];
>
> AmpFconj = -((I Q)/(16 \[Pi]^2)) DiracReduce[
> Contract[DiracSimplify[Proj[Conjugate[g1R], Conjugate[g1L]], dm[\[Beta]],
> dm[\[Mu]], dm[\[Alpha]],
> Proj[Conjugate[g2L],
> Conjugate[g2L]]] (C\[Mu]\[Nu]F[\[Alpha], \[Beta]] +
> FVD[pN, \[Alpha]] C\[Mu]F[\[Beta]] +
> FVD[pG + pN, \[Beta]] C\[Mu]F[\[Alpha]] +
> FVD[pN, \[Alpha]] FVD[pN + pG, \[Beta]] C0F) +
> mF*DiracSimplify[Proj[Conjugate[g1R], Conjugate[g1L]], dm[\[Beta]],
> dm[\[Mu]],
> Proj[Conjugate[g2L], Conjugate[g2L]]] (C\[Mu]F[\[Beta]] +
> FVD[pN, \[Beta]] C0F) +
> mF*DiracSimplify[Proj[Conjugate[g1R], Conjugate[g1L]], dm[\[Mu]],
> dm[\[Alpha]],
> Proj[g1L,
> g1R]] (C\[Mu]F[\[Alpha]] + (FVD[pN, \[Alpha]] +
> FVD[pG, \[Alpha]]) C0F) +
> mF^2*DiracSimplify[Proj[Conjugate[g1R], Conjugate[g1L]], dm[\[Mu]],
> Proj[g1L, g1R]] C0F]];
>
> AmpF2 = Contract[prop[pG + pN, mA] AmpFconj prop[pN, mN] AmpF];
>
> AmpF2tr = TR[AmpF2]
>
> During evaluation of In[35]:= DiracTrace::failmsg: Error! DiracTrace has encountered a fatal problem and must abort the computation. The problem reads: Irregular trace structure in >>
>
> During evaluation of In[35]:= (1/(256 \[Pi]^4))mA mF^2 mN Q^2 FeynCalc`DiracTrace`Private`dsHead(Overscript[\[Gamma], _]^5.Overscript[\[Gamma], _]^5) FeynCalc`DiracTrace`Private`dsHead(Overscript[\[Gamma], _]^6.Overscript[\[Gamma], _]^6) (C0F+C1F+C2F) (g1L g1R^\[Conjugate]-g1R g1L^\[Conjugate]) (g1L g2L-g1R g2R) (C0F mA^2+C0F mN^2+C1F mA^2+C1F mN^2+C2F mN^2)
>
> Out[35]= $Aborted
>
>
> I have skimmed through the forum and ameliorate my code accordingly, but still no improvement. Using DiracReduce or DiracSimplify or Contract at any stage of the calculation doesn’t make things better. Neither does DiracSubstitute67 -> True . Of course I am happy to provide more details about my computation in case it’s needed.
>
> Do you have any idea of what is causing this issue and how to avoid it ?
>
> Thank you in advance,
>
> Stefano
>



This archive was generated by hypermail 2b29 : 11/24/17-08:00:01 AM Z CET