Professor is a tuning tool for Monte Carlo event generators, based on the ideas described in "Tuning and Test of Fragmentation Models Based on Identified Particles and Precision Event Shape Data" (Z. Phys., C73 (1996) 11-60).
Fundamentally, the idea of Professor is to reduce the exponentially expensive process of brute-force tuning to a scaling closer to a power law in the number of parameters, while allowing for massive parallelisation and systematically improving the scan results by use of a deterministic parameterisation of the generator's response to changes in the steering parameters.
The approach is not limited to MC tuning: any situation which can benefit from fast parameterisation of histogram values can use Professor!
2017-02-02: Professor release 2.2.1
We are very pleased to release Professor 2.2.1.
This release comes with a more forgiving and therefore more stable usage of prof2-ipol. Instead of a hard exit when encountering nan coefficients (symptom of very low statistics in input histograms) those histograms are simply ignored. Further, the matplotlib backend now defaults to Agg allowing for plot output in the absence of X11.
2016-12-20: Professor release 2.2.0
We are very pleased to release Professor 2.2.0.
The parametrisation building has been improved significantly allowing the calculation of polynomials in high dimensional parameter spaces, e.g. 20 dimensions in seconds rather than hours.
We added a few more scripts to contrib, such as prof2-sobol (requires pygsl) which is an alternative to prof2-sample that uses the SOBOL algorithm for pseudo random number generation. The support vector machine parameters habe been tuned to give better resolutions when using the machine learning scipts prof2-ml-* (requires scipy and scikit-learn).
We have dockerised this version of professor with all depdendcies included.
docker pull iamholger/professorml:2.2 (with scikit-learn for machine learning bits)
The source code package also contains a few jupyter notebooks that demonstrate the usage of some of the machinery.
Get Professor 2.1.4!
Released 2016-07-14. See ChangeLog
Professor has been successfully used to produce most of the established "tunings" of the general purpose MC event generators heavily used in high-energy physics. This approach to numerically automated tuning began with the first Professor paper which created new optimal tunings of the Pythia 6 event generator to a wide range of data from LEP, JADE, and the Tevatron.
Since then, Professor has become the standard method for MC generator developers and HEP experimentalists to tune MC models. These tunes help to challenge theoretical models of QCD as implemented in generators, and to understand QCD backgrounds to new experiments, particularly at the LHC.
Professor is written in C++ and Python as a set of command line programs and underlying C++ and Python libraries. The core numerical machinery is provided in fast C++, using the Eigen3 linear algebra package, and high-level functionality is built on top of this in Python, via the Cython, numpy, scipy, and iminuit toolkits. The Rivet and YODA data analysis packages are required for most built-in functionality.
An overview is given in "Tools for event generator tuning and validation", as well as the Pythia 6 tuning paper linked above.
The Professor collaboration is:
The current version of Professor is the 2.x series. However, this is a ground-up rewrite and does not yet have all the functionality of Professor 1.x. Both programmes can be installed at the same time and users may find some 1.x features useful.
For more information see the Wiki and documentation. We encourage you to contact us at firstname.lastname@example.org: we're keen to help you use the system, but a little hands-on advice goes a long way towards not getting junk results ;-)