CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/TrackingTools/TrajectoryState/interface/PerigeeConversions.h

Go to the documentation of this file.
00001 #ifndef PerigeeConversions_H
00002 #define PerigeeConversions_H
00003 
00004 #include "DataFormats/Math/interface/AlgebraicROOTObjects.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 //   PerigeeTrajectoryParameters helixToPerigeeParameters
00033 //     (const reco::helix::Parameters & helixPar, const GlobalPoint& referencePoint) const;
00034 // 
00035 //   PerigeeTrajectoryError helixToPerigeeError(const reco::helix::Parameters & helixPar, 
00036 //      const reco::helix::Covariance & helixCov) const;
00037 
00038 
00039 
00045   GlobalPoint positionFromPerigee(const PerigeeTrajectoryParameters& parameters,
00046     const GlobalPoint& referencePoint) const;
00047 
00054    GlobalVector momentumFromPerigee(const AlgebraicVector3& momentum, 
00055     const TrackCharge& charge, const GlobalPoint& referencePoint,
00056     const MagneticField* field)  const;
00057 
00062   GlobalVector momentumFromPerigee (const PerigeeTrajectoryParameters& parameters,
00063                                     double pt,
00064                                     const GlobalPoint& referencePoint) const;
00065 
00070   TrackCharge chargeFromPerigee(const PerigeeTrajectoryParameters& perigee) const;
00071 
00072   CurvilinearTrajectoryError curvilinearError(const PerigeeTrajectoryError& perigeeError,
00073     const GlobalTrajectoryParameters& gtp) const;
00074 
00075 
00084   TrajectoryStateClosestToPoint trajectoryStateClosestToPoint
00085         (const AlgebraicVector3& momentum, const GlobalPoint& referencePoint,
00086          const TrackCharge& charge, const AlgebraicSymMatrix66& theCovarianceMatrix,
00087          const MagneticField* field) const;
00088 
00089 
00095   AlgebraicMatrix66  jacobianParameters2Cartesian
00096         (const AlgebraicVector3& momentum, const GlobalPoint& position,
00097          const TrackCharge& charge, const MagneticField* field) const;
00098 
00099 
00100 
00101 
00108   AlgebraicMatrix55 jacobianCurvilinear2Perigee(const FreeTrajectoryState& fts) const;
00109 
00110   AlgebraicMatrix55 jacobianPerigee2Curvilinear(const GlobalTrajectoryParameters& gtp) const;
00111 
00112 
00113 //   AlgebraicMatrix jacobianHelix2Perigee(const reco::helix::Parameters & helixPar, 
00114 //      const reco::helix::Covariance & helixCov) const;
00115 
00116 
00117 };
00118 #endif