MarlinKinfit  0.4.0
Public Member Functions | Protected Attributes | List of all members
ParticleFitObject Class Referenceabstract

Abstract base class for particle objects of kinematic fits. More...

#include <ParticleFitObject.h>

Inheritance diagram for ParticleFitObject:
BaseFitObject ISRPhotonFitObject JetFitObject LeptonFitObject NeutrinoFitObject SimplePhotonFitObject TrackParticleFitObject ZinvisibleFitObject

Public Member Functions

 ParticleFitObject ()
 Default constructor.
 
 ParticleFitObject (const ParticleFitObject &rhs)
 Copy constructor. More...
 
ParticleFitObjectoperator= (const ParticleFitObject &rhs)
 Assignment. More...
 
virtual ~ParticleFitObject ()
 Virtual destructor.
 
virtual ParticleFitObjectassign (const BaseFitObject &source)
 Assign from anther object, if of same type. More...
 
virtual bool setMass (double mass_)
 Set mass of particle; return=success.
 
virtual double getMass () const
 Get mass of particle.
 
virtual std::ostream & print4Vector (std::ostream &os) const
 print the four-momentum (E, px, py, pz) More...
 
virtual FourVector getFourMomentum () const
 
virtual double getE () const
 Return E.
 
virtual double getPx () const
 Return px.
 
virtual double getPy () const
 Return py.
 
virtual double getPz () const
 Return pz.
 
virtual double getP () const
 Return p (momentum)
 
virtual double getP2 () const
 Return p (momentum) squared.
 
virtual double getPt () const
 Return pt (transverse momentum)
 
virtual double getPt2 () const
 Return pt (transverse momentum) squared.
 
virtual double getDPx (int ilocal) const =0
 Return d p_x / d par_ilocal (derivative of px w.r.t. local parameter ilocal) More...
 
virtual double getDPy (int ilocal) const =0
 Return d p_y / d par_ilocal (derivative of py w.r.t. local parameter ilocal) More...
 
virtual double getDPz (int ilocal) const =0
 Return d p_z / d par_ilocal (derivative of pz w.r.t. local parameter ilocal) More...
 
virtual double getDE (int ilocal) const =0
 Return d E / d par_ilocal (derivative of E w.r.t. local parameter ilocal) More...
 
virtual void getDerivatives (double der[], int idim) const
 
virtual void addToGlobalChi2DerMatrixNum (double *M, int idim, double eps)
 Add numerically determined derivatives of chi squared to global covariance matrix. More...
 
virtual void addToGlobalChi2DerVectorNum (double *y, int idim, double eps)
 Add numerically determined derivatives of chi squared to global derivative vector. More...
 
virtual std::ostream & print (std::ostream &os) const
 print object to ostream More...
 
void test1stDerivatives ()
 
void test2ndDerivatives ()
 
double num1stDerivative (int ilocal, double eps)
 Evaluates numerically the 1st derivative of chi2 w.r.t. a parameter. More...
 
double num2ndDerivative (int ilocal1, double eps1, int ilocal2, double eps2)
 Evaluates numerically the 2nd derivative of chi2 w.r.t. 2 parameters. More...
 
virtual double getChi2 () const
 Get chi squared from measured and fitted parameters.
 
- Public Member Functions inherited from BaseFitObject
 BaseFitObject ()
 Default constructor.
 
 BaseFitObject (const BaseFitObject &rhs)
 Copy constructor. More...
 
BaseFitObjectoperator= (const BaseFitObject &rhs)
 Assignment. More...
 
virtual ~BaseFitObject ()
 Virtual destructor.
 
virtual BaseFitObjectcopy () const =0
 Return a new copy of itself.
 
virtual bool setParam (int ilocal, double par_, bool measured_, bool fixed_=false)
 Set value and measured flag of parameter i; return: significant change. More...
 
virtual bool setParam (int ilocal, double par_)
 Set value of parameter ilocal; return: significant change. More...
 
virtual bool updateParams (double p[], int idim)
 Read values from global vector, readjust vector; return: significant change. More...
 
virtual bool setMParam (int ilocal, double mpar_)
 Set measured value of parameter ilocal; return: success. More...
 
virtual bool setError (int ilocal, double err_)
 Set error of parameter ilocal; return: success. More...
 
virtual bool setCov (int ilocal, int jlocal, double cov_)
 Set covariance of parameters ilocal and jlocal; return: success. More...
 
virtual bool setGlobalParNum (int ilocal, int iglobal)
 Set number of parameter ilocal in global list return true signals OK. More...
 
virtual bool fixParam (int ilocal, bool fix=true)
 Fix a parameter (fix=true), or release it (fix=false) More...
 
virtual bool releaseParam (int ilocal)
 Release a parameter. More...
 
virtual bool isParamFixed (int ilocal) const
 Returns whether parameter is fixed. More...
 
virtual double getParam (int ilocal) const
 Get current value of parameter ilocal. More...
 
virtual const char * getParamName (int ilocal) const
 Get name of parameter ilocal. More...
 
virtual const char * getName () const
 Get object's name.
 
virtual void setName (const char *name_)
 Set object's name.
 
virtual double getMParam (int ilocal) const
 Get measured value of parameter ilocal. More...
 
virtual double getError (int ilocal) const
 Get error of parameter ilocal. More...
 
virtual double getCov (int ilocal, int jlocal) const
 Get covariance between parameters ilocal and jlocal. More...
 
virtual double getRho (int ilocal, int jlocal) const
 Get correlation coefficient between parameters ilocal and jlocal. More...
 
virtual bool isParamMeasured (int ilocal) const
 Get measured flag for parameter ilocal. More...
 
virtual int getGlobalParNum (int ilocal) const
 Get global parameter number of parameter ilocal. More...
 
virtual int getNPar () const =0
 Get total number of parameters of this FitObject.
 
virtual int getNMeasured () const
 Get number of measured parameters of this FitObject.
 
virtual int getNUnmeasured () const
 Get number of unmeasured parameters of this FitObject.
 
virtual int getNFree () const
 Get number of free parameters of this FitObject.
 
virtual int getNFixed () const
 Get number of fixed parameters of this FitObject.
 
virtual double getDChi2DParam (int ilocal) const
 Get derivative of chi squared w.r.t. parameter ilocal. More...
 
virtual double getD2Chi2DParam2 (int ilocal, int jlocal) const
 Get second derivative of chi squared w.r.t. parameters ilocal1 and ilocal2. More...
 
virtual std::ostream & printParams (std::ostream &os) const
 print the parameters and errors More...
 
virtual std::ostream & printRhoValues (std::ostream &os) const
 print the correlation coefficients More...
 
virtual std::ostream & print1stDerivatives (std::ostream &os) const
 print the 1st derivatives wrt metaSet 0 (E, px, py, pz) More...
 
virtual std::ostream & print2ndDerivatives (std::ostream &os) const
 print the 2nd derivatives wrt metaSet 0 (E, px, py, pz) More...
 
virtual void invalidateCache () const
 invalidate any cached quantities
 
virtual void updateCache () const =0
 
virtual void addToGlobCov (double *glcov, int idim) const
 Add covariance matrix elements to global covariance matrix of size idim x idim. More...
 
virtual void addToGlobalChi2DerVector (double *y, int idim) const
 Add derivatives of chi squared to global derivative vector. More...
 
virtual void addToGlobalChi2DerMatrix (double *M, int idim) const
 Add 2nd derivatives of chi squared to global derivative matrix. More...
 
virtual void addToGlobalChi2DerVector (double *y, int idim, double lambda, double der[], int metaSet) const
 Add derivatives of momentum vector to global derivative vector. More...
 
virtual void addTo1stDerivatives (double M[], int idim, double der[], int kglobal, int metaSet) const
 
virtual void addTo2ndDerivatives (double der2[], int idim, double factor[], int metaSet) const
 
virtual void addTo2ndDerivatives (double M[], int idim, double lambda, double der[], int metaSet) const
 
virtual double getFirstDerivative_Meta_Local (int iMeta, int ilocal, int metaSet) const =0
 
virtual double getSecondDerivative_Meta_Local (int iMeta, int ilocal, int jlocal, int metaSet) const =0
 
virtual void initCov ()
 
virtual double getError2 (double der[], int metaset) const
 

Protected Attributes

double mass
 mass of particle
 
FourVector fourMomentum
 
double paramCycl [BaseDefs::MAXPAR]
 
- Protected Attributes inherited from BaseFitObject
char * name
 
double par [BaseDefs::MAXPAR]
 fit parameters
 
double mpar [BaseDefs::MAXPAR]
 measured parameters
 
bool measured [BaseDefs::MAXPAR]
 measured flag
 
bool fixed [BaseDefs::MAXPAR]
 fixed flag
 
int globalParNum [BaseDefs::MAXPAR]
 global paramter number for each parameter
 
double cov [BaseDefs::MAXPAR][BaseDefs::MAXPAR]
 local covariance matrix
 
double covinv [BaseDefs::MAXPAR][BaseDefs::MAXPAR]
 inverse pf local covariance matrix
 
bool covinvvalid
 flag for valid inverse covariance matrix
 
bool cachevalid
 flag for valid cache
 

Additional Inherited Members

- Protected Member Functions inherited from BaseFitObject
virtual bool calculateCovInv () const
 Calculate the inverse of the covariance matrix.
 
- Static Protected Attributes inherited from BaseFitObject
static const double eps2 = 0.0001
 

Detailed Description

Abstract base class for particle objects of kinematic fits.

This class defines the minimal functionality any fit object must provide. The main task of a fit object is to keep parameters (and errors) that define the four-momentum of a particle and encapsulate the actually chosen parametrisation from the rest of the fitting machinery.

Since for the fit a parametrisation distributed like a gaussian is most favorable, different kinds of particles (implying different kinds of measurements!) might require different parametrisations. For each desired parametrisation a concrete class should be derived from this abstract base class. It needs to be able to convert its parameters to E, px, py, pz and to provide the derivatives of E, px, py, pz with respect to the internal parameters.

Depending on the type of particle, some or all parameters might be unmeasured (neutrinos!), meaning that they come with a very large and/or unknown error. They are treated differently by the fit algorithm and are thus flagged accordingly.

In order to insert its derivatives into the global covariance matrix of all FitObjects in the event, each FitObjects needs to know the position of its parameters in the overall parameter list.

THIS iS JUNK!!!! It is done like this in JetFitObject.C, but using measured[i] which is the bool giving the measured/unmeasured status and NOT a bool containing the START VALUES!!!!! From its stored initial parameters and the current fit parameters the FitObject calculates its contribution to the $^2$ of the fit.

In its current state, a ParticleFitObject has a set of parameters, some of them measured (i.e., they contribute to the $\chi^2$). These parameters have a local numbering, running from 0 to n-1. Global numbers can be assigned by the BaseFitter using setGlobalParNum.

Author: Benno List, Jenny List

Date:
2009/09/02 13:10:57
Author:
blist

Changelog:

Constructor & Destructor Documentation

ParticleFitObject::ParticleFitObject ( const ParticleFitObject rhs)

Copy constructor.

Parameters
rhsright hand side

References assign().

Member Function Documentation

void ParticleFitObject::addToGlobalChi2DerMatrixNum ( double *  M,
int  idim,
double  eps 
)
virtual

Add numerically determined derivatives of chi squared to global covariance matrix.

Parameters
MGlobal covariance matrix
idimFirst dimension of global covariance matrix
epsParameter variation

References BaseFitObject::getGlobalParNum(), BaseFitObject::getNPar(), and num2ndDerivative().

void ParticleFitObject::addToGlobalChi2DerVectorNum ( double *  y,
int  idim,
double  eps 
)
virtual

Add numerically determined derivatives of chi squared to global derivative vector.

Parameters
yVector of chi2 derivatives
idimVector size
epsParameter variation

References BaseFitObject::getGlobalParNum(), BaseFitObject::getNPar(), and num1stDerivative().

ParticleFitObject & ParticleFitObject::assign ( const BaseFitObject source)
virtual
virtual double ParticleFitObject::getDE ( int  ilocal) const
pure virtual

Return d E / d par_ilocal (derivative of E w.r.t. local parameter ilocal)

Parameters
ilocalLocal parameter number

Implemented in JetFitObject, ISRPhotonFitObject, LeptonFitObject, SimplePhotonFitObject, NeutrinoFitObject, ZinvisibleFitObject, and TrackParticleFitObject.

Referenced by MomentumConstraint::getDerivatives(), and MassConstraint::getDerivatives().

virtual double ParticleFitObject::getDPx ( int  ilocal) const
pure virtual

Return d p_x / d par_ilocal (derivative of px w.r.t. local parameter ilocal)

Parameters
ilocalLocal parameter number

Implemented in JetFitObject, ISRPhotonFitObject, LeptonFitObject, SimplePhotonFitObject, NeutrinoFitObject, ZinvisibleFitObject, and TrackParticleFitObject.

Referenced by MomentumConstraint::getDerivatives(), and MassConstraint::getDerivatives().

virtual double ParticleFitObject::getDPy ( int  ilocal) const
pure virtual

Return d p_y / d par_ilocal (derivative of py w.r.t. local parameter ilocal)

Parameters
ilocalLocal parameter number

Implemented in JetFitObject, ISRPhotonFitObject, LeptonFitObject, SimplePhotonFitObject, NeutrinoFitObject, ZinvisibleFitObject, and TrackParticleFitObject.

Referenced by MomentumConstraint::getDerivatives(), and MassConstraint::getDerivatives().

virtual double ParticleFitObject::getDPz ( int  ilocal) const
pure virtual

Return d p_z / d par_ilocal (derivative of pz w.r.t. local parameter ilocal)

Parameters
ilocalLocal parameter number

Implemented in JetFitObject, ISRPhotonFitObject, LeptonFitObject, SimplePhotonFitObject, NeutrinoFitObject, ZinvisibleFitObject, and TrackParticleFitObject.

Referenced by MomentumConstraint::getDerivatives(), and MassConstraint::getDerivatives().

double ParticleFitObject::num1stDerivative ( int  ilocal,
double  eps 
)

Evaluates numerically the 1st derivative of chi2 w.r.t. a parameter.

Parameters
ilocalLocal parameter number
epsvariation of local parameter

References getChi2(), BaseFitObject::getParam(), and BaseFitObject::setParam().

Referenced by addToGlobalChi2DerVectorNum().

double ParticleFitObject::num2ndDerivative ( int  ilocal1,
double  eps1,
int  ilocal2,
double  eps2 
)

Evaluates numerically the 2nd derivative of chi2 w.r.t. 2 parameters.

Parameters
ilocal11st local parameter number
eps1variation of 1st local parameter
ilocal21st local parameter number
eps2variation of 2nd local parameter

References getChi2(), BaseFitObject::getParam(), and BaseFitObject::setParam().

Referenced by addToGlobalChi2DerMatrixNum().

ParticleFitObject & ParticleFitObject::operator= ( const ParticleFitObject rhs)

Assignment.

Parameters
rhsright hand side

References assign().

std::ostream & ParticleFitObject::print ( std::ostream &  os) const
virtual

print object to ostream

Parameters
osThe output stream

Implements BaseFitObject.

References BaseFitObject::cachevalid, print4Vector(), and BaseFitObject::printParams().

std::ostream & ParticleFitObject::print4Vector ( std::ostream &  os) const
virtual

print the four-momentum (E, px, py, pz)

Parameters
osThe output stream

References getE(), getPx(), getPy(), and getPz().

Referenced by print().


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