File indexing completed on 2025-01-18 10:10:39
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef ROOT7_REvePathMark
0013 #define ROOT7_REvePathMark
0014
0015 #include <ROOT/REveVector.hxx>
0016
0017 namespace ROOT {
0018 namespace Experimental {
0019
0020
0021
0022
0023
0024 template <typename TT>
0025 class REvePathMarkT {
0026 public:
0027 enum EType_e { kReference, kDaughter, kDecay, kCluster2D, kLineSegment };
0028
0029 EType_e fType;
0030 REveVectorT<TT> fV;
0031 REveVectorT<TT> fP;
0032 REveVectorT<TT> fE;
0033 TT fTime;
0034
0035 REvePathMarkT(EType_e type = kReference) : fType(type), fV(), fP(), fE(), fTime(0) {}
0036
0037 REvePathMarkT(EType_e type, const REveVectorT<TT> &v, TT time = 0) : fType(type), fV(v), fP(), fE(), fTime(time) {}
0038
0039 REvePathMarkT(EType_e type, const REveVectorT<TT> &v, const REveVectorT<TT> &p, TT time = 0)
0040 : fType(type), fV(v), fP(p), fE(), fTime(time)
0041 {
0042 }
0043
0044 REvePathMarkT(EType_e type, const REveVectorT<TT> &v, const REveVectorT<TT> &p, const REveVectorT<TT> &e,
0045 TT time = 0)
0046 : fType(type), fV(v), fP(p), fE(e), fTime(time)
0047 {
0048 }
0049
0050 template <typename OO>
0051 REvePathMarkT(const REvePathMarkT<OO> &pm)
0052 : fType((EType_e)pm.fType), fV(pm.fV), fP(pm.fP), fE(pm.fE), fTime(pm.fTime)
0053 {
0054 }
0055
0056 const char *TypeName();
0057 };
0058
0059 typedef REvePathMarkT<Float_t> REvePathMark;
0060 typedef REvePathMarkT<Float_t> REvePathMarkF;
0061 typedef REvePathMarkT<Double_t> REvePathMarkD;
0062
0063 }
0064 }
0065
0066 #endif