# RAMBO Generator

The Rambo algorithm for flat phase-space generation is a standalone utility which is not used by VINCIA internally (VINCIA uses the antenna shower as its phase space generator instead). We (the authors) use the Rambo implementation mostly to make (un)weighted phase-space scans for comparisons between matrix elements and antenna shower expansions, but it is obviously a tool with a great variety of possible uses. If you use it, please add a reference to

• A New Monte Carlo Treatment Of Multiparticle Phase Space At High-Energies, R. Kleiss, W.J. Stirling, S.D. Ellis, CPC40(1986)359

## Methods

When the VINCIA plugin is constructed, a member object called `rambo` is automatically constructed and initialized inside the plugin. As mentioned, this object is not actually used by VINCIA, but is available to the user if needed.

A uniformly distributed (flat) n-particle phase-space point can then be generated by using the member function
 ``` rambo.genPoint(double S,int nPartons,double p); ```
where `S` is the desired center-of-mass energy squared, `nPartons <= 8` sets the multiplicity, and the momenta are returned in the double array `p`, whose entries can be converted to PYTHIA 8's `Vec4` format in the following way:
 ``` Vec4 VecP; VecP.px(p[iParton]); VecP.py(p[iParton]); VecP.pz(p[iParton]); VecP.e(p[iParton]); ```
where `0 <= iParton <= nPartons-1`.

If the particles are massive, the syntax is
 ``` double rambo.genPoint(double S, int nPartons, double m, double p); ```
where `m` contains the masses of the particles. The return value is the weight of the phase space point, which is NOT unity for nonvanishing masses:
 ``` w = (Σi|pi|/ECM) (2*nPartons-3) (Πi |pi|/Ei) ECM/( Σi (pi)2/Ei ) ```

If desired, further `Rambo` generators could in principle be created using the following `Rambo` constructor
 ``` Vincia::Rambo myRambo(myRndmPtr); ```
where `myRndmPtr` should be a pointer to an instance of PYTHIA's `Rndm` class. For most purposes, however, the automatically initialized `rambo` object already provided inside the VINCIA plugin should be sufficient.