 |
Belle II Software
release-05-02-19
|
17 #ifndef __BASEHARDCONSTRAINT_H
18 #define __BASEHARDCONSTRAINT_H
20 #include "analysis/OrcaKinFit/BaseDefs.h"
21 #include "analysis/OrcaKinFit/BaseConstraint.h"
22 #include "analysis/OrcaKinFit/BaseFitObject.h"
32 namespace OrcaKinFit {
75 class BaseHardConstraint:
public BaseConstraint {
78 inline BaseHardConstraint();
99 virtual double dirDer(
double* p,
122 virtual int getVarBasis()
const = 0;
125 virtual double getValue()
const override = 0;
128 virtual double getError()
const override;
134 )
const override = 0;
144 virtual void printFirstDerivatives()
const;
145 virtual void printSecondDerivatives()
const;
147 virtual void test1stDerivatives();
148 virtual void test2ndDerivatives();
182 std::vector <int>
flags;
189 BaseHardConstraint::BaseHardConstraint()
190 : fitobjects(
FitObjectContainer()), derivatives(std::vector <double> ()), flags(std::vector <int> ()), globalNum(0)
198 #endif // __BASEHARDCONSTRAINT_H
FitObjectContainer::const_iterator ConstFitObjectIterator
Constant iterator through vector of pointers to ParticleFitObjects.
virtual void getDerivatives(int idim, double der[]) const override=0
Get first order derivatives.
virtual void add2ndDerivativesToMatrix(double *M, int idim, double lambda) const
Adds second order derivatives to global covariance matrix M.
std::vector< double > derivatives
The derivatives.
virtual double num1stDerivative(int ifo, int ilocal, double eps)
Evaluates numerically the 1st derivative w.r.t. a parameter.
std::vector< BaseFitObject * > FitObjectContainer
Vector of pointers to ParticleFitObjects.
virtual void addToGlobalChi2DerVector(double *y, int idim, double lambda) const
Add lambda times derivatives of chi squared to global derivative vector.
virtual double getError() const override
Returns the error on the value of the constraint.
int globalNum
Position of constraint in global constraint list.
FitObjectContainer fitobjects
The FitObjectContainer.
virtual double num2ndDerivative(int ifo1, int ilocal1, double eps1, int ifo2, int ilocal2, double eps2)
Evaluates numerically the 2nd derivative w.r.t. 2 parameters.
virtual int getGlobalNum() const
Accesses position of constraint in global constraint list.
Abstract base class for different kinds of events.
virtual bool secondDerivatives(int i, int j, double *derivatives) const =0
Second derivatives with respect to the meta-variables of Fit objects i and j; result false if all der...
FitObjectContainer::iterator FitObjectIterator
Iterator through vector of pointers to ParticleFitObjects.
virtual double dirDer(double *p, double *w, int idim, double mu=1)
Calculate directional derivative.
virtual void setGlobalNum(int iglobal)
Sets position of constraint in global constraint list.
std::vector< int > flags
The flags can be used to divide the FitObjectContainer into several subsets used for example to imple...
virtual bool firstDerivatives(int i, double *derivatives) const =0
First derivatives with respect to the meta-variables of Fit objects i; result false if all derivative...
virtual void add1stDerivativesToMatrix(double *M, int idim) const
Adds first order derivatives to global covariance matrix M.
virtual ~BaseHardConstraint()
Virtual destructor.
virtual double getValue() const override=0
Returns the value of the constraint.
virtual double dirDerAbs(double *p, double *w, int idim, double mu=1)
Calculate directional derivative for abs(c)