Belle II Software development
NeutrinoFitObject.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 __NEUTRINOFITOBJECT_H
18#define __NEUTRINOFITOBJECT_H
19
20#include "analysis/OrcaKinFit/ParticleFitObject.h"
21
22#include <cmath>
23
24namespace Belle2 {
29 namespace OrcaKinFit {
30
32 public:
33 NeutrinoFitObject(double E, double theta, double phi,
34 double DE = 1, double Dtheta = 0.1, double Dphi = 0.1);
35
38 );
41 );
42
43 virtual ~NeutrinoFitObject();
44
46 virtual NeutrinoFitObject* copy() const override;
47
49 virtual NeutrinoFitObject& assign(const BaseFitObject& source
50 ) override;
51
53 virtual const char* getParamName(int ilocal
54 ) const override;
55
57 virtual bool updateParams(double p[],
58 int idim
59 ) override;
60
61 // these depend on actual parametrisation!
62 virtual double getDPx(int ilocal) const override;
63 virtual double getDPy(int ilocal) const override;
64 virtual double getDPz(int ilocal) const override;
65 virtual double getDE(int ilocal) const override;
66
67 virtual double getFirstDerivative_Meta_Local(int iMeta, int ilocal, int metaSet) const override;
68 virtual double getSecondDerivative_Meta_Local(int iMeta, int ilocal, int jlocal, int metaSet) const override;
69
70 virtual int getNPar() const override {return NPAR;}
71
72 protected:
73 void updateCache() const override;
74
75 enum {NPAR = 3};
76
77 mutable double ctheta, stheta, cphi, sphi,
78 pt, px, py, pz, dptdE,
79 dpxdE, dpydE, dpxdtheta, dpydtheta,
80 chi2;
81
82 };
83
84 }// end OrcaKinFit namespace
86} // end Belle2 namespace
87
88
89#endif // __NEUTRINOFITOBJECT_H
90
R E
internal precision of FFTW codelets
virtual double getDPx(int ilocal) const override
Return d p_x / d par_ilocal (derivative of px w.r.t. local parameter ilocal)
virtual double getDPy(int ilocal) const override
Return d p_y / d par_ilocal (derivative of py w.r.t. local parameter ilocal)
virtual int getNPar() const override
Get total number of parameters of this FitObject.
NeutrinoFitObject & operator=(const NeutrinoFitObject &rhs)
Assignment.
virtual double getDE(int ilocal) const override
Return d E / d par_ilocal (derivative of E w.r.t. local parameter ilocal)
virtual NeutrinoFitObject & assign(const BaseFitObject &source) override
Assign from anther object, if of same type.
virtual const char * getParamName(int ilocal) const override
Get name of parameter ilocal.
virtual double getDPz(int ilocal) const override
Return d p_z / d par_ilocal (derivative of pz w.r.t. local parameter ilocal)
virtual bool updateParams(double p[], int idim) override
Read values from global vector, readjust vector; return: significant change.
virtual NeutrinoFitObject * copy() const override
Return a new copy of itself.
Abstract base class for different kinds of events.