[Rivet] [Rivet-svn] r2451 - trunk/src/Analyses

Andy Buckley andy.buckley at ed.ac.uk
Tue May 18 10:48:32 BST 2010


On 18/05/10 10:26, Lars Sonnenschein wrote:
> Hello Andy
> looking at the dps capabilities it doesn't look like the multiplication
> of two dps is implemented.

Argh, LWH...

> Also I don't see how to set values and errors 
> in histogram bins.

You can't: the point of data structures like histos or profiles is that
their values and errors are determined by their fill-history, i.e.
various sums of weights, so you can't just set the height and errors.
That's what DPSes are for.

> I also didn't find a conversion from histo to dps or a dps constructor 
> which accepts a histo as copy argument.

AIDataPointSetFactory.h:
namespace AIDA {
  ...
  virtual IDataPointSet *
  create(const std::string &, const IHistogram1D &,
         const std::string & = "") = 0;

The problem with this is that it is an AIDA interface and so insists on
writing all outputs to the persistent tree, which is not actually what
you want. I recommend that you use the Rivet bookDataPointSet(...)
function to book the binnings of the final histos that you store, but to
create raw LWH objects for the rest... but even then you would need to
implement some functionality for the multiplication etc.

> The only way I see right now to get this working would be to copy by hand 
> (bin by bin) the histo entries into a dps in a for loop. At the same time 
> I can multiply the correction factors and set the right resulting errors.

Yep, that's actually what goes on inside the DataPointSetFactory
conversion method.

> Of course the correction factors could be computed later on offline.
> The two relevant histos to be divided come with the reference histograms.
> Without correction the observables look about alright (see attached 
> plots). Looking at the correction factors, they would move the generated 
> MC distributions into the right direction.

I think that the best thing to do might actually be to leave it as it is
without the correction factors having been applied, but replace the

/// @todo BROKEN!

with something like:

/// @todo Apply detector correction factors

and note in the anainfo file that this data is uncorrected. We will then
come back and finish the job when the histogramming is up to the job.
Sound okay?

Thanks,
Andy

-- 
Dr Andy Buckley
SUPA Advanced Research Fellow
Particle Physics Experiment Group, University of Edinburgh


More information about the Rivet mailing list