Belle II Software development
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
22namespace 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.
Abstract base class for constraints of kinematic fits.
Abstract base class for different kinds of events.