ROOT Version: 6.10/04 (running on LXPLUS)
Platform: SL6 (LXPLUS)
Compiler: g++ 6.2.0 (presumably, I’m not sure how to get that from root-config)
In PyROOT I’m trying to construct a ROOT::Fit::Fitter to do a binned likelihood fit. I understand how to construct the BinData, however, I need to set the model that will be fit with SetFunction(),
void SetFunction(const IModelFunction & func, bool useGradient = false)
However, I’m not exactly clear on the docs on what are reasonable derived classes to use here for the func ( ROOT::Fit::BasicFCN needs to be from a created from a derived class for example).
I had tried writing a class that inherits from ROOT.TPyMultiGenFunction so I could use ROOT::Fit::Fitter::SetFCN but then following that with ROOT::Fit::Fitter::LikelihoodFit with my BinData object causes the error
Error in <ROOT::Math::Fitter::DoBinnedLikelihoodFit>: model function is not set
*** Break *** segmentation violation
However, if I run FitFCN with my class then I can get it to work. However, I would like to not have to implement everything by hand if possible and use the LikelihoodFit instead.
So it isn’t clear to me how to properly set this. Can anyone give me an example of how to construct a toy model in PyROOT using ROOT::Fit::Fitter?