Error in StandardHypoTestInvDemo.C after ROOT 6.32

Hello experts,

I want to use the macro StandardHypoTestInvDemo.C to compute limits with toys.

I am currently using ROOT version 6.36 but I found that the macro does not work anymore as I am getting the following error:

cppyy.gbl.std.runtime_error: void StandardHypoTestInvDemo(const char* infile = 0, const char* wsName = "combined", const char* modelSBName = "ModelConfig", const char* modelBName = "", const char* dataName = "obsData", int calculatorType = 0, int testStatType = 0, bool useCLs = true, int npoints = 6, double poimin = 0, double poimax = 5, int ntoys = 1000, bool useNumberCounting = false, const char* nuisPriorName = nullptr) =>
    runtime_error: Error in RooAbsReal::setData(): only resetting with same-structured data is supported.

This, however, doesn’t happen for ROOT version 6.32, as I managed to get the macro to run using the same inputs. The macro also doesn’t work in ROOT v6.38. I did change the macro accordingly between versions using:

The dataset included in the workspace I am using is a RooDataHist.

Do you know how this can be fixed? I wouldn’t like to go back ROOT versions as I would need to recompute all other results using that version, plus need to re-work lots of parts of the code.

Thank you very much!

Best,
Francisco

Make sure you always use the ROOT version-specific macros:

find $(root-config --tutdir) -name "StandardHypoTestInvDemo.*"