CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2_patch1/src/RecoVertex/KinematicFit/interface/MultiTrackMassKinematicConstraint.h

Go to the documentation of this file.
00001 #ifndef MultiTrackMassKinematicConstraint_H
00002 #define MultiTrackMassKinematicConstraint_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 
00013 class MultiTrackMassKinematicConstraint : public MultiTrackKinematicConstraint{
00014 
00015 public:
00022   MultiTrackMassKinematicConstraint(const ParticleMass& theMass, const unsigned int nbrParticles)
00023         : mass(theMass), nPart(nbrParticles)
00024   {}
00025 
00026 
00032   virtual AlgebraicVector  value(const std::vector<KinematicState> states,
00033                           const GlobalPoint& point) const;
00034 
00035 
00041   virtual AlgebraicMatrix parametersDerivative(const std::vector<KinematicState> states,
00042                                         const GlobalPoint& point) const;
00043 
00049   virtual AlgebraicMatrix positionDerivative(const std::vector<KinematicState> states,
00050                                       const GlobalPoint& point) const;
00051 
00055   virtual int numberOfEquations() const {return 1;}
00056 
00057   virtual MultiTrackMassKinematicConstraint * clone() const
00058   {return new MultiTrackMassKinematicConstraint(*this);}
00059 
00060 private:
00061 
00062   const ParticleMass mass;
00063   const unsigned int nPart;
00064 
00065 };
00066 #endif