Last modified 5 years ago Last modified on 04/06/12 16:33:02

EW Higgs production at NNLO in QCD

The aim of this project is to compute the total VBF cross section at NNLO using the structure function approach. This approach (see hep-ph/9206246) consists in parametrizing the proton-weak boson interaction vertex with the DIS structure functions, and is exact at LO and NLO, while at NNLO neglects terms suppressed by 1/Nc2. Since 1/Nc2 is of the same order of the strong coupling, these neglected terms can be considered NNNLO. Furthermore the terms which are neglected can be estimated to be numericaly small also because they do not contain any enhancement by Sudakov (soft) logarithms.

As shown in (hep-ph/9206246), the NLO corrections are of order 5-10% with respect to the LO cross section. We can guess-estimate the NNLO corrections to be of order 1% or less.

Structure functions

In order to compute the NNLO cross-section, we need NNLO DIS structure functions.

New in v1.2

The file libstruct_12.f contains code for the structure functions, checked until NLO.

LO and NLO structure fucntions can esaily be found in literature (eg. the Ellis book), while for the NNLO structure functions we use some parametrizations by A.Vogt which can be found at .

The structure function library works as follow:

Each structure function Fi (i=1,2,3,L) has the following declaration:

double precision function Fi(double precision x,double precision q,integer ord,integer v,double precision zz)


  • x is the Bjorken x for the DIS
  • q is the square root of the virtuality Q2 of the boson vector (in !GeV)
  • ord is the perturbative order (1=LO, 2=NLO, 3=NNLO). Note that, eg. if ord=2 only the O(alpha_s) contribution is given and not the O(alpha_s0)+O(alpha_s) one
  • v is the index for the vector boson, considered, as in DIS, entering the proton (1=W-, 2=W+, 3=Z0)
  • zz is the variable used for convolutions beyond the LO. It is supposed to be generated between 0 and 1. The convolution can be performed using any external integration routine. At LO it can be set to any value, since it is not used.

Some paramter are passed through common blocks:

  • /nflav/nf is the number of active flavours
  • /prec/eps is a parameter used to avoid the singularities of the coefficient functions at x=1. Suitable values are 1d-10 or less.

In the main progam there should be a call to the subroutine SetCouplings() in order to initialize the couplings to the various vectors.

The libstruct library uses LHAPDF pdf sets, that have to be initialized in the main program.

Until now, all the scales are set equal to Q2.

New in v1.3

Due to some troubles with nf and setcouplings, in v1.3 no call to setcouplings is needed, neither nf setting in the main program.

The structure functions are automatically computed with 5 active flavours for the Z0 and 4 active flavours for the W+/- (top quark decoupled).

New in v1.4

It has been fixed an issue concerning the singlet and non singlet distribution. The NNLO coefficient function has been checked. Should be reliable up to NNLO

-- Main.MarcoZaro - 2009-12-17

New in v2.0

The full (factorzization and renormalization) scale dependence has been implemented until NNLO. It has been checked at NLO with the code of Spira, while it is being checked at NNLO (the mellin moments of the coefficent functions are ok, the flavour combination is to be checked).

-- Main.MarcoZaro - 2010-02-05

Scale dependence

The tar-ball conv.tgz contains code with closed form expression for the necessary convolutions P_ijP_ij and c_iP_ij at NNLO. Two check programs are attached as well.

Sven - 2010-01-07

To Do

  • check scale dependence

VBF cross section intgration

The file vbf_hadr_xx.f contains the code for the computation of the hadronic VBF cross-section. It has been checked up to NLO with the code by Michael Spira (, see attachment table).

In order to be properly compiled, it requires libstruct_xx.f (xx=13 or later) and the integration routine vegas.f . All these files and a Makefile are included in the archive vbf.tar

Up to now the parameters have to be set inside the code. The most relevant are

  • double precision sqrts, the total center of mass energy (in GeV)
  • double precision mh, the higgs mass
  • integer icomp, fixes the accuracy of the computation: 1 LO+intf, 2 NLO, 3 NLO "improved", 4 NNLO, 5 NNLO "improved", where "improved" means that the alpha_s power counting is performed in the structure functions and not for the whole cross section. (E.g. the NLO "improved" cross-section contains also the NLOxNLO contribution of the structure function expansion, which is ont inculded in the NLO)

New in v2.0

The parameters are set outside the program, using the cards param_card.dat for Standard Model parameters (masses, widths,...) and run_card.dat for the parameters of the specific run (energy, higgs mass, s-channel inclusion, pdfs,...).

Furthermore different pdf sets can be used for LO, NLO and NNLO computations.

The icomp variable now runs from 1 to 6.

  1. LO, PDF LO
  3. NNLO, pdf NNLO
  4. NLO imp, pdf NLO
  5. NLO imp, pdf NNLO
  6. NNLO imp, pdf NNLO

The bash script allow to take several runs with different parameters, the run_card being made by the fortran program makeruncard.f at each run. The output is collected in the output file out.dat

-- Main.MarcoZaro - 2010-01-22

New in v2.5

Some speed optimization has been performed. Basically, in v2.0 the evolvePDF routine was called many times for the single structure function call, basically one time for each flavour combination (singlet, gluon,...).

In order to speed up the code, the evolvePDF routine is called once in the structure function. This turned into a moderate gain in the program runtime (about 10-15%) with respect v2.0.

Note that the interface of the structure function is not changed in this version with respect to v2.0.

New in v3.0

In this version the evolvePDF routine is called as few times as possible. Basically it is called in the function me(...), and then the result is pssed as an argument to the structure functions, whose interface has been modified.

The runtime gain with respect v2.0 is of about 35%.

New in v3.5

We improved the running speed by defining a subroutine sethpl(x) which computes once the harmonic polylogs and stores them in a common block. In this version this subroutine is invoked inside the structure functions, so only the files libstruct.f and libscale.f have been modified. The running time dramatically reduced: RT[3.5]/RT[3.0]=35%

Also the correct top-triangle in the t-channel is included in this version (even if not called in the integration).

New in v4.0

We still improved the running time by making the call to sethpl external to the structure functions, i.e. it is called in the me() function in the file vbf.f. RT[4.0]/RT[3.0]=30%

-- Main.MarcoZaro - 2010-03-19


The VBF does not include the s-channel contribution to the Higgs production, which is basically Drell-Yan plus the decay of the virtual vector particle into higgs and real vector, and the subsequent hadronic decay of the latter. This contribution cannot be computed within the framework of the structure function approach, but, at least for the initial state, the strong corrections are just the Drell-Yan ones, and so it can be easily included in our code.

(See for example Brein, Djouadi, Harlander).

The s channel (up to NLO in v 2.0), is included in the file libschannel_xx, basically using the Drell-yan approach.

The flag isch in the vbf_hadr main program, allows to include it in the computation (0 no, 1 yes).

To do

  • NNLO s-channel


In order to reach a precision of order 1% we should also consider the interference terms between WW and ZZ fusion, as quell as the ones coming for VBF-like diagrams with the s-channel diagram which are not taken into account in the structure function approach.

The interference between VBF-like diagrams is known to be small, about some %s, and hence for us it is sufficient to include it at LO.

The one coming from VBF x S-channel is zero in the zero W width limit, and it can be estimated as of the order of the ratio between the W-width and its mass.


The file libintf_15.f contains the LO interferences between the VBF-like diagrams (eg. ud->udh, uu->uuh) as well as the interferences between VBF and S-channel (udbar->udbarh). It as been checked with Madgraph point by point in the phase space and at the integrated level.

The interference impact is at the per-mille level or less at 14 TeV

The files 14tev_LO_intf.dat and 14tev_LO_intf_sch.dat in the tarball intf_bench.tar contain some data, repsectively including and excluding the interference of the S-channel diagram with the VBF like ones. The number in the files are the higgs mass, the LO VBF cross section (no intf), the interference, the total LO cross section and the interference impact.

-- Main.MarcoZaro - 2010-01-14

Things we know we neglect and we should have an estimate of:

  • alpha_s2/Nc2 terms:
    • These come from "interference" diagrams. One way to try to estimate them is to consider the QED2 corrections to VBF with a Z exchange.
  • alpha_s3 alpha_ew2 contributions:
  • top quark effects:
    • In particular we neglect diagrams including a top box coupled to two gluons, a Z and the higgs, and their interference with diagrams included in our calculation. Those diagrams are suppressed in the mt->infty limit. However, this contribution can be substantial at the LHC. (See for example Brein, Djouadi, Harlander), and have been computed in this work by Kniehl (see also attachment kniehl.pdf)
  • b quark initiated charged current processes (i.e. no b->c, b->u mixing). Since b->u << b->c, we just need to check the effect of the latter. Being totally inclusive, we already take into account CKM mixing for the other flavours
  • interferences beyond LO (ok if interferences are already small)
  • Non DY-like diagrams in the s-channel (related to top quark effects, ex. gg->VH via top box or triangle, (see above)
s-ch2 -> branching ratio into hadrons: we should understand if take the experimental value, or the fixed order QCD computation

-- Main.MarcoZaro - 2009-12-18


  • libstructf_14.f: The structure function library, with coefficient function checked up to NNLO. All previous version are obsolete
  • vbf_14.tar: the 1.4 version of the vbf_hadr code, including libstructf_14
  • conv.tgz: All convolution for the NNLO scale dependence
  • vbf.pdf: Structure functions for EW gauge boson exchange to NNLO
  • vbffinal.pdf: Structure functions for EW gauge boson exchange to NNLO (final version)
  • coefmom.f: my adaptation of the main van Nerven program to compute a few Mellin moments (compiles with gfortran)
  • vbf_20.tar: the vbf_20 version of the code, with the bash scipts..
  • vbf_20.tar: the vbf_20 version of the code, with the bash scipts and the run results in the file results.dat
  • vbf_20.tar: the vbf_20 version of the code, with the bash scipts and the run results (version 01) in the file results.dat
  • vbf_25.tar: the 2.5 version of the vbf code. Speed improvement of about 10-15% with respect to the 2.0 version
  • vbf_30.tar: the 3.0 version of the vbf code. Speed improvement of about 35% with respect to the 2.0 version
  • res100224.tar: the results obtained with 3.0 version, both scale and pdf dependence are included
  • vbfcolor.pdf: Notes about the color structure at NNLO and discussion of the color suppressed contributions
  • vbf_35.tar: 3.5 version of the vbf code. Top triangle in t-channel corrected and hplog speed improved
  • vbf_40.tar: 4.0 version of the vbf code. Hplog speed improved (call to sethplog external to the structure functions)