[Rivet] Rivet Jet Analysis

Torbjorn Sjostrand torbjorn at thep.lu.se
Tue Feb 1 08:29:54 GMT 2011


Hello Andy,

Well, it is on my "to do" list to implement it properly.
Right now it is only half implemented. What exists is the
UserHooks class, see "User Hooks" in the online manual.
It can be made to interrupt/interrogate/modify the normal
event generation sequence at a number of specified points.
Of special relevance here is "(v) Modify cross-sections".
If the method canModifySigma() is overloaded to return true
then multiplySigmaBy() can be used to multiply the cross
section by some kinematics-dependent expression.

examples/main10.cc gives you a simple example how it could
work in practice. Here, event-by-event, the pT of a 2 -> 2
process is read out, and histogrammed. Instead of returning
a weight 1, you could here easily return a pT-dependent
weight, that then would modify the native cross section.
The src/UserHooks.cc file contains a longer listing of the
kinematical variables you could access at that stage.

What is still missing is the following: the modification you
do with UserHooks is viewed as a true modification of the
cross section, not only as a modified sampling. This has two
consequences. The first is that the pythia.statistics()
cross sections are wrong, and there is no simple way for you
to salvage that. You just have to do a normal run to get
cross sections. The second is that you need to implement
either a public method or a public data mamber in your own
derived UserHooks class, that contains the inverse of the
weight you multiple the cross section with, and that you then
should use as a weight on your events when you histogram
results.

(As part of the Monte Carlo procedure, some of the trial events
will fail later. If you update the inverse weight for each new
trial event, however, then automatically that will store the
correct value for the event that survives to the end and
is histogrammed by you, with the then current weight value.)

Hope this explains what to do.

Best, Torbjörn


More information about the Rivet mailing list