Name: V. Shtabovenko Date: 03/09/19-02:09:26 PM Z


Hi Vitaly,

thanks for your mail. Of course, only an IndexDelta in the color space
should be converted to SUNDelta or SUNFDelta. Every other IndexDelta
must be left untouched. In fact, this bug was fixed already in 2017,

<https://github.com/FeynCalc/feyncalc/commit/ebaa25046da49fbf5ba3d8881776eaddee9def20>

but for some unknown reason the fix did not make it into the stable
version. I’ve just added it to the hotfix-stable branch via cherry-pick.

To be honest, I personally prefer to handle those things manually (using
FORM, color.h and a QCD model with 2 flavors only), but one certainly
should be able to do it in a more automatic fashion. If you want to
evaluate those sums over the flavors using your code I’d do the following:

diagrams =
   InsertFields[topologies, {V[1]} -> {F[3], -F[3]},
    InsertionLevel -> {Classes}, Model -> “SMQCD”];
amplitude =
  FCFAConvert[CreateFeynAmp[diagrams], IncomingMomenta -> {q},
    OutgoingMomenta -> {k1, k2}, UndoChiralSplittings -> True,
    ChangeDimension -> d, List -> False, SMP -> True,
    DropSumOver -> False] /. {MQU[_] -> 0, MQD[_] -> 0,
    SMP[“m_u”] -> 0, SumOver[(SUNFIndex | SUNIndex)[__], ___] :> 1}

The reason I want to get rid of sums over color indices is that they
violate Einstein’s convention and hence confuse SUNSimplify. The sums
over the flavors, however, remain in the expression.

Now doing

amplitude*ComplexConjugate[FCRenameDummyIndices[amplitude] /.
SumOver[__] :> 1] // Contract // SUNSimplify // FCE

yields

(4*CA*Spinor[Momentum[k1, d], 0, 1] .
DiracGamma[Momentum[Polarization[q, I], d], d] . Spinor[-Momentum[k2,
d], 0, 1]*
   Spinor[-Momentum[k2, d], 0, 1] . DiracGamma[Momentum[Polarization[q,
-I], d], d] . Spinor[Momentum[k1, d], 0, 1]*
   IndexDelta[Index[Generation, 2], Index[Generation,
3]]*SMP[“e”]^2*SumOver[Index[Generation, 2], 3, External]*
   SumOver[Index[Generation, 3], 3, External])/9

At this point you can write some simple code to sum over

SumOver[Index[Generation, 2], 3, External]*
   SumOver[Index[Generation, 3], 3,
External]*IndexDelta[Index[Generation, 2], Index[Generation, 3]]

and get your Nf.

Notice that FeynArts defines

IndexDelta[FeynArts`Insert`ind__]^_?Positive^:=IndexDelta[FeynArts`Insert`ind]

for IndexDelta but there is nothing similar for SumOver. This is why I
set all SumOver to unity in the conjugated amplitude to avoid double
counting.

Hope this helps.

Cheers,
Vladyslav

Am 08.03.19 um 23:39 schrieb Vitaly Magerya:
> Hi, folks. If you’ll generate am amplitude involving a sum over quark
> flavors in FeynArts, e.g. photon -> q qbar:
>
> $LoadFeynArts = True; «FeynCalc`; topologies = CreateTopologies[0,
> 1 -> 2, ExcludeTopologies -> {Tadpoles}]; diagrams =
> InsertFields[topologies, {V[1]} -> {F[3], -F[3]}, InsertionLevel ->
> {Classes}, Model -> “SMQCD” ]; amplitude =
> FCFAConvert[CreateFeynAmp[diagrams], IncomingMomenta -> {q},
> OutgoingMomenta -> {k1, k2}, UndoChiralSplittings -> True,
> ChangeDimension -> d, List -> False, SMP -> True ]/.{MQU[_] -> 0,
> MQD[_] -> 0, SMP[“m_u”] -> 0}
>
> … then you’ll get these factors in the amplitude:
> SumOver[Index[Generation, 2], 3, External]
> SUNFDelta[SUNFIndex[Index[Generation, 2]],
> SUNFIndex[Index[Generation, 3]]]
>
> Now, trying to calculate the matrix element as:
> amplitude*ComplexConjugate[FCRenameDummyIndices[amplitude]] //
> SUNSimplify,
>
> … that factor is immediately turned into CA==SUNN. This would have
> made sense, except that this should be the number of generations,
> not colors. NF/2, maybe?
>
> A related observation: fermion loops imported from FeynArts don’t
> even have SUNFDelta’s related to generation indices at all, they only
> have a SumOver.
>
> So, my question is: how exactly do you deal with fermion flavor sums?
> I mean it’s easy to fix these two examples manually, but at e.g. 2
> loops, there are more elaborate combinations of SumOver and SUNFDelta
> that may appear. Should I try to untangle them manually?
>