\midheading{Diphoton production} \label{subsec:gamgam} Process 285 represents the production of a pair of real photons. Since this process includes two real photons, the cross section diverges when one of the photons is very soft or in the direction of the beam. Thus in order to produce sensible results, the input file must supply values for both ptmin$_{photon}$ and etamax$_{photon}$. This will ensure that the cross section is well-defined. The calculation of process 285 may be performed using either the Frixione algorithm or standard cone isolation. Since version 10.1 also a fixed cone size can be specificed as well as a simple hybrid cone isolation, see ref.~\cite{Neumann:2021zkb}. This process also includes the one-loop gluon-gluon contribution as given in ref.~\cite{Bern:2002jx}. The production of a photon via parton fragmentation is included at NLO and can be run separately by using the frag option in part. This option includes the contributions from the integrated photon dipole subtraction terms and the LO QCD matrix element multiplied by the fragmentation function. The phase space cuts for the final state photons are defined in {\tt{input.ini}}, for multiple photon processes such as {\tt 285 - 287} the $p_T$'s of the individual photons (hardest, second hardest and third hardest or softer) can be controlled independently.The remaining cuts on $R_{\gamma j}$, $\eta_{\gamma}$ etc. are applied universally to all photons. Users wishing to alter this feature should edit the file {\tt{photon\_cuts.f}} in the directory {\tt{src/User}}. This process can be calculated at LO, NLO, and NNLO. NLO calculations can be performed by subtraction, zero-jettiness slicing and $q_T$-slicing. NNLO calculations can be performed by zero-jettiness slicing and $q_T$-slicing. Input files for these 6 possibilities are given in the link below. The fixed-order NNLO calculation has been implemented in ref. \cite{Campbell:2016yrh}. Transverse momentum resummation at the level of $\text{N}^3\text{LL}+\text{NNLO}$ has been implemented in ref. \cite{Becher:2020ugp}. By including the three-loop hard \cite{Caola:2020dfu} and beam functions \cite{Luo:2020epw},\cite{Ebert:2020yqt},\cite{Luo:2019szz} it has been upgraded to $\text{N}^3\text{LL}'$ in ref. \cite{Neumann:2021zkb}. \subsection{Transverse momentum resummation} Transverse momentum resummation can be enabled for process {\tt 285} at highest order $\text{N}^3\text{LL}'+\text{NNLO}$ with `part=resNNLOp`. The setting `part=resNNLO` resums to order $\text{N}^3\text{LL}+\text{NNLO}$ ($\alpha_s^2$ accuracy in improved perturbation theory power counting) and `part=resNLO` to order $\text{N}^3\text{LL}+\text{NLO}$. Note that process 285 with resummation only includes the $q\bar{q}$ channel. The $gg$ channel enters at an increased relative level of $\alpha_s$, so has to be added with process number 2851 at order `part=resNLO` for overall $\text{N}^3\text{LL}'+\text{NNLO}$ precision. For an overall consistent precision of $\text{N}^3\text{LL}+\text{NNLO}$ the $gg$ channel can be added with `part=resLO`. Note that at fixed-order the $gg$ channel is included at NNLO automatically at the level of $\alpha_s^2$. The fixed-order NNLO calculation has been implemented in ref. \cite{Campbell:2016yrh}. Transverse momentum resummation at the level of N$^3$LL+NNLO has been implemented in ref. \cite{Becher:2020ugp}. By including the three-loop hard \cite{Caola:2020dfu} and beam functions \cite{Luo:2020epw},\cite{Ebert:2020yqt},\cite{Luo:2019szz} it has been upgraded to N$^3$LL' in ref. \cite{Neumann:2021zkb}.