FCVariable
is a data type. E.g. DataType[z, FCVariable] = True
.
Overview, ExpandScalarProduct, DataType.
If we want to introduce constants c1
and c2
, the naive way doesn’t lead to the desired result
[c1 p1 + c2 p2, q] // ExpandScalarProduct SPD
The solution is to declare c1
and c2
as FCVariable
so that FeynCalc can distinguish them from the 4-momenta
[c1, FCVariable] = True;
DataType
[c2, FCVariable] = True; DataType
[c1 p1 + c2 p2, q] // ExpandScalarProduct SPD
This works also for propagator denominators and matrices
[SFAD[{q + c1 p1, m}]] FCI
[SFAD[{q + c1 p1, m}]] // StandardForm
FCI
(*FeynAmpDenominator[StandardPropagatorDenominator[c1 Momentum[p1, D] + Momentum[q, D], 0, -m, {1, 1}]]*)
[\[Mu]] . (GSD[c1 p] + m) . GAD[\[Nu]] // FCI GAD
[\[Mu]] . (GSD[c1 p] + m) . GAD[\[Nu]] // FCI // StandardForm
GAD
(*DiracGamma[LorentzIndex[\[Mu], D], D] . (m + c1 DiracGamma[Momentum[p, D], D]) . DiracGamma[LorentzIndex[\[Nu], D], D]*)
[i] . CSIS[c1 p] . CSI[j] // FCI CSI
[i] . CSIS[c1 p] . CSI[j] // FCI // StandardForm
CSI
(*PauliSigma[CartesianIndex[i]] . (c1 PauliSigma[CartesianMomentum[p]]) . PauliSigma[CartesianIndex[j]]*)
To undo the declarations use
[c1, FCVariable] = False
DataType
[c2, FCVariable] = False DataType