FairRoot/PandaRoot
KFPTrack.h
Go to the documentation of this file.
1 #ifndef KFPTrack_H
2 #define KFPTrack_H
3 
4 #include <cmath>
5 
6 class KFPTrack
7 {
8 
9 public:
10  KFPTrack() { }
11  ~KFPTrack() { }
12 
13  int GetID() const { return ID; }
14 
15  bool GetXYZPxPyPz(float *p) const
16  {
17  for(int i=0; i<6; i++)
18  p[i] = fP[i];
19  return 1;
20  }
21  bool GetCovarianceXYZPxPyPz(float cv[21]) const
22  {
23  for (int i=0; i<21; i++)
24  cv[i] = fC[i];
25  return 1;
26  }
27 
28  bool GetCovarianceXYZPxPyPz(double cv[21]) const
29  {
30  for (int i=0; i<21; i++)
31  cv[i] = fC[i];
32  return 1;
33  }
34 
35 // void GetXYZ(float *position) {position[0] = fP[0]; position[1] = fP[1]; position[1] = fP[1];}
36  void GetXYZ(float *position) const {position[0] = fP[0]; position[1] = fP[1]; position[2] = fP[2];}
37  void GetPxPyPz(float *position) const {position[0] = fP[3]; position[1] = fP[4]; position[2] = fP[5];}
38 
39  void XvYvZv(float *position) const {position[0] = fP[0]; position[1] = fP[1]; position[2] = fP[2];}
40  void PxPyPz(float *position) const {position[0] = fP[3]; position[1] = fP[4]; position[2] = fP[5];}
41  void XvYvZv(double *position) const {position[0] = fP[0]; position[1] = fP[1]; position[2] = fP[2];}
42  void PxPyPz(double *position) const {position[0] = fP[3]; position[1] = fP[4]; position[2] = fP[5];}
43 
44  float GetX() const { return fP[0]; }
45  float GetY() const { return fP[1]; }
46  float GetZ() const { return fP[2]; }
47  float GetPx() const { return fP[3]; }
48  float GetPy() const { return fP[4]; }
49  float GetPz() const { return fP[5]; }
50 
51  float GetPt() const { return sqrt(fP[3]*fP[3]+fP[4]*fP[4]); }
52  float GetP() const { return sqrt(fP[3]*fP[3]+fP[4]*fP[4]+fP[5]*fP[5]); }
53 
54  void GetCovarianceMatrix(float *covmatrix)
55  {
56  for (int i=0; i<21; i++)
57  covmatrix[i] = fC[i];
58  }
59  float GetParameter(int i) const { return fP[i]; }
60  float GetCovariance(int i) const { return fC[i]; }
61 
62  int Charge() const { return fQ; }
63  float GetChi2perNDF() const { return fChi2/fNDF; }
64  float GetChi2() const { return fChi2; }
65  int GetNDF() const { return fNDF; }
66 
67  const float * GetTrack() const { return fP; }
68  const float * GetCovMatrix() const { return fC; }
69 
70  void SetParameters(float *position)
71  {
72  for(int i=0; i<6; i++)
73  fP[i] = position[i];
74  }
75  void SetParameters(float x, float y, float z, float px, float py, float pz)
76  {
77  fP[0] = x; fP[1] = y; fP[2] = z;
78  fP[3] = px; fP[4] = py; fP[5] = pz;
79  }
80  void SetXYZ(float x, float y, float z)
81  {
82  fP[0] = x; fP[1] = y; fP[2] = z;
83  }
84  void SetPxPyPz(float px, float py, float pz)
85  {
86  fP[3] = px; fP[4] = py; fP[5] = pz;
87  }
88  void SetID(int id) {ID = id;}
89 
90  void SetX(float x) { fP[0] = x; }
91  void SetY(float y) { fP[1] = y; }
92  void SetZ(float z) { fP[2] = z; }
93  void SetPx(float px) { fP[3] = px; }
94  void SetPy(float py) { fP[4] = py; }
95  void SetPz(float pz) { fP[5] = pz; }
96  void SetCharge(int q) { fQ = q; }
97  void SetChi2(float chi) { fChi2 = chi; }
98  void SetNDF(int ndf) { fNDF = ndf; }
99 
100  void SetCovarianceMatrix(const float *C)
101  {
102  for (int i=0; i<21; i++)
103  fC[i] = C[i];
104  }
105 
106  void RotateXY( float alpha ); // rotate on alpha in XY plane. Should be usefull for CS change
107 
108  int Id() const { return fId; };
109  void SetId( int id ){ fId = id; };
110 
111  private:
112 
113  int ID;
114  float fP[6]; //coordinates of the vertex
115  float fC[21]; //Covariance matrix of the vertex parameters
116  float fChi2; //chi-square of the vertex fitting
117  int fQ; //charge
118  int fNDF; //degree of freedom number
119 
120  int fId;
121 };
122 
123 #endif
float GetParameter(int i) const
Definition: KFPTrack.h:59
float GetY() const
Definition: KFPTrack.h:45
void SetCovarianceMatrix(const float *C)
Definition: KFPTrack.h:100
void SetXYZ(float x, float y, float z)
Definition: KFPTrack.h:80
Double_t p
Definition: anasim.C:58
int fQ
Definition: KFPTrack.h:117
float GetPz() const
Definition: KFPTrack.h:49
int Id() const
Definition: KFPTrack.h:108
void GetXYZ(float *position) const
Definition: KFPTrack.h:36
Int_t i
Definition: run_full.C:25
float GetPt() const
Definition: KFPTrack.h:51
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
void SetZ(float z)
Definition: KFPTrack.h:92
void SetNDF(int ndf)
Definition: KFPTrack.h:98
float GetZ() const
Definition: KFPTrack.h:46
void PxPyPz(double *position) const
Definition: KFPTrack.h:42
void SetY(float y)
Definition: KFPTrack.h:91
void SetX(float x)
Definition: KFPTrack.h:90
int fNDF
Definition: KFPTrack.h:118
int Charge() const
Definition: KFPTrack.h:62
void XvYvZv(double *position) const
Definition: KFPTrack.h:41
void SetPx(float px)
Definition: KFPTrack.h:93
float GetX() const
Definition: KFPTrack.h:44
void SetID(int id)
Definition: KFPTrack.h:88
void SetId(int id)
Definition: KFPTrack.h:109
bool GetXYZPxPyPz(float *p) const
Definition: KFPTrack.h:15
const float * GetTrack() const
Definition: KFPTrack.h:67
int Pic_FED Eff_lEE C()
int ID
Definition: KFPTrack.h:109
float GetP() const
Definition: KFPTrack.h:52
Double_t z
void SetParameters(float *position)
Definition: KFPTrack.h:70
float fP[6]
Definition: KFPTrack.h:114
int fId
Definition: KFPTrack.h:120
float fC[21]
Definition: KFPTrack.h:115
bool GetCovarianceXYZPxPyPz(float cv[21]) const
Definition: KFPTrack.h:21
float GetPx() const
Definition: KFPTrack.h:47
bool GetCovarianceXYZPxPyPz(double cv[21]) const
Definition: KFPTrack.h:28
void SetPy(float py)
Definition: KFPTrack.h:94
Double_t x
void SetPz(float pz)
Definition: KFPTrack.h:95
void SetPxPyPz(float px, float py, float pz)
Definition: KFPTrack.h:84
void PxPyPz(float *position) const
Definition: KFPTrack.h:40
void GetCovarianceMatrix(float *covmatrix)
Definition: KFPTrack.h:54
~KFPTrack()
Definition: KFPTrack.h:11
KFPTrack()
Definition: KFPTrack.h:10
void SetParameters(float x, float y, float z, float px, float py, float pz)
Definition: KFPTrack.h:75
const float * GetCovMatrix() const
Definition: KFPTrack.h:68
int GetID() const
Definition: KFPTrack.h:13
float GetChi2perNDF() const
Definition: KFPTrack.h:63
Double_t y
double alpha
Definition: f_Init.h:9
float GetCovariance(int i) const
Definition: KFPTrack.h:60
void XvYvZv(float *position) const
Definition: KFPTrack.h:39
float GetPy() const
Definition: KFPTrack.h:48
void RotateXY(float alpha)
Definition: KFPTrack.cxx:7
void GetPxPyPz(float *position) const
Definition: KFPTrack.h:37
float fChi2
Definition: KFPTrack.h:116
void SetChi2(float chi)
Definition: KFPTrack.h:97
int GetNDF() const
Definition: KFPTrack.h:65
float GetChi2() const
Definition: KFPTrack.h:64
double pz[39]
Definition: pipisigmas.h:14
void SetCharge(int q)
Definition: KFPTrack.h:96