The Moses software is a C++ framework for developing new HEP models according to which events can be generated using Pythia8. Moses is built as a set of interfaces to some known tools like Pythia8, HepPDT, LHAPDF, FastJet and ROOT.The context of "new HEP models" corresponds to new 2→1, 2→2 and 2→3 hard-processes. It is assumed that these processes can be described by some differential cross-section functions. In Pythia8, the user is expected to formulate these new functions according to some given conventions. In Moses, one can do so by utilizing its interfaces where these functions can be either analyzed separately, interfaced with Pythia8 to generate events, or both.
This software was developed during an MCnet 4-months project in UCL (UK), It was further developed in Tel Aviv University and in Sheffield University. This release (1.<y>.<z>) is a proof-of-concept version and it includes a certain Kaluza-Klein (KK) model of extra dimensions was implemented. For this model, events consisting of exited KK states of the SM Z0 and photon can be generated.
This software requires ROOT, LHAPDF, HepPDT, FastJet and Pythia8 to be installed.
To configure and build Moses,
To clean the installation of compiled objects,
To complete purge of transient files,
and to unset all the exported variables,
To unset all the exported variables,
On every logon, some variables must be set for runtime or for re-make,
There's a special helper script for handling with
running and re-making the various executables,
To see all the helper script options,
All the output is, essentially, either flat files (.dat etc), or .root files (trees or canvases) or .eps files.
All the executables output go by default to,
To see the data in its default location,
The Moses software structure
In general, the basic structure is very simple so it can be very easy to either run the examples and to allow further personal development on top of the existing structure. The common area (under the moses-<x>.<y>.<z>/examples) contains common code so it can be linked against any package (also under the examples directory). Each package (one directory) should correspond to a single model. In other words, a single hard process with the specific related tasks to be executed (except for the tasks that can be thought of as common to several packages). The user can copy code from these two areas for his own needs, add new libraries or add new packages just like it is done in the examples directory. For a detailed picture of the Moses software structure, see figure 1. The compilation flow is organized from the lowest level (core) to the highest level (models), so when standing in one location which contains a Makefile and executing make, everything that is at higher levels will also compile if changed. The moses-<x>.<y>.<z>/make.mk and moses-<x>.<y>.<z>/examples/common/commonmake.mk files contain global definitions at different levels to avoid rewriting these definition in each of the other Makefiles. Thus, either one or two of theses files have to be included in every Makefile depending on the context. Note that there can be many tasks placed under each model directory. That includes oriented plugins and/or main programs like MC-programs (pythia8-mains, pythia8-plugins), theoretical-analysis programs, data-analysis programs etc. Therefore, there are some places where one can find specific higher levels than the ones sketched in figure 1. In particular there are analysis directories that encapsulate several analysis tasks, some of which presented in this paper.