Design Improvements
Current (v1.x+) design suffers from number of restrictions imposed early for simple scenario of fitting only MSADC detectors with a single procedure:
- Numerical models are defined by opaque fitting procedure class; imposing new model (even similar to current Moyal) will require repetition of some valuable and complicated code.
- Conditional re-fit is not compatible with multiple initial conditions procedure
- A mess with class naming makes it sometimes to look misleading: many fitting procedure classes have "MSADC" which is not true, for instance in case of Genova waveboard. There are also some interfaces that became abstract classes and saced
iprefix, etc - Fitting procedure state management in general is not poor and transparent, only "PeakInfo" (and in, version 1.6, peaks index) is recoverable; more proper generalized solution should foresee full state save/restore lifecycle for subclassing procedures
Minor changes that can be applied gradually:
- Rename classes; use "Additive" instead of "MSADC", or "Waveform" to make the naming reflect particular purpose, use "Term" instead of "Peak"
- Introduce
iStatefulFittingProcedureinterface in between ofiMSADCFitProcedureandiPrefittedMSADCProcedureto require subclasses to implement save/restore state behavior. - ...
A major design change affecting current internal API to the most:
- Make the model to be 1st class citizen (interfaced entity)
- ...
Edited by Renat Dusaev
