Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/TEvePathMark.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // @(#)root/eve:$Id$
0002 // Author: Matevz Tadel 2010
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 
0012 #ifndef ROOT_TEvePathMark
0013 #define ROOT_TEvePathMark
0014 
0015 #include <TEveVector.h>
0016 
0017 //==============================================================================
0018 // TEvePathMark
0019 //==============================================================================
0020 
0021 template <typename TT>
0022 class TEvePathMarkT
0023 {
0024 public:
0025    enum EType_e { kReference, kDaughter, kDecay, kCluster2D, kLineSegment };
0026 
0027    EType_e         fType; // Mark-type.
0028    TEveVectorT<TT> fV;    // Vertex.
0029    TEveVectorT<TT> fP;    // Momentum.
0030    TEveVectorT<TT> fE;    // Extra, meaning depends on fType.
0031    TT              fTime; // Time.
0032 
0033    TEvePathMarkT(EType_e type=kReference) :
0034       fType(type), fV(), fP(), fE(), fTime(0) {}
0035 
0036    TEvePathMarkT(EType_e type, const TEveVectorT<TT>& v, TT time=0) :
0037       fType(type), fV(v), fP(), fE(), fTime(time) {}
0038 
0039    TEvePathMarkT(EType_e type, const TEveVectorT<TT>& v, const TEveVectorT<TT>& p, TT time=0) :
0040       fType(type), fV(v), fP(p), fE(), fTime(time) {}
0041 
0042    TEvePathMarkT(EType_e type, const TEveVectorT<TT>& v, const TEveVectorT<TT>& p, const TEveVectorT<TT>& e, TT time=0) :
0043       fType(type), fV(v), fP(p), fE(e), fTime(time) {}
0044 
0045    template <typename OO>
0046    TEvePathMarkT(const TEvePathMarkT<OO>& pm) :
0047       fType((EType_e)pm.fType), fV(pm.fV), fP(pm.fP), fE(pm.fE), fTime(pm.fTime) {}
0048 
0049    const char* TypeName();
0050 
0051    ClassDefNV(TEvePathMarkT, 1); // Template for a special point on a track: position/momentum reference, daughter creation or decay.
0052 };
0053 
0054 typedef TEvePathMarkT<Float_t>  TEvePathMark;
0055 typedef TEvePathMarkT<Float_t>  TEvePathMarkF;
0056 typedef TEvePathMarkT<Double_t> TEvePathMarkD;
0057 
0058 #endif