[Rivet] normalisation to cross-sections

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


Hi Hendrik,

Hendrik Hoeth, Thursday 22 October 2009:
> I really don't want to be the killjoy, but I'd like to suggest that
> before we blindly start converting all our analyses to cross-section
> normalisation only because that is nice, new, and nifty, we should
> go through the painful procedure of switching on the brain and think
> for a moment what makes sense and what doesn't. In fact, that's why
> I hadn't commented on this discussion so far -- too much painful brain
> activity needed.

Thanks for the implicit compliment :-P

> But let's do it for a moment. Things like a 1-Thrust certainly don't
> need to be normalised to anything other than 1. There is no such thing
> as cross-section information in an event shape. Looking at the list of
> analyses touched in r1953 the only one I recognise immediately is
> D0_2004_S5992206. I don't know what the other analyses are, but the
> 2004 measurement is the di-jet angular distribution thingy which we use
> in the tuning all the time. That's an event shape measurement. The area
> of those data histograms is 1, and that's what they should be
> normalised to.

I agree, and that's why they are being normalised to 1 in the *.plot file. 
I thought the reasoning behind this was laid out in the other long thread 
that you didn't bother to read ;-)
But maybe I should make it more explicit: I consider this a crutch which 
enables us to merge histograms from separate runs as long as YODA isn't 
around. As soon as YODA is used, we would store the raw weights _and_ the 
normalised numbers of each histogram, such that the one can be used for 
run-merging and the other for plotting/tuning.

> Again, I don't know the other analyses in that list, and I didn't look
> them up, but please let us go through whatever analyses we want to
> change _thoughtfully_. And add the "setNeedsCrossSection(True)" only if
> needed.

My understanding of (and I think Andy's comment in?) the discussion was 
that we assume every generator to be able to provide cross section 
information. So the setNeedsCrossSection() is going to go away and be 
assumed true anyway. But ok, that's just a matter of convention, it'd be 
fine for me to scale to 1/sumOfWeights() for all observables that will be 
normalized later anyways (and later on with YODA even store the raw 
weights together with information about the #events etc.).

Frank



More information about the Rivet mailing list