14#ifndef RooFit_RooFitDriver_h
15#define RooFit_RooFitDriver_h
33namespace Experimental {
42 using DataSpansMap = std::map<RooFit::Detail::DataKey, RooSpan<const double>>;
50 bool skipZeroWeights =
false,
bool takeGlobalObservablesFromData =
true);
60 void print(std::ostream &os)
const;
103 bool takeGlobalObservablesFromData);
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
void applyWeightSquared(bool flag) override
Disables or enables the usage of squared weights.
TObject * clone(const char *newname) const override
const bool _takeGlobalObservablesFromData
double getValV(const RooArgSet *) const override
Return value of object.
void printMultiline(std::ostream &os, Int_t, bool=false, TString="") const override
Structure printing.
double defaultErrorLevel() const override
RooSimultaneous const * _simPdf
std::shared_ptr< RooFitDriver > _driver
bool setData(RooAbsData &data, bool cloneData) override
bool getParameters(const RooArgSet *observables, RooArgSet &outputSet, bool stripDisconnected) const override
Fills a list with leaf nodes in the arg tree starting with ourself as top node that don't match any o...
double evaluate() const override
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
std::map< RooFit::Detail::DataKey, RooSpan< const double > > DataSpansMap
const RooFit::BatchModeOption _batchMode
void setOperMode(RooAbsArg *arg, RooAbsArg::OperMode opMode)
Temporarily change the operation mode of a RooAbsArg until the RooFitDriver gets deleted.
void syncDataTokens()
If there are servers with the same name that got de-duplicated in the _nodes list,...
RooFit::Detail::DataMap _dataMapCPU
double getValHeterogeneous()
Returns the value of the top node in the computation graph.
double getVal()
Returns the value of the top node in the computation graph.
RooFit::Detail::DataMap _dataMapCUDA
void setData(RooAbsData const &data, std::string const &rangeName="", RooSimultaneous const *simPdf=nullptr, bool skipZeroWeights=false, bool takeGlobalObservablesFromData=true)
void determineOutputSizes()
std::vector< NodeInfo > _nodes
std::vector< double > getValues()
void assignToGPU(NodeInfo &info)
Assign a node to be computed in the GPU.
void processVariable(NodeInfo &nodeInfo)
Process a variable in the computation graph.
void computeCPUNode(const RooAbsArg *node, NodeInfo &info)
Detail::BufferManager _bufferManager
std::stack< std::vector< double > > _vectorBuffers
void markGPUNodes()
Decides which nodes are assigned to the GPU in a CUDA fit.
std::stack< RooHelpers::ChangeOperModeRAII > _changeOperModeRAIIs
void setClientsDirty(NodeInfo &nodeInfo)
Flags all the clients of a given node dirty.
RooAbsReal & topNode() const
void print(std::ostream &os) const
RooArgSet getParameters() const
RooAbsArg is the common abstract base class for objects that represent a value and a "shape" in RooFi...
A space to attach TBranches.
RooAbsData is the common abstract base class for binned and unbinned datasets.
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
RooArgSet is a container object that can hold multiple RooAbsArg objects.
RooSimultaneous facilitates simultaneous fitting of multiple PDFs to subsets of a given dataset.
Mother of all ROOT objects.
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
BatchModeOption
For setting the batch mode flag with the BatchMode() command argument to RooAbsPdf::fitTo()
A struct used by the RooFitDriver to store information on the RooAbsArgs in the computation graph.