CMS 3D CMS Logo

GaussianSumUtilities< N > Class Template Reference

Utility class for the analysis of multi-dimensional Gaussian mixtures. More...

#include <TrackingTools/GsfTools/interface/GaussianSumUtilities.h>

List of all members.

Public Types

typedef ROOT::Math::SMatrix
< double, N, N,
ROOT::Math::MatRepStd< double,
N > > 
GenMatrix
typedef SingleState::Matrix Matrix
typedef MultiGaussianState< N > MultiState
typedef SingleGaussianState< N > SingleState
typedef
MultiState::SingleStateContainer 
SingleStateContainer
typedef MultiState::SingleStatePtr SingleStatePtr
typedef SingleState::Vector Vector

Public Member Functions

const SingleStateContainercomponents () const
 components
const Matrixcovariance () const
 combined covariance
const Matrixcovariance (unsigned int i) const
 covariance matrix of a component
Vector d1LnPdf (const Vector &) const
 gradient of ln(pdf)
Vector d1Pdf (const Vector &) const
 gradient
Matrix d2LnPdf (const Vector &) const
 Hessian of ln(pdf).
Matrix d2Pdf (const Vector &) const
 Hessian.
 GaussianSumUtilities (const MultiState &state)
double lnPdf (const Vector &) const
 value of ln(pdf)
const Vectormean () const
 combined mean
const Vectormean (unsigned int i) const
 mean value of a component
const SingleGaussianState< N > & mode () const
 Mode "state": mean = mode, covariance = local covariance at mode, weight chosen to have pdf(mode) equal to the one of the mixture.
bool modeIsValid () const
 mode status
double pdf (const Vector &) const
 value of the p.d.f.
unsigned int size () const
 number of components
const MultiStatestate () const
 multi-state
double weight () const
 combined weight
double weight (unsigned int i) const
 weight of a component
 ~GaussianSumUtilities ()

Protected Member Functions

Vector computeModeWithoutTransform () const
 calculation of mode

Private Types

enum  ModeStatus { Valid, NotValid, NotComputed }

Private Member Functions

void computeMode () const
 calculation of mode with transformation of pdf
MultiGaussianState1D constrainedState (const Vector &d, const Vector &x0) const
 state constrained to a line x = s*d+x0
Vector d1LnPdf (const Vector &, const std::vector< double > &) const
 gradient of ln(pdf) using the pdf components at the evaluation point
Vector d1Pdf (const Vector &, const std::vector< double > &) const
 gradient using the pdf components at the evaluation point
Matrix d2LnPdf (const Vector &, const std::vector< double > &) const
 Hessian of ln(pdf) using the pdf components at the evaluation point.
Matrix d2Pdf (const Vector &, const std::vector< double > &) const
 Hessian using the pdf components at the evaluation point.
bool findMode (Vector &mode, double &pdfAtMode, const Vector &xStart) const
 mode from starting value in ln(pdf); returns true on success
double gauss (const Vector &, const Vector &, const Matrix &) const
 value of multidimensional gaussian distribution
double gauss (const double &, const double &, const double &) const
 value of gaussian distribution
double lnPdf (const Vector &, const std::vector< double > &) const
 value of ln(pdf) using the pdf components at the evaluation point
Matrix localCovariance (const Vector &x) const
 Local variance from Hessian matrix.
double pdf (const Vector &, const std::vector< double > &) const
 value of the p.d.f. using the pdf components at the evaluation point
std::vector< double > pdfComponents (const Vector &) const
 pdf components
void setInvalidMode () const
 set mode "state" in case of failure
void setMode (const Vector &mode) const
 set mode "state" from solution of mode finding
Matrix tensorProduct (const Vector &) const
 Symmetric Tensor Product (not recognized by standard ROOT Math).

Private Attributes

SingleGaussianState< N > theMode
ModeStatus theModeStatus
const MultiStatetheState


Detailed Description

template<unsigned int N>
class GaussianSumUtilities< N >

Utility class for the analysis of multi-dimensional Gaussian mixtures.

The input state is assumed to exist for the lifetime of this object.

Definition at line 17 of file GaussianSumUtilities.h.


Member Typedef Documentation

template<unsigned int N>
typedef ROOT::Math::SMatrix<double,N,N,ROOT::Math::MatRepStd<double,N> > GaussianSumUtilities< N >::GenMatrix

Definition at line 22 of file GaussianSumUtilities.h.

template<unsigned int N>
typedef SingleState::Matrix GaussianSumUtilities< N >::Matrix

Definition at line 25 of file GaussianSumUtilities.h.

template<unsigned int N>
typedef MultiGaussianState<N> GaussianSumUtilities< N >::MultiState

Definition at line 20 of file GaussianSumUtilities.h.

template<unsigned int N>
typedef SingleGaussianState<N> GaussianSumUtilities< N >::SingleState

Definition at line 19 of file GaussianSumUtilities.h.

template<unsigned int N>
typedef MultiState::SingleStateContainer GaussianSumUtilities< N >::SingleStateContainer

Definition at line 27 of file GaussianSumUtilities.h.

template<unsigned int N>
typedef MultiState::SingleStatePtr GaussianSumUtilities< N >::SingleStatePtr

Definition at line 26 of file GaussianSumUtilities.h.

template<unsigned int N>
typedef SingleState::Vector GaussianSumUtilities< N >::Vector

Definition at line 24 of file GaussianSumUtilities.h.


Member Enumeration Documentation

template<unsigned int N>
enum GaussianSumUtilities::ModeStatus [private]

Enumerator:
Valid 
NotValid 
NotComputed 

Definition at line 30 of file GaussianSumUtilities.h.

00030 { Valid, NotValid, NotComputed };


Constructor & Destructor Documentation

template<unsigned int N>
GaussianSumUtilities< N >::GaussianSumUtilities ( const MultiState state  )  [inline]

Definition at line 33 of file GaussianSumUtilities.h.

References instance_.

00033                                                  :
00034     theState(state), 
00035     theModeStatus(NotComputed) {
00036 #ifdef DRAW_GSND
00037 //     v1Draw_ = 1;
00038 //     v2Draw_ = 2;
00039     instance_ = this;
00040 #endif
00041   } 
  ~GaussianSumUtilities () {

template<unsigned int N>
GaussianSumUtilities< N >::~GaussianSumUtilities (  )  [inline]

Definition at line 42 of file GaussianSumUtilities.h.

00042                            {
00043   }


Member Function Documentation

template<unsigned int N>
const SingleStateContainer& GaussianSumUtilities< N >::components (  )  const [inline]

components

Definition at line 50 of file GaussianSumUtilities.h.

References MultiGaussianState< N >::components(), and GaussianSumUtilities< N >::theState.

Referenced by GaussianSumUtilities< N >::covariance(), GaussianSumUtilities< N >::mean(), GaussianSumUtilities< N >::size(), and GaussianSumUtilities< N >::weight().

00050                                                   {
00051     return theState.components();
00052   }

template<unsigned int N>
void GaussianSumUtilities< N >::computeMode (  )  const [private]

calculation of mode with transformation of pdf

template<unsigned int N>
Vector GaussianSumUtilities< N >::computeModeWithoutTransform (  )  const [protected]

calculation of mode

template<unsigned int N>
MultiGaussianState1D GaussianSumUtilities< N >::constrainedState ( const Vector d,
const Vector x0 
) const [private]

state constrained to a line x = s*d+x0

template<unsigned int N>
const Matrix& GaussianSumUtilities< N >::covariance ( void   )  const [inline]

combined covariance

Definition at line 96 of file GaussianSumUtilities.h.

References MultiGaussianState< N >::covariance(), and GaussianSumUtilities< N >::theState.

00096                                     {
00097     return theState.covariance();
00098   }

template<unsigned int N>
const Matrix& GaussianSumUtilities< N >::covariance ( unsigned int  i  )  const [inline]

covariance matrix of a component

Definition at line 66 of file GaussianSumUtilities.h.

References GaussianSumUtilities< N >::components().

00066                                                          {
00067     return components()[i]->covariance();
00068   }

template<unsigned int N>
Vector GaussianSumUtilities< N >::d1LnPdf ( const Vector ,
const std::vector< double > &   
) const [private]

gradient of ln(pdf) using the pdf components at the evaluation point

template<unsigned int N>
Vector GaussianSumUtilities< N >::d1LnPdf ( const Vector  )  const

gradient of ln(pdf)

template<unsigned int N>
Vector GaussianSumUtilities< N >::d1Pdf ( const Vector ,
const std::vector< double > &   
) const [private]

gradient using the pdf components at the evaluation point

template<unsigned int N>
Vector GaussianSumUtilities< N >::d1Pdf ( const Vector  )  const

gradient

template<unsigned int N>
Matrix GaussianSumUtilities< N >::d2LnPdf ( const Vector ,
const std::vector< double > &   
) const [private]

Hessian of ln(pdf) using the pdf components at the evaluation point.

template<unsigned int N>
Matrix GaussianSumUtilities< N >::d2LnPdf ( const Vector  )  const

Hessian of ln(pdf).

template<unsigned int N>
Matrix GaussianSumUtilities< N >::d2Pdf ( const Vector ,
const std::vector< double > &   
) const [private]

Hessian using the pdf components at the evaluation point.

template<unsigned int N>
Matrix GaussianSumUtilities< N >::d2Pdf ( const Vector  )  const

Hessian.

template<unsigned int N>
bool GaussianSumUtilities< N >::findMode ( Vector mode,
double &  pdfAtMode,
const Vector xStart 
) const [private]

mode from starting value in ln(pdf); returns true on success

template<unsigned int N>
double GaussianSumUtilities< N >::gauss ( const Vector ,
const Vector ,
const Matrix  
) const [private]

value of multidimensional gaussian distribution

template<unsigned int N>
double GaussianSumUtilities< N >::gauss ( const double &  ,
const double &  ,
const double &   
) const [private]

value of gaussian distribution

template<unsigned int N>
double GaussianSumUtilities< N >::lnPdf ( const Vector ,
const std::vector< double > &   
) const [private]

value of ln(pdf) using the pdf components at the evaluation point

template<unsigned int N>
double GaussianSumUtilities< N >::lnPdf ( const Vector  )  const

value of ln(pdf)

template<unsigned int N>
Matrix GaussianSumUtilities< N >::localCovariance ( const Vector x  )  const [private]

Local variance from Hessian matrix.

Only valid if x corresponds to a (local) maximum!

template<unsigned int N>
const Vector& GaussianSumUtilities< N >::mean (  )  const [inline]

combined mean

Definition at line 92 of file GaussianSumUtilities.h.

References MultiGaussianState< N >::mean(), and GaussianSumUtilities< N >::theState.

00092                               {
00093     return theState.mean();
00094   }

template<unsigned int N>
const Vector& GaussianSumUtilities< N >::mean ( unsigned int  i  )  const [inline]

mean value of a component

Definition at line 62 of file GaussianSumUtilities.h.

References GaussianSumUtilities< N >::components().

00062                                                    {
00063     return components()[i]->mean();
00064   }

template<unsigned int N>
const SingleGaussianState<N>& GaussianSumUtilities< N >::mode (  )  const

Mode "state": mean = mode, covariance = local covariance at mode, weight chosen to have pdf(mode) equal to the one of the mixture.

template<unsigned int N>
bool GaussianSumUtilities< N >::modeIsValid (  )  const

mode status

template<unsigned int N>
double GaussianSumUtilities< N >::pdf ( const Vector ,
const std::vector< double > &   
) const [private]

value of the p.d.f. using the pdf components at the evaluation point

template<unsigned int N>
double GaussianSumUtilities< N >::pdf ( const Vector  )  const

value of the p.d.f.

template<unsigned int N>
std::vector<double> GaussianSumUtilities< N >::pdfComponents ( const Vector  )  const [private]

pdf components

template<unsigned int N>
void GaussianSumUtilities< N >::setInvalidMode (  )  const [private]

set mode "state" in case of failure

template<unsigned int N>
void GaussianSumUtilities< N >::setMode ( const Vector mode  )  const [private]

set mode "state" from solution of mode finding

template<unsigned int N>
unsigned int GaussianSumUtilities< N >::size ( void   )  const [inline]

number of components

Definition at line 46 of file GaussianSumUtilities.h.

References GaussianSumUtilities< N >::components().

00046                                     {
00047     return components().size();
00048   }

template<unsigned int N>
const MultiState& GaussianSumUtilities< N >::state ( void   )  const [inline]

multi-state

Definition at line 54 of file GaussianSumUtilities.h.

References GaussianSumUtilities< N >::theState.

00054                                    {
00055     return theState;
00056   }

template<unsigned int N>
Matrix GaussianSumUtilities< N >::tensorProduct ( const Vector  )  const [private]

Symmetric Tensor Product (not recognized by standard ROOT Math).

template<unsigned int N>
double GaussianSumUtilities< N >::weight (  )  const [inline]

combined weight

Definition at line 88 of file GaussianSumUtilities.h.

References GaussianSumUtilities< N >::theState, and MultiGaussianState< N >::weight().

00088                          {
00089     return theState.weight();
00090   }

template<unsigned int N>
double GaussianSumUtilities< N >::weight ( unsigned int  i  )  const [inline]

weight of a component

Definition at line 58 of file GaussianSumUtilities.h.

References GaussianSumUtilities< N >::components().

00058                                               {
00059     return components()[i]->weight();
00060   }


Member Data Documentation

template<unsigned int N>
SingleGaussianState<N> GaussianSumUtilities< N >::theMode [mutable, private]

Definition at line 162 of file GaussianSumUtilities.h.

template<unsigned int N>
ModeStatus GaussianSumUtilities< N >::theModeStatus [mutable, private]

Definition at line 160 of file GaussianSumUtilities.h.

template<unsigned int N>
const MultiState& GaussianSumUtilities< N >::theState [private]

Definition at line 157 of file GaussianSumUtilities.h.

Referenced by GaussianSumUtilities< N >::components(), GaussianSumUtilities< N >::covariance(), GaussianSumUtilities< N >::mean(), GaussianSumUtilities< N >::state(), and GaussianSumUtilities< N >::weight().


The documentation for this class was generated from the following file:
Generated on Tue Jun 9 18:21:09 2009 for CMSSW by  doxygen 1.5.4