Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aejr_v1_0.tar.gz(9 Kbytes)
Manuscript Title: Generating heavy particles with energy and momentum conservation
Authors: Michal Meres, Ivan Melo, Boris Tomásik, Vladimír Balek, Vladimír Cerný
Program title: REGGAE (REscatterig-after-Genbod GenerAtor of Events)
Catalogue identifier: AEJR_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 182(2011)2561
Programming language: C++.
Computer: PC Pentium 4, though no particular tuning for this machine was performed.
Operating system: Originally designed on Linux PC with g++, but it has been compiled and ran successfully on OS X with g++ and MS Windows with Microsoft Visual C++ 2008 Express Edition, as well.
RAM: This depends on the number of particles which are generated. For 10 particles like in the attached example it requires about 120 kB.
Keywords: multiparticle production, Monte Carlo generator, energy and momentum conservation.
PACS: 25.75.-q, 25.75.Dw, 25.75.Gz, 25.75.Ld, 25.75.Nq.
Classification: 11.2.

Nature of problem:
The task is to generate momenta of a sample of particles with given masses which obey energy and momentum conservation. Generated samples should be evenly distributed in the available Lorentz invariant phase space.

Solution method:
In general, the algorithm works in two steps. First, all momenta are generated with the GENBOD algorithm. There, particle production is modelled as a sequence of two-body decays of heavy resonances. After all momenta are generated this way, they are reshuffled. Each particle undergoes a collision with some other partner such that in the pair centre of mass system the new directions of momenta are distributed isotropically. After each particle collides only a few times, the momenta are distributed evenly across the whole available phase space. Starting with GENBOD is not essential for the procedure but it improves the performance.

Running time:
This depends on the number of particles and number of events one wants to generate. On a LINUX PC with 2 GHz processor, generation of 1000 events with 10 particles each takes about 3 s.