86 #ifndef STAR_StFtpcVertex
87 #define STAR_StFtpcVertex
91 #include "TObjArray.h"
95 #include "St_DataSet.h"
115 StFtpcVertex(Double_t pos[6], Int_t iFlag = 0, Int_t
id = 0);
117 Int_t iFlag = 0, Int_t
id = 0);
119 Double_t x_err, Double_t y_err, Double_t z_err,
120 Int_t iFlag = 0, Int_t
id = 0);
125 Double_t GetX()
const {
return mCoord.X(); }
126 Double_t GetY()
const {
return mCoord.Y(); }
127 Double_t GetZ()
const {
return mCoord.Z(); }
128 Double_t GetAbsZ()
const {
return TMath::Abs(mCoord.Z()); }
129 Double_t GetXerr()
const {
return mError.X(); }
130 Double_t GetYerr()
const {
return mError.Y(); }
131 Double_t GetZerr()
const {
return mError.Z(); }
132 Double_t GetRadius2()
const {
return TMath::Sqrt(GetX()*GetX() + GetY()*GetY()); }
133 Double_t GetRadius3()
const {
return mCoord.Mag(); }
134 TVector3 GetCoord()
const {
return mCoord; }
135 TVector3 GetError()
const {
return mError; }
136 Int_t GetIFlag()
const {
return mIFlag; }
137 Int_t GetId()
const {
return mId; }
140 void SetX(Double_t f) { mCoord.SetX(f); }
141 void SetY(Double_t f) { mCoord.SetY(f); }
142 void SetZ(Double_t f) { mCoord.SetZ(f); }
143 void SetXerr(Double_t f) { mError.SetX(f); }
144 void SetYerr(Double_t f) { mError.SetY(f); }
145 void SetZerr(Double_t f) { mError.SetZ(f); }
146 void SetIFlag(Int_t f) { mIFlag = f; }
147 void SetId(Int_t f) { mId = f; }
149 void CheckXerr() {
if ( std::isnan( mError.x()) ) mError.SetX(0.); }
150 void CheckYerr() {
if ( std::isnan( mError.y()) ) mError.SetY(0.); }
151 void CheckZerr() {
if ( std::isnan( mError.z()) ) mError.SetZ(0.); }
152 void CheckErr() { CheckXerr(); CheckYerr(); CheckZerr(); }
153 Bool_t CoordIsNan() {
return (Bool_t)( std::isnan(GetX()) || std::isnan(GetY()) || std::isnan(GetZ())); }