![]() |
![]() |
00001 #ifndef MultiTrackPointingKinematicConstraint_H 00002 #define MultiTrackPointingKinematicConstraint_H 00003 00004 #include "RecoVertex/KinematicFitPrimitives/interface/MultiTrackKinematicConstraint.h" 00005 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicState.h" 00006 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h" 00007 00019 //mother constructed from daughters. including propagation in field. 00020 00021 class MultiTrackPointingKinematicConstraint : public MultiTrackKinematicConstraint 00022 { 00023 public: 00024 MultiTrackPointingKinematicConstraint(GlobalPoint& ref):refPoint(ref) 00025 {} 00026 00032 virtual AlgebraicVector value(const std::vector<KinematicState> states, const GlobalPoint& point) const; 00033 00039 virtual AlgebraicMatrix parametersDerivative(const std::vector<KinematicState> states, const GlobalPoint& point) const; 00040 00046 virtual AlgebraicMatrix positionDerivative(const std::vector<KinematicState> states, const GlobalPoint& point) const; 00047 00051 virtual int numberOfEquations() const; 00052 00053 virtual MultiTrackPointingKinematicConstraint * clone()const 00054 { 00055 return new MultiTrackPointingKinematicConstraint(*this); 00056 } 00057 00058 private: 00059 GlobalPoint refPoint; 00060 00061 }; 00062 #endif