MarlinKinfit  0.4.0
MomentumConstraint.h
Go to the documentation of this file.
1 
16 // Class MomentumConstraint
18 //
19 // Author: Benno List, Jenny List
20 // Last update: $Date: 2008/02/18 09:59:34 $
21 // by: $Author: blist $
22 //
23 // Description: constraint
24 // efact*sum(E_i) + pxfact*sum(p_x,i)+pyfact*sum(p_y,i)+pzfact*sum(p_z,i)-value = 0
25 //
27 
28 #ifndef __MOMENTUMCONSTRAINT_H
29 #define __MOMENTUMCONSTRAINT_H
30 
31 #include "ParticleConstraint.h"
32 
33 class ParticleFitObject;
34 
35 // Class PConstraint:
37 
45  public:
46  MomentumConstraint (double efact_=0,
47  double pxfact_=0,
48  double pyfact_=0,
49  double pzfact_=0,
50  double value_ = 0
51  );
52  virtual ~MomentumConstraint();
53  virtual double getValue() const;
56  virtual void getDerivatives(int idim,
57  double der[]
58  ) const;
59 
60  // not used at all
61  // virtual void addToGlobalDerMatrix (double lambda, int idim, double *M) const;
62 
63  virtual void invalidateCache() const;
64 
65  virtual int getVarBasis() const;
66 
67  protected:
68  void updateCache() const;
69 
70 
71  double efact;
72  double pxfact;
73  double pyfact;
74  double pzfact;
75  double value;
76 
77  mutable bool cachevalid;
78  mutable int nparams;
79 
81  virtual bool secondDerivatives (int i,
82  int j,
83  double *derivatives
84  ) const;
86  virtual bool firstDerivatives (int i,
87  double *derivatives
88  ) const;
89 
90  enum { VAR_BASIS=0 }; // this means that the constraint knows about E,px,py,pz
91 
92 };
93 
94 #endif // __MOMENTUMCONSTRAINT_H
Declares class ParticleConstraint.
MomentumConstraint(double efact_=0, double pxfact_=0, double pyfact_=0, double pzfact_=0, double value_=0)
Definition: MomentumConstraint.cc:26
Abstract base class for constraints of kinematic fits.
Definition: ParticleConstraint.h:89
Implements a constraint of the form efact*sum(E)+pxfact*sum(px)+pyfact*sum(py)+pzfact*sum(pz)=value.
Definition: MomentumConstraint.h:44
virtual double getValue() const
Returns the value of the constraint.
Definition: MomentumConstraint.cc:43
virtual bool secondDerivatives(int i, int j, double *derivatives) const
Second derivatives with respect to the 4-vectors of Fit objects i and j; result false if all derivati...
Definition: MomentumConstraint.cc:103
Abstract base class for particle objects of kinematic fits.
Definition: ParticleFitObject.h:63
virtual void invalidateCache() const
Invalidates any cached values for the next event.
Definition: MomentumConstraint.cc:85
virtual void getDerivatives(int idim, double der[]) const
Get first order derivatives.
Definition: MomentumConstraint.cc:66
std::vector< double > derivatives
The derivatives.
Definition: BaseHardConstraint.h:173
virtual bool firstDerivatives(int i, double *derivatives) const
First derivatives with respect to the 4-vector of Fit objects i; result false if all derivatives are ...
Definition: MomentumConstraint.cc:107