31 std::array<double, 3> extraArgs{0.0, 0.0, 0.0};
36 std::size_t nEvalErrorsType0 = extraArgs[0];
37 std::size_t nEvalErrorsType1 = extraArgs[1];
38 std::size_t nEvalErrorsType2 = extraArgs[2];
40 for (std::size_t i = 0; i < nEvalErrorsType0; ++i) {
41 logEvalError(
"p.d.f normalization integral is zero or negative");
43 for (std::size_t i = 0; i < nEvalErrorsType1; ++i) {
44 logEvalError(
"p.d.f value is less than zero, trying to recover");
46 for (std::size_t i = 0; i < nEvalErrorsType2; ++i) {
void logEvalError(const char *message, const char *serverValueString=nullptr) const
Log evaluation error message.
A class to maintain the context for squashing of RooFit models into code.
void addResult(RooAbsArg const *key, std::string const &value)
A function to save an expression that includes/depends on the result of the input node.
std::string const & getResult(RooAbsArg const &arg)
Gets the result for the given node using the node name.
std::span< const double > at(RooAbsArg const *arg, RooAbsArg const *caller=nullptr)
std::span< double > output()
RooBatchCompute::Config config(RooAbsArg const *arg) const
void translate(RooFit::Detail::CodeSquashContext &ctx) const override
This function defines a translation for each RooAbsReal based object that can be used to express the ...
RooRealProxy _normIntegral
void doEval(RooFit::EvalContext &) const override
Base function for computing multiple values of a RooAbsReal.
RooTemplateProxy< RooAbsPdf > _pdf
void compute(Config cfg, Computer comp, std::span< double > output, VarSpan vars, ArgSpan extraArgs={})