ROOT logo

// Main authors: Matevz Tadel & Alja Mrak-Tadel & Bogdan Vulpescu: 2006, 2007

/**************************************************************************
 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
 * full copyright notice.                                                 *
 **************************************************************************/

#include "AliEveMUONTrack.h"

#include <EveBase/AliEveEventManager.h>

#include <AliMagF.h>
#include <AliLog.h>
#include <AliESDMuonTrack.h>
#include <AliESDEvent.h>
#include <AliESDVertex.h>
#include <AliRunLoader.h>
#include <AliRun.h>

#include <AliMUONTrack.h>
#include <AliMUONTriggerTrack.h>
#include <AliMUONTrackParam.h>
#include <AliMUONConstants.h>
#include <AliMUONESDInterface.h>
#include <AliMUONVCluster.h>

#include <TObjArray.h>
#include <TGeoGlobalMagField.h>
#include <TParticle.h>
#include <TParticlePDG.h>
#include <TROOT.h>
#include <TStyle.h>

#include <Riostream.h>

//==============================================================================
// AliEveMUONTrack
//==============================================================================
//==============================================================================

//______________________________________________________________________________
// Produce TEveUtil:TEveTrack from AliMUONTrack with dipole field model

using std::cout;
using std::endl;
using std::setw;
using std::setprecision;
ClassImp(AliEveMUONTrack)


//______________________________________________________________________________
AliEveMUONTrack::AliEveMUONTrack(TEveRecTrack* t, TEveTrackPropagator* rs) :
  TEveTrack(t,rs),
  fTrack(0),
  fPart(0),
  fCount(0),
  fIsMUONTrack(kFALSE),
  fIsMUONTriggerTrack(kFALSE),
  fIsESDTrack(kFALSE),
  fIsMCTrack(kFALSE),
  fIsRefTrack(kFALSE)
{
  //
  // constructor
  //
}

//______________________________________________________________________________
AliEveMUONTrack::~AliEveMUONTrack()
{
  //
  // destructor
  //

  if (fIsRefTrack || fIsESDTrack) delete fTrack;
  if (fIsMCTrack) delete fPart;

}

//______________________________________________________________________________
void AliEveMUONTrack::PrintMCTrackInfo()
{
  //
  // information about the MC particle
  //

  Float_t pt, p;

  if (!fPart) {
    cout << "   ! no particle ..." << endl;
    return;
  }

  cout << endl;
  cout << "   MC track parameters at vertex" << endl;
  cout << "   -------------------------------------------------------------------------------------" << endl;
  cout << "   PDG code          Vx           Vy           Vz           Px           Py           Pz   " << endl;

  cout << "   " <<
    setw(8) << setprecision(0) <<
    fPart->GetPdgCode() << "    " <<
    setw(8) << setprecision(3) <<
    fPart->Vx() << "     " <<
    setw(8) << setprecision(3) <<
    fPart->Vy() << "     " <<
    setw(8) << setprecision(3) <<
    fPart->Vz() << "     " <<
    setw(8) << setprecision(3) <<
    fPart->Px() << "     " <<
    setw(8) << setprecision(3) <<
    fPart->Py() << "     " <<
    setw(8) << setprecision(4) <<
    fPart->Pz() << "     " <<

    endl;

  pt = TMath::Sqrt(fPart->Px()*fPart->Px()+fPart->Py()*fPart->Py());
  p  = TMath::Sqrt(fPart->Px()*fPart->Px()+fPart->Py()*fPart->Py()+fPart->Pz()*fPart->Pz());

  cout << endl;
  cout << "   Pt = " <<
    setw(8) << setprecision(3) <<
    pt << "  GeV/c" << endl;

  cout << "   P  = " <<
    setw(8) << setprecision(4) <<
    p  << "  GeV/c" << endl;

}

//______________________________________________________________________________
void AliEveMUONTrack::PrintMUONTrackInfo()
{
  //
  // information about the reconstructed/reference track; at hits and at vertex
  //

  Double_t radDeg = 180.0/TMath::Pi();

  Int_t nparam;
  Float_t pt, bc, nbc, zc;
  AliMUONTrackParam *mtp;
  TObjArray *trackParamAtCluster;

  if (!fTrack) {
    cout << "   ! no reconstructed track ..." << endl;
    return;
  }

  if (fIsMUONTrack) {
    cout << endl;
    cout << "   TEveTrack number " << fLabel << endl;
    cout << "   ---------------------------------------------------------------------------------------------------------------------------------" << endl;
    cout << endl;
    cout << "   Number of clusters       " << fTrack->GetNClusters() << endl;
    cout << "   Match to trigger         " << fTrack->GetMatchTrigger() << endl;
    if (fTrack->GetMatchTrigger()) {
      cout << "   Chi2 tracking-trigger    " << fTrack->GetChi2MatchTrigger() << endl;
      cout << "   Local trigger number     " << fTrack->GetLoTrgNum() << endl;
    }
  }

  if (fIsRefTrack) {
    cout << endl;
    cout << "   TEveTrack reference number " << fLabel << endl;
    cout << "   ---------------------------------------------------------------------------------------------------------------------------------" << endl;
    cout << endl;
    cout << "   Number of clusters       " << fTrack->GetNClusters() << endl;
  }

  trackParamAtCluster = fTrack->GetTrackParamAtCluster();
  nparam = trackParamAtCluster->GetEntries();

  cout << endl;
  cout << "   trackParamAtCluster entries  " << nparam << "" << endl;
  cout << "   ---------------------------------------------------------------------------------------------------------------------------------" << endl;
  cout << "   Number   InvBendMom   BendSlope   NonBendSlope   BendCoord   NonBendCoord               Z        Px        Py        Pz         P" << endl;

  for (Int_t i = 0; i < nparam; i++) {

    mtp = (AliMUONTrackParam*)trackParamAtCluster->At(i);

    cout <<
      setw(9)<< setprecision(3) <<
      i << "     " <<

      setw(8) << setprecision(3) <<
      mtp->GetInverseBendingMomentum() << "    " <<

      setw(8) << setprecision(3) <<
      mtp->GetBendingSlope()*radDeg << "       " <<

      setw(8) << setprecision(3) <<
      mtp->GetNonBendingSlope()*radDeg << "    " <<

      setw(8) << setprecision(4) <<
      mtp->GetBendingCoor() << "       " <<

      setw(8) << setprecision(4) <<
      mtp->GetNonBendingCoor() << "      " <<

      setw(10) << setprecision(6) <<
      mtp->GetZ() << "  " <<

      setw(8) << setprecision(4) <<
      mtp->Px() << "  " <<

      setw(8) << setprecision(4) <<
      mtp->Py() << "  " <<

      setw(8) << setprecision(4) <<
      mtp->Pz() << "  " <<

      setw(8) << setprecision(4) <<
      mtp->P() << "  " <<

      endl;

  }

  cout << endl;
  cout << "   TEveTrack parameters at vertex" << endl;
  cout << "   --------------------------------------------------------------------------------------------------------------------" << endl;
  cout << "   InvBendMom   BendSlope   NonBendSlope   BendCoord   NonBendCoord           Z        Px        Py        Pz         P" << endl;

  mtp = (AliMUONTrackParam*)fTrack->GetTrackParamAtVertex();

  bc  = mtp->GetBendingCoor();
  nbc = mtp->GetNonBendingCoor();
  zc  = mtp->GetZ();
  if (bc  < 0.001) bc  = 0.0;
  if (nbc < 0.001) nbc = 0.0;
  if (zc  < 0.001) zc  = 0.0;

  cout << "     " <<
    setw(8) << setprecision(3) <<
    mtp->GetInverseBendingMomentum() << "    " <<

    setw(8) << setprecision(3) <<
    mtp->GetBendingSlope()*radDeg << "       " <<

    setw(8) << setprecision(3) <<
    mtp->GetNonBendingSlope()*radDeg << "    " <<

    setw(8) << setprecision(4) <<
    bc << "       " <<

    setw(8) << setprecision(4) <<
    nbc << "  " <<

    setw(10) << setprecision(6) <<
    zc << "  " <<

    setw(8) << setprecision(4) <<
    mtp->Px() << "  " <<

    setw(8) << setprecision(4) <<
    mtp->Py() << "  " <<

    setw(8) << setprecision(4) <<
    mtp->Pz() << "  " <<

    setw(8) << setprecision(4) <<
    mtp->P() << "  " <<

    endl;

  pt = TMath::Sqrt(mtp->Px()*mtp->Px()+mtp->Py()*mtp->Py());

  cout << endl;
  cout << "   Pt = " <<
    setw(8) << setprecision(3) <<
    pt << "  GeV/c" << endl;

}

//______________________________________________________________________________
void AliEveMUONTrack::PrintMUONTriggerTrackInfo()
{
  //
  // information about the trigger track
  //

  // Double_t radDeg = 180.0/TMath::Pi();

}

//______________________________________________________________________________
void AliEveMUONTrack::PrintESDTrackInfo()
{
  //
  // information about the reconstructed ESD track at vertex
  //

  Double_t radDeg = 180.0/TMath::Pi();
  Float_t pt;

  AliMUONTrackParam *mtp = (AliMUONTrackParam*)fTrack->GetTrackParamAtVertex();

  cout << endl;
  cout << "   ESD muon track " << endl;
  cout << "   -----------------------------------------------------------------------------------------------------------" << endl;
  cout << "   InvBendMom   BendSlope   NonBendSlope    BendCoord   NonBendCoord           Z        Px        Py        Pz" << endl;

  cout << "     " <<

    setw(8) << setprecision(4) <<
    mtp->GetInverseBendingMomentum() << "    " <<

    setw(8) << setprecision(3) <<
    mtp->GetBendingSlope()*radDeg << "       " <<

    setw(8) << setprecision(3) <<
    mtp->GetNonBendingSlope()*radDeg << "     " <<

    setw(8) << setprecision(4) <<
    mtp->GetBendingCoor() << "       " <<

    setw(8) << setprecision(4) <<
    mtp->GetNonBendingCoor() << "  " <<

    setw(10) << setprecision(6) <<
    mtp->GetZ() << "  " <<

    setw(8) << setprecision(3) <<
    mtp->Px() << "  " <<

    setw(8) << setprecision(3) <<
    mtp->Py() << "  " <<

    setw(8) << setprecision(3) <<
    mtp->Pz() << "  " <<

    endl;

  pt = TMath::Sqrt(mtp->Px()*mtp->Px()+mtp->Py()*mtp->Py());

  cout << endl;
  cout << "   Pt = " <<
    setw(8) << setprecision(3) <<
    pt << "  GeV/c" << endl;

  cout << "   P  = " <<
    setw(8) << setprecision(4) <<
    mtp->P()  << "  GeV/c" << endl;

  AliESDEvent* esd = AliEveEventManager::AssertESD();

  Double_t spdVertexX = 0;
  Double_t spdVertexY = 0;
  Double_t spdVertexZ = 0;
  Double_t esdVertexX = 0;
  Double_t esdVertexY = 0;
  Double_t esdVertexZ = 0;

  AliESDVertex* spdVertex = (AliESDVertex*) esd->GetVertex();
  if (spdVertex->GetNContributors()) {
    spdVertexZ = spdVertex->GetZ();
    spdVertexY = spdVertex->GetY();
    spdVertexX = spdVertex->GetX();
  }

  AliESDVertex* esdVertex = (AliESDVertex*) esd->GetPrimaryVertex();
  if (esdVertex->GetNContributors()) {
    esdVertexZ = esdVertex->GetZ();
    esdVertexY = esdVertex->GetY();
    esdVertexX = esdVertex->GetX();
  }

  Float_t t0v = esd->GetT0zVertex();

  cout << endl;
  cout << endl;
  cout << "External vertex SPD: " <<
    setw(3) <<
    spdVertex->GetNContributors() << "   " <<
    setw(8) << setprecision(3) <<
    spdVertexX << "   " <<
    spdVertexY << "   " <<
    spdVertexZ << "   " << endl;
  cout << "External vertex ESD: " <<
    setw(3) <<
    esdVertex->GetNContributors() << "   " <<
    setw(8) << setprecision(3) <<
    esdVertexX << "   " <<
    esdVertexY << "   " <<
    esdVertexZ << "   " << endl;
  cout << "External vertex T0: " <<
    setw(8) << setprecision(3) <<
    t0v << "   " << endl;

}

//______________________________________________________________________________
void AliEveMUONTrack::MUONTrackInfo()
{
  //
  // MENU function
  //

  if (fIsMCTrack) {
    PrintMCTrackInfo();
  }

  if (fIsMUONTrack || fIsRefTrack) {
    PrintMUONTrackInfo();
  }

  if (fIsESDTrack) {
    PrintESDTrackInfo();
  }

  if (fIsMUONTriggerTrack) {
    PrintMUONTriggerTrackInfo();
  }

  cout << endl;
  cout << endl;
  cout << endl;
  cout << "   (slopes [deg], coord [cm], p [GeV/c])" << endl;

}

//______________________________________________________________________________
void AliEveMUONTrack::MUONTriggerInfo()
{
  //
  // MENU function
  //

  if (fIsMUONTrack) {
    TEveUtil::TEveUtil::LoadMacro("MUON_trigger_info.C");
    gROOT->ProcessLine(Form("MUON_trigger_info(%d);", fLabel));
  }
  if (fIsRefTrack) {
    cout << "This is a reference track!" << endl;
  }
  if (fIsMCTrack) {
    cout << "This is a Monte-Carlo track!" << endl;
  }
  if (fIsESDTrack) {

    AliESDEvent* esd = AliEveEventManager::AssertESD();
    ULong64_t triggerMask = esd->GetTriggerMask();

    cout << endl;
    cout << ">>>>>#########################################################################################################################" << endl;
    cout << endl;

    cout << "   ESD track trigger info" << endl;
    cout << "   -----------------------------------------------------" << endl;
    cout << endl;

    cout << "   Match to trigger         " << fTrack->GetMatchTrigger() << endl;
    cout << endl;
    cout << "   ESD trigger mask = " << triggerMask << endl;

    cout << endl;
    cout << "#########################################################################################################################<<<<<" << endl;
    cout << endl;

  }

}

//______________________________________________________________________________
void AliEveMUONTrack::MakeMUONTrack(AliMUONTrack *mtrack)
{
  //
  // builds the track with dipole field
  //

  if (!fIsESDTrack) {
    if (!fIsRefTrack) {
      fIsMUONTrack = kTRUE;
      fTrack = mtrack;
    } else {
      fTrack = new AliMUONTrack(*mtrack);
    }
  }

  Float_t ax, bx, ay, by, z;
  Float_t xr[28], yr[28], zr[28];
  Int_t chr[28];
  char form[1000];

  TMatrixD smatrix(2,2);
  TMatrixD sums(2,1);
  TMatrixD res(2,1);

  Float_t pt    = 0.0;
  Float_t pv[3] = {0., 0., 0.};

  if (fIsMUONTrack) {
    if (mtrack->GetMatchTrigger()) {
      snprintf(form,1000,"MUONTrack %2d (MT)", fLabel);
    } else {
      snprintf(form,1000,"MUONTrack %2d     ", fLabel);
    }
    SetName(form);
    SetLineStyle(1);
  }

  AliMUONTrackParam *trackParam = 0x0;
  if (fIsMUONTrack || fIsESDTrack) {
    trackParam = mtrack->GetTrackParamAtVertex();
    SetPoint(fCount,trackParam->GetNonBendingCoor(),trackParam->GetBendingCoor(),trackParam->GetZ());
    fCount++;
  }

  for (Int_t i = 0; i < 28; i++) {
    xr[i]=yr[i]=zr[i]=0.0;
    chr[i]=-1;
  }
  
  Int_t nTrackHits = mtrack->GetNClusters();
  TObjArray* trackParamAtCluster = mtrack->GetTrackParamAtCluster();
  for (Int_t iHit = 0; iHit < nTrackHits; iHit++){

    trackParam = (AliMUONTrackParam*) trackParamAtCluster->At(iHit);

    if (iHit == 0) {
      if (IsMUONTrack() || IsESDTrack()) {
	pt = TMath::Sqrt(trackParam->Px()*trackParam->Px()+trackParam->Py()*trackParam->Py());
	SetLineColor(ColorIndex(pt));
      }
      pv[0] = trackParam->Px();
      pv[1] = trackParam->Py();
      pv[2] = trackParam->Pz();
      fP.Set(pv);
    }

    xr[iHit] = trackParam->GetNonBendingCoor();
    yr[iHit] = trackParam->GetBendingCoor();
    zr[iHit] = trackParam->GetZ();
    chr[iHit] = trackParam->GetClusterPtr()->GetChamberId();

  }
  
  SetPoint(fCount,xr[0],yr[0],zr[0]);
  fCount++;
  for (Int_t iHit = 1; iHit < nTrackHits; iHit++) {
    if (chr[iHit] > 3 && chr[iHit-1] < 6) Propagate(xr,yr,zr,iHit-1,iHit);
    SetPoint(fCount,xr[iHit],yr[iHit],zr[iHit]);
    fCount++;
  }
  
  if (!fIsMUONTrack && !fIsESDTrack) return;
  
  // Propagate the track till the trigger planes
  trackParam = (AliMUONTrackParam*) trackParamAtCluster->Last();
  ax = trackParam->GetNonBendingCoor();
  bx = trackParam->GetNonBendingSlope();
  ay = trackParam->GetBendingCoor();
  by = trackParam->GetBendingSlope();
  z  = trackParam->GetZ();
  
  Float_t xtc, ytc, ztc;
  Int_t endPlane = (mtrack->GetMatchTrigger()) ? 4 : 1;
  for (Int_t ii = 0; ii < endPlane; ii++) {
    
    ztc = AliMUONConstants::DefaultChamberZ(10+ii);
    ytc = ay+by*(ztc-z);
    xtc = ax+bx*(ztc-z);
    
    //printf("tc: x %f y %f z %f \n",xtc,ytc,ztc);
    
    SetPoint(fCount,xtc,ytc,ztc);
    fCount++;
    
  }
  
}

//______________________________________________________________________________
void AliEveMUONTrack::MakeMUONTriggerTrack(AliESDMuonTrack *mtrack)
{
  //
  // builds the trigger track from one point and direction
  //

  Float_t x1   = mtrack->GetNonBendingCoorUncorrected();
  Float_t y1   = mtrack->GetBendingCoorUncorrected();
  Float_t thex = mtrack->GetThetaXUncorrected();
  Float_t they = mtrack->GetThetaYUncorrected();

  Float_t z11 = -1600.0;
  Float_t z22 = -1724.0;
  Float_t dz  = z22-z11;

  Float_t x2 = x1 + dz*TMath::Tan(thex);
  Float_t y2 = y1 + dz*TMath::Tan(they);

  SetPoint(fCount,x1,y1,z11); fCount++;
  SetPoint(fCount,x2,y2,z22); fCount++;

  char form[1000];

  snprintf(form,1000,"MUONTriggerTrack %2d",mtrack->LoCircuit());
  SetName(form);
  SetLineStyle(1);
  SetLineColor(0);

}

//______________________________________________________________________________
void AliEveMUONTrack::MakeESDTrack(AliESDMuonTrack *mtrack)
{
  //
  // builds the track with dipole field starting from the TParticle
  //
  
  fIsESDTrack = kTRUE;
  
  if (mtrack->ContainTrackerData()) {
    
    char form[1000];
    if (mtrack->GetMatchTrigger()) {
      snprintf(form,1000,"ESDTrack %2d (MT)", fLabel);
    } else {
      snprintf(form,1000,"ESDTrack %2d     ", fLabel);
    }
    SetName(form);
    SetLineStyle(3);
    SetLineColor(0);
    
    fTrack = new AliMUONTrack();
    
    // create a simple track from the ESD track
    AliMUONESDInterface::ESDToMUON(*mtrack,*fTrack);
    
    // reset track parameters at vertex to the ones at DCA
    AliMUONTrackParam paramAtDCA;
    AliMUONESDInterface::GetParamAtDCA(*mtrack, paramAtDCA);
    fTrack->SetTrackParamAtVertex(&paramAtDCA);
    
    MakeMUONTrack(fTrack);
    
  } else {
    
    MakeMUONTriggerTrack(mtrack);
    
  }
  
}

//______________________________________________________________________________
void AliEveMUONTrack::MakeMCTrack(TParticle *part)
{
  //
  // builds the track with dipole field starting from the TParticle
  //

  fIsMCTrack = kTRUE;

  fPart     = new TParticle(*part);

  char form[1000];
  snprintf(form,1000,"TEveMCTrack %2d ", fLabel);
  SetName(form);
  SetLineStyle(2);
  SetLineColor(8);

  Double_t vect[7], vout[7];
  Double_t step = 1.0;

  Float_t pv[3];
  pv[0] = fPart->Px();
  pv[1] = fPart->Py();
  pv[2] = fPart->Pz();
  fP.Set(pv);

  vect[0] = fPart->Vx();
  vect[1] = fPart->Vy();
  vect[2] = fPart->Vz();
  vect[3] = fPart->Px()/fPart->P();
  vect[4] = fPart->Py()/fPart->P();
  vect[5] = fPart->Pz()/fPart->P();
  vect[6] = fPart->P();

  TParticlePDG *ppdg = fPart->GetPDG(1);
  Int_t charge = (Int_t)(ppdg->Charge()/3.0);

  Double_t zMax = -1750.0;
  Double_t rMax =   350.0;
  Double_t r    =     0.0;

  Int_t nSteps = 0;
  while ((vect[2] > zMax) && (nSteps < 10000) && (r < rMax)) {
    nSteps++;
    OneStepRungekutta(charge, step, vect, vout);
    SetPoint(fCount,vout[0],vout[1],vout[2]);
    fCount++;
    for (Int_t i = 0; i < 7; i++) {
      vect[i] = vout[i];
    }
    r = TMath::Sqrt(vect[0]*vect[0]+vect[1]*vect[1]);
  }

}

//______________________________________________________________________________
void AliEveMUONTrack::MakeRefTrack(AliMUONTrack *mtrack)
{
  //
  // builds the track with dipole field starting from the TParticle
  //

  fIsRefTrack = kTRUE;

  char form[1000];
  snprintf(form,1000,"RefTrack %2d ", fLabel);
  SetName(form);
  SetLineStyle(2);
  SetLineColor(0);

  MakeMUONTrack(mtrack);

}

//______________________________________________________________________________
void AliEveMUONTrack::Propagate(Float_t *xr, Float_t *yr, Float_t *zr, Int_t i1, Int_t i2)
{
  //
  // propagate in magnetic field between hits of indices i1 and i2
  //

  Double_t vect[7], vout[7];
  Double_t step = 1.0;
  Double_t zMax = 0.0;
  Int_t  charge =   0;
  AliMUONTrackParam *trackParam = 0;
  TObjArray *trackParamAtCluster = 0;

  if (i2 == 9999) {
    zMax = zr[i1]+1.5*step;
  } else {
    zMax = zr[i2]+1.5*step;
  }

  trackParamAtCluster = fTrack->GetTrackParamAtCluster();

  if (IsMUONTrack() || IsESDTrack() || IsRefTrack()) {
    trackParam = (AliMUONTrackParam*)trackParamAtCluster->At(i1);
    charge = (Int_t)trackParam->GetCharge();
  } else {
    return;
  }

  vect[0] = xr[i1];
  vect[1] = yr[i1];
  vect[2] = zr[i1];
  vect[6] = trackParam->P();
  vect[3] = trackParam->Px()/vect[6];
  vect[4] = trackParam->Py()/vect[6];
  vect[5] = trackParam->Pz()/vect[6];

  Int_t nSteps = 0;
  while ((vect[2] > zMax) && (nSteps < 10000)) {
    nSteps++;
    OneStepRungekutta(charge, step, vect, vout);
    SetPoint(fCount,vout[0],vout[1],vout[2]);
    fCount++;
    for (Int_t i = 0; i < 7; i++) {
      vect[i] = vout[i];
    }
  }

}

//______________________________________________________________________________
void AliEveMUONTrack::OneStepRungekutta(Double_t charge, Double_t step,
				  Double_t* vect, Double_t* vout)
{
///	******************************************************************
///	*								 *
///	*  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 maxcut = 11;

    const Double_t kdlt   = 1e-4;
    const Double_t kdlt32 = kdlt/32.;
    const Double_t kthird = 1./3.;
    const Double_t khalf  = 0.5;
    const Double_t kec = 2.9979251e-4;

    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:
      TGeoGlobalMagField::Instance()->Field(vout,f);

      // *
      // *             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:
      TGeoGlobalMagField::Instance()->Field(xyzt,f);

      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:
      TGeoGlobalMagField::Instance()->Field(xyzt,f);

      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) > 1.e-4) {
	if (ncut++ > maxcut) break;
	h *= khalf;
	continue;
      }

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

      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);

    // 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;

    return;
}

//______________________________________________________________________________
Int_t AliEveMUONTrack::ColorIndex(Float_t val)
{
  //
  // returns color index in the palette for a give value
  //

  Float_t threshold =  0.0;
  Float_t maxVal    = 10.0;

  Float_t div  = TMath::Max(1, (Int_t)(maxVal - threshold));
  Int_t   nCol = gStyle->GetNumberOfColors();
  Int_t   cBin = (Int_t) TMath::Nint(nCol*(val - threshold)/div);

  return gStyle->GetColorPalette(TMath::Min(nCol - 1, cBin));

}

//==============================================================================
// Temporary AliEveMUONTrackList
//==============================================================================

//______________________________________________________________________________
void AliEveMUONTrackList::HackMomentumLimits(Bool_t recurse)
{
  // Find momentum limits from included tracks.

  fLimPt = fLimP = 0;

  for (List_i i=BeginChildren(); i!=EndChildren(); ++i)
  {
    TEveTrack* track = dynamic_cast<TEveTrack*>(*i);
    if (track)
    {
      fLimPt = TMath::Max(fLimPt, track->GetMomentum().Perp());
      fLimP  = TMath::Max(fLimP,  track->GetMomentum().Mag());
    }
    if (recurse)
      FindMomentumLimits(*i, recurse);
  }

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