mFOAM-1.02: A Compact Version of the Cellular Event Generator FOAM
S. Jadach, P. Sawicki
TL;DR
This paper presents mFOAM-1.02, a compact, ROOT-integrated version of the FOAM cellular Monte Carlo generator. It details a foam of hyperrectangular cells that self-adapts to complex PDFs to minimize weight variance and improve efficiency, while enabling easy persistence and restart of MC runs. The implementation focuses on a streamlined codebase, ROOT-based persistency, and practical usage through demonstration programs and tutorials. The approach offers a building-block MC tool suitable for high-energy physics phase-space generation and large-scale MC projects, with clear guidance on configuration, usage, and persistency management.
Abstract
The general-purpose self-adapting Monte Carlo (MC) event generator/simulator mFOAM (standing for mini-FOAM) is a new compact version of the FOAM program, with a slightly limited functionality with respect to its parent version. On the other hand, mFOAM is easier to use for the average user. This new version is fully integrated with the ROOT package, the C++ utility library used widely in the particle physics community. The internal structure of the code is simplified and the very valuable feature of the persistency of the objects of the mFOAM class is improved. With the persistency at hand, it is possible to record very easily the complete state of a MC simulator object based on mFOAM and ROOT into a disk-file at any stage of its use: just after object allocation, after full initialization (exploration of the distribution), or at any time during the generation of the long series of MC events. Later on the MC simulator object can be easily restored from the disk-file in the ``ready to go'' state. Objects of TFoam class can be used as a stand-alone solution to many everyday problems in the area of the Monte Carlo simulation, or as building blocks in large-scale MC projects, taking full advantage of the object-oriented technology and persistency.
