Why when I generate self energy diagram of for neutrinos, FormCalc gives zero amplitude ? here is the code

t12 := CreateTopologies[1, 1 -> 1, ExcludeTopologies -> Internal]
ins := InsertFields[t12, F[1, {3}] -> F[1, {3}]];

amp = CalcFeynAmp[CreateFeynAmp[ins]]

which gives zero amplitude:

Amp[{{F[1, {3}], k[1], 0, {0, LeptonNumber}}} -> {{F[1, {3}], k[2], 
     0, {0, LeptonNumber}}}][0]

It's known that neutrino is massless in SM (the default choice of FA) but painting [ins] gives diagrams mediated by W and Z bosons as in the next figure, so why their amplitudes have not evaluated ?

enter image description here

  • $\begingroup$ FeynCalc is actively maintained by Shtabovenko. You may find it helpful to browse and ask your question on the FeynCalc forum. $\endgroup$
    – QuantumDot
    Oct 2, 2016 at 9:05
  • 1
    $\begingroup$ OP clearly confuses FeynCalc and FormCalc here, see also this link CalcFeynAmp is a FormCalc function and has nothing to do with FeynCalc. So the title should be edited to "Why FormCalc ...". I've already suggested him to contact Thomas Hahn (developer of FormCalc) directly, since afaik there are no FormCalc experts around on this site. $\endgroup$
    – vsht
    Oct 2, 2016 at 11:18
  • $\begingroup$ I changed the question title anyway .. thanx $\endgroup$
    – S.S.
    Oct 2, 2016 at 11:32
  • $\begingroup$ @vsht I think the description for the feyncalc tag serves to exacerbate the confusion -- it probably should be changed ASAP. $\endgroup$
    – QuantumDot
    Oct 6, 2016 at 13:07
  • $\begingroup$ @QuantumDot Do you propose to introduce a separate tag for every HEP package: FeynArts, FormCalc, FeynCalc, LoopTools, FeynRules etc.? BTW, I was not the one who created this tag and started to add it to questions that were not related to FeynCalc. The description merely reflects the current usage of the tag. $\endgroup$
    – vsht
    Oct 6, 2016 at 13:46

1 Answer 1


Although I have nothing to do with FormCalc, I think that I understand what is the problem here: Since you want to compute self-energy, you need to use the option Truncated when generating the amplitudes. Otherwise the amplitude is generated with external spinors and vanishes because of the equation of motion (Dirac equation). The correct code reads:

<< FormCalc`FormCalc`
<< FeynArts`FeynArts`

$FAVerbose = 0;
t12 = CreateTopologies[1, 1 -> 1, ExcludeTopologies -> Internal];
ins = InsertFields[t12, F[1, {3}] -> F[1, {3}], 
   InsertionLevel -> {Particles}];
Paint[ins, ColumnsXRows -> {3, 1}, ImageSize -> {768, 256}];

CalcFeynAmp[CreateFeynAmp[ins, Truncated -> True], OnShell -> False]

and the result is

Amp[{{F[1, {3}], k[1], 0, {0, LeptonNumber}}} -> {{F[1, {3}], k[2], 
     0, {0, LeptonNumber}}}][-(1/(\[Pi] SW2))
  Alfa (1/16 (2 + 1/CW2) Finite + 1/8 (B0i[bb1, Pair[k[1], k[1]], 0, MZ2]/
        CW2 + (2 + ML2/MW2) B0i[bb1, Pair[k[1], k[1]], ML2, MW2])) GA[6, k[1]]]

To see why the amplitude is zero without Truncated->True one can use the following FeynCalc code

$LoadFeynArts = True;
<< FeynCalc`

$FAVerbose = 0;
t12 = CreateTopologies[1, 1 -> 1, ExcludeTopologies -> Internal];
ins = InsertFields[t12, F[1, {3}] -> F[1, {3}], InsertionLevel -> {Particles}];
amp1 = FCFAConvert[CreateFeynAmp[ins], IncomingMomenta -> {p}, 
    OutgoingMomenta -> {p}, LoopMomenta -> {q}, SMP -> True, List -> False] // Contract;
amp2 = amp1 // TID[#, q] & // ToPaVe[#, q] & //Collect2[#, DOT, IsolateNames -> KK] &

Here we simplify the Dirac algebra and perform 1-loop tensor decomposition. After that we collect terms w.r.t to the remaining Dirac structures and introduce abbreviations to make the result better readable. What we get is

$$ \frac{1}{128} \text{KK}(103) (\varphi (p)).(\gamma \cdot p).\bar{\gamma }^7.(\varphi (p)), $$

where $\bar{\gamma }^7$ is the usual left handed projector. The resulting expression is zero by Dirac equation, since neutrinos are massless in the SM model of FeynArts. We can also see this in FeynCalc by evaluating

amp2 // DiracSimplify

which gives zero.

  • $\begingroup$ Hay @vsht .. actually now the amplitude does not go to zero but when I continue squaring amp and using LoopTools I can't get numerical results .. if you have an idea about that, can you look at my code in this post mathematica.stackexchange.com/questions/128074/… .. thanx $\endgroup$
    – S.S.
    Oct 6, 2016 at 10:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.