Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:12

0001 #ifndef KinematicPerigeeConversions_H
0002 #define KinematicPerigeeConversions_H
0003 
0004 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicParameters.h"
0005 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicState.h"
0006 #include "RecoVertex/KinematicFitPrimitives/interface/ExtendedPerigeeTrajectoryParameters.h"
0007 #include "MagneticField/Engine/interface/MagneticField.h"
0008 #include "RecoVertex/KinematicFitPrimitives/interface/Matrices.h"
0009 
0010 /**
0011  * Helper class to simplify parameters 
0012  * conversions between kinematic
0013  * and extended perigee parametrization
0014  *
0015  * Kirill Prokofiev, August 2003
0016  */
0017 class KinematicPerigeeConversions {
0018 public:
0019   KinematicPerigeeConversions() {}
0020 
0021   ExtendedPerigeeTrajectoryParameters extendedPerigeeFromKinematicParameters(const KinematicState& state,
0022                                                                              const GlobalPoint& point) const;
0023 
0024   KinematicParameters kinematicParametersFromExPerigee(const ExtendedPerigeeTrajectoryParameters& pr,
0025                                                        const GlobalPoint& point,
0026                                                        const MagneticField* field) const;
0027 
0028   KinematicState kinematicState(const AlgebraicVector4& momentum,
0029                                 const GlobalPoint& referencePoint,
0030                                 const TrackCharge& charge,
0031                                 const AlgebraicSymMatrix77& theCovarianceMatrix,
0032                                 const MagneticField* field) const;
0033 
0034   /**
0035      * Cartesian (px,py,px,m) from extended perigee
0036      */
0037   AlgebraicVector4 momentumFromPerigee(const AlgebraicVector4& momentum,
0038                                        const GlobalPoint& referencePoint,
0039                                        const TrackCharge& ch,
0040                                        const MagneticField* field) const;
0041 
0042 private:
0043   /**
0044    * Jacobians of tranformations from the parametrixation
0045    * (x, y, z, transverse curvature, theta, phi,m) to kinematic
0046    *  parameters
0047    */
0048   AlgebraicMatrix77 jacobianParameters2Kinematic(const AlgebraicVector4& momentum,
0049                                                  const GlobalPoint& referencePoint,
0050                                                  const TrackCharge& charge,
0051                                                  const MagneticField* field) const;
0052 };
0053 #endif