13#ifndef ROOT_Fit_LogLikelihoodFCN
14#define ROOT_Fit_LogLikelihoodFCN
39template<
class DerivFunType,
class ModelFunType = ROOT::Math::IParamMultiFunction>
44 typedef typename ModelFunType::BackendType
T;
121 virtual double DataElement(
const double *
x,
unsigned int i,
double *
g,
double *
h =
nullptr,
bool fullHessian =
false)
const {
155 virtual double DoEval (
const double *
x)
const {
163 return fGrad[icoord];
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
void SetData(const std::shared_ptr< UnBinData > &data)
std::shared_ptr< IModelFunction > ModelFunctionPtr() const
access to function pointer
void SetModelFunction(const std::shared_ptr< IModelFunction > &func)
virtual const DataType & Data() const
access to const reference to the data
BasicFCN(const std::shared_ptr< UnBinData > &data, const std::shared_ptr< IModelFunction > &func)
std::shared_ptr< DataType > DataPtr() const
access to data pointer
virtual const IModelFunction & ModelFunction() const
access to const reference to the model function
LogLikelihoodFCN class for likelihood fits.
BaseObjFunction::BaseFunction BaseFunction
LogLikelihoodFCN(const UnBinData &data, const IModelFunction &func, int weight=0, bool extended=false, const ::ROOT::EExecutionPolicy &executionPolicy=::ROOT::EExecutionPolicy::kSequential)
Constructor from unbin data set and model function (pdf) for object managed by users.
virtual BaseObjFunction::Type_t Type() const
get type of fit method function
LogLikelihoodFCN & operator=(const LogLikelihoodFCN &rhs)
Assignment operator.
virtual double DoDerivative(const double *x, unsigned int icoord) const
::ROOT::Math::IParamMultiFunctionTempl< T > IModelFunction
LogLikelihoodFCN(const LogLikelihoodFCN &f)
Copy constructor.
BasicFCN< DerivFunType, ModelFunType, UnBinData > BaseFCN
ModelFunType::BackendType T
LogLikelihoodFCN(const std::shared_ptr< UnBinData > &data, const std::shared_ptr< IModelFunction > &func, int weight=0, bool extended=false, const ::ROOT::EExecutionPolicy &executionPolicy=::ROOT::EExecutionPolicy::kSequential)
Constructor from unbin data set and model function (pdf)
void UseSumOfWeightSquare(bool on=true)
virtual void Gradient(const double *x, double *g) const
::ROOT::Math::BasicFitMethodFunction< DerivFunType > BaseObjFunction
virtual BaseFunction * Clone() const
virtual ~LogLikelihoodFCN()
Destructor (no operations)
virtual unsigned int NFitPoints() const
std::vector< double > fGrad
BaseObjFunction::Type_t Type_t
::ROOT::EExecutionPolicy fExecutionPolicy
virtual double DataElement(const double *x, unsigned int i, double *g, double *h=nullptr, bool fullHessian=false) const
i-th likelihood contribution and its gradient
virtual double DoEval(const double *x) const
Evaluation of the function (required by interface)
Class describing the un-binned data sets (just x coordinates values) of any dimensions.
DerivFunType::BaseFunc BaseFunction
virtual void UpdateNCalls() const
Namespace for the fitting classes.
LogLikelihoodFCN< ROOT::Math::IMultiGenFunction, ROOT::Math::IParamMultiFunction > LogLikelihoodFunction
LogLikelihoodFCN< ROOT::Math::IMultiGradFunction, ROOT::Math::IParamMultiFunction > LogLikelihoodGradFunction
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
static double EvalLogL(const IModelFunctionTempl< double > &func, const UnBinData &data, const double *p, int iWeight, bool extended, unsigned int &nPoints, ::ROOT::EExecutionPolicy executionPolicy, unsigned nChunks=0)
static void EvalLogLGradient(const IModelFunctionTempl< double > &func, const UnBinData &data, const double *p, double *g, unsigned int &nPoints, ::ROOT::EExecutionPolicy executionPolicy=::ROOT::EExecutionPolicy::kSequential, unsigned nChunks=0)
static double EvalPdf(const IModelFunctionTempl< double > &func, const UnBinData &data, const double *p, unsigned int i, double *g, double *h, bool hasGrad, bool fullHessian)