Date: 12/23/14-09:31:48 PM Z

Hi,

it is not a bug. The thing is that OneLoop does not know how your
external momenta are related to each other, which prevents certain
simplifications from happening. Here is a very simple example. Consider
the following term that might occur in your amplitude after taking the
limit D->4

(GA[p1+k]-m2).SpinorU[p2,m2]

For a human it is clear that this is zero by the equation of motion.
However, without knowing that p1+k===p2, DiracSimplify cannot put this
to zero. For this reason it is useful to "power cylce" through momentum
conservation to ensure that all possible simplifications have indeed
been applied.

1) sp[p1, Polarization[k]] should probably be p1epk not p2epk
2) Do not set sp[p1, Polarization[k]] -> p1epk and sp[p2,
Polarization[k]] -> p2epk, since this prevents simplifications that
occur when you insert p2->p1+k and p1->p2-k
3) It is useful to get rid of StandardMatrixElement here.

dm[mu_] := DiracMatrix[mu, Dimension -> D]
ds[p_] := DiracSlash[p]
gA := I (AL dm[7] +
AR dm[6])(*lepton scalar fermion Yukawa vertex*)
gB :=
I (BL dm[7] + BR dm[6])(*fermion scalar lepton Yukawa vertex*)

sp[p_, q_] := ScalarProduct[p, q]

onshell = {sp[p1, p1] -> m1^2, sp[p2, p2] -> m2^2, sp[k, k] -> 0,
sp[k, p1] -> (m2^2 - m1^2)/2, sp[k, p2] -> (m2^2 - m1^2)/2,
sp[p1, p2] -> (m1^2 + m2^2)/2}

div = {B0[m1^2, mf^2, ms^2] -> Div, B0[m2^2, mf^2, ms^2] -> Div,
B0[0, mf^2, ms^2] -> Div, B0[0, mf^2, mf^2] -> Div,
B0[0, ms^2, ms^2] -> Div};

num1 = SpinorUBar[p1, m1].gA.(ds[q + p2 - k] + mf).ds[
Polarization[k]].(ds[q + p2] + mf).gB.SpinorU[p2, m2] // FCI;
amp1 = num1 FeynAmpDenominator[PropagatorDenominator[q + p2 - k, mf],
PropagatorDenominator[q + p2, mf], PropagatorDenominator[q, ms]]
num2 = SpinorUBar[p1,
m1].gA.(ds[q + p2 - k] + mf).gB.(ds[p1] + m2).ds[
Polarization[k]].SpinorU[p2, m2] // FCI; amp2 =
num2 FeynAmpDenominator[PropagatorDenominator[q + p1, mf],
PropagatorDenominator[p2 - k, m2], PropagatorDenominator[q, ms]]
num3 = SpinorUBar[p1, m1].ds[
Polarization[k]].(ds[p2] + m1).gA.(ds[q + p2] + mf).gB.SpinorU[
p2, m2] // FCI;
amp3 = num3 FeynAmpDenominator[PropagatorDenominator[p2, m1],
PropagatorDenominator[q + p2, mf], PropagatorDenominator[q, ms]]

SetOptions[OneLoop, Dimension -> D];
ans = -I/Pi^2 (OneLoop[q, amp1 + amp2 + amp3] /. onshell //
PaVeReduce) /. div // Simplify;
test = Coefficient[ans, Div] // Simplify

As you said, the result is not zero. So let us power cycle through the
momentum conservation p2===p1+k

test // ReplaceAll[#, StandardMatrixElement[x_] :> x] & //
ReplaceAll[#, k -> p2 - p1] & // MomentumExpand //
DiracSimplify //
ReplaceAll[#, StandardMatrixElement[0] -> 0] & //
ReplaceAll[#, p2 -> p1 + k] & // MomentumExpand //
DiracSimplify //
ReplaceAll[#, StandardMatrixElement[0] -> 0] & //
ReplaceAll[#, p1 -> p2 - k] & // MomentumExpand //
DiracSimplify // Simplify

and the result is zero of course. Obviously, the momenta routing
that you chose in your fists e-mail was more convenient to obtain
all the cancellations without much effort. The other routing is less
convenient, so that a bit of additional work is required here.

At the end, the result of course does not depend on the way how momenta
are routed, but a particular choice can make computations simpler.

P.S. Instead of defining dm[mu_] := DiracMatrix[mu, Dimension -> D] and
ds[p_] := DiracSlash[p] you could just use GAD[mu] and GSD[p], see
<https://github.com/FeynCalc/feyncalc/wiki/FAQ#fci_fce>

Cheers,

On 21/12/14 17:32, Lingxiao Xu wrote:
> In my previous message, I've made two small mistakes.
> 1)I should use PaVeReduce before "div" substitution, namely
> ans = -I/Pi^2 (OneLoop[q, amp1 + amp2 + amp3] /. onshell //
> PaVeReduce) /. div // Simplify;
> 2)further need to define sp[p1, p2] -> (m1^2 + m2^2)/2 in "onshell".
> then the result is zero.
>
> However, I just made some modification in the amplitude with the relation p2=p1+k, then the result is not zero.
>
> In[2]:= (*some shorthands*)
> dm[mu_] := DiracMatrix[mu, Dimension -> D]
> ds[p_] := DiracSlash[p]
> gA := I (AL dm[7] + AR dm[6])(*lepton scalar fermion Yukawa vertex*)
> gB := I (BL dm[7] + BR dm[6])(*fermion scalar lepton Yukawa vertex*)
> sp[p_, q_] := ScalarProduct[p, q]
>
> In[7]:= onshell = {sp[p1, p1] -> m1^2, sp[p2, p2] -> m2^2,
> sp[k, k] -> 0, sp[k, p1] -> (m2^2 - m1^2)/2,
> sp[k, p2] -> (m2^2 - m1^2)/2, sp[p1, p2] -> (m1^2 + m2^2)/2,
> sp[p1, Polarization[k]] -> p2epk, sp[p2, Polarization[k]] -> p2epk};
>
> In[8]:= div = {B0[m1^2, mf^2, ms^2] -> Div,
> B0[m2^2, mf^2, ms^2] -> Div, B0[0, mf^2, ms^2] -> Div,
> B0[0, mf^2, mf^2] -> Div, B0[0, ms^2, ms^2] -> Div};
>
> In[9]:= num1 =
> SpinorUBar[p1, m1].gA.(ds[q + p2 - k] + mf).ds[
> Polarization[k]].(ds[q + p2] + mf).gB.SpinorU[p2, m2] // FCI;
> amp1 = num1 FeynAmpDenominator[PropagatorDenominator[q + p2 - k, mf],
> PropagatorDenominator[q + p2, mf], PropagatorDenominator[q, ms]]
>
> num2 = SpinorUBar[p1,
> m1].gA.(ds[q + p2 - k] + mf).gB.(ds[p1] + m2).ds[
> Polarization[k]].SpinorU[p2, m2] // FCI; amp2 =
> num2 FeynAmpDenominator[PropagatorDenominator[q + p1, mf],
> PropagatorDenominator[p2 - k, m2], PropagatorDenominator[q, ms]]
>
> num3 = SpinorUBar[p1, m1].ds[
> Polarization[k]].(ds[p2] + m1).gA.(ds[q + p2] + mf).gB.SpinorU[
> p2, m2] // FCI;
> amp3 = num3 FeynAmpDenominator[PropagatorDenominator[p2, m1],
> PropagatorDenominator[q + p2, mf], PropagatorDenominator[q, ms]]
> SetOptions[OneLoop, Dimension -> D];
> ans = -I/Pi^2 (OneLoop[q, amp1 + amp2 + amp3] /. onshell //
> PaVeReduce) /. div // Simplify;
> test = Coefficient[ans, Div] // Simplify
>
> Out[10]= \[CurlyPhi](p1,m1).(I (AL \[Gamma]^7+AR \[Gamma]^6)).(\[Gamma]\[CenterDot](-k+p2+q)+mf).(\[Gamma]\[CenterDot]\[CurlyEpsilon](k)).(mf+\[Gamma]\[CenterDot](p2+q)).(I (BL \[Gamma]^7+BR \[Gamma]^6)).\[CurlyPhi](p2,m2)/((-k+p2+q)^2-mf^2).((p2+q)^2-mf^2).(q^2-ms^2)
>
> Out[11]= \[CurlyPhi](p1,m1).(I (AL \[Gamma]^7+AR \[Gamma]^6)).(\[Gamma]\[CenterDot](-k+p2+q)+mf).(I (BL \[Gamma]^7+BR \[Gamma]^6)).(m2+\[Gamma]\[CenterDot]p1).(\[Gamma]\[CenterDot]\[CurlyEpsilon](k)).\[CurlyPhi](p2,m2)/((p1+q)^2-mf^2).((p2-k)^2-m2^2).(q^2-ms^2)
>
> Out[13]= \[CurlyPhi](p1,m1).(\[Gamma]\[CenterDot]\[CurlyEpsilon](k)).(m1+\[Gamma]\[CenterDot]p2).(I (AL \[Gamma]^7+AR \[Gamma]^6)).(mf+\[Gamma]\[CenterDot](p2+q)).(I (BL \[Gamma]^7+BR \[Gamma]^6)).\[CurlyPhi](p2,m2)/(p2^2-m1^2).((p2+q)^2-mf^2).(q^2-ms^2)
>
> Out[16]= (1/(m1^2-m2^2))(2 (AR BL m1-AL BR m2) \[LeftDoubleBracketingBar]p2epk \[CurlyPhi](p1,m1).\[Gamma]^7.\[CurlyPhi](p2,m2)\[RightDoubleBracketingBar]+2 (AL BR m1-AR BL m2) \[LeftDoubleBracketingBar]p2epk \[CurlyPhi](p1,m1).\[Gamma]^6.\[CurlyPhi](p2,m2)\[RightDoubleBracketingBar]-AL BR m1^2 \[LeftDoubleBracketingBar]\[CurlyPhi](p1,m1).(\[Gamma]\[CenterDot]\[CurlyEpsilon](k)).\[Gamma]^6.\[CurlyPhi](p2,m2)\[RightDoubleBracketingBar]+AL BR m2^2 \[LeftDoubleBracketingBar]\[CurlyPhi](p1,m1).(\[Gamma]\[CenterDot]\[CurlyEpsilon](k)).\[Gamma]^6.\[CurlyPhi](p2,m2)\[RightDoubleBracketingBar]+AL BR m2 \[LeftDoubleBracketingBar]\[CurlyPhi](p1,m1).(\[Gamma]\[CenterDot]k).(\[Gamma]\[CenterDot]\[CurlyEpsilon](k)).\[Gamma]^7.\[CurlyPhi](p2,m2)\[RightDoubleBracketingBar]-AL BR m1 \[LeftDoubleBracketingBar]\[CurlyPhi](p1,m1).(\[Gamma]\[CenterDot]k).(\[Gamma]\[CenterDot]\[CurlyEpsilon](k)).\[Gamma]^6.\[CurlyPhi](p2,m2)\[RightDoubleBracketingBar]-AR BL m1^2 \[LeftDoubleBracketingBar]\[Curl
yP
> hi](p1,m1).(\[Gamma]\[CenterDot]\[CurlyEpsilon](k)).\[Gamma]^7.\[CurlyPhi](p2,m2)\[RightDoubleBracketingBar]+AR BL m2^2 \[LeftDoubleBracketingBar]\[CurlyPhi](p1,m1).(\[Gamma]\[CenterDot]\[CurlyEpsilon](k)).\[Gamma]^7.\[CurlyPhi](p2,m2)\[RightDoubleBracketingBar]-AR BL m1 \[LeftDoubleBracketingBar]\[CurlyPhi](p1,m1).(\[Gamma]\[CenterDot]k).(\[Gamma]\[CenterDot]\[CurlyEpsilon](k)).\[Gamma]^7.\[CurlyPhi](p2,m2)\[RightDoubleBracketingBar]+AR BL m2 \[LeftDoubleBracketingBar]\[CurlyPhi](p1,m1).(\[Gamma]\[CenterDot]k).(\[Gamma]\[CenterDot]\[CurlyEpsilon](k)).\[Gamma]^6.\[CurlyPhi](p2,m2)\[RightDoubleBracketingBar])
>
>
> Regards,
> Lingxiao
>

This archive was generated by hypermail 2b29 : 02/17/19-09:20:01 AM Z CET