Open vsht opened 2 years ago
Still a problem with pySecDec 1.6, I guess it must be related to issue #9
Better late than never. I looked at this integral and wanted to share my analysis. I know you have several integrals with behaviour similar to this one, so I'm unsure to what extent the following applies generally or only to this specific integral.
Changing the propagator list to:
['-m2**2 + p1**2', '-m2**2 + (-p1 + p3)**2', '2*p3*q']
so that the Feynman parameter associated with the linear propagator is eliminated we get in total 4 sectors for this integral, which can be reduced to 2 sectors due to the symmetry of the integral.
The Symmanzik polynomials of the integral are:
U^eU = ( + (1)*x0*x1)**(3*eps - 3)
F^eF = ( + (m1**2)*x1*x2**2 + (m1**2)*x0*x2**2 + (m2**2)*x0*x1**2 + (m2**2)*x0**2*x1)**(1 - 2*eps)
Note that U
is in the denominator and leads to any divergences, while F
is in the numerator.
Applying sector decomposition we find that the following monomials factor:
x0^0 x1^-2
x0^-2 x1^-4
This means the integral has a strong singular behaviour, especially for the second sector for x1 -> 0
. This results in pySecDec generating very complicated subtraction terms and also using integration-by-parts to reduce the singular behaviour in x1
. This explains why the integral is slow in pySecDec especially when contour deformation is enabled and all of these steps lead to a huge expression swell.
The strange thing (that I don't yet understand) is that the integral is finite, in fact, it even starts at O(eps)
. Looking at the pySecDec numerical output:
+eps^-3*(+0.0000000000000000e+00+0.0000000000000000e+00j)
+eps^-3*(+0.0000000000000000e+00+0.0000000000000000e+00j)*plusminus
+eps^-2*(+0.0000000000000000e+00+0.0000000000000000e+00j)
+eps^-2*(+0.0000000000000000e+00+0.0000000000000000e+00j)*plusminus
+eps^-1*(+7.8900801282179708e-18+0.0000000000000000e+00j)
+eps^-1*(+5.3233755605021279e-18+0.0000000000000000e+00j)*plusminus
+eps^0*(-1.3912426766182762e-11+0.0000000000000000e+00j)
+eps^0*(+9.9746859433479907e-12+0.0000000000000000e+00j)*plusminus
+eps^1*(-5.4723217606823766e+01+0.0000000000000000e+00j)
+eps^1*(+3.0430762085916759e-10+0.0000000000000000e+00j)*plusminus
+eps^2*(-2.0943259007907216e+01+0.0000000000000000e+00j)
+eps^2*(+6.0967443833091971e-09+0.0000000000000000e+00j)*plusminus
We can see that the spurious 1/eps^3
and 1/eps^2
poles are analytically 0 (but this is not detected analytically by pySecDec and results in us sampling an integrand that is 0), while the 1/eps
pole and eps^0
term are numerically 0, meaning we generate some non-zero integrand that nevertheless integrates to 0.
Adding a small mass to the linear propagator
['-m2**2 + p1**2', '-m2**2 + (-p1 + p3)**2', '2*p3*q-m3**2']
so that
U^eU = ( + (1)*x0*x1)**(3*eps - 3)
F^eF = ( + (m1**2)*x1*x2**2 + (m1**2)*x0*x2**2 + (m3**2)*x0*x1*x2 + (m2**2)*x0*x1**2 + (m2**2)*x0**2*x1)**(1 - 2*eps)
and setting m3=0.0001
we actually see the same pole structure, but only the 1/eps^3
is spurious:
+eps^-3*(+0.0000000000000000e+00+0.0000000000000000e+00j)
+eps^-3*(+0.0000000000000000e+00+0.0000000000000000e+00j)*plusminus
+eps^-2*(+1.3253787282080312e-09+0.0000000000000000e+00j)
+eps^-2*(+6.4461526002390352e-25+0.0000000000000000e+00j)*plusminus
+eps^-1*(+7.8801601152747849e-10+0.0000000000000000e+00j)
+eps^-1*(+9.8764533617268629e-18+0.0000000000000000e+00j)*plusminus
+eps^0*(+5.0512412030911946e-09+0.0000000000000000e+00j)
+eps^0*(+9.9725401178695067e-12+0.0000000000000000e+00j)*plusminus
+eps^1*(-5.4723217601432808e+01+0.0000000000000000e+00j)
+eps^1*(+3.0431744501083905e-10+0.0000000000000000e+00j)*plusminus
+eps^2*(-2.0943258990752952e+01+0.0000000000000000e+00j)
+eps^2*(+6.0967355878911959e-09+0.0000000000000000e+00j)*plusminus
Next steps:
O(eps)
analytically and understand why pySecDec detects it as starting at 1/eps^3
(can be reduced to 1/eps^2
by changing the prefactor)
Hi,
I'd like to use pySecDec to check my analytic result for the following on-shell eikonal integral with $q=m_1^2$ and $m_1>m_2$
The $i \eta$-prescription automatically gets rewritten to match the pySecDec-convention.
My generation script looks as follows:
If I omit
form_work_space
, then the compilation stops progressing quite soon and upon hittingCtrl-C
I seeHowever, even with a larger workspace the compilation still doesn't work and after 15-20 minutes I end up with
I think it is related to the contour deformation, since I've already observed a similar behavior with other eikonal integrals. However, in this computation I know that some of my masters will have an imaginary part and so I cannot disable the contour deformation for all integrals.
Is there some trick to get the compilation through?
FYI, FIESTA 5 calculates this integral within seconds: