rivet is hosted by Hepforge, IPPP Durham
close Warning: Can't synchronize with repository "(default)" (Repository path '/hepforge/hg/rivet/public/rivet' does not exist.). Look in the Trac log for more information.

Version 113 (modified by Andy Buckley, 10 years ago) (diff)

--

Getting started with Rivet

These instructions are aimed at users who want to install and run a release of Rivet. GettingStartedForDevelopers has some additional or replacement steps for people wishing to check out the development version from the repository and build from there.

Rivet installation instructions

If you are installing Rivet on an Apple Mac, please take a look at the MacInstallationIssues first.

Automated installation

The simplest Rivet installation from source uses a "bootstrap" script to install Rivet, plus some dependency libraries if required. The script will also try to use copies of the dependencies from the CERN AFS area if it is mounted on your system at /afs/cern.ch. Due to the way that the CERN packages are installed, and the need to use a non-system compiler and library set, it is very recommended that you use the script installation to get Rivet working at CERN.

  1. Download the bootstrap script from http://svn.hepforge.org/rivet/bootstrap/rivet-bootstrap into a temporary working directory, and make it executable:
      cd /scratch/rivet
      wget http://svn.hepforge.org/rivet/bootstrap/rivet-bootstrap
      chmod +x rivet-bootstrap
    
  1. Run the script, with your chosen installation directory (e.g. $HOME/local) as an optional argument. By default the script will install to $PWD/local, where $PWD is the current directory. You can get usage information with
    ./rivet-bootstrap --help
    

and then to install, run

./rivet-bootstrap --prefix=$HOME/local

or just

./rivet-bootstrap

to install to $PWD/local. We will refer to the installation root path as $PREFIX.

Troubleshooting: the curse of Boost!

A typical stumbling point on systems where not all packages are either installed via a system package manager or in the LCG area, is the Boost package on which Rivet depends (it is a library of future C++ standard library feature candidates). If you have an installation of Boost on your system in a non-standard place, e.g. /sw or /opt, then you can point the bootstrap at this with the --boost option:

./rivet-bootstrap --boost=/opt

This usually works, but Boost is often installed in strangely non-standard ways! The above command implies that the bootstrap will be able to find the Boost headers in either /opt/include/boost or /opt/include/boost-1_XXX/boost (where XXX is the Boost version: we just look for the include/boost-* pattern.) If you don't have Boost installed in one of these forms, you will have to "normalise" the Boost header directory structure by judicious use of symlinks.

Finally, if you have no Boost on your system at all, and you can't get a pre-packaged one with your system package manager, you can tell the bootstrap to install its own copy in $PREFIX:

./rivet-bootstrap --install-boost

Note that to save time this will just copy the Boost headers into place -- most of Boost is a purely header library, which is sufficient for Rivet and AGILe.

  1. After the script grinds away for a while, it will tell you about some system environment variables which you may wish to set for more convenient usage of Rivet: these are the system PATH (for finding the executables), LD_LIBRARY_PATH (for finding the libraries), and PYTHONPATH (for finding the Python library modules). If installing to a system location, such as usr/local, you probably won't have to set these. If you wish to run generators via AGILe, then you may also need to set AGILE_GEN_PATH, which is used to find generator libraries in the structure used by [LCG Genser](http://lcgapp.cern.ch/project/simu/generator/) MC library archive, as used by the LHC experiments. For simplicity, you can source these variables from a file which is produced by the bootstrapper:
    source rivetenv.sh
    

This done, you can try running the rivet program with the -h flag to get some help:

  rivet -h

If that works, everything is installed correctly. If you are using the bash shell in your terminal, then Rivet will offer you programmable tab completion: try typing rivet and pressing the Tab key!

You can now check out the FirstRivetRun guide, unless you want to use generators via AGILe.

You may wish to add the environment variable settings to your ~/.bashrc shell config file, so that Rivet (and AGILe) will work without needing any special session setup.

  1. Optionally, you can also test the AGILe generator interface library at this stage. You can do this most easily by (re-)running the bootstrap script with the --install-agile option:
    ./rivet-bootstrap --install-agile
    

To see if agile-runmc can find any generators to run, execute this command:

  agile-runmc --list-gens

If no generator names are returned, you need to set up a local mirror of the Genser generators archive. Instructions for this can be found at GenserMirror. If you have already done this, and still get no generators in the listing, you should check that your $AGILE_GEN_PATH environment variable is pointing to the correct path.

If at least one generator is listed, you can try to generate a few events in LHC mode, e.g.:

  agile-runmc Pythia6:418 --beams pp:14TeV

Similarly to Rivet, the agile-runmc command will give you programmable Tab completion in bash shell: this makes life much more pleasant - try it!

Manual installation

If you wish, you can of course do everything the script does, by hand. See ManualInstallation for details.