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