CMS 3D CMS Logo

SmartPointingConstraint.h
Go to the documentation of this file.
1 #ifndef SmartPointingConstraint_H
2 #define SmartPointingConstraint_H
3 
5 
20 public:
22 
27  std::pair<AlgebraicVector, AlgebraicVector> value(const AlgebraicVector& exPoint) const override;
28 
29  std::pair<AlgebraicMatrix, AlgebraicVector> derivative(const AlgebraicVector& exPoint) const override;
30 
35  std::pair<AlgebraicMatrix, AlgebraicVector> derivative(
36  const std::vector<RefCountedKinematicParticle>& par) const override;
37 
38  std::pair<AlgebraicVector, AlgebraicVector> value(const std::vector<RefCountedKinematicParticle>& par) const override;
39 
40  AlgebraicVector deviations(int nStates) const override;
41 
47  int numberOfEquations() const override;
48 
49  SmartPointingConstraint* clone() const override { return new SmartPointingConstraint(*this); }
50 
51 private:
52  std::pair<AlgebraicVector, AlgebraicVector> makeValue(const AlgebraicVector& exPoint) const;
53  std::pair<AlgebraicMatrix, AlgebraicVector> makeDerivative(const AlgebraicVector& exPoint) const;
54 
56 };
57 
58 #endif
SmartPointingConstraint * clone() const override
std::pair< AlgebraicMatrix, AlgebraicVector > makeDerivative(const AlgebraicVector &exPoint) const
std::pair< AlgebraicVector, AlgebraicVector > makeValue(const AlgebraicVector &exPoint) const
CLHEP::HepVector AlgebraicVector
std::pair< AlgebraicVector, AlgebraicVector > value(const AlgebraicVector &exPoint) const override
SmartPointingConstraint(const GlobalPoint &ref)
int numberOfEquations() const override
AlgebraicVector deviations(int nStates) const override
std::pair< AlgebraicMatrix, AlgebraicVector > derivative(const AlgebraicVector &exPoint) const override