AGILe is A Generator Interface Library (& executable), i.e. a uniform object oriented C++ interface for a variety of Fortran-based Monte Carlo event generators. The role of AGILe is to provide a standard steering interface for Fortran generator codes which usually do not come with an executable, usually need to be recompiled to change parameter settings, and cannot write output into the C++ HepMC event record: AGILe remedies all of these defects.
The stable release of AGILe is version 1.5.1, a patch version for Mac builds released on 2 Feb 2021.
AGILe was originally developed for use by the Rivet MC validation toolkit, but is more generally useable as a generator interfacing layer, for use by anyone who wants a quick, easy and flexible system for steering Fortran generators and producing events in HepMC format.
The agile-runmc executable provides a very powerful yet simple command-line interface for steering a variety of generators: out of the box, AGILe can load generators from the LCG Genser repository as installed on the CERN AFS filesystem. The currently supported generators are:
C++ generators are not supported, as they can all produce HepMC natively (and because they are harder to interface reliably or to support multiple versions due to header files introducing an extra sensitivity to interface fluctuations). We also provide Sacrifice, an interface to Pythia 8.2 that can be configured in a similar manner to AGILe and works well with Rivet. For Pythia 8.3 and later we recommend using the native example programs, e.g. main93.
As the use of C++ generators which natively output HepMC and have more user friendly interfaces increases, there is less need for AGILe. We have no problem with that – indeed we welcome it! AGILe is still useful while Fortran shower generators continue to be used, but core development has effectively ceased since 2011. We are very happy to accept patches for bug fixes, feature improvements, or which add interface code for new Fortran generators.
There is no intention to add AGILe steering support for any C++ shower generators, for a variety of reasons. In particular, we tried it before and it was more trouble than the effort was worth! It is one thing to interface a generator whose interface has not changed in years, quite another to support one whose header files change with every release. But please report your desires for nicer features to the active developers of the C++ generator codes!)