Hello,
I’ve run into a rather peculiar segfault after transitioning to ROOT 6.28/00 from 6.26. It doesn’t crash with 6.26/08.
I can reproduce this segfault with the StandardHypoTestInvDemo.C with calc type = 0 (freq / toys) and by adding AsymptoticError(true) to the fitTo() args here root/StandardHypoTestInvDemo.C at master · root-project/root · GitHub It doesn’t crash with this extra option if the calc type is 2 (asymptotic). My naive understanding is that this provides better errors on the parameters.
The odd part is that, from what I can tell, it’s crashing in ModelConfig->Print() → PDF->Print():
https://root.cern.ch/doc/master/ModelConfig_8cxx_source.html#l00158
after the HypoTestInverter::GetInterval() call.
If it’s useful, I have attached the test workspace I’m using:
SPlusB_combined_NormalMeasurement_model_afterFit.root (27.6 KB)
The workspace name is ‘w’.
Thanks,
Jonathan
Stack Trace:
#4 0x00007f323b143f15 in TUnixSystem::DispatchSignals(ESignals) () from root-install/root-6.28.00-dl/lib/libCore.so.6.28
#5
#6 0x00007f321e414271 in RooAbsArg::dependsOn(RooAbsCollection const&, RooAbsArg const*, bool) const () from root-install/root-6.28.00-dl/lib/libRooFitCore.so.6.28.00
#7 0x00007f321e41753e in RooAbsArg::getObservables(RooAbsCollection const*, RooArgSet&, bool) const () from root-install/root-6.28.00-dl/lib/libRooFitCore.so.6.28.00
#8 0x00007f321e5f1c46 in RooNormSetCache::autoCache(RooAbsArg const*, RooArgSet const*, RooArgSet const*, TNamed const*, bool) () from root-install/root-6.28.00-dl/lib/libRooFitCore.so.6.28.00
#9 0x00007f321e40d4ca in RooCacheManager::getObj(RooArgSet const*, RooArgSet const*, int*, TNamed const*) () from root-install/root-6.28.00-dl/lib/libRooFitCore.so.6.28.00
#10 0x00007f321e473227 in RooAbsPdf::syncNormalization(RooArgSet const*, bool) const () from root-install/root-6.28.00-dl/lib/libRooFitCore.so.6.28.00
#11 0x00007f321e46cc7f in RooAbsPdf::getNorm(RooArgSet const*) const () from root-install/root-6.28.00-dl/lib/libRooFitCore.so.6.28.00
#12 0x00007f321e64ede5 in RooRealSumPdf::expectedEvents(RooArgSet const*) const () from root-install/root-6.28.00-dl/lib/libRooFitCore.so.6.28.00
#13 0x00007f321e619809 in RooProdPdf::expectedEvents(RooArgSet const*) const () from root-install/root-6.28.00-dl/lib/libRooFitCore.so.6.28.00
#14 0x00007f321e66c609 in RooSimultaneous::evaluate() const () from root-install/root-6.28.00-dl/lib/libRooFitCore.so.6.28.00
#15 0x00007f321e46b2a8 in RooAbsPdf::printValue(std::ostream&) const () from root-install/root-6.28.00-dl/lib/libRooFitCore.so.6.28.00
#16 0x00007f321e614018 in RooPrintable::printStream(std::ostream&, int, RooPrintable::StyleOption, TString) const () from root-install/root-6.28.00-dl/lib/libRooFitCore.so.6.28.00
#17 0x00007f321d42be2b in RooStats::ModelConfig::Print(char const*) const () from root-install/root-6.28.00-dl/lib/libRooStats.so.6.28.00
#18 0x00007f321d42c9da in RooStats::ModelConfig::GuessObsAndNuisance(RooAbsData const&, bool) () from root-install/root-6.28.00-dl/lib/libRooStats.so.6.28.00
#19 0x00007f321d3eff21 in RooStats::HypoTestCalculatorGeneric::GetHypoTest() const () from root-install/root-6.28.00-dl/lib/libRooStats.so.6.28.00
#20 0x00007f321d3f3329 in RooStats::HypoTestInverter::Eval(RooStats::HypoTestCalculatorGeneric&, bool, double) const () from root-install/root-6.28.00-dl/lib/libRooStats.so.6.28.00
#21 0x00007f321d3f44d6 in RooStats::HypoTestInverter::RunOnePoint(double, bool, double) const () from root-install/root-6.28.00-dl/lib/libRooStats.so.6.28.00
#22 0x00007f321d3f5374 in RooStats::HypoTestInverter::RunFixedScan(int, double, double, bool) const () from root-install/root-6.28.00-dl/lib/libRooStats.so.6.28.00
#23 0x00007f321d3f7fa4 in RooStats::HypoTestInverter::GetInterval() const () from root-install/root-6.28.00-dl/lib/libRooStats.so.6.28.00
#24 0x00007f32323436fd in RooStats::HypoTestInvTool::RunInverter(RooWorkspace*, char const*, char const*, char const*, int, int, bool, int, double, double, int, bool, char const*) () from debug/StandardHypoTestInvDemo_C.so
#25 0x00007f3232347573 in StandardHypoTestInvDemo(char const*, char const*, char const*, char const*, char const*, int, int, bool, int, double, double, int, bool, char const*) () from debug/StandardHypoTestInvDemo_C.so