Belle II Software development
PxPyPzMFitObject.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#ifndef __PXPYPZMFITOBJECT_H
10#define __PXPYPZMFITOBJECT_H
11
12#include "analysis/OrcaKinFit/ParticleFitObject.h"
13
14// CLHEP
15#include <CLHEP/Matrix/Matrix.h>
16#include <CLHEP/Matrix/SymMatrix.h>
17#include <CLHEP/Vector/LorentzVector.h>
18
19namespace Belle2 {
24 namespace OrcaKinFit {
25
27 public:
28
29 PxPyPzMFitObject(CLHEP::HepLorentzVector& particle, const CLHEP::HepSymMatrix& covmatrix);
30
31 // Copy constructor
33 );
34 // Assignment
36 );
37
38 virtual ~PxPyPzMFitObject();
39
40 // Return a new copy of itself
41 virtual PxPyPzMFitObject* copy() const override;
42
43 // Assign from anther object, if of same type
44 virtual PxPyPzMFitObject& assign(const BaseFitObject& source
45 ) override;
46
47 // Get name of parameter ilocal
48 virtual const char* getParamName(int ilocal
49 ) const override;
50
51 // Read values from global vector, readjust vector; return: significant change
52 virtual bool updateParams(double p[],
53 int idim
54 ) override;
55
56 // these depend on actual parametrisation!
57 virtual double getDPx(int ilocal) const override;
58 virtual double getDPy(int ilocal) const override;
59 virtual double getDPz(int ilocal) const override;
60 virtual double getDE(int ilocal) const override;
61
62 virtual double getFirstDerivative_Meta_Local(int iMeta, int ilocal,
63 int metaSet) const override; // derivative of intermediate variable iMeta wrt local parameter ilocal
64 virtual double getSecondDerivative_Meta_Local(int iMeta, int ilocal, int jlocal,
65 int metaSet) const override; // derivative of intermediate variable iMeta wrt local parameter ilocal
66
67 virtual int getNPar() const override {return NPAR;}
68
69 protected:
70
71 void updateCache() const override;
72
73 mutable bool cachevalid;
74
75 mutable double chi2,
76 dEdpx, dEdpy, dEdpz,
77 dE2dpxdpx, dE2dpxdpy, dE2dpxdpz,
78 dE2dpydpy, dE2dpydpz,
79 dE2dpzdpz;
80
81 enum {NPAR = 3};
82
83 };
84
85 }// end OrcaKinFit namespace
87} // end Belle2 namespace
88
89
90
91#endif // __PXPYPZMFITOBJECT_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 PxPyPzMFitObject & assign(const BaseFitObject &source) override
Assign from anther object, if of same type.
virtual double getDE(int ilocal) const override
Return d E / d par_ilocal (derivative of E w.r.t. local parameter ilocal)
virtual PxPyPzMFitObject * copy() const override
Return a new copy of itself.
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.
PxPyPzMFitObject & operator=(const PxPyPzMFitObject &rhs)
Abstract base class for different kinds of events.