FeynCalc / feyncalc

Mathematica package for algebraic calculations in elementary particle physics.
https://feyncalc.github.io
GNU General Public License v3.0
316 stars 88 forks source link

SUNHeadsList Illegal in Dirac Chain? #51

Closed JP-Ellis closed 4 years ago

JP-Ellis commented 4 years ago

Recently, I encountered an issue with ComplexConjugate complaining that the Dirac chain contained illegal object. The message was not clear as to what in particular was not allowed, but I eventually found that it was the presence of SUNFIndex; however, I believe this to be an error in the following example:

Spinor[-Momentum[p2], MassFu[Index[I3Gen, 2], SUNFIndex[Col2]], 1]
 . DiracGamma[7]
 . Spinor[Momentum[p3], MassFQ[Index[I3Gen, 3], SUNFIndex[Col3]], 1]

The SUNFIndex is (in intent) only distinguishing between the masses of the quarks of different colour charges (which of course in an unbroken SU(3) should be identical).


vsht commented 4 years ago

The old ComplexConjugate was rather difficult to maintain and to improve, so at some point I decided to rewrite it in a better way to ensure that all new symbols (DiracChain, Pauli stuff etc.) that were not there in older versions can be correctly conjugated.

One of the improvements was that the function internally separates the amplitude into Dirac, Pauli and SU(N) structures, making it easy to handle each piece separately.

However, you are right that once one is doing model building, all kind of unusual structures that mix different index types may appear in the amplitudes. On the other hand, ComplexConjugate also wouldn't know how to conjugate those, so here additional user input would be needed anyhow.

I removed the Abort[] statements but left the warnings when such amplitudes are encountered. If you know what you are doing, you can always silent the warnings via Quiet[]. I hope this solves the issue in a satisfactory way.

BTW, if you are using SU(N) indices as placeholders i.e. Einstein summing convention doesn't apply to them, I would use ExplicitSUNFIndex and ExplicitSUNIndex respectively. Cf.

(SUNT[a, a] + SUNT[b, b]) MassFQ[Index[I3Gen, 3], 
    SUNFIndex[Col3]]^3 // FCCanonicalizeDummyIndices

and

(SUNT[a, a] + SUNT[b, b]) MassFQ[Index[I3Gen, 3], 
    ExplicitSUNFIndex[Col3]]^3 // FCCanonicalizeDummyIndices
vsht commented 4 years ago

Since the bug has been fixed a month ago, I'm closing this one.