00001
00002 #ifndef __NEUTRINOFITOBJECT_H
00003 #define __NEUTRINOFITOBJECT_H
00004
00005 #include"jbltools/kinfit/ParticleFitObject.h"
00006
00007 #include <cmath>
00008
00009
00010
00012
00023 class NeutrinoFitObject : public ParticleFitObject {
00024 public:
00025 NeutrinoFitObject(double E, double eta, double phi,
00026 double DE, double Deta, double Dphi,
00027 double m = 0);
00028 virtual ~NeutrinoFitObject();
00029
00031 virtual const char *getParamName (int ilocal
00032 ) const;
00033
00034
00035 virtual bool setParam (int i, double par_, bool measured_ );
00036 virtual bool setParam (int i, double par_ );
00037
00038
00039 virtual double getPx() const;
00040 virtual double getPy() const;
00041 virtual double getPz() const;
00042 virtual double getE() const;
00043 virtual double getDPx(int ilocal) const;
00044 virtual double getDPy(int ilocal) const;
00045 virtual double getDPz(int ilocal) const;
00046 virtual double getDE(int ilocal) const;
00047
00048 virtual double getD2Px(int ilocal1, int ilocal2) const;
00049 virtual double getD2Py(int ilocal1, int ilocal2) const;
00050 virtual double getD2Pz(int ilocal1, int ilocal2) const;
00051 virtual double getD2E (int ilocal1, int ilocal2) const;
00052
00053 virtual void addToGlobalDerMatrix (int idim, double c, double *M) const;
00054
00055 protected:
00056 inline double getP() const;
00057
00058
00059 };
00060
00061
00062 double NeutrinoFitObject::getP() const {return sqrt(std::abs(par[0]*par[0]-mass*mass));}
00063
00064 #endif // __NEUTRINOFITOBJECT_H
00065