FeynCalc manual (development version)

ExpandScalarProduct

ExpandScalarProduct[expr] expands scalar products of sums of momenta in expr.

ExpandScalarProduct does not use Expand on expr.

See also

Overview, Calc, MomentumExpand, MomentumCombine, FCVariable

Examples

SP[p1 + p2 + p3, p4 + p5 + p6] 
 
% // ExpandScalarProduct

(p1+p2+p3)(p4+p5+p6)(\overline{\text{p1}}+\overline{\text{p2}}+\overline{\text{p3}})\cdot (\overline{\text{p4}}+\overline{\text{p5}}+\overline{\text{p6}})

p1p4+p1p5+p1p6+p2p4+p2p5+p2p6+p3p4+p3p5+p3p6\overline{\text{p1}}\cdot \overline{\text{p4}}+\overline{\text{p1}}\cdot \overline{\text{p5}}+\overline{\text{p1}}\cdot \overline{\text{p6}}+\overline{\text{p2}}\cdot \overline{\text{p4}}+\overline{\text{p2}}\cdot \overline{\text{p5}}+\overline{\text{p2}}\cdot \overline{\text{p6}}+\overline{\text{p3}}\cdot \overline{\text{p4}}+\overline{\text{p3}}\cdot \overline{\text{p5}}+\overline{\text{p3}}\cdot \overline{\text{p6}}

SP[p, p - q] 
 
ExpandScalarProduct[%]

p(pq)\overline{p}\cdot (\overline{p}-\overline{q})

p2pq\overline{p}^2-\overline{p}\cdot \overline{q}

FV[p - q, \[Mu]] 
 
ExpandScalarProduct[%]

(pq)μ\left(\overline{p}-\overline{q}\right)^{\mu }

pμqμ\overline{p}^{\mu }-\overline{q}^{\mu }

SPD[p - q, q - r] 
 
ExpandScalarProduct[%]

(pq)(qr)(p-q)\cdot (q-r)

pqpr+qrq2p\cdot q-p\cdot r+q\cdot r-q^2

Using the option Momentum one can limit the expansion to particular momenta

SP[p1 + p2 + p3, p4 + p5 + p6] 
 
ExpandScalarProduct[%, Momentum -> {p1}]

(p1+p2+p3)(p4+p5+p6)(\overline{\text{p1}}+\overline{\text{p2}}+\overline{\text{p3}})\cdot (\overline{\text{p4}}+\overline{\text{p5}}+\overline{\text{p6}})

p1(p4+p5+p6)+(p2+p3)(p4+p5+p6)\overline{\text{p1}}\cdot (\overline{\text{p4}}+\overline{\text{p5}}+\overline{\text{p6}})+(\overline{\text{p2}}+\overline{\text{p3}})\cdot (\overline{\text{p4}}+\overline{\text{p5}}+\overline{\text{p6}})

By default ExpandScalarProduct does not apply linearity to Levi-Civita tensors

LC[\[Mu]][p1 + p2, p3 + p4, p5 + p6] 
 
ExpandScalarProduct[%]

ϵˉμp1+p2  p3+p4  p5+p6\bar{\epsilon }^{\mu \overline{\text{p1}}+\overline{\text{p2}}\;\overline{\text{p3}}+\overline{\text{p4}}\;\overline{\text{p5}}+\overline{\text{p6}}}

ϵˉμp1+p2  p3+p4  p5+p6\bar{\epsilon }^{\mu \overline{\text{p1}}+\overline{\text{p2}}\;\overline{\text{p3}}+\overline{\text{p4}}\;\overline{\text{p5}}+\overline{\text{p6}}}

Using the option EpsEvaluate takes care of that

LC[\[Mu]][p1 + p2, p3 + p4, p5 + p6] 
 
ExpandScalarProduct[%, EpsEvaluate -> True]

ϵˉμp1+p2  p3+p4  p5+p6\bar{\epsilon }^{\mu \overline{\text{p1}}+\overline{\text{p2}}\;\overline{\text{p3}}+\overline{\text{p4}}\;\overline{\text{p5}}+\overline{\text{p6}}}

ϵˉμp1  p3  p5+ϵˉμp1  p3  p6+ϵˉμp1  p4  p5+ϵˉμp1  p4  p6+ϵˉμp2  p3  p5+ϵˉμp2  p3  p6+ϵˉμp2  p4  p5+ϵˉμp2  p4  p6\bar{\epsilon }^{\mu \overline{\text{p1}}\;\overline{\text{p3}}\;\overline{\text{p5}}}+\bar{\epsilon }^{\mu \overline{\text{p1}}\;\overline{\text{p3}}\;\overline{\text{p6}}}+\bar{\epsilon }^{\mu \overline{\text{p1}}\;\overline{\text{p4}}\;\overline{\text{p5}}}+\bar{\epsilon }^{\mu \overline{\text{p1}}\;\overline{\text{p4}}\;\overline{\text{p6}}}+\bar{\epsilon }^{\mu \overline{\text{p2}}\;\overline{\text{p3}}\;\overline{\text{p5}}}+\bar{\epsilon }^{\mu \overline{\text{p2}}\;\overline{\text{p3}}\;\overline{\text{p6}}}+\bar{\epsilon }^{\mu \overline{\text{p2}}\;\overline{\text{p4}}\;\overline{\text{p5}}}+\bar{\epsilon }^{\mu \overline{\text{p2}}\;\overline{\text{p4}}\;\overline{\text{p6}}}

One can use the options EpsEvaluate and Momentum together

LC[\[Mu]][p1 + p2, p3 + p4, p5 + p6] 
 
ExpandScalarProduct[%, EpsEvaluate -> True, Momentum -> {p1}]

ϵˉμp1+p2  p3+p4  p5+p6\bar{\epsilon }^{\mu \overline{\text{p1}}+\overline{\text{p2}}\;\overline{\text{p3}}+\overline{\text{p4}}\;\overline{\text{p5}}+\overline{\text{p6}}}

ϵˉμp1  p3+p4  p5+p6+ϵˉμp2  p3+p4  p5+p6\bar{\epsilon }^{\mu \overline{\text{p1}}\;\overline{\text{p3}}+\overline{\text{p4}}\;\overline{\text{p5}}+\overline{\text{p6}}}+\bar{\epsilon }^{\mu \overline{\text{p2}}\;\overline{\text{p3}}+\overline{\text{p4}}\;\overline{\text{p5}}+\overline{\text{p6}}}

Of course, the function is also applicable to Cartesian quantities

CSP[p1 + p2, p3 + p4] 
 
ExpandScalarProduct[%]

(p1+p2)(p3+p4)(\overline{\text{p1}}+\overline{\text{p2}})\cdot (\overline{\text{p3}}+\overline{\text{p4}})

p1p3+p1p4+p2p3+p2p4\overline{\text{p1}}\cdot \overline{\text{p3}}+\overline{\text{p1}}\cdot \overline{\text{p4}}+\overline{\text{p2}}\cdot \overline{\text{p3}}+\overline{\text{p2}}\cdot \overline{\text{p4}}

CLC[][p1 + p2, p3 + p4, p5 + p6] 
 
ExpandScalarProduct[%, EpsEvaluate -> True]

ϵˉp1+p2  p3+p4  p5+p6\bar{\epsilon }^{\overline{\text{p1}}+\overline{\text{p2}}\;\overline{\text{p3}}+\overline{\text{p4}}\;\overline{\text{p5}}+\overline{\text{p6}}}

ϵˉp1  p3  p5+ϵˉp1  p3  p6+ϵˉp1  p4  p5+ϵˉp1  p4  p6+ϵˉp2  p3  p5+ϵˉp2  p3  p6+ϵˉp2  p4  p5+ϵˉp2  p4  p6\bar{\epsilon }^{\overline{\text{p1}}\;\overline{\text{p3}}\;\overline{\text{p5}}}+\bar{\epsilon }^{\overline{\text{p1}}\;\overline{\text{p3}}\;\overline{\text{p6}}}+\bar{\epsilon }^{\overline{\text{p1}}\;\overline{\text{p4}}\;\overline{\text{p5}}}+\bar{\epsilon }^{\overline{\text{p1}}\;\overline{\text{p4}}\;\overline{\text{p6}}}+\bar{\epsilon }^{\overline{\text{p2}}\;\overline{\text{p3}}\;\overline{\text{p5}}}+\bar{\epsilon }^{\overline{\text{p2}}\;\overline{\text{p3}}\;\overline{\text{p6}}}+\bar{\epsilon }^{\overline{\text{p2}}\;\overline{\text{p4}}\;\overline{\text{p5}}}+\bar{\epsilon }^{\overline{\text{p2}}\;\overline{\text{p4}}\;\overline{\text{p6}}}

Sometimes one would like to have external momenta multiplied by symbolic parameters in the propagators. In this case one should first declare the corresponding variables to be of FCVariable type

DataType[a, FCVariable] = True;
DataType[b, FCVariable] = True;
ExpandScalarProduct[SP[P, Q] /. P -> a P1 + b P2] 
 
StandardForm[%] 
  
 

a(P1Q)+b(P2Q)a \left(\overline{\text{P1}}\cdot \overline{Q}\right)+b \left(\overline{\text{P2}}\cdot \overline{Q}\right)

(*a Pair[Momentum[P1], Momentum[Q]] + b Pair[Momentum[P2], Momentum[Q]]*)