00001
00002
00003
00004
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
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065 #ifndef StMcVertex_hh
00066 #define StMcVertex_hh
00067 #include "StMcContainers.hh"
00068 #include "Stiostream.h"
00069 #include "StObject.h"
00070 #include "TString.h"
00071 #include "StThreeVectorF.hh"
00072
00073 class g2t_vertex_st;
00074
00075 class StMcVertex : public StObject {
00076 public:
00077 StMcVertex();
00078 StMcVertex(g2t_vertex_st*);
00079 ~StMcVertex();
00080
00081 int operator==(const StMcVertex&) const;
00082 int operator!=(const StMcVertex&) const;
00083
00084
00085
00086 const StThreeVectorF& position() const { return *&mPosition;}
00087 StPtrVecMcTrack& daughters() { return *&mDaughters; }
00088 const StPtrVecMcTrack& daughters() const { return *&mDaughters; }
00089 unsigned int numberOfDaughters() { return mDaughters.size(); }
00090 unsigned int numberOfDaughters() const { return mDaughters.size(); }
00091 StMcTrack* daughter(unsigned int i) { return (i < mDaughters.size() ? mDaughters[i] : 0); }
00092 const StMcTrack* daughter(unsigned int i) const { return (i < mDaughters.size() ? mDaughters[i] : 0); }
00093 const StMcTrack* parent() const { return mParent; }
00094 TString const &geantVolume() const { return *&mGeantVolume; }
00095 float tof() const { return mTof; }
00096 long geantProcess() const { return mGeantProcess; }
00097 long geantMedium() const { return mGeantMedium; }
00098 long generatorProcess() const { return mGeneratorProcess; }
00099 long key() const { return mKey; }
00100
00101
00102
00103 void setPosition(const StThreeVectorF&);
00104 void setParent(StMcTrack* );
00105 void addDaughter(StMcTrack*);
00106 void setGeantVolume(const Char_t *name);
00107 void setTof(float);
00108 void setGeantProcess(int);
00109 void removeDaughter(StMcTrack*);
00110 virtual void Print(Option_t *option="") const;
00111 protected:
00112
00113 StThreeVectorF mPosition;
00114 StPtrVecMcTrack mDaughters;
00115 StMcTrack* mParent;
00116 TString mGeantVolume;
00117 float mTof;
00118 long mGeantProcess;
00119 long mGeneratorProcess;
00120 long mKey;
00121 long mGeantMedium;
00122 ClassDef(StMcVertex,1)
00123 };
00124 ostream& operator<<(ostream& os, const StMcVertex&);
00125 #endif