The internal representation (FeynCalcIntenral
or
FCI
) is how FeynCalc internally “sees” the objects. For
example, a -dimensional -vector is represented by
[LorentzIndex[\[Mu]], Momentum[p]] Pair
Pair is one of the most basic FeynCalc objects. Depending on its arguments, it can represent a -vector, a metric tensor
[LorentzIndex[\[Mu]], LorentzIndex[\[Nu]]] Pair
or a scalar product of two 4-vectors
[Momentum[p], Momentum[q]] Pair
Another essential object is DiracGamma
that is used to
represent Dirac matrices. An uncontracted Dirac matrix is
[LorentzIndex[\[Mu]]] DiracGamma
and for a Feynman slash we use
[Momentum[p]] DiracGamma
The Levi-Civita-Tensor is
[LorentzIndex[\[Mu]], LorentzIndex[\[Nu]], LorentzIndex[\[Rho]], LorentzIndex[\[Sigma]]] Eps
or, when contracted with -momenta
[Momentum[p1], Momentum[p2], Momentum[q1], Momentum[q2]] Eps
This notation (momenta in the index slots) is also used in many other tools (e.g. FORM). The advantage is, that we do not need to canonicalize the indices of the Levi-Civita-Tensor, e.g. to ensure that
= Eps[LorentzIndex[\[Mu]], Momentum[p2], Momentum[q1], Momentum[q2]] Pair[LorentzIndex[\[Mu]], Momentum[p1]] -
diff [LorentzIndex[\[Nu]], Momentum[p2], Momentum[q1], Momentum[q2]] Pair[LorentzIndex[\[Nu]], Momentum[p1]] Eps
// Contract diff
is zero.
The internal representation is useful for the internal programming
FeynCalc, but obviously too cumbersome for the user input. This is why
FeynCalc also has an external representation
(FeynCalcExternal
or FCE
), that is concise and
convenient.
Let us start with the -vector. In
the FCE-notation it is just FV
(“FourVector”)
[p, \[Mu]] FV
It is not hard to guess that the scalar product is
SP
[p, q] SP
while for the metric tensor we write MT
[\[Mu], \[Nu]] MT
To input a Dirac matrix or a Feynman slash, use GA
or
GS
respectively
[\[Mu]] GA
[p] GS
The Levi-Civita tensor is LC
[\[Mu], \[Nu], \[Rho], \[Sigma]] LC
The fully contracted form is entered via
[][p1, p2, q1, q2] LC
It is also possible to enter a mixed form
[\[Mu]][p1, p2, q] LC
[\[Mu], \[Nu]][p1, p2] LC
To convert between the two representations we use the functions
FCI
and FCE
, which are shortcuts for
FeynCalcInternal
and FeynCalcExternal
. One
cannot distinguish between the notations using the typesetting,
i.e. when we see a typeset object in the TraditionalForm
,
we cannot really tell if it is in the FCI
or
FCE
notation.
= FV[p, \[Mu]]
ex1 = Pair[Momentum[p], LorentzIndex[\[Mu]]] ex2
However, we can always use StandardForm
to see the
difference
// StandardForm
ex1 // StandardForm
ex2
(*FV[p, \[Mu]]*)
(*Pair[LorentzIndex[\[Mu]], Momentum[p]]*)
All FeynCalc functions that are meant for users will automatically
convert the user input in the FCE
notation into the
FCI
notation. You do not have to do it by yourself.
On the other hand, virtually all FeynCalc functions produce their
output in the FCI
form. So when you have an expression that
was obtained from FeynCalc and want to apply some replacement rules to
it, we have to use the FCI
form in the rule
= Pair[Momentum[p], Momentum[q]] ex
No surprise that following does not work
/. SP[p, q] -> 1 ex
But if we wrap the r.h.s of the rule with FCI
, then
everything is fine
/. FCI[SP[p, q]] -> 1 ex