CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/RecoVertex/KinematicFit/interface/TwoTrackMassKinematicConstraint.h

Go to the documentation of this file.
00001 #ifndef TwoTrackMassKinematicConstraint_H
00002 #define TwoTrackMassKinematicConstraint_H
00003 
00004 #include "RecoVertex/KinematicFitPrimitives/interface/MultiTrackKinematicConstraint.h"
00005 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicState.h"
00006 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
00007 #include "RecoVertex/KinematicFitPrimitives/interface/ParticleMass.h"
00008 
00021 class TwoTrackMassKinematicConstraint : public MultiTrackKinematicConstraint{
00022 
00023 public:
00024  TwoTrackMassKinematicConstraint(ParticleMass& ms):mass(ms)
00025  {}
00026 
00027 
00033 virtual AlgebraicVector  value(const std::vector<KinematicState> states,
00034                         const GlobalPoint& point) const;
00035 
00036 
00042 virtual AlgebraicMatrix parametersDerivative(const std::vector<KinematicState> states,
00043                                       const GlobalPoint& point) const;
00044 
00050 virtual AlgebraicMatrix positionDerivative(const std::vector<KinematicState> states,
00051                                     const GlobalPoint& point) const;
00052 
00056 virtual int numberOfEquations() const;
00057  
00058 virtual TwoTrackMassKinematicConstraint * clone()const
00059 {return new TwoTrackMassKinematicConstraint(*this);}
00060 
00061 private:
00062 
00063  ParticleMass mass;
00064 
00065 };
00066 #endif