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

NeutralParticleTrack.h

Go to the documentation of this file.
00001 
00009 #ifndef __NeutralParticleTrack_H
00010 #define __NeutralParticleTrack_H
00011 
00012 #include "jbltools/kinfit/TrackFitObject.h"
00013 
00014 #include <cassert>
00015 
00016 // Class NeutralParticleTrack
00018 
00030 class NeutralParticleTrack: public TrackFitObject {
00031   public:
00033     NeutralParticleTrack (const char *name_,
00034                           double pt,
00035                           double phi0,
00036                           double theta,
00037                           double dca,
00038                           double z0,
00039                           double mass,
00040                           double sstart,
00041                           double sstop
00042                           );
00044     NeutralParticleTrack (const char *name_,
00045                           double pt,
00046                           double phi0,
00047                           double theta,
00048                           double dca,
00049                           double z0,
00050                           double mass,
00051                           double sstart
00052                           );
00054     NeutralParticleTrack (const char *name_,
00055                           const ThreeVector& vertex,
00056                           const ThreeVector& momentum,
00057                           double mass
00058                          );
00060     virtual ~NeutralParticleTrack();
00061 
00063     virtual int getNPar() const;
00064     
00066     virtual bool   setParam (int ilocal,         
00067                              double par_,        
00068                              bool measured_,     
00069                              bool fixed_ = false 
00070                             );  
00072     virtual bool   setParam (int ilocal,         
00073                              double par_         
00074                             );  
00075 
00077     virtual bool setParameters (int ivertex,                  
00078                                 const ThreeVector& vertex,    
00079                                 const FourVector& momentum,   
00080                                 double charge_                
00081                                );
00082                                
00084     virtual const char *getParamName (int ilocal     
00085                                      ) const;
00086  
00087     
00089     virtual void getTrajectoryPointEx (double s,  
00090                                        ThreeVector& p 
00091                                       ) const; 
00092                                     
00094     virtual void getVertexEx (int ivertex, 
00095                               ThreeVector& p
00096                              ) const; 
00097 
00099     virtual void setVertex (int ivertex,         
00100                             const TwoVector& p   
00101                            ); 
00102     
00104     virtual void getTrajectoryDerivativeEx (double s, 
00105                                             int ilocal, 
00106                                             ThreeVector& p
00107                                            ) const;
00109     virtual void getVertexDerivativeEx (int ivertex, 
00110                                         int ilocal, 
00111                                         ThreeVector& p
00112                                        ) const;
00113 
00115     virtual void getMomentumAtTrajectoryEx (double s, 
00116                                             FourVector& p
00117                                            ) const; 
00119     virtual void getMomentumEx (int ivertex, 
00120                                 FourVector& p 
00121                                ) const; 
00122 
00124     virtual double getCharge () const; 
00125 
00127     virtual double getMass () const; 
00128 
00130     virtual void getMomentumDerivativeAtTrajectoryEx (double s, 
00131                                                       int ilocal, 
00132                                                       FourVector& p
00133                                                      ) const; 
00135     virtual void getMomentumDerivativeEx (int ivertex, 
00136                                           int ilocal, 
00137                                           FourVector& p
00138                                          ) const;
00140     virtual double getArcLength (int i
00141                                 ) const;
00142    
00145     virtual void addToGlobCov(double *glcov, int idim) const; 
00146     
00148     virtual double getDChi2DParam(int ilocal) const {assert (0);};
00150     virtual double getD2Chi2DParam2(int ilocal1, int ilocal2) const {assert (0);};
00151     
00153     virtual void addToGlobalChi2DerMatrix (int idim, double *M) const {assert (0);};
00155     virtual void addToGlobalDerMatrix (int idim, double c, double *M) const {assert (0);};
00156 
00158     virtual JBLHelix getTangentialHelix (double s     
00159                                         );
00160     
00162     virtual bool fixVertexParam (int ivertex,    
00163                                  bool fix=true  
00164                                  ) { return fixParam (6+ivertex, fix); }
00165     
00167     static const double parfact[NPARMAX];
00168   
00169   protected:
00170     
00172     virtual void initCov(const float cov_[15]);
00173     
00175     void updateCache() const;
00176   
00178     enum {NPAR = 8};
00179     
00180     // Cache variables
00181     mutable double pt;            
00182     mutable double phi0;          
00183     mutable double theta;         
00184     mutable double dca;           
00185     mutable double z0;            
00186     mutable double mass;          
00187     
00188     mutable double sphi0;              
00189     mutable double cphi0;              
00190     mutable double px;                 
00191     mutable double py;                 
00192     mutable double x0;                 
00193     mutable double y0;                 
00194     
00195     mutable double cottheta;           
00196     mutable double sintheta;           
00197     mutable double sin2theta;          
00198     mutable double momentum;           
00199     mutable double momderfact;         
00200     mutable double energy;             
00201     mutable double beta;               
00202   
00203 };
00204 
00205 #endif // __NeutralParticleTrack_H

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