Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TEvePathMark.h
Go to the documentation of this file.
1 // @(#)root/eve:$Id$
2 // Author: Matevz Tadel 2010
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TEvePathMark
13 #define ROOT_TEvePathMark
14 
15 #include <TEveVector.h>
16 
17 //==============================================================================
18 // TEvePathMark
19 //==============================================================================
20 
21 template <typename TT>
22 class TEvePathMarkT
23 {
24 public:
25  enum EType_e { kReference, kDaughter, kDecay, kCluster2D, kLineSegment };
26 
27  EType_e fType; // Mark-type.
28  TEveVectorT<TT> fV; // Vertex.
29  TEveVectorT<TT> fP; // Momentum.
30  TEveVectorT<TT> fE; // Extra, meaning depends on fType.
31  TT fTime; // Time.
32 
33  TEvePathMarkT(EType_e type=kReference) :
34  fType(type), fV(), fP(), fE(), fTime(0) {}
35 
36  TEvePathMarkT(EType_e type, const TEveVectorT<TT>& v, TT time=0) :
37  fType(type), fV(v), fP(), fE(), fTime(time) {}
38 
39  TEvePathMarkT(EType_e type, const TEveVectorT<TT>& v, const TEveVectorT<TT>& p, TT time=0) :
40  fType(type), fV(v), fP(p), fE(), fTime(time) {}
41 
42  TEvePathMarkT(EType_e type, const TEveVectorT<TT>& v, const TEveVectorT<TT>& p, const TEveVectorT<TT>& e, TT time=0) :
43  fType(type), fV(v), fP(p), fE(e), fTime(time) {}
44 
45  template <typename OO>
46  TEvePathMarkT(const TEvePathMarkT<OO>& pm) :
47  fType((EType_e)pm.fType), fV(pm.fV), fP(pm.fP), fE(pm.fE), fTime(pm.fTime) {}
48 
49  const char* TypeName();
50 
51  ClassDefNV(TEvePathMarkT, 1); // Template for a special point on a track: position/momentum reference, daughter creation or decay.
52 };
53 
54 typedef TEvePathMarkT<Float_t> TEvePathMark;
55 typedef TEvePathMarkT<Float_t> TEvePathMarkF;
56 typedef TEvePathMarkT<Double_t> TEvePathMarkD;
57 
58 #endif