/*********************************************************************************************

  name:       musrfit.dox

  created by: Andreas Suter, 2010/05/31

  content:    Description of musrfit framework.

  $Id$

**********************************************************************************************/

/**

\mainpage musrfit - a framework to analyse muSR data.

<p>This pages here are meant to explain the software structure of the musrfit framework. 

<p>People merely intrested in the handling of the programs should check this link:
\htmlonly
<a href="https://intranet.psi.ch/MUSR/MusrFit">musrfit user manual</a>
\endhtmlonly
\latexonly
musrfit user manual: \texttt{https://intranet.psi.ch/MUSR/MusrFit}
\endlatexonly 

<p>People which would like to know how to install the musrfit framework, please check this link:
\htmlonly
<a href="https://intranet.psi.ch/MUSR/MusrFitSetup">How to setup musrfit on different platforms</a>
\endhtmlonly
\latexonly
How to setup musrfit on different platforms: \texttt{https://intranet.psi.ch/MUSR/MusrFitSetup}
\endlatexonly

//****************************************************************************************************
\section overview Overview

<p>The purpose of the musrfit framework is to provide software to analyze muSR spectra, in a very flexible and sound way. The musrfit framework is free software, published under the General Public License Version 2 or later. It is currently running under Linux, Mac OS X, and (with some more work) under Windows. The musrfit framework heavily relies on the \htmlonly <a href="http://root.cern.ch">ROOT</a>\endhtmlonly \latexonly ROOT: \texttt{http://root.cern.ch}\endlatexonly framework from CERN 

<p>The musrfit framework provies the following programs: 
- \ref musrfit Carries out fits based on a msr-file.
- \ref musrview Is used show the data in a graphical representation.
- \ref musrt0 Is used to set graphically t0's, background and data ranges off raw histogram data.
- \ref musrparam Can be used to generate ascii output files with extracted fit-parameters (from msr-files) and independent additional variables like temperature, field, ... The ascii output files can than be used to plot parameters, e.g. by gnuplot.
- \ref msr2data A program (originally written by Bastian M. Wojek). Its purpose is to process/generate multiple musrfit msr-files with the same parameters and summarize the fitting results either in a TRIUMF DB or a column ASCII file.
- \ref msr2msr Old WKM like msr-files can be transformed into musrfit style msr-files with this little program.
- \ref musrgui An editor to handle msr-files, calling musrfit, etc. from within the editor, based on Qt3.x. 
               Only bug fixing will be done on this version, and if you have >= Qt4.6 available you should use musredit instead.
- \ref musredit An editor to handle msr-files, calling musrfit, etc. from within a simple text editor, based 
               on >= Qt4.6. 
- \ref MuSRFit A graphical user interface based on PerlQt (written by Z. Salman) for an easy to use interface to the musrfit framework. Compared to the more general approach of writting msr-files, it has some limitations, though it might be easier for a first user of the musrfit framework.

\section roadmap Road map and missing features

<p>The following features should eventually be implemented, but are still missing:
- support for NeXuS files. Reason: As soon as ISIS and PSI will support this file type, musrfit will do as well
- there are still issues with MUD files on 64bit systems which should eventually be fixed.
- non-muSR: The plan is to add an option to fit/plot \f$f(x_1,\ldots,x_n)\f$ versus \f$g(x_1,\ldots,x_n)\f$, where \f$x_i\f$ is a given data set element.
- mu-Minus: The handling for \f$\mu_{-}\f$ fits is still missing and should be implemented.
- as soon as ROOT will properly support MS Windows platforms, some better support for MS Windows will be added. Currently only the cygwin version will be supported.
- check if it is possible to add FIR filtering for muSR data
- add an interface to maxent
- we will provide rpm's for various linux flavours.

\section shortComings Short comings of the current musrfit design

<p>The musrfit framework has some shortcomings which will shortly discussed here:

-# musrfit is not thread save do to the current implementation of LF in PTheory. Perhaps this part should be redesigned at some point to resolve this problem.
-# Currently each msr-file run holds its one theory object. This is not very nice for costly user functions which will need to setup internal things for each run, even though resources could be shared.

This two points are somewhat contradictory, and currently it is not clear which way to go. 

\section bugs How to report bugs

<p>Bugs, unexpected features, can be reported directly to me: \verbatim andreas.suter@psi.ch, \endverbatim or entered in the bug-tracking tool at PSI \verbatim https://tracker.intranet.psi.ch/ \endverbatim.

//****************************************************************************************************
\page musrfitPage
\section musrfit musrfit

<p>Here will eventually follow a more technical description of musrfit. If you looking for a user-manual like description, please check \htmlonly<a href="https://intranet.psi.ch/MUSR/MusrFit">musrfit user manual</a>\endhtmlonly \latexonly musrfit user manual: \texttt{https://intranet.psi.ch/MUSR/MusrFit} \endlatexonly

//****************************************************************************************************
\page musrviewPage
\section musrview musrview

<p>Here will eventually follow a more technical description of musrview. If you looking for a user-manual like description, please check \htmlonly<a href="https://intranet.psi.ch/MUSR/MusrFit">musrfit user manual</a>\endhtmlonly \latexonly musrfit user manual: \texttt{https://intranet.psi.ch/MUSR/MusrFit} \endlatexonly

//****************************************************************************************************
\page musrt0Page
\section musrt0 musrt0

<p>Here will eventually follow a more technical description of musrt0. If you looking for a user-manual like description, please check \htmlonly<a href="https://intranet.psi.ch/MUSR/MusrFit">musrfit user manual</a>\endhtmlonly \latexonly musrfit user manual: \texttt{https://intranet.psi.ch/MUSR/MusrFit} \endlatexonly

//****************************************************************************************************
\page musrparamPage
\section musrparam musrparam

<p>Here will eventually follow a more technical description of musrparam. If you looking for a user-manual like description, please check \htmlonly<a href="https://intranet.psi.ch/MUSR/MusrFit">musrfit user manual</a>\endhtmlonly \latexonly musrfit user manual: \texttt{https://intranet.psi.ch/MUSR/MusrFit} \endlatexonly

//****************************************************************************************************
\page msr2dataPage
\section msr2data msr2data

<p>Here will eventually follow a more technical description of musr2data. If you looking for a user-manual like description, please check \htmlonly<a href="https://intranet.psi.ch/MUSR/MusrFit">musrfit user manual</a>\endhtmlonly \latexonly musrfit user manual: \texttt{https://intranet.psi.ch/MUSR/MusrFit} \endlatexonly

//****************************************************************************************************
\page msr2msrPage
\section msr2msr msr2msr

<p>Here will eventually follow a more technical description of msr2msr. If you looking for a user-manual like description, please check \htmlonly<a href="https://intranet.psi.ch/MUSR/MusrFit">musrfit user manual</a>\endhtmlonly \latexonly musrfit user manual: \texttt{https://intranet.psi.ch/MUSR/MusrFit} \endlatexonly

//****************************************************************************************************
\page musrguiPage
\section musrgui musrgui

<p>Here will eventually follow a more technical description of musrgui. If you looking for a user-manual like description, please check \htmlonly<a href="https://intranet.psi.ch/MUSR/MusrFit">musrfit user manual</a>\endhtmlonly \latexonly musrfit user manual: \texttt{https://intranet.psi.ch/MUSR/MusrFit} \endlatexonly

//****************************************************************************************************
\page musreditPage
\section musredit musredit

<p>Here will eventually follow a more technical description of musredit. If you looking for a user-manual like description, please check \htmlonly<a href="https://intranet.psi.ch/MUSR/MusrFit">musrfit user manual</a>\endhtmlonly \latexonly musrfit user manual: \texttt{https://intranet.psi.ch/MUSR/MusrFit} \endlatexonly

//****************************************************************************************************
\page MuSRFitPage
\section MuSRFit MuSRFit
*/
