Skip to content

Problems with some boxes in QCDLoop #13

@jnl89

Description

@jnl89

I am playing around with QCDLoop and had so far a very good impression of performance and stability.
For more complicated processes, however, I find no agreement with other tools such as OneLoop or Collier.
For example, I encounter a problem with the following massless box configuration with 3 onshell lines (p2,p3,p4) for hard kinematics:

 p1_2 =-521247.510219513904303312301635742
 p2_2 =0.00000000000000000000000000000000
 p3_2 =6463.99920100000053935218602418900
 p4_2 =0.00000000000000000000000000000000
 p12_2=-471395.374060058966279029846191406
 p23_2=8543.51790217262896476313471794128

For mu=1, OneLoop (ba57666) returns for the finite part:

  (-4.86539890373703392E-009,1.67822293416622610E-009)

while QCDLoop (af35d18) yields:

  (-4.86539890373703414235078743072e-09,3.62745344717407615900139594223e-08)

i.e. the real part perfectly agrees, but the imaginary part seems wrong since I find agreement between OneLoop and Collier.

Here a sample program for comparing oneloop:

program main
  use avh_olo
  implicit none
  integer, parameter :: prec = kind(1d0)
  real(prec) :: mu = 1d0
  real(prec) :: rescalef = 1._prec
  complex(prec) :: p1_2,p2_2,p3_2,p4_2,p12_2,p23_2,m12,m22,m32,m42
  complex(prec) :: rslt1(0:2),rslt2(0:2)

  call olo_scale_prec(mu)

  p1_2 =-521247.510219513904303312301635742_prec
  p2_2 =0.00000000000000000000000000000000_prec
  p3_2 =6463.99920100000053935218602418900_prec
  p4_2 =0.00000000000000000000000000000000_prec
  p12_2=-471395.374060058966279029846191406_prec
  p23_2=8543.51790217262896476313471794128_prec


  m12 =0._prec
  m22 =0._prec
  m32 =0._prec
  m42 =0._prec


  call olo(rslt1,p1_2,p2_2,p3_2,p4_2,p12_2,p23_2,&
    m12,m22,m32,m42)

  rescalef = 17.01_prec
  call olo_scale_prec(mu*rescalef)
  p1_2=p1_2*rescalef**2
  p2_2=p2_2*rescalef**2
  p3_2=p3_2*rescalef**2
  p4_2=p4_2*rescalef**2
  p12_2=p12_2*rescalef**2
  p23_2=p23_2*rescalef**2

  m12 = m12*rescalef**2
  m22 = m22*rescalef**2
  m32 = m32*rescalef**2
  m42 = m42*rescalef**2

  call olo(rslt2,p1_2,p2_2,p3_2,p4_2,p12_2,p23_2,&
    m12,m22,m32,m42)
  !
  write(*,*) "rslt1:", rslt1(0)
  write(*,*) "rslt2:", rslt2(0)*rescalef**4
  write(*,*) "box precision:", real(rslt1(0)/rslt2(0),prec)/rescalef**4 - 1
  !QCDLoop result: 
  ! -4.86539890373703414235078743072e-09 + I * 3.62745344717407615900139594223e-08
end program m

Cheers,
Jean-Nicolas

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions