|
[Rivet] Transfer FunctionsAndy Buckley andy.buckley at cern.chTue Jul 26 16:52:18 BST 2016
On 26/07/16 10:52, Gavin Hesketh wrote: > Hi, > for an upcoming ATLAS analysis, I'd like to apply some transfer > functions to the theory curves. These take the form of a simple scale > factor + uncertainty to be applied bin-by-bin (they vary across bins). > It would be possible to provide the data in two forms (with and without > transfers applied), but I would like to apply these functions to the MC, > rather than to the data. > > We will provide these transfers in HepData (with uncertainties), so I > assume they could be loaded into the analysis routine as a histogram. > Then run over some MC, and multiply together the resulting MC curves and > the transfer function histograms. > > I just wondered if anything like this is already being done in some > rivet routines, or if anyone would have some suggestions on the best way > to code it up? Hi Gavin, I expect this can be done fairly nicely, and would be a good excuse to prototype a few mechanisms that we can then feed back into the Rivet or YODA cores -- particularly the histogram rescaling. I assume that it's a rescaling on the final MC histogram rather than a per-fill reweighting? And that the scale factors will have the same binning as the observables? What do you want to do with the uncertainty on the scale factor? Sample from a Gaussian with that width or (I guess) add it to the MC errors in quadrature? At the moment YODA Scatters can only have a single set of error bars, but I'm planning to extend that soon. To get you started, I suggest loading the correction functions using the refData() function -- you can do this in the finalize() function rather than having to "store" it through the run. Then convert your histogram to a Scatter2D with mkScatter() and loop over the point number, resetting the scatter point values and errors, e.g. obs.point(i).setY( obs.point(i) * transfer.point(i) ). I'd put that logic into a function so you can call it on many histos... and if it proves more generally useful we could move it into the core library. Is that enough? Let us know if & when you've got something (semi-)working, and we can solve concrete problems and maybe refine the implementation. Andy -- Dr Andy Buckley, Lecturer / Royal Society University Research Fellow Particle Physics Expt Group, University of Glasgow
More information about the Rivet mailing list |