Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | List of all members
Novosibirsk Class Reference

A function that can be used with a fitter. More...

#include <Novosibirsk.h>

Inheritance diagram for Novosibirsk:
Inheritance graph
[legend]
Collaboration diagram for Novosibirsk:
Collaboration graph
[legend]

Public Member Functions

virtual void addToComposite (FunctionBase *)
 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.
virtual const std::vector
< double > & 
getParameters () const
 Returns the values of the parameters as a vector.
virtual bool hasDerivatives () const
 Returns false as this function has not implemented calculation of 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.
 Novosibirsk ()
 The default constructor.
 Novosibirsk (double norm, double mean, double sigma, double tail)
 This constructor takes the values of the parameters as an argument.
virtual double operator() (double x) const
 The function call operator.
virtual double operator() (const std::vector< double > &v) const
 The function call operator for multi-dimension coordinate variable.
virtual const std::vector
< std::string > & 
parmNames () const
 Returns a reference to a vector of parameter names.
virtual void removeFromComposite (FunctionBase *)
 Does nothing.
virtual void setParameters (const std::vector< double > &incr)
 Sets the parameter values.
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.
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 Types

enum  { norm = 0, mean = 1, sigma = 2, tail = 3 }

Detailed Description

A function that can be used with a fitter.

The function represents the Novosibirsk distribution.

Author
Martin Kocian kocia.nosp@m.n@sl.nosp@m.ac.st.nosp@m.anfo.nosp@m.rd.ed.nosp@m.u
Paul F. Kunz Paul_.nosp@m.Kunz.nosp@m.@slac.nosp@m..sta.nosp@m.nford.nosp@m..edu

Definition at line 28 of file Novosibirsk.h.

Member Enumeration Documentation

anonymous enum
private
Enumerator:
norm 
mean 
sigma 
tail 

Definition at line 33 of file Novosibirsk.h.

Constructor & Destructor Documentation

The default constructor.

Definition at line 28 of file Novosibirsk.cxx.

References Novosibirsk::initialize().

Referenced by Novosibirsk::clone().

Novosibirsk ( double  norm,
double  mean,
double  sigma,
double  tail 
)

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

Definition at line 33 of file Novosibirsk.cxx.

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

Member Function Documentation

void addToComposite ( FunctionBase )
virtualinherited

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 55 of file Novosibirsk.cxx.

References Novosibirsk::Novosibirsk().

int count ( )
virtualinherited

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 derivByParm ( int  i,
double  x 
) const
protectedvirtual

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 106 of file Novosibirsk.cxx.

unsigned int dimensions ( ) const
virtualinherited

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.

const vector< double > & getParameters ( ) const
virtualinherited

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 FunctionProjector::saveParameters(), and FunctionProjector::setParameters().

bool hasDerivatives ( ) const
virtual

Returns false as this function has not implemented calculation of partial derivatives.

See Also
FunctionBase::hasDerivatives.

Reimplemented from FunctionBase.

Definition at line 114 of file Novosibirsk.cxx.

void initialize ( )
protectedvirtual

Initializes the function and parameter names.

Reimplemented from FunctionBase.

Definition at line 43 of file Novosibirsk.cxx.

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

Referenced by Novosibirsk::Novosibirsk().

void initialParameters ( const FunctionHelper helper)
virtual
double integrate ( double  a,
double  b 
) const
virtualinherited

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

References FunctionBase::operator()().

bool isComposite ( ) const
virtualinherited

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
double operator() ( double  x) const
virtual

The function call operator.

Reimplemented from FunctionBase.

Definition at line 60 of file Novosibirsk.cxx.

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

double operator() ( const std::vector< double > &  v) const
virtualinherited

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()().

const vector< string > & parmNames ( ) const
virtualinherited

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 )
virtualinherited

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 ( )
protectedvirtualinherited

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().

Referenced by LogNormal::initialize(), Novosibirsk::initialize(), FunctionWrap::initialize(), FunctionWrap::setParmNames(), and FunctionBase::setParmNames().

void setName ( const char *  name)
protectedinherited

Sets the name of the function.

Definition at line 66 of file FunctionBase.cxx.

References FunctionBase::m_name, and FunctionBase::name().

void setParameters ( const std::vector< double > &  incr)
virtualinherited

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.

Referenced by FunctionProjector::restoreParameters(), and FunctionProjector::setParameters().

vector< double >::const_iterator setParameters ( std::vector< double >::const_iterator  it)
virtualinherited

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 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
virtualinherited

Returns the number of parameters.

Reimplemented in LinearSumFunction.

Definition at line 156 of file FunctionBase.cxx.

References FunctionBase::m_parm_names.

Referenced by Novosibirsk::initialParameters(), FunctionWrap::operator()(), FunctionBase::resize(), and FunctionBase::setParameters().

Member Data Documentation

std::string m_name
protectedinherited
std::vector<std::string> m_parm_names
protectedinherited
std::vector< double > m_parms
protectedinherited

The documentation for this class was generated from the following files:

Generated for HippoDraw Class Library by doxygen