#include <TrackingTools/GsfTools/interface/GaussianSumUtilities.h>
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 SingleStateContainer & | components () const |
components | |
const Matrix & | covariance () const |
combined covariance | |
const Matrix & | covariance (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 Vector & | mean () const |
combined mean | |
const Vector & | mean (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 MultiState & | state () 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 MultiState & | theState |
The input state is assumed to exist for the lifetime of this object.
Definition at line 17 of file GaussianSumUtilities.h.
typedef ROOT::Math::SMatrix<double,N,N,ROOT::Math::MatRepStd<double,N> > GaussianSumUtilities< N >::GenMatrix |
Definition at line 22 of file GaussianSumUtilities.h.
typedef SingleState::Matrix GaussianSumUtilities< N >::Matrix |
Definition at line 25 of file GaussianSumUtilities.h.
typedef MultiGaussianState<N> GaussianSumUtilities< N >::MultiState |
Definition at line 20 of file GaussianSumUtilities.h.
typedef SingleGaussianState<N> GaussianSumUtilities< N >::SingleState |
Definition at line 19 of file GaussianSumUtilities.h.
typedef MultiState::SingleStateContainer GaussianSumUtilities< N >::SingleStateContainer |
Definition at line 27 of file GaussianSumUtilities.h.
typedef MultiState::SingleStatePtr GaussianSumUtilities< N >::SingleStatePtr |
Definition at line 26 of file GaussianSumUtilities.h.
typedef SingleState::Vector GaussianSumUtilities< N >::Vector |
Definition at line 24 of file GaussianSumUtilities.h.
enum GaussianSumUtilities::ModeStatus [private] |
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 () {
GaussianSumUtilities< N >::~GaussianSumUtilities | ( | ) | [inline] |
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 }
void GaussianSumUtilities< N >::computeMode | ( | ) | const [private] |
calculation of mode with transformation of pdf
Vector GaussianSumUtilities< N >::computeModeWithoutTransform | ( | ) | const [protected] |
calculation of mode
MultiGaussianState1D GaussianSumUtilities< N >::constrainedState | ( | const Vector & | d, | |
const Vector & | x0 | |||
) | const [private] |
state constrained to a line x = s*d+x0
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 }
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 }
Vector GaussianSumUtilities< N >::d1LnPdf | ( | const Vector & | , | |
const std::vector< double > & | ||||
) | const [private] |
gradient of ln(pdf) using the pdf components at the evaluation point
Vector GaussianSumUtilities< N >::d1LnPdf | ( | const Vector & | ) | const |
gradient of ln(pdf)
Vector GaussianSumUtilities< N >::d1Pdf | ( | const Vector & | , | |
const std::vector< double > & | ||||
) | const [private] |
gradient using the pdf components at the evaluation point
Vector GaussianSumUtilities< N >::d1Pdf | ( | const Vector & | ) | const |
gradient
Matrix GaussianSumUtilities< N >::d2LnPdf | ( | const Vector & | , | |
const std::vector< double > & | ||||
) | const [private] |
Hessian of ln(pdf) using the pdf components at the evaluation point.
Matrix GaussianSumUtilities< N >::d2LnPdf | ( | const Vector & | ) | const |
Hessian of ln(pdf).
Matrix GaussianSumUtilities< N >::d2Pdf | ( | const Vector & | , | |
const std::vector< double > & | ||||
) | const [private] |
Hessian using the pdf components at the evaluation point.
Matrix GaussianSumUtilities< N >::d2Pdf | ( | const Vector & | ) | const |
Hessian.
bool GaussianSumUtilities< N >::findMode | ( | Vector & | mode, | |
double & | pdfAtMode, | |||
const Vector & | xStart | |||
) | const [private] |
mode from starting value in ln(pdf); returns true on success
double GaussianSumUtilities< N >::gauss | ( | const Vector & | , | |
const Vector & | , | |||
const Matrix & | ||||
) | const [private] |
value of multidimensional gaussian distribution
double GaussianSumUtilities< N >::gauss | ( | const double & | , | |
const double & | , | |||
const double & | ||||
) | const [private] |
value of gaussian distribution
double GaussianSumUtilities< N >::lnPdf | ( | const Vector & | , | |
const std::vector< double > & | ||||
) | const [private] |
value of ln(pdf) using the pdf components at the evaluation point
double GaussianSumUtilities< N >::lnPdf | ( | const Vector & | ) | const |
value of ln(pdf)
Matrix GaussianSumUtilities< N >::localCovariance | ( | const Vector & | x | ) | const [private] |
Local variance from Hessian matrix.
Only valid if x corresponds to a (local) maximum!
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.
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 }
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.
bool GaussianSumUtilities< N >::modeIsValid | ( | ) | const |
mode status
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
double GaussianSumUtilities< N >::pdf | ( | const Vector & | ) | const |
value of the p.d.f.
std::vector<double> GaussianSumUtilities< N >::pdfComponents | ( | const Vector & | ) | const [private] |
pdf components
void GaussianSumUtilities< N >::setInvalidMode | ( | ) | const [private] |
set mode "state" in case of failure
void GaussianSumUtilities< N >::setMode | ( | const Vector & | mode | ) | const [private] |
set mode "state" from solution of mode finding
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 }
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 }
Matrix GaussianSumUtilities< N >::tensorProduct | ( | const Vector & | ) | const [private] |
double GaussianSumUtilities< N >::weight | ( | ) | const [inline] |
combined weight
Definition at line 88 of file GaussianSumUtilities.h.
References GaussianSumUtilities< N >::theState, and MultiGaussianState< N >::weight().
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 }
SingleGaussianState<N> GaussianSumUtilities< N >::theMode [mutable, private] |
Definition at line 162 of file GaussianSumUtilities.h.
ModeStatus GaussianSumUtilities< N >::theModeStatus [mutable, private] |
Definition at line 160 of file GaussianSumUtilities.h.
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().