00001 00020 #ifndef __ECONSTRAINT_H 00021 #define __ECONSTRAINT_H 00022 00023 #include "jbltools/kinfit/ParticleConstraint.h" 00024 00025 class ParticleFitObject; 00026 00027 // Class EConstraint: 00029 00035 class EConstraint : public ParticleConstraint { 00036 public: 00038 EConstraint (double ecm_ 00039 ); 00040 00042 virtual ~EConstraint(); 00043 00045 virtual double getValue() const = 0; 00046 00049 virtual void getDerivatives (int idim, 00050 double der[] 00051 ) const; 00053 virtual void add1stDerivativesToMatrix (int idim, 00054 double *M 00055 ) const; 00057 virtual void add2ndDerivativesToMatrix (int idim, 00058 double *M, 00059 double lambda 00060 ) const; 00061 00063 inline double getEcm() const {return ecm;}; 00064 00065 protected: 00066 00067 double ecm; 00068 00069 }; 00070 00071 #endif // __ECONSTRAINT_H