RooMCStudy with >1k toys

I encounter an unexpected problem with using the RooMCStudy with larger number of experiments than 1000. My model is as simple as it can get and I don’t see the reason why it should not work. Perhaps someone has had similar issues before.

I’m trying to demonstrate the bias of the exponential slope MLL estimator (n/n-1 * Gamma) by generating toys with RooMCStudy. Everything works until ~1k toys, each containing 1k events). If I exceed 1k experiments, the code crashes with a SegFault when the trying to create a pull plot of the fitted toy results:

[code][#1] INFO:NumericIntegration – RooRealIntegral::init(pullGauss_Int[gammapull]) using numeric integrator RooIntegrator1D to calculate Int(gammapull)
[#1] INFO:NumericIntegration – RooRealIntegral::init(pullGauss_Int[gammapull]) using numeric integrator RooIntegrator1D to calculate Int(gammapull)
Plot name: MCstudy_GANGA_Gamma_Nexp_2000_Nevt_1000.pdf

*** Break *** segmentation violation
Segmentation fault[/code]

The model is a simple exponential with the slope as a RooRealVar. I use the genAndFit() function of the RooMCStudy() to extract the pull of the gamma and run a python script on lxplus.

I tried saving the generated samples, using different ROOT versions interactively on lxplus, and running via Ganga to see if it is a problem of memory limits on a specific machine; I still get the same SegFault.

Has anyone overcome a similar issue with RooMCStudy?

Thanks,
Siim.
fit.py (3.44 KB)

Hi,

You should not use the obsolete constructor of RooMCStudy as shown in the doc

root.cern.ch/doc/v606/classRooM … 69929707f8

but the other one.
With that change your script works fine for me. I attached the modified script

Best Regards

Lorenzo
fit.py (3.69 KB)

Hi,

Many thanks! I should have read the ‘smallprint’ on the constructor :slight_smile:

Thanks,
Siim