#include "TMVA/SimulatedAnnealingFitter.h"
#include "TMVA/SimulatedAnnealing.h"
#include "TMVA/Timer.h"
#include "TMVA/Interval.h"
ClassImp(TMVA::SimulatedAnnealingFitter)
TMVA::SimulatedAnnealingFitter::SimulatedAnnealingFitter( IFitterTarget& target, 
                                                          const TString& name, 
                                                          const std::vector<Interval*>& ranges, 
                                                          const TString& theOption ) 
   : TMVA::FitterBase( target, name, ranges, theOption )
{
   
   
   DeclareOptions();
   ParseOptions();
}            
void TMVA::SimulatedAnnealingFitter::DeclareOptions() 
{
   
   
   
   
   
   
   
   
   
   
   fMaxCalls               = 50000;
   fTemperatureGradient    = 0.7;
   fUseAdaptiveTemperature = kTRUE;
   fInitialTemperature     = 100000;
   fMinTemperature         = 500;
   fEps                    = 1e-04;
   fNFunLoops              = 5;
   fNEps                   = 4; 
   DeclareOptionRef(fMaxCalls,               "MaxCalls",               "Maximum number of minimisation calls");
   DeclareOptionRef(fTemperatureGradient,    "TemperatureGradient",    "Temperature gradient"); 
   DeclareOptionRef(fUseAdaptiveTemperature, "UseAdaptiveTemperature", "Use adaptive termperature");  
   DeclareOptionRef(fInitialTemperature,     "InitialTemperature",     "Initial temperature");  
   DeclareOptionRef(fMinTemperature,         "MinTemperature",         "Mimimum temperature");
   DeclareOptionRef(fEps,                    "Eps",                    "Epsilon");  
   DeclareOptionRef(fNFunLoops,              "NFunLoops",              "Number of function loops");  
   DeclareOptionRef(fNEps,                   "NEps",                   "Number of epsilons");                   
}
void TMVA::SimulatedAnnealingFitter::SetParameters( Int_t    naxCalls,               
                                                    Int_t    nFunLoops,              
                                                    Int_t    nEps,                   
                                                    Bool_t   useAdaptiveTemperature, 
                                                    Double_t temperatureGradient,    
                                                    Double_t initialTemperature,     
                                                    Double_t minTemperature,         
                                                    Double_t eps )
{
   
   fMaxCalls               = naxCalls;             
   fNFunLoops              = nFunLoops;            
   fNEps                   = nEps;                 
   fUseAdaptiveTemperature = useAdaptiveTemperature;
   fTemperatureGradient    = temperatureGradient;  
   fInitialTemperature     = initialTemperature;   
   fMinTemperature         = minTemperature;       
   fEps                    = eps;                  
}
Double_t TMVA::SimulatedAnnealingFitter::Run( std::vector<Double_t>& pars )
{
   
   fLogger << kINFO << "<SimulatedAnnealingFitter> Optimisation, please be patient ... " << Endl;
   SimulatedAnnealing sa( GetFitterTarget(), fRanges );
   
   sa.SetMaxCalls    ( fMaxCalls );              
   sa.SetTempGrad    ( fTemperatureGradient );   
   sa.SetUseAdaptTemp( fUseAdaptiveTemperature );
   sa.SetInitTemp    ( fInitialTemperature );    
   sa.SetMinTemp     ( fMinTemperature );
   sa.SetNumFunLoops ( fNFunLoops );                   
   sa.SetAccuracy    ( fEps );             
   sa.SetNEps        ( fNEps );                  
   
   Double_t fcn = sa.Minimize( pars );
   return fcn;
}
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.