# Gaussian Class Reference

#include <Gaussian.h>

Inheritance diagram for Gaussian:

[legend]
Collaboration diagram for Gaussian:

[legend]
List of all members.

## Detailed Description

A function that can be used with a fitter.

The function represents a gaussian,

.

Definition at line 31 of file Gaussian.h.

## Public Member Functions

Does nothing.
virtual FunctionBaseclone () const
Creates a new function object by copying an existing one.
virtual int count ()
Returns 0.
virtual unsigned int dimensions () const
Returns the number of dimensions of the data coordinate.
Gaussian (double norm, double mean, double sigma)
This constructor takes the values of the parameters as an argument.
Gaussian ()
The default constructor.
virtual const std::vector<
double > &
getParameters () const
Returns the values of the parameters as a vector.
virtual bool hasDerivatives () const
Returns true if function can calculate its partial derivatives.
virtual void initialParameters (const FunctionHelper *helper)
Sets the FunctionHelper so that the function can calculate a reasonable set of initial parameter values.
virtual double integrate (double lower_limit, double upper_limit) const
virtual bool isComposite () const
Returns false.
const std::string & name () const
Returns the name of the function.
virtual double operator() (const std::vector< double > &v) const
The function call operator for multi-dimension coordinate variable.
virtual double operator() (double x) const
The function call operator.
virtual const std::vector<
std::string > &
parmNames () const
Returns a reference to a vector of parameter names.
virtual void removeFromComposite (FunctionBase *)
Does nothing.
virtual std::vector< double
>::const_iterator
setParameters (std::vector< double >::const_iterator it)
Sets the parameter values to the value pointed to by the iterator.
virtual void setParameters (const std::vector< double > &incr)
Sets the parameter values.
void setParmNames (const std::vector< std::string > &names)
Sets the names of the parameters.
virtual int size () const
Returns the number of parameters.

## Protected Member Functions

virtual double derivByParm (int i, double x) const
Returns the function's derivative at the coordinate value x with respect to the i-th parameter.
virtual void initialize ()
Initializes the function and parameter names.
virtual void resize ()
Re-sizes the appropriate vectors maintained in this base class.
void setName (const char *)
Sets the name of the function.

## Protected Attributes

std::string m_name
The name of the function.
std::vector< std::string > m_parm_names
The names of the function parameters.
std::vector< double > m_parms
The parameter values.

## Private Member Functions

double derivByMean (double x) const
Calculates the derivative with respect to the mean parameter.
double derivByNorm (double x) const
Calculates the derivative with respect to the normalization parameter.
double derivBySigma (double x) const
Calculates the derivative with respect to the sigma parameter.

## Constructor & Destructor Documentation

 Gaussian ( )

The default constructor.

Definition at line 40 of file Gaussian.cxx.

References Gaussian::initialize().

Referenced by Gaussian::clone().

 Gaussian ( double norm, double mean, double sigma )

This constructor takes the values of the parameters as an argument.

Definition at line 45 of file Gaussian.cxx.

References Gaussian::initialize(), FunctionBase::m_parms, mean, norm, and sigma.

## Member Function Documentation

 void addToComposite ( FunctionBase * )  [virtual, inherited]

Does nothing.

Derived classes that are a composite of functions should override this member function and add functions to the composite.

Reimplemented in LinearSumFunction.

Definition at line 166 of file FunctionBase.cxx.

 FunctionBase * clone ( ) const [virtual]

Creates a new function object by copying an existing one.

The implementation raises an assertion as this member function should be reimplemented in s derived class.

Note:
There's an implementation here to satisfy the SIP interface.

Reimplemented from FunctionBase.

Definition at line 65 of file Gaussian.cxx.

References Gaussian::Gaussian().

 int count ( )  [virtual, inherited]

Returns 0.

Derived classes that are a composite of functions should override this member function to return the number of functions in the composite.

Reimplemented in LinearSumFunction.

Definition at line 174 of file FunctionBase.cxx.

 double derivByMean ( double x ) const [private]

Calculates the derivative with respect to the mean parameter.

Definition at line 144 of file Gaussian.cxx.

References FunctionBase::m_parms, mean, norm, and sigma.

Referenced by Gaussian::derivByParm().

 double derivByNorm ( double x ) const [private]

Calculates the derivative with respect to the normalization parameter.

Definition at line 123 of file Gaussian.cxx.

References FunctionBase::m_parms, mean, and sigma.

Referenced by Gaussian::derivByParm().

 double derivByParm ( int i, double x ) const [protected, virtual]

Returns the function's derivative at the coordinate value x with respect to the i-th parameter.

Derived classes must implement this function.

Todo:
Provide a numeric method for doing this calculation that will be the default. Derived classes should provide more efficient analytic method if available.
Bug:
Make this function pure when problem compiling python/FunctionWrap under Windows is solved.

Reimplemented from FunctionBase.

Definition at line 101 of file Gaussian.cxx.

 double derivBySigma ( double x ) const [private]

Calculates the derivative with respect to the sigma parameter.

Definition at line 158 of file Gaussian.cxx.

References FunctionBase::m_parms, mean, norm, and sigma.

Referenced by Gaussian::derivByParm().

 unsigned int dimensions ( ) const [virtual, inherited]

Returns the number of dimensions of the data coordinate.

This implementation in the base class returns 1. Derived class should override this function if the data coordinate is multi-dimensional.

Reimplemented in FunctionWrap.

Definition at line 213 of file FunctionBase.cxx.

Referenced by FunctionWrap::dimensions().

 const vector< double > & getParameters ( ) const [virtual, inherited]

Returns the values of the parameters as a vector.

The function is non-const because a derived class may need to create the vector.

Reimplemented in LinearSumFunction.

Definition at line 99 of file FunctionBase.cxx.

References FunctionBase::m_parms.

 bool hasDerivatives ( ) const [virtual, inherited]

Returns true if function can calculate its partial derivatives.

This base class implementation returns true. Derived class that can not calculate its partial derivatives should return false. This allows an application to not attempt to use a minimizer that requires derivatives to use this function.

Reimplemented in LogNormal, LogParabola, Novosibirsk, and FunctionWrap.

Definition at line 126 of file FunctionBase.cxx.

 void initialize ( )  [protected, virtual]

Initializes the function and parameter names.

Reimplemented from FunctionBase.

Definition at line 54 of file Gaussian.cxx.

References FunctionBase::m_name, FunctionBase::m_parm_names, and FunctionBase::resize().

Referenced by Gaussian::Gaussian().

 void initialParameters ( const FunctionHelper * helper )  [virtual]

Sets the FunctionHelper so that the function can calculate a reasonable set of initial parameter values.

Reimplemented from FunctionBase.

Definition at line 89 of file Gaussian.cxx.

 double integrate ( double lower_limit, double upper_limit ) const [virtual, inherited]

As of now all the integration is done here numerically using the trapezoidal rule. Derived class may implement an analytical expression in place of this numerical method.

Definition at line 138 of file FunctionBase.cxx.

References FunctionBase::operator()().

 bool isComposite ( ) const [virtual, inherited]

Returns false.

Derived classes that are a composite of functions should override this member function and return true.

Reimplemented in LinearSumFunction.

Definition at line 161 of file FunctionBase.cxx.

 const string & name ( ) const [inherited]

Returns the name of the function.

Definition at line 81 of file FunctionBase.cxx.

References FunctionBase::m_name.

 double operator() ( const std::vector< double > & v ) const [virtual, inherited]

The function call operator for multi-dimension coordinate variable.

Returns the value of the function at coordinate represented by v. The implementation in this base class uses the first element of the vector and calls operator () ( double ).

Reimplemented in FunctionWrap.

Definition at line 181 of file FunctionBase.cxx.

References FunctionBase::operator()().

 double operator() ( double x ) const [virtual]

The function call operator.

Reimplemented from FunctionBase.

Definition at line 70 of file Gaussian.cxx.

References FunctionBase::m_parms, mean, norm, and sigma.

 const vector< string > & parmNames ( ) const [virtual, inherited]

Returns a reference to a vector of parameter names.

Reimplemented in LinearSumFunction.

Definition at line 86 of file FunctionBase.cxx.

References FunctionBase::m_parm_names.

 void removeFromComposite ( FunctionBase * )  [virtual, inherited]

Does nothing.

Derived classes that are a composite of functions should override this member function and remove functions from the composite.

Reimplemented in LinearSumFunction.

Definition at line 170 of file FunctionBase.cxx.

 void resize ( )  [protected, virtual, inherited]

Re-sizes the appropriate vectors maintained in this base class.

Derived classes should call this member function after initializing the m_parm_names data member, as the new size is taken from that data member's size.

Definition at line 71 of file FunctionBase.cxx.

References FunctionBase::m_parm_names, FunctionBase::m_parms, and FunctionBase::size().

 void setName ( const char * )  [protected, inherited]

Sets the name of the function.

Definition at line 66 of file FunctionBase.cxx.

References FunctionBase::m_name.

Referenced by FunctionWrap::setName().

 vector< double >::const_iterator setParameters ( std::vector< double >::const_iterator it )  [virtual, inherited]

Sets the parameter values to the value pointed to by the iterator.

Returns an iterator to a data element one past the last used data element.

Reimplemented in LinearSumFunction.

Definition at line 114 of file FunctionBase.cxx.

References FunctionBase::m_parms, and FunctionBase::size().

 void setParameters ( const std::vector< double > & incr )  [virtual, inherited]

Sets the parameter values.

Derived classes should implement this function by invoking incrementValues ( vector< double >::const_iterator ) so that they correctly work with the LinearSumFunction class.

Definition at line 106 of file FunctionBase.cxx.

 void setParmNames ( const std::vector< std::string > & names )  [inherited]

Sets the names of the parameters.

Reimplemented in FunctionWrap.

Definition at line 93 of file FunctionBase.cxx.

References FunctionBase::m_parm_names, and FunctionBase::resize().

 int size ( ) const [virtual, inherited]

Returns the number of parameters.

Reimplemented in LinearSumFunction.

Definition at line 156 of file FunctionBase.cxx.

References FunctionBase::m_parm_names.

## Member Data Documentation

 std::string m_name [protected, inherited]

 std::vector m_parm_names [protected, inherited]

The names of the function parameters.

Definition at line 106 of file FunctionBase.h.

The documentation for this class was generated from the following files:
Generated for HippoDraw Class Library by