00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 #ifndef StKinkVertex_hh
00047 #define StKinkVertex_hh
00048 #include "StVertex.h"
00049
00050 class StParticleDefinition;
00051
00052 class StKinkVertex : public StVertex {
00053 public:
00054 StKinkVertex();
00055
00056
00057 ~StKinkVertex();
00058
00059 StVertexId type() const;
00060 unsigned int numberOfDaughters() const;
00061 StTrack* daughter(unsigned int = 0);
00062 const StTrack* daughter(unsigned int = 0) const;
00063 StPtrVecTrack daughters(StTrackFilter&);
00064
00065 StParticleDefinition* pidParent() const;
00066 StParticleDefinition* pidDaughter() const;
00067 unsigned short geantIdParent() const;
00068 unsigned short geantIdDaughter() const;
00069 float dcaParentDaughter() const;
00070 float dcaDaughterPrimaryVertex() const;
00071 float dcaParentPrimaryVertex() const;
00072 float hitDistanceParentDaughter() const;
00073 float hitDistanceParentVertex() const;
00074 float dE(unsigned int i) const;
00075 float decayAngle() const;
00076 float decayAngleCM() const;
00077 const StThreeVectorF& parentMomentum() const;
00078 StThreeVectorF& parentMomentum();
00079 const StThreeVectorF& daughterMomentum() const;
00080 StThreeVectorF& daughterMomentum();
00081
00082 void setGeantIdParent(unsigned short);
00083 void setGeantIdDaughter(unsigned short);
00084 void setDcaParentDaughter(float);
00085 void setDcaDaughterPrimaryVertex(float);
00086 void setDcaParentPrimaryVertex(float);
00087 void setHitDistanceParentDaughter(float);
00088 void setHitDistanceParentVertex(float);
00089 void setdE(unsigned int, float);
00090 void setDecayAngle(float);
00091 void setDecayAngleCM(float);
00092 void setParentMomentum(const StThreeVectorF&);
00093 void setDaughterMomentum(const StThreeVectorF&);
00094 void addDaughter(StTrack*);
00095 void removeDaughter(StTrack*);
00096
00097 protected:
00098
00099 #ifdef __CINT__
00100 StObjLink mDaughter;
00101 #else
00102 StLink<StTrack> mDaughter;
00103 #endif //__CINT__
00104 UShort_t mParentGeantId;
00105 UShort_t mDaughterGeantId;
00106 Float_t mDcaParentDaughter;
00107 Float_t mDcaDaughterPrimaryVertex;
00108 Float_t mDcaParentPrimaryVertex;
00109 Float_t mHitDistanceParentDaughter;
00110 Float_t mHitDistanceParentVertex;
00111 Float_t mDeltaEnergy[3];
00112 Float_t mDecayAngle;
00113 Float_t mDecayAngleCM;
00114 StThreeVectorF mParentMomentum;
00115 StThreeVectorF mDaughterMomentum;
00116
00117 ClassDef(StKinkVertex,2)
00118 };
00119 #endif