Rivet is hosted by Hepforge, IPPP Durham


MCnet studentships!

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 at our wishlist and help us by providing us with Rivet analyses for your publications. This will also ensure that your measurements get used!

Important stuff

Team Rivet scoops silver at the Higgs+jets karting championship. Just pipped by Team NNLO, dammit.

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

Key features

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 data synchronised.

The Rivet user manual is kept up to date on the arXiv (1003.0694 [hep-ph]).

For Fortran 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.

Rivet Contrib

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 https://www.hepforge.org/archive/rivet/contrib/ 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 FastJet::JetDefinition.

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 — behaviour.

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