Belle II Software  light-2403-persian
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 
22 namespace 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.
ISRPhotonFitObject(double px, double py, double pz, double b_, double PzMaxB_, double PzMinB_=0.)
virtual ISRPhotonFitObject * copy() const override
Return a new copy of itself.
Abstract base class for different kinds of events.
Definition: ClusterUtils.h:24