[Rivet] Rivet Jet Analysis

ST Harnew sh7566 at bristol.ac.uk
Tue Feb 1 12:42:08 GMT 2011


Hi Torbjörn,

Thanks for your help! I just looked at the main10.cc and src/UserHooks.cc 
files you mentioned, and I can see how to make the inverse weighting 
available in the event loop for histogramming within Pythia, but is there a 
way to then pass this to a Rivet analysis?

Many Thanks,

Sam Harnew

--On 01 February 2011 09:29 +0100 Torbjorn Sjostrand <torbjorn at thep.lu.se> 
wrote:

> 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



----------------------
ST Harnew
sh7566 at bristol.ac.uk


More information about the Rivet mailing list