14#ifndef RooFit_Evaluator_h 
   15#define RooFit_Evaluator_h 
   29class AbsBufferManager;
 
   41   std::span<const double> 
run();
 
   44   void print(std::ostream &os);
 
 
Struct to temporarily change the operation mode of a RooAbsArg until it goes out of scope.
 
Common abstract base class for objects that represent a value and a "shape" in RooFit.
 
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.
 
void print(std::ostream &os)
 
void setClientsDirty(NodeInfo &nodeInfo)
Flags all the clients of a given node dirty.
 
RooArgSet getParameters() const
Gets all the parameters of the RooAbsReal.
 
void setOffsetMode(RooFit::EvalContext::OffsetMode)
Sets the offset mode for evaluation.
 
void syncDataTokens()
If there are servers with the same name that got de-duplicated in the _nodes list,...
 
std::vector< NodeInfo > _nodes
 
bool _needToUpdateOutputSizes
 
std::span< const double > getValHeterogeneous()
Returns the value of the top node in the computation graph.
 
std::span< const double > run()
Returns the value of the top node in the computation graph.
 
Evaluator(const RooAbsReal &absReal, bool useGPU=false)
Construct a new Evaluator.
 
void processVariable(NodeInfo &nodeInfo)
Process a variable in the computation graph.
 
std::unique_ptr< RooBatchCompute::AbsBufferManager > _bufferManager
 
void markGPUNodes()
Decides which nodes are assigned to the GPU in a CUDA fit.
 
void assignToGPU(NodeInfo &info)
Assign a node to be computed in the GPU.
 
void setInput(std::string const &name, std::span< const double > inputArray, bool isOnDevice)
 
RooFit::EvalContext _evalContextCUDA
 
RooFit::EvalContext _evalContextCPU
 
void computeCPUNode(const RooAbsArg *node, NodeInfo &info)
 
std::stack< std::unique_ptr< ChangeOperModeRAII > > _changeOperModeRAIIs
 
void setOperMode(RooAbsArg *arg, RooAbsArg::OperMode opMode)
Temporarily change the operation mode of a RooAbsArg until the Evaluator gets deleted.
 
Namespace for dispatching RooFit computations to various backends.
 
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
 
A struct used by the Evaluator to store information on the RooAbsArgs in the computation graph.