EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FairTrackParH.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file FairTrackParH.h
1 // Class for the representation of a track as helix (SC system)
2 //
3 // Authors: M. Al-Turany, A. Fontana, L. Lavezzi and A. Rotondi
4 //
5 //
6 // GEANE parameters (q/p, lambda, phi, y_perp, z_perp) of Helix track
7 // The Helix can be constructed using the Helix parameter (1/p, lambda, phi,y_perp,z_perp) in SC reference
8 // and the covariance matrix. Or using position and momentum in LAB referance.
9 
10 #ifndef FAIRSTSTRACKPARH
11 #define FAIRSTSTRACKPARH 1
12 
13 #include "FairTrackPar.h"
14 #include "FairTrackParP.h"
15 
16 #include "TVector3.h"
17 
18 class FairTrackParP;
19 
21 {
22 
23  public:
24 
26  FairTrackParH();
27 
29  FairTrackParH(Double_t x, Double_t y, Double_t z,
30  Double_t lambda, Double_t phi, Double_t qp,
31  Double_t CovMatrix[15]);
32 
35  FairTrackParH(TVector3 pos, TVector3 Mom, TVector3 posErr, TVector3 MomErr, Int_t q);
36 
38  FairTrackParH(FairTrackPar& Trkbase);
39 
40  //FairTrackParH(FairTrackParH &Trk);
41 
42  FairTrackParH(FairTrackParP* parab, Int_t& ierr);
43 
45  virtual ~FairTrackParH();
46 
48 // void Print();
49  virtual void Print(Option_t* option = "") const;
50 
52  Double_t GetLambda() { return fLm; };
53  Double_t GetPhi() { return fPhi; };
54  Double_t GetDLambda() ;
55  Double_t GetDPhi() ;
57  void GetCov(Double_t* Cov) {for(Int_t i=0; i<15; i++) { Cov[i]=fCovMatrix[i]; }}
58  void GetCovQ(Double_t* CovQ);
59  // MARS
60  void GetMARSCov(Double_t Cov66[6][6]) {for(Int_t i=0; i<6; i++) for(Int_t j=0; j<6; j++) { Cov66[i][j] = fCovMatrix66[i][j]; } }
61  Double_t GetDX_sc();
62  Double_t GetDY_sc();
63  Double_t GetDZ_sc();
64  Double_t GetX_sc() {return fX_sc;}
65  Double_t GetY_sc() {return fY_sc;}
66  Double_t GetZ_sc() {return fZ_sc;}
67 // Double_t GetDPx() ; /**Get error in Px (in SC frame)*/
68 // Double_t GetDPy() ; /**Get error in Py (in SC frame)*/
69 // Double_t GetDPz() ; /**Get error in Pz (in SC frame)*/
70 // Double_t GetDQp() ; /**Get error in Q/P*/
71  Double_t GetX();
72  Double_t GetY();
73  Double_t GetZ();
78  void SetLambda(Double_t Lm ) { fLm = Lm; };
79  void SetPhi(Double_t Phi) { fPhi = Phi; };
80 
81  void SetDLambda(Double_t DLm ) { fDLm = DLm; };
82  void SetDPhi(Double_t DPhi) { fDPhi = DPhi; };
83 
84  void SetX_sc(Double_t x) {fX_sc =x;}
85  void SetY_sc(Double_t y) {fY_sc =y;}
86  void SetZ_sc(Double_t z) {fZ_sc =z;}
87  void SetCov(Double_t* Cov) {for(Int_t i=0; i<15; i++) { fCovMatrix[i]=Cov[i]; }}
88  void SetTrackPar(Double_t x, Double_t y, Double_t z,
89  Double_t Px, Double_t Py, Double_t Pz, Int_t Q,
90  Double_t CovMatrix[15]);
91 
92  void SetTrackPar(Double_t x, Double_t y, Double_t z,
93  Double_t pq, Double_t lm, Double_t phi, Double_t CovMatrix[15]);
94  void Reset();
96 
97 
98  private:
99 
101  Double_t fLm;
103  Double_t fPhi;
105  Double_t fDLm;
107  Double_t fDPhi;
109  Double_t fX_sc, fY_sc, fZ_sc;
111  Double_t fDX_sc, fDY_sc, fDZ_sc;
113  Double_t fCovMatrix[15];
114  // in MARS
115  Double_t fCovMatrix66[6][6];
116 
118  void CalCov();
119 
126 
127  Double_t cLm,sLm, cphi ,sphi;
128 
129 };
130 
131 
132 #endif