13 #ifndef ROOT_Fit_BasicFCN
14 #define ROOT_Fit_BasicFCN
39 template<
class DerivFunType,
class ModelFunType,
class DataType>
40 class BasicFCN :
public ::ROOT::Math::BasicFitMethodFunction<DerivFunType> {
44 typedef typename ModelFunType::BackendType T;
46 typedef ::ROOT::Math::BasicFitMethodFunction<DerivFunType> BaseObjFunction;
47 typedef typename BaseObjFunction::BaseFunction BaseFunction;
49 typedef ::ROOT::Math::IParamMultiFunctionTempl<T> IModelFunction;
54 BasicFCN (
const std::shared_ptr<DataType> & data,
const std::shared_ptr<IModelFunction> & func) :
55 BaseObjFunction(func->NPar(), data->Size() ),
65 virtual ~BasicFCN () {}
71 virtual const DataType & Data()
const {
return *fData; }
74 std::shared_ptr<DataType> DataPtr()
const {
return fData; }
77 virtual const IModelFunction & ModelFunction()
const {
return *fFunc; }
80 std::shared_ptr<IModelFunction> ModelFunctionPtr()
const {
return fFunc; }
88 void SetData(
const std::shared_ptr<DataType> & data) { fData = data; }
91 void SetModelFunction(
const std::shared_ptr<IModelFunction> & func) { fFunc = func; }
94 std::shared_ptr<DataType> fData;
95 std::shared_ptr<IModelFunction> fFunc;