Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
KFPVertex.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file KFPVertex.h
1 /*
2  * This file is part of KFParticle package
3  * Copyright (C) 2007-2019 FIAS Frankfurt Institute for Advanced Studies
4  * 2007-2019 Goethe University of Frankfurt
5  * 2007-2019 Ivan Kisel <I.Kisel@compeng.uni-frankfurt.de>
6  * 2007-2019 Maksym Zyzak
7  *
8  * KFParticle is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * KFParticle is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program. If not, see <https://www.gnu.org/licenses/>.
20  */
21 
22 #ifndef KFPVertex_H
23 #define KFPVertex_H
24 
39 class KFPVertex
40 {
41  public:
42  KFPVertex();
43  ~KFPVertex() { }
44 
45 /* KFPVertex(const KFPVertex& vVert);
46  KFPVertex& operator=(const KFPVertex& vVert);*/
47 
48  float GetX() const { return fP[0]; }
49  float GetY() const { return fP[1]; }
50  float GetZ() const { return fP[2]; }
51 
53  void GetXYZ(float *position) const {position[0] = fP[0]; position[1] = fP[1]; position[2] = fP[2];}
55  void GetXYZ(double *position) const {position[0] = fP[0]; position[1] = fP[1]; position[2] = fP[2];}
56  void GetCovarianceMatrix(float *covmatrix) const
57  {
61  for (int i=0; i<6; i++)
62  covmatrix[i] = fC[i];
63  }
64  void GetCovarianceMatrix(double *covmatrix) const
65  {
69  for (int i=0; i<6; i++)
70  covmatrix[i] = fC[i];
71  }
72 
73  float GetChi2perNDF() const { return fChi2/fNDF; }
74  float GetChi2() const { return fChi2; }
75  int GetNDF() const { return fNDF; }
76  int GetNContributors() const { return fNContributors; }
77 
78  float GetParameter(int i) const { return fP[i]; }
79  float GetCovariance(int i) const { return fC[i]; }
80 
84  void SetXYZ(float *position) { fP[0] = position[0]; fP[1] = position[1]; fP[2] = position[2]; }
90  void SetXYZ(float x, float y, float z) { fP[0] = x; fP[1] = y; fP[2] = z; }
91  void SetX(float x) { fP[0] = x; }
92  void SetY(float y) { fP[1] = y; }
93  void SetZ(float z) { fP[2] = z; }
94  void SetChi2(float chi) { fChi2 = chi; }
95  void SetNDF(int ndf) { fNDF = ndf; }
96  void SetNContributors(int nc) { fNContributors = nc; }
97 
98  void SetCovarianceMatrix(float *C)
99  {
103  for (int i=0; i<6; i++)
104  fC[i] = C[i];
105  }
106 
107  void SetCovarianceMatrix(float C00,float C10,float C11,float C20,float C21,float C22)
108  {
117  fC[0] = C00;
118  fC[1] = C10;
119  fC[2] = C11;
120  fC[3] = C20;
121  fC[4] = C21;
122  fC[5] = C22;
123  }
124 
125  private:
126 
127  float fP[3];
128  float fC[6];
129  float fChi2;
131  int fNDF;
132 };
133 
134 #endif