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