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):
> mkfifo fifo.hepmc
> my-generator --num-events=500000 --hepmc-output=fifo.hepmc &
> rivet --analysis=ANALYSIS_NAME fifo.hepmcThe 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.