Trouble with RooWorkspace since RooEffProd default constructor is deleted in v6.26

I just had a problem with some of my old code, which use rooworkspace to store some PDFs in ROOT files and then runs a separate program to perform the fit.

Since the release v6.26, the default constructor of RooEffProd was removed, the program will throw an error like:

Warning in <TBufferFile::WriteObjectAny>: since RooEffProd has no public constructor
	which can be called without argument, objects of this class
	can not be read with the current library. You will need to
	add a default constructor before attempting to read it.

Is there any reason we delete this default constructor for RooEffProd? is expected to break the RooWorkspace? Maybe now it is not recommended to use the RooWorkspace? What should I use?

1 Like


@jonas or @moneta should be able to help.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.

Hi @jiahuiz,

thank you very much for reporting this! Of course you should still be able to use the RooWorkspace. The default constructor of the RooEffProd was removed by accident in 6.26, and I have opened a PR to bring it back:

This PR will also be backported to the next patch release 6.26.08, so it should work there again. Sorry for the inconvenience and thank you very much for having reported this issue!