[Rivet] Histogram normalisation

Frank Siegert frank.siegert at durham.ac.uk
Tue Oct 20 17:09:47 BST 2009


Andy Buckley, Tuesday 20 October 2009:
> One further thing, which I'm not sure counts in your "dropped" KFactor
> proropsal: I don't see how we can automate the finalize steps without
> always getting ~half of the observables very wrong,

Can you elaborate? Why is it wrong if the finalize for each histogram 
automatically does

  scale(_hist, crossSection()/sumOfWeights())

?
The finalize method will then only consist of setting Scale/Norm for the 
histograms where that is necessary, e.g.:

  _hist1->SetScale(1.0/inclusive_xs);
  _hist2->SetNorm(data_integral);

> This also makes sense for
> users like Herwig++, who are accessing Rivet as a library and
> presumably want whatever histograms are written out to be meaningful
> *before*
> post-processing scripts are applied

With the finalize above the histograms are meaningful, aren't they?
Btw: My main concern too is using Rivet as a library!

> In terms of this Norm and Scale stuff, the motivation is presumably the
> run combination requirement?

Yes, at least that's the only one I can think of.

> So the Norm and Scale are really
> just details of how histogramming has to work if we want to be able to
> combine multiple runs... of course, someone will eventually try to
> combine two runs with different scaling targets, so we need to be
> careful about failure modes!

I think I don't understand. If you combine runs, you will have to deal 
with two issues: Adding the bin contents, and averaging the Norm or Scale 
of all single histograms. Or do you see a better solution for combining 
runs and still being able to make nice comparison plots to 
normalised/scaled data?

Cheers,
Frank



More information about the Rivet mailing list