ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitEdm/VertexFitInterface/interface/TrackParameters.h
Revision: 1.3
Committed: Wed Sep 10 03:28:38 2008 UTC (16 years, 8 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.2: +5 -5 lines
Log Message:
Cleanup.

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id: TrackParameters.h,v 1.2 2008/08/29 00:27:22 loizides Exp $
3 //
4 // Description: class TrackParameters
5 //
6 // Class to manage track parameters of different conventions and convert one into the other. This is
7 // not really done very well and could be done more efficient but this is what it is for the moment.
8 //
9 // Original Author: Christoph Paus
10 // Created: Thu Aug 21 02:29:00 CEST 2008
11 //
12 // -------------------------------------------------------------------------------------------------
13 // CMS parameter ordering for the vector/matrix, which is assumed here:
14 //
15 // qoverp, lambda, phi0, dxy, dsz; (lambda = pi/2 - theta)
16 // mapping to CDF is therefore { 1*, 0*, 4, 3, 2* }, where * indicates that a transformation is
17 // needed
18 //
19 // Note that the radius of curvature (in cm) is then:
20 //
21 // Rc = cos(theta) / [ 0.0029979.... * (q/p) * B ],
22 //
23 // where B is the magnetic field in Tesla and tht is the angle between the field and the
24 // direction. With p * cos(theta) = pT it follows:
25 //
26 // Rc = pT / [ 0.0029979.... * q * B ],
27 // fullCurvature = 1 / Rc = 0.0029979 * q * B / pT = - 0.0029979 * B / pT.
28 //
29 // see the conventions for the MultiVertexFitter in its own header file.
30 //
31 // Author: C.Paus
32 //--------------------------------------------------------------------------------------------------
33
34 #ifndef MITEDM_VERTEXFITINTERFACE_TRACKPARAMETERS_H
35 #define MITEDM_VERTEXFITINTERFACE_TRACKPARAMETERS_H
36
37 #include <TMatrixDSym.h>
38 #include <TVectorD.h>
39 #include "DataFormats/TrackReco/interface/Track.h"
40
41 namespace mitedm
42 {
43 // Define existing track parameter conventions
44 enum TrackConvention { iCms, iMvf };
45
46 // Declare the track parameter class
47 class TrackParameters
48 {
49 public:
50 TrackParameters() {}
51 TrackParameters(const reco::Track *trk, TrackConvention tcv = iCms, double bField = 3.8);
52 TrackParameters(const TrackParameters &trk);
53 ~TrackParameters() {};
54
55 // Access the specific contents
56 const TVectorD *pars () const { return &pars_; };
57 double pars (int i) const { return pars_[i]; };
58 const TMatrixDSym *cMat () const { return &cMat_; };
59 double cMat (int i, int j) const { return cMat_(i,j); };
60
61 // Access the different parametrizations independently of the local storage
62 TrackParameters cmsTrack() const;
63 TrackParameters mvfTrack() const;
64
65 void setPars (int i, double v) { pars_(i) = v; }
66 void setCMat (int i, int j, double v) { cMat_(i,j) = v; }
67 void addCMat (int i, int j, double v) { cMat_(i,j) += v; }
68
69 // Utilities
70 void print () const;
71
72 private:
73 TrackConvention iConvention_; // track parameter convention (def. CMS)
74 double bField_; // magnetic field in Tesla
75 double fCurv_; // combined curvature constant
76 TVectorD pars_; // track paramters (helix)
77 TMatrixDSym cMat_; // corresponding covariance matrix (sig_i * sig_j)
78 };
79 }
80 #endif