|
[Rivet] Rivet Jet AnalysisTorbjorn Sjostrand torbjorn at thep.lu.seTue 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 |