Belle II Software development
ISRPhotonFitObject.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 __ISRPHOTONFITOBJECT_H
18#define __ISRPHOTONFITOBJECT_H
19
20#include "analysis/OrcaKinFit/ParticleFitObject.h"
21
22namespace Belle2 {
27 namespace OrcaKinFit {
28
30 public:
31 ISRPhotonFitObject(double px,
32 double py,
33 double pz,
34 double b_,
35 double PzMaxB_,
36 double PzMinB_ = 0.
37 );
38
41 );
44
45 virtual ~ISRPhotonFitObject();
46
48 virtual ISRPhotonFitObject* copy() const override;
49
51 virtual ISRPhotonFitObject& assign(const BaseFitObject& source
52 ) override;
53
55 virtual const char* getParamName(int ilocal
56 ) const override;
57
59 virtual bool updateParams(double p[],
60 int idim
61 ) override;
62
63
64 // // these depend on actual parametrisation!
65 virtual double getDPx(int ilocal) const override;
66 virtual double getDPy(int ilocal) const override;
67 virtual double getDPz(int ilocal) const override;
68 virtual double getDE(int ilocal) const override;
69
70 virtual double getFirstDerivative_Meta_Local(int iMeta, int ilocal, int metaSet) const override;
71 virtual double getSecondDerivative_Meta_Local(int iMeta, int ilocal, int jlocal, int metaSet) const override;
72
73 virtual int getNPar() const override {return NPAR;}
74
75 protected:
76
77 enum {NPAR = 3}; // well, it's actually 1...Daniel should update
78
79 double PgFromPz(double pz);
80
81 void updateCache() const override;
82
83 mutable bool cachevalid;
84
85 mutable double pt2, p2, p, pz,
86 dpx0, dpy0, dpz0, dE0, dpx1, dpy1, dpz1, dE1,
87 dpx2, dpy2, dpz2, dE2, d2pz22, d2E22,
88 chi2,
89 b, PzMinB, PzMaxB, dp2zFact;
90 };
91
92 }// end OrcaKinFit namespace
94} // end Belle2 namespace
95
96#endif // __ISRPHOTONFITOBJECT_H
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.
virtual double getDE(int ilocal) const override
Return d E / d par_ilocal (derivative of E w.r.t. local parameter ilocal)
ISRPhotonFitObject & operator=(const ISRPhotonFitObject &rhs)
Assignment.
virtual ISRPhotonFitObject & 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 ISRPhotonFitObject * copy() const override
Return a new copy of itself.
Abstract base class for different kinds of events.