CMS 3D CMS Logo

MultipleKinematicConstraint.h
Go to the documentation of this file.
1 #ifndef MultipleKinematicConstraint_H
2 #define MultipleKinematicConstraint_H
3 
7 
16 public:
18 
23  std::pair<AlgebraicVector, AlgebraicVector> value(const AlgebraicVector &exPoint) const override;
24 
25  std::pair<AlgebraicMatrix, AlgebraicVector> derivative(const AlgebraicVector &exPoint) const override;
26 
32  std::pair<AlgebraicVector, AlgebraicVector> value(const std::vector<RefCountedKinematicParticle> &par) const override;
33 
34  std::pair<AlgebraicMatrix, AlgebraicVector> derivative(
35  const std::vector<RefCountedKinematicParticle> &par) const override;
36 
37  int numberOfEquations() const override;
38 
43  void addConstraint(KinematicConstraint *newConst) const;
44 
45  AlgebraicVector deviations(int nStates) const override;
46 
47  bool isEmpty() const { return em; }
48 
49  MultipleKinematicConstraint *clone() const override { return new MultipleKinematicConstraint(*this); }
50 
51 private:
52  mutable std::vector<KinematicConstraint *> cts;
53 
54  mutable bool em;
55 };
56 #endif
std::vector< KinematicConstraint * > cts
AlgebraicVector deviations(int nStates) const override
void addConstraint(KinematicConstraint *newConst) const
CLHEP::HepVector AlgebraicVector
MultipleKinematicConstraint * clone() const override
std::pair< AlgebraicMatrix, AlgebraicVector > derivative(const AlgebraicVector &exPoint) const override
std::pair< AlgebraicVector, AlgebraicVector > value(const AlgebraicVector &exPoint) const override