00001 // @(#)root/tmva $Id: IFitterTarget.h 29122 2009-06-22 06:51:30Z brun $ 00002 // Author: Andreas Hoecker, Peter Speckmayer 00003 00004 /********************************************************************************** 00005 * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * 00006 * Package: TMVA * 00007 * Class : IFitterTarget * 00008 * Web : http://tmva.sourceforge.net * 00009 * * 00010 * Description: * 00011 * Interface for generic fitter * 00012 * * 00013 * Authors (alphabetical): * 00014 * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland * 00015 * Peter Speckmayer <speckmay@mail.cern.ch> - CERN, Switzerland * 00016 * * 00017 * Copyright (c) 2005: * 00018 * CERN, Switzerland * 00019 * MPI-K Heidelberg, Germany * 00020 * * 00021 * Redistribution and use in source and binary forms, with or without * 00022 * modification, are permitted according to the terms listed in LICENSE * 00023 * (http://tmva.sourceforge.net/LICENSE) * 00024 **********************************************************************************/ 00025 00026 #ifndef ROOT_TMVA_IFitterTarget 00027 #define ROOT_TMVA_IFitterTarget 00028 00029 ////////////////////////////////////////////////////////////////////////// 00030 // // 00031 // IFitterTarget // 00032 // // 00033 // Interface for a fitter "target" // 00034 // // 00035 ////////////////////////////////////////////////////////////////////////// 00036 00037 #include <vector> 00038 00039 #ifndef ROOT_TMVA_Types 00040 #include "TMVA/Types.h" 00041 #endif 00042 00043 00044 namespace TMVA { 00045 00046 class IFitterTarget { 00047 00048 public: 00049 00050 IFitterTarget(); 00051 00052 virtual ~IFitterTarget() {} 00053 00054 virtual Double_t EstimatorFunction( std::vector<Double_t>& parameters ) = 0; 00055 00056 // function to notify the FitterTarget of the progress status of the fitter 00057 // sender : "GA", "MC", ... 00058 // progress : "init", "iteration", "last", "stop" 00059 virtual void ProgressNotifier ( TString /*sender*/, TString /* progress */ ) {} 00060 00061 private: 00062 00063 ClassDef(IFitterTarget,0) // base class for a fitter "target" 00064 }; 00065 00066 } // namespace TMVA 00067 00068 #endif