% Options for packages loaded elsewhere \PassOptionsToPackage{unicode}{hyperref} \PassOptionsToPackage{hyphens}{url} % \documentclass[ 11pt]{scrartcl} \usepackage{lmodern} \usepackage{amssymb,amsmath} \usepackage{ifxetex,ifluatex} \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{textcomp} % provide euro and other symbols \else % if luatex or xetex \usepackage{unicode-math} \defaultfontfeatures{Scale=MatchLowercase} \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1} \fi % Use upquote if available, for straight quotes in verbatim environments \IfFileExists{upquote.sty}{\usepackage{upquote}}{} \IfFileExists{microtype.sty}{% use microtype if available \usepackage[]{microtype} \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts }{} \makeatletter \@ifundefined{KOMAClassName}{% if non-KOMA class \IfFileExists{parskip.sty}{% \usepackage{parskip} }{% else \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 1pt}} }{% if KOMA class \KOMAoptions{parskip=half}} \makeatother \usepackage{xcolor} \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available \IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} \hypersetup{ pdftitle={ manual}, hidelinks, pdfcreator={LaTeX via pandoc}} \urlstyle{same} % disable monospaced font for URLs \usepackage[top=2.4cm,bottom=2.4cm,left=3.2cm,right=3cm,footskip=0.8cm]{geometry} \usepackage{longtable,booktabs} % Correct order of tables after \paragraph or \subparagraph \usepackage{etoolbox} \makeatletter \patchcmd\longtable{\par}{\if@noskipsec\mbox{}\fi\par}{}{} \makeatother % Allow footnotes in longtable head/foot \IfFileExists{footnotehyper.sty}{\usepackage{footnotehyper}}{\usepackage{footnote}} \makesavenoteenv{longtable} \usepackage{graphicx} \makeatletter \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} \def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} \makeatother % Scale images if necessary, so that they will not overflow the page % margins by default, and it is still possible to overwrite the defaults % using explicit options in \includegraphics[width, height, ...]{} \setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} % Set default figure placement to htbp \makeatletter \def\fps@figure{htbp} \makeatother \setlength{\emergencystretch}{3em} % prevent overfull lines \providecommand{\tightlist}{% \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} \setcounter{secnumdepth}{-\maxdimen} % remove section numbering \usepackage{siunitx} \usepackage[auth-sc]{authblk} \author[1]{Thomas Becher} \author[2]{Tobias Neumann} \affil[1]{Universität Bern, \url{becher@itp.unibe.ch}} \affil[2]{Brookhaven National Laboratory, \url{tneumann@bnl.gov}} \ifluatex \usepackage{selnolig} % disable illegal ligatures \fi \usepackage{scalefnt} \newcommand{\abbrev}{\scalefont{.9}} \newcommand{\NNLO}{\text{\abbrev NNLO}} \title{\includegraphics[width=2.08333in,height=\textheight]{figs/logo.pdf} manual} \date{MCFM v10.0, CuTe-MCFM v1.0 \\ updated March 2021} \begin{document} \maketitle \begin{abstract} CuTe-MCFM is an extension of MCFM for $q_T$ resummation and reaches N$^3$LL precision for all color-singlet processes included in MCFM at NNLO ($W^\pm, Z, H$, $\gamma\gamma, Z\gamma, ZH, W^\pm H$). We document here the resummation features and refer the reader to the the MCFM manual (manual.pdf) for information on MCFM itself. \end{abstract} \tableofcontents \hrulefill This manual describes the installation, use and options for running CuTe-MCFM. For a description of the resummation formalism, underlying choices, and physics examples we refer to our publication \textit{JHEP 03 (2021) 199}, \href{https://arxiv.org/abs/2009.11437}{arXiv:2009.11437}. While the code is easy to run, some parameters must be properly chosen to obtain sensible results. These include a technical cutoff on the matching corrections at low $q_T$ and the choice of a function which governs the transition from resummation to the fixed-order result. We will provide the definition of the parameters in this manual, and the appropriate choice for different processes is detailed in our publication. \hypertarget{processes-available-for-resummation}{% \subsection{Processes available for resummation}\label{processes-available-for-resummation}} The processes listed below are available for N\(^3\)LL+NNLO computations. They can be calculated with or without decays. Any further color-singlet processes implemented in MCFM at NNLO (NLO) can easily be interfaced with N\(^3\)LL (N\(^2\)LL) \(q_T\) resummation.\footnote{We are happy to provide details about how to do this.} The first set of processes below have been thoroughly studied as part of our publication. We provide input files with a suitably chosen set of input parameters for all of them. \begin{itemize} \tightlist \item \(W^+(\to e^+ \nu)\) (\texttt{nproc=1}) (\texttt{input\_W+.ini}) \item \(W^-(\to e^- \bar\nu)\) (\texttt{nproc=6}) (\texttt{input\_W-.ini}) \item \(Z(\to e^+ e^-)\) (\texttt{nproc=31}) (\texttt{input\_Z.ini}) \item \(H(\to \gamma \gamma)\) (\texttt{nproc=119}) (\texttt{input\_Higgs.ini}) \item \(\gamma\, \gamma\) (\texttt{nproc=285}) (\texttt{input\_GammaGamma.ini}) \item \(gg \to \gamma\, \gamma\) at N\(^2\)LL+NLO (\texttt{nproc=2851}) \item \(Z(\to e^+ e^-)\, \gamma\) (\texttt{nproc=300}) (\texttt{input\_ZGamma.ini}) \end{itemize} The second set of processes below are ready to use, and we have checked that the fixed-order expansion of the resummed result and the fixed-order cross-section approach each other towards \(q_T\to0\). However, the transition function parameter might need adjustment. Please contact the authors if you are unsure about this. \(Z\) production: \begin{itemize} \tightlist \item \(Z(\to 3\nu \bar\nu)\) (\texttt{nproc=32}) \end{itemize} Higgs production: \begin{itemize} \tightlist \item \(H(\to \tau \bar\tau)\) (\texttt{nproc=112}) \item \(H(\to b \bar b)\) (\texttt{nproc=111}) \end{itemize} \(Z\gamma\) production: \begin{itemize} \tightlist \item \(Z(\to 3 \nu \bar\nu)\, \gamma\) (\texttt{nproc=305}) \end{itemize} \(W^\pm H\) production: \begin{itemize} \tightlist \item \(W^+(\to e^+ \nu )\, H(\to \tau \bar\tau)\) (\texttt{nproc=91}) \item \(W^+(\to e^+ \nu )\, H(\to b \bar b)\) (\texttt{nproc=92}) \item \(W^-(\to e^- \bar\nu )\, H(\to \tau \bar\tau)\) (\texttt{nproc=96}) \item \(W^-(\to e^- \bar\nu )\, H(\to b \bar b)\) (\texttt{nproc=97}) \item \(W^+(\to e^+ \nu )\, H(\to \gamma\gamma)\) (\texttt{nproc=93}) \item \(W^-(\to e^- \bar\nu )\, H(\to \gamma\gamma)\) (\texttt{nproc=98}) \end{itemize} \(ZH\) production: \begin{itemize} \tightlist \item \(Z(\to e^+ e^-) \, H(\to \tau \bar\tau)\) (\texttt{nproc=110}) \item \(Z(\to e^+ e^-) \, H(\to b \bar b)\) (\texttt{nproc=101}) \item \(Z(\to e^+ e^-) \, H(\to \gamma \gamma)\) (\texttt{nproc=104}) \end{itemize} Further decay channels are available in principle, but will need some checking. Please contact the authors if you are interested in a specific process. \hypertarget{mcfm-compilation-quick-start}{% \subsection{MCFM compilation quick start}\label{mcfm-compilation-quick-start}} Please refer to the full MCFM manual for details beyond this quick start guide. In the simplest case (on most Linux systems), to install CuTe-MCFM and all dependencies for execution on a single computer, execute the command \texttt{cmake ..} in the \texttt{Bin} directory. MCFM requires the GNU compiler gcc/g++ and gfortran version 7 or greater. Please type \texttt{gfortran --version} to verify the compiler version. On some systems these commands are linked against a different compiler. For example on Mac OS X systems this is typically the case. To set the correct compiler commands please add the flags \texttt{-DCMAKE\_Fortran\_COMPILER=mygfortran}, \texttt{-DCMAKE\_C\_COMPILER=mygcc} and \texttt{-DCMAKE\_CXX\_COMPILER=myg++}, where \texttt{mygfortran}, \texttt{mygcc} and \texttt{myg++} are the commands for the Fortran, C, and C++ compilers of the GNU gcc suite of at least version 7. That is, in the \texttt{Bin} directory run cmake with the specified compiler commands as in \texttt{cmake .. -DCMAKE\_Fortran\_Compiler=mygfortran}. By default a bundled LHAPDF library is compiled and linked against. If you prefer to use a system installation please add the cmake options \texttt{-Duse\_internal\_lhapdf=Off -Duse\_external\_lhapdf=On}.\footnote{Do not use an external installation of version LHAPDF-6.3.0 or newer, since this has a critical multithreading bug.} If the library is in a non-standard location another option like \texttt{-DCMAKE\_PREFIX\_PATH=/usr/local}, which adds the path to the cmake library search path, might be necessary. If CMake does not report any problems you can start the compilation of MCFM with \texttt{make -j4}, where 4 (or more) is the number of compilation threads. Upon successful compilation, the executable \texttt{mcfm} is produced and can be called with an input file as argument, for example \texttt{./mcfm input\_Z.ini}. To prepare MCFM with MPI support add the argument \texttt{-Duse\_mpi=On} to the cmake call before running \text{make}. At the same time custom compiler command names must be specified with \texttt{-DCMAKE\_Fortran\_COMPILER=mpifort} and \texttt{-DCMAKE\_CXX\_COMPILER=mpic++}. The commands \texttt{mpifort} and \texttt{mpic++} must be used when compiling with MPI support. In this case, please ensure again that \texttt{mpifort ----version} and \texttt{mpic++ ----version} report the GNU compiler and a version greater than 7. It can happen that the CMake cache gets corrupted with wrong configuration options. If you change options and errors occur, please try to delete the file \texttt{CMakeCache.txt} and directory \texttt{CMakeFiles} and restart \texttt{cmake ..} with the appropriate arguments. \hypertarget{using-cute-mcfm-resummation}{% \subsection{Using CuTe-MCFM resummation}\label{using-cute-mcfm-resummation}} While CuTe-MCFM can calculate \(q_T\)-resummed results without using pregenerated beam functions grids, we recommend that LHAPDF grid files are generated for the beam functions beforehand for a choice of a PDF set. This \emph{significantly} accelerates the evaluation of the beam functions and the integration. CuTe-MCFM ships with pregenerated beamfunction grids for the central values of \texttt{CT14nnlo} and \texttt{NNPDF31\_nnlo\_as\_0118}, which are included in the \texttt{Bin/PDFs} directory. This path is automatically used as the preferred path for LHAPDF grid files. With these pregenerated grids the example input files work out of the box. For other PDF sets or when using PDF errors, the first run of CuTe-MCFM should be with the setting \texttt{makegrid=.true.}. Additionally the input and output directories for the PDF grids have to be specified. For example the input directory is typically \texttt{/usr/local/share/LHAPDF/} (or the \texttt{PDFs/} directory relative to the mcfm executable in \texttt{Bin}) and the output directory should be a user-writeable directory like \texttt{/home/user/gridout/} (or \texttt{PDFs/}). Note the trailing slashes. When calling mcfm with \texttt{makegrid=.true.} only the beam function grids are written during that run, and mcfm exits afterwards. We recommend to use \texttt{PDFs/} as the gridout path, since this path is automatically added to the LHAPDF search paths, and you won't have to copy the generated grid directories to your LHAPDF grid directory or set the \texttt{LHAPDF\_DATA\_PATH} environment variable to the gridout path. For example for the set CT14nnlo the grid directories \texttt{CT14nnlo\_B00}, \texttt{CT14nnlo\_B10}, \texttt{CT14nnlo\_B11}, \texttt{CT14nnlo\_B20}, \texttt{CT14nnlo\_B21}, \texttt{CT14nnlo\_B22} and \texttt{CT14nnlo\_G10} are written and have to be copied to the directory where LHAPDF searches for the grid files. When the gridout path is chosen as \texttt{PDFs/} no further action is necessary. The LHAPDF grid file search path can be modified by setting the shell environment variable \texttt{LHAPDF\_DATA\_PATH} to the desired directory, but the \texttt{PDFs} directory is always used as the preferred directory. The next run of mcfm should be done with \texttt{makegrid=.false.} and \texttt{usegrid=.true.}. Other important parameters for the resummation are \texttt{res\_range}, determining the integration range of the purely resummed part, \texttt{resexp\_range}, determining the integration range of the fixed-order expanded resummed part, and \texttt{fo\_cutoff} which sets the lower \(q_T\) cutoff for the fixed-order part. Typically this cutoff should agree with the lower range of \texttt{resexp\_range}. For example for \(Z\) production one can integrate up to \(m_Z\) with a cutoff of \SI{1}{\GeV}: \texttt{res\_range = 0.0 90.0}, \texttt{resexp\_range = 1.0 90.0}, \texttt{qt\_cutoff = 1.0}. For details regarding these parameters see the next section. The transition function is also discussed below. \hypertarget{input-file-parameters}{% \subsection{Input file parameters}\label{input-file-parameters}} The \texttt{[resummation]} section has been added to the input file to control the resummation. The following keys are available: \begin{longtable}[]{@{}ll@{}} \toprule \begin{minipage}[b]{0.24\columnwidth}\raggedright Key\strut \end{minipage} & \begin{minipage}[b]{0.71\columnwidth}\raggedright Description\strut \end{minipage}\tabularnewline \midrule \endhead \begin{minipage}[t]{0.24\columnwidth}\raggedright \texttt{usegrid}\strut \end{minipage} & \begin{minipage}[t]{0.71\columnwidth}\raggedright \texttt{.true.} or \texttt{.false.} determines whether pregenerated LHAPDF interpolation grids should be used for the resummation beam functions.\strut \end{minipage}\tabularnewline \begin{minipage}[t]{0.24\columnwidth}\raggedright \texttt{makegrid}\strut \end{minipage} & \begin{minipage}[t]{0.71\columnwidth}\raggedright If \texttt{.true.}, then MCFM runs in grid generation mode. This generates LHAPDF grid files in the directory \texttt{gridoutpath} from LHAPDF grids in the directory \texttt{gridinpath}. After the grid generation MCFM stops and should be run subsequently with \texttt{makegrid = .false.} and \texttt{usegrid = .true.}. When \texttt{lhapdf\%dopdferrors=.true.} then also grids for the error sets are generated.\strut \end{minipage}\tabularnewline \begin{minipage}[t]{0.24\columnwidth}\raggedright \texttt{gridoutpath}\strut \end{minipage} & \begin{minipage}[t]{0.71\columnwidth}\raggedright Output directory for LHAPDF grid files, for example \texttt{/home/tobias/local/share/LHAPDF/}\strut \end{minipage}\tabularnewline \begin{minipage}[t]{0.24\columnwidth}\raggedright \texttt{gridinpath}\strut \end{minipage} & \begin{minipage}[t]{0.71\columnwidth}\raggedright Input directory for LHAPDF grid files, for example \texttt{/home/tobias/local/share/LHAPDF/}\strut \end{minipage}\tabularnewline \begin{minipage}[t]{0.24\columnwidth}\raggedright \texttt{res\_range}\strut \end{minipage} & \begin{minipage}[t]{0.71\columnwidth}\raggedright Integration range of purely resummed part, for example \texttt{0.0 80.0} for \(q_T\) integration between 0 and 80 GeV.\strut \end{minipage}\tabularnewline \begin{minipage}[t]{0.24\columnwidth}\raggedright \texttt{resexp\_range}\strut \end{minipage} & \begin{minipage}[t]{0.71\columnwidth}\raggedright Integration range of fixed-order expanded resummed part, for example \texttt{1.0 80.0} for \(q_T\) integration between 1 and 80 GeV.\strut \end{minipage}\tabularnewline \begin{minipage}[t]{0.24\columnwidth}\raggedright \texttt{fo\_cutoff}\strut \end{minipage} & \begin{minipage}[t]{0.71\columnwidth}\raggedright Lower \(q_T\) cutoff $q_0$ for the fixed-order part, see eq.~\eqref{eq:matchingmod} below. Typically the value should agree with the lower range of \texttt{resexp\_range}.\strut \end{minipage}\tabularnewline \begin{minipage}[t]{0.24\columnwidth}\raggedright \texttt{transitionswitch}\strut \end{minipage} & \begin{minipage}[t]{0.71\columnwidth}\raggedright Parameter passed to the plotting routine to modify the transition function, see text.\strut \end{minipage}\tabularnewline \bottomrule \end{longtable} We strongly recommend to calculate resummed results with pregenerated grids, see the previous section. The integration range for the purely resummed part can be controlled with the key \texttt{res\_range} and should typically be between \(0\) and some upper value. For example for \(W^\pm, Z\) or \(H\) production this can just be the boson mass. For other processes there can be thresholds and this number must be selected more carefully to not run into numerical issues, see arXiv:2009.11437. The setting \texttt{resexp\_range} and \texttt{fo\_cutoff} are relevant for the matching corrections. The values of the \texttt{resexp\_range} determine the integration range for the fixed-order expansion of the resummed part. The minimum should typically be at least one GeV for numerical stability. For smaller values significantly more time goes into the integration, and the minimum number of Vegas calls might need to increased. For single boson processes the maximum value can again be the boson mass, although it can be set to a value where the implemented transition function fully switches to zero. The fixed-order cutoff \texttt{fo\_cutoff} determines the minimum \(q_T\) for the fixed-order calculation. This should typically agree with the lower range of the \texttt{resexp\_range}. Lastly, the parameter \texttt{transitionswitch} is passed for convenience to the plotting routines where the transition function is implemented. It can be used for for an easy control of the transition region as described in the following. \hypertarget{plotting-and-transition}{% \subsection{Plotting routine and transition function}\label{plotting-and-transition}} The following transition function is implemented for the example input files. For more details we refer to our publication. The fully matched cross-section is described in general by \begin{equation}\label{eq:matchingmod} \left.\frac{\mathrm{d}\sigma^{\text{N$^3$LL}}}{\mathrm{d}q_T}\right|_\text{matched to \NNLO{}} = t(x) \left( \frac{\mathrm{d}\sigma^{\text{N$^3$LL}}}{\mathrm{d}q_T} + \left.\Delta\sigma\right|_{q_T>q_0} \right) + (1-t(x)) \frac{\mathrm{d}\sigma^\NNLO{}}{\mathrm{d}q_T}\, \end{equation} using a transition function $t(x)$. We have implemented a transition function $t$ with $x=q_T^2/Q^2$ that smoothly switches between 1 and 0 like a sigmoid function. Following a choice in CuTe, we first define \[ s(x;l,r,u) = \left (1 + \exp\left(\log\left(\frac{1-u}{u}\right) \frac{x-m}{w}\right) \right )^{-1}\,,\quad m = (r+l)/2\,,\quad w = (r-l)/2\,. \] The function $s(x)$, parametrized by $l,r,u$, is defined to be $s(l)=1-u$ and $s(r)=u$. In terms of this sigmoid, our transition function $t(x; x^\text{min},x^\text{max},u)$, where $x=q_T^2/Q^2$, is then defined by \begin{equation}\label{eq:transition} t(x; x^\text{min},x^\text{max},u) = \left\{\begin{array}{lr} 1 , & \text{for } x < x^\text{min}\\ \frac{s(x; x^\text{min}, x^\text{max},u)}{s(x^\text{min}; x^\text{min}, x^\text{max},u)}, & \text{otherwise} \end{array}\right\}\,. \end{equation} This ensures that below $x^\text{min}=(q_T^\text{min}/Q)^2$ only the naively matched result is used, and at $x^\text{max}$ for small $u\ll1$ the transition function is approximately $u$. In practice it makes sense to set the transition function to zero below a small threshold like $10^{-3}$ without a noticeable discontinuity. This has the advantage that the deteriorating resummation and matching corrections do not impact the region of large $q_T$ at all. Our example plotting routines use $x^\text{min}=0.001$, and $u=0.001$, and the parameter $x^\text{max}$ corresponds to the value of \texttt{transitionswitch} set in the input file. The transition function can be changed or completely replaced by just modifying the plotting routines. The following figure illustrates this transition function. \begin{figure}[t!] \centering \includegraphics{figs/transition.pdf} \caption{The transition function defined in eq.~\eqref{eq:transition} for different values of the parameter $x^\text{max}$ which determines the position of the transition. The $x$-axis is displayed on a square-root scale to guide the eye on the quadratic $q_T$-dependence.} \label{fig:transition} \end{figure} \paragraph{Modifying the plotting routines and transition function.} The plotting infrastructure has been completely rewritten in this version of MCFM, and we recommended to only use the new infrastructure from this point on by setting \texttt{histogram\%newstyle = .true.} in the input file. This is the default for the CuTe-MCFM example input files. For the processes \(W^\pm,Z,H\), \(\gamma\gamma\), \(Z\gamma\), \(ZH\) and \(W^\pm H\) we include predefined plotting routines that can be adjusted. For example for \(Z\) production the plotting routine is in the file \texttt{src/User/nplotter\_Z\_new.f90}, and similarly for the other processes. The routine \texttt{setup} defines all histograms with custom or uniform binning and names. The number of used histograms needs to be allocated in this routine. The routine \texttt{book} is called for each phase space point. Through the boolean variable \texttt{abovecut} it is known whether the routine is called for ``boosted \(q_T=0\)'' (resummed part and fixed-order expansion of resummed part) or for \(q_T>0\) (fixed-order). All provided example input files use the transition function as defined above, see also arXiv:2009.11437. The plotting routine returns the calculated observables in the \texttt{vals} array, and Vegas weights in \texttt{wts}. The transition function is implemented by reweighting the original Vegas weights with the output of the transition function. To disable the transition function, one sets \texttt{trans} to \(1\) before filling the \texttt{wts} array. Apart from modifying a default set of kinematical cuts in the input file, cuts can also be set in the file \texttt{src/User/gencuts\_user.f90} in a fully flexible way based on the event's four momenta. Some commented out examples are included there. \hypertarget{development-details}{% \section{Development details}\label{development-details}} We briefly document information for modifying and extending the resummation code. \hypertarget{relevant-files-for-q_t-resummation}{% \subsection{\texorpdfstring{Relevant files for \(q_T\) resummation}{Relevant files for q\_T resummation}}\label{relevant-files-for-q_t-resummation}} \begin{itemize} \tightlist \item \texttt{src/Mods/mod\_Beamfunctions.f90}: Implementation of beam functions. \texttt{getbeam} returns beam function components for a specified power of \(\alpha_s\) and \(L_\perp\) for \(q\bar{q}\) initial states, while \texttt{getbeam2} is for \(gg\) initial states. \item \texttt{src/Mods/mod\_ResummationGrid.f90}: Implementation of LHAPDF grid generation for beam functions, with implementations for OpenMP, MPI and Fortran Coarrays. \item \texttt{src/Mods/mod\_Resummation\_params.f90}: Saves integration range variables from input file. \item \texttt{src/Mods/mod\_ResummationFourier.f90}: Implementation of Fourier integral for both \(q\bar{q}\) and \(gg\) initial states. \item \texttt{src/Mods/mod\_Resummation.f90} Ties together all components above in subroutine \texttt{resummation}; determines scale \(q^*\); proper evolution of \(\alpha_s\) over quark mass thresholds; includes procedure for recoil boost; \item \texttt{src/Procdep/resint.f90}: Overall integration routine that generates phase-space; calls boost routine; evaluates matrix elements; calls resummation and fixed-order expansion of resummation \end{itemize} \end{document}