DiracTrace
DiracTrace[exp]
is the head of Dirac traces. By default
the trace is not evaluated. The evaluation occurs only when the option
DiracTraceEvaluate
is set to True
. It is
recommended to use DiracSimplify
, which will automatically
evaluate all Dirac traces in the input expression.
See also
Overview, Contract, DiracEquation, DiracGamma, DiracGammaExpand, DiracTrick, FCGetDiracGammaScheme, FCSetDiracGammaScheme.
Examples
There is no automatic evaluation of Dirac traces
DiracTrace[GA[\[Mu], \[Nu]]]
tr(γˉμ.γˉν)
DiracTrace[GA[\[Mu], \[Nu], \[Rho], \[Sigma]]]
tr(γˉμ.γˉν.γˉρ.γˉσ)
You can either set the option DiracTraceEvaluate
to
True
or use DiracSimplify
.
DiracTrace[GA[\[Mu], \[Nu], \[Rho], \[Sigma]], DiracTraceEvaluate -> True]
4(gˉμσgˉνρ−gˉμρgˉνσ+gˉμνgˉρσ)
DiracSimplify[DiracTrace[GA[\[Mu], \[Nu], \[Rho], \[Sigma]]]]
4gˉμσgˉνρ−4gˉμρgˉνσ+4gˉμνgˉρσ
DiracTrace[GS[p, q, r, s]]
DiracSimplify[%]
tr((γˉ⋅p).(γˉ⋅q).(γˉ⋅r).(γˉ⋅s))
4(p⋅s)(q⋅r)−4(p⋅r)(q⋅s)+4(p⋅q)(r⋅s)
The old methods of evaluating traces by replacing
DiracTrace
with TR
are deprecated and should
not be used anymore. In particular, they are slower are less efficient
than using DiracSimplify
.
Traces involving γ5 or
chirality projectors in 4 dimensions
are also possible
DiracTrace[GA[\[Mu], \[Nu], \[Rho], \[Sigma], 5]]
DiracSimplify[%]
tr(γˉμ.γˉν.γˉρ.γˉσ.γˉ5)
−4iϵˉμνρσ
DiracTrace[GA[\[Mu], \[Nu], \[Rho], \[Sigma], \[Delta], \[Tau], 5]]
DiracSimplify[%]
tr(γˉμ.γˉν.γˉρ.γˉσ.γˉδ.γˉτ.γˉ5)
−4igˉδμϵˉνρστ−4igˉδτϵˉμνρσ−4igˉμτϵˉδνρσ−4igˉνρϵˉδμστ+4igˉνσϵˉδμρτ−4igˉρσϵˉδμντ
DiracTrace[GA[\[Mu], \[Nu], \[Rho], \[Sigma], \[Delta], \[Tau], 6]]
DiracSimplify[%]
tr(γˉμ.γˉν.γˉρ.γˉσ.γˉδ.γˉτ.γˉ6)
−2gˉδμgˉντgˉρσ+2gˉδμgˉνσgˉρτ−2gˉδμgˉνρgˉστ+2gˉδτgˉμσgˉνρ+2gˉδσgˉμτgˉνρ−2gˉδτgˉμρgˉνσ−2gˉδρgˉμτgˉνσ−2gˉδσgˉμρgˉντ+2gˉδρgˉμσgˉντ+2gˉδτgˉμνgˉρσ+2gˉδνgˉμτgˉρσ+2gˉδσgˉμνgˉρτ−2gˉδνgˉμσgˉρτ−2gˉδρgˉμνgˉστ+2gˉδνgˉμρgˉστ−2igˉδμϵˉνρστ−2igˉδτϵˉμνρσ−2igˉμτϵˉδνρσ−2igˉνρϵˉδμστ+2igˉνσϵˉδμρτ−2igˉρσϵˉδμντ
D-dimensional traces that do not
involve γ5 are unambiguous.
DiracTrace[(-GSD[q] + SMP["m_e"]) . GAD[\[Nu]] . (GSD[p - q] + SMP["m_e"]) . GAD[\[Mu]]]
DiracSimplify[%]
tr((me−γ⋅q).γν.(me+γ⋅(p−q)).γμ)
4me2gμν+4gμν(p⋅q)−4q2gμν−4pνqμ−4pμqν+8qμqν
Traces that contain γ5 in
D dimensions are scheme-dependent. The
default scheme used in FeynCalc is the naive dimension regularization
(NDR), where γ5 is assumed to
anticommute with all other Dirac matrices. However, chiral traces are
ambiguous in NDR, unless the trace contains an even number of γ5. This is why FeynCalc will leave
such traces unevaluated.
DiracTrace[GAD[\[Mu], \[Nu], \[Rho]] . GA[5] . GAD[\[Sigma], \[Delta], \[Tau]] . GA[5]]
DiracSimplify[%]
tr(γμ.γν.γρ.γˉ5.γσ.γδ.γτ.γˉ5)
−4gδτgμσgνρ−4gδσgμτgνρ+4gδμgνρgστ+4gδτgμρgνσ+4gδρgμτgνσ+4gδσgμρgντ−4gδρgμσgντ−4gδτgμνgρσ−4gδνgμτgρσ+4gδμgντgρσ−4gδσgμνgρτ+4gδνgμσgρτ−4gδμgνσgρτ+4gδρgμνgστ−4gδνgμρgστ
DiracTrace[GAD[\[Mu], \[Nu], \[Rho]] . GA[5] . GAD[\[Sigma], \[Delta], \[Tau]] . GA[7]]
DiracSimplify[%]
tr(γμ.γν.γρ.γˉ5.γσ.γδ.γτ.γˉ7)
−21tr(γμ.γν.γρ.γσ.γδ.γτ.γˉ5)+2gδτgμσgνρ+2gδσgμτgνρ−2gδτgμρgνσ−2gδρgμτgνσ−2gδσgμρgντ+2gδρgμσgντ+2gδτgμνgρσ+2gδνgμτgρσ−2gδμgντgρσ+2gδσgμνgρτ−2gδνgμσgρτ+2gδμgνσgρτ−2gδρgμνgστ+2gδνgμρgστ−2gδμgνρgστ
Over the years people invented many different schemes to deal with
γ5 in dimensional regularization.
Currently, only the t’Hooft-Veltman-Breitenlohner-Maison (BMHV)
prescription is fully supported in FeynCalc.
FCSetDiracGammaScheme["BMHV"];
DiracSimplify[DiracTrace[GAD[\[Mu], \[Nu], \[Rho]] . GA[5] . GAD[\[Sigma], \[Delta], \[Tau]] . GA[7]]]
4iϵˉνρστg^δμ+16g^ντg^ρσg^δμ−8gντg^ρσg^δμ−16g^νσg^ρτg^δμ+8gνσg^ρτg^δμ−8g^ντgρσg^δμ+4gντgρσg^δμ+8g^νσgρτg^δμ−4gνσgρτg^δμ+4gνρgστg^δμ−4iϵˉμρστg^δν+4iϵˉμνστg^δρ−2iϵˉνρστgδμ+2iϵˉμρστgδν−2iϵˉμνστgδρ+2iϵˉμνρτgδσ+2iϵˉμνρσgδτ−4iϵˉδνρτg^μσ+4iϵˉδνρσg^μτ+2iϵˉδρστgμν−2iϵˉδνστgμρ+2iϵˉδνρτgμσ−2iϵˉδνρσgμτ+4iϵˉδμρτg^νσ+16g^δρg^μτg^νσ−8gδρg^μτg^νσ+4gδτgμρg^νσ−8g^δρgμτg^νσ+4gδρgμτg^νσ−4iϵˉδμρσg^ντ−16g^δρg^μσg^ντ+8gδρg^μσg^ντ+4gδσgμρg^ντ+8g^δρgμσg^ντ−4gδρgμσg^ντ+2iϵˉδμστgνρ−4gδτg^μσgνρ−4gδσg^μτgνρ+2gδτgμσgνρ+2gδσgμτgνρ−2iϵˉδμρτgνσ−8g^δρg^μτgνσ+4gδρg^μτgνσ−2gδτgμρgνσ+4g^δρgμτgνσ−2gδρgμτgνσ+2iϵˉδμρσgντ+8g^δρg^μσgντ−4gδρg^μσgντ−2gδσgμρgντ−4g^δρgμσgντ+2gδρgμσgντ−4iϵˉδμντg^ρσ−16g^δνg^μτg^ρσ+8gδνg^μτg^ρσ−4gδτgμνg^ρσ+8g^δνgμτg^ρσ−4gδνgμτg^ρσ−8gδμg^ντg^ρσ+4gδμgντg^ρσ+4iϵˉδμνσg^ρτ+16g^δνg^μσg^ρτ−8gδνg^μσg^ρτ−4gδσgμνg^ρτ−8g^δνgμσg^ρτ+4gδνgμσg^ρτ+8gδμg^νσg^ρτ−4gδμgνσg^ρτ+2iϵˉδμντgρσ+8g^δνg^μτgρσ−4gδνg^μτgρσ+2gδτgμνgρσ−4g^δνgμτgρσ+2gδνgμτgρσ+4gδμg^ντgρσ−2gδμgντgρσ−2iϵˉδμνσgρτ−8g^δνg^μσgρτ+4gδνg^μσgρτ+2gδσgμνgρτ+4g^δνgμσgρτ−2gδνgμσgρτ−4gδμg^νσgρτ+2gδμgνσgρτ+2iϵˉδμνρgστ+4g^δρgμνgστ−2gδρgμνgστ−4g^δνgμρgστ+2gδνgμρgστ−2gδμgνρgστ
Keep in mind that the BMHV scheme violates axial Ward identities and
requires special model-dependent counter-terms to restore those.
Therefore, just setting FCSetDiracGammaScheme[“BMHV”] does not
automatically resolve all your troubles with γ5 in D-dimensions. The proper treatment of γ5 in dimensional regularization is an
intricate issue that cannot be boiled down to a simple and universal
recipe. FeynCalc merely carries out the algebraic operations that you
request, but it is still your task to ensure that what you do makes
sense.
Traces that are free of γ5 but
contain both 4- and D-dimensional Dirac matrices may appear in
calculations that use the BMHV prescription, but they do not make sense
in NDR. Therefore, their evaluation will be successful only if the
correct scheme is used.
FCSetDiracGammaScheme["NDR"];
DiracTrace[(-GSD[q] + SMP["m_e"]) . GA[\[Nu]] . (GS[p] - GSD[q] + SMP["m_e"]) . GA[\[Mu]]]
DiracSimplify[%]
tr((me−γ⋅q).γˉν.(γˉ⋅p+me−γ⋅q).γˉμ)

$Aborted
FCSetDiracGammaScheme["BMHV"];
ex = DiracSimplify[DiracTrace[(-GSD[q] + SMP["m_e"]) . GA[\[Nu]] . (GS[p] - GSD[q] + SMP["m_e"]) . GA[\[Mu]]] ]
4me2gˉμν+4gˉμν(p⋅q)−4q2gˉμν−4pνqμ−4pμqν+8qμqν
ex // FCE // StandardForm
(*-4 FV[p, \[Nu]] FV[q, \[Mu]] - 4 FV[p, \[Mu]] FV[q, \[Nu]] + 8 FV[q, \[Mu]] FV[q, \[Nu]] + 4 MT[\[Mu], \[Nu]] SMP["m_e"]^2 + 4 MT[\[Mu], \[Nu]] SP[p, q] - 4 MT[\[Mu], \[Nu]] SPD[q, q]*)
FCSetDiracGammaScheme["NDR"];
Notice that in this case the result contains 4- and D-dimensional tensors.
Traces involving γ5 in the
BMHV scheme are evaluated using West’s formula. It is possible to turn
it off by setting the option West
to False
,
but then the evaluation will require much more time.
FCSetDiracGammaScheme["BMHV"];
AbsoluteTiming[r1 = DiracSimplify[DiracTrace[GAD[\[Mu], \[Nu], \[Rho]] . GA[5] . GAD[\[Sigma], \[Delta], \[Tau]] . GA[7]]];]
{0.251861,Null}
AbsoluteTiming[r2 = DiracSimplify[DiracTrace[GAD[\[Mu], \[Nu], \[Rho]] . GA[5] . GAD[\[Sigma], \[Delta], \[Tau]] . GA[7],
West -> False]];]
{2.23117,Null}
True
FCSetDiracGammaScheme["NDR"];
ClearAll[r1, r2]
If you know that traces with one γ5 do not contribute to your final
result, use the new NDR-Discard scheme to put them to zero
FCSetDiracGammaScheme["NDR-Discard"];
DiracSimplify[DiracTrace[GAD[\[Mu], \[Nu], \[Rho]] . GA[5] . GAD[\[Sigma], \[Delta], \[Tau]] . GA[7]]]
2gδτgμσgνρ+2gδσgμτgνρ−2gδμgνρgστ−2gδτgμρgνσ−2gδρgμτgνσ−2gδσgμρgντ+2gδρgμσgντ+2gδτgμνgρσ+2gδνgμτgρσ−2gδμgντgρσ+2gδσgμνgρτ−2gδνgμσgρτ+2gδμgνσgρτ−2gδρgμνgστ+2gδνgμρgστ
FCSetDiracGammaScheme["NDR"];
Sorting of the matrices inside 4-dimensional traces helps to avoid some
spurious terms.
DiracTrace[GA[\[Mu], \[Nu], 5, \[Rho], \[Sigma], \[Tau], \[Kappa]], DiracTraceEvaluate -> True] -
DiracTrace[GA[\[Mu], \[Nu], \[Rho], \[Sigma], \[Tau], \[Kappa], 5],DiracTraceEvaluate -> True] // Expand
0
When the sorting is turned off via Sort
to
True
, one may obtain some spurious terms that vanish by
Schouten’s identity.
DiracTrace[GA[\[Mu], \[Nu], 5, \[Rho], \[Sigma], \[Tau], \[Kappa]], DiracTraceEvaluate -> True, Sort -> False] -
DiracTrace[GA[\[Mu], \[Nu], \[Rho], \[Sigma], \[Tau], \[Kappa], 5],DiracTraceEvaluate -> True, Sort -> False] // Expand
4igˉκμϵˉνρστ−4igˉκνϵˉμρστ−4igˉκσϵˉμνρτ+4igˉκτϵˉμνρσ+4igˉμρϵˉκνστ−4igˉνρϵˉκμστ+4igˉρσϵˉκμντ−4igˉρτϵˉκμνσ
The trace of the unit matrix in the Dirac space is fixed to 4, which
is the standard choice in dimensional regularization.
DiracTrace[1]
DiracSimplify[%]
tr(1)
4
If, for some reason, this value must be modified, one can do so using
the option TraceOfOne
.
DiracTrace[1, TraceOfOne -> D, DiracTraceEvaluate -> True]
D
DiracSimplify[DiracTrace[GAD[\[Mu], \[Nu]], TraceOfOne -> D]]
Dgμν
Since FeynCalc 9.3 it is also possible to compute traces of Dirac
matrices with Cartesian or temporal indices. However, the support of
nonrelativistic calculations is a very new feature, so that things may
not work as smooth as they do for manifestly Lorentz covariant
expressions.
DiracTrace[CGAD[i, j, k, l]]
DiracSimplify[%]
tr(γi.γj.γk.γl)
4δilδjk−4δikδjl+4δijδkl
DiracTrace[CGA[i, j, k, l] . GA[6] . CGA[m, n]]
DiracSimplify[%]
tr(γi.γj.γk.γl.γˉ6.γm.γn)
−2δˉinδˉjmδˉkl+2δˉimδˉjnδˉkl−2δˉijδˉklδˉmn+2δˉinδˉjlδˉkm−2δˉilδˉjnδˉkm−2δˉimδˉjlδˉkn+2δˉilδˉjmδˉkn−2δˉinδˉjkδˉlm+2δˉikδˉjnδˉlm−2δˉijδˉknδˉlm+2δˉimδˉjkδˉln−2δˉikδˉjmδˉln+2δˉijδˉkmδˉln−2δˉilδˉjkδˉmn+2δˉikδˉjlδˉmn