FairRoot
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FairTrackParH.h
Go to the documentation of this file.
1 /********************************************************************************
2  * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
3  * *
4  * This software is distributed under the terms of the *
5  * GNU Lesser General Public Licence (LGPL) version 3, *
6  * copied verbatim in the file "LICENSE" *
7  ********************************************************************************/
8 // Class for the representation of a track as helix (SC system)
9 //
10 // Authors: M. Al-Turany, A. Fontana, L. Lavezzi and A. Rotondi
11 //
12 //
13 // GEANE parameters (q/p, lambda, phi, y_perp, z_perp) of Helix track
14 // The Helix can be constructed using the Helix parameter (1/p, lambda, phi,y_perp,z_perp) in SC reference
15 // and the covariance matrix. Or using position and momentum in LAB referance.
16 
17 #ifndef FAIRSTSTRACKPARH
18 #define FAIRSTSTRACKPARH 1
19 
20 #include <Rtypes.h> // for THashConsistencyHolder, ClassDef
21 #include <RtypesCore.h> // for Double_t, Int_t, Option_t
22 #include <TVector3.h> // for TVector3
23 #include "FairTrackPar.h" // for FairTrackPar
24 class FairTrackParP; // lines 25-25
25 class TBuffer;
26 class TClass;
27 class TMemberInspector;
28 
29 
31 {
32  public:
34  FairTrackParH();
35 
37  FairTrackParH(Double_t x,
38  Double_t y,
39  Double_t z,
40  Double_t lambda,
41  Double_t phi,
42  Double_t qp,
43  Double_t CovMatrix[15]);
44 
47  FairTrackParH(TVector3 pos, TVector3 Mom, TVector3 posErr, TVector3 MomErr, Int_t q);
48 
50  FairTrackParH(FairTrackPar& Trkbase);
51 
52  // FairTrackParH(FairTrackParH &Trk);
53 
54  FairTrackParH(FairTrackParP* parab, Int_t& ierr);
55 
57  virtual ~FairTrackParH();
58 
60  // void Print();
61  virtual void Print(Option_t* option = "") const;
62 
64  Double_t GetLambda() { return fLm; };
65  Double_t GetPhi() { return fPhi; };
66  Double_t GetDLambda();
67  Double_t GetDPhi();
69  void GetCov(Double_t* Cov)
70  {
71  for (Int_t i = 0; i < 15; i++) {
72  Cov[i] = fCovMatrix[i];
73  }
74  }
75  void GetCovQ(Double_t* CovQ);
76  // MARS
77  void GetMARSCov(Double_t Cov66[6][6])
78  {
79  for (Int_t i = 0; i < 6; i++)
80  for (Int_t j = 0; j < 6; j++) {
81  Cov66[i][j] = fCovMatrix66[i][j];
82  }
83  }
84  Double_t GetDX_sc();
85  Double_t GetDY_sc();
86  Double_t GetDZ_sc();
87  Double_t GetX_sc() { return fX_sc; }
88  Double_t GetY_sc() { return fY_sc; }
89  Double_t GetZ_sc() { return fZ_sc; }
90  // Double_t GetDPx() ; /**Get error in Px (in SC frame)*/
91  // Double_t GetDPy() ; /**Get error in Py (in SC frame)*/
92  // Double_t GetDPz() ; /**Get error in Pz (in SC frame)*/
93  // Double_t GetDQp() ; /**Get error in Q/P*/
94  Double_t GetX();
95  Double_t GetY();
96  Double_t GetZ();
99  void SetLambda(Double_t Lm) { fLm = Lm; };
100  void SetPhi(Double_t Phi) { fPhi = Phi; };
101 
102  void SetDLambda(Double_t DLm) { fDLm = DLm; };
103  void SetDPhi(Double_t DPhi) { fDPhi = DPhi; };
104 
105  void SetX_sc(Double_t x) { fX_sc = x; }
106  void SetY_sc(Double_t y) { fY_sc = y; }
107  void SetZ_sc(Double_t z) { fZ_sc = z; }
108  void SetCov(Double_t* Cov)
109  {
110  for (Int_t i = 0; i < 15; i++) {
111  fCovMatrix[i] = Cov[i];
112  }
113  }
114  void SetTrackPar(Double_t x,
115  Double_t y,
116  Double_t z,
117  Double_t Px,
118  Double_t Py,
119  Double_t Pz,
120  Int_t Q,
121  Double_t CovMatrix[15]);
122 
123  void
124  SetTrackPar(Double_t x, Double_t y, Double_t z, Double_t pq, Double_t lm, Double_t phi, Double_t CovMatrix[15]);
125  void Reset();
127 
128  private:
130  Double_t fLm;
132  Double_t fPhi;
134  Double_t fDLm;
136  Double_t fDPhi;
138  Double_t fX_sc, fY_sc, fZ_sc;
140  Double_t fDX_sc, fDY_sc, fDZ_sc;
142  Double_t fCovMatrix[15];
143  // in MARS
144  Double_t fCovMatrix66[6][6];
145 
147  void CalCov();
148 
155 
156  Double_t cLm, sLm, cphi, sphi;
157 };
158 
159 #endif
void SetDPhi(Double_t DPhi)
Double_t GetY_sc()
Definition: FairTrackParH.h:88
void GetCovQ(Double_t *CovQ)
void SetLambda(Double_t Lm)
Definition: FairTrackParH.h:99
Double_t GetLambda()
Definition: FairTrackParH.h:64
virtual void Print(Option_t *option="") const
Double_t GetDPhi()
Double_t GetY()
virtual ~FairTrackParH()
void SetDLambda(Double_t DLm)
Double_t GetX()
Double_t GetDZ_sc()
Double_t GetZ()
void SetZ_sc(Double_t z)
void SetY_sc(Double_t y)
Double_t GetDX_sc()
Double_t GetZ_sc()
Definition: FairTrackParH.h:89
Double_t GetDY_sc()
void GetCov(Double_t *Cov)
Definition: FairTrackParH.h:69
void GetMARSCov(Double_t Cov66[6][6])
Definition: FairTrackParH.h:77
Double_t GetPhi()
Definition: FairTrackParH.h:65
Double_t GetDLambda()
ClassDef(FairTrackParH, 1)
Double_t GetX_sc()
Definition: FairTrackParH.h:87
void SetTrackPar(Double_t x, Double_t y, Double_t z, Double_t Px, Double_t Py, Double_t Pz, Int_t Q, Double_t CovMatrix[15])
void SetPhi(Double_t Phi)
void SetX_sc(Double_t x)
void SetCov(Double_t *Cov)