Toy MC Limits in batches

Dear Experts,

I am interested in knowing that for e.g. running 100 jobs with 1K toys, saving the HypoTestInverter::GetInterval() for each job into a root file and adding each of these root files together. Would this be equivalent to running 1job with 100K toys.

I have tried to test this with running on a simplified model, 100 jobs with 1K each and one job with 100K toys. It looks like it gives the same answer. Is this an acceptable way to run these limits to speed up the jobs?

For additional information, I am using the FrequentistCalculator() with the ProfileLikelihoodTestStat() on a simple poisson model with one gaussian constraint.


Hello Deshan,

you can indeed merge them using HypoTestInverter::Add.
My “concern” is that you will waste CPU cycles by calculating a point multiple times. I guess it makes sense to set up the HypoTestInverter such that it scans at fixed points, but to make sure that the points are spaced out a bit. If you do that, it’s strictly equivalent to running this all in the same job (only the random number generator will be initialised differently. If you want reproducible results, you have to initialise it with the job number or similar.). If you calculate a point twice, the results for this point are combined as you can see in the documentation I linked above. That would mean that this point was calculated with higher toy statistics compared to other points, which are not tested twice.

Hi Stephan,

Thanks for the clear explanation.

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