RooFit: Projecting (large)N-D pdf

Hi There,

I am performing a per-event fit where I have a large number of observables in my dataset/pdf:

  • Mreco
  • 243 per-event error related quantities

and I fit on only one number:

  • Mtrue

The 243 observables describe 81 gaussians (means,sigmas,fractions) which completely describe the “response”, Mreco-Mtrue. They are stored in a RooAddPdf pdfResponse.

I am following along in this tutorial, slide 18 http://roofit.sourceforge.net/docs/tutorial/plot/roofit_tutorial_plot.pdf
From my impression I should be using

data->plotOn(frame); pdfResponse.plotOn(frame,ProjWData(*data));

When I do this, I see something very much like the upper plot of slide 18 (attached my plot), suggesting something may be wrong there. To investigate this, I tried to use the default projection option first using

data->plotOn(frame); pdfResponse.plotOn(frame);

Here I get an error though:

[quote]Warning in ROOT::Math::AdaptiveIntegratorMultiDim::Integral: Wrong function dimension; n = 81
[/quote]

I looked up where this error comes from, and I found it here http://web-docs.gsi.de/~halo/docs/hydra/classDocumentation/doxy_dev/root52800b/html/AdaptiveIntegratorMultiDim_8cxx-source.html:

00133 if (n < 2 || n > 15) { 00134 MATH_WARN_MSGVAL("AdaptiveIntegratorMultiDim::Integral","Wrong function dimension",n); 00135 return 0; 00136 }

So it seems there is a hardcoded limit on function dimension? Any reason why? I should not actually need to integrate out these dimensions since they are per-event “errors” of a sort, I should be using only ProjWData, but I am trying to debug the behaviour seen in the attached plot.

Many thanks!
TestFit_comb.eps (22.4 KB)