CMS 3D CMS Logo

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

Go to the documentation of this file.
00001 #ifndef ColinearityKinematicConstraint_H
00002 #define ColinearityKinematicConstraint_H
00003 
00004 #include "RecoVertex/KinematicFitPrimitives/interface/MultiTrackKinematicConstraint.h"
00005 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicState.h"
00006 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
00007 
00016 class ColinearityKinematicConstraint : public MultiTrackKinematicConstraint{
00017 
00018 public:
00019 
00020  enum ConstraintDim {Phi, PhiTheta};
00021 
00022  ColinearityKinematicConstraint(ConstraintDim dim = Phi);
00023 
00024 
00030 virtual AlgebraicVector  value(const std::vector<KinematicState> states,
00031                         const GlobalPoint& point) const;
00032 
00033 
00039 virtual AlgebraicMatrix parametersDerivative(const std::vector<KinematicState> states,
00040                                       const GlobalPoint& point) const;
00041 
00047 virtual AlgebraicMatrix positionDerivative(const std::vector<KinematicState> states,
00048                                     const GlobalPoint& point) const;
00049 
00053 virtual int numberOfEquations() const {return size;}
00054  
00055 virtual ColinearityKinematicConstraint * clone()const
00056   {return new ColinearityKinematicConstraint(*this);}
00057 
00058 private:
00059   ConstraintDim dimension;
00060   unsigned int size;
00061 
00062 };
00063 #endif