CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/TrackingTools/GsfTools/interface/KullbackLeiblerDistance.h

Go to the documentation of this file.
00001 #ifndef KullbackLeiblerDistance_H
00002 #define KullbackLeiblerDistance_H
00003 
00004 #include "TrackingTools/GsfTools/interface/DistanceBetweenComponents.h"
00005 
00009 template <unsigned int N>
00010 class KullbackLeiblerDistance : public DistanceBetweenComponents<N> {
00011 
00012 private:
00013   typedef typename SingleGaussianState<N>::Vector Vector;
00014   typedef typename SingleGaussianState<N>::Matrix Matrix;
00015   
00016 public:
00017   
00021   virtual double operator() (const SingleGaussianState<N>&, 
00022                              const SingleGaussianState<N>&) const;
00023 
00024   virtual KullbackLeiblerDistance<N>* clone() const
00025   {  
00026     return new KullbackLeiblerDistance<N>(*this);
00027   }
00028 
00029 // private:
00030 //   double trace (const Matrix& matrix) const;
00031 };  
00032 
00033 #include "TrackingTools/GsfTools/interface/KullbackLeiblerDistance.icc"
00034 
00035 #endif // KullbackLeiblerDistance_H