// @(#)root/tmva $Id$ 
// Author: Andreas Hoecker, Peter Speckmayer

/**********************************************************************************
 * Project: TMVA - a Root-integrated toolkit for multivariate data analysis       *
 * Package: TMVA                                                                  *
 * Class  : IFitterTarget                                                         *
 * Web    : http://tmva.sourceforge.net                                           *
 *                                                                                *
 * Description:                                                                   *
 *      Interface for generic fitter                                              *
 *                                                                                *
 * Authors (alphabetical):                                                        *
 *      Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland              *
 *      Peter Speckmayer <speckmay@mail.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_IFitterTarget
#define ROOT_TMVA_IFitterTarget

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// IFitterTarget                                                        //
//                                                                      //
// Interface for a fitter "target"                                      //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include <vector>

#ifndef ROOT_TMVA_Types
#include "TMVA/Types.h"
#endif


namespace TMVA {

   class IFitterTarget {

   public:

      IFitterTarget();

      virtual ~IFitterTarget() {}

      virtual Double_t EstimatorFunction( std::vector<Double_t>& parameters ) = 0;

      // function to notify the FitterTarget of the progress status of the fitter
      // sender : "GA", "MC", ...
      // progress : "init", "iteration", "last", "stop"
      virtual void     ProgressNotifier ( TString /*sender*/, TString /* progress */ ) {}   

   private:

      ClassDef(IFitterTarget,0) // base class for a fitter "target"
   };

} // namespace TMVA

#endif
 IFitterTarget.h:1
 IFitterTarget.h:2
 IFitterTarget.h:3
 IFitterTarget.h:4
 IFitterTarget.h:5
 IFitterTarget.h:6
 IFitterTarget.h:7
 IFitterTarget.h:8
 IFitterTarget.h:9
 IFitterTarget.h:10
 IFitterTarget.h:11
 IFitterTarget.h:12
 IFitterTarget.h:13
 IFitterTarget.h:14
 IFitterTarget.h:15
 IFitterTarget.h:16
 IFitterTarget.h:17
 IFitterTarget.h:18
 IFitterTarget.h:19
 IFitterTarget.h:20
 IFitterTarget.h:21
 IFitterTarget.h:22
 IFitterTarget.h:23
 IFitterTarget.h:24
 IFitterTarget.h:25
 IFitterTarget.h:26
 IFitterTarget.h:27
 IFitterTarget.h:28
 IFitterTarget.h:29
 IFitterTarget.h:30
 IFitterTarget.h:31
 IFitterTarget.h:32
 IFitterTarget.h:33
 IFitterTarget.h:34
 IFitterTarget.h:35
 IFitterTarget.h:36
 IFitterTarget.h:37
 IFitterTarget.h:38
 IFitterTarget.h:39
 IFitterTarget.h:40
 IFitterTarget.h:41
 IFitterTarget.h:42
 IFitterTarget.h:43
 IFitterTarget.h:44
 IFitterTarget.h:45
 IFitterTarget.h:46
 IFitterTarget.h:47
 IFitterTarget.h:48
 IFitterTarget.h:49
 IFitterTarget.h:50
 IFitterTarget.h:51
 IFitterTarget.h:52
 IFitterTarget.h:53
 IFitterTarget.h:54
 IFitterTarget.h:55
 IFitterTarget.h:56
 IFitterTarget.h:57
 IFitterTarget.h:58
 IFitterTarget.h:59
 IFitterTarget.h:60
 IFitterTarget.h:61
 IFitterTarget.h:62
 IFitterTarget.h:63
 IFitterTarget.h:64
 IFitterTarget.h:65
 IFitterTarget.h:66
 IFitterTarget.h:67
 IFitterTarget.h:68