nnlojet is hosted by Hepforge, IPPP Durham
nnlojet is hosted by Hepforge, IPPP Durham

NNLOJET manual

\(\newcommand{\footnotename}{footnote}\) \(\def \LWRfootnote {1}\) \(\newcommand {\footnote }[2][\LWRfootnote ]{{}^{\mathrm {#1}}}\) \(\newcommand {\footnotemark }[1][\LWRfootnote ]{{}^{\mathrm {#1}}}\) \(\let \LWRorighspace \hspace \) \(\renewcommand {\hspace }{\ifstar \LWRorighspace \LWRorighspace }\) \(\newcommand {\TextOrMath }[2]{#2}\) \(\newcommand {\mathnormal }[1]{{#1}}\) \(\newcommand \ensuremath [1]{#1}\) \(\newcommand {\LWRframebox }[2][]{\fbox {#2}} \newcommand {\framebox }[1][]{\LWRframebox } \) \(\newcommand {\setlength }[2]{}\) \(\newcommand {\addtolength }[2]{}\) \(\newcommand {\setcounter }[2]{}\) \(\newcommand {\addtocounter }[2]{}\) \(\newcommand {\arabic }[1]{}\) \(\newcommand {\number }[1]{}\) \(\newcommand {\noalign }[1]{\text {#1}\notag \\}\) \(\newcommand {\cline }[1]{}\) \(\newcommand {\directlua }[1]{\text {(directlua)}}\) \(\newcommand {\luatexdirectlua }[1]{\text {(directlua)}}\) \(\newcommand {\protect }{}\) \(\def \LWRabsorbnumber #1 {}\) \(\def \LWRabsorbquotenumber "#1 {}\) \(\newcommand {\LWRabsorboption }[1][]{}\) \(\newcommand {\LWRabsorbtwooptions }[1][]{\LWRabsorboption }\) \(\def \mathchar {\ifnextchar "\LWRabsorbquotenumber \LWRabsorbnumber }\) \(\def \mathcode #1={\mathchar }\) \(\let \delcode \mathcode \) \(\let \delimiter \mathchar \) \(\def \oe {\unicode {x0153}}\) \(\def \OE {\unicode {x0152}}\) \(\def \ae {\unicode {x00E6}}\) \(\def \AE {\unicode {x00C6}}\) \(\def \aa {\unicode {x00E5}}\) \(\def \AA {\unicode {x00C5}}\) \(\def \o {\unicode {x00F8}}\) \(\def \O {\unicode {x00D8}}\) \(\def \l {\unicode {x0142}}\) \(\def \L {\unicode {x0141}}\) \(\def \ss {\unicode {x00DF}}\) \(\def \SS {\unicode {x1E9E}}\) \(\def \dag {\unicode {x2020}}\) \(\def \ddag {\unicode {x2021}}\) \(\def \P {\unicode {x00B6}}\) \(\def \copyright {\unicode {x00A9}}\) \(\def \pounds {\unicode {x00A3}}\) \(\let \LWRref \ref \) \(\renewcommand {\ref }{\ifstar \LWRref \LWRref }\) \( \newcommand {\multicolumn }[3]{#3}\) \(\require {textcomp}\) \(\newcommand {\intertext }[1]{\text {#1}\notag \\}\) \(\let \Hat \hat \) \(\let \Check \check \) \(\let \Tilde \tilde \) \(\let \Acute \acute \) \(\let \Grave \grave \) \(\let \Dot \dot \) \(\let \Ddot \ddot \) \(\let \Breve \breve \) \(\let \Bar \bar \) \(\let \Vec \vec \) \(\newcommand {\LWRsubmultirow }[2][]{#2}\) \(\newcommand {\LWRmultirow }[2][]{\LWRsubmultirow }\) \(\newcommand {\multirow }[2][]{\LWRmultirow }\) \(\newcommand {\mrowcell }{}\) \(\newcommand {\mcolrowcell }{}\) \(\newcommand {\STneed }[1]{}\) \(\newcommand {\toprule }[1][]{\hline }\) \(\let \midrule \toprule \) \(\let \bottomrule \toprule \) \(\def \LWRbooktabscmidruleparen (#1)#2{}\) \(\newcommand {\LWRbooktabscmidrulenoparen }[1]{}\) \(\newcommand {\cmidrule }[1][]{\ifnextchar (\LWRbooktabscmidruleparen \LWRbooktabscmidrulenoparen }\) \(\newcommand {\morecmidrules }{}\) \(\newcommand {\specialrule }[3]{\hline }\) \(\newcommand {\addlinespace }[1][]{}\) \(\newcommand {\LWRoverlaysymbols }[2]{\mathord {\smash {\mathop {#2\strut }\limits ^{\smash {\lower 3ex{#1}}}}\strut }}\) \(\def\alphaup{\unicode{x03B1}}\) \(\def\betaup{\unicode{x03B2}}\) \(\def\varbetaup{\unicode{x03D0}}\) \(\def\gammaup{\unicode{x03B3}}\) \(\def\digammaup{\unicode{x03DD}}\) \(\def\deltaup{\unicode{x03B4}}\) \(\def\epsilonup{\unicode{x03F5}}\) \(\def\varepsilonup{\unicode{x03B5}}\) \(\def\zetaup{\unicode{x03B6}}\) \(\def\etaup{\unicode{x03B7}}\) \(\def\thetaup{\unicode{x03B8}}\) \(\def\varthetaup{\unicode{x03D1}}\) \(\def\iotaup{\unicode{x03B9}}\) \(\def\kappaup{\unicode{x03BA}}\) \(\def\varkappaup{\unicode{x03F0}}\) \(\def\lambdaup{\unicode{x03BB}}\) \(\def\muup{\unicode{x03BC}}\) \(\def\nuup{\unicode{x03BD}}\) \(\def\xiup{\unicode{x03BE}}\) \(\def\omicronup{\unicode{x03BF}}\) \(\def\piup{\unicode{x03C0}}\) \(\def\varpiup{\unicode{x03D6}}\) \(\def\rhoup{\unicode{x03C1}}\) \(\def\varrhoup{\unicode{x03F1}}\) \(\def\sigmaup{\unicode{x03C3}}\) \(\def\varsigmaup{\unicode{x03C2}}\) \(\def\tauup{\unicode{x03C4}}\) \(\def\upsilonup{\unicode{x03C5}}\) \(\def\phiup{\unicode{x03D5}}\) \(\def\varphiup{\unicode{x03C6}}\) \(\def\chiup{\unicode{x03C7}}\) \(\def\psiup{\unicode{x03C8}}\) \(\def\omegaup{\unicode{x03C9}}\) \(\def\Alphaup{\unicode{x0391}}\) \(\def\Betaup{\unicode{x0392}}\) \(\def\Gammaup{\unicode{x0393}}\) \(\def\Digammaup{\unicode{x03DC}}\) \(\def\Deltaup{\unicode{x0394}}\) \(\def\Epsilonup{\unicode{x0395}}\) \(\def\Zetaup{\unicode{x0396}}\) \(\def\Etaup{\unicode{x0397}}\) \(\def\Thetaup{\unicode{x0398}}\) \(\def\Varthetaup{\unicode{x03F4}}\) \(\def\Iotaup{\unicode{x0399}}\) \(\def\Kappaup{\unicode{x039A}}\) \(\def\Lambdaup{\unicode{x039B}}\) \(\def\Muup{\unicode{x039C}}\) \(\def\Nuup{\unicode{x039D}}\) \(\def\Xiup{\unicode{x039E}}\) \(\def\Omicronup{\unicode{x039F}}\) \(\def\Piup{\unicode{x03A0}}\) \(\def\Varpiup{\unicode{x03D6}}\) \(\def\Rhoup{\unicode{x03A1}}\) \(\def\Sigmaup{\unicode{x03A3}}\) \(\def\Tauup{\unicode{x03A4}}\) \(\def\Upsilonup{\unicode{x03A5}}\) \(\def\Phiup{\unicode{x03A6}}\) \(\def\Chiup{\unicode{x03A7}}\) \(\def\Psiup{\unicode{x03A8}}\) \(\def\Omegaup{\unicode{x03A9}}\) \(\def\alphait{\unicode{x1D6FC}}\) \(\def\betait{\unicode{x1D6FD}}\) \(\def\varbetait{\unicode{x03D0}}\) \(\def\gammait{\unicode{x1D6FE}}\) \(\def\digammait{\mathit{\unicode{x03DD}}}\) \(\def\deltait{\unicode{x1D6FF}}\) \(\def\epsilonit{\unicode{x1D716}}\) \(\def\varepsilonit{\unicode{x1D700}}\) \(\def\zetait{\unicode{x1D701}}\) \(\def\etait{\unicode{x1D702}}\) \(\def\thetait{\unicode{x1D703}}\) \(\def\varthetait{\unicode{x1D717}}\) \(\def\iotait{\unicode{x1D704}}\) \(\def\kappait{\unicode{x1D705}}\) \(\def\varkappait{\unicode{x1D718}}\) \(\def\lambdait{\unicode{x1D706}}\) \(\def\muit{\unicode{x1D707}}\) \(\def\nuit{\unicode{x1D708}}\) \(\def\xiit{\unicode{x1D709}}\) \(\def\omicronit{\unicode{x1D70A}}\) \(\def\piit{\unicode{x1D70B}}\) \(\def\varpiit{\unicode{x1D71B}}\) \(\def\rhoit{\unicode{x1D70C}}\) \(\def\varrhoit{\unicode{x1D71A}}\) \(\def\sigmait{\unicode{x1D70E}}\) \(\def\varsigmait{\unicode{x1D70D}}\) \(\def\tauit{\unicode{x1D70F}}\) \(\def\upsilonit{\unicode{x1D710}}\) \(\def\phiit{\unicode{x1D719}}\) \(\def\varphiit{\unicode{x1D711}}\) \(\def\chiit{\unicode{x1D712}}\) \(\def\psiit{\unicode{x1D713}}\) \(\def\omegait{\unicode{x1D714}}\) \(\def\Alphait{\unicode{x1D6E2}}\) \(\def\Betait{\unicode{x1D6E3}}\) \(\def\Gammait{\unicode{x1D6E4}}\) \(\def\Digammait{\mathit{\unicode{x03DC}}}\) \(\def\Deltait{\unicode{x1D6E5}}\) \(\def\Epsilonit{\unicode{x1D6E6}}\) \(\def\Zetait{\unicode{x1D6E7}}\) \(\def\Etait{\unicode{x1D6E8}}\) \(\def\Thetait{\unicode{x1D6E9}}\) \(\def\Varthetait{\unicode{x1D6F3}}\) \(\def\Iotait{\unicode{x1D6EA}}\) \(\def\Kappait{\unicode{x1D6EB}}\) \(\def\Lambdait{\unicode{x1D6EC}}\) \(\def\Muit{\unicode{x1D6ED}}\) \(\def\Nuit{\unicode{x1D6EE}}\) \(\def\Xiit{\unicode{x1D6EF}}\) \(\def\Omicronit{\unicode{x1D6F0}}\) \(\def\Piit{\unicode{x1D6F1}}\) \(\def\Rhoit{\unicode{x1D6F2}}\) \(\def\Sigmait{\unicode{x1D6F4}}\) \(\def\Tauit{\unicode{x1D6F5}}\) \(\def\Upsilonit{\unicode{x1D6F6}}\) \(\def\Phiit{\unicode{x1D6F7}}\) \(\def\Chiit{\unicode{x1D6F8}}\) \(\def\Psiit{\unicode{x1D6F9}}\) \(\def\Omegait{\unicode{x1D6FA}}\) \(\let \digammaup \Digammaup \) \(\renewcommand {\digammait }{\mathit {\digammaup }}\) \(\newcommand {\smallin }{\mathrel {\unicode {x220A}}}\) \(\newcommand {\smallowns }{\mathrel {\unicode {x220D}}}\) \(\newcommand {\notsmallin }{\mathrel {\LWRoverlaysymbols {/}{\unicode {x220A}}}}\) \(\newcommand {\notsmallowns }{\mathrel {\LWRoverlaysymbols {/}{\unicode {x220D}}}}\) \(\newcommand {\rightangle }{\mathord {\unicode {x221F}}}\) \(\newcommand {\intclockwise }{\mathop {\unicode {x2231}}\limits }\) \(\newcommand {\ointclockwise }{\mathop {\unicode {x2232}}\limits }\) \(\newcommand {\ointctrclockwise }{\mathop {\unicode {x2233}}\limits }\) \(\newcommand {\oiint }{\mathop {\unicode {x222F}}\limits }\) \(\newcommand {\oiiint }{\mathop {\unicode {x2230}}\limits }\) \(\newcommand {\ddag }{\unicode {x2021}}\) \(\newcommand {\P }{\unicode {x00B6}}\) \(\newcommand {\copyright }{\unicode {x00A9}}\) \(\newcommand {\dag }{\unicode {x2020}}\) \(\newcommand {\pounds }{\unicode {x00A3}}\) \(\newcommand {\iddots }{\mathinner {\unicode {x22F0}}}\) \(\newcommand {\utimes }{\mathbin {\overline {\times }}}\) \(\newcommand {\dtimes }{\mathbin {\underline {\times }}}\) \(\newcommand {\udtimes }{\mathbin {\overline {\underline {\times }}}}\) \(\newcommand {\leftwave }{\left \{}\) \(\newcommand {\rightwave }{\right \}}\)

4 Processes in NNLOJET

The NNLOJET distribution under https://nnlojet.hepforge.org will be updated on a regular basis, especially by adding new processes. The list of available processes in the current version can be obtained by

$ NNLOJET --listprocs

For version v1.0.0 this yields:

$ NNLOJET --listprocs
Available processes up to NNLO accuracy for hadron-hadron colliders:
*    Z       : production of a Z-boson;
*    ZJ      : production of a Z-boson plus a jet;
*    WP      : production of a positively charged W-boson;
*    WPJ     : production of a positively charged W-boson plus a jet;
*    WM      : production of a negatively charged W-boson;
*    WMJ     : production of a negatively charged W-boson plus a jet;
*    H       : production of a H-boson;
*    HJ      : production of a H-boson plus a jet;
*    H2      : production of a H-boson with decay to two colour singlets, in particular:
*       - HTO2P     : decay to two photons;
*    H2J     : production of a H-boson plus a jet with decay to two colour singlets, in particular:
*       - HTO2PJ    : decay to two photons;
*    H3      : production of a H-boson with decay to three colour singlets, in particular:
*       - HTO2L1P   : Dalitz decay to (l+l-) and photon;
*    H3J     : production of a H-boson plus a jet with decay to three colour singlets, in particular:
*       - HTO2L1PJ : Dalitz decay to (l+l-) and photon;
*    H4      : production of a H-boson with decay to four colour singlets, in particular:
*       - HTO4E     : decay to (l+l-) (l+l-);
*       - HTO2E2MU : decay to (l1+l1) (l2+l2-);
*       - HTO2L2N   : decay to (l1-nu1b) (l2+nu2);
*    H4J      : production of a H-boson plus a jet with decay to four colour singlets, in particular:
*       - HTO4EJ    : decay to (l+l-) (l+l-);
*       - HTO2E2MUJ : decay to (l1+l1) (l2+l2-);
*       - HTO2L2NJ : decay to (l1-nu1b) (l2+nu2);
*    GJ      : production of a photon plus a jet;
*    GG      : production of two photons;
*    JJ      : production of two jets;
Available processes up to NNLO accuracy for electron-positron colliders:
*    eeJJ    : production of two jets;
*    eeJJJ : production of three jets;
Available processes up to NNLO accuracy for lepton-hadron colliders:
*    epLJ    : production of a jet through neutral-current exchange;
*    epLJJ : production of two jets through neutral-current exchange;
Available processes up to NNLO accuracy for electron-hadron colliders:
*    epNJ    : production of a jet through charged-current exchange;
*    epNJJ : production of two jets through charged-current exchange;
Available processes up to NNLO accuracy for positron-hadron colliders:
*    epNbJ : production of a jet through charged-current exchange;
*     epNbJJ : production of two jets through charged-current exchange;

For each process type available at NNLO QCD, it is implicitly understood that NNLOJET also provides the NLO correction to the process with one additional jet and the LO of the process with two additional jets. For example, since \(Z+1j\) is available at NNLO, \(Z+2j\) can be computed at NLO and \(Z+3j\) at LO. To perform NLO and LO calculations of processes with additional jets in the final state, one can simply require a higher number of resolved jets in the runcard file. For example, the NLO correction to \(Z+2j\) can be computed via an NNLO calculation for the ZJ process requiring at least two jets.

The processes included in the current release are described in the following. Details on their NNLOJET implementation and on validation tests are described in detail in the respective publications. In general, the following checks have been applied on all process: (1) point-tests  [18, 22] and (2) technical-cut checks for RR and RV contributions; (3) finiteness of the RV and VV contributions.

In the point tests, multiple phase space points are generated near each potentially singular infrared limit, with the proximity to the limit being controlled by a one-dimensional parameter. It is then validated that the ratio of the matrix element and subtraction term approaches unity in each limit and that the distribution of the ratios is progressively concentrated in a tighter interval around unity as the control parameter decreases.

The phase space generation in all processes imposes a lower technical cut on all Mandelstam invariants, which is chosen considerably smaller than the smallest scale that is resolved by the final-state definition. For a properly functioning subtraction at RR and RV level, the deep-infrared region in the vicinity of the technical cut gives a negligible contribution to the cross section, which is checked by its independence on the technical cut.

The pole tests are performed numerically for a large number of bulk phase space points on the RV process, where \(\epsilon \)-poles of matrix elements, mass-factorization terms and subtraction terms are implemented explicitly. In the VV process, all integrated subtraction terms are combined with the mass-factorization terms and the pole terms extracted  [4] from the double-virtual matrix element to obtain analytical pole cancellation and to define the finite remainder that is implemented numerically.

4.1 Jet production in electron–positron collisions

Jet final states in \({\mathrm {e}^+}{\mathrm {e}^-}\) annihilation and related event shapes played a key role in establishing QCD as theory of the strong interaction and their theoretical study has been a major driver of developments in precision calculations in QCD. The \({\mathrm {e}^+}{\mathrm {e}^-}\to 3j\) cross section and related event shapes were the first jet observables to be computed to NNLO in QCD  [30], originally implemented in the code EERAD3  [31] which is also based on antenna subtraction. The implementation of \({\mathrm {e}^+}{\mathrm {e}^-}\to 2j\) and \({\mathrm {e}^+}{\mathrm {e}^-}\to 3j\) in NNLOJET is described in  [32]. It uses the matrix elements for vector-boson decay into partons  [3339], which account for the incoming lepton kinematics. The commonly used LEP-era event-shape variables and jet algorithms  [40] are part of the generic NNLOJET infrastructure.

4.2 Jet production in electron–proton collisions

Jet production in deeply inelastic electron–proton scattering (DIS) allows to probe aspects of the proton structure that are difficult to assess in inclusive DIS and provides important precision tests of QCD. The implementation of \(\mathrm {e}{\mathrm {p}}\to \mathrm {lepton}+2j\) up to NNLO QCD is described in  [41, 42], including both neutral-current and charged-current DIS. It is based on crossings  [38] of the \({\mathrm {e}^+}{\mathrm {e}^-}\to \,jets\) matrix elements to DIS kinematics. Jets can be defined in the Breit frame or in the electron–proton collider frame and DIS event shapes  [43] are part of the NNLOJET infrastructure.

4.3 Jet production in hadronic collisions

Jet production is the most ubiqutous QCD process at hadron colliders, probing the basic \(2\to 2\) parton scattering reactions. A number of kinematic distributions can be derived from single-inclusive jet production \({\mathrm {p}}{\mathrm {p}} \to j+X\) and from dijet production \({\mathrm {p}}{\mathrm {p}}\to 2j\). Their NNLOJET implementation is described in detail in  [22, 4450]. It is based on the relevant subprocess matrix elements up to NNLO  [5163]. The generic NNLOJET infrastructure allows selecting various different jet algorithms, performing scans over jet-resolution parameters and the setting of renormalization and factorization scales  [64] either in a jet-based or event-based manner.

4.4 Vector-boson-plus-jet production

Precision studies of the electroweak interaction are commonly performed through massive vector-boson production, identified through their leptonic decay mode. Further kinematic information can be obtained by considering vector-boson-plus-jet final states. Observables derived from vector-boson and vector-boson-plus-jet production are widely used in precision measurements of electroweak parameters and of the proton structure. The NNLOJET implementation for \({\mathrm {p}}{\mathrm {p}} \to ({\gamma }^*,{\mathrm {Z}})+0j\), \({\mathrm {p}}{\mathrm {p}}\to ({\gamma }^*,{\mathrm {Z}})+1j\) is described in  [6571] and for \({\mathrm {p}}{\mathrm {p}}\to {\mathrm {W}}+0j\), \({\mathrm {p}}{\mathrm {p}}\to {\mathrm {W}}+1j\) in  [69, 72]. The implementations are based on parton-level matrix elements up to NNLO, obtained as kinematic crossings  [39] of the \({\mathrm {e}^+}{\mathrm {e}^-}\to \,jets\) matrix elements. Decays into lepton pairs and the off-shell vector-boson propagator are included. It is also possible to obtain simplified predictions for on-shell vector-boson production in the narrow-width prescription.

4.5 Photon-plus-jet and di-photon production

The production of isolated photons is a classical collider observable. Its theoretical description must account for the experimental prescription that is used to isolate the photons from hadronic activity in the event. This prescription is typically formulated in terms of an isolation cone around the photon direction, which admits only a limited amount of hadronic energy. All relevant experimental measurements use a fixed-size cone, while theory calculations also consider dynamical isolation cones  [73], which gradually reduce the allowed hadronic energy to zero towards the photon direction in the cone centre. Only fixed-size cones admit some amount of collinear photon radiation off QCD partons, thus inducing a dependence on photon fragmentation processes  [74]. The NNLOJET implementation of \({\mathrm {p}}{\mathrm {p}} \to {\gamma }+X\) and \({\mathrm {p}}{\mathrm {p}} \to {\gamma }+1j\) to NNLO QCD with a dynamical isolation cone is described in  [75]. Its extension to fixed-cone isolation is documented in  [76], employing an empirical parametrization of the photon fragmentation functions  [77]. Di-photon production \({\mathrm {p}}{\mathrm {p}} \to {\gamma }{\gamma }\) is currently implemented to NNLO QCD only for dynamical cone isolation  [78]. The matrix elements up to NNLO QCD for both processes are taken from  [7982].

4.6 Higgs-boson-plus-jet production

The dominant Higgs-boson-production process at the LHC is gluon fusion, which is mediated through a virtual top-quark loop. The NNLOJET implementation of \({\mathrm {p}}{\mathrm {p}} \to {\mathrm {H}}+0j\) and \({\mathrm {p}}{\mathrm {p}} \to {\mathrm {H}}+1j\) to NNLO QCD is described in  [83]. It is based on an effective field theory (EFT) which couples the Higgs-boson to the gluon field strength, resulting from integrating out the top-quark loop in the infinite-mass limit  [84, 85]. The relevant matrix elements up to NNLO are based on  [8690]. The Higgs boson is considered to be on-shell and a narrow-width approximation is used. Besides the on-shell Higgs production, the Higgs decay modes to \(2{\gamma }\)  [91], \(4{\ell }\) and \(2{\ell } 2{\nu }\)  [92] as well as to \(2{\ell }+{\gamma }\)  [93] are implemented, allowing arbitrary fiducial cuts on the Higgs decay products. Heavy-quark mass corrections are implemented at LO QCD for \({\mathrm {p}}{\mathrm {p}} \to {\mathrm {H}}+0j\) and \({\mathrm {p}}{\mathrm {p}} \to {\mathrm {H}}+1j\), allowing for a multiplicative reweighting of the infinite-mass EFT predictions.