Quad12FMain.cxx

Go to the documentation of this file.
00001 // @(#)root/minuit2:$Id: Quad12FMain.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 "Quad12F.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   Quad12F 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   upar.Add("x1", 1., 0.1);
00044   upar.Add("y1", 1., 0.1);
00045   upar.Add("z1", 1., 0.1);
00046   upar.Add("w1", 1., 0.1);
00047 
00048   MnMigrad migrad(fcn, upar);
00049   FunctionMinimum min = migrad();
00050   std::cout<<"minimum: "<<min<<std::endl;
00051   }
00052 //   stop = stopwatch.lap().ticks();
00053 //   std::cout<<"stop-start: "<<stop - start<<std::endl;
00054 /*
00055 
00056   {
00057   //test constructor
00058   std::vector<double> par(8); 
00059   std::vector<double> err(8);
00060   for(int i = 0; i < 8; i++) {
00061     par[i] = 1.;
00062     err[i] = 0.1;
00063   }
00064   MnMigrad migrad(fcn, par, err);
00065   FunctionMinimum min = migrad();
00066   std::cout<<"minimum: "<<min<<std::endl;
00067   }
00068 
00069   {
00070   //test edm Value
00071   std::vector<double> par(8); 
00072   std::vector<double> err(8);
00073   for(int i = 0; i < 8; i++) {
00074     par[i] = 1.;
00075     err[i] = 0.1;
00076   }
00077   MnMigrad migrad(fcn, par, err);
00078   double edm = 1.e-1;
00079   FunctionMinimum min = migrad(20, edm);
00080   std::cout<<"minimum: "<<min<<std::endl;
00081   }
00082 
00083   {
00084   //test # of iterations
00085   std::vector<double> par(4); 
00086   std::vector<double> err(4);
00087   for(int i = 0; i < 4; i++) {
00088     par[i] = 1.;
00089     err[i] = 0.1;
00090   }
00091   MnMigrad migrad(fcn, par, err);
00092   int niter = 2;
00093   FunctionMinimum min = migrad(niter, 1.e-5);
00094   std::cout<<"minimum: "<<min<<std::endl;
00095   }
00096 */
00097 
00098   return 0;
00099 }

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