00001 #ifndef MultiTrackKinematicConstraint_H 00002 #define MultiTrackKinematicConstraint_H 00003 00004 #include "RecoVertex/KinematicFitPrimitives/interface/RefCountedKinematicParticle.h" 00005 #include "RecoVertex/KinematicFitPrimitives/interface/RefCountedKinematicVertex.h" 00006 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h" 00007 00008 00024 class MultiTrackKinematicConstraint 00025 { 00026 public: 00027 00032 MultiTrackKinematicConstraint() {} 00033 00034 virtual ~MultiTrackKinematicConstraint() {} 00035 00044 virtual AlgebraicVector value(const std::vector<KinematicState>, 00045 const GlobalPoint& ) const = 0; 00046 00047 virtual AlgebraicMatrix parametersDerivative(const std::vector<KinematicState>, 00048 const GlobalPoint& ) const = 0; 00049 00050 00051 virtual AlgebraicMatrix positionDerivative(const std::vector<KinematicState>, 00052 const GlobalPoint& ) const = 0; 00053 00054 virtual int numberOfEquations() const = 0; 00055 00056 virtual MultiTrackKinematicConstraint * clone() const = 0; 00057 00058 }; 00059 00060 00061 #endif