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

# User Rev Content
1 econte 1.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