|
[Rivet] rivet: normalizing histograms to variable bin widthAndy Buckley andy.buckley at cern.chMon Mar 17 12:20:45 GMT 2014
Hi Oldrich (and CC'ing the Rivet list -- please send to that rather than me directly!), In the API of YODA the bin width is taken into account when calling the HistoBin::height() method: https://yoda.hepforge.org/trac/browser/include/YODA/HistoBin1D.h#L97 (and a corresponding divide by x-y bin area in HistoBin2D) By "normalize to bin width", I'm guessing that you mean "divide by integral = sum of bin & overflows weight sums". For bins, the sum of weights is the area rather than the height. Is that what you had in mind? If so (and I'm sure this is the physically correct approach) then this is already what YODA does: Histo1D::normalize: https://yoda.hepforge.org/trac/browser/include/YODA/Histo1D.h#L146 calls Histo1D::integral: https://yoda.hepforge.org/trac/browser/include/YODA/Histo1D.h#L298 calls Histo1D::sumW: https://yoda.hepforge.org/trac/browser/src/Histo1D.cc#L43 Does that answer your question? In the mkScatter function that converts Histo1D etc. to TGraphAsymmErrs-like Scatter2Ds, we use the Bin::height() function so that the plotting will look correct, but internally the area() == sumW() are much more important. Andy On 17/03/14 12:38, Oldrich Kepka wrote: > Hi Andy, > > sorry for this basic question. Is there already an implementation of a > method normalizing histograms to produce differential cross section, > i.e. normalizing to bin width. > > Presumably, there must be, because there are several differential > cross sections implemented. I am probably missing something, but I > cannot find the place where the bin widtf is taken into account > (looking through Histo1D, Bin1D, Dpn1D ... ). The usual Analysis > scale/normalize methods boil down to scaleW of Dbn1D; scaling > according to global desired factor. > > Otherwise, I would go for something like this. > > _h_ZZ_ZpT.scale( norm); > for(size_t i = 0; i< _h_ZZ_ZpT-> numBins(); i++) { > _h_ZZ_ZpT->bin(i). scaleW( 1/_h_ZZ_ZpT->bin(i). width() ); > } > normalize(_h_ZZ_ZpT , 1); > > http://hepdata.cedar.ac.uk/view/ins1203852 > > > Thanks, > Oldrich > -- Dr Andy Buckley, Royal Society University Research Fellow Particle Physics Expt Group, University of Glasgow / PH Dept, CERN
More information about the Rivet mailing list |