Go to the documentation of this file. 1 #ifndef GaussianSumUtilities_h_
2 #define GaussianSumUtilities_h_
14 template <
unsigned int N>
20 typedef ROOT::Math::SMatrix<double,N,N,ROOT::Math::MatRepStd<double,N> >
GenMatrix;
39 inline unsigned int size ()
const {
51 inline double weight (
unsigned int i)
const {
102 double gauss (
const double&,
const double&,
const double&)
const;
109 const Vector& xStart)
const;
128 double pdf (
const Vector&,
const std::vector<double>&)
const;
134 double lnPdf (
const Vector&,
const std::vector<double>&)
const;
152 #include "TrackingTools/GsfTools/interface/GaussianSumUtilities.icc"
unsigned int size() const
number of components
SingleGaussianState< N > theMode
Matrix tensorProduct(const Vector &) const
Symmetric Tensor Product (not recognized by standard ROOT Math)
SingleGaussianState< N > SingleState
ROOT::Math::SMatrix< double, N, N, ROOT::Math::MatRepStd< double, N > > GenMatrix
double weight() const
combined weight
void setInvalidMode() const
set mode "state" in case of failure
std::vector< double > pdfComponents(const Vector &) const
pdf components
double weight(unsigned int i) const
weight of a component
Mixture of multi-variate gaussian states.
MultiGaussianState1D constrainedState(const Vector &d, const Vector &x0) const
state constrained to a line x = s*d+x0
double lnPdf(const Vector &) const
value of ln(pdf)
void computeMode() const
calculation of mode with transformation of pdf
bool modeIsValid() const
mode status
const SingleStateContainer & components() const
components
Vector computeModeWithoutTransform() const
calculation of mode
ROOT::Math::Plane3D::Vector Vector
GaussianSumUtilities(const MultiState &state)
SingleState::Matrix Matrix
Matrix d2LnPdf(const Vector &) const
Hessian of ln(pdf)
MultiState::SingleStateContainer SingleStateContainer
MultiState::SingleStatePtr SingleStatePtr
Vector d1Pdf(const Vector &) const
gradient
const SingleGaussianState< N > & mode() const
double pdf(const Vector &) const
value of the p.d.f.
void setMode(const Vector &mode) const
set mode "state" from solution of mode finding
ROOT::Math::SMatrix< double, N, N, ROOT::Math::MatRepSym< double, N > > Matrix
const Vector & mean(unsigned int i) const
mean value of a component
Matrix d2Pdf(const Vector &) const
Hessian.
std::shared_ptr< SingleState > SingleStatePtr
ROOT::Math::SVector< double, N > Vector
const MultiState & theState
SingleState::Vector Vector
MultiGaussianState< N > MultiState
Vector d1LnPdf(const Vector &) const
gradient of ln(pdf)
const Matrix & covariance() const
combined covariance
std::vector< SingleStatePtr > SingleStateContainer
const Vector & mean() const
combined mean
Matrix localCovariance(const Vector &x) const
double gauss(const double &, const double &, const double &) const
value of gaussian distribution
const Matrix & covariance(unsigned int i) const
covariance matrix of a component
bool findMode(Vector &mode, double &pdfAtMode, const Vector &xStart) const
mode from starting value in ln(pdf); returns true on success
const MultiState & state() const
multi-state