CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/TrackingTools/AnalyticalJacobians/interface/AnalyticalCurvilinearJacobian.h

Go to the documentation of this file.
00001 #ifndef AnalyticalCurvilinearJacobian_H
00002 #define AnalyticalCurvilinearJacobian_H
00003 
00004 #include "TrackingTools/AnalyticalJacobians/interface/CurvilinearJacobian.h"
00005 #include "DataFormats/GeometryVector/interface/GlobalPoint.h" 
00006 #include "DataFormats/GeometryVector/interface/GlobalVector.h" 
00007 
00019 class GlobalTrajectoryParameters;
00020 
00021 class AnalyticalCurvilinearJacobian : public CurvilinearJacobian {
00022  public:
00024   AnalyticalCurvilinearJacobian() : theJacobian(AlgebraicMatrixID()) {}
00025 
00027   AnalyticalCurvilinearJacobian(const GlobalTrajectoryParameters& globalParameters,
00028                                 const GlobalPoint& x, 
00029                                 const GlobalVector& p, 
00030                                 const double& s);
00032   AnalyticalCurvilinearJacobian(const GlobalTrajectoryParameters& globalParameters,
00033                                 const GlobalPoint& x, 
00034                                 const GlobalVector& p, 
00035                                 const GlobalVector& theFieldInInverseGeV, 
00036                                 const double& s);
00037   
00038   virtual ~AnalyticalCurvilinearJacobian() {}
00039   
00040   virtual const AlgebraicMatrix55& jacobian() const {return theJacobian;}
00041   virtual const AlgebraicMatrix jacobian_old() const {return asHepMatrix(theJacobian);}
00042 public:
00044   void computeFullJacobian (const GlobalTrajectoryParameters&,
00045                             const GlobalPoint&, const GlobalVector&, const GlobalVector&, 
00046                             const double& s);
00048   void computeInfinitesimalJacobian (const GlobalTrajectoryParameters&,
00049                                      const GlobalPoint&, const GlobalVector&, const GlobalVector&, 
00050                                      const double& s);
00052   void computeStraightLineJacobian (const GlobalTrajectoryParameters&,
00053                                     const GlobalPoint&, const GlobalVector&, 
00054                                     const double& s);
00055 
00056  private:
00057   
00058   AlgebraicMatrix55 theJacobian;
00059 
00060 };  
00061 
00062 #endif