CMS 3D CMS Logo

MultipleKinematicConstraint.h
Go to the documentation of this file.
1 #ifndef MultipleKinematicConstraint_H
2 #define MultipleKinematicConstraint_H
3 
7 
8 
17 {
18 public:
19 
21  {em = true;}
22 
23 
28  std::pair<AlgebraicVector,AlgebraicVector> value(const AlgebraicVector& exPoint) const override;
29 
30  std::pair<AlgebraicMatrix, AlgebraicVector> derivative(const AlgebraicVector& exPoint) const override;
31 
37  std::pair<AlgebraicVector, AlgebraicVector> value(const std::vector<RefCountedKinematicParticle> &par) const override;
38 
39  std::pair<AlgebraicMatrix, AlgebraicVector> derivative(const std::vector<RefCountedKinematicParticle> &par) const override;
40 
41  int numberOfEquations() const override;
42 
47  void addConstraint(KinematicConstraint * newConst) const;
48 
49  AlgebraicVector deviations(int nStates) const override;
50 
51  bool isEmpty() const
52  {return em;}
53 
55  {return new MultipleKinematicConstraint(*this);}
56 
57 private:
58 
59  mutable std::vector<KinematicConstraint *> cts;
60 
61  mutable bool em;
62 };
63 #endif
void addConstraint(KinematicConstraint *newConst) const
std::pair< AlgebraicVector, AlgebraicVector > value(const AlgebraicVector &exPoint) const override
std::vector< KinematicConstraint * > cts
CLHEP::HepVector AlgebraicVector
AlgebraicVector deviations(int nStates) const override
std::pair< AlgebraicMatrix, AlgebraicVector > derivative(const AlgebraicVector &exPoint) const override
MultipleKinematicConstraint * clone() const override