ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/IPHCalignment2/TrackingTools/TrajectoryState/interface/PerigeeConversions.h
Revision: 1.1
Committed: Fri Nov 25 16:38:26 2011 UTC (13 years, 5 months ago) by econte
Content type: text/plain
Branch: MAIN
CVS Tags: TBD2011, TBD_2011, HEAD
Log Message:
new IPHC alignment

File Contents

# Content
1 #ifndef PerigeeConversions_H
2 #define PerigeeConversions_H
3
4 #include "DataFormats/Math/interface/AlgebraicROOTObjects.h"
5 #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h"
6 #include "TrackingTools/TrajectoryParametrization/interface/PerigeeTrajectoryParameters.h"
7 #include "TrackingTools/TrajectoryParametrization/interface/PerigeeTrajectoryError.h"
8
9 class TrajectoryStateClosestToPoint;
10
11 /**
12 * Class provides several methods to transform perigee parameters to and from
13 * various other parametrisations.
14 */
15
16 class PerigeeConversions
17 {
18 typedef FreeTrajectoryState FTS;
19
20 public:
21
22 /**
23 * This method calculates the perigee parameters from a given FTS
24 * and a reference point.
25 */
26
27 PerigeeTrajectoryParameters ftsToPerigeeParameters(const FTS& originalFTS,
28 const GlobalPoint& referencePoint, double& pt) const;
29
30 PerigeeTrajectoryError ftsToPerigeeError(const FTS& originalFTS) const;
31
32 // PerigeeTrajectoryParameters helixToPerigeeParameters
33 // (const reco::helix::Parameters & helixPar, const GlobalPoint& referencePoint) const;
34 //
35 // PerigeeTrajectoryError helixToPerigeeError(const reco::helix::Parameters & helixPar,
36 // const reco::helix::Covariance & helixCov) const;
37
38
39
40 /**
41 * This method returns the position (on the helix) at which the
42 * parameters are defined
43 */
44
45 GlobalPoint positionFromPerigee(const PerigeeTrajectoryParameters& parameters,
46 const GlobalPoint& referencePoint) const;
47
48 /**
49 * This method returns the (Cartesian) momentum.
50 * The parameters need not be the full perigee parameters, as long as the first
51 * 3 parameters are the transverse curvature, theta and phi.
52 */
53
54 GlobalVector momentumFromPerigee(const AlgebraicVector3& momentum,
55 const TrackCharge& charge, const GlobalPoint& referencePoint,
56 const MagneticField* field) const;
57
58 /**
59 * This method returns the (Cartesian) momentum from the PerigeeTrajectoryParameters
60 */
61
62 GlobalVector momentumFromPerigee (const PerigeeTrajectoryParameters& parameters,
63 double pt,
64 const GlobalPoint& referencePoint) const;
65
66 /**
67 * This method returns the charge.
68 */
69
70 TrackCharge chargeFromPerigee(const PerigeeTrajectoryParameters& perigee) const;
71
72 CurvilinearTrajectoryError curvilinearError(const PerigeeTrajectoryError& perigeeError,
73 const GlobalTrajectoryParameters& gtp) const;
74
75
76 /**
77 * Public constructor.
78 * This constructor takes a momentum, with parameters
79 * (transverse curvature, theta, phi) and a position, which is both the
80 * reference position and the position at which the momentum is defined.
81 * The covariance matrix is defined for these 6 parameters, in the order
82 * (x, y, z, transverse curvature, theta, phi).
83 */
84 TrajectoryStateClosestToPoint trajectoryStateClosestToPoint
85 (const AlgebraicVector3& momentum, const GlobalPoint& referencePoint,
86 const TrackCharge& charge, const AlgebraicSymMatrix66& theCovarianceMatrix,
87 const MagneticField* field) const;
88
89
90 /**
91 * Jacobians of tranformations between the parametrixation
92 * (x, y, z, transverse curvature, theta, phi) to Cartesian
93 */
94
95 AlgebraicMatrix66 jacobianParameters2Cartesian
96 (const AlgebraicVector3& momentum, const GlobalPoint& position,
97 const TrackCharge& charge, const MagneticField* field) const;
98
99
100
101
102 /**
103 * Jacobians of tranformations between curvilinear frame at point of closest
104 * approach in transverse plane and perigee frame. The fts must therefore be
105 * given at exactly this point in order to yield the correct Jacobians.
106 */
107
108 AlgebraicMatrix55 jacobianCurvilinear2Perigee(const FreeTrajectoryState& fts) const;
109
110 AlgebraicMatrix55 jacobianPerigee2Curvilinear(const GlobalTrajectoryParameters& gtp) const;
111
112
113 // AlgebraicMatrix jacobianHelix2Perigee(const reco::helix::Parameters & helixPar,
114 // const reco::helix::Covariance & helixCov) const;
115
116
117 };
118 #endif