Rivet tutorials
First run
So, we assume you've got Rivet installed and that the rivet command is available in your executable path
(i.e. the $PATH environment variable). Now it's time to run some events, make some analysis data, and plot the results.
Generating and analysing
The main interface to Rivet is the rivet command. We will
demonstrate how to use this to analyse HepMC events from a text file
in the "IO_GenEvent" HepMC format.
Firstly, we recommend using a named pipe (or 'FIFO') so that your
events don't create a huge file that takes all your disk space. The
idea is that the generator will push events into what looks like a
file, and Rivet will read from it. However, this 'file' is a direct
pipe between the two processes (just like the shell pipe in e.g. echo
foo | less), so no slow filesystem access needs to take place, no
disk space is occupied, and the system will automatically balance the
data flow between the writing and reading processes. All this is
completely transparent to the user: good old Unix! Here's how you do
it (with a fictional generator command, as an example):
```sh
mkfifo fifo.hepmc my-generator --num-events=500000 --hepmc-output=fifo.hepmc & rivet --analysis=ANALYSIS_NAME fifo.hepmc ```
The backgrounding of the generator process -- i.e. the & character
-- is important: the generator will wait until the fifo.hepmc pipe
is being read by Rivet, so unless it is backgrounded you will never
get the terminal focus back to run rivet!
If you have trouble with this FIFO approach, try writing a few -- 10 or so -- events to a normal file and look at the file (e.g. with emacs, less, gedit or any other text editor). If your generator is writing the events to file properly your HepMC file should consist of a short header, followed by lots of largely numeric lines starting with a letter (E, P, V in particular). If you don't see this, something has gone wrong "upstream" and you should fix it before blaming the FIFO or Rivet ;-)
Checking the data
By default, Rivet outputs its histograms in the YODA text format. To
get a clearer view of the data values in histogram bins, you can use
the yodals script, e.g. yodals --vv Rivet.yoda | less.
There is also a yoda2root command which provides the data as ROOT
histogram (or TGraph) objects for those of a ROOTy disposition.