Requirements for PROOF with custom class?

Hi,

I’ve written my own test statistic for use with RooStats and it seems to work until I try to run it using Proof-lite. At that point I get all sorts of errors. Are there some set of methods that are needed for a class to work with Proof-Lite?

Here are the class: gist.github.com/neggert/5216496

Thanks,
Nic

Hi,

The requirement is the streaming capabilities of you custom class. You need then to have a dictionary of the class and, as the error suggests, you need also a default constructor

Cheers

Lorenzo

So after adding a default constructor for my test statistic, I get errors about the lack of a default constructor for RooNumCdf.

I don’t really understand where a RooNumCdf is coming in. The pdf I’m giving to my test statistic is coming from a ModelConfig created by HistFactory, so everything should be serializable there. I use a CDF in calculating the test statistic, but I don’t store it.

That aside, is there a reason that RooNumCdf doesn’t have a default constructor?

Hi,

Yes it seems strange, since RooNumCdf is used only in createCdf to compute the integral, so it should not be streamed. You have posted your test statistic class. Can you please post a simple macro (and possibly a workspace) which can be run using Proof and reproduce this problem, so I can Investigate it

Thanks

Lorenzo

Hi Lorenzo,

I’ve updated the gist (gist.github.com/neggert/4586791) with a (not) working example, bkg_fit.C. In the process of converting this from pyROOT to ROOT for easier debugging, I ended up with a slightly different error. I’ve included that along with the PROOF log in the gist.

Thanks,
Nic