This paper describes BEAM, a general purpose Monte Carlo code to simulate the radiation
beams from radiotherapy units including high-energy electron and photon beams, 60Co
beams and orthovoltage units. The code handles a variety of elementary geometric entities
which the user puts together as needed (jaws, applicators, stacked cones, mirrors,
etc.), thus allowing simulation of a wide variety of accelerators. The code is not
restricted to cylindrical symmetry. It incorporates a variety of powerful variance
reduction techniques such as range rejection, bremsstrahlung splitting and forcing
photon interactions. The code allows direct calculation of charge in the monitor ion
chamber. It has the capability of keeping track of each particle's history and using
this information to score separate dose components (e.g., to determine the dose from
electrons scattering off the applicator). The paper presents a variety of calculated
results to demonstrate the code's capabilities. The calculated dose distributions
in a water phantom irradiated by electron beams from the NRC 35 MeV research accelerator,
a Varian Clinac 2100C, a Philips SL75-20, an AECL Therac 20 and a Scanditronix MM50
are all shown to be in good agreement with measurements at the 2 to 3% level. Eighteen
electron spectra from four different commercial accelerators are presented and various
aspects of the electron beams from a Clinac 2100C are discussed. Timing requirements
and selection of parameters for the Monte Carlo calculations are discussed.