I’ve been using recently TableCurve2D program to find the best fit to my data points. I was thinking that this kind of functionality could be implemented in root. TableCurve has a library of a few thousand of functions and tests which one fits the best a set of data. Maybe something like that could be implemented in root? Imagine:
TGraph *gr = new TGraph(10,x,y)
and that would display 10 first best functions…
Another idea comes from the fact that I see many people having they own classes which they use on daily basis. I have mine which performs some basic relativistic calculations, where I store masses of particles and physics constants. Maybe it would be good to have a database with such user-created classes. Not as a part of root, but as a collection of user cases, maybe useful for others?
I need it too, if I have some data and I don’t know which function could fitting it, how can we find the best fit?
In physics one has to be careful with what is used to fit data. The shape of the functions to be used to fit experimental data are usually determined from theory. For instance, nuclear scattering cross sections are usually fit with expressions from the R-matrix theory of nuclear reactions. How could you confidently determine physical properties of some nuclear state if you don’t use that? The same applies for HEP experimental data. I don’t think a library of fit functions would be useful, because once the fit is found, you probably won’t know what to do with the value of the fit parameters.
As for the set of basic classes, I believe that between CLHEP, Gean4, and ROOT there are several implementations that one can readily use. Have a look at https://root.cern/doc/master/Vector.html for more information.