|Minimizer Interface [message #12720]
|Fri, 14 October 2011 12:36
Registered: May 2009
in this post i'd like to discuss ideas for and requirements of an interface to minimizers like Geneva and Minuit2.
As a starter i will show a small first test i did for a toy-application:
Attached you can find a pdf with a visualization of the basic class structure and an example. As i do not have very much experience with general analysis packages, this interface i show here is meant as a playground.
For this first interface-draft i mainly tried to separate the interaction with the minimizers from the user-level. Therefore i have a virtual base-class for Minimizers called MIBase, which takes care that every implementation of it (with whatever minimizer) is able to deal with the same "data". In particular this means that the function that has to be minimized is provided by the user by implementing a class of type MIData. There he has to provide a function which then can be minimized. The minimizer-implementations (like MIMinuit in the example) need a MIData class to work with.
On the attached slide you have an small example on the left side where Geneva and/or Minuit2 are called to perform a polynomial fit to some smeared toy-data using the same parameters. Next to the example you find the classes used together with their base classes, with blue classes being part of the interface and just the orange one on the bottom is part of the user side. You can find this example also in the git-repository of the panda-pwa-tool in: Examples/Tutorial/FitIF/
As you can see in the example the parameters are just a list of doubles at the moment, i am lacking of a more flexible way to deal with the parameters of the minimization up to now. Also i didn't implement functionality to control the minimizers, which is technically not a problem but one has to check what options should be general for all minimizers and which ones are specific.
If you have questions, suggestions or some requirements (to make it suitable for the BES-software a.e.), feel free to discuss it here, i'd be glad about some feedback and ideas.
(Size: 309.48KB, Downloaded 693 times)