78 #include "Riostream.h"
79 #include "StMeasuredPoint.h"
81 #include "StMatrixF.hh"
82 #include "StContainers.h"
92 int operator==(
const StVertex&)
const;
93 int operator!=(
const StVertex&)
const;
95 virtual StVertexId type()
const {
return mType; }
96 int flag()
const {
return mFlag; }
97 float chiSquared()
const {
return mChiSquared; }
98 float probChiSquared()
const {
return mProbChiSquared; }
100 void covarianceMatrix(
double covM[6])
const { std::copy(mCovariantMatrix, mCovariantMatrix + 6, covM); }
102 StTrack* parent() {
return mParent; }
103 const StTrack* parent()
const {
return mParent; }
104 virtual unsigned int numberOfDaughters()
const {NotImplemented(
"numberOfDaughters");
return 0;}
105 virtual unsigned int numberOfGoodTracks()
const {NotImplemented(
"numberOfGoodTracks");
return 0;}
106 virtual StTrack* daughter(
unsigned int) {NotImplemented(
"daughter");
return 0;}
107 virtual const StTrack* daughter(
unsigned int)
const {NotImplemented(
"daughter");
return 0;}
108 virtual StPtrVecTrack daughters(
StTrackFilter&) {NotImplemented(
"daughters");
return 0;}
110 virtual void setFlag(
int val) { mFlag = val; }
111 virtual void setCovariantMatrix(
float[6]);
112 void setCovariantMatrix(
const double val[6]) { std::copy(val, val+6, mCovariantMatrix); }
113 virtual void setChiSquared(
float val) { mChiSquared = val; }
114 virtual void setProbChiSquared(
float val) { mProbChiSquared = val; }
115 virtual void setParent(
StTrack*);
116 virtual void addDaughter(
StTrack*) = 0;
117 virtual void removeDaughter(
StTrack*) = 0;
118 int idTruth()
const {
return mIdTruth;}
119 int qaTruth()
const {
return mQuality; }
120 int idParent()
const {
return mIdParent;}
121 void setIdTruth(
int idtru,
int qatru=0) {mIdTruth = idtru; mQuality =
static_cast<unsigned short>(qatru);}
122 void setIdParent(Int_t
id) {mIdParent = id;}
125 virtual void setPrimaryVtx() {SETBIT(mFlag,kPrimaryVtxId);}
126 virtual void setV0Vtx() {SETBIT(mFlag,kV0VtxId);}
127 virtual void setXiVtx() {SETBIT(mFlag,kXiVtxId);}
128 virtual void setKinkVertex() {SETBIT(mFlag,kKinkVtxId);}
129 virtual void setBeamConstrained() {SETBIT(mFlag,kBEAMConstrVtxId);}
130 virtual void setRejected() {SETBIT(mFlag,kRejectedVtxId);}
132 bool isPrimaryVtx()
const {
return TESTBIT(mFlag,kPrimaryVtxId);}
133 bool isV0Vtx()
const {
return TESTBIT(mFlag,kV0VtxId);}
134 bool isXiVtx()
const {
return TESTBIT(mFlag,kXiVtxId);}
135 bool isKinkVertex()
const {
return TESTBIT(mFlag,kKinkVtxId);}
136 bool isBeamConstrained()
const {
return TESTBIT(mFlag,kBEAMConstrVtxId);}
137 bool isRejected()
const {
return TESTBIT(mFlag,kRejectedVtxId);}
138 void Print(Option_t *option=
"")
const {cout << option << *
this << endl; }
139 static void SetNoFitPointCutForGoodTrack(UInt_t val) {fgNoFitPointCutForGoodTrack = val;}
140 static UInt_t NoFitPointCutForGoodTrack() {
return fgNoFitPointCutForGoodTrack;}
143 void NotImplemented(
const char *method)
const;
149 Float_t mCovariantMatrix[6];
151 Float_t mProbChiSquared;
156 static UInt_t fgNoFitPointCutForGoodTrack;