MarlinKinfit  0.4.0
LeptonFitObject.h
Go to the documentation of this file.
1 
7 #ifndef __LEPTONFITOBJECT_H
8 #define __LEPTONFITOBJECT_H
9 
10 #include "ParticleFitObject.h"
11 #include "EVENT/Track.h"
12 #include "lcio.h"
13 
14 using namespace lcio ;
15 
16 // Class LeptonFitObject
17 // Class for leptons with (q/pt, theta, phi) in kinematic fits
18 
20  public:
21 
22  LeptonFitObject(double ptinv, double theta, double phi,
23  double Dptinv, double Dtheta, double Dphi,
24  double m = 0);
25 
27  LeptonFitObject(double ptinv, double theta, double phi,
28  double Dptinv, double Dtheta, double Dphi,
29  double Rhoptinvtheta, double Rhoptinvphi, double Rhothetaphi,
30  double m = 0);
31 
33  LeptonFitObject(Track* track, double Bfield, double m = 0);
34 
36  LeptonFitObject(const TrackState* trackstate, double Bfield, double m = 0);
37 
39  LeptonFitObject (const LeptonFitObject& rhs
40  );
42  LeptonFitObject& operator= (const LeptonFitObject& rhs
43  );
44 
45  virtual ~LeptonFitObject();
46 
48  virtual LeptonFitObject *copy() const;
49 
51  virtual LeptonFitObject& assign (const BaseFitObject& source
52  );
53 
55  virtual const char *getParamName (int ilocal
56  ) const;
57 
59  virtual bool updateParams (double p[],
60  int idim
61  );
62 
63  // these depend on actual parametrisation!
64  virtual double getDPx(int ilocal) const;
65  virtual double getDPy(int ilocal) const;
66  virtual double getDPz(int ilocal) const;
67  virtual double getDE(int ilocal) const;
68 
70  // virtual double getChi2() const;
71 
72  double getFirstDerivative_Meta_Local( int iMeta, int ilocal , int metaSet ) const; // first derivative of intermediate variable iMeta wrt local parameter ilocal
73  double getSecondDerivative_Meta_Local( int iMeta, int ilocal , int jlocal, int metaSet ) const; // second derivative of intermediate variable iMeta wrt local parameters ilocal and jlocal
74  virtual int getNPar() const {return NPAR;}
75 
76  protected:
77 
78  // virtual void initCov();
79 
80  void updateCache() const;
81 
82  // mutable bool cachevalid;
83 
84  mutable double ctheta, stheta, stheta2, cphi, sphi, cottheta,
85  p2, p, e, e2, pt, pt2, pt3, px, py, pz, dpdptinv, dpdtheta, dptdptinv,
86  dpxdptinv, dpydptinv, dpzdptinv, dpxdtheta, dpydtheta, dpzdtheta, dpxdphi, dpydphi, dpzdphi,
87  chi2, dEdptinv, dEdtheta, dEdp, qsign, ptinv2;
88 
89  static bool adjustPtinvThetaPhi (double& m, double &ptinv, double& theta, double& phi);
90 
91  enum {NPAR=3};
92 
93 };
94 
95 
96 
97 #endif // __LEPTONFITOBJECT_H
98 
virtual int getNPar() const
Get total number of parameters of this FitObject.
Definition: LeptonFitObject.h:74
Abstract base class for particle objects of kinematic fits.
Definition: ParticleFitObject.h:63
Definition: LeptonFitObject.h:19
Declares class ParticleFitObject.
Abstract base class for particle objects of kinematic fits.
Definition: BaseFitObject.h:110