Main Page | Class Hierarchy | Compound List | File List | Compound Members | File Members

StableChargedParticle.h

Go to the documentation of this file.
00001 
00020 #ifndef __StableChargedParticle_H
00021 #define __StableChargedParticle_H
00022 
00023 #include"FitParticle.h"
00024 
00025 
00026 //  Class StableChargedParticle:
00028 
00034 class StableChargedParticle : public FitParticle {
00035   public:
00036     StableChargedParticle();
00037     virtual ~StableChargedParticle();
00038     
00039     
00040     // these depend on actual parametrisation!
00041     
00042     virtual void   addToDerivatives (double der[],
00043                                      int idim,
00044                                      double pxfact=0, 
00045                                      double pyfact=0, 
00046                                      double pzfact=0, 
00047                                      double efact=0) const;
00048 
00049     // add to matrix der2 of size idim x idim
00050     // pxfact*d^2px/(dx_i dx_j) + pyfact...
00051     virtual void   addTo2ndDerivatives (double der2[],
00052                                         int idim,
00053                                         double pxfact, 
00054                                         double pyfact, 
00055                                         double pzfact, 
00056                                         double efact) const;
00057     
00058     virtual void setCovMatrix(double values[NMEAS*(NMEAS+1)/2]);
00059     
00060     virtual double getChi2() const;
00061     virtual double getDChi2DParam(int ilocal) const;
00062     virtual double getD2Chi2DParam2(int ilocal1, int ilocal2) const;
00063     
00064     virtual void addToGlobalChi2DerMatrix (int idim, double *M) const;
00065     virtual void addToGlobalDerMatrix (int idim, double c, double *M) const;
00066     
00067     virtual void addToGlobCov(double *cov, int idim) const; // Add covariance matrix elements to
00068                                          // global covariance matrix of size idim x idim
00069 
00070     virtual void invalidateCache() const;
00071   
00072   protected:
00073     void updateCache() const;
00074     
00075     
00076     void setVertex (FitThreeVector& v, FitThreeVector dv[NPAR], 
00077                     int n, double s) const;
00078     
00079     enum {NPAR = 6};
00080     enum {NMEAS = 5};
00081     
00082     double mass;
00083     double bfield;
00084   
00085     mutable bool cachevalid;
00086     
00087     mutable double chi2;
00088     mutable double r, sphi0, cphi0, dcamir, cottheta, cos2theta;
00089     mutable double resid[NMEAS];
00090     double cov[NMEAS][NMEAS];
00091     double covinv[NMEAS][NMEAS];
00092     mutable FitThreeVector v1;         
00093     mutable FitThreeVector dv1[NPAR];  
00094   
00095 };
00096 
00097 
00098 
00099 #endif // __StableChargedParticle_H
00100 

Generated on Fri Sep 14 17:38:21 2007 for Kinfit by doxygen 1.3.2