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
\text{c1} \;\text{p1}\cdot q+\text{c2} \;\text{p2}\cdot q
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
\text{c1} (\text{p1}\cdot q)+\text{c2} (\text{p2}\cdot q)
This works also for propagator denominators and matrices
[SFAD[{q + c1 p1, m}]] FCI
\frac{1}{((\text{c1} \;\text{p1}+q)^2-m+i \eta )}
[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
\gamma ^{\mu }.(\text{c1} \gamma \cdot p+m).\gamma ^{\nu }
[\[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
\overline{\sigma }^i.\left(\text{c1} \overline{\sigma }\cdot \overline{p}\right).\overline{\sigma }^j
[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
\text{False}
\text{False}