Belle II Software  release-08-01-10
SoftGaussMomentumConstraint.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * Forked from https://github.com/iLCSoft/MarlinKinfit *
6  * *
7  * Further information about the fit engine and the user interface *
8  * provided in MarlinKinfit can be found at *
9  * https://www.desy.de/~blist/kinfit/doc/html/ *
10  * and in the LCNotes LC-TOOL-2009-001 and LC-TOOL-2009-004 available *
11  * from http://www-flc.desy.de/lcnotes/ *
12  * *
13  * See git log for contributors and copyright holders. *
14  * This file is licensed under LGPL-3.0, see LICENSE.md. *
15  **************************************************************************/
16 
17 #ifndef __SOFTGAUSSMOMENTUMCONSTRAINT_H
18 #define __SOFTGAUSSMOMENTUMCONSTRAINT_H
19 
20 #include "analysis/OrcaKinFit/SoftGaussParticleConstraint.h"
21 
22 namespace Belle2 {
28  namespace OrcaKinFit {
29 
30  class ParticleFitObject;
31 
32 // Class SoftGaussMomentumConstraint:
34 
50  public:
51 
53  SoftGaussMomentumConstraint(double sigma_ = 0,
54  double efact_ = 0,
55  double pxfact_ = 0,
56  double pyfact_ = 0,
57  double pzfact_ = 0,
58  double value_ = 0
59  );
62 
64  virtual double getValue() const override;
65 
68  virtual void getDerivatives(int idim,
69  double der[]
70  ) const override;
71 
72  protected:
73 
74 
75  double efact;
76  double pxfact;
77  double pyfact;
78  double pzfact;
79  double value;
80 
81 
83  virtual bool secondDerivatives(int i,
84  int j,
85  double* derivatives
86  ) const override;
88  virtual bool firstDerivatives(int i,
89  double* derivatives
90  ) const override;
91  };
92 
93  }// end OrcaKinFit namespace
95 } // end Belle2 namespace
96 
97 #endif // __SOFTGAUSSMOMENTUMCONSTRAINT_H
Implements a soft constraint with chi^2=((efact*sum(E_i) + pxfact*sum(p_x,i)+pyfact*sum(p_y,...
virtual void getDerivatives(int idim, double der[]) const override
Get first order derivatives.
virtual double getValue() const override
Returns the value of the constraint function.
virtual bool secondDerivatives(int i, int j, double *derivatives) const override
Second derivatives with respect to the 4-vectors of Fit objects i and j; result false if all derivati...
virtual bool firstDerivatives(int i, double *derivatives) const override
First derivatives with respect to the 4-vector of Fit objects i; result false if all derivatives are ...
virtual ~SoftGaussMomentumConstraint()
Virtual destructor.
SoftGaussMomentumConstraint(double sigma_=0, double efact_=0, double pxfact_=0, double pyfact_=0, double pzfact_=0, double value_=0)
Constructor.
Abstract base class for constraints of kinematic fits.
Abstract base class for different kinds of events.