MnStrategy.cxx

Go to the documentation of this file.
00001 // @(#)root/minuit2:$Id: MnStrategy.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 "Minuit2/MnStrategy.h"
00011 
00012 namespace ROOT {
00013 
00014    namespace Minuit2 {
00015 
00016 
00017 
00018 MnStrategy::MnStrategy() {
00019    //default strategy
00020    SetMediumStrategy();
00021 }
00022 
00023 
00024 MnStrategy::MnStrategy(unsigned int stra) {
00025    //user defined strategy (0, 1, >=2)
00026    if(stra == 0) SetLowStrategy();
00027    else if(stra == 1) SetMediumStrategy();
00028    else SetHighStrategy();
00029 }
00030 
00031 void MnStrategy::SetLowStrategy() {
00032    // set low strategy (0) values
00033    fStrategy = 0;
00034    SetGradientNCycles(2);
00035    SetGradientStepTolerance(0.5);
00036    SetGradientTolerance(0.1);
00037    SetHessianNCycles(3);
00038    SetHessianStepTolerance(0.5);
00039    SetHessianG2Tolerance(0.1);
00040    SetHessianGradientNCycles(1);
00041 }
00042 
00043 void MnStrategy::SetMediumStrategy() {
00044    // set minimum strategy (1) the default
00045    fStrategy = 1;
00046    SetGradientNCycles(3);
00047    SetGradientStepTolerance(0.3);
00048    SetGradientTolerance(0.05);
00049    SetHessianNCycles(5);
00050    SetHessianStepTolerance(0.3);
00051    SetHessianG2Tolerance(0.05);
00052    SetHessianGradientNCycles(2);
00053 }
00054 
00055 void MnStrategy::SetHighStrategy() {
00056    // set high strategy (2)
00057    fStrategy = 2;
00058    SetGradientNCycles(5);
00059    SetGradientStepTolerance(0.1);
00060    SetGradientTolerance(0.02);
00061    SetHessianNCycles(7);
00062    SetHessianStepTolerance(0.1);
00063    SetHessianG2Tolerance(0.02);
00064    SetHessianGradientNCycles(6);
00065 }
00066 
00067    }  // namespace Minuit2
00068 
00069 }  // namespace ROOT

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