Go to the documentation of this file.00001 #ifndef KinematicPerigeeConversions_H
00002 #define KinematicPerigeeConversions_h
00003
00004 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicParameters.h"
00005 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicState.h"
00006 #include "RecoVertex/KinematicFitPrimitives/interface/ExtendedPerigeeTrajectoryParameters.h"
00007 #include "MagneticField/Engine/interface/MagneticField.h"
00008 #include "RecoVertex/KinematicFitPrimitives/interface/Matrices.h"
00009
00017 class KinematicPerigeeConversions
00018 {
00019 public:
00020
00021 KinematicPerigeeConversions()
00022 {}
00023
00024 ExtendedPerigeeTrajectoryParameters extendedPerigeeFromKinematicParameters
00025 (const KinematicState& state, const GlobalPoint& point) const;
00026
00027 KinematicParameters kinematicParametersFromExPerigee
00028 (const ExtendedPerigeeTrajectoryParameters& pr, const GlobalPoint& point,
00029 const MagneticField* field) const;
00030
00031 KinematicState kinematicState(const AlgebraicVector4& momentum,
00032 const GlobalPoint& referencePoint, const TrackCharge& charge,
00033 const AlgebraicSymMatrix77& theCovarianceMatrix, const MagneticField* field) const;
00034
00038 AlgebraicVector4 momentumFromPerigee(const AlgebraicVector4& momentum,
00039 const GlobalPoint& referencePoint, const TrackCharge& ch,
00040 const MagneticField* field) const;
00041
00042 private:
00048 AlgebraicMatrix77 jacobianParameters2Kinematic(const AlgebraicVector4& momentum,
00049 const GlobalPoint& referencePoint, const TrackCharge& charge,
00050 const MagneticField* field) const;
00051 };
00052 #endif