15#ifndef RooFit_RooEvaluatorWrapper_h
16#define RooFit_RooEvaluatorWrapper_h
36class RooEvaluatorWrapper final :
public RooAbsReal {
39 RooAbsPdf const *simPdf,
bool takeGlobalObservablesFromData,
int nWorkers = 1);
41 RooEvaluatorWrapper(
const RooEvaluatorWrapper &other,
const char *
name =
nullptr);
43 ~RooEvaluatorWrapper();
45 TObject *clone(
const char *newname)
const override {
return new RooEvaluatorWrapper(*
this, newname); }
47 double defaultErrorLevel()
const override {
return _topNode->defaultErrorLevel(); }
49 bool getParameters(
const RooArgSet *observables,
RooArgSet &outputSet,
bool stripDisconnected =
true)
const override;
55 void applyWeightSquared(
bool flag)
override { _topNode->applyWeightSquared(flag); }
57 bool hasGradient()
const override;
58 bool hasHessian()
const override;
60 void gradient(
double *out)
const override;
61 void hessian(
double *out)
const override;
63 void generateGradient();
64 void generateHessian();
66 void setUseGeneratedFunctionCode(
bool);
67 void writeDebugMacro(std::string
const &)
const;
74 RooAbsReal const &topNode()
const {
return *_topNode; }
80 void createFuncWrapper();
82 std::shared_ptr<RooFit::Evaluator> _evaluator;
83 std::shared_ptr<RooFuncWrapper> _funcWrapper;
87 std::string _rangeName;
89 const bool _takeGlobalObservablesFromData;
90 bool _useGeneratedFunctionCode =
false;
91 std::stack<std::vector<double>> _vectorBuffers;
92 std::map<RooFit::Detail::DataKey, std::span<const double>> _dataSpans;
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
Scope guard that temporarily changes the operation mode of one or more RooAbsArg instances.
Common abstract base class for objects that represent a value and a "shape" in RooFit.
A space to attach TBranches.
Abstract base class for binned and unbinned datasets.
Abstract interface for all probability density functions.
Abstract base class for objects that represent a real value and implements functionality common to al...
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Evaluates a RooAbsReal object in other ways than recursive graph traversal.
Mother of all ROOT objects.
void evaluate(typename Architecture_t::Tensor_t &A, EActivationFunction f)
Apply the given activation function to each value in the given tensor A.