%!TEX root=manual \subsection{Statistics} \label{sec:stat} \mcmule{} is a Monte Carlo program. This means it samples the integrand at $N$ (pseudo-)random points to get an estimate for the integral. However, because it uses the adaptive Monte Carlo integration routine {\tt vegas}~\cite{Lepage:1980jk}, we split $N=i\times n$ into $i$ iterations ({\tt itmx}), each with $n$ points ({\tt nenter}). After each iteration, {\tt vegas} changes the way it will sample the next iteration based on the results of the previous one. Hence, the performance of the integration is a subtle interplay between $i$ and $n$ -- it is not sufficient any more to consider their product $N$. Further, we always perform the integration in two steps: a pre-conditioning with $i_\text{ad}\times n_\text{ad}$ ({\tt nenter\_ad} and {\tt itmx\_ad}, respectively), that is used to optimise the integration strategy and after which the result is discarded, and a main integration that benefits from the integrator's understanding of the integrand. Of course there are no one-size-fits-all rules of how to choose the $i$ and $n$ for pre-conditioning and main run. However, the following heuristics have proven helpful: \begin{itemize} \item $n$ is always much larger than $i$. For very simple integrands, $n=\mathcal{O}(10\cdot 10^3)$ and $i=\mathcal{O}(10)$. \item Increasing $n$ reduces errors that can be thought of as systematic because it allows the integrator to discover' new features of the integrand. Increasing $i$ on the other hand will rarely have that effect and only improves the statistical error. This is especially true for distributions. \item There is no real limit on $n$, except that it has to fit into the datatype used -- integrations with $n=\mathcal{O}(2^{31}-1)$ are not too uncommon -- while $i$ is rarely (much) larger than 100. \item For very stringent cuts it can happen that that typical values of $n_\text{ad}$ are too small for any point to pass the cuts. % This situation is refered to as a \aterm{Scarcity Condition due % to Restrictions in the Evaluation With User Problems}{SCREW-UP}. In this case {\tt vegas} will return {\tt NaN}, indicating that no events were found. Barring mistakes in the definition of the cuts, a pre-pre-conditioning with extremely large $n$ but $i=1\!-\!2$ can be helpful. \item $n$ also needs to be large enough for {\tt vegas} to reliably find all features of the integrand. It is rarely obvious that it did, though sometimes it becomes clear when increasing $n$ or looking at intermediary results as a function of the already-completed iterations. \item The main run should always have larger $i$ and $n$ than the pre-conditioning. Judging how much more is a delicate game though $i/i_\text{ad} = \mathcal{O}(5)$ and $n/n_\text{ad} = \mathcal{O}(10\!-\!50)$ have been proven helpful. \item If, once the integration is completed, the result is unsatisfactory, take into account the following strategies \begin{itemize} \item A large $\chi^2/\rm{d.o.f.}$ indicates a too small $n$. Try to increase $n_\text{ad}$ and, to a perhaps lesser extent, $n$. \item Increase $i$. Often it is a good idea to consciously set $i$ to a value so large that the integrator will never reach it and to keep looking at intermediary' results. \item If the error is small enough for the application but the result seems incorrect (for example because the $\xc$ dependence does not vanish), massively increase $n$. \end{itemize} \item Real corrections need much more statistics in both $i$ and $n$ ($\mathcal{O}(10)$ times more for $n$, $\mathcal{O}(2)$ for $i$) than the corresponding \ac{LO} calculations because of the higher-dimensional phase-space. \item Virtual corrections have the same number of dimensions as the \ac{LO} calculation and can go by with only a modest increase to account for the added functional complexity. \item {\tt vegas} tends to underestimate the numerical error. \end{itemize} These guidelines are often helpful but should not be considered infallible as they are just that -- guidelines. \mcmule{} is not parallelised; however, because Monte Carlo integrations require a random seed anyway, it is possible to calculate multiple estimates of the same integral using different random seeds $z_1$ and combining the results obtained this way. This also allows to for a better, more reliable understanding of the error estimate.