Go to the documentation of this file.00001 #ifndef PerigeeConversions_H
00002 #define PerigeeConversions_H
00003
00004 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
00005 #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h"
00006 #include "TrackingTools/TrajectoryParametrization/interface/PerigeeTrajectoryParameters.h"
00007 #include "TrackingTools/TrajectoryParametrization/interface/PerigeeTrajectoryError.h"
00008
00009 class TrajectoryStateClosestToPoint;
00010
00016 class PerigeeConversions
00017 {
00018 typedef FreeTrajectoryState FTS;
00019
00020 public:
00021
00027 PerigeeTrajectoryParameters ftsToPerigeeParameters(const FTS& originalFTS,
00028 const GlobalPoint& referencePoint, double& pt) const;
00029
00030 PerigeeTrajectoryError ftsToPerigeeError(const FTS& originalFTS) const;
00031
00032
00033
00034
00035
00036
00037
00038
00039
00045 GlobalPoint positionFromPerigee(const PerigeeTrajectoryParameters& parameters,
00046 const GlobalPoint& referencePoint) const;
00047
00054 GlobalVector momentumFromPerigee(const AlgebraicVector& momentum,
00055 const TrackCharge& charge, const GlobalPoint& referencePoint,
00056 const MagneticField* field) const;
00057
00058 GlobalVector momentumFromPerigee(const AlgebraicVector3& momentum,
00059 const TrackCharge& charge, const GlobalPoint& referencePoint,
00060 const MagneticField* field) const;
00061
00066 GlobalVector momentumFromPerigee (const PerigeeTrajectoryParameters& parameters,
00067 double pt,
00068 const GlobalPoint& referencePoint) const;
00069
00074 TrackCharge chargeFromPerigee(const PerigeeTrajectoryParameters& perigee) const;
00075
00076 CurvilinearTrajectoryError curvilinearError(const PerigeeTrajectoryError& perigeeError,
00077 const GlobalTrajectoryParameters& gtp) const;
00078
00079
00088 TrajectoryStateClosestToPoint trajectoryStateClosestToPoint
00089 (const AlgebraicVector& momentum, const GlobalPoint& referencePoint,
00090 const TrackCharge& charge, const AlgebraicMatrix& theCovarianceMatrix,
00091 const MagneticField* field) const;
00092
00093 TrajectoryStateClosestToPoint trajectoryStateClosestToPoint
00094 (const AlgebraicVector3& momentum, const GlobalPoint& referencePoint,
00095 const TrackCharge& charge, const AlgebraicSymMatrix66& theCovarianceMatrix,
00096 const MagneticField* field) const;
00097
00098
00104 AlgebraicMatrix jacobianParameters2Cartesian_old
00105 (const AlgebraicVector& momentum, const GlobalPoint& position,
00106 const TrackCharge& charge, const MagneticField* field) const;
00107
00113 AlgebraicMatrix66 jacobianParameters2Cartesian
00114 (const AlgebraicVector3& momentum, const GlobalPoint& position,
00115 const TrackCharge& charge, const MagneticField* field) const;
00116
00117
00118
00119
00126 AlgebraicMatrix jacobianCurvilinear2Perigee_old(const FreeTrajectoryState& fts) const;
00127
00128 AlgebraicMatrix jacobianPerigee2Curvilinear_old(const GlobalTrajectoryParameters& gtp) const;
00129
00130 AlgebraicMatrix55 jacobianCurvilinear2Perigee(const FreeTrajectoryState& fts) const;
00131
00132 AlgebraicMatrix55 jacobianPerigee2Curvilinear(const GlobalTrajectoryParameters& gtp) const;
00133
00134
00135
00136
00137
00138
00139 };
00140 #endif