Chi2Dist Class Reference

#include <Chi2Dist.h>

Inheritance diagram for Chi2Dist:

Inheritance graph
FunctionBase
[legend]
Collaboration diagram for Chi2Dist:

Collaboration graph
FunctionBase
[legend]

List of all members.


Detailed Description

A function can be used with a fitter.

This function computes the chi-squared distribution for the number of degrees-of-freedom $\nu = p_1 $

\[ f(x) = p_0 exp( -x/2/p_2 ) ( x/2/p_2 )^{p_1/2 - 1} \]

.

Author:
J. Chiang <jchiang@slac.stanford.edu>

Definition at line 28 of file Chi2Dist.h.


Public Member Functions

virtual void addToComposite (FunctionBase *)
 Does nothing.
 Chi2Dist (double norm, double nu, double scale)
 The constructor takes the values of parameters as arguments.
 Chi2Dist ()
 The default constructor.
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.
virtual const
std::vector< int > & 
getFixedFlags () const
 Returns the flags indicating which parameters should remain fixed during any minimization process.
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
 Returns the integral of the function from the lower limit to the higher limit.
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
< int >
::const_iterator 
setFixedFlags (std::vector< int >::const_iterator it)
virtual void setFixedFlags (const std::vector< int > &flags)
 Sets to flags indicating that a function parameter is to be held fixed in a minimization process.
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 parameters 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::vector< int > m_fixed_flags
 The flags to indicated which parameters are to be held fixed during minimization of this objective function.
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.

Constructor & Destructor Documentation

Chi2Dist (  ) 

The default constructor.

Definition at line 32 of file Chi2Dist.cxx.

References Chi2Dist::initialize().

Referenced by Chi2Dist::clone().

Chi2Dist ( double  norm,
double  nu,
double  scale 
)

The constructor takes the values of parameters as arguments.

Definition at line 37 of file Chi2Dist.cxx.

References Chi2Dist::initialize(), and FunctionBase::m_parms.


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 193 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 56 of file Chi2Dist.cxx.

References Chi2Dist::Chi2Dist().

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 201 of file FunctionBase.cxx.

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 78 of file Chi2Dist.cxx.

References FunctionBase::m_parms, and Chi2Dist::operator()().

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 240 of file FunctionBase.cxx.

Referenced by FunctionWrap::dimensions().

const vector< int > & getFixedFlags (  )  const [virtual, inherited]

Returns the flags indicating which parameters should remain fixed during any minimization process.

Reimplemented in LinearSumFunction.

Definition at line 106 of file FunctionBase.cxx.

References FunctionBase::m_fixed_flags.

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.

Referenced by FunctionProjectorXML::createElement(), FuncParmRep::drawProjectedValues(), hippodraw::Python::export_FunctionBase(), FunctionRep::parameters(), FunctionProjector::saveParameters(), and FunctionProjector::setParameters().

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 Landau, LogNormal, LogParabola, Novosibirsk, and FunctionWrap.

Definition at line 153 of file FunctionBase.cxx.

void initialize (  )  [protected, virtual]

Initializes the function and parameters names.

Reimplemented from FunctionBase.

Definition at line 46 of file Chi2Dist.cxx.

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

Referenced by Chi2Dist::Chi2Dist().

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 70 of file Chi2Dist.cxx.

References FunctionBase::m_parms, FunctionHelper::maxValue(), FunctionHelper::meanCoord(), and Chi2Dist::operator()().

double integrate ( double  a,
double  b 
) const [virtual, inherited]

Returns the integral of the function from the lower limit to the higher limit.

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.

Requests:
Override this method in derived classes when calculation of integral can be done analyically.
Requests:
Check if this is the best algorithm. Its looks different from the one found in http://osl.iu.edu/%7Etveldhui/papers/techniques/

Definition at line 165 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 188 of file FunctionBase.cxx.

Referenced by FunctionRep::isComposite(), FunctionController::restoreParameters(), and FunctionController::saveParameters().

const string & name (  )  const [inherited]

Returns the name of the function.

Definition at line 81 of file FunctionBase.cxx.

References FunctionBase::m_name.

Referenced by FunctionProjectorXML::createElement(), FunctionController::createNTuple(), hippodraw::Python::export_FunctionBase(), FunctionController::functionNames(), FunctionProjector::getTitle(), FunctionProjector::getYLabel(), and LinearSumFunction::parmNames().

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 208 of file FunctionBase.cxx.

References FunctionBase::operator()().

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

The function call operator.

Reimplemented from FunctionBase.

Definition at line 61 of file Chi2Dist.cxx.

References FunctionBase::m_parms.

Referenced by Chi2Dist::derivByParm(), and Chi2Dist::initialParameters().

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.

Referenced by FuncParmRep::drawProjectedValues(), hippodraw::Python::export_FunctionBase(), and FunctionRep::parmNames().

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 197 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 72 of file FunctionBase.cxx.

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

Referenced by Weibull::initialize(), Quadratic2::initialize(), Quadratic::initialize(), PowerLaw::initialize(), Novosibirsk::initialize(), LogParabola::initialize(), LogNormal::initialize(), Linear::initialize(), Landau::initialize(), Gaussian::initialize(), FunctionWrap::initialize(), Exponential::initialize(), Erfc::initialize(), ConstantF::initialize(), Chi2Dist::initialize(), BrokenPowerLaw::initialize(), FunctionWrap::setParmNames(), and FunctionBase::setParmNames().

vector< int >::const_iterator setFixedFlags ( std::vector< int >::const_iterator  it  )  [virtual, inherited]

Definition at line 141 of file FunctionBase.cxx.

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

void setFixedFlags ( const std::vector< int > &  flags  )  [virtual, inherited]

Sets to flags indicating that a function parameter is to be held fixed in a minimization process.

Definition at line 113 of file FunctionBase.cxx.

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

Sets the name of the function.

Definition at line 67 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 129 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 121 of file FunctionBase.cxx.

Referenced by hippodraw::Python::export_FunctionBase(), FunctionProjector::restoreParameters(), FunctionProjectorXML::setAttributes(), and FunctionProjector::setParameters().

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 183 of file FunctionBase.cxx.

References FunctionBase::m_parm_names.

Referenced by Novosibirsk::initialParameters(), LogParabola::initialParameters(), Gaussian::initialParameters(), FunctionWrap::operator()(), FunctionBase::resize(), FunctionProjectorXML::setAttributes(), FunctionBase::setFixedFlags(), and FunctionBase::setParameters().


Member Data Documentation

std::vector< int > m_fixed_flags [protected, inherited]

The flags to indicated which parameters are to be held fixed during minimization of this objective function.

Note:
The flags are held as int because it is more space and time efficient for the expected number of parameters.

Definition at line 117 of file FunctionBase.h.

Referenced by LinearSumFunction::getFixedFlags(), FunctionBase::getFixedFlags(), FunctionBase::resize(), and FunctionBase::setFixedFlags().

std::string m_name [protected, inherited]

The name of the function.

Definition at line 103 of file FunctionBase.h.

Referenced by FunctionBase::FunctionBase(), Weibull::initialize(), Quadratic2::initialize(), Quadratic::initialize(), PowerLaw::initialize(), Novosibirsk::initialize(), LogParabola::initialize(), LogNormal::initialize(), LinearSumFunction::initialize(), Linear::initialize(), Landau::initialize(), Gaussian::initialize(), Exponential::initialize(), Erfc::initialize(), ConstantF::initialize(), Chi2Dist::initialize(), BrokenPowerLaw::initialize(), FunctionBase::name(), and FunctionBase::setName().

std::vector<std::string> m_parm_names [protected, inherited]

The names of the function parameters.

Definition at line 106 of file FunctionBase.h.

Referenced by Weibull::initialize(), Quadratic2::initialize(), Quadratic::initialize(), PowerLaw::initialize(), Novosibirsk::initialize(), LogParabola::initialize(), LogNormal::initialize(), Linear::initialize(), Landau::initialize(), Gaussian::initialize(), Exponential::initialize(), Erfc::initialize(), ConstantF::initialize(), Chi2Dist::initialize(), BrokenPowerLaw::initialize(), LinearSumFunction::parmNames(), FunctionBase::parmNames(), FunctionBase::resize(), FunctionWrap::setParmNames(), FunctionBase::setParmNames(), and FunctionBase::size().

std::vector< double > m_parms [protected, inherited]

The parameter values.

Definition at line 109 of file FunctionBase.h.

Referenced by BrokenPowerLaw::BrokenPowerLaw(), Erfc::calcRed(), Chi2Dist::Chi2Dist(), ConstantF::ConstantF(), Gaussian::derivByMean(), Landau::derivByNorm(), Gaussian::derivByNorm(), Weibull::derivByParm(), Quadratic2::derivByParm(), PowerLaw::derivByParm(), LogParabola::derivByParm(), Exponential::derivByParm(), Erfc::derivByParm(), Chi2Dist::derivByParm(), BrokenPowerLaw::derivByParm(), Landau::derivByPeak(), Landau::derivBySigma(), Gaussian::derivBySigma(), Erfc::Erfc(), Exponential::Exponential(), Gaussian::Gaussian(), LinearSumFunction::getParameters(), FunctionBase::getParameters(), Weibull::initialParameters(), Quadratic2::initialParameters(), Quadratic::initialParameters(), PowerLaw::initialParameters(), Novosibirsk::initialParameters(), LogParabola::initialParameters(), LogNormal::initialParameters(), Linear::initialParameters(), Landau::initialParameters(), Gaussian::initialParameters(), Exponential::initialParameters(), Erfc::initialParameters(), ConstantF::initialParameters(), Chi2Dist::initialParameters(), BrokenPowerLaw::initialParameters(), Landau::Landau(), Linear::Linear(), LogNormal::LogNormal(), LogParabola::LogParabola(), Novosibirsk::Novosibirsk(), Weibull::operator()(), Quadratic2::operator()(), Quadratic::operator()(), PowerLaw::operator()(), Novosibirsk::operator()(), LogParabola::operator()(), LogNormal::operator()(), Linear::operator()(), Landau::operator()(), Gaussian::operator()(), Exponential::operator()(), ConstantF::operator()(), Chi2Dist::operator()(), BrokenPowerLaw::operator()(), PowerLaw::PowerLaw(), Quadratic::Quadratic(), Quadratic2::Quadratic2(), FunctionBase::resize(), FunctionBase::setFixedFlags(), FunctionBase::setParameters(), and Weibull::Weibull().


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