Dear Rooters,
I am trying the new AsymptoticError
flag introduced in Root 6.20. Sadly it breaks in RooAbsReal::derivative, as it seems, with the following stack trace:
===========================================================
#5 0x00007efd7156e447 in RooAbsReal::derivative(RooRealVar&, RooArgSet const&, int, double) () from /nfs/monet/products/ROOT/v6-20-04-gcc-4.9-amd64/lib/libRooFitCore.so
#6 0x00007efd71567cd7 in RooAbsPdf::fitTo(RooAbsData&, RooLinkedList const&) () from /nfs/monet/products/ROOT/v6-20-04-gcc-4.9-amd64/lib/libRooFitCore.so
#7 0x00007efd71564c5d in RooAbsPdf::fitTo(RooAbsData&, RooCmdArg const&, RooCmdArg const&, RooCmdArg const&, RooCmdArg const&, RooCmdArg const&, RooCmdArg const&, RooCmdArg const&, RooCmdArg const&) () from /nfs/monet/products/ROOT/v6-20-04-gcc-4.9-amd64/lib/libRooFitCore.so
#8 0x00007efd7e68f58c in ?? ()
#9 0x00007ffd7280d208 in ?? ()
#10 0x00007ffd7280d100 in ?? ()
#11 0x00007ffd7280cff8 in ?? ()
#12 0x00007efd7191d440 in ROOT::Internal::THashConsistencyHolder<RooClassFactory const&>::fgHashConsistency () from /nfs/monet/products/ROOT/v6-20-04-gcc-4.9-amd64/lib/libRooFitCore.so
#13 0x00007efd6f91aeda in ?? () from /nfs/monet/products/ROOT/v6-20-04-gcc-4.9-amd64/lib/libRooStats.so
#14 0x00000000875717a0 in ?? ()
#15 0x00000000021d5c5e in ?? ()
#16 0x00007ffd7280c604 in ?? ()
#17 0x00007efd000023f1 in ?? ()
#18 0x00007ffd7280c6d0 in ?? ()
#19 0x00007efd6f8cc9e0 in ?? () from /nfs/monet/products/ROOT/v6-20-04-gcc-4.9-amd64/lib/libRooStats.so
#20 0x00007ffd7280c6c0 in ?? ()
#21 0x000000000439bf60 in ?? ()
#22 0x0000000000000024 in ?? ()
#23 0x000000007280c684 in ?? ()
#24 0x0000000000000000 in ?? ()
===========================================================
Things checked
- The segmentation violation does not depend on the
Extended
flag - I checked 2 different PDFs (Exponential and Gaussian). In both cases there is the segfault.
- The example
$ROOTSYS/tutorial/roofit/rf611_weightedfits.C
is working.
Questions
- Am I doing something wrong ? The fit is working fine without the
AsymptoticError
flag. So I hope there is no stupid mistake on my side. - Do you have any ideas, what I could try?
On the Example
- 3 Variables:
- Discriminating variable mass (Exponential Background, Gaussian Signal)
- 2 Control variables:
- Vgg (Gaussian Background, Gaussian Signal)
- Vexex (Exponential Background, Exponential Signal)
- The Configurator class holds the parameter values. The model is then build via the ModelBuilder class. The main macro is DoAsymptoticErrFit.C.
- If you would like to reproduce the problem
- download the 3 files into one directory:
- Config.C (3.9 KB)
- DoAsymptoticErrFit.C (3.4 KB)
- modelBuilder.C (13.4 KB)
- Make sure to use ROOT version > 6.20.00
- run with
root -l -q DoAsymptoticErrFit.C
ROOT version
Tested on:
-
- ROOT Version: 6.20/00,
- Built for linuxx8664gcc on Mar 02 2020, 19:27:00,
- From tags/v6-20-00@v6-20-00
- On Ubuntu 18.04.4 LTS
-
- ROOT Version: 6.20/04,
- Built for linuxx8664gcc on Apr 13 2020, 15:48:00
- From v6-20-04@v6-20-04
- On Debian GNU/Linux 8 (jessie)