14#ifndef RooFit_RooFitDriver_h
15#define RooFit_RooFitDriver_h
35namespace Experimental {
44 using DataSpansMap = std::map<RooFit::Detail::DataKey, RooSpan<const double>>;
53 RooAbsCategory const *indexCatForSplitting =
nullptr,
bool skipZeroWeights =
false,
54 bool takeGlobalObservablesFromData =
true);
67 std::chrono::microseconds
simulateFit(std::chrono::microseconds h2dTime, std::chrono::microseconds d2hTime,
68 std::chrono::microseconds diffThreshold);
A NormalizationIntegralUnfolder takes the top node of a computation graph and a normalization set for...
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.
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
std::unique_ptr< RooFit::NormalizationIntegralUnfolder > _integralUnfolder
void determineOutputSizes()
std::vector< NodeInfo > _nodes
std::vector< double > getValues()
void assignToGPU(NodeInfo &info)
Assign a node to be computed in the GPU.
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 setData(RooAbsData const &data, std::string_view rangeName="", RooAbsCategory const *indexCatForSplitting=nullptr, bool skipZeroWeights=false, bool takeGlobalObservablesFromData=true)
RooAbsReal & topNode() const
std::chrono::microseconds simulateFit(std::chrono::microseconds h2dTime, std::chrono::microseconds d2hTime, std::chrono::microseconds diffThreshold)
This methods simulates the computation of the whole graph and the time it takes and decides what to c...
RooAbsArg is the common abstract base class for objects that represent a value and a "shape" in RooFi...
RooAbsCategory is the base class for objects that represent a discrete value with a finite number of ...
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.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
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.