musrfit/src/ToDo.txt

158 lines
6.1 KiB
Plaintext

#------------------------------------------------------------------------
# ToDo.txt
# Andreas Suter, 2007/11/28
# $Id$
#------------------------------------------------------------------------
---------------------
short term:
---------------------
* dump data and theory after fit (ascii/root): **DONE** for now
done for ascii/root asymmetry && single histo: all the rest is missing
* migrate all typedef's and defines -> PMusr.h **DONE**
* Since rootcint cannot handle the spirit include files I will try to remove all the
root dictionary related stuff since almost for sure, nobody will use the classes
from the cint interpreter level 2007/12/27 **DONE**
* begin with the implementation of the FUNCTIONS block
using the spirit parser framework **DONE**
* 2007/12/30: implement functions in PTheory **DONE** 08-01-02
* 2008/01/02: nice function block output needed. **DONE** 08-01-02
* write a little standalone program which is converting the old msr-files to
the new ones. **DONE** 08-01-04
* implement max.likelihood fits **DONE** 08-02-06 (for Single Histo only.
For the others not clear how to do it.)
* fix problems in FUNCTIONS of the form (sin(par1)) **DONE** 08-02-18
* fix output problems of the mlog files **DONE** 08-02-22
* if a parameter is not used at all, minuit is still varying it!! This is stupid.
Check the minuit manual, there must be a function to "remove" these parameters,
i.e. forcing minuit to ignore them. checked the manual: use fix() (see p.31)
**DONE** 08-03-10
* implement table based theory functions (LF stuff)
static GKT LF **DONE** 08-03-12
* setup startup handler with infos like: data path, symbol list, color list, ...
**DONE** 08-04-04
* at the moment that startup handler is looked for in the directory where musrfit/musrview
is executed, this is stupid. Define a place where to look for it.
**DONE** 08-04-08
* do I need to cleanup AddText() objects from TPaveText etc myself? -> YES **DONE** 08-04-17
* need a CLEAN concept for handling data/theory generation for kView!! **DONE** 08-04-17
* something is strange with the coordinate system in TPaveText! **CHECK**
* something is wrong with lifetimecorrection plot of musrview (up shifted data) **FIXED** 08-05-16
* implement access to user-function, i.e. functions not
defined within musrfit, using the ROOT dictionary feature
to look for them and use them.
**DONE**
* tshift implementation under way. Wrong and needs to be fixed:
**FIXED** 08-06-16
* faulty dependency check in the Makefile when handling the PSI-Bin-Class stuff.
Needs to be fixed! **FIXED** 08-06-16
* implement NonMuSR stuff **DONE** 08-06-20, some more testing needed
* nonMusr: db-file format should be added. That this is going to work, in the
RUN block part, a new entry is needed, namely
xy-data. Indices or label are used to pick to proper data
from the db-file.
xy-data T asym <- labels
or
xy-data 3 6 <- indices
**DONE** 08-08-08
* Minuit2: name length is now unlimited and hence the 10 char restriction can be lifted.
**DONE** 08-08-08
* musrfit: switch "--keep-output-mn2" and "-k" needed. It will rename the MINUIT2.OUTPUT and
MINUIT2.root files to fln-mn2.output and fln-mn2.root.
This is sometimes nice to have.
**DONE** 08-09-01
* PFitter.cpp: the value of the parabolic error in the MINUIT2.OUTPUT is wrong (only MIGRAD is
called and neither HESSE nor MINOS). Suspect the problem in the ExecuteSave() routine.
Needs to be checked.
**DONE** 08-09-01
* PFitter.cpp: implement HESSE
**DONE** 08-09-01
* implement the handling for single side limited boundaries for parameters which is
possible in MINUIT2
syntax would be:
0.0 100.0 // lower and upper limit
0.0 none // lower limit only
none 100.0 // upper limit only
**FIRST IMPLEMENTATION DONE, NEEDS EXTENSIVE TESTING** 08-09-23
* CHECK: the normalization for single histo fits should ALWAYS be (1/ns)! (as discussed with Dima) but
I guess it is (1/bin) at the moment. (1/ns) has the advantage that it is really instrument independent!
**CHECKED AND FIXED** 08-11-12
* implement FFT with msr-interface
**DONE** 2009-01
* implement dynamic LF-KT by using the integral equation representation (Volterra Eq) and an optimzed
implementation of the gauss * sine integral
**START** 2009-01-13
---------------------
intermediate term:
---------------------
* start writing docu, i.e. transferring WKM doc from German -> English and
describe new features with examples!
* introduce error numbers with corresponding docu/explanation in the latex-docu.
* implement RRF stuff
---------------------
long term:
---------------------
* implement ROOT based wkmview, i.e. all the graphical stuff needed
including event handler, etc.
* switch from make to cmake
* add the possibility for cuts to db-files
* add the possibility for variable transformations to db-files
---------------------
bugs:
---------------------
* when having multiple plots: closing some of the plots and finally pressing 'q' will lead to a crash
since root already eliminated the closed canvas plot.
---------------------
problems:
---------------------
* rootcint cannot handle spirit framework includes, hence FUNCTIONS related stuff cannot be included
into a root dictionary.
---------------------
fixes:
---------------------
* Needed to change some part of the Minuit2 source code, otherwise I got a strange linker error message.
In MnMinos.h the constructors (3 overloaded versions) are defined implicitly. When linking against libPMusr.so
which is using libMinuit2Base.so, I got the error message from the linker that is cannot find the reference
to the second constructor. When transferring the implicit definition from the header file to the cxx, the
problem was gone. Since to fiddle in the Minuit2 source code directly is ugly, I should look for a way to
build libPMusr.so which doesn't have this problem.
-> This problem has been resolved cleanly by using minuit2 delivered with root!