Would you like to work on a short project involving Monte Carlo event generators?
MCnet offers 3-6 month fully funded studentships for current PhD students.
See montecarlonet.org for more information!
WANTED: Analysis code
The LHC performed marvelously in Run 1, and we are looking for as much
analysis code as possible to make MC modelling even better for Run 2.
If you are member of an experimental collaboration, please have a look
wishlist and help us by providing us with Rivet analyses for your
publications. This will also ensure that your measurements get used!
The Rivet project (Robust Independent Validation of Experiment and Theory)
is a toolkit for validation of Monte Carlo event generators. It provides a
large (and ever growing) set of experimental analyses
useful for MC generator development, validation, and tuning, as well as a
convenient infrastructure for adding your own analyses. Rivet is the most
widespread way by which analysis code from the LHC and other high-energy
collider experiments is preserved for comparison to and development of
future theory models.
Take me to the code!
Jump to Rivet library and analysis releases
Rivet is an object oriented C++ replacement for the venerable
HZTool/HZSteer system. It is
used by both phenomenologists/generator developers and by the LHC experiments
for generator tuning, analysis prototyping, and MC-data comparisons.
Rivet's design emphasises the separation between HepMC records and where
they came from, allowing it to be a completely cross-generator validation
platform. Internally, it uses a computationally efficient mechanism (known
as the "projections" system) to compute physical observables, so that
re-calculation of common quantities is avoided.
Another key feature of Rivet is the avoidance of
hard-coding reference data or histogram binnings in the analysis code:
Rivet provides functions to extract this information from bundled data
files, meaning that it is much easier to keep reference and generated
The Rivet user manual is kept up to date on the
arXiv (1003.0694 [hep-ph]).
generators you may find it useful to combine Rivet with the AGILe
generator steering interface, but for C++ generators such as Herwig++ and
Sherpa the built-in control programs are much better. For Pythia8, we recommend
using the Sacrifice
interface, which behaves much like AGILe.
More information on the status of the project, as well as a more
detailed description and documentation, can be found via the links
on the left.
Since it's proven impossible for us to make new Rivet releases for analysis updates
faster than every 1-2 months, we have created a "Rivet Contrib" area in our downloads
site where newly submitted analysis codes will be placed immediately: see
and the README
file in that location. These analyses don't come with any "Rivet guarantee" but we
hope it will be useful to users who want to use the very latest analyses and don't
mind doing some technical work and physics checking to get them working!
2015-07-24: Rivet release 2.3.0
We're very pleased to announce the release of Rivet 2.3.0 and an
accompanying release of version 1.4.0 of the
YODA histogramming package.
This new release of Rivet adds an amazing 15 new analysis routines, as well as
validating several long-standing analyses from the UNVALIDATED set (and two
re-UNVALIDATions!) and making a variety of minor analysis fixes and improvements.
As you'd expect from the non-trivial release number change, the framework
has also received some significant improvements.
One long-standing issue has
been whether neutrinos are to be included in jet finding or not: detectors
do not see them, of course, but MC-driven calibrations can add their average
contributions back to the 4-vectors. But telling the FastJets projection to
useInvisibles() would include hard-process neutrinos (and invisible
BSM hypotheticals), while calibrations would typically only be intended to
account for neutrinos from hadron decays. We have changed the behaviour of
useInvisibles() to only accept non-prompt stable invisibles,
and added both an optional argument to that method and the FastJets constructor
to allow any of the three sane invisibles strategies to be specified via enums.
A similar method, enum, and optional constructor parameter has been added for
the treatment of muons. We've checked that there are no substantial changes to
any VALIDATED analyses. Some very specific jet-splitting analysis features have
also been removed from FastJets — it's nowadays better to use FastJet's
API directly — and we've added a convenient extra constructor from a
The second major change has been to the behaviour of the WFinder. Previously
this used a missing ET cut to decide whether an event could be considered as
containing a leptonic W, but then a specific neutrino was selected in an
l+nu pair used to build the pseudo-W. That's not experimentally possible, of
course, and given Rivet's emphasis on observable measurements we have changed
the default to allocate all the MET to the W candidate. No significant changes
in analysis outputs were found by our testing system. This has, however, introduced
a discussion on whether a W finder is a sensible object for us to provide: neither
leptonic or hadronic W's are fully constructible from final-state observables via an
unambiguous procedure, and we expect that each analysis that tries may have a
different approach. Hence in a later release the WFinder may disappear entirely,
but for now it is still in place, but with a more portable — but less accurate
Other technical improvements have been made to e.g. protect against accidental
'slicing' of C++ objects when using the remainingFinalState() method.
Please see the
ChangeLog for the full
list of substantial changes since release 2.2.0.
As always, this new version is recommended for immediate use. Please keep sending us
your feedback and analysis codes!
Download source code