Abstract

A general-purpose, self-adapting Monte Carlo (MC) event generator (simulator) Foam is described. The high efficiency of the MC, that is small maximum weight or variance of the MC weight is achieved by means of dividing the integration domain into small cells. The cells can be n-dimensional simplices, hyperrectangles or a Cartesian product of them. The grid of cells, called “foam”, is produced in the process of the binary split of the cells. The choice of the next cell to be divided and the position/direction of the division hyperplane is driven by the algorithm which optimizes the ratio of the maximum weight to the average weight or (optionally) the total variance. The algorithm is able to deal, in principle, with an arbitrary pattern of the singularities in the distribution. As any MC generator, Foam can also be used for the MC integration. With the typical personal computer CPU, the program is able to perform adaptive integration/simulation of a relatively small number of dimensions (⩽16). With the continuing progress in CPU power, this limit will inevitably get shifted to ever higher dimensions. Foam program is aimed (and already tested) as a component of the MC event generators for the high energy physics experiments. A few simple examples of the related applications are presented. Foam code is written in fully object-oriented style, in the C++ language. Two other versions with a slightly limited functionality, are available in the Fortran77 language. The source codes are available from http://jadach.home.cern.ch/jadach/.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call