CMS 3D CMS Logo

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

Go to the documentation of this file.
00001 #ifndef AnalyticalCurvilinearJacobian_H
00002 #define AnalyticalCurvilinearJacobian_H
00003 
00004 #include "DataFormats/Math/interface/AlgebraicROOTObjects.h"
00005 #include "DataFormats/GeometryVector/interface/GlobalPoint.h" 
00006 #include "DataFormats/GeometryVector/interface/GlobalVector.h" 
00007 
00019 class GlobalTrajectoryParameters;
00020 
00021 class AnalyticalCurvilinearJacobian  {
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   
00039 public:
00041   void computeFullJacobian (const GlobalTrajectoryParameters&,
00042                             const GlobalPoint&, const GlobalVector&, const GlobalVector&, 
00043                             const double& s);
00045   void computeInfinitesimalJacobian (const GlobalTrajectoryParameters&,
00046                                      const GlobalPoint&, const GlobalVector&, const GlobalVector&, 
00047                                      const double& s);
00049   void computeStraightLineJacobian (const GlobalTrajectoryParameters&,
00050                                     const GlobalPoint&, const GlobalVector&, 
00051                                     const double& s);
00052 
00053 
00054 
00055   const AlgebraicMatrix55& jacobian() const {return theJacobian;}
00056 
00057 private:
00058   
00059   AlgebraicMatrix55 theJacobian;
00060 
00061 };  
00062 
00063 #endif