Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

FitterFactory.cxx

Go to the documentation of this file.
00001 
00011 #ifdef HAVE_CONFIG_H
00012 #include "config.h"
00013 #endif
00014 
00015 // for truncation warning in debug mode
00016 #ifdef _MSC_VER
00017 #include "msdevstudio/MSconfig.h"
00018 #endif
00019 
00020 #ifdef HAVE_CONFIG_H
00021 #include "config.h"
00022 #endif
00023 
00024 #include "FitterFactory.h"
00025 
00026 // List of default fitters
00027 #include "LMFitter.h"
00028 #include "BFGSFitter.h"
00029 
00030 #ifdef HAVE_MINUIT
00031 #include "MinuitMigrad.h"
00032 #endif
00033 
00034 // List of default objective functions
00035 #include "NTupleChiSqFCN.h"
00036 #include "NTupleLikeliHoodFCN.h"
00037 #include "NTuplePearsonFCN.h"
00038 
00039 FitterFactory * FitterFactory::s_instance = 0;
00040 
00041 FitterFactory::FitterFactory ()
00042 {
00043 }
00044 
00045 FitterFactory * FitterFactory::instance ()
00046 {
00047   if ( s_instance == 0 ) {
00048     s_instance = new FitterFactory ();
00049     s_instance->initialize ();
00050   }
00051 
00052   return s_instance;
00053 }
00054 
00055 void FitterFactory::initialize ()
00056 {
00057   Fitter * fitter = new LMFitter ( "ChiSq: Levenberg Marquart" );
00058   StatedFCN * chifcn = new NTupleChiSqFCN ();
00059   fitter -> setFCN ( chifcn );
00060   add ( fitter  );
00061 
00062   fitter = new LMFitter ( "Pearson: BFGS" );
00063   StatedFCN * pearsonfcn = new NTuplePearsonFCN ();
00064   fitter -> setFCN ( pearsonfcn );
00065   add ( fitter  );
00066 
00067   fitter = new BFGSFitter   ( "MLEH: BFGS" );
00068   StatedFCN * likfcn = new NTupleLikeliHoodFCN ();
00069   fitter -> setFCN ( likfcn ); 
00070   add ( fitter );
00071  
00072 #ifdef HAVE_MINUIT 
00073   fitter = new MinuitMigrad ( "ChiSq: Minuit(Migrad)" );
00074   fitter -> setFCN ( chifcn );
00075   add ( fitter );
00076 
00077   fitter = new MinuitMigrad ( "MLEH: Minuit(Migrad)" );
00078   fitter -> setFCN ( likfcn ); 
00079   add ( fitter );
00080 #endif
00081   
00082 }

Generated for HippoDraw-1.14.8.5 by doxygen 1.4.3