CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/RecoVertex/KinematicFit/interface/MassKinematicConstraint.h

Go to the documentation of this file.
00001 #ifndef MassKinematicConstraint_H
00002 #define MassKinematicConstraint_H
00003 
00004 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicConstraint.h"
00005 #include "RecoVertex/KinematicFitPrimitives/interface/ParticleMass.h"
00006 
00017 class MassKinematicConstraint:public KinematicConstraint
00018 {
00019 
00020 public:
00021 
00025  MassKinematicConstraint(const ParticleMass& m, const float sigma);
00026                                        
00027  
00032 virtual std::pair<AlgebraicVector,AlgebraicVector> value(const AlgebraicVector& exPoint) const;
00033 
00034 virtual std::pair<AlgebraicMatrix, AlgebraicVector> derivative(const AlgebraicVector& exPoint) const;
00035 
00040 virtual std::pair<AlgebraicVector, AlgebraicVector> value(const std::vector<RefCountedKinematicParticle> par) const;
00041 
00042 virtual std::pair<AlgebraicMatrix, AlgebraicVector> derivative(const std::vector<RefCountedKinematicParticle> par) const;
00043 
00049 virtual int numberOfEquations() const;
00050 
00051 virtual AlgebraicVector deviations(int nStates) const;
00052 
00053 virtual MassKinematicConstraint * clone() const
00054  {return new MassKinematicConstraint(*this);}
00055 
00056 private:
00057   ParticleMass mass;
00058   AlgebraicVector dd; 
00059 };
00060 
00061 #endif