CMS 3D CMS Logo

KinematicConstraint.h
Go to the documentation of this file.
1 #ifndef KinematicConstraint_H
2 #define KinematicConstraint_H
3 
7 
22 public:
28 
29  virtual ~KinematicConstraint() {}
30 
38  virtual std::pair<AlgebraicVector, AlgebraicVector> value(const AlgebraicVector& exPoint) const = 0;
39 
40  virtual std::pair<AlgebraicMatrix, AlgebraicVector> derivative(const AlgebraicVector& exPoint) const = 0;
41 
48  virtual std::pair<AlgebraicVector, AlgebraicVector> value(
49  const std::vector<RefCountedKinematicParticle>& par) const = 0;
50 
51  virtual std::pair<AlgebraicMatrix, AlgebraicVector> derivative(
52  const std::vector<RefCountedKinematicParticle>& par) const = 0;
53 
62  virtual AlgebraicVector deviations(int nStates) const = 0;
63 
70  virtual int numberOfEquations() const = 0;
71 
75  virtual KinematicConstraint* clone() const = 0;
76 };
77 
78 #endif
virtual KinematicConstraint * clone() const =0
CLHEP::HepVector AlgebraicVector
virtual int numberOfEquations() const =0
virtual std::pair< AlgebraicVector, AlgebraicVector > value(const AlgebraicVector &exPoint) const =0
virtual AlgebraicVector deviations(int nStates) const =0
virtual std::pair< AlgebraicMatrix, AlgebraicVector > derivative(const AlgebraicVector &exPoint) const =0