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).γˉμ)
![1nywe2zsmni95](img/1nywe2zsmni95.svg)
$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.252561,Null}
AbsoluteTiming[r2 = DiracSimplify[DiracTrace[GAD[\[Mu], \[Nu], \[Rho]] . GA[5] . GAD[\[Sigma], \[Delta], \[Tau]] . GA[7],
West -> False]];]
{2.20889,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