Quad8FMain.cxx

Go to the documentation of this file.
00001 // @(#)root/minuit2:$Id: Quad8FMain.cxx 20880 2007-11-19 11:23:41Z rdm $
00002 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei   2003-2005  
00003 
00004 /**********************************************************************
00005  *                                                                    *
00006  * Copyright (c) 2005 LCG ROOT Math team,  CERN/PH-SFT                *
00007  *                                                                    *
00008  **********************************************************************/
00009 
00010 #include "Quad8F.h"
00011 #include "Minuit2/FunctionMinimum.h"
00012 #include "Minuit2/MnMigrad.h"
00013 #include "Minuit2/MnUserParameters.h"
00014 #include "Minuit2/MnPrint.h"
00015 // #include "TimingUtilities/PentiumTimer.h"
00016 
00017 // StackAllocator gStackAllocator;
00018 
00019 using namespace ROOT::Minuit2;
00020 
00021 int main() {
00022 
00023   Quad8F fcn;
00024 
00025 //   PentiumTimer stopwatch;
00026 //   stopwatch.start();
00027 
00028 //   long long int start = stopwatch.lap().ticks();
00029 //   long long int stop = stopwatch.lap().ticks();
00030 //   std::cout<<"stop-start: "<<stop - start<<std::endl;
00031 //   start = stopwatch.lap().ticks();
00032   {
00033   //test constructor
00034   MnUserParameters upar;
00035   upar.Add("x", 1., 0.1);
00036   upar.Add("y", 1., 0.1);
00037   upar.Add("z", 1., 0.1);
00038   upar.Add("w", 1., 0.1);
00039   upar.Add("x0", 1., 0.1);
00040   upar.Add("y0", 1., 0.1);
00041   upar.Add("z0", 1., 0.1);
00042   upar.Add("w0", 1., 0.1);
00043 
00044   MnMigrad migrad(fcn, upar);
00045   FunctionMinimum min = migrad();
00046   std::cout<<"minimum: "<<min<<std::endl;
00047   }
00048 //   stop = stopwatch.lap().ticks();
00049 //   std::cout<<"stop-start: "<<stop - start<<std::endl;
00050 /*
00051 
00052   {
00053   //test constructor
00054   std::vector<double> par(8); 
00055   std::vector<double> err(8);
00056   for(int i = 0; i < 8; i++) {
00057     par[i] = 1.;
00058     err[i] = 0.1;
00059   }
00060   MnMigrad migrad(fcn, par, err);
00061   FunctionMinimum min = migrad();
00062   std::cout<<"minimum: "<<min<<std::endl;
00063   }
00064 
00065   {
00066   //test edm Value
00067   std::vector<double> par(8); 
00068   std::vector<double> err(8);
00069   for(int i = 0; i < 8; i++) {
00070     par[i] = 1.;
00071     err[i] = 0.1;
00072   }
00073   MnMigrad migrad(fcn, par, err);
00074   double edm = 1.e-1;
00075   FunctionMinimum min = migrad(20, edm);
00076   std::cout<<"minimum: "<<min<<std::endl;
00077   }
00078 
00079   {
00080   //test # of iterations
00081   std::vector<double> par(4); 
00082   std::vector<double> err(4);
00083   for(int i = 0; i < 4; i++) {
00084     par[i] = 1.;
00085     err[i] = 0.1;
00086   }
00087   MnMigrad migrad(fcn, par, err);
00088   int niter = 2;
00089   FunctionMinimum min = migrad(niter, 1.e-5);
00090   std::cout<<"minimum: "<<min<<std::endl;
00091   }
00092 */
00093 
00094   return 0;
00095 }

Generated on Tue Jul 5 14:37:13 2011 for ROOT_528-00b_version by  doxygen 1.5.1