00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TEvePathMark
00013 #define ROOT_TEvePathMark
00014
00015 #include <TEveVector.h>
00016
00017
00018
00019
00020
00021 template <typename TT>
00022 class TEvePathMarkT
00023 {
00024 public:
00025 enum EType_e { kReference, kDaughter, kDecay, kCluster2D };
00026
00027 EType_e fType;
00028 TEveVectorT<TT> fV;
00029 TEveVectorT<TT> fP;
00030 TEveVectorT<TT> fE;
00031 TT fTime;
00032
00033 TEvePathMarkT(EType_e type=kReference) :
00034 fType(type), fV(), fP(), fE(), fTime(0) {}
00035
00036 TEvePathMarkT(EType_e type, const TEveVectorT<TT>& v, TT time=0) :
00037 fType(type), fV(v), fP(), fE(), fTime(time) {}
00038
00039 TEvePathMarkT(EType_e type, const TEveVectorT<TT>& v, const TEveVectorT<TT>& p, TT time=0) :
00040 fType(type), fV(v), fP(p), fE(), fTime(time) {}
00041
00042 TEvePathMarkT(EType_e type, const TEveVectorT<TT>& v, const TEveVectorT<TT>& p, const TEveVectorT<TT>& e, TT time=0) :
00043 fType(type), fV(v), fP(p), fE(e), fTime(time) {}
00044
00045 const char* TypeName();
00046
00047 ClassDefNV(TEvePathMarkT, 1);
00048 };
00049
00050 typedef TEvePathMarkT<Float_t> TEvePathMark;
00051 typedef TEvePathMarkT<Float_t> TEvePathMarkF;
00052 typedef TEvePathMarkT<Double_t> TEvePathMarkD;
00053
00054 #endif