CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/RecoVertex/KinematicFit/interface/MomentumKinematicConstraint.h

Go to the documentation of this file.
00001 #ifndef MomentumKinematicConstraint_H
00002 #define MomentumKinematicConstraint_H
00003 
00004 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicConstraint.h"
00005 
00006 
00016 class MomentumKinematicConstraint : public KinematicConstraint
00017 {
00018 
00019 public:
00020 
00025 MomentumKinematicConstraint(const AlgebraicVector& momentum, 
00026                             const AlgebraicVector& dev);
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<AlgebraicMatrix, AlgebraicVector> derivative(const std::vector<RefCountedKinematicParticle> par) const;
00041 
00042 virtual std::pair<AlgebraicVector, AlgebraicVector> value(const std::vector<RefCountedKinematicParticle> par) const;
00043 
00044 virtual AlgebraicVector deviations(int nStates) const;
00045 
00050 virtual int numberOfEquations() const;
00051 
00052 virtual MomentumKinematicConstraint * clone() const
00053   {return new MomentumKinematicConstraint(*this);}
00054 
00055 private:
00056 
00057 AlgebraicVector mm;
00058 AlgebraicVector dd;
00059 
00060 };
00061 
00062 
00063 #endif