diff --git a/roofit/roofit/src/RooUniform.cxx b/roofit/roofit/src/RooUniform.cxx index 281896bddb56b..5448366210325 100644 --- a/roofit/roofit/src/RooUniform.cxx +++ b/roofit/roofit/src/RooUniform.cxx @@ -57,7 +57,14 @@ RooSpan RooUniform::evaluateSpan(RooBatchCompute::RunContext& evalData, { size_t nEvents = 1; for (auto elm : x) { - nEvents *= static_cast(elm)->getValues(evalData).size(); + size_t nEventsCurrent = static_cast(elm)->getValues(evalData).size(); + if(nEventsCurrent != 1 && nEvents != 1 && nEventsCurrent != nEvents) { + auto errorMsg = std::string("RooUniform::evaluateSpan(): number of entries for input variables does not match") + + "in RooUniform with name \"" + GetName() + "\"."; + coutE(FastEvaluations) << errorMsg << std::endl ; + throw std::runtime_error(errorMsg); + } + nEvents = std::max(nEvents, nEventsCurrent); } RooSpan values = evalData.makeBatch(this, nEvents); for (size_t i=0; i