Belle II Software  release-05-01-25
NeutrinoFitObject.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * See https://github.com/tferber/OrcaKinfit, forked from *
4  * https://github.com/iLCSoft/MarlinKinfit *
5  * *
6  * Further information about the fit engine and the user interface *
7  * provided in MarlinKinfit can be found at *
8  * https://www.desy.de/~blist/kinfit/doc/html/ *
9  * and in the LCNotes LC-TOOL-2009-001 and LC-TOOL-2009-004 available *
10  * from http://www-flc.desy.de/lcnotes/ *
11  * *
12  * Adopted by: Torben Ferber (torben.ferber@desy.de) (TF) *
13  * *
14  * This software is provided "as is" without any warranty. *
15  **************************************************************************/
16 
17 #ifndef __NEUTRINOFITOBJECT_H
18 #define __NEUTRINOFITOBJECT_H
19 
20 #include "analysis/OrcaKinFit/ParticleFitObject.h"
21 
22 #include <cmath>
23 
24 namespace Belle2 {
29  namespace OrcaKinFit {
30 
31  class NeutrinoFitObject : public ParticleFitObject {
32  public:
33  NeutrinoFitObject(double E, double theta, double phi,
34  double DE = 1, double Dtheta = 0.1, double Dphi = 0.1);
35 
37  NeutrinoFitObject(const NeutrinoFitObject& rhs
38  );
40  NeutrinoFitObject& operator= (const NeutrinoFitObject& rhs
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 
Belle2::OrcaKinFit::NeutrinoFitObject::assign
virtual NeutrinoFitObject & assign(const BaseFitObject &source) override
Assign from anther object, if of same type.
Definition: NeutrinoFitObject.cc:79
Belle2::OrcaKinFit::NeutrinoFitObject::getDE
virtual double getDE(int ilocal) const override
Return d E / d par_ilocal (derivative of E w.r.t. local parameter ilocal)
Definition: NeutrinoFitObject.cc:179
Belle2::OrcaKinFit::NeutrinoFitObject::getParamName
virtual const char * getParamName(int ilocal) const override
Get name of parameter ilocal.
Definition: NeutrinoFitObject.cc:92
Belle2::OrcaKinFit::NeutrinoFitObject::getDPz
virtual double getDPz(int ilocal) const override
Return d p_z / d par_ilocal (derivative of pz w.r.t. local parameter ilocal)
Definition: NeutrinoFitObject.cc:167
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::OrcaKinFit::NeutrinoFitObject::getDPx
virtual double getDPx(int ilocal) const override
Return d p_x / d par_ilocal (derivative of px w.r.t. local parameter ilocal)
Definition: NeutrinoFitObject.cc:143
Belle2::OrcaKinFit::NeutrinoFitObject::getDPy
virtual double getDPy(int ilocal) const override
Return d p_y / d par_ilocal (derivative of py w.r.t. local parameter ilocal)
Definition: NeutrinoFitObject.cc:155
Belle2::OrcaKinFit::NeutrinoFitObject::operator=
NeutrinoFitObject & operator=(const NeutrinoFitObject &rhs)
Assignment.
Definition: NeutrinoFitObject.cc:66
Belle2::OrcaKinFit::NeutrinoFitObject::copy
virtual NeutrinoFitObject * copy() const override
Return a new copy of itself.
Definition: NeutrinoFitObject.cc:74
Belle2::OrcaKinFit::NeutrinoFitObject::updateParams
virtual bool updateParams(double p[], int idim) override
Read values from global vector, readjust vector; return: significant change.
Definition: NeutrinoFitObject.cc:103