## WIP:Yfs nnlo

This is the merge request for the NNLO QED and NLO EW corrections in PHOTONS. The main changes relate to the folder PHOTONS++/MEs/ .

The collinear approximation is now calculated using the correct set of momenta by implementing it as an ME as well.

The Z-, W- and Higgs-decays now contain NLO EW corrections in the virtual corrections. These corrections are turned on using the runcard parameter "YFS_EW_CORRECTIONS", and the default for this is 1. In the case of Z- and Higgs-decays, one can turn off the purely weak corrections by setting this parameter to 0, while in the W-decay, this is not possible and will lead to an error message. The corrections are contained in the classes EW_One_Loop_Functions_Base, which contains all the self energies and counterterms in the on-shell renormalization scheme, and the respective classe X_Decay_EW_One_Loop_Functions, which contain the relevant vertex form factors and assemble the correct counterterms. The real corrections have been revalidated.

For the Z- and Higgs-decays, there are now also NNLO QED corrections. As the components for this are memory intensive, the use of them has to explicitly be turned on in the configuration, using the flag "--enable-yfs-nnlo". The double virtual corrections in Z-decays follow Nucl. Phys. B297, (1988), 429-478, while in Higgs-decays we only use the leading-log behaviour, 1/2*L^2. The double real corrections are implemented diagram by diagram by splitting them into relevant X- and Y-functions. The real-virtual corrections have been calculated using FeynCalc 9.0.1, and the relevant notebooks can be found in PHOTONS++/MEs/RVTools. These calculations were translated into functions in this folder. Each case, box diagrams, vertex corrections, insertions of bubbles on internal fermion propagators, and the corrections due to counterterms and the infrared subtraction factor B, are included in a relevant class. They are set up as coefficients multiplying a number of standard matrix elements built out of the available spinors and four-momenta. The calculation in the main MEs proceeds by tabulating all coefficients and then assembling these together with the relevant standard MEs. For the real-virtual, there are two rescue systems. If any of the invariants sik between one of the leptons and the photon is smaller than a small multiple of m_l^2, the real-virtual is only calculated in a collinear approximation as the MEs tend to become unstable. If this is not the case, then the full ME is used. In addition, we also calculate the full ME using scaled parameters to check that the full ME follows the correct behaviour upon scaling each dimensional parameter (being a four point function, it should not scale itself). Only if this test also passes, is the ME calculated this way.

For the purpose of these calculations, the master and PV integrals in METOOLS/Loops have been extended, and restructured. Most cases should now be calculable.

Relevant example runcards, and the analyses used for 1809.10650, can be found in Examples/YFS_Examples. There is a runcard for Z-decays for each level of accuracy (soft, soft-collinear, NLO QED, NLO EW, NNLO QED, NNLO QED + NLO EW).

There are also classes in EXTRA_XS/NLO that have been used in the validation of the NLO EW cross section. These currently do not compile as some of the syntax for the Tree_ME2_Base seems to have changed.