Up Next
1 Introduction
Current and planned experiments in high energy physics can probe physics in processes with polarized beams and many tagged particles in the final state. The combinatorial explosion of the number of Feynman diagrams contributing to scattering amplitudes for many external particles calls for the development of more compact representations that translate well to efficient and reliable numerical code. In gauge theories, the contributions from individual Feynman diagrams are gauge dependent. Strong numerical cancellations in a redundant representation built from individual Feynman diagrams lead to a loss of numerical precision, stressing further the need for eliminating redundancies.

Due to the large number of processes that have to be studied in order to unleash the potential of modern experiments, the construction of nearly optimal representations must be possible algorithmically on a computer and should not require human ingenuity for each new application.

O'Mega [1, 2, 3] is a compiler for tree-level scattering amplitudes that satisfies these requirements. O'Mega is independent of the target language and can therefore create code in any programming language for which a simple output module has been written. To support a physics model, O'Mega requires as input only the Feynman rules and the relations among coupling constants.

Similar to the earlier numerical approaches [4] and [5], O'Mega reduces the growth in calculational effort from a factorial of the number of particles to an exponential. The symbolic nature of O'Mega, however, increases its flexibility. Indeed, O'Mega can emulate both [4] and [5] and produces code that is empirically at least twice as fast. The detailed description of all algorithms is contained in the extensively commented source code of O'Mega [1].

In this note, we sketch the architecture of O'Mega and describe the usage of the first version. The building blocks of the representation of scattering amplitudes generated by O'Mega are described in section 2 and directed acyclical graphs are introduced in section 3. The algorithm for constructing the directed acyclical graph is presented in section 4 and its implementation is described in section 6. We conclude with a few results and examples in section 7. Practical information is presented in the appendices: installation of the O'Mega software in appendix A, running of the O'Mega compiler in appendix B and using O'Mega's output in appendix C. Finally, appendix D briefly discusses mechanisms for extending O'Mega.


Up Next