•Numerics

endres = CheckF[{lowestOrder1, poly, cts0, cts1, cts, logsFull0, logsFull1, logsFull, jbarsfull, cTerms, dTerms}, "PiPiEMFullResult"] /. fren ;

endres1 = endres[[{1, 5, 2, 8, 9, 10, 11}]] ; (* {lowestOrder, cts, poly, logsFull, jbarsfull, cTerms, dTerms} *)

strongParts = Expand[(endres1 // ChargedMassesEliminate) /. fren] /. CouplingConstant[QED[1], ___] :> 0 // Simplify ;

(* strongParts = ReplacePart[strongParts, strongParts[[1]] /. PionZero -> PionPlus, 1] ; *)

Terms that diverge at threshold:

thdivTerms = (Select[Expand[Apart[#]], (Limit[(MandelstamS - 4 ParticleMass[PionPlus, RenormalizationState[1]]^2) * # /. LeutwylerJBar[a__] :> (LeutwylerJBar[a] /. MandelstamS -> s), MandelstamS -> 4 ParticleMass[PionPlus, RenormalizationState[1]]^2] =!= 0) &]) & /@ (Expand[Apart[#]] & /@ endres1) // Simplify ;

Terms that don't diverge at threshold:

finTerms = Simplify /@ Expand[endres1 - thdivTerms (* *) - strongParts] ;

ampaPN[s_, t_, u_] := 1/(32 π) ((Expand /@ ((finTerms // NeutralMassesEliminate) /. fren)) /. eNumDrop) /. {LeutwylerJBar[a__, b___Rule] :> [a, ExplicitLeutwylerSigma -> True, LeutwylerJBarEvaluation -> "subthreshold", b]} /. {MandelstamS -> s, MandelstamT -> t, MandelstamU -> u} /. {Log[a_] :> log[a /. ParticleMass[Vector[1], ___] -> m], C0[a_, b_, c_, d___] :> -C0[Sequence @@ ({a, c, b, d} /. ParticleMass[Vector[1], ___] -> m)], D0[a__] :> D0[Sequence @@ ({a} /. ParticleMass[Vector[1], ___] -> m)]} /. ParticleMass[Vector[1], ___] -> 0 /. log -> Log ;

If[ValueQ[lt] =!= True, lt = Install["LoopTools"]]

LinkObject[LoopTools, 2, 2]

Partial waves.

ampaPNL[s_][l_] := (tmp = (1/2 nIntegrate[(# /. {MandelstamS -> s, MandelstamT -> tofsz[s, z, mPip, mPip], MandelstamU -> 4 mPip^2 - s - tofsz[s, z, mPip, mPip]}) LegendreP[l, z] (* /. s -> 4 mPip^2 *) //. numrules /. Log[m^2] :> 0 /. m -> 0, {z, -1, 1}] /. nIntegrate -> NIntegrate) & /@ Take[ampaPN[MandelstamS, MandelstamT, MandelstamU], {1, -1}] ; Join[Take[tmp, {1, 3}], Take[tmp, {4, 7}] /. nIntegrate -> NIntegrate]) ;

Strong parts.

ampaPNs[s_, t_, u_] := 1/(32 π) (strongParts) /. {LeutwylerJBar[a__, b___Rule] :> [a, ExplicitLeutwylerSigma -> True, LeutwylerJBarEvaluation -> "subthreshold", b]} /. {MandelstamS -> s, MandelstamT -> t, MandelstamU -> u} /. {Log[a_] :> log[a /. ParticleMass[Vector[1], ___] -> m], C0[a__] :> -C0[Sequence @@ ({a, c, b, d} /. ParticleMass[Vector[1], ___] -> m)], D0[a__] :> D0[Sequence @@ ({a} /. ParticleMass[Vector[1], ___] -> m)]} /. ParticleMass[Vector[1], ___] -> 0 (* //. numrules *) /. log -> Log ;

Partial waves.

ampaPNLs[s_][l_] := (tmp = (1/2 nIntegrate[(# /. {MandelstamS -> s, MandelstamT -> tofsz[s, z, mPip, mPip], MandelstamU -> 4 mPip^2 - s - tofsz[s, z, mPip, mPip]}) LegendreP[l, z] (* /. s -> 4 mPip^2 *) //. numrules /. Log[m^2] :> 0 /. m -> 0, {z, -1, 1}]) & /@ Take[ampaPNs[MandelstamS, MandelstamT, MandelstamU], {1, -1}] ; Join[Take[tmp, {1, 3}] /. nIntegrate -> Integrate, Take[tmp, {4, 5}] /. nIntegrate -> NIntegrate, {0, 0}]) ;

The C _ 0 terms diverge at threshold.

Plot[ampaPNL[s][0][[6]] // Re, {s, 3 mPip^2 //. numrules, 5 mPip^2 //. numrules}] ;

•Evaluation of the C _ 0terms

c0terms = List @@ (Simplify /@ Collect[1/(32 π) ((Expand /@ ((finTerms // NeutralMassesEliminate) /. fren)) /. eNumDrop)[[6]] /. CouplingConstant[ChPTVirtualPhotons2[2], RenormalizationState[0]] -> CouplingConstant[ChPTVirtualPhotons2[2], RenormalizationState[1]] /. {Log[a_] :> log[a /. ParticleMass[Vector[1], ___] -> m], C0[a_, b_, c_, d___] :> C0[Sequence @@ ({a, c, b, d} /. ParticleMass[Vector[1], ___] -> m)], D0[a__] :> D0[Sequence @@ ({a} /. ParticleMass[Vector[1], ___] -> m)]} /. log -> Log // po, _C0])

{(C _ 0  ( (m _ π^+^(ó  r  ))^2 ,  (m _ π^+^(ó  r  ))^2 ,  s ,  (m _ π^+^(ó  r  ))^2 ,  m^2 ,  (m _ π^+^(ó  r  ))^2 ) (e^(  ))^2 (s - 2 (m _ π^+^(ó  r  ))^2) (u - 2 (m _ π^+^(ó  r  ))^2))/(128 π^3 (f _ π^(ó  r  ))^2), (C _ 0  ( (m _ π^+^(ó  r  ))^2 ,  (m _ π^+^(ó  r  ))^2 ,  t ,  (m _ π^+^(ó  r  ))^2 ,  m^2 ,  (m _ π^+^(ó  r  ))^2 ) (e^(  ))^2 (t - 2 (m _ π^+^(ó  r  ))^2) (u - 2 (m _ π^+^(ó  r  ))^2))/(128 π^3 (f _ π^(ó  r  ))^2), -(C _ 0  ( (m _ π^+^(ó  r  ))^2 ,  (m _ π^+^(ó  r  ))^2 ,  u ,  (m _ π^+^(ó  r  ))^2 ,  m^2 ,  (m _ π^+^(ó  r  ))^2 ) (e^(  ))^2 (u - 2 (m _ π^+^(ó  r  ))^2)^2)/(128 π^3 (f _ π^(ó  r  ))^2)}

The two last terms cancel.

4 mPip^2 - s - tofsz[s, z, mPip, mPip] // Simplify

-1/2 (z + 1) (s - 4 (m _ π^+^(ó  r  ))^2)

tofsz[s, z, mPip, mPip] // Simplify

1/2 (z - 1) (s - 4 (m _ π^+^(ó  r  ))^2)

1/(32 π) 1/2 nIntegrate[(c0terms /. {MandelstamS -> s, MandelstamT -> tofsz[s, z, mPip, mPip], MandelstamU -> 4 mPip^2 - s - tofsz[s, z, mPip, mPip]}) LegendreP[0, z] /. s -> 4 mPip^2 //. numrules /. Log[m^2] :> 0 /. m -> 0, {z, -1, 1}] /. nIntegrate -> NIntegrate

{-6.561622204993202`*^-8, 6.561622204993202`*^-8, -6.561622204993202`*^-8}

Thus, the z-integration is trivial.

c0terms1 = 1/(32 π) 1/2 Integrate[(c0terms[[1]] /. {MandelstamS -> s, MandelstamT -> tofsz[s, z, mPip, mPip], MandelstamU -> 4 mPip^2 - s - tofsz[s, z, mPip, mPip]}) LegendreP[0, z], {z, -1, 1}]

-(s C _ 0  ( (m _ π^+^(ó  r  ))^2 ,  (m _ π^+^(ó  r  ))^2 ,  s ,  (m _ π^+^(ó  r  ))^2 ,  m^2 ,  (m _ π^+^(ó  r  ))^2 ) (e^(  ))^2 (s - 2 (m _ π^+^(ó  r  ))^2))/(8192 π^4 (f _ π^(ó  r  ))^2)

c0terms2 = c0terms1 // po1

We drop the terms divergent at threshold:

c0terms3 = Select[Series[c0terms2, {s, 4 mPip^2, 1}] // Normal // Expand, FreeQ[Limit[#, s -> 4 mPip^2], Infinity | DirectedInfinity | ComplexInfinity] &] // Simplify

c0terms4 = Limit[c0terms3, s -> 4 mPip^2] // FullSimplify

((e^(  ))^2 (log(4) - log(m^2)) (m _ π^+^(ó  r  ))^2)/(2048 π^4 (f _ π^(ó  r  ))^2)

We also drop the infrared divergent term:

c0terms5 = c0terms4 /. Log[m^2] -> 0 //. numrules

1.4543050930708074`*^-6

The Overscript[J, _] and log terms are continous at threshold and can be evaluated a bit away from threshold.

Plot[ampaPNL[s][0][[5]] // Re, {s, 3 mPip^2 //. numrules, 5 mPip^2 //. numrules}] ;

Plot[ampaPNL[s][0][[4]] // Re, {s, 3 mPip^2 //. numrules, 5 mPip^2 //. numrules}] ;

The final contributions to the scattering length:

res1 = ampaPNL[4 mPip^2][0] /. _NIntegrate -> 0

res2 = ampaPNL[1.00000000000001 4 mPip^2][0]

NIntegrate :: ploss :  Numerical integration stopping due to loss of precision. Achieved neither the requested PrecisionGoal nor AccuracyGoal; suspect one of the following: highly oscillatory integrand or the true value of the integral is 0. If your integrand is oscillatory try using the option Method->Oscillatory in NIntegrate.

{0.005877901572252493`, 0.0007394920349552884`, 0.011750532749694755`, -0.0008496578644054831`, -0.014879194573539992` - 0.003145597181373713` i, -5182.440765105874` + 34583.20289039067` i, 0.`}

endresult = ReplacePart[ReplacePart[res1, res2[[5]], 5], c0terms5, 6]

{0.005877901572252493`, 0.0007394920349552837`, 0.01175053274969464`, -0.000849657864405479`, -0.014879194573539992` - 0.003145597181373713` i, 1.4543050930708074`*^-6, 0.`}

Plus @@ Take[endresult, {1, -1}]

0.002640528224050018`  - 0.003145597181373713` i

Gasser&Leutwyler's strong result:

1/3 0.20 - 1/6 0.040

0.06`

strongresult = ampaPNLs[1.000000001 4 mPip^2][0]

{0.042452112857940906`, 0.0013053850826334767`, -0.0039951196354361534`, 0.01404054691473662`, 0.005329167957673672`  + 0.002281062463744635` i, 0, 0}

Plus @@ %

0.05913209317754852`  + 0.002281062463744635` i

The leading difference:

lowdiff = finTerms[[1]]

(4 ((m _ π^+^(ó  r  ))^2 - (m _ π^0^(ó  r  ))^2))/(f _ π^(ó  r  ))^2

lowdiff1 = 1/(32 π) 1/2 Integrate[(lowdiff /. {MandelstamS -> s, MandelstamT -> tofsz[s, z, mPip, mPip], MandelstamU -> 4 mPip^2 - s - tofsz[s, z, mPip, mPip]}) LegendreP[0, z], {z, -1, 1}] // Simplify

((m _ π^+^(ó  r  ))^2 - (m _ π^0^(ó  r  ))^2)/(8 π (f _ π^(ó  r  ))^2)

lowdiff1 /. s -> 4 mPip^2 //. numrules

0.005877901572252494`


Converted by Mathematica  (July 10, 2003)