ROOT logo
// @(#)root/eve:$Id: TEveTrackPropagator.cxx 27428 2009-02-11 18:51:08Z matevz $
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007

/*************************************************************************
 * 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 "TEveTrackPropagator.h"
#include "TEveTrack.h"

#include "TMath.h"

#include <cassert>

namespace
{
   const Float_t kBMin     = 1e-6;
   const Float_t kPtMinSqr = 1e-20;
   const Float_t kAMin     = 1e-10;
   const Float_t kStepEps  = 1e-3;
}

//______________________________________________________________________________
TEveTrackPropagator::Helix_t::Helix_t() :
   fCharge(0), fMinAng(45), fDelta(0.1),
   fMaxStep(20.f), fCurrentStep(20.f),
   fPhi(0), fValid(kFALSE),
   fLam(-1), fR(-1), fPhiStep(-1), fSin(-1), fCos(-1),
   fPtMag(-1), fPlDir(-1), fLStep(-1)
{
   // Default constructor.
}

//______________________________________________________________________________
void TEveTrackPropagator::Helix_t::UpdateHelix(const TEveVector& p, const TEveVector& b, Bool_t fullUpdate)
{
   // Update helix parameters.

   fB = b;

   // base vectors
   fE1 = b;
   fE1.Normalize();
   fPlDir = p.Dot(fE1);
   fPl    = fE1*fPlDir;

   fPt    = p - fPl;
   fPtMag = fPt.Mag();
   fE2    = fPt;
   fE2.Normalize();

   // helix parameters
   TMath::Cross(fE1.Arr(), fE2.Arr(), fE3.Arr());
   if (fCharge < 0) fE3.NegateXYZ();

   if (fullUpdate)
   {
      using namespace TMath;
      Float_t a = fgkB2C * b.Mag() * Abs(fCharge);
      if (a > kAMin && fPtMag*fPtMag > kPtMinSqr)
      {
         fValid = kTRUE;

         fR   = Abs(fPtMag / a);
         fLam = fPl.Mag() / fPtMag;
         if (fPlDir < 0) fLam = - fLam;

         // get phi step, compare fMinAng with fDelta
         fPhiStep = fMinAng * DegToRad();
         if (fDelta < fR)
         {
            Float_t ang  = 2*ACos(1 - fDelta/fR);
            if (ang < fPhiStep) fPhiStep = ang;
         }

         // check max step size
         fCurrentStep = fR*fPhiStep*(1 + fLam*fLam);
         if (fCurrentStep > fMaxStep)
            fPhiStep *= (fMaxStep/fCurrentStep);

         fLStep = fR*fPhiStep*fLam;
         fSin   = Sin(fPhiStep);
         fCos   = Cos(fPhiStep);
      }
      else
      {
         fValid = kFALSE;
      }
   }
}

//______________________________________________________________________________
void TEveTrackPropagator::Helix_t::Step(const TEveVector4& v, const TEveVector& p,
                                        TEveVector4& vOut, TEveVector& pOut)
{
   // Step helix for given momentum p from vertex v.

   vOut = v;

   if (fValid)
   {
      TEveVector d = fE2*(fR*fSin) + fE3*(fR*(1-fCos)) + fE1*fLStep;
      vOut    += d;
      vOut.fT += fLStep;

      pOut = fPl + fE2*(fPtMag*fCos) + fE3*(fPtMag*fSin);

      fPhi += fPhiStep;
   }
   else
   {
      // case: pT < kPtMinSqr or B < kBMin
      // might happen if field directon changes pT ~ 0 or B becomes zero
      vOut += p * (fMaxStep / p.Mag());
      pOut  = p;
   }
}


//______________________________________________________________________________
void TEveTrackPropagator::Helix_t::UpdateRK(const TEveVector& p, const TEveVector& b)
{
   // Update helix for stepper RungeKutta.

   if (fCharge)
   {
      fValid = kTRUE;

      // cached values for propagator
      fB = b;
      fPlDir = p.Dot(fB);
   }
   else
   {
      fValid = kFALSE;
   }
}


//==============================================================================
// TEveTrackPropagator
//==============================================================================

//______________________________________________________________________________
//
// Holding structure for a number of track rendering parameters.
// Calculates path taking into account the parameters.
//
// This is decoupled from TEveTrack/TEveTrackList to allow sharing of the
// Propagator among several instances. Back references are kept so the
// tracks can be recreated when the parameters change.
//
// TEveTrackList has Get/Set methods for RnrStlye. TEveTrackEditor and
// TEveTrackListEditor provide editor access.

ClassImp(TEveTrackPropagator);

Float_t             TEveTrackPropagator::fgDefMagField = 0.5;
const Float_t       TEveTrackPropagator::fgkB2C        = 0.299792458e-2;
TEveTrackPropagator TEveTrackPropagator::fgDefStyle;

//______________________________________________________________________________
TEveTrackPropagator::TEveTrackPropagator(const char* n, const char* t,
                                         TEveMagField *field) :
   TEveElementList(n, t),
   TEveRefBackPtr(),

   fStepper(kHelix),
   fMagFieldObj(field),
   fMaxR    (350),
   fMaxZ    (450),

   fNMax     (4096),
   fMaxOrbs  (0.5),

   fEditPathMarks (kTRUE),
   fFitDaughters  (kTRUE),
   fFitReferences (kTRUE),
   fFitDecay      (kTRUE),
   fFitCluster2Ds (kTRUE),

   fRnrDaughters  (kFALSE),
   fRnrReferences (kFALSE),
   fRnrDecay      (kFALSE),
   fRnrFV         (kFALSE),

   fPMAtt(),
   fFVAtt(),

   fV()
{
   // Default constructor.

   fPMAtt.SetMarkerColor(kYellow);
   fPMAtt.SetMarkerStyle(2);
   fPMAtt.SetMarkerSize(2);

   fFVAtt.SetMarkerColor(kRed);
   fFVAtt.SetMarkerStyle(4);
   fFVAtt.SetMarkerSize(1.5);


   if (fMagFieldObj == 0)
      fMagFieldObj = new TEveMagFieldConst(0., 0., fgDefMagField);
}

//______________________________________________________________________________
TEveTrackPropagator::~TEveTrackPropagator()
{
   // Destructor.

   delete fMagFieldObj;
}

//______________________________________________________________________________
void TEveTrackPropagator::OnZeroRefCount()
{
   // Virtual from TEveRefBackPtr - track reference count has reached zero.

   CheckReferenceCount("TEveTrackPropagator::OnZeroRefCount ");
}

//______________________________________________________________________________
void TEveTrackPropagator::CheckReferenceCount(const TEveException& eh)
{
   // Check reference count - virtual from TEveElement.
   // Must also take into account references from TEveRefBackPtr.

   if (fRefCount <= 0)
   {
      TEveElementList::CheckReferenceCount(eh);
   }
}

//______________________________________________________________________________
void TEveTrackPropagator::ElementChanged(Bool_t update_scenes, Bool_t redraw)
{
   // Element-change notification.
   // Stamp all tracks as requiring display-list regeneration.
   // Virtual from TEveElement.

   TEveTrack* track;
   std::list<TEveElement*>::iterator i = fBackRefs.begin();
   while (i != fBackRefs.end())
   {
      track = dynamic_cast<TEveTrack*>(*i);
      track->StampObjProps();
      ++i;
   }
   TEveElementList::ElementChanged(update_scenes, redraw);
}

//==============================================================================

//______________________________________________________________________________
void TEveTrackPropagator::InitTrack(TEveVector &v,  Int_t charge)
{
   // Initialize internal data-members for given particle parameters.

   fV.fX = v.fX;
   fV.fY = v.fY;
   fV.fZ = v.fZ;

   fPoints.push_back(fV);

   // init helix
   fH.fPhi    = 0;
   fH.fCharge = charge;
}

//______________________________________________________________________________
void TEveTrackPropagator::ResetTrack()
{
   // Reset cache holding particle trajectory.

   fPoints.clear();

   // reset helix
   fH.fPhi = 0;
}

//______________________________________________________________________________
Bool_t TEveTrackPropagator::GoToVertex(TEveVector& v, TEveVector& p)
{
   // Propagate particle with momentum p to vertex v.

   if (fStepper == kHelix)
      fH.UpdateHelix(p, fMagFieldObj->GetField(fV), kTRUE);
   else
      fH.UpdateRK(p, fMagFieldObj->GetField(fV));

   if ((v-fV).Mag() < kStepEps)
   {
      fPoints.push_back(v);
      return kTRUE;
   }

   return fH.fValid ? LoopToVertex(v, p): LineToVertex(v);
}

//______________________________________________________________________________
void TEveTrackPropagator::GoToBounds(TEveVector& p)
{
   // Propagate particle to bounds.
   // Return TRUE if hit bounds.

   if (fStepper == kHelix)
      fH.UpdateHelix(p, fMagFieldObj->GetField(fV), kTRUE);
   else
      fH.UpdateRK(p, fMagFieldObj->GetField(fV));

   fH.fValid ? LoopToBounds(p): LineToBounds(p);
}

//______________________________________________________________________________
void TEveTrackPropagator::Step(TEveVector4 &v, TEveVector &p, TEveVector4 &vOut, TEveVector &pOut)
{
   // Wrapper to step helix.

   if (fStepper == kHelix)
   {
      fH.UpdateHelix(p, fMagFieldObj->GetField(v), !fMagFieldObj->IsConst());
      fH.Step(v, p, vOut, pOut);
   }
   else
   {
      fH.UpdateRK(p, fMagFieldObj->GetField(v));

      Double_t vecRKIn[7];
      vecRKIn[0] = v.fX;
      vecRKIn[1] = v.fY;
      vecRKIn[2] = v.fZ;
      Float_t nm = 1/p.Mag();
      vecRKIn[3] = p.fX*nm;
      vecRKIn[4] = p.fY*nm;
      vecRKIn[5] = p.fZ*nm;
      vecRKIn[6] = p.Mag();

      Double_t vecRKOut[7];
      OneStepRungeKutta(fH.fCharge, fH.fMaxStep, vecRKIn, vecRKOut);

      vOut.fX = vecRKOut[0];
      vOut.fY = vecRKOut[1];
      vOut.fZ = vecRKOut[2];
      vOut.fT += fH.fMaxStep;
      Double_t pm = vecRKOut[6];
      pOut.fX = vecRKOut[3]*pm;
      pOut.fY = vecRKOut[4]*pm;
      pOut.fZ = vecRKOut[5]*pm;
   }
}

//______________________________________________________________________________
void TEveTrackPropagator::LoopToBounds(TEveVector& p)
{
   // Propagate charged particle with momentum p to bounds.

   const Float_t maxRsq = fMaxR*fMaxR;

   TEveVector4 currV(fV);
   TEveVector4 forwV(fV);
   TEveVector  forwP (p);

   Int_t np = fPoints.size();
   Float_t maxPhi = fMaxOrbs*TMath::TwoPi();

   while (fH.fPhi < maxPhi && np<fNMax)
   {
      Step(currV, p, forwV, forwP);

      // cross R
      if (forwV.Perp2() > maxRsq)
      {
         Float_t t = (fMaxR - currV.R()) / (forwV.R() - currV.R());
         if (t < 0 || t > 1)
         {
            Warning("TEveTrackPropagator::HelixToBounds",
                    "In MaxR crossing expected t>=0 && t<=1: t=%f, r1=%f, r2=%f, MaxR=%f.",
                    t, currV.R(), forwV.R(), fMaxR);

            return;
         }
         TEveVector d(forwV);
         d -= currV;
         d *= t;
         d += currV;
         fPoints.push_back(d);
         return;
      }

      // cross Z
      else if (TMath::Abs(forwV.fZ) > fMaxZ)
      {
         Float_t t = (fMaxZ - TMath::Abs(currV.fZ)) / TMath::Abs((forwV.fZ - currV.fZ));
         if (t < 0 || t > 1)
         {
            Warning("TEveTrackPropagator::HelixToBounds",
                    "In MaxZ crossing expected t>=0 && t<=1: t=%f, z1=%f, z2=%f, MaxZ=%f.",
                    t, currV.fZ, forwV.fZ, fMaxZ);
            return;
         }
         TEveVector d(forwV -currV);
         d *= t;
         d +=currV;
         fPoints.push_back(d);
         return;
      }

      currV = forwV;
      p =  forwP;
      fPoints.push_back(currV);
      np++;
   }
}

//______________________________________________________________________________
Bool_t TEveTrackPropagator::LoopToVertex(TEveVector& v, TEveVector& p)
{
   // Propagate charged particle with momentum p to vertex v.

   const Float_t maxRsq = fMaxR*fMaxR;

   TEveVector4 currV(fV);
   TEveVector4 forwV(fV);
   TEveVector  forwP(p);

   Int_t first_point = fPoints.size();
   Int_t np          = first_point;

   do
   {
      Step(currV, p, forwV, forwP);

      if (PointOverVertex(v, forwV))
         break;

      if (IsOutsideBounds(forwV, maxRsq, fMaxZ))
      {
         fV = currV;
         return kFALSE;
      }

      fPoints.push_back(forwV);
      currV = forwV;
      p     = forwP;
      ++np;
   } while (np < fNMax);

   // make the remaining fractional step
   if (np > first_point)
   {
      TEveVector d1 = v;     d1 -= currV;
      TEveVector d2 = forwV; d2 -= currV;
      TEveVector pln =  fH.fPl;
      pln.Normalize();

      if (d1.Mag() > kStepEps)
      {
         // step for forced step size;
         Float_t origMaxStep = fH.fMaxStep;
         fH.fMaxStep = d1.Mag();
         if (fStepper == kHelix)
            fH.UpdateHelix(p, fMagFieldObj->GetField(fV), kTRUE);
         else
            fH.UpdateRK(p, fMagFieldObj->GetField(fV));

         Step(currV, p, forwV, forwP);
         p = forwP;
         currV = forwV;
         fPoints.push_back(currV); np++;
         fH.fMaxStep =  origMaxStep;

         // distibute offset
         TEveVector off(v); off -= currV;
         off *= 1.0f / currV.fT;
         for (Int_t i = first_point; i < np; ++i)
         {
            fPoints[i] += off * fPoints[i].fT;
         }

         fV = v;
         return kTRUE;
      }
   }

   fPoints.push_back(v);
   fV = v;
   return kTRUE;
}

//______________________________________________________________________________
Bool_t TEveTrackPropagator::LineToVertex(TEveVector& v)
{
   // Propagate neutral particle to vertex v.

   TEveVector4 currV = v;

   currV.fX = v.fX;
   currV.fY = v.fY;
   currV.fZ = v.fZ;
   fPoints.push_back(currV);

   fV = v;
   return kTRUE;
}

//______________________________________________________________________________
void TEveTrackPropagator::LineToBounds(TEveVector& p)
{
   // Propagatate neutral particle with momentum p to bounds.

   Float_t tZ = 0, tR = 0, tB = 0;

   // time where particle intersect +/- fMaxZ
   if (p.fZ > 0) {
      tZ = (fMaxZ - fV.fZ)/p.fZ;
   }
   else  if (p.fZ < 0 ) {
      tZ = (-1)*(fMaxZ + fV.fZ)/p.fZ;
   }

   // time where particle intersects cylinder
   Double_t a = p.fX*p.fX + p.fY*p.fY;
   Double_t b = 2*(fV.fX*p.fX + fV.fY*p.fY);
   Double_t c = fV.fX*fV.fX + fV.fY*fV.fY - fMaxR*fMaxR;
   Double_t d = b*b - 4*a*c;
   if (d >= 0) {
      Double_t sqrtD=TMath::Sqrt(d);
      tR = ( -b - sqrtD )/(2*a);
      if (tR < 0) {
         tR = ( -b + sqrtD )/(2*a);
      }
      tB = tR < tZ ? tR : tZ; // compare the two times
   } else {
      tB = tZ;
   }
   TEveVector nv(fV.fX + p.fX*tB, fV.fY + p.fY*tB, fV.fZ+ p.fZ*tB);
   LineToVertex(nv);
}

//______________________________________________________________________________
Bool_t TEveTrackPropagator::HelixIntersectPlane(const TEveVector& p,
                                                const TEveVector& point,
                                                const TEveVector& normal,
                                                TEveVector& itsect)
{

   TEveVector pos(fV);
   TEveVector mom(p);
   if (fMagFieldObj->IsConst())
      fH.UpdateHelix(mom, fMagFieldObj->GetField(pos), kFALSE);

   TEveVector n(normal);
   TEveVector delta = pos - point;
   Float_t d = delta.Dot(n);
   if (d > 0) {
      n.NegateXYZ(); // Turn normal around so that we approach from negative side of the plane
      d = -d;
   }

   TEveVector4 forwV;
   TEveVector forwP;
   TEveVector4 pos4(pos);
   while (1)
   {
      Step(pos4, mom, forwV , forwP);
      Float_t new_d = (forwV - point).Dot(n);
      if (new_d < d)
      {
         // We are going further away ... fail intersect.
         Warning("TEveTrackPropagator::HelixIntersectPlane", "going away from the plane.");
         return kFALSE;
      }
      if (new_d > 0)
      {
         delta = forwV - pos;
         itsect = pos + delta * (d / (d - new_d));
         return kTRUE;
      }
      pos4 = forwV;
      mom  = forwP;
   }
}

//______________________________________________________________________________
Bool_t TEveTrackPropagator::LineIntersectPlane(const TEveVector& p,
                                               const TEveVector& point,
                                               const TEveVector& normal,
                                                     TEveVector& itsect)
{
   TEveVector pos(fV.fX, fV.fY, fV.fZ);
   TEveVector delta = pos - point;

   Float_t d = delta.Dot(normal);
   if (d == 0) {
      itsect = pos;
      return kTRUE;
   }

   Float_t t = (p.Dot(normal)) / d;
   if (t < 0) {
      return kFALSE;
   } else {
      itsect = pos + p*t;
      return kTRUE;
   }
}

//______________________________________________________________________________
Bool_t TEveTrackPropagator::IntersectPlane(const TEveVector& p,
                                           const TEveVector& point,
                                           const TEveVector& normal,
                                                 TEveVector& itsect)
{
   // Find intersection of currently propagated track with a plane.
   // Current track position is used as starting point.
   //
   // Args:
   //  p        - track momentum to use for extrapolation
   //  point    - a point on a plane
   //  normal   - normal of the plane
   //  itsect   - output, point of intersection
   // Returns:
   //  kFALSE if intersection can not be found, kTRUE otherwise.

   if (fH.fCharge && fMagFieldObj && p.Perp2() > kPtMinSqr)
      return HelixIntersectPlane(p, point, normal, itsect);
   else
      return LineIntersectPlane(p, point, normal, itsect);
}

//______________________________________________________________________________
void TEveTrackPropagator::FillPointSet(TEvePointSet* ps) const
{
   // Reset ps and populate it with points in propagation cache.

   Int_t size = TMath::Min(fNMax, (Int_t)fPoints.size());
   ps->Reset(size);
   for (Int_t i = 0; i < size; ++i)
   {
      const TEveVector4& v = fPoints[i];
      ps->SetNextPoint(v.fX, v.fY, v.fZ);
   }
}

/******************************************************************************/

//______________________________________________________________________________
void TEveTrackPropagator::RebuildTracks()
{
   // Rebuild all tracks using this render-style.

   TEveTrack* track;
   std::list<TEveElement*>::iterator i = fBackRefs.begin();
   while (i != fBackRefs.end())
   {
      track = dynamic_cast<TEveTrack*>(*i);
      track->MakeTrack();
      track->StampObjProps();
      ++i;
   }
}

//______________________________________________________________________________
void TEveTrackPropagator::SetMagField(Float_t bX, Float_t bY, Float_t bZ)
{
   // Set constant magnetic field and rebuild tracks.

   if (fMagFieldObj) delete fMagFieldObj;

   fMagFieldObj = new TEveMagFieldConst(bX, bY, bZ);
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::SetMagFieldObj(TEveMagField *mff)
{
   // Set constant magnetic field and rebuild tracks.

   if (fMagFieldObj) delete fMagFieldObj;

   fMagFieldObj = mff;
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::PrintMagField(Float_t x, Float_t y, Float_t z) const
{
   if (fMagFieldObj) fMagFieldObj->PrintField(x, y, z);
}

//______________________________________________________________________________
void TEveTrackPropagator::SetMaxR(Float_t x)
{
   // Set maximum radius and rebuild tracks.

   fMaxR = x;
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::SetMaxZ(Float_t x)
{
   // Set maximum z and rebuild tracks.

   fMaxZ = x;
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::SetMaxOrbs(Float_t x)
{
   // Set maximum number of orbits and rebuild tracks.

   fMaxOrbs = x;
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::SetMinAng(Float_t x)
{
   // Set minimum step angle and rebuild tracks.

   fH.fMinAng = x;
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::SetDelta(Float_t x)
{
   // Set maximum error and rebuild tracks.

   fH.fDelta = x;
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::SetFitDaughters(Bool_t x)
{
   // Set daughter creation point fitting and rebuild tracks.

   fFitDaughters = x;
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::SetFitReferences(Bool_t x)
{
   // Set track-reference fitting and rebuild tracks.

   fFitReferences = x;
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::SetFitDecay(Bool_t x)
{
   // Set decay fitting and rebuild tracks.

   fFitDecay = x;
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::SetFitCluster2Ds(Bool_t x)
{
   // Set 2D-cluster fitting and rebuild tracks.

   fFitCluster2Ds = x;
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::SetRnrDecay(Bool_t rnr)
{
   // Set decay rendering and rebuild tracks.

   fRnrDecay = rnr;
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::SetRnrCluster2Ds(Bool_t rnr)
{
   // Set rendering of 2D-clusters and rebuild tracks.

   fRnrCluster2Ds = rnr;
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::SetRnrDaughters(Bool_t rnr)
{
   // Set daughter rendering and rebuild tracks.

   fRnrDaughters = rnr;
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::SetRnrReferences(Bool_t rnr)
{
   // Set track-reference rendering and rebuild tracks.

   fRnrReferences = rnr;
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::SetMaxStep(Float_t x)
{
   // Set maximum radius and rebuild tracks.

   fH.fMaxStep = x;
   RebuildTracks();
}

//______________________________________________________________________________
void TEveTrackPropagator::OneStepRungeKutta(Double_t charge, Double_t step,
                                            Double_t* vect, Double_t* vout)
{

  // Wrapper to step with method RungeKutta.

  ///	******************************************************************
  ///	*								 *
  ///	*  Runge-Kutta method for tracking a particle through a magnetic *
  ///	*  field. Uses Nystroem algorithm (See Handbook Nat. Bur. of	 *
  ///	*  Standards, procedure 25.5.20)				 *
  ///	*								 *
  ///	*  Input parameters						 *
  ///	*	CHARGE    Particle charge				 *
  ///	*	STEP	  Step size					 *
  ///	*	VECT	  Initial co-ords,direction cosines,momentum	 *
  ///	*  Output parameters						 *
  ///	*	VOUT	  Output co-ords,direction cosines,momentum	 *
  ///	*  User routine called  					 *
  ///	*	CALL GUFLD(X,F) 					 *
  ///	*								 *
  ///	*    ==>Called by : <USER>, GUSWIM				 *
  ///	*	Authors    R.Brun, M.Hansroul  *********		 *
  ///	*		   V.Perevoztchikov (CUT STEP implementation)	 *
  ///	*								 *
  ///	*								 *
  ///	******************************************************************

  Double_t h2, h4, f[4];
  Double_t xyzt[3], a, b, c, ph,ph2;
  Double_t secxs[4],secys[4],seczs[4],hxp[3];
  Double_t g1, g2, g3, g4, g5, g6, ang2, dxt, dyt, dzt;
  Double_t est, at, bt, ct, cba;
  Double_t f1, f2, f3, f4, rho, tet, hnorm, hp, rho1, sint, cost;

  Double_t x;
  Double_t y;
  Double_t z;

  Double_t xt;
  Double_t yt;
  Double_t zt;

  // Double_t maxit = 1992;
  Double_t maxit = 10;
  Double_t maxcut = 11;

  const Double_t hmin   = 1e-4; // !!! MT ADD,  should be member
  const Double_t kdlt   = 1e-3; // !!! MT CHANGE from 1e-4, should be member
  const Double_t kdlt32 = kdlt/32.;
  const Double_t kthird = 1./3.;
  const Double_t khalf  = 0.5;
  const Double_t kec    = 2.9979251e-3;

  const Double_t kpisqua = 9.86960440109;
  const Int_t kix  = 0;
  const Int_t kiy  = 1;
  const Int_t kiz  = 2;
  const Int_t kipx = 3;
  const Int_t kipy = 4;
  const Int_t kipz = 5;

  // *.
  // *.    ------------------------------------------------------------------
  // *.
  // *             this constant is for units cm,gev/c and kgauss
  // *
  Int_t iter = 0;
  Int_t ncut = 0;
  for(Int_t j = 0; j < 7; j++)
    vout[j] = vect[j];

  Double_t  pinv   = kec * charge / vect[6];
  Double_t tl = 0.;
  Double_t h = step;
  Double_t rest;

  do {
    rest  = step - tl;
    if (TMath::Abs(h) > TMath::Abs(rest)) h = rest;
    //cmodif: call gufld(vout,f) changed into:
    // GetField(vout,f);
    f[0] = -fH.fB.fX;
    f[1] = -fH.fB.fY;
    f[2] = -fH.fB.fZ;


    // *
    // *             start of integration
    // *
    x      = vout[0];
    y      = vout[1];
    z      = vout[2];
    a      = vout[3];
    b      = vout[4];
    c      = vout[5];

    h2     = khalf * h;
    h4     = khalf * h2;
    ph     = pinv * h;
    ph2    = khalf * ph;
    secxs[0] = (b * f[2] - c * f[1]) * ph2;
    secys[0] = (c * f[0] - a * f[2]) * ph2;
    seczs[0] = (a * f[1] - b * f[0]) * ph2;
    ang2 = (secxs[0]*secxs[0] + secys[0]*secys[0] + seczs[0]*seczs[0]);
    if (ang2 > kpisqua) break;

    dxt    = h2 * a + h4 * secxs[0];
    dyt    = h2 * b + h4 * secys[0];
    dzt    = h2 * c + h4 * seczs[0];
    xt     = x + dxt;
    yt     = y + dyt;
    zt     = z + dzt;
    // *
    // *              second intermediate point
    // *

    est = TMath::Abs(dxt) + TMath::Abs(dyt) + TMath::Abs(dzt);
    if (est > h) {
      if (ncut++ > maxcut) break;
      h *= khalf;
      continue;
    }

    xyzt[0] = xt;
    xyzt[1] = yt;
    xyzt[2] = zt;

    //cmodif: call gufld(xyzt,f) changed into:
    fH.fB = fMagFieldObj->GetField(xt, yt, zt);
    f[0] = -fH.fB.fX;
    f[1] = -fH.fB.fY;
    f[2] = -fH.fB.fZ;

    at     = a + secxs[0];
    bt     = b + secys[0];
    ct     = c + seczs[0];

    secxs[1] = (bt * f[2] - ct * f[1]) * ph2;
    secys[1] = (ct * f[0] - at * f[2]) * ph2;
    seczs[1] = (at * f[1] - bt * f[0]) * ph2;
    at     = a + secxs[1];
    bt     = b + secys[1];
    ct     = c + seczs[1];
    secxs[2] = (bt * f[2] - ct * f[1]) * ph2;
    secys[2] = (ct * f[0] - at * f[2]) * ph2;
    seczs[2] = (at * f[1] - bt * f[0]) * ph2;
    dxt    = h * (a + secxs[2]);
    dyt    = h * (b + secys[2]);
    dzt    = h * (c + seczs[2]);
    xt     = x + dxt;
    yt     = y + dyt;
    zt     = z + dzt;
    at     = a + 2.*secxs[2];
    bt     = b + 2.*secys[2];
    ct     = c + 2.*seczs[2];

    est = TMath::Abs(dxt)+TMath::Abs(dyt)+TMath::Abs(dzt);
    if (est > 2.*TMath::Abs(h)) {
      if (ncut++ > maxcut) break;
      h *= khalf;
      continue;
    }

    xyzt[0] = xt;
    xyzt[1] = yt;
    xyzt[2] = zt;

    //cmodif: call gufld(xyzt,f) changed into:
    fH.fB = fMagFieldObj->GetField(xt, yt, zt);
    f[0] = -fH.fB.fX;
    f[1] = -fH.fB.fY;
    f[2] = -fH.fB.fZ;

    z      = z + (c + (seczs[0] + seczs[1] + seczs[2]) * kthird) * h;
    y      = y + (b + (secys[0] + secys[1] + secys[2]) * kthird) * h;
    x      = x + (a + (secxs[0] + secxs[1] + secxs[2]) * kthird) * h;

    secxs[3] = (bt*f[2] - ct*f[1])* ph2;
    secys[3] = (ct*f[0] - at*f[2])* ph2;
    seczs[3] = (at*f[1] - bt*f[0])* ph2;
    a      = a+(secxs[0]+secxs[3]+2. * (secxs[1]+secxs[2])) * kthird;
    b      = b+(secys[0]+secys[3]+2. * (secys[1]+secys[2])) * kthird;
    c      = c+(seczs[0]+seczs[3]+2. * (seczs[1]+seczs[2])) * kthird;

    est    = TMath::Abs(secxs[0]+secxs[3] - (secxs[1]+secxs[2]))
      + TMath::Abs(secys[0]+secys[3] - (secys[1]+secys[2]))
      + TMath::Abs(seczs[0]+seczs[3] - (seczs[1]+seczs[2]));

    if (est > kdlt && TMath::Abs(h) > hmin) {
      if (ncut++ > maxcut) break;
      h *= khalf;
      continue;
    }

    ncut = 0;
    // *               if too many iterations, go to helix
    if (iter++ > maxit) break;

    // printf("write value \n");
    tl += h;
    if (est < kdlt32)
      h *= 2.;
    cba    = 1./ TMath::Sqrt(a*a + b*b + c*c);
    vout[0] = x;
    vout[1] = y;
    vout[2] = z;
    vout[3] = cba*a;
    vout[4] = cba*b;
    vout[5] = cba*c;
    rest = step - tl;
    if (step < 0.) rest = -rest;
    if (rest < 1.e-5*TMath::Abs(step)) return;

  } while(1);

  //  printf("MAKE HELIX \n");

  // angle too big, use helix

  f1  = f[0];
  f2  = f[1];
  f3  = f[2];
  f4  = TMath::Sqrt(f1*f1+f2*f2+f3*f3);
  rho = -f4*pinv;
  tet = rho * step;

  hnorm = 1./f4;
  f1 = f1*hnorm;
  f2 = f2*hnorm;
  f3 = f3*hnorm;

  hxp[0] = f2*vect[kipz] - f3*vect[kipy];
  hxp[1] = f3*vect[kipx] - f1*vect[kipz];
  hxp[2] = f1*vect[kipy] - f2*vect[kipx];

  hp = f1*vect[kipx] + f2*vect[kipy] + f3*vect[kipz];

  rho1 = 1./rho;
  sint = TMath::Sin(tet);
  cost = 2.*TMath::Sin(khalf*tet)*TMath::Sin(khalf*tet);

  g1 = sint*rho1;
  g2 = cost*rho1;
  g3 = (tet-sint) * hp*rho1;
  g4 = -cost;
  g5 = sint;
  g6 = cost * hp;

  vout[kix] = vect[kix] + g1*vect[kipx] + g2*hxp[0] + g3*f1;
  vout[kiy] = vect[kiy] + g1*vect[kipy] + g2*hxp[1] + g3*f2;
  vout[kiz] = vect[kiz] + g1*vect[kipz] + g2*hxp[2] + g3*f3;

  vout[kipx] = vect[kipx] + g4*vect[kipx] + g5*hxp[0] + g6*f1;
  vout[kipy] = vect[kipy] + g4*vect[kipy] + g5*hxp[1] + g6*f2;
  vout[kipz] = vect[kipz] + g4*vect[kipz] + g5*hxp[2] + g6*f3;

  fH.fPhi += tet;
}
 TEveTrackPropagator.cxx:1
 TEveTrackPropagator.cxx:2
 TEveTrackPropagator.cxx:3
 TEveTrackPropagator.cxx:4
 TEveTrackPropagator.cxx:5
 TEveTrackPropagator.cxx:6
 TEveTrackPropagator.cxx:7
 TEveTrackPropagator.cxx:8
 TEveTrackPropagator.cxx:9
 TEveTrackPropagator.cxx:10
 TEveTrackPropagator.cxx:11
 TEveTrackPropagator.cxx:12
 TEveTrackPropagator.cxx:13
 TEveTrackPropagator.cxx:14
 TEveTrackPropagator.cxx:15
 TEveTrackPropagator.cxx:16
 TEveTrackPropagator.cxx:17
 TEveTrackPropagator.cxx:18
 TEveTrackPropagator.cxx:19
 TEveTrackPropagator.cxx:20
 TEveTrackPropagator.cxx:21
 TEveTrackPropagator.cxx:22
 TEveTrackPropagator.cxx:23
 TEveTrackPropagator.cxx:24
 TEveTrackPropagator.cxx:25
 TEveTrackPropagator.cxx:26
 TEveTrackPropagator.cxx:27
 TEveTrackPropagator.cxx:28
 TEveTrackPropagator.cxx:29
 TEveTrackPropagator.cxx:30
 TEveTrackPropagator.cxx:31
 TEveTrackPropagator.cxx:32
 TEveTrackPropagator.cxx:33
 TEveTrackPropagator.cxx:34
 TEveTrackPropagator.cxx:35
 TEveTrackPropagator.cxx:36
 TEveTrackPropagator.cxx:37
 TEveTrackPropagator.cxx:38
 TEveTrackPropagator.cxx:39
 TEveTrackPropagator.cxx:40
 TEveTrackPropagator.cxx:41
 TEveTrackPropagator.cxx:42
 TEveTrackPropagator.cxx:43
 TEveTrackPropagator.cxx:44
 TEveTrackPropagator.cxx:45
 TEveTrackPropagator.cxx:46
 TEveTrackPropagator.cxx:47
 TEveTrackPropagator.cxx:48
 TEveTrackPropagator.cxx:49
 TEveTrackPropagator.cxx:50
 TEveTrackPropagator.cxx:51
 TEveTrackPropagator.cxx:52
 TEveTrackPropagator.cxx:53
 TEveTrackPropagator.cxx:54
 TEveTrackPropagator.cxx:55
 TEveTrackPropagator.cxx:56
 TEveTrackPropagator.cxx:57
 TEveTrackPropagator.cxx:58
 TEveTrackPropagator.cxx:59
 TEveTrackPropagator.cxx:60
 TEveTrackPropagator.cxx:61
 TEveTrackPropagator.cxx:62
 TEveTrackPropagator.cxx:63
 TEveTrackPropagator.cxx:64
 TEveTrackPropagator.cxx:65
 TEveTrackPropagator.cxx:66
 TEveTrackPropagator.cxx:67
 TEveTrackPropagator.cxx:68
 TEveTrackPropagator.cxx:69
 TEveTrackPropagator.cxx:70
 TEveTrackPropagator.cxx:71
 TEveTrackPropagator.cxx:72
 TEveTrackPropagator.cxx:73
 TEveTrackPropagator.cxx:74
 TEveTrackPropagator.cxx:75
 TEveTrackPropagator.cxx:76
 TEveTrackPropagator.cxx:77
 TEveTrackPropagator.cxx:78
 TEveTrackPropagator.cxx:79
 TEveTrackPropagator.cxx:80
 TEveTrackPropagator.cxx:81
 TEveTrackPropagator.cxx:82
 TEveTrackPropagator.cxx:83
 TEveTrackPropagator.cxx:84
 TEveTrackPropagator.cxx:85
 TEveTrackPropagator.cxx:86
 TEveTrackPropagator.cxx:87
 TEveTrackPropagator.cxx:88
 TEveTrackPropagator.cxx:89
 TEveTrackPropagator.cxx:90
 TEveTrackPropagator.cxx:91
 TEveTrackPropagator.cxx:92
 TEveTrackPropagator.cxx:93
 TEveTrackPropagator.cxx:94
 TEveTrackPropagator.cxx:95
 TEveTrackPropagator.cxx:96
 TEveTrackPropagator.cxx:97
 TEveTrackPropagator.cxx:98
 TEveTrackPropagator.cxx:99
 TEveTrackPropagator.cxx:100
 TEveTrackPropagator.cxx:101
 TEveTrackPropagator.cxx:102
 TEveTrackPropagator.cxx:103
 TEveTrackPropagator.cxx:104
 TEveTrackPropagator.cxx:105
 TEveTrackPropagator.cxx:106
 TEveTrackPropagator.cxx:107
 TEveTrackPropagator.cxx:108
 TEveTrackPropagator.cxx:109
 TEveTrackPropagator.cxx:110
 TEveTrackPropagator.cxx:111
 TEveTrackPropagator.cxx:112
 TEveTrackPropagator.cxx:113
 TEveTrackPropagator.cxx:114
 TEveTrackPropagator.cxx:115
 TEveTrackPropagator.cxx:116
 TEveTrackPropagator.cxx:117
 TEveTrackPropagator.cxx:118
 TEveTrackPropagator.cxx:119
 TEveTrackPropagator.cxx:120
 TEveTrackPropagator.cxx:121
 TEveTrackPropagator.cxx:122
 TEveTrackPropagator.cxx:123
 TEveTrackPropagator.cxx:124
 TEveTrackPropagator.cxx:125
 TEveTrackPropagator.cxx:126
 TEveTrackPropagator.cxx:127
 TEveTrackPropagator.cxx:128
 TEveTrackPropagator.cxx:129
 TEveTrackPropagator.cxx:130
 TEveTrackPropagator.cxx:131
 TEveTrackPropagator.cxx:132
 TEveTrackPropagator.cxx:133
 TEveTrackPropagator.cxx:134
 TEveTrackPropagator.cxx:135
 TEveTrackPropagator.cxx:136
 TEveTrackPropagator.cxx:137
 TEveTrackPropagator.cxx:138
 TEveTrackPropagator.cxx:139
 TEveTrackPropagator.cxx:140
 TEveTrackPropagator.cxx:141
 TEveTrackPropagator.cxx:142
 TEveTrackPropagator.cxx:143
 TEveTrackPropagator.cxx:144
 TEveTrackPropagator.cxx:145
 TEveTrackPropagator.cxx:146
 TEveTrackPropagator.cxx:147
 TEveTrackPropagator.cxx:148
 TEveTrackPropagator.cxx:149
 TEveTrackPropagator.cxx:150
 TEveTrackPropagator.cxx:151
 TEveTrackPropagator.cxx:152
 TEveTrackPropagator.cxx:153
 TEveTrackPropagator.cxx:154
 TEveTrackPropagator.cxx:155
 TEveTrackPropagator.cxx:156
 TEveTrackPropagator.cxx:157
 TEveTrackPropagator.cxx:158
 TEveTrackPropagator.cxx:159
 TEveTrackPropagator.cxx:160
 TEveTrackPropagator.cxx:161
 TEveTrackPropagator.cxx:162
 TEveTrackPropagator.cxx:163
 TEveTrackPropagator.cxx:164
 TEveTrackPropagator.cxx:165
 TEveTrackPropagator.cxx:166
 TEveTrackPropagator.cxx:167
 TEveTrackPropagator.cxx:168
 TEveTrackPropagator.cxx:169
 TEveTrackPropagator.cxx:170
 TEveTrackPropagator.cxx:171
 TEveTrackPropagator.cxx:172
 TEveTrackPropagator.cxx:173
 TEveTrackPropagator.cxx:174
 TEveTrackPropagator.cxx:175
 TEveTrackPropagator.cxx:176
 TEveTrackPropagator.cxx:177
 TEveTrackPropagator.cxx:178
 TEveTrackPropagator.cxx:179
 TEveTrackPropagator.cxx:180
 TEveTrackPropagator.cxx:181
 TEveTrackPropagator.cxx:182
 TEveTrackPropagator.cxx:183
 TEveTrackPropagator.cxx:184
 TEveTrackPropagator.cxx:185
 TEveTrackPropagator.cxx:186
 TEveTrackPropagator.cxx:187
 TEveTrackPropagator.cxx:188
 TEveTrackPropagator.cxx:189
 TEveTrackPropagator.cxx:190
 TEveTrackPropagator.cxx:191
 TEveTrackPropagator.cxx:192
 TEveTrackPropagator.cxx:193
 TEveTrackPropagator.cxx:194
 TEveTrackPropagator.cxx:195
 TEveTrackPropagator.cxx:196
 TEveTrackPropagator.cxx:197
 TEveTrackPropagator.cxx:198
 TEveTrackPropagator.cxx:199
 TEveTrackPropagator.cxx:200
 TEveTrackPropagator.cxx:201
 TEveTrackPropagator.cxx:202
 TEveTrackPropagator.cxx:203
 TEveTrackPropagator.cxx:204
 TEveTrackPropagator.cxx:205
 TEveTrackPropagator.cxx:206
 TEveTrackPropagator.cxx:207
 TEveTrackPropagator.cxx:208
 TEveTrackPropagator.cxx:209
 TEveTrackPropagator.cxx:210
 TEveTrackPropagator.cxx:211
 TEveTrackPropagator.cxx:212
 TEveTrackPropagator.cxx:213
 TEveTrackPropagator.cxx:214
 TEveTrackPropagator.cxx:215
 TEveTrackPropagator.cxx:216
 TEveTrackPropagator.cxx:217
 TEveTrackPropagator.cxx:218
 TEveTrackPropagator.cxx:219
 TEveTrackPropagator.cxx:220
 TEveTrackPropagator.cxx:221
 TEveTrackPropagator.cxx:222
 TEveTrackPropagator.cxx:223
 TEveTrackPropagator.cxx:224
 TEveTrackPropagator.cxx:225
 TEveTrackPropagator.cxx:226
 TEveTrackPropagator.cxx:227
 TEveTrackPropagator.cxx:228
 TEveTrackPropagator.cxx:229
 TEveTrackPropagator.cxx:230
 TEveTrackPropagator.cxx:231
 TEveTrackPropagator.cxx:232
 TEveTrackPropagator.cxx:233
 TEveTrackPropagator.cxx:234
 TEveTrackPropagator.cxx:235
 TEveTrackPropagator.cxx:236
 TEveTrackPropagator.cxx:237
 TEveTrackPropagator.cxx:238
 TEveTrackPropagator.cxx:239
 TEveTrackPropagator.cxx:240
 TEveTrackPropagator.cxx:241
 TEveTrackPropagator.cxx:242
 TEveTrackPropagator.cxx:243
 TEveTrackPropagator.cxx:244
 TEveTrackPropagator.cxx:245
 TEveTrackPropagator.cxx:246
 TEveTrackPropagator.cxx:247
 TEveTrackPropagator.cxx:248
 TEveTrackPropagator.cxx:249
 TEveTrackPropagator.cxx:250
 TEveTrackPropagator.cxx:251
 TEveTrackPropagator.cxx:252
 TEveTrackPropagator.cxx:253
 TEveTrackPropagator.cxx:254
 TEveTrackPropagator.cxx:255
 TEveTrackPropagator.cxx:256
 TEveTrackPropagator.cxx:257
 TEveTrackPropagator.cxx:258
 TEveTrackPropagator.cxx:259
 TEveTrackPropagator.cxx:260
 TEveTrackPropagator.cxx:261
 TEveTrackPropagator.cxx:262
 TEveTrackPropagator.cxx:263
 TEveTrackPropagator.cxx:264
 TEveTrackPropagator.cxx:265
 TEveTrackPropagator.cxx:266
 TEveTrackPropagator.cxx:267
 TEveTrackPropagator.cxx:268
 TEveTrackPropagator.cxx:269
 TEveTrackPropagator.cxx:270
 TEveTrackPropagator.cxx:271
 TEveTrackPropagator.cxx:272
 TEveTrackPropagator.cxx:273
 TEveTrackPropagator.cxx:274
 TEveTrackPropagator.cxx:275
 TEveTrackPropagator.cxx:276
 TEveTrackPropagator.cxx:277
 TEveTrackPropagator.cxx:278
 TEveTrackPropagator.cxx:279
 TEveTrackPropagator.cxx:280
 TEveTrackPropagator.cxx:281
 TEveTrackPropagator.cxx:282
 TEveTrackPropagator.cxx:283
 TEveTrackPropagator.cxx:284
 TEveTrackPropagator.cxx:285
 TEveTrackPropagator.cxx:286
 TEveTrackPropagator.cxx:287
 TEveTrackPropagator.cxx:288
 TEveTrackPropagator.cxx:289
 TEveTrackPropagator.cxx:290
 TEveTrackPropagator.cxx:291
 TEveTrackPropagator.cxx:292
 TEveTrackPropagator.cxx:293
 TEveTrackPropagator.cxx:294
 TEveTrackPropagator.cxx:295
 TEveTrackPropagator.cxx:296
 TEveTrackPropagator.cxx:297
 TEveTrackPropagator.cxx:298
 TEveTrackPropagator.cxx:299
 TEveTrackPropagator.cxx:300
 TEveTrackPropagator.cxx:301
 TEveTrackPropagator.cxx:302
 TEveTrackPropagator.cxx:303
 TEveTrackPropagator.cxx:304
 TEveTrackPropagator.cxx:305
 TEveTrackPropagator.cxx:306
 TEveTrackPropagator.cxx:307
 TEveTrackPropagator.cxx:308
 TEveTrackPropagator.cxx:309
 TEveTrackPropagator.cxx:310
 TEveTrackPropagator.cxx:311
 TEveTrackPropagator.cxx:312
 TEveTrackPropagator.cxx:313
 TEveTrackPropagator.cxx:314
 TEveTrackPropagator.cxx:315
 TEveTrackPropagator.cxx:316
 TEveTrackPropagator.cxx:317
 TEveTrackPropagator.cxx:318
 TEveTrackPropagator.cxx:319
 TEveTrackPropagator.cxx:320
 TEveTrackPropagator.cxx:321
 TEveTrackPropagator.cxx:322
 TEveTrackPropagator.cxx:323
 TEveTrackPropagator.cxx:324
 TEveTrackPropagator.cxx:325
 TEveTrackPropagator.cxx:326
 TEveTrackPropagator.cxx:327
 TEveTrackPropagator.cxx:328
 TEveTrackPropagator.cxx:329
 TEveTrackPropagator.cxx:330
 TEveTrackPropagator.cxx:331
 TEveTrackPropagator.cxx:332
 TEveTrackPropagator.cxx:333
 TEveTrackPropagator.cxx:334
 TEveTrackPropagator.cxx:335
 TEveTrackPropagator.cxx:336
 TEveTrackPropagator.cxx:337
 TEveTrackPropagator.cxx:338
 TEveTrackPropagator.cxx:339
 TEveTrackPropagator.cxx:340
 TEveTrackPropagator.cxx:341
 TEveTrackPropagator.cxx:342
 TEveTrackPropagator.cxx:343
 TEveTrackPropagator.cxx:344
 TEveTrackPropagator.cxx:345
 TEveTrackPropagator.cxx:346
 TEveTrackPropagator.cxx:347
 TEveTrackPropagator.cxx:348
 TEveTrackPropagator.cxx:349
 TEveTrackPropagator.cxx:350
 TEveTrackPropagator.cxx:351
 TEveTrackPropagator.cxx:352
 TEveTrackPropagator.cxx:353
 TEveTrackPropagator.cxx:354
 TEveTrackPropagator.cxx:355
 TEveTrackPropagator.cxx:356
 TEveTrackPropagator.cxx:357
 TEveTrackPropagator.cxx:358
 TEveTrackPropagator.cxx:359
 TEveTrackPropagator.cxx:360
 TEveTrackPropagator.cxx:361
 TEveTrackPropagator.cxx:362
 TEveTrackPropagator.cxx:363
 TEveTrackPropagator.cxx:364
 TEveTrackPropagator.cxx:365
 TEveTrackPropagator.cxx:366
 TEveTrackPropagator.cxx:367
 TEveTrackPropagator.cxx:368
 TEveTrackPropagator.cxx:369
 TEveTrackPropagator.cxx:370
 TEveTrackPropagator.cxx:371
 TEveTrackPropagator.cxx:372
 TEveTrackPropagator.cxx:373
 TEveTrackPropagator.cxx:374
 TEveTrackPropagator.cxx:375
 TEveTrackPropagator.cxx:376
 TEveTrackPropagator.cxx:377
 TEveTrackPropagator.cxx:378
 TEveTrackPropagator.cxx:379
 TEveTrackPropagator.cxx:380
 TEveTrackPropagator.cxx:381
 TEveTrackPropagator.cxx:382
 TEveTrackPropagator.cxx:383
 TEveTrackPropagator.cxx:384
 TEveTrackPropagator.cxx:385
 TEveTrackPropagator.cxx:386
 TEveTrackPropagator.cxx:387
 TEveTrackPropagator.cxx:388
 TEveTrackPropagator.cxx:389
 TEveTrackPropagator.cxx:390
 TEveTrackPropagator.cxx:391
 TEveTrackPropagator.cxx:392
 TEveTrackPropagator.cxx:393
 TEveTrackPropagator.cxx:394
 TEveTrackPropagator.cxx:395
 TEveTrackPropagator.cxx:396
 TEveTrackPropagator.cxx:397
 TEveTrackPropagator.cxx:398
 TEveTrackPropagator.cxx:399
 TEveTrackPropagator.cxx:400
 TEveTrackPropagator.cxx:401
 TEveTrackPropagator.cxx:402
 TEveTrackPropagator.cxx:403
 TEveTrackPropagator.cxx:404
 TEveTrackPropagator.cxx:405
 TEveTrackPropagator.cxx:406
 TEveTrackPropagator.cxx:407
 TEveTrackPropagator.cxx:408
 TEveTrackPropagator.cxx:409
 TEveTrackPropagator.cxx:410
 TEveTrackPropagator.cxx:411
 TEveTrackPropagator.cxx:412
 TEveTrackPropagator.cxx:413
 TEveTrackPropagator.cxx:414
 TEveTrackPropagator.cxx:415
 TEveTrackPropagator.cxx:416
 TEveTrackPropagator.cxx:417
 TEveTrackPropagator.cxx:418
 TEveTrackPropagator.cxx:419
 TEveTrackPropagator.cxx:420
 TEveTrackPropagator.cxx:421
 TEveTrackPropagator.cxx:422
 TEveTrackPropagator.cxx:423
 TEveTrackPropagator.cxx:424
 TEveTrackPropagator.cxx:425
 TEveTrackPropagator.cxx:426
 TEveTrackPropagator.cxx:427
 TEveTrackPropagator.cxx:428
 TEveTrackPropagator.cxx:429
 TEveTrackPropagator.cxx:430
 TEveTrackPropagator.cxx:431
 TEveTrackPropagator.cxx:432
 TEveTrackPropagator.cxx:433
 TEveTrackPropagator.cxx:434
 TEveTrackPropagator.cxx:435
 TEveTrackPropagator.cxx:436
 TEveTrackPropagator.cxx:437
 TEveTrackPropagator.cxx:438
 TEveTrackPropagator.cxx:439
 TEveTrackPropagator.cxx:440
 TEveTrackPropagator.cxx:441
 TEveTrackPropagator.cxx:442
 TEveTrackPropagator.cxx:443
 TEveTrackPropagator.cxx:444
 TEveTrackPropagator.cxx:445
 TEveTrackPropagator.cxx:446
 TEveTrackPropagator.cxx:447
 TEveTrackPropagator.cxx:448
 TEveTrackPropagator.cxx:449
 TEveTrackPropagator.cxx:450
 TEveTrackPropagator.cxx:451
 TEveTrackPropagator.cxx:452
 TEveTrackPropagator.cxx:453
 TEveTrackPropagator.cxx:454
 TEveTrackPropagator.cxx:455
 TEveTrackPropagator.cxx:456
 TEveTrackPropagator.cxx:457
 TEveTrackPropagator.cxx:458
 TEveTrackPropagator.cxx:459
 TEveTrackPropagator.cxx:460
 TEveTrackPropagator.cxx:461
 TEveTrackPropagator.cxx:462
 TEveTrackPropagator.cxx:463
 TEveTrackPropagator.cxx:464
 TEveTrackPropagator.cxx:465
 TEveTrackPropagator.cxx:466
 TEveTrackPropagator.cxx:467
 TEveTrackPropagator.cxx:468
 TEveTrackPropagator.cxx:469
 TEveTrackPropagator.cxx:470
 TEveTrackPropagator.cxx:471
 TEveTrackPropagator.cxx:472
 TEveTrackPropagator.cxx:473
 TEveTrackPropagator.cxx:474
 TEveTrackPropagator.cxx:475
 TEveTrackPropagator.cxx:476
 TEveTrackPropagator.cxx:477
 TEveTrackPropagator.cxx:478
 TEveTrackPropagator.cxx:479
 TEveTrackPropagator.cxx:480
 TEveTrackPropagator.cxx:481
 TEveTrackPropagator.cxx:482
 TEveTrackPropagator.cxx:483
 TEveTrackPropagator.cxx:484
 TEveTrackPropagator.cxx:485
 TEveTrackPropagator.cxx:486
 TEveTrackPropagator.cxx:487
 TEveTrackPropagator.cxx:488
 TEveTrackPropagator.cxx:489
 TEveTrackPropagator.cxx:490
 TEveTrackPropagator.cxx:491
 TEveTrackPropagator.cxx:492
 TEveTrackPropagator.cxx:493
 TEveTrackPropagator.cxx:494
 TEveTrackPropagator.cxx:495
 TEveTrackPropagator.cxx:496
 TEveTrackPropagator.cxx:497
 TEveTrackPropagator.cxx:498
 TEveTrackPropagator.cxx:499
 TEveTrackPropagator.cxx:500
 TEveTrackPropagator.cxx:501
 TEveTrackPropagator.cxx:502
 TEveTrackPropagator.cxx:503
 TEveTrackPropagator.cxx:504
 TEveTrackPropagator.cxx:505
 TEveTrackPropagator.cxx:506
 TEveTrackPropagator.cxx:507
 TEveTrackPropagator.cxx:508
 TEveTrackPropagator.cxx:509
 TEveTrackPropagator.cxx:510
 TEveTrackPropagator.cxx:511
 TEveTrackPropagator.cxx:512
 TEveTrackPropagator.cxx:513
 TEveTrackPropagator.cxx:514
 TEveTrackPropagator.cxx:515
 TEveTrackPropagator.cxx:516
 TEveTrackPropagator.cxx:517
 TEveTrackPropagator.cxx:518
 TEveTrackPropagator.cxx:519
 TEveTrackPropagator.cxx:520
 TEveTrackPropagator.cxx:521
 TEveTrackPropagator.cxx:522
 TEveTrackPropagator.cxx:523
 TEveTrackPropagator.cxx:524
 TEveTrackPropagator.cxx:525
 TEveTrackPropagator.cxx:526
 TEveTrackPropagator.cxx:527
 TEveTrackPropagator.cxx:528
 TEveTrackPropagator.cxx:529
 TEveTrackPropagator.cxx:530
 TEveTrackPropagator.cxx:531
 TEveTrackPropagator.cxx:532
 TEveTrackPropagator.cxx:533
 TEveTrackPropagator.cxx:534
 TEveTrackPropagator.cxx:535
 TEveTrackPropagator.cxx:536
 TEveTrackPropagator.cxx:537
 TEveTrackPropagator.cxx:538
 TEveTrackPropagator.cxx:539
 TEveTrackPropagator.cxx:540
 TEveTrackPropagator.cxx:541
 TEveTrackPropagator.cxx:542
 TEveTrackPropagator.cxx:543
 TEveTrackPropagator.cxx:544
 TEveTrackPropagator.cxx:545
 TEveTrackPropagator.cxx:546
 TEveTrackPropagator.cxx:547
 TEveTrackPropagator.cxx:548
 TEveTrackPropagator.cxx:549
 TEveTrackPropagator.cxx:550
 TEveTrackPropagator.cxx:551
 TEveTrackPropagator.cxx:552
 TEveTrackPropagator.cxx:553
 TEveTrackPropagator.cxx:554
 TEveTrackPropagator.cxx:555
 TEveTrackPropagator.cxx:556
 TEveTrackPropagator.cxx:557
 TEveTrackPropagator.cxx:558
 TEveTrackPropagator.cxx:559
 TEveTrackPropagator.cxx:560
 TEveTrackPropagator.cxx:561
 TEveTrackPropagator.cxx:562
 TEveTrackPropagator.cxx:563
 TEveTrackPropagator.cxx:564
 TEveTrackPropagator.cxx:565
 TEveTrackPropagator.cxx:566
 TEveTrackPropagator.cxx:567
 TEveTrackPropagator.cxx:568
 TEveTrackPropagator.cxx:569
 TEveTrackPropagator.cxx:570
 TEveTrackPropagator.cxx:571
 TEveTrackPropagator.cxx:572
 TEveTrackPropagator.cxx:573
 TEveTrackPropagator.cxx:574
 TEveTrackPropagator.cxx:575
 TEveTrackPropagator.cxx:576
 TEveTrackPropagator.cxx:577
 TEveTrackPropagator.cxx:578
 TEveTrackPropagator.cxx:579
 TEveTrackPropagator.cxx:580
 TEveTrackPropagator.cxx:581
 TEveTrackPropagator.cxx:582
 TEveTrackPropagator.cxx:583
 TEveTrackPropagator.cxx:584
 TEveTrackPropagator.cxx:585
 TEveTrackPropagator.cxx:586
 TEveTrackPropagator.cxx:587
 TEveTrackPropagator.cxx:588
 TEveTrackPropagator.cxx:589
 TEveTrackPropagator.cxx:590
 TEveTrackPropagator.cxx:591
 TEveTrackPropagator.cxx:592
 TEveTrackPropagator.cxx:593
 TEveTrackPropagator.cxx:594
 TEveTrackPropagator.cxx:595
 TEveTrackPropagator.cxx:596
 TEveTrackPropagator.cxx:597
 TEveTrackPropagator.cxx:598
 TEveTrackPropagator.cxx:599
 TEveTrackPropagator.cxx:600
 TEveTrackPropagator.cxx:601
 TEveTrackPropagator.cxx:602
 TEveTrackPropagator.cxx:603
 TEveTrackPropagator.cxx:604
 TEveTrackPropagator.cxx:605
 TEveTrackPropagator.cxx:606
 TEveTrackPropagator.cxx:607
 TEveTrackPropagator.cxx:608
 TEveTrackPropagator.cxx:609
 TEveTrackPropagator.cxx:610
 TEveTrackPropagator.cxx:611
 TEveTrackPropagator.cxx:612
 TEveTrackPropagator.cxx:613
 TEveTrackPropagator.cxx:614
 TEveTrackPropagator.cxx:615
 TEveTrackPropagator.cxx:616
 TEveTrackPropagator.cxx:617
 TEveTrackPropagator.cxx:618
 TEveTrackPropagator.cxx:619
 TEveTrackPropagator.cxx:620
 TEveTrackPropagator.cxx:621
 TEveTrackPropagator.cxx:622
 TEveTrackPropagator.cxx:623
 TEveTrackPropagator.cxx:624
 TEveTrackPropagator.cxx:625
 TEveTrackPropagator.cxx:626
 TEveTrackPropagator.cxx:627
 TEveTrackPropagator.cxx:628
 TEveTrackPropagator.cxx:629
 TEveTrackPropagator.cxx:630
 TEveTrackPropagator.cxx:631
 TEveTrackPropagator.cxx:632
 TEveTrackPropagator.cxx:633
 TEveTrackPropagator.cxx:634
 TEveTrackPropagator.cxx:635
 TEveTrackPropagator.cxx:636
 TEveTrackPropagator.cxx:637
 TEveTrackPropagator.cxx:638
 TEveTrackPropagator.cxx:639
 TEveTrackPropagator.cxx:640
 TEveTrackPropagator.cxx:641
 TEveTrackPropagator.cxx:642
 TEveTrackPropagator.cxx:643
 TEveTrackPropagator.cxx:644
 TEveTrackPropagator.cxx:645
 TEveTrackPropagator.cxx:646
 TEveTrackPropagator.cxx:647
 TEveTrackPropagator.cxx:648
 TEveTrackPropagator.cxx:649
 TEveTrackPropagator.cxx:650
 TEveTrackPropagator.cxx:651
 TEveTrackPropagator.cxx:652
 TEveTrackPropagator.cxx:653
 TEveTrackPropagator.cxx:654
 TEveTrackPropagator.cxx:655
 TEveTrackPropagator.cxx:656
 TEveTrackPropagator.cxx:657
 TEveTrackPropagator.cxx:658
 TEveTrackPropagator.cxx:659
 TEveTrackPropagator.cxx:660
 TEveTrackPropagator.cxx:661
 TEveTrackPropagator.cxx:662
 TEveTrackPropagator.cxx:663
 TEveTrackPropagator.cxx:664
 TEveTrackPropagator.cxx:665
 TEveTrackPropagator.cxx:666
 TEveTrackPropagator.cxx:667
 TEveTrackPropagator.cxx:668
 TEveTrackPropagator.cxx:669
 TEveTrackPropagator.cxx:670
 TEveTrackPropagator.cxx:671
 TEveTrackPropagator.cxx:672
 TEveTrackPropagator.cxx:673
 TEveTrackPropagator.cxx:674
 TEveTrackPropagator.cxx:675
 TEveTrackPropagator.cxx:676
 TEveTrackPropagator.cxx:677
 TEveTrackPropagator.cxx:678
 TEveTrackPropagator.cxx:679
 TEveTrackPropagator.cxx:680
 TEveTrackPropagator.cxx:681
 TEveTrackPropagator.cxx:682
 TEveTrackPropagator.cxx:683
 TEveTrackPropagator.cxx:684
 TEveTrackPropagator.cxx:685
 TEveTrackPropagator.cxx:686
 TEveTrackPropagator.cxx:687
 TEveTrackPropagator.cxx:688
 TEveTrackPropagator.cxx:689
 TEveTrackPropagator.cxx:690
 TEveTrackPropagator.cxx:691
 TEveTrackPropagator.cxx:692
 TEveTrackPropagator.cxx:693
 TEveTrackPropagator.cxx:694
 TEveTrackPropagator.cxx:695
 TEveTrackPropagator.cxx:696
 TEveTrackPropagator.cxx:697
 TEveTrackPropagator.cxx:698
 TEveTrackPropagator.cxx:699
 TEveTrackPropagator.cxx:700
 TEveTrackPropagator.cxx:701
 TEveTrackPropagator.cxx:702
 TEveTrackPropagator.cxx:703
 TEveTrackPropagator.cxx:704
 TEveTrackPropagator.cxx:705
 TEveTrackPropagator.cxx:706
 TEveTrackPropagator.cxx:707
 TEveTrackPropagator.cxx:708
 TEveTrackPropagator.cxx:709
 TEveTrackPropagator.cxx:710
 TEveTrackPropagator.cxx:711
 TEveTrackPropagator.cxx:712
 TEveTrackPropagator.cxx:713
 TEveTrackPropagator.cxx:714
 TEveTrackPropagator.cxx:715
 TEveTrackPropagator.cxx:716
 TEveTrackPropagator.cxx:717
 TEveTrackPropagator.cxx:718
 TEveTrackPropagator.cxx:719
 TEveTrackPropagator.cxx:720
 TEveTrackPropagator.cxx:721
 TEveTrackPropagator.cxx:722
 TEveTrackPropagator.cxx:723
 TEveTrackPropagator.cxx:724
 TEveTrackPropagator.cxx:725
 TEveTrackPropagator.cxx:726
 TEveTrackPropagator.cxx:727
 TEveTrackPropagator.cxx:728
 TEveTrackPropagator.cxx:729
 TEveTrackPropagator.cxx:730
 TEveTrackPropagator.cxx:731
 TEveTrackPropagator.cxx:732
 TEveTrackPropagator.cxx:733
 TEveTrackPropagator.cxx:734
 TEveTrackPropagator.cxx:735
 TEveTrackPropagator.cxx:736
 TEveTrackPropagator.cxx:737
 TEveTrackPropagator.cxx:738
 TEveTrackPropagator.cxx:739
 TEveTrackPropagator.cxx:740
 TEveTrackPropagator.cxx:741
 TEveTrackPropagator.cxx:742
 TEveTrackPropagator.cxx:743
 TEveTrackPropagator.cxx:744
 TEveTrackPropagator.cxx:745
 TEveTrackPropagator.cxx:746
 TEveTrackPropagator.cxx:747
 TEveTrackPropagator.cxx:748
 TEveTrackPropagator.cxx:749
 TEveTrackPropagator.cxx:750
 TEveTrackPropagator.cxx:751
 TEveTrackPropagator.cxx:752
 TEveTrackPropagator.cxx:753
 TEveTrackPropagator.cxx:754
 TEveTrackPropagator.cxx:755
 TEveTrackPropagator.cxx:756
 TEveTrackPropagator.cxx:757
 TEveTrackPropagator.cxx:758
 TEveTrackPropagator.cxx:759
 TEveTrackPropagator.cxx:760
 TEveTrackPropagator.cxx:761
 TEveTrackPropagator.cxx:762
 TEveTrackPropagator.cxx:763
 TEveTrackPropagator.cxx:764
 TEveTrackPropagator.cxx:765
 TEveTrackPropagator.cxx:766
 TEveTrackPropagator.cxx:767
 TEveTrackPropagator.cxx:768
 TEveTrackPropagator.cxx:769
 TEveTrackPropagator.cxx:770
 TEveTrackPropagator.cxx:771
 TEveTrackPropagator.cxx:772
 TEveTrackPropagator.cxx:773
 TEveTrackPropagator.cxx:774
 TEveTrackPropagator.cxx:775
 TEveTrackPropagator.cxx:776
 TEveTrackPropagator.cxx:777
 TEveTrackPropagator.cxx:778
 TEveTrackPropagator.cxx:779
 TEveTrackPropagator.cxx:780
 TEveTrackPropagator.cxx:781
 TEveTrackPropagator.cxx:782
 TEveTrackPropagator.cxx:783
 TEveTrackPropagator.cxx:784
 TEveTrackPropagator.cxx:785
 TEveTrackPropagator.cxx:786
 TEveTrackPropagator.cxx:787
 TEveTrackPropagator.cxx:788
 TEveTrackPropagator.cxx:789
 TEveTrackPropagator.cxx:790
 TEveTrackPropagator.cxx:791
 TEveTrackPropagator.cxx:792
 TEveTrackPropagator.cxx:793
 TEveTrackPropagator.cxx:794
 TEveTrackPropagator.cxx:795
 TEveTrackPropagator.cxx:796
 TEveTrackPropagator.cxx:797
 TEveTrackPropagator.cxx:798
 TEveTrackPropagator.cxx:799
 TEveTrackPropagator.cxx:800
 TEveTrackPropagator.cxx:801
 TEveTrackPropagator.cxx:802
 TEveTrackPropagator.cxx:803
 TEveTrackPropagator.cxx:804
 TEveTrackPropagator.cxx:805
 TEveTrackPropagator.cxx:806
 TEveTrackPropagator.cxx:807
 TEveTrackPropagator.cxx:808
 TEveTrackPropagator.cxx:809
 TEveTrackPropagator.cxx:810
 TEveTrackPropagator.cxx:811
 TEveTrackPropagator.cxx:812
 TEveTrackPropagator.cxx:813
 TEveTrackPropagator.cxx:814
 TEveTrackPropagator.cxx:815
 TEveTrackPropagator.cxx:816
 TEveTrackPropagator.cxx:817
 TEveTrackPropagator.cxx:818
 TEveTrackPropagator.cxx:819
 TEveTrackPropagator.cxx:820
 TEveTrackPropagator.cxx:821
 TEveTrackPropagator.cxx:822
 TEveTrackPropagator.cxx:823
 TEveTrackPropagator.cxx:824
 TEveTrackPropagator.cxx:825
 TEveTrackPropagator.cxx:826
 TEveTrackPropagator.cxx:827
 TEveTrackPropagator.cxx:828
 TEveTrackPropagator.cxx:829
 TEveTrackPropagator.cxx:830
 TEveTrackPropagator.cxx:831
 TEveTrackPropagator.cxx:832
 TEveTrackPropagator.cxx:833
 TEveTrackPropagator.cxx:834
 TEveTrackPropagator.cxx:835
 TEveTrackPropagator.cxx:836
 TEveTrackPropagator.cxx:837
 TEveTrackPropagator.cxx:838
 TEveTrackPropagator.cxx:839
 TEveTrackPropagator.cxx:840
 TEveTrackPropagator.cxx:841
 TEveTrackPropagator.cxx:842
 TEveTrackPropagator.cxx:843
 TEveTrackPropagator.cxx:844
 TEveTrackPropagator.cxx:845
 TEveTrackPropagator.cxx:846
 TEveTrackPropagator.cxx:847
 TEveTrackPropagator.cxx:848
 TEveTrackPropagator.cxx:849
 TEveTrackPropagator.cxx:850
 TEveTrackPropagator.cxx:851
 TEveTrackPropagator.cxx:852
 TEveTrackPropagator.cxx:853
 TEveTrackPropagator.cxx:854
 TEveTrackPropagator.cxx:855
 TEveTrackPropagator.cxx:856
 TEveTrackPropagator.cxx:857
 TEveTrackPropagator.cxx:858
 TEveTrackPropagator.cxx:859
 TEveTrackPropagator.cxx:860
 TEveTrackPropagator.cxx:861
 TEveTrackPropagator.cxx:862
 TEveTrackPropagator.cxx:863
 TEveTrackPropagator.cxx:864
 TEveTrackPropagator.cxx:865
 TEveTrackPropagator.cxx:866
 TEveTrackPropagator.cxx:867
 TEveTrackPropagator.cxx:868
 TEveTrackPropagator.cxx:869
 TEveTrackPropagator.cxx:870
 TEveTrackPropagator.cxx:871
 TEveTrackPropagator.cxx:872
 TEveTrackPropagator.cxx:873
 TEveTrackPropagator.cxx:874
 TEveTrackPropagator.cxx:875
 TEveTrackPropagator.cxx:876
 TEveTrackPropagator.cxx:877
 TEveTrackPropagator.cxx:878
 TEveTrackPropagator.cxx:879
 TEveTrackPropagator.cxx:880
 TEveTrackPropagator.cxx:881
 TEveTrackPropagator.cxx:882
 TEveTrackPropagator.cxx:883
 TEveTrackPropagator.cxx:884
 TEveTrackPropagator.cxx:885
 TEveTrackPropagator.cxx:886
 TEveTrackPropagator.cxx:887
 TEveTrackPropagator.cxx:888
 TEveTrackPropagator.cxx:889
 TEveTrackPropagator.cxx:890
 TEveTrackPropagator.cxx:891
 TEveTrackPropagator.cxx:892
 TEveTrackPropagator.cxx:893
 TEveTrackPropagator.cxx:894
 TEveTrackPropagator.cxx:895
 TEveTrackPropagator.cxx:896
 TEveTrackPropagator.cxx:897
 TEveTrackPropagator.cxx:898
 TEveTrackPropagator.cxx:899
 TEveTrackPropagator.cxx:900
 TEveTrackPropagator.cxx:901
 TEveTrackPropagator.cxx:902
 TEveTrackPropagator.cxx:903
 TEveTrackPropagator.cxx:904
 TEveTrackPropagator.cxx:905
 TEveTrackPropagator.cxx:906
 TEveTrackPropagator.cxx:907
 TEveTrackPropagator.cxx:908
 TEveTrackPropagator.cxx:909
 TEveTrackPropagator.cxx:910
 TEveTrackPropagator.cxx:911
 TEveTrackPropagator.cxx:912
 TEveTrackPropagator.cxx:913
 TEveTrackPropagator.cxx:914
 TEveTrackPropagator.cxx:915
 TEveTrackPropagator.cxx:916
 TEveTrackPropagator.cxx:917
 TEveTrackPropagator.cxx:918
 TEveTrackPropagator.cxx:919
 TEveTrackPropagator.cxx:920
 TEveTrackPropagator.cxx:921
 TEveTrackPropagator.cxx:922
 TEveTrackPropagator.cxx:923
 TEveTrackPropagator.cxx:924
 TEveTrackPropagator.cxx:925
 TEveTrackPropagator.cxx:926
 TEveTrackPropagator.cxx:927
 TEveTrackPropagator.cxx:928
 TEveTrackPropagator.cxx:929
 TEveTrackPropagator.cxx:930
 TEveTrackPropagator.cxx:931
 TEveTrackPropagator.cxx:932
 TEveTrackPropagator.cxx:933
 TEveTrackPropagator.cxx:934
 TEveTrackPropagator.cxx:935
 TEveTrackPropagator.cxx:936
 TEveTrackPropagator.cxx:937
 TEveTrackPropagator.cxx:938
 TEveTrackPropagator.cxx:939
 TEveTrackPropagator.cxx:940
 TEveTrackPropagator.cxx:941
 TEveTrackPropagator.cxx:942
 TEveTrackPropagator.cxx:943
 TEveTrackPropagator.cxx:944
 TEveTrackPropagator.cxx:945
 TEveTrackPropagator.cxx:946
 TEveTrackPropagator.cxx:947
 TEveTrackPropagator.cxx:948
 TEveTrackPropagator.cxx:949
 TEveTrackPropagator.cxx:950
 TEveTrackPropagator.cxx:951
 TEveTrackPropagator.cxx:952
 TEveTrackPropagator.cxx:953
 TEveTrackPropagator.cxx:954
 TEveTrackPropagator.cxx:955
 TEveTrackPropagator.cxx:956
 TEveTrackPropagator.cxx:957
 TEveTrackPropagator.cxx:958
 TEveTrackPropagator.cxx:959
 TEveTrackPropagator.cxx:960
 TEveTrackPropagator.cxx:961
 TEveTrackPropagator.cxx:962
 TEveTrackPropagator.cxx:963
 TEveTrackPropagator.cxx:964
 TEveTrackPropagator.cxx:965
 TEveTrackPropagator.cxx:966
 TEveTrackPropagator.cxx:967
 TEveTrackPropagator.cxx:968
 TEveTrackPropagator.cxx:969
 TEveTrackPropagator.cxx:970
 TEveTrackPropagator.cxx:971
 TEveTrackPropagator.cxx:972
 TEveTrackPropagator.cxx:973
 TEveTrackPropagator.cxx:974
 TEveTrackPropagator.cxx:975
 TEveTrackPropagator.cxx:976
 TEveTrackPropagator.cxx:977
 TEveTrackPropagator.cxx:978
 TEveTrackPropagator.cxx:979
 TEveTrackPropagator.cxx:980
 TEveTrackPropagator.cxx:981
 TEveTrackPropagator.cxx:982
 TEveTrackPropagator.cxx:983
 TEveTrackPropagator.cxx:984
 TEveTrackPropagator.cxx:985
 TEveTrackPropagator.cxx:986
 TEveTrackPropagator.cxx:987
 TEveTrackPropagator.cxx:988
 TEveTrackPropagator.cxx:989
 TEveTrackPropagator.cxx:990
 TEveTrackPropagator.cxx:991
 TEveTrackPropagator.cxx:992
 TEveTrackPropagator.cxx:993
 TEveTrackPropagator.cxx:994
 TEveTrackPropagator.cxx:995
 TEveTrackPropagator.cxx:996
 TEveTrackPropagator.cxx:997
 TEveTrackPropagator.cxx:998
 TEveTrackPropagator.cxx:999
 TEveTrackPropagator.cxx:1000
 TEveTrackPropagator.cxx:1001
 TEveTrackPropagator.cxx:1002
 TEveTrackPropagator.cxx:1003
 TEveTrackPropagator.cxx:1004
 TEveTrackPropagator.cxx:1005
 TEveTrackPropagator.cxx:1006
 TEveTrackPropagator.cxx:1007
 TEveTrackPropagator.cxx:1008
 TEveTrackPropagator.cxx:1009
 TEveTrackPropagator.cxx:1010
 TEveTrackPropagator.cxx:1011
 TEveTrackPropagator.cxx:1012
 TEveTrackPropagator.cxx:1013
 TEveTrackPropagator.cxx:1014
 TEveTrackPropagator.cxx:1015
 TEveTrackPropagator.cxx:1016
 TEveTrackPropagator.cxx:1017
 TEveTrackPropagator.cxx:1018
 TEveTrackPropagator.cxx:1019
 TEveTrackPropagator.cxx:1020
 TEveTrackPropagator.cxx:1021
 TEveTrackPropagator.cxx:1022
 TEveTrackPropagator.cxx:1023
 TEveTrackPropagator.cxx:1024
 TEveTrackPropagator.cxx:1025
 TEveTrackPropagator.cxx:1026
 TEveTrackPropagator.cxx:1027
 TEveTrackPropagator.cxx:1028
 TEveTrackPropagator.cxx:1029
 TEveTrackPropagator.cxx:1030
 TEveTrackPropagator.cxx:1031
 TEveTrackPropagator.cxx:1032
 TEveTrackPropagator.cxx:1033
 TEveTrackPropagator.cxx:1034
 TEveTrackPropagator.cxx:1035
 TEveTrackPropagator.cxx:1036
 TEveTrackPropagator.cxx:1037
 TEveTrackPropagator.cxx:1038
 TEveTrackPropagator.cxx:1039
 TEveTrackPropagator.cxx:1040
 TEveTrackPropagator.cxx:1041
 TEveTrackPropagator.cxx:1042
 TEveTrackPropagator.cxx:1043
 TEveTrackPropagator.cxx:1044
 TEveTrackPropagator.cxx:1045
 TEveTrackPropagator.cxx:1046
 TEveTrackPropagator.cxx:1047
 TEveTrackPropagator.cxx:1048
 TEveTrackPropagator.cxx:1049
 TEveTrackPropagator.cxx:1050
 TEveTrackPropagator.cxx:1051
 TEveTrackPropagator.cxx:1052
 TEveTrackPropagator.cxx:1053
 TEveTrackPropagator.cxx:1054
 TEveTrackPropagator.cxx:1055
 TEveTrackPropagator.cxx:1056
 TEveTrackPropagator.cxx:1057
 TEveTrackPropagator.cxx:1058
 TEveTrackPropagator.cxx:1059
 TEveTrackPropagator.cxx:1060
 TEveTrackPropagator.cxx:1061
 TEveTrackPropagator.cxx:1062
 TEveTrackPropagator.cxx:1063
 TEveTrackPropagator.cxx:1064
 TEveTrackPropagator.cxx:1065
 TEveTrackPropagator.cxx:1066
 TEveTrackPropagator.cxx:1067
 TEveTrackPropagator.cxx:1068
 TEveTrackPropagator.cxx:1069
 TEveTrackPropagator.cxx:1070
 TEveTrackPropagator.cxx:1071
 TEveTrackPropagator.cxx:1072
 TEveTrackPropagator.cxx:1073
 TEveTrackPropagator.cxx:1074
 TEveTrackPropagator.cxx:1075
 TEveTrackPropagator.cxx:1076
 TEveTrackPropagator.cxx:1077
 TEveTrackPropagator.cxx:1078
 TEveTrackPropagator.cxx:1079
 TEveTrackPropagator.cxx:1080
 TEveTrackPropagator.cxx:1081