diff --git a/roofit/roofitcore/src/RooGenProdProj.cxx b/roofit/roofitcore/src/RooGenProdProj.cxx index 7ee3b7d86286d..6d9b712d54152 100644 --- a/roofit/roofitcore/src/RooGenProdProj.cxx +++ b/roofit/roofitcore/src/RooGenProdProj.cxx @@ -166,6 +166,8 @@ RooAbsReal* RooGenProdProj::makeIntegral(const char* name, const RooArgSet& comp // normalization. RooArgSet emptyNormSet{}; + RooArgSet keepAlive; + for (const auto pdfAsArg : compSet) { auto pdf = static_cast(pdfAsArg); @@ -183,8 +185,8 @@ RooAbsReal* RooGenProdProj::makeIntegral(const char* name, const RooArgSet& comp // Remove analytically integratable observables from numeric integration list numIntSet.remove(anaSet) ; - // Declare ownership of integral - saveSet.addOwned(std::move(pai)); + // Keep integral alive until the prodSet is cloned later + keepAlive.addOwned(std::move(pai)); } else { // Analytic integration of factorizable observable not possible, add straight pdf to product prodSet.add(*pdf) ;