// @(#)root/tmva $Id: SimulatedAnnealingFitter.h,v 1.2 2007/06/20 09:41:24 brun Exp $ 
// Author: Andreas Hoecker

/**********************************************************************************
 * Project: TMVA - a Root-integrated toolkit for multivariate data analysis       *
 * Package: TMVA                                                                  *
 * Class  : SimulatedAnnealingFitter                                              *
 * Web    : http://tmva.sourceforge.net                                           *
 *                                                                                *
 * Description:                                                                   *
 *       Fitter using Simulated Annealing                                         *
 *                                                                                *
 * Authors (alphabetical):                                                        *
 *      Andreas Hoecker  <Andreas.Hocker@cern.ch> - CERN, Switzerland             *
 *                                                                                *
 * Copyright (c) 2005:                                                            *
 *      CERN, Switzerland                                                         * 
 *      MPI-K Heidelberg, Germany                                                 * 
 *                                                                                *
 * Redistribution and use in source and binary forms, with or without             *
 * modification, are permitted according to the terms listed in LICENSE           *
 * (http://tmva.sourceforge.net/LICENSE)                                          *
 **********************************************************************************/

#ifndef ROOT_TMVA_SimulatedAnnealingFitter
#define ROOT_TMVA_SimulatedAnnealingFitter

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// SimulatedAnnealingFitter                                             //
//                                                                      //
// Fitter using a Simulated Annealing Algorithm                         //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TMVA_FitterBase
#include "TMVA/FitterBase.h"
#endif

namespace TMVA {

   class IFitterTarget;
   class Interval;
   
   class SimulatedAnnealingFitter : public FitterBase {
      
   public:
      
      SimulatedAnnealingFitter( IFitterTarget& target, const TString& name, 
                                const std::vector<TMVA::Interval*>& ranges, const TString& theOption );

      virtual ~SimulatedAnnealingFitter() {}

      void SetParameters( Int_t    fMaxCalls,              
                          Int_t    fNFunLoops,             
                          Int_t    fNEps,                  
                          Bool_t   fUseAdaptiveTemperature,
                          Double_t fTemperatureGradient,   
                          Double_t fInitialTemperature,    
                          Double_t fMinTemperature,        
                          Double_t fEps );                  

      Double_t Run( std::vector<Double_t>& pars );

   private:

      void DeclareOptions();

      Int_t              fMaxCalls;                // max number of FCN calls
      Int_t              fNFunLoops;               // number of FCN loops
      Int_t              fNEps;                    // test parameter
      Bool_t             fUseAdaptiveTemperature;  // compute temperature steps on the fly
      Double_t           fTemperatureGradient;     // starting value for temperature gradient
      Double_t           fInitialTemperature;      // initial temperature (depends on FCN)
      Double_t           fMinTemperature;          // minimum temperature before SA quit
      Double_t           fEps;                     // relative required FCN accuracy at minimum
      
      ClassDef(SimulatedAnnealingFitter,0) // Fitter using a Genetic Algorithm
   };

} // namespace TMVA

#endif




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.