ROOT logo
// @(#)root/tmva $Id: IMetric.h 29122 2009-06-22 06:51:30Z brun $ 
// Author: Peter Speckmayer

/**********************************************************************************
 * Project: TMVA - a Root-integrated toolkit for multivariate data analysis       *
 * Package: TMVA                                                                  *
 * Class  : IMetric                                                         *
 * Web    : http://tmva.sourceforge.net                                           *
 *                                                                                *
 * Description:                                                                   *
 *       Fitter using a Genetic Algorithm                                         *
 *                                                                                *
 * Authors (alphabetical):                                                        *
 *      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_IMetric
#define ROOT_TMVA_IMetric

#include <vector>

#ifndef ROOT_Rtypes
#include "Rtypes.h"
#endif

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// IMetric                                                               //
//                                                                      //
// distance between two points in parameter space                       //
//                                                                      //
//////////////////////////////////////////////////////////////////////////


namespace TMVA {


   class IMetric {

   public:

      IMetric();
      virtual ~IMetric() {}

      virtual Double_t Distance( std::vector<Double_t>& pointA, std::vector<Double_t>& pointB ) = 0;
      void SetParameters( std::vector<Double_t>* parameters ) { fParameters = parameters; };
      std::vector<Double_t>* GetParameters() { return fParameters; };

   protected:
      std::vector<Double_t>* fParameters;
      
   private:
      
      ClassDef(IMetric,0) // calculates the "distance" between two points
   };

} // namespace TMVA

#endif


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