[Rivet] normalisation to cross-sections

Frank Siegert frank.siegert at durham.ac.uk
Fri Oct 23 14:16:42 BST 2009


I've just discussed this with Hendrik over lunch, and I think that cleared 
all misunderstandings. So here a short summary in case anybody else is 
still following this thread.

There are two separate points of criticism.

1. Analyses should not unnecessarily require the generator cross section 
if all of their distributions are normalised.
I agree and will change the scale(crossSection()/sumOfWeights()) to 
scale(1.0/sumOfWeights()).


2. Rivet's AIDA output should be the same as the data without needing 
extra information from the *.plot files.
Here it seems like my motivation wasn't really clear, so let me try to 
state it again:

If I run 10 x 1 million events to get high statistics in short time, then 
I want to be able to combine the resulting 10 histograms into one. The 
perfect solution to this is going to come with YODA where we store the raw 
weights. Until then, I still want to be able to average the 10 values in 
each bin to get a correct combined value. If I normalise histograms to 1 
and I have filled _weighted_ events into these histograms, this doesn't 
work, because there might be runaway bins which create a bias towards low 
values for all other bins. On the other hand, if I scale the histograms by 
whatever/sumOfWeights() this is not a problem.

Hendrik agreed on the second issue and said he could live with that.

Hope that clears things up a little bit,
Frank

Hendrik Hoeth, Friday 23 October 2009:
> Thus spake Frank Siegert (frank.siegert at durham.ac.uk):
> > So if you read this to refer only to histograms where the _data_ is
> > proportional to the cross section, how would my proposal make any
> > difference to what we have done so far?
>
> It makes a difference to, well, all the distributions which are
> proportional to the cross-section. Simplest example: Jet
> cross-sections.
>
> > For them we already do finalize with crossSection()/sumOfWeights()
> > and nothing will have to be done a posteriori to change that.
>
> No, many of those are still normalised to the data, and I thought that
> fixing this is what the discussion is all about.
>
> > I understand that in the ideal world the histogram numbers coming out
> > of Rivet would be directly the same as in the experiment. But please
> > also consider that we have a desperate need to run higher statistics
> > through Rivet by merging runs. That is mainly relevant for validation
> > rather than tuning though.
>
> Sure, but I can't see how for merging event shapes the proposed
> normalisation would help you. You'd need something like the integrated
> luminosity, not the cross-section.
>
> > So I thought my suggestion was a fair (and temporary) compromise. Do
> > you have any better suggestion?
>
> At least for the distributions that don't depend on the cross-section
> (event shapes) I would like to see Rivet not requiring a cross-section.
> Avoiding an unneeded dependency. That's all. For all those
> distributions like jet cross-sections, particle pT spectra, etc., that
> have a "pb" as unit on the y-axis I agree those should be normalised to
> cross-section.
>
> > > [... setNeedsCrossSection() ...]
> >
> > Which is exactly what I did in my recent commit unless I have missed
> > one, in which case I would appreciate if you pointed it out.
>
> D0_2004 doesn't have it -- this and the D0_1996_S3214044 analysis are
> the only ones where I looked at the code after the commit.
>
>      Hendrik



More information about the Rivet mailing list