// @(#)root/eve:$Id$
// Author: Matevz Tadel 2010

/*************************************************************************
 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#include "TEvePathMark.h"

//==============================================================================
// TEvePathMark
//==============================================================================

//______________________________________________________________________________
//
// Special-point on track:
//  kDaughter  - daughter creation; fP is momentum of the daughter, it is subtracted from
//               momentum of the track
//  kReference - position/momentum reference
//  kDecay     - decay point, fP not used
//  kCluster2D - measurement with large error in one direction (like strip detectors):
//               fP - normal to detector plane,
//               fE - large error direction, must be normalized.
//               Track is propagated to plane and correction in fE direction is discarded.
//  kLineSegment - line segment with vertex fV and vector fE
//               fV - first point of line segment
//               fP - normal to detector plane,
//               fE - vector from fV to the second vertex of line segment


ClassImp(TEvePathMarkT<Float_t>);
ClassImp(TEvePathMarkT<Double_t>);

//______________________________________________________________________________
template<typename TT> const char* TEvePathMarkT<TT>::TypeName()
{
   // Return the name of path-mark type.

   switch (fType)
   {
      case kDaughter:    return "Daughter";
      case kReference:   return "Reference";
      case kDecay:       return "Decay";
      case kCluster2D:   return "Cluster2D";
      case kLineSegment: return "LineSegment";
      default:           return "Unknown";
   }
}

template class TEvePathMarkT<Float_t>;
template class TEvePathMarkT<Double_t>;
 TEvePathMark.cxx:1
 TEvePathMark.cxx:2
 TEvePathMark.cxx:3
 TEvePathMark.cxx:4
 TEvePathMark.cxx:5
 TEvePathMark.cxx:6
 TEvePathMark.cxx:7
 TEvePathMark.cxx:8
 TEvePathMark.cxx:9
 TEvePathMark.cxx:10
 TEvePathMark.cxx:11
 TEvePathMark.cxx:12
 TEvePathMark.cxx:13
 TEvePathMark.cxx:14
 TEvePathMark.cxx:15
 TEvePathMark.cxx:16
 TEvePathMark.cxx:17
 TEvePathMark.cxx:18
 TEvePathMark.cxx:19
 TEvePathMark.cxx:20
 TEvePathMark.cxx:21
 TEvePathMark.cxx:22
 TEvePathMark.cxx:23
 TEvePathMark.cxx:24
 TEvePathMark.cxx:25
 TEvePathMark.cxx:26
 TEvePathMark.cxx:27
 TEvePathMark.cxx:28
 TEvePathMark.cxx:29
 TEvePathMark.cxx:30
 TEvePathMark.cxx:31
 TEvePathMark.cxx:32
 TEvePathMark.cxx:33
 TEvePathMark.cxx:34
 TEvePathMark.cxx:35
 TEvePathMark.cxx:36
 TEvePathMark.cxx:37
 TEvePathMark.cxx:38
 TEvePathMark.cxx:39
 TEvePathMark.cxx:40
 TEvePathMark.cxx:41
 TEvePathMark.cxx:42
 TEvePathMark.cxx:43
 TEvePathMark.cxx:44
 TEvePathMark.cxx:45
 TEvePathMark.cxx:46
 TEvePathMark.cxx:47
 TEvePathMark.cxx:48
 TEvePathMark.cxx:49
 TEvePathMark.cxx:50
 TEvePathMark.cxx:51
 TEvePathMark.cxx:52
 TEvePathMark.cxx:53
 TEvePathMark.cxx:54
 TEvePathMark.cxx:55