ROOT logo
// ROOT includes
#include "TObject.h"
#include "TClonesArray.h"
#include "TObjArray.h"
#include "TH2D.h"
#include "TH1D.h"
#include "TFile.h"
#include "TGeoManager.h"
#include "TMatrixD.h"
#include "TParticle.h"
#include "TMath.h"
#include "TGraph.h"
#include "TEllipse.h"
#include "TCanvas.h"
#include "TString.h"
#include "TLatex.h"
#include "TMarker.h"
#include "TNtuple.h"
#include "TRandom.h"
#include "TIterator.h"

// STEER includes
#include "AliLog.h"
#include "AliRun.h"
#include "AliRunLoader.h"
#include "AliLoader.h"
#include "AliHeader.h"
#include "AliMC.h"
#include "AliStack.h"
#include "AliMagF.h"
#include "AliTracker.h"
#include "AliGRPObject.h"
#include "AliCDBEntry.h"
#include "AliCDBManager.h"

// MUON includes
#include "AliMUONConstants.h"
#include "AliMUONTrack.h"
#include "AliMUONRecoCheck.h"
#include "AliMUONTrackParam.h"
#include "AliMUONTrackExtrap.h"
#include "AliMUONVTrackStore.h"
#include "AliMUONVCluster.h"

// MFT includes
#include "AliMuonForwardTrack.h"
#include "AliMFTCluster.h"
#include "AliMFT.h"
#include "AliMFTSegmentation.h"
#include "AliMFTConstants.h"

#include "AliMuonForwardTrackFinder.h"

//====================================================================================================================================================
//
// Class for the creation of the "global muon tracks" built from the clusters in the 
// muon spectrometer and the clusters of the Muon Forward Tracker. QA histograms are also created
//
// Contact author: antonio.uras@cern.ch
//
//====================================================================================================================================================

const Double_t AliMuonForwardTrackFinder::fRadLengthSi = AliMFTConstants::fRadLengthSi;

ClassImp(AliMuonForwardTrackFinder)

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

AliMuonForwardTrackFinder::AliMuonForwardTrackFinder():
  TObject(),
  fRun(0),
  fNEventsToAnalyze(0),
  fSigmaClusterCut(0),
  fScaleSigmaClusterCut(1.),
  fGlobalTrackingDiverged(kFALSE),
  fChi2GlobalCut(0),
  fSigmaSpectrometerCut(0),
  fVertexErrorX(0.015),
  fVertexErrorY(0.015),
  fVertexErrorZ(0.010),
  fNFinalCandidatesCut(0),
  fReadDir(0),
  fOutDir(0),
  fDrawOption(0),

  fDistanceFromGoodClusterAndTrackAtLastPlane(-1),
  fDistanceFromBestClusterAndTrackAtLastPlane(-1),
  
  fRAbsorberCut(0),
  fLowPtCut(0),
  fNPlanesMFT(0),
  fNPlanesMFTAnalyzed(0),
  fNMaxMissingMFTClusters(0),

  fEv(0),
  fLabelMC(0),

  fHistRadiusEndOfAbsorber(0), 
  fHistNGoodClustersForFinalTracks(0),
  fHistDistanceGoodClusterFromTrackMinusDistanceBestClusterFromTrackAtLastPlane(0),
  fHistDistanceGoodClusterFromTrackAtLastPlane(0),

  fNtuFinalCandidates(0),
  fNtuFinalBestCandidates(0),

  fCanvas(0),

  fTxtMuonHistory(0), 
  fTxtTrackGoodClusters(0), 
  fTxtTrackFinalChi2(0),
  fTxtTrackMomentum(0),
  fTxtFinalCandidates(0), 
  fTxtDummy(0),
  fTxtAllClust(0), 
  fTxtClustGoodChi2(0), 
  fTxtClustMC(0), 
  fTxtClustOfTrack(0), 
  fMrkAllClust(0), 
  fMrkClustGoodChi2(0), 
  fMrkClustMC(0), 
  fMrkClustOfTrack(0),

  fCountRealTracksAnalyzed(0),
  fMaxNTracksToBeAnalyzed(99999999),
  fCountRealTracksWithRefMC(0), 
  fCountRealTracksWithRefMC_andTrigger(0),
  fCountRealTracksWithRefMC_andTrigger_andGoodPt(0),
  fCountRealTracksWithRefMC_andTrigger_andGoodPt_andGoodTheta(0),
  fCountRealTracksAnalyzedOfEvent(0),
  fCountRealTracksAnalyzedWithFinalCandidates(0),

  fFileCluster(0),
  fFileESD(0),
  fFile_gAlice(0),

  fRunLoader(0),
  fMFTLoader(0),
  fMuonRecoCheck(0),
  fMFTClusterTree(0),
  fMuonTrackReco(0),
  fCurrentTrack(0),
  fFinalBestCandidate(0),
  fIsCurrentMuonTrackable(0),
  fCandidateTracks(0),
  fTrackStore(0),
  fTrackRefStore(0),
  fNextTrack(0),
  fStack(0),
  fMFT(0),
  fSegmentation(0),
  fOutputTreeFile(0),
  fOutputQAFile(0),
  fOutputEventTree(0),
  fMuonForwardTracks(0),
  fMatchingMode(-1),
  fGRPData(0),
  fRunInfo(0),
  fBransonCorrection(kTRUE)

{

  // Default constructor

  for (Int_t iPlane=0; iPlane<AliMFTConstants::fNMaxPlanes; iPlane++) {

    fHistNTracksAfterExtrapolation[iPlane] = 0;
    fHistChi2Cluster_GoodCluster[iPlane] = 0;
    fHistChi2Cluster_BadCluster[iPlane] = 0;
    fHistResearchRadius[iPlane] = 0;      
    
    fIsGoodClusterInPlane[iPlane] = kFALSE;
    
    fHistChi2Cluster_GoodCluster[iPlane] = 0;
    fHistChi2Cluster_BadCluster[iPlane]  = 0;
    
    fHistGlobalChi2AtPlaneFor_GOOD_CandidatesOfTrackableMuons[iPlane] = 0;
    fHistGlobalChi2AtPlaneFor_BAD_CandidatesOfTrackableMuons[iPlane] = 0;
    
    fZPlane[iPlane] = 0.;
    fRPlaneMax[iPlane] = 0.;
    fRPlaneMin[iPlane] = 0.;
    
    for (Int_t i=0; i<4; i++) fGrMFTPlane[i][iPlane] = 0;
    fCircleExt[iPlane] = 0;
    fCircleInt[iPlane] = 0;
    
    fTxtTrackChi2[iPlane] = 0;
    
    fIsClusterCompatible[iPlane] = 0;
    
    fMFTClusterArray[iPlane]      = 0;
    fMFTClusterArrayFront[iPlane] = new TClonesArray("AliMFTCluster");
    fMFTClusterArrayBack[iPlane]  = new TClonesArray("AliMFTCluster");

    fIsPlaneMandatory[iPlane] = kFALSE;
    
    fMinResearchRadiusAtPlane[iPlane] = 0.;

  }

  //  fNextTrack = 0;

  fHistDistanceGoodClusterFromTrackMinusDistanceBestClusterFromTrackAtLastPlane = 0;
  fHistDistanceGoodClusterFromTrackAtLastPlane = 0;

  fMFTClusterTree = 0;
  fCandidateTracks = 0;

  fOutputTreeFile    = new TFile("MuonGlobalTracks.root", "recreate");
  fOutputEventTree   = new TTree("AliMuonForwardTracks", "Tree of AliMuonForwardTracks");
  fMuonForwardTracks = new TClonesArray("AliMuonForwardTrack");
  fOutputEventTree   -> Branch("tracks", &fMuonForwardTracks);

}

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

AliMuonForwardTrackFinder::~AliMuonForwardTrackFinder() {

  for (Int_t iPlane=0; iPlane<AliMFTConstants::fNMaxPlanes; iPlane++) {

    delete fHistNTracksAfterExtrapolation[iPlane];
    delete fHistChi2Cluster_GoodCluster[iPlane];
    delete fHistChi2Cluster_BadCluster[iPlane];
    delete fHistResearchRadius[iPlane];
    
    delete fHistChi2Cluster_GoodCluster[iPlane];
    delete fHistChi2Cluster_BadCluster[iPlane];
    
    delete fHistGlobalChi2AtPlaneFor_GOOD_CandidatesOfTrackableMuons[iPlane];
    delete fHistGlobalChi2AtPlaneFor_BAD_CandidatesOfTrackableMuons[iPlane];
    
    for (Int_t i=0; i<4; i++) delete fGrMFTPlane[i][iPlane];
    delete fCircleExt[iPlane];
    delete fCircleInt[iPlane];
    
    delete fTxtTrackChi2[iPlane];
    
    delete fMFTClusterArray[iPlane];
    delete fMFTClusterArrayFront[iPlane];
    delete fMFTClusterArrayBack[iPlane];

  }

  delete fNtuFinalCandidates;
  delete fNtuFinalBestCandidates;

  delete fHistRadiusEndOfAbsorber;

  delete fHistNGoodClustersForFinalTracks; 
  delete fHistDistanceGoodClusterFromTrackMinusDistanceBestClusterFromTrackAtLastPlane;		//
  delete fHistDistanceGoodClusterFromTrackAtLastPlane;						//

  delete fCanvas;

  delete fTxtMuonHistory;
  delete fTxtTrackGoodClusters;
  delete fTxtTrackFinalChi2;
  delete fTxtTrackMomentum;
  delete fTxtFinalCandidates;
  delete fTxtDummy;
  delete fTxtAllClust;
  delete fTxtClustGoodChi2;
  delete fTxtClustMC;
  delete fTxtClustOfTrack;
  delete fMrkAllClust;
  delete fMrkClustGoodChi2;
  delete fMrkClustMC;
  delete fMrkClustOfTrack;
 
  delete fFileCluster;
  delete fFileESD;
  delete fFile_gAlice;

  delete fRunLoader;
  delete fMFTLoader;
  delete fMuonRecoCheck;

  delete fMFTClusterTree;

  delete fMuonTrackReco;
  delete fCurrentTrack;
  delete fFinalBestCandidate;

  delete fCandidateTracks;

  delete fTrackStore;
  delete fTrackRefStore;
  
  delete fNextTrack;
  
  delete fStack;

  delete fMFT;
  delete fSegmentation;

  delete fOutputTreeFile; 
  delete fOutputQAFile;
  delete fOutputEventTree;

  delete fMuonForwardTracks;

  delete fGRPData;
  delete fRunInfo;       

}

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

void AliMuonForwardTrackFinder::Init(Int_t nRun, 
				     Char_t *readDir,
				     Char_t *outDir,
				     Int_t nEventsToAnalyze) {
  
  if (fRunLoader) {
    AliInfo("WARNING: run already initialized!!\n");
  }

  SetRun(nRun);
  SetReadDir(readDir);
  SetOutDir(outDir);

  AliInfo(Form("input  dir = %s\n", fReadDir.Data()));
  AliInfo(Form("output dir = %s\n", fOutDir.Data()));

  // -------------------------- initializing files...

  AliInfo(Form("initializing files for run %d...\n", fRun));

  Char_t geoFileName[300];
  Char_t esdFileName[300];
  Char_t gAliceName[300];
  Char_t clusterName[300];
  
  snprintf(geoFileName , 300, "%s/geometry.root",      fReadDir.Data());
  snprintf(esdFileName , 300, "%s/AliESDs.root" ,      fReadDir.Data());
  snprintf(gAliceName  , 300, "%s/galice.root"  ,      fReadDir.Data());
  snprintf(clusterName , 300, "%s/MFT.RecPoints.root", fReadDir.Data());
  
  // Import TGeo geometry (needed by AliMUONTrackExtrap::ExtrapToVertex)
  if (!gGeoManager) {
    TGeoManager::Import(geoFileName);
    if (!gGeoManager) {
      AliError(Form("getting geometry from file %s failed", geoFileName));
      return;
    }
  }
  
  fFileESD = new TFile(esdFileName);
  if (!fFileESD || !fFileESD->IsOpen()) return;
  else AliInfo(Form("file %s successfully opened\n", fFileESD->GetName()));
  
  fMuonRecoCheck = new AliMUONRecoCheck(esdFileName, Form("%s/generated/", fReadDir.Data()));       // Utility class to check reconstruction
  fFile_gAlice = new TFile(gAliceName);
  if (!fFile_gAlice || !fFile_gAlice->IsOpen()) return;
  else AliInfo(Form("file %s successfully opened\n", fFile_gAlice->GetName()));
  
  fRunLoader = AliRunLoader::Open(gAliceName);
  gAlice = fRunLoader->GetAliRun();
  if (!gAlice) fRunLoader->LoadgAlice();
  fMFT = (AliMFT*) gAlice->GetDetector("MFT"); 
  fSegmentation = fMFT->GetSegmentation();
  SetNPlanesMFT(fSegmentation->GetNPlanes());

  if (!SetRunNumber()) return;
  if (!InitGRP()) return;
  AliMUONTrackExtrap::SetField();        // set the magnetic field for track extrapolations

  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    fZPlane[iPlane]    = fSegmentation->GetPlane(iPlane)->GetZCenter();
    fRPlaneMax[iPlane] = fSegmentation->GetPlane(iPlane)->GetRMaxSupport();
    fRPlaneMin[iPlane] = fSegmentation->GetPlane(iPlane)->GetRMinSupport();
  }
  
  // Loading MFT clusters
  fMFTLoader = fRunLoader->GetDetectorLoader("MFT");
  fMFTLoader->LoadRecPoints("READ");
  
  fMFTClusterTree = fMFTLoader->TreeR();

  Int_t nEventsInFile = fMuonRecoCheck->NumberOfEvents();
  if (!nEventsInFile) {
    AliError("no events available!!!\n");
    return;
  }
  if (nEventsInFile<nEventsToAnalyze || nEventsToAnalyze<0) fNEventsToAnalyze = nEventsInFile;
  else fNEventsToAnalyze = nEventsToAnalyze;

  fCandidateTracks = new TClonesArray("AliMuonForwardTrack",50000);

  // -------------------------- initializing histograms...

  AliInfo("\ninitializing histograms...\n");
  BookHistos();
  SetTitleHistos();
  AliInfo("... done!\n\n");

  // -------------------------- initializing graphics...

  AliInfo("initializing graphics...\n");
  BookPlanes();
  AliInfo("... done!\n\n");

  SetSigmaSpectrometerCut(4.0);
  SetSigmaClusterCut(4.5);
  SetChi2GlobalCut(2.0);
  SetNFinalCandidatesCut(10);
  SetRAbsorberCut(26.4);
  SetLowPtCut(0.5);

}

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

Bool_t AliMuonForwardTrackFinder::LoadNextEvent() {

  // load next reconstructed event from the tree

  if (fEv) FillOutputTree();

  if (fEv>=fNEventsToAnalyze) return kFALSE;

  fCountRealTracksAnalyzedOfEvent = 0;
  
  AliInfo(Form(" **** analyzing event # %d  \n", fEv));
  
  fTrackStore = fMuonRecoCheck->ReconstructedTracks(fEv);
  if (fTrackStore->IsEmpty()) {
    AliInfo("fTrackStore Is Empty: exiting NOW!");
    return kFALSE;
  }
  AliInfo("fTrackStore contains tracks!");

  AliDebug(2, Form("Getting fMuonRecoCheck->ReconstructibleTracks(%d)", fEv));
  fTrackRefStore = fMuonRecoCheck->ReconstructibleTracks(fEv);
  
  AliDebug(2, Form("Getting fRunLoader->GetEvent(%d)", fEv));
  fRunLoader->GetEvent(fEv);

  AliDebug(2, Form("fMFTLoader->TreeR() = %p",fMFTLoader->TreeR()));
  if (!fMFTLoader->TreeR()->GetEvent()) return kFALSE;
  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    AliDebug(1, Form("plane %02d: nClusters = %d\n", iPlane, (fMFT->GetRecPointsList(iPlane))->GetEntries()));
    fMFTClusterArray[iPlane] = fMFT->GetRecPointsList(iPlane);
  }
  SeparateFrontBackClusters();

  fRunLoader -> LoadKinematics();
  fStack = fRunLoader->Stack();
  fNextTrack = fTrackStore->CreateIterator();
  fMuonForwardTracks->Delete();

  fEv++;
  
  return kTRUE;

}

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

Int_t AliMuonForwardTrackFinder::LoadNextTrack() {

  fNPlanesMFTAnalyzed = 0;

  // load next muon track from the reconstructed event

  if (fCountRealTracksAnalyzed>=fMaxNTracksToBeAnalyzed) return kFALSE;
  if (!fCountRealTracksAnalyzed) if (!LoadNextEvent()) return kFALSE;

  if (!fGlobalTrackingDiverged) {
    while ( !(fMuonTrackReco = static_cast<AliMUONTrack*>(fNextTrack->Next())) ) if (!LoadNextEvent()) return kFALSE;
    fCountRealTracksAnalyzed++;
    fCountRealTracksAnalyzedOfEvent++;
  }

  AliDebug(1, "**************************************************************************************\n");
  AliDebug(1, Form("***************************   MUON TRACK %3d   ***************************************\n", fCountRealTracksAnalyzedOfEvent));
  AliDebug(1, "**************************************************************************************\n");

  fCandidateTracks -> Delete();

  fLabelMC = -1;
  fDistanceFromGoodClusterAndTrackAtLastPlane = -1.;
  fDistanceFromBestClusterAndTrackAtLastPlane = -1.;
  ResetPlanes();

  TIter nextTrackRef(fTrackRefStore->CreateIterator());
  AliMUONTrack *trackRef=0;
  
  // --------------------------------------- loop on MC generated tracks to find the MC reference...
  
  while ( (trackRef = static_cast<AliMUONTrack*>(nextTrackRef())) ) {
    // number of compatible clusters between trackReco and trackRef
    Int_t nMatchCluster = fMuonTrackReco->FindCompatibleClusters(*trackRef, fSigmaSpectrometerCut, fIsClusterCompatible);  
    if ( (fIsClusterCompatible[0] || fIsClusterCompatible[1] || fIsClusterCompatible[2] || fIsClusterCompatible[3]) &&   // before the dipole
	 (fIsClusterCompatible[6] || fIsClusterCompatible[7] || fIsClusterCompatible[8] || fIsClusterCompatible[9]) &&   // after the dipole
	 2*nMatchCluster>fMuonTrackReco->GetNClusters() ) {
      fMuonTrackReco->SetMCLabel(trackRef->GetUniqueID());   // MC reference has been found for trackReco!
      break;
    }
  }
  
  // ------------------------------------- ...done!

  fLabelMC = fMuonTrackReco->GetMCLabel();

  Int_t motherPdg=0;
  if (fLabelMC>=0) {
    if (!fGlobalTrackingDiverged) fCountRealTracksWithRefMC++;
    if (fStack->Particle(fLabelMC)->GetFirstMother() != -1) {
      motherPdg = fStack->Particle(fStack->Particle(fLabelMC)->GetFirstMother())->GetPdgCode();
    }
  }

  CheckCurrentMuonTrackable();

  if (!fGlobalTrackingDiverged) if (fMuonTrackReco->GetMatchTrigger()) fCountRealTracksWithRefMC_andTrigger++;
  
  // the track we are going to build, starting from fMuonTrackReco and adding the MFT clusters
  AliMuonForwardTrack *track = new ((*fCandidateTracks)[0]) AliMuonForwardTrack();
  track -> SetMUONTrack(new AliMUONTrack(*fMuonTrackReco));
  if (fLabelMC>=0 && fStack->Particle(fLabelMC)) track->SetMCTrackRef(new TParticle(*(fStack->Particle(fLabelMC))));
  track -> SetMCLabel(fMuonTrackReco->GetMCLabel());
  track -> SetMatchTrigger(fMuonTrackReco->GetMatchTrigger());

  // track origin
  Double_t xVtx=-999., yVtx=-999., zVtx=-999999.;
  if (track->GetMCTrackRef()) {
    xVtx = track->GetMCTrackRef()->Vx();
    yVtx = track->GetMCTrackRef()->Vy();
    zVtx = track->GetMCTrackRef()->Vz();
  }  
  
  // track kinematics
  Double_t pt=-999., theta=-999., eta=-999.;
  if (track->GetMCTrackRef()) {
    pt    = track->GetMCTrackRef()->Pt();
    theta = track->GetMCTrackRef()->Theta();
    if (theta<0.) theta += TMath::Pi();
    eta   = track->GetMCTrackRef()->Eta();
  }
  else {
    AliMUONTrackParam *param = (AliMUONTrackParam*) (fMuonTrackReco->GetTrackParamAtCluster()->First());
    pt    = TMath::Sqrt(param->Px()*param->Px() + param->Py()*param->Py());
    theta = TMath::ATan(pt/param->Pz());
    if (theta<0.) theta += TMath::Pi();
    eta   = -1.*TMath::Log(TMath::Tan(0.5*theta));
  }  
  // if the transverse momentum is smaller than the threshold, skip to the next track
  if (pt < fLowPtCut) return 3;
  
  // track parameters linearly extrapolated from the first tracking station to the end of the absorber
  AliMUONTrackParam trackParamEndOfAbsorber(*((AliMUONTrackParam*)(fMuonTrackReco->GetTrackParamAtCluster()->First())));
  AliMUONTrackExtrap::ExtrapToZCov(&trackParamEndOfAbsorber, -503.);   // absorber extends from -90 to -503 cm
  Double_t xEndOfAbsorber = trackParamEndOfAbsorber.GetNonBendingCoor();
  Double_t yEndOfAbsorber = trackParamEndOfAbsorber.GetBendingCoor();
  Double_t rAbsorber      = TMath::Sqrt(xEndOfAbsorber*xEndOfAbsorber + yEndOfAbsorber*yEndOfAbsorber);
  fHistRadiusEndOfAbsorber -> Fill(rAbsorber);
  track -> SetRAtAbsorberEnd(rAbsorber);
  
  // if the radial distance of the track at the end of the absorber is smaller than a given radius, skip to the next track
  if (rAbsorber < fRAbsorberCut) return 4;
  
  //------------------------- NOW THE CYCLE OVER THE MFT PLANES STARTS ---------------------------------------
  
  for (Int_t iPlane=fNPlanesMFT-1; iPlane>=0; iPlane--) {          // *** do not reverse the order of this cycle!!! 
                                                                   // *** this reflects the fact that the extrapolation is performed 
                                                                   // *** starting from the last MFT plane back to the origin
    
    // --------- updating the array of tracks according to the clusters available in the i-th plane ---------
    
    fNPlanesMFTAnalyzed++;

    if (fMatchingMode==kRealMatching) {
      Int_t nTracksToBeAnalyzed = fCandidateTracks->GetEntriesFast();
      for (Int_t iTrack=0; iTrack<nTracksToBeAnalyzed; iTrack++) {
	fCurrentTrack = (AliMuonForwardTrack*) fCandidateTracks->UncheckedAt(iTrack);
	// if the old track is compatible with the new cluster, the track is updated and inserted as new track in the array 
	// (several new tracks can be created for one old track)
	if (FindClusterInPlane(iPlane) == kDiverged) {
	  fGlobalTrackingDiverged = kTRUE;
	  if (fScaleSigmaClusterCut>0) fScaleSigmaClusterCut -= 0.1;
	  return 6;
	}
	if ((fNPlanesMFTAnalyzed-fCurrentTrack->GetNMFTClusters())>fNMaxMissingMFTClusters || fIsPlaneMandatory[iPlane]) {
	  fCandidateTracks->Remove(fCurrentTrack);     // the old track is removed after the check;
	}
      }
      fCandidateTracks->Compress();
      if (fIsCurrentMuonTrackable) {
	//	fOutputQAFile->cd();
	fHistNTracksAfterExtrapolation[iPlane] -> Fill(fCandidateTracks->GetEntriesFast());
      }
    }

    else if (fMatchingMode==kIdealMatching && fIsCurrentMuonTrackable) {
      fCurrentTrack = (AliMuonForwardTrack*) fCandidateTracks->UncheckedAt(0);
      AliDebug(2, Form("plane %02d: fCandidateTracks->GetEntriesFast() = %d   fCandidateTracks->UncheckedAt(0) = %p   fCurrentTrack = %p\n", 
		       iPlane, fCandidateTracks->GetEntriesFast(), fCandidateTracks->UncheckedAt(0), fCurrentTrack));
      AttachGoodClusterInPlane(iPlane);
    }

  }      
  
  // -------------------------- END OF THE CYCLE OVER THE MFT PLANES --------------------------------------------
  
  fGlobalTrackingDiverged = kFALSE;
  fScaleSigmaClusterCut = 1.0;

  AliDebug(1, "Finished cycle over planes");

  Double_t momentum = pt * TMath::CosH(eta);
  fTxtTrackMomentum = new TLatex(0.10, 0.70, Form("P_{spectro} = %3.1f GeV/c", momentum));

  if (fMatchingMode==kIdealMatching) {
    AliDebug(1, "Adding track to output tree...\n");
    fFinalBestCandidate = (AliMuonForwardTrack*) fCandidateTracks->UncheckedAt(0);
    AliMuonForwardTrack *newTrack = (AliMuonForwardTrack*) fCandidateTracks->UncheckedAt(0);
    new ((*fMuonForwardTracks)[fMuonForwardTracks->GetEntries()]) AliMuonForwardTrack(*newTrack);
    AliDebug(1, "...track added!\n");
    fCandidateTracks->Delete();
    fCountRealTracksAnalyzedOfEvent++;
    fCountRealTracksAnalyzedWithFinalCandidates++;
    PrintParticleHistory();
    FillPlanesWithTrackHistory();

    Double_t chi2AtPlane[fNMaxPlanes] = {0};
    Int_t nGoodClusters = 0;
    Int_t nMFTClusters  = fFinalBestCandidate->GetNMFTClusters();
//     Int_t nMUONClusters = fFinalBestCandidate->GetNMUONClusters();
    Int_t plane = 0;
    for (Int_t iCluster=0; iCluster<nMFTClusters; iCluster++) {
      while (!fFinalBestCandidate->PlaneExists(plane)) plane++;
      AliMFTCluster *localCluster = fFinalBestCandidate->GetMFTCluster(iCluster);
      chi2AtPlane[plane] = localCluster->GetLocalChi2();
      if (IsCorrectMatch(localCluster)) nGoodClusters++;
//       Int_t nClustersGlobalTrack = nMUONClusters + (nMFTClusters-iCluster);        // Muon Spectrometer clusters + clusters in the Vertex Telescope
//       Int_t ndfGlobalTrack = GetNDF(nClustersGlobalTrack);
//       chi2AtPlane[plane] /= Double_t(ndfGlobalTrack);
      plane++;
    }
    for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
      fTxtTrackChi2[iPlane] = new TLatex(0.55*fRPlaneMax[fNPlanesMFT-1], 
					 0.90*fRPlaneMax[fNPlanesMFT-1], 
					 Form("#chi^{2} = %3.1f", chi2AtPlane[iPlane]));
    }
    fTxtTrackFinalChi2 = new TLatex(0.20, 0.44, Form("#chi^{2}_{final} = %3.1f", chi2AtPlane[0]));

    if (fDrawOption) DrawPlanes();
    return 5;
  }
  
  // If we have several final tracks, we must find the best candidate:

  Int_t nFinalTracks = fCandidateTracks->GetEntriesFast();
  AliDebug(1, Form("nFinalTracks = %d", nFinalTracks));

  if (nFinalTracks) fCountRealTracksAnalyzedWithFinalCandidates++;
  
  Double_t theVariable_Best        = -1.;                    // variable defining the best candidate
  Bool_t bestCandidateExists       = kFALSE;
  Int_t nGoodClustersBestCandidate = 0;
  Int_t idBestCandidate            = 0;
  Double_t chi2HistoryForBestCandidate[fNMaxPlanes] = {0};  // chi2 on each plane, for the best candidate
  Double_t nClustersPerPlane[fNMaxPlanes] = {0};
  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    chi2HistoryForBestCandidate[iPlane] = -1.;
    nClustersPerPlane[iPlane] = fMFTClusterArray[iPlane] -> GetEntries();
  }
  
  fTxtFinalCandidates = new TLatex(0.10, 0.78, Form("N_{FinalCandidates} = %d", nFinalTracks));
  
  Int_t nClustersMC = 0;
  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) nClustersMC += fIsGoodClusterInPlane[iPlane];

  for (Int_t iTrack=0; iTrack<nFinalTracks; iTrack++) {
    
    AliMuonForwardTrack *finalTrack = (AliMuonForwardTrack*) fCandidateTracks->UncheckedAt(iTrack);
    
    Double_t chi2AtPlane[fNMaxPlanes] = {0};
    Int_t nGoodClusters = 0;
    Int_t nMFTClusters  = finalTrack->GetNMFTClusters();
//     Int_t nMUONClusters = finalTrack->GetNMUONClusters();

    Int_t plane = 0;
    for (Int_t iCluster=0; iCluster<nMFTClusters; iCluster++) {
      while (!finalTrack->PlaneExists(plane)) plane++;
      AliMFTCluster *localCluster = finalTrack->GetMFTCluster(iCluster);
      chi2AtPlane[plane] = localCluster->GetLocalChi2();
      if (IsCorrectMatch(localCluster)) nGoodClusters++;
//       Int_t nClustersGlobalTrack = nMUONClusters + (nMFTClusters-iCluster);        // Muon Spectrometer clusters + clusters in the Vertex Telescope
//       Int_t ndfGlobalTrack = GetNDF(nClustersGlobalTrack);
//       chi2AtPlane[plane] /= Double_t(ndfGlobalTrack);
      plane++;
    }
    
    if (fIsCurrentMuonTrackable) {
      //      fOutputQAFile->cd();
      fHistNGoodClustersForFinalTracks -> Fill(nGoodClusters);
    }

    //    fOutputQAFile->cd();

    Float_t finalCandidatesInfo[] = {static_cast<Float_t>(fRun),
				     static_cast<Float_t>(fEv),
				     static_cast<Float_t>(fCountRealTracksAnalyzedOfEvent),
				     static_cast<Float_t>(nFinalTracks),
				     static_cast<Float_t>(fLabelMC>=0),
				     static_cast<Float_t>(xVtx), static_cast<Float_t>(yVtx), static_cast<Float_t>(zVtx),
				     static_cast<Float_t>(motherPdg),
				     static_cast<Float_t>(fMuonTrackReco->GetMatchTrigger()),
				     static_cast<Float_t>(nClustersMC),
				     static_cast<Float_t>(nGoodClusters),
				     static_cast<Float_t>(pt), static_cast<Float_t>(theta), static_cast<Float_t>(eta), 
				     static_cast<Float_t>(chi2AtPlane[0]),
				     static_cast<Float_t>(chi2AtPlane[1]),
				     static_cast<Float_t>(chi2AtPlane[2]),
				     static_cast<Float_t>(chi2AtPlane[3]),
				     static_cast<Float_t>(chi2AtPlane[4]),
				     static_cast<Float_t>(chi2AtPlane[5]),
				     static_cast<Float_t>(chi2AtPlane[6]),
				     static_cast<Float_t>(chi2AtPlane[7]),
				     static_cast<Float_t>(chi2AtPlane[8])};
    
    fNtuFinalCandidates -> Fill(finalCandidatesInfo);

    // now comparing the tracks with various criteria, in order to find the best one
    
    Double_t theVariable = 0.;
//     theVariable = chi2AtPlane[0];
    for (Int_t iCluster=0; iCluster<nMFTClusters; iCluster++) theVariable += chi2AtPlane[iCluster];
    theVariable /= Double_t(nMFTClusters);
    
      
    if (theVariable<theVariable_Best || theVariable_Best<0.) {
      nGoodClustersBestCandidate = nGoodClusters;
      for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) chi2HistoryForBestCandidate[iPlane] = chi2AtPlane[iPlane];
      theVariable_Best = theVariable;
      fTxtTrackFinalChi2 = new TLatex(0.20, 0.44, Form("#chi^{2}_{final} = %3.1f", chi2HistoryForBestCandidate[0]));
      for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
	fTxtTrackChi2[iPlane] = new TLatex(0.55*fRPlaneMax[fNPlanesMFT-1], 
					   0.90*fRPlaneMax[fNPlanesMFT-1], 
					   Form("#chi^{2} = %3.1f", chi2AtPlane[iPlane]));
      }
      idBestCandidate = iTrack;
      bestCandidateExists=kTRUE;
    }

    // ----------------------------------------------------------

  }

  if (nFinalTracks) {
    fFinalBestCandidate = (AliMuonForwardTrack*) fCandidateTracks->UncheckedAt(idBestCandidate);
    AliInfo(Form("fFinalBestCandidate->GetNMFTClusters() = %d\n",  fFinalBestCandidate->GetNMFTClusters()));
    PrintParticleHistory();
    FillPlanesWithTrackHistory();
    AliMuonForwardTrack *newTrack = (AliMuonForwardTrack*) fCandidateTracks->UncheckedAt(idBestCandidate);
    newTrack -> SetNWrongClustersMC(newTrack->GetNMFTClusters() - nGoodClustersBestCandidate);
    newTrack -> SetTrackMCId(fRun*100000+fEv*1000+fCountRealTracksAnalyzedOfEvent);
    new ((*fMuonForwardTracks)[fMuonForwardTracks->GetEntries()]) AliMuonForwardTrack(*newTrack);
  }

  //  fOutputQAFile->cd();
  
  Float_t finalBestCandidatesInfo[] = {static_cast<Float_t>(fRun),
				       static_cast<Float_t>(fEv),
				       static_cast<Float_t>(fCountRealTracksAnalyzedOfEvent),
				       static_cast<Float_t>(nFinalTracks),
				       static_cast<Float_t>(fLabelMC>=0),
				       static_cast<Float_t>(xVtx), static_cast<Float_t>(yVtx), static_cast<Float_t>(zVtx),
				       static_cast<Float_t>(motherPdg),
				       static_cast<Float_t>(fMuonTrackReco->GetMatchTrigger()),
				       static_cast<Float_t>(nClustersMC),
				       static_cast<Float_t>(nGoodClustersBestCandidate),
				       static_cast<Float_t>(pt), static_cast<Float_t>(theta), static_cast<Float_t>(eta),
				       static_cast<Float_t>(chi2HistoryForBestCandidate[0]),
				       static_cast<Float_t>(chi2HistoryForBestCandidate[1]),
				       static_cast<Float_t>(chi2HistoryForBestCandidate[2]),
				       static_cast<Float_t>(chi2HistoryForBestCandidate[3]),
				       static_cast<Float_t>(chi2HistoryForBestCandidate[4]),
				       static_cast<Float_t>(chi2HistoryForBestCandidate[5]),
				       static_cast<Float_t>(chi2HistoryForBestCandidate[6]),
				       static_cast<Float_t>(chi2HistoryForBestCandidate[7]),
				       static_cast<Float_t>(chi2HistoryForBestCandidate[8]),
				       static_cast<Float_t>(nClustersPerPlane[0]),
				       static_cast<Float_t>(nClustersPerPlane[1]),
				       static_cast<Float_t>(nClustersPerPlane[2]),
				       static_cast<Float_t>(nClustersPerPlane[3]),
				       static_cast<Float_t>(nClustersPerPlane[4]),
				       static_cast<Float_t>(nClustersPerPlane[5]),
				       static_cast<Float_t>(nClustersPerPlane[6]),
				       static_cast<Float_t>(nClustersPerPlane[7]),
				       static_cast<Float_t>(nClustersPerPlane[8])};
  
  fNtuFinalBestCandidates -> Fill(finalBestCandidatesInfo);
  
  if (fDrawOption && bestCandidateExists) {
    fTxtTrackGoodClusters = new TLatex(0.20, 0.51, Form("N_{GoodClusters} = %d", nGoodClustersBestCandidate));
    DrawPlanes();
  }

  // -------------------------------------------------------------------------------------------

  fCandidateTracks->Delete();
  fFinalBestCandidate = NULL;
  
  return 5;
  
}

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

Int_t AliMuonForwardTrackFinder::FindClusterInPlane(Int_t planeId) { 
  
  AliDebug(2, Form(">>>> executing AliMuonForwardTrackFinder::FindClusterInPlane(%d)\n", planeId));

  // !!!!!!!!! coordinates and errors on the interaction vertex should be taken from the event itself (ITS) if available

  // propagate track to plane #planeId (both to front and back active sensors)
  // look for compatible clusters
  // update TrackParam at found cluster (if any) using Kalman Filter

  AliMUONTrackParam currentParamFront, currentParamBack, currentParamForResearchFront, currentParamForResearchBack;

  if (planeId == fNPlanesMFT-1) {      // last plane of the telecope
    currentParamFront = (*((AliMUONTrackParam*)(fMuonTrackReco->GetTrackParamAtCluster()->First())));
    currentParamBack  = (*((AliMUONTrackParam*)(fMuonTrackReco->GetTrackParamAtCluster()->First())));
    currentParamForResearchFront = currentParamFront;
    currentParamForResearchBack  = currentParamBack;
    Double_t xExtrap = gRandom->Gaus(0,fVertexErrorX);
    Double_t yExtrap = gRandom->Gaus(0,fVertexErrorY);
    Double_t zExtrap = gRandom->Gaus(0,fVertexErrorZ);
    if (fBransonCorrection) {
      AliMUONTrackExtrap::ExtrapToVertex(&currentParamFront, xExtrap, yExtrap, zExtrap, fVertexErrorX, fVertexErrorY); 
      AliMUONTrackExtrap::ExtrapToVertex(&currentParamBack,  xExtrap, yExtrap, zExtrap, fVertexErrorX, fVertexErrorY); 
    }
    else {
      AliMUONTrackExtrap::ExtrapToVertexWithoutBranson(&currentParamFront, zExtrap);
      AliMUONTrackExtrap::ExtrapToVertexWithoutBranson(&currentParamBack,  zExtrap);
    }
    AliMUONTrackExtrap::ExtrapToVertex(&currentParamForResearchFront, xExtrap, yExtrap, zExtrap, fVertexErrorX, fVertexErrorY); 
    AliMUONTrackExtrap::ExtrapToVertex(&currentParamForResearchBack,  xExtrap, yExtrap, zExtrap, fVertexErrorX, fVertexErrorY); 
  }
  else {          // MFT planes others than the last one: mult. scattering correction because of the upstream MFT planes is performed
    currentParamFront = (*((AliMUONTrackParam*)(fCurrentTrack->GetTrackParamAtCluster()->First())));
    currentParamBack  = (*((AliMUONTrackParam*)(fCurrentTrack->GetTrackParamAtCluster()->First())));
    currentParamForResearchFront = currentParamFront;
    currentParamForResearchBack  = currentParamBack;
    AliMUONTrackExtrap::AddMCSEffect(&currentParamFront,           (fSegmentation->GetPlane(planeId+1)->GetEquivalentSilicon()+
								    fSegmentation->GetPlane(planeId)->GetEquivalentSiliconBeforeFront())/fRadLengthSi,-1.);
    AliMUONTrackExtrap::AddMCSEffect(&currentParamForResearchFront,(fSegmentation->GetPlane(planeId+1)->GetEquivalentSilicon()+
								    fSegmentation->GetPlane(planeId)->GetEquivalentSiliconBeforeFront())/fRadLengthSi,-1.);
    AliMUONTrackExtrap::AddMCSEffect(&currentParamBack,            (fSegmentation->GetPlane(planeId+1)->GetEquivalentSilicon()+
								    fSegmentation->GetPlane(planeId)->GetEquivalentSiliconBeforeBack())/fRadLengthSi,-1.);
    AliMUONTrackExtrap::AddMCSEffect(&currentParamForResearchBack, (fSegmentation->GetPlane(planeId+1)->GetEquivalentSilicon()+
								    fSegmentation->GetPlane(planeId)->GetEquivalentSiliconBeforeBack())/fRadLengthSi,-1.);
  }
  // for all planes: extrapolation to the Z of the plane
  AliMUONTrackExtrap::ExtrapToZCov(&currentParamFront,            -1.*fSegmentation->GetPlane(planeId)->GetZCenterActiveFront());   
  AliMUONTrackExtrap::ExtrapToZCov(&currentParamForResearchFront, -1.*fSegmentation->GetPlane(planeId)->GetZCenterActiveFront());
  AliMUONTrackExtrap::ExtrapToZCov(&currentParamBack,             -1.*fSegmentation->GetPlane(planeId)->GetZCenterActiveBack());   
  AliMUONTrackExtrap::ExtrapToZCov(&currentParamForResearchBack,  -1.*fSegmentation->GetPlane(planeId)->GetZCenterActiveBack());

  //---------------------------------------------------------------------------------------

  TMatrixD covFront(5,5); covFront = currentParamForResearchFront.GetCovariances();
  TMatrixD covBack(5,5);  covBack  = currentParamForResearchBack.GetCovariances();
  
  Double_t squaredError_X_Front = covFront(0,0);
  Double_t squaredError_Y_Front = covFront(2,2);
  Double_t squaredError_X_Back  = covBack(0,0);
  Double_t squaredError_Y_Back  = covBack(2,2);

  Double_t corrFact = 1.0;

  Double_t researchRadiusFront = TMath::Sqrt(squaredError_X_Front + squaredError_Y_Front);
  Double_t researchRadiusBack  = TMath::Sqrt(squaredError_X_Back  + squaredError_Y_Back);
  if (0.5*(researchRadiusFront+researchRadiusBack)<fMinResearchRadiusAtPlane[planeId]) {
    corrFact = fMinResearchRadiusAtPlane[planeId]/(0.5*(researchRadiusFront+researchRadiusBack));
  }
  if (fIsCurrentMuonTrackable) {
    //    fOutputQAFile->cd();
    fHistResearchRadius[planeId] -> Fill(0.5*(researchRadiusFront+researchRadiusBack));
  }

  Double_t position_X_Front = currentParamForResearchFront.GetNonBendingCoor();
  Double_t position_Y_Front = currentParamForResearchFront.GetBendingCoor();
  Double_t position_X_Back = currentParamForResearchBack.GetNonBendingCoor();
  Double_t position_Y_Back = currentParamForResearchBack.GetBendingCoor();
  Double_t radialPositionOfTrackFront = TMath::Sqrt(position_X_Front*position_X_Front + position_Y_Front*position_Y_Front);
  Double_t radialPositionOfTrackBack  = TMath::Sqrt(position_X_Back*position_X_Back   + position_Y_Back*position_Y_Back);

  //---------------------------------------------------------------------------------------

  Double_t chi2cut = 2.*fScaleSigmaClusterCut*fScaleSigmaClusterCut*fSigmaClusterCut*fSigmaClusterCut;     // depends on the number of variables (here, 2)
  
  // Analyizing the clusters: FRONT ACTIVE ELEMENTS
  
  Int_t nClustersFront = fMFTClusterArrayFront[planeId]->GetEntries();
  AliDebug(2, Form("There are %3d clusters in plane %02d FRONT\n", nClustersFront, planeId));
  
  for (Int_t iCluster=0; iCluster<nClustersFront; iCluster++) {

    Bool_t isGoodChi2 = kFALSE;

    AliMFTCluster *cluster = (AliMFTCluster*) fMFTClusterArrayFront[planeId]->At(iCluster); 
    Double_t chi2 = (1./(corrFact*corrFact)) * TryOneCluster(currentParamForResearchFront, cluster);     // describes the compatibility between the track and the cluster
    if (chi2<chi2cut) isGoodChi2 = kTRUE;

    Double_t radialPositionOfClusterFront = TMath::Sqrt(cluster->GetX()*cluster->GetX() + cluster->GetY()*cluster->GetY());    
    if (planeId == fNPlanesMFT-1) {
      if (TMath::Abs(radialPositionOfTrackFront-radialPositionOfClusterFront)<fDistanceFromBestClusterAndTrackAtLastPlane ||
	  fDistanceFromBestClusterAndTrackAtLastPlane<0.) {
	fDistanceFromBestClusterAndTrackAtLastPlane = TMath::Abs(radialPositionOfTrackFront-radialPositionOfClusterFront);
      }
      if (IsCorrectMatch(cluster)) {
	fDistanceFromGoodClusterAndTrackAtLastPlane = TMath::Abs(radialPositionOfTrackFront-radialPositionOfClusterFront);
      }
    }

    if (fIsCurrentMuonTrackable) {
      //      fOutputQAFile->cd();
      if (IsCorrectMatch(cluster)) fHistChi2Cluster_GoodCluster[planeId]->Fill(chi2/2.);     //  chi2/ndf
      else                         fHistChi2Cluster_BadCluster[planeId] ->Fill(chi2/2.);     //  chi2/ndf
    }

    if (isGoodChi2) {
      AliDebug(3, Form("accepting cluster: chi2=%f (cut = %f)\n", chi2, chi2cut));
      AliMuonForwardTrack *newTrack = new ((*fCandidateTracks)[fCandidateTracks->GetEntriesFast()]) AliMuonForwardTrack(*fCurrentTrack);
      if (fCandidateTracks->GetEntriesFast() > fMaxNCandidates) return kDiverged;
      newTrack->AddTrackParamAtMFTCluster(currentParamFront, *cluster);    // creating new track param and attaching the cluster
      AliDebug(2, Form("After plane %02d: newTrack->GetNMFTClusters() = %d (fCurrentTrack->GetNMFTClusters() = %d)", 
		       planeId, newTrack->GetNMFTClusters(), fCurrentTrack->GetNMFTClusters()));
      newTrack->SetPlaneExists(planeId);
      AliDebug(2, Form("current muon is trackable: %d\n", fIsCurrentMuonTrackable));
      if (fIsCurrentMuonTrackable) {
	Double_t newGlobalChi2 = ((AliMUONTrackParam*) newTrack->GetTrackParamAtCluster()->First())->GetTrackChi2();
	AliDebug(2, Form("new chi2 = %f (= %f)\n", newGlobalChi2, newTrack->GetMFTCluster(0)->GetTrackChi2()));
	Int_t nClustersGlobalTrack = newTrack->GetNMUONClusters() + newTrack->GetNMFTClusters();        // Muon Spectrometer clusters + clusters in the Vertex Telescope
	Int_t ndfGlobalTrack = GetNDF(nClustersGlobalTrack);
	//	fOutputQAFile->cd();
	if (IsCorrectMatch(cluster)) fHistGlobalChi2AtPlaneFor_GOOD_CandidatesOfTrackableMuons[planeId]->Fill(newGlobalChi2/Double_t(ndfGlobalTrack));
	else                         fHistGlobalChi2AtPlaneFor_BAD_CandidatesOfTrackableMuons[planeId] ->Fill(newGlobalChi2/Double_t(ndfGlobalTrack));
      }
      fGrMFTPlane[kClustersGoodChi2][planeId] -> SetPoint(fGrMFTPlane[kClustersGoodChi2][planeId]->GetN(), cluster->GetX(), cluster->GetY());
    }
    else AliDebug(3, Form("discarding cluster: chi2=%f (cut = %f)\n", chi2, chi2cut));

  }

  // Analyizing the clusters: BACK ACTIVE ELEMENTS
  
  Int_t nClustersBack = fMFTClusterArrayBack[planeId]->GetEntries();
  AliDebug(2, Form("There are %3d clusters in plane %02d BACK\n", nClustersBack, planeId));
  
  for (Int_t iCluster=0; iCluster<nClustersBack; iCluster++) {

    Bool_t isGoodChi2 = kFALSE;

    AliMFTCluster *cluster = (AliMFTCluster*) fMFTClusterArrayBack[planeId]->At(iCluster); 
    Double_t chi2 = (1./(corrFact*corrFact)) * TryOneCluster(currentParamForResearchBack, cluster);     // describes the compatibility between the track and the cluster
    if (chi2<chi2cut) isGoodChi2 = kTRUE;

    Double_t radialPositionOfClusterBack = TMath::Sqrt(cluster->GetX()*cluster->GetX() + cluster->GetY()*cluster->GetY());    
    if (planeId == fNPlanesMFT-1) {
      if (TMath::Abs(radialPositionOfTrackBack-radialPositionOfClusterBack)<fDistanceFromBestClusterAndTrackAtLastPlane ||
	  fDistanceFromBestClusterAndTrackAtLastPlane<0.) {
	fDistanceFromBestClusterAndTrackAtLastPlane = TMath::Abs(radialPositionOfTrackBack-radialPositionOfClusterBack);
      }
      if (IsCorrectMatch(cluster)) {
	fDistanceFromGoodClusterAndTrackAtLastPlane = TMath::Abs(radialPositionOfTrackBack-radialPositionOfClusterBack);
      }
    }

    if (fIsCurrentMuonTrackable) {
      //      fOutputQAFile->cd();
      if (IsCorrectMatch(cluster)) fHistChi2Cluster_GoodCluster[planeId]->Fill(chi2/2.);     //  chi2/ndf
      else                         fHistChi2Cluster_BadCluster[planeId] ->Fill(chi2/2.);     //  chi2/ndf
    }

    if (isGoodChi2) {
      AliDebug(3,Form("accepting cluster: chi2=%f (cut = %f)\n", chi2, chi2cut));
      AliMuonForwardTrack *newTrack = new ((*fCandidateTracks)[fCandidateTracks->GetEntriesFast()]) AliMuonForwardTrack(*fCurrentTrack);
      if (fCandidateTracks->GetEntriesFast() > fMaxNCandidates) return kDiverged;
      newTrack->AddTrackParamAtMFTCluster(currentParamBack, *cluster);    // creating new track param and attaching the cluster
      AliDebug(2, Form("After plane %02d: newTrack->GetNMFTClusters() = %d (fCurrentTrack->GetNMFTClusters() = %d)", 
		       planeId, newTrack->GetNMFTClusters(), fCurrentTrack->GetNMFTClusters()));
      newTrack->SetPlaneExists(planeId);
      AliDebug(2, Form("current muon is trackable: %d\n", fIsCurrentMuonTrackable));
      if (fIsCurrentMuonTrackable) {
	Double_t newGlobalChi2 = ((AliMUONTrackParam*) newTrack->GetTrackParamAtCluster()->First())->GetTrackChi2();
	AliDebug(2, Form("new chi2 = %f (= %f)\n", newGlobalChi2, newTrack->GetMFTCluster(0)->GetTrackChi2()));
	Int_t nClustersGlobalTrack = newTrack->GetNMUONClusters() + newTrack->GetNMFTClusters();        // Muon Spectrometer clusters + clusters in the Vertex Telescope
	Int_t ndfGlobalTrack = GetNDF(nClustersGlobalTrack);
	//	fOutputQAFile->cd();
	if (IsCorrectMatch(cluster)) fHistGlobalChi2AtPlaneFor_GOOD_CandidatesOfTrackableMuons[planeId]->Fill(newGlobalChi2/Double_t(ndfGlobalTrack));
	else                         fHistGlobalChi2AtPlaneFor_BAD_CandidatesOfTrackableMuons[planeId] ->Fill(newGlobalChi2/Double_t(ndfGlobalTrack));
      }
      fGrMFTPlane[kClustersGoodChi2][planeId] -> SetPoint(fGrMFTPlane[kClustersGoodChi2][planeId]->GetN(), cluster->GetX(), cluster->GetY());
    }
    else AliDebug(3,Form("discarding cluster: chi2=%f (cut = %f)\n", chi2, chi2cut));

  }

  //---------------------------------------------------------------------------------------------

  if (planeId == fNPlanesMFT-1) {
    if (fIsCurrentMuonTrackable && fDistanceFromGoodClusterAndTrackAtLastPlane>0.) {
      //      fOutputQAFile->cd();
      fHistDistanceGoodClusterFromTrackMinusDistanceBestClusterFromTrackAtLastPlane -> Fill(TMath::Abs(fDistanceFromBestClusterAndTrackAtLastPlane-
												       fDistanceFromGoodClusterAndTrackAtLastPlane));
      fHistDistanceGoodClusterFromTrackAtLastPlane -> Fill(fDistanceFromGoodClusterAndTrackAtLastPlane);
    }
  }

  return kConverged;
  
}

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

void AliMuonForwardTrackFinder::AttachGoodClusterInPlane(Int_t planeId) { 
  
  AliDebug(1, Form(">>>> executing AliMuonForwardTrackFinder::AttachGoodClusterInPlane(%d)\n", planeId));

  AliMUONTrackParam currentParamFront, currentParamBack;

  if (planeId == fNPlanesMFT-1) {      // last plane of the telecope
    currentParamFront = (*((AliMUONTrackParam*)(fMuonTrackReco->GetTrackParamAtCluster()->First())));
    currentParamBack  = (*((AliMUONTrackParam*)(fMuonTrackReco->GetTrackParamAtCluster()->First())));
    AliMUONTrackExtrap::ExtrapToVertexWithoutBranson(&currentParamFront, 0.); 
    AliMUONTrackExtrap::ExtrapToVertexWithoutBranson(&currentParamBack,  0.); 
  }
  else {          // MFT planes others than the last one: mult. scattering correction because of the upstream MFT planes is performed
    AliDebug(2, Form("fCurrentTrack = %p\n", fCurrentTrack));
    currentParamFront = (*((AliMUONTrackParam*)(fCurrentTrack->GetTrackParamAtCluster()->First())));
    currentParamBack  = (*((AliMUONTrackParam*)(fCurrentTrack->GetTrackParamAtCluster()->First())));
    AliMUONTrackExtrap::AddMCSEffect(&currentParamFront, (fSegmentation->GetPlane(planeId+1)->GetEquivalentSilicon()+
							  fSegmentation->GetPlane(planeId)->GetEquivalentSiliconBeforeFront())/fRadLengthSi,-1.);
    AliMUONTrackExtrap::AddMCSEffect(&currentParamBack,  (fSegmentation->GetPlane(planeId+1)->GetEquivalentSilicon()+
							  fSegmentation->GetPlane(planeId)->GetEquivalentSiliconBeforeBack())/fRadLengthSi,-1.);
  }
  // for all planes: linear extrapolation to the Z of the plane
  AliMUONTrackExtrap::ExtrapToZCov(&currentParamFront, -1.*fSegmentation->GetPlane(planeId)->GetZCenterActiveFront());   
  AliMUONTrackExtrap::ExtrapToZCov(&currentParamBack,  -1.*fSegmentation->GetPlane(planeId)->GetZCenterActiveBack());   

  Bool_t goodClusterFound = kFALSE;
  
  // Analyizing the clusters: FRONT ACTIVE ELEMENTS

  Int_t nClustersFront = fMFTClusterArrayFront[planeId]->GetEntries();
  
  AliDebug(1, Form("nClustersFront = %d\n", nClustersFront));
  for (Int_t iCluster=0; iCluster<nClustersFront; iCluster++) {
    AliMFTCluster *cluster = (AliMFTCluster*) fMFTClusterArrayFront[planeId]->UncheckedAt(iCluster);
    AliDebug(2, Form("checking cluster %02d of %02d: cluter=%p, fCurrentTrack=%p\n", iCluster, nClustersFront, cluster, fCurrentTrack));
    if (IsCorrectMatch(cluster)) {
      fCurrentTrack->AddTrackParamAtMFTCluster(currentParamFront, *cluster);  // creating new track param and attaching the cluster
      fCurrentTrack->SetPlaneExists(planeId);
      goodClusterFound = kTRUE;
      break;
    }
  }

  if (goodClusterFound) return;

  // Analyizing the clusters: BACK ACTIVE ELEMENTS

  Int_t nClustersBack = fMFTClusterArrayBack[planeId]->GetEntries();
  
  AliDebug(1, Form("nClustersBack = %d\n", nClustersBack));
  for (Int_t iCluster=0; iCluster<nClustersBack; iCluster++) {
    AliMFTCluster *cluster = (AliMFTCluster*) fMFTClusterArrayBack[planeId]->UncheckedAt(iCluster);
    AliDebug(2,Form("checking cluster %02d of %02d: cluter=%p, fCurrentTrack=%p\n", iCluster, nClustersBack, cluster, fCurrentTrack));
    if (IsCorrectMatch(cluster)) {
      fCurrentTrack->AddTrackParamAtMFTCluster(currentParamBack, *cluster);  // creating new track param and attaching the cluster
      fCurrentTrack->SetPlaneExists(planeId);
      goodClusterFound = kTRUE;
      break;
    }
  }

}

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

void AliMuonForwardTrackFinder::CheckCurrentMuonTrackable() {

  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    fIsGoodClusterInPlane[iPlane] = kFALSE;
    Int_t nClusters = fMFTClusterArray[iPlane]->GetEntriesFast();
    for (Int_t iCluster=0; iCluster<nClusters; iCluster++) {
      AliMFTCluster *cluster = (AliMFTCluster*) fMFTClusterArray[iPlane]->At(iCluster); 
      for (Int_t iTrack=0; iTrack<cluster->GetNMCTracks(); iTrack++) {
	if (cluster->GetMCLabel(iTrack)==fLabelMC) {
	  fIsGoodClusterInPlane[iPlane] = kTRUE;
	  break;
	}
      }
    }
  }

  fIsCurrentMuonTrackable = kTRUE;
  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) fIsCurrentMuonTrackable = (fIsCurrentMuonTrackable&&fIsGoodClusterInPlane[iPlane]);

}

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

void AliMuonForwardTrackFinder::FillPlanesWithTrackHistory() { 
  
  // Fill planes with the clusters

  Int_t cluster = 0;
  AliDebug(2, Form("fFinalBestCandidate->GetNMFTClusters() = %d\n",  fFinalBestCandidate->GetNMFTClusters()));
  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    if (fFinalBestCandidate->PlaneExists(iPlane)) {
      AliMFTCluster *trackCluster = fFinalBestCandidate->GetMFTCluster(cluster++);
      fGrMFTPlane[kClusterOfTrack][iPlane] -> SetPoint(fGrMFTPlane[kClusterOfTrack][iPlane]->GetN(), trackCluster->GetX(), trackCluster->GetY());
    }
    Int_t nClusters = fMFTClusterArray[iPlane]->GetEntriesFast();
    for (Int_t iCluster=0; iCluster<nClusters; iCluster++) {
      AliMFTCluster *myCluster = (AliMFTCluster*) fMFTClusterArray[iPlane]->UncheckedAt(iCluster); 
      fGrMFTPlane[kAllClusters][iPlane] -> SetPoint(fGrMFTPlane[kAllClusters][iPlane]->GetN(), myCluster->GetX(), myCluster->GetY());
      if (IsCorrectMatch(myCluster)) {
	fGrMFTPlane[kClusterCorrectMC][iPlane] -> SetPoint(fGrMFTPlane[kClusterCorrectMC][iPlane]->GetN(), myCluster->GetX(), myCluster->GetY());
      }
    }
  }

}

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

Bool_t AliMuonForwardTrackFinder::IsCorrectMatch(AliMFTCluster *cluster) {

  Bool_t result = kFALSE;

  // check if the cluster belongs to the correct MC track

  for (Int_t iTrack=0; iTrack<cluster->GetNMCTracks(); iTrack++) {
    if (cluster->GetMCLabel(iTrack)==fLabelMC) {
      result = kTRUE;
      break;
    }
  }

  AliDebug(2,Form("returning %d\n", result));

  return result;

}

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

Double_t AliMuonForwardTrackFinder::TryOneCluster(const AliMUONTrackParam &trackParam, AliMFTCluster *cluster) {

  // Test the compatibility between the track and the cluster (using trackParam's covariance matrix):
  // return the corresponding Chi2
  // assume the track parameters are given at the Z of the cluster
  
  // Set differences between trackParam and cluster in the bending and non bending directions
  Double_t dX = cluster->GetX() - trackParam.GetNonBendingCoor();
  Double_t dY = cluster->GetY() - trackParam.GetBendingCoor();
  AliDebug(3,Form("dX = %f, dY = %f\n", dX, dY));
  
  // Calculate errors and covariances
  const TMatrixD& kParamCov = trackParam.GetCovariances();
  Double_t sigmaX2 = kParamCov(0,0) + cluster->GetErrX2();
  Double_t sigmaY2 = kParamCov(2,2) + cluster->GetErrY2();
  AliDebug(3, Form("dX2 = %f, dY2 = %f\n", sigmaX2, sigmaY2));
  Double_t covXY   = kParamCov(0,2);
  Double_t det     = sigmaX2 * sigmaY2 - covXY * covXY;
  
  // Compute chi2
  if (det==0.) return 1.e10;
  return (dX*dX*sigmaY2 + dY*dY*sigmaX2 - 2.*dX*dY*covXY) / det;
  
}

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

void AliMuonForwardTrackFinder::SeparateFrontBackClusters() {

  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    printf("Separating front/back clusters\n");
    fMFTClusterArrayFront[iPlane]->Delete();
    fMFTClusterArrayBack[iPlane] ->Delete();
    for (Int_t iCluster=0; iCluster<fMFTClusterArray[iPlane]->GetEntries(); iCluster++) {
      AliMFTCluster *cluster = (AliMFTCluster*) fMFTClusterArray[iPlane]->At(iCluster);
      if (TMath::Abs(cluster->GetZ())<TMath::Abs(fSegmentation->GetPlane(iPlane)->GetZCenter())) {
	new ((*fMFTClusterArrayFront[iPlane])[fMFTClusterArrayFront[iPlane]->GetEntries()]) AliMFTCluster(*cluster);
      }
      else {
	new ((*fMFTClusterArrayBack[iPlane])[fMFTClusterArrayBack[iPlane]->GetEntries()]) AliMFTCluster(*cluster);
      }
    }
  }

}

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

Int_t AliMuonForwardTrackFinder::GetNDF(Int_t nClusters) {

  // the same definition as in AliMUONTrack is implemented, since here we just add more clusters to the Muon track
  
  Int_t ndf = 2 * nClusters - 5;
  return (ndf > 0) ? ndf : 0;

}

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

void AliMuonForwardTrackFinder::BookHistos() {

  const Int_t nMaxNewTracks[]  = {150,     200,   250, 600, 1000};
  const Double_t radiusPlane[] = {0.010, 0.010, 0.050, 0.5,  1.5};

  fHistRadiusEndOfAbsorber = new TH1D("hRadiusEndOfAbsorber", "Track radial distance at the end of the absorber",  1000, 0, 100.); 

  fHistNGoodClustersForFinalTracks = new TH1D("hNGoodClustersForFinalTracks", "Number of Good Clusters per Final Track", 20, -0.25, 9.75);

  fHistDistanceGoodClusterFromTrackAtLastPlane = new TH1D("hDistanceGoodClusterFromTrackAtLastPlane",
							  "Distance of MC Good Cluster from Track in last MFT plane", 200, 0., 2.);
  
  fHistDistanceGoodClusterFromTrackMinusDistanceBestClusterFromTrackAtLastPlane = 
    new TH1D("hDistanceGoodClusterFromTrackMinusDistanceBestClusterFromTrackAtLastPlane",
	     "Good Cluster distance from track - Best Cluster distance from track in last MFT plane", 200, 0., 2.);
  
  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    
    fHistNTracksAfterExtrapolation[iPlane] = new TH1D(Form("hNTracksAfterExtrapolation_pl%02d", iPlane),
						      Form("Number of Candidates after analysis of MFT plane %02d", iPlane),
						      nMaxNewTracks[iPlane], -0.5, nMaxNewTracks[iPlane]-0.5);
    
    fHistResearchRadius[iPlane] = new TH1D(Form("hResearchRadius_pl%02d", iPlane),
					   Form("Research Radius for candidate clusters in MFT plane %02d", iPlane),
					   1000, 0., radiusPlane[iPlane]);
    
    fHistChi2Cluster_GoodCluster[iPlane] = new TH1D(Form("hChi2Cluster_GoodCluster_pl%02d", iPlane),
						    Form("#chi^{2}_{clust} for Good clusters in MFT plane %02d", iPlane),
						    100, 0., 15.);
    
    fHistChi2Cluster_BadCluster[iPlane] = new TH1D(Form("hChi2Cluster_BadCluster_pl%02d", iPlane),
						   Form("#chi^{2}_{clust} for Bad clusters in MFT plane %02d", iPlane),
						   100, 0., 15.);

    fHistGlobalChi2AtPlaneFor_GOOD_CandidatesOfTrackableMuons[iPlane] = new TH1D(Form("fHistGlobalChi2AtPlaneFor_GOOD_CandidatesOfTrackableMuons_pl%02d", iPlane),
										 Form("#chi^{2}/ndf at plane %d for GOOD candidates of trackable muons",iPlane),
										 100, 0., 15.);
    
    fHistGlobalChi2AtPlaneFor_BAD_CandidatesOfTrackableMuons[iPlane] = new TH1D(Form("fHistGlobalChi2AtPlaneFor_BAD_CandidatesOfTrackableMuons_pl%02d", iPlane),
										Form("#chi^{2}/ndf at plane %d for BAD candidates of trackable muons",iPlane),
										100, 0., 15.);
    
  }
  
  //------------------------------------------
  
  fHistRadiusEndOfAbsorber          -> Sumw2();
  fHistNGoodClustersForFinalTracks  -> Sumw2();

  fHistDistanceGoodClusterFromTrackAtLastPlane                                  -> Sumw2();  
  fHistDistanceGoodClusterFromTrackMinusDistanceBestClusterFromTrackAtLastPlane -> Sumw2();  

  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    
    fHistNTracksAfterExtrapolation[iPlane] -> Sumw2();
    fHistResearchRadius[iPlane]            -> Sumw2();
    
    fHistChi2Cluster_GoodCluster[iPlane]        -> Sumw2();
    fHistChi2Cluster_BadCluster[iPlane]         -> Sumw2();

    fHistGlobalChi2AtPlaneFor_GOOD_CandidatesOfTrackableMuons[iPlane] -> Sumw2();
    fHistGlobalChi2AtPlaneFor_BAD_CandidatesOfTrackableMuons[iPlane]  -> Sumw2();
    
  }

  fNtuFinalCandidates     = new TNtuple("ntuFinalCandidates",     "Final Candidates (ALL)", "run:event:muonTrack:nFinalCandidates:MCTrackRefExists:xVtx:yVtx:zVtx:motherPdg:triggerMatch:nClustersMC:nGoodClusters:pt:theta:eta:chi2AtPlane0:chi2AtPlane1:chi2AtPlane2:chi2AtPlane3:chi2AtPlane4:chi2AtPlane5:chi2AtPlane6:chi2AtPlane7:chi2AtPlane8");

  fNtuFinalBestCandidates = new TNtuple("ntuFinalBestCandidates", "Final Best Candidates",  "run:event:muonTrack:nFinalCandidates:MCTrackRefExists:xVtx:yVtx:zVtx:motherPdg:triggerMatch:nClustersMC:nGoodClusters:pt:theta:eta:chi2AtPlane0:chi2AtPlane1:chi2AtPlane2:chi2AtPlane3:chi2AtPlane4:chi2AtPlane5:chi2AtPlane6:chi2AtPlane7:chi2AtPlane8:nClustersAtPlane0:nClustersAtPlane1:nClustersAtPlane2:nClustersAtPlane3:nClustersAtPlane4:nClustersAtPlane5:nClustersAtPlane6:nClustersAtPlane7:nClustersAtPlane8");

}

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

void AliMuonForwardTrackFinder::SetTitleHistos() {

  fHistRadiusEndOfAbsorber         -> SetXTitle("R_{abs}  [cm]");
  fHistNGoodClustersForFinalTracks -> SetXTitle("N_{GoodClusters}");

  fHistDistanceGoodClusterFromTrackAtLastPlane                                  -> SetXTitle("Distance  [cm]");  
  fHistDistanceGoodClusterFromTrackMinusDistanceBestClusterFromTrackAtLastPlane -> SetXTitle("Distance  [cm]");  


  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    
    fHistNTracksAfterExtrapolation[iPlane] -> SetXTitle("N_{tracks}");
    fHistResearchRadius[iPlane]            -> SetXTitle("Research Radius  [cm]");
    
    fHistChi2Cluster_GoodCluster[iPlane]         -> SetXTitle("#chi^{2}/ndf");
    fHistChi2Cluster_BadCluster[iPlane]          -> SetXTitle("#chi^{2}/ndf");

    fHistGlobalChi2AtPlaneFor_GOOD_CandidatesOfTrackableMuons[iPlane] -> SetXTitle("#chi^{2}/ndf");
    fHistGlobalChi2AtPlaneFor_BAD_CandidatesOfTrackableMuons[iPlane]  -> SetXTitle("#chi^{2}/ndf");
    
  }

}

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

void AliMuonForwardTrackFinder::BookPlanes() {

  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    fGrMFTPlane[kAllClusters][iPlane] = new TGraph();
    fGrMFTPlane[kAllClusters][iPlane] -> SetName(Form("fGrMFTPlane_%02d_AllClusters",iPlane));
    fGrMFTPlane[kAllClusters][iPlane] -> SetMarkerStyle(20);
    //    fGrMFTPlane[kAllClusters][iPlane] -> SetMarkerSize(0.5);
    //    fGrMFTPlane[kAllClusters][iPlane] -> SetMarkerSize(0.3);
    fGrMFTPlane[kAllClusters][iPlane] -> SetMarkerSize(0.2);
  }

  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    fGrMFTPlane[kClustersGoodChi2][iPlane] = new TGraph();
    fGrMFTPlane[kClustersGoodChi2][iPlane] -> SetName(Form("fGrMFTPlane_%02d_ClustersGoodChi2",iPlane));
    fGrMFTPlane[kClustersGoodChi2][iPlane] -> SetMarkerStyle(20);
    //    fGrMFTPlane[kClustersGoodChi2][iPlane] -> SetMarkerSize(0.8);
    //    fGrMFTPlane[kClustersGoodChi2][iPlane] -> SetMarkerSize(0.4);
    fGrMFTPlane[kClustersGoodChi2][iPlane] -> SetMarkerSize(0.3);
    fGrMFTPlane[kClustersGoodChi2][iPlane] -> SetMarkerColor(kBlue);
  }

  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    fGrMFTPlane[kClusterOfTrack][iPlane] = new TGraph();
    fGrMFTPlane[kClusterOfTrack][iPlane] -> SetName(Form("fGrMFTPlane_%02d_ClustersOfTrack",iPlane));
    fGrMFTPlane[kClusterOfTrack][iPlane] -> SetMarkerStyle(25);
    //    fGrMFTPlane[kClusterOfTrack][iPlane] -> SetMarkerSize(1.2);
    fGrMFTPlane[kClusterOfTrack][iPlane] -> SetMarkerSize(0.9);
    fGrMFTPlane[kClusterOfTrack][iPlane] -> SetMarkerColor(kRed);
    fGrMFTPlane[kClusterOfTrack][iPlane] -> SetTitle(Form("Plane %d (%3.1f cm)", iPlane, fZPlane[iPlane]));
  }

  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    fGrMFTPlane[kClusterCorrectMC][iPlane] = new TGraph();
    fGrMFTPlane[kClusterCorrectMC][iPlane] -> SetName(Form("fGrMFTPlane_%02d_ClustersCorrectMC",iPlane));
    fGrMFTPlane[kClusterCorrectMC][iPlane] -> SetMarkerStyle(20);
    //    fGrMFTPlane[kClusterCorrectMC][iPlane] -> SetMarkerSize(0.8);
    fGrMFTPlane[kClusterCorrectMC][iPlane] -> SetMarkerSize(0.5);
    fGrMFTPlane[kClusterCorrectMC][iPlane] -> SetMarkerColor(kGreen);
  }

  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    fCircleExt[iPlane] = new TEllipse(0., 0., fRPlaneMax[iPlane], fRPlaneMax[iPlane]);
    fCircleInt[iPlane] = new TEllipse(0., 0., fRPlaneMin[iPlane], fRPlaneMin[iPlane]);
  }
  
  fTxtDummy = new TLatex(0.10, 0.59, "Best Candidate:");

  //---------------------------------------------------

  fMrkAllClust = new TMarker(0.10, 0.32, 20);
  fMrkAllClust -> SetMarkerSize(0.5);

  fMrkClustGoodChi2 = new TMarker(0.10, 0.26, 20);
  fMrkClustGoodChi2 -> SetMarkerSize(0.8);
  fMrkClustGoodChi2 -> SetMarkerColor(kBlue);

  fMrkClustMC = new TMarker(0.10, 0.20, 20);
  fMrkClustMC -> SetMarkerSize(0.8);
  fMrkClustMC -> SetMarkerColor(kGreen);

  fMrkClustOfTrack = new TMarker(0.10, 0.14, 25);
  fMrkClustOfTrack -> SetMarkerSize(1.2);
  fMrkClustOfTrack -> SetMarkerColor(kRed);

  fTxtAllClust = new TLatex(0.15, 0.30, "All Clusters");
  fTxtAllClust -> SetTextSize(0.040);

  fTxtClustGoodChi2 = new TLatex(0.15, 0.24, "Clusters involved in the research");
  fTxtClustGoodChi2 -> SetTextSize(0.040);

  fTxtClustMC = new TLatex(0.15, 0.18, "MC good clusters");
  fTxtClustMC -> SetTextSize(0.040);

  fTxtClustOfTrack = new TLatex(0.15, 0.12, "Clusters of the best candidate");
  fTxtClustOfTrack -> SetTextSize(0.040);

}

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

void AliMuonForwardTrackFinder::ResetPlanes() {

  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    for (Int_t iGr=0; iGr<4; iGr++) {
      Int_t nOldClusters = fGrMFTPlane[iGr][iPlane]->GetN();
      for (Int_t iPoint=nOldClusters-1; iPoint>=0; iPoint--) fGrMFTPlane[iGr][iPlane]->RemovePoint(iPoint);
    }
  }

}

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

void AliMuonForwardTrackFinder::PrintParticleHistory() {

  AliDebug(1, "Entering");

  TString history = "";
  
  TParticle *part = 0;
  if (fLabelMC>=0) part = fStack->Particle(fLabelMC);

  AliDebug(1, Form("fStack->Particle(%d) = %p", fLabelMC, part));

  if (part) {
    AliDebug(1, Form("fStack->Particle(%d)->GetPdgCode() = %d", fLabelMC, part->GetPdgCode()));
    if (part->GetFirstMother() != -1) {
      TParticle *partMother = fStack->Particle(part->GetFirstMother());
      AliDebug(1, Form("fStack->Particle(%d) = %p", part->GetFirstMother(), partMother));
      if (partMother) {
	Char_t newName[100];
	if (partMother->GetFirstMother() != -1) history += "...  #rightarrow ";
	PDGNameConverter(partMother->GetName(), newName);
	history += Form("%s #rightarrow ", newName);
      }
    }
    Char_t newName[100];
    AliDebug(1, Form("fStack->Particle(%d)->GetPdgCode() = %d", fLabelMC, part->GetPdgCode()));
    AliDebug(1, Form("fStack->Particle(%d)->GetName() = %s", fLabelMC, part->GetName()));
    PDGNameConverter(part->GetName(), newName);
    history += Form("%s  at  z = %5.1f cm", newName, part->Vz());
    //  printf("%s", history.Data());
  }
  else history += "NO AVAILABLE HISTORY";

  fTxtMuonHistory = new TLatex(0.10, 0.86, history.Data());

  // Filling particle history in the fFinalBestCandidate

  if (part) {
    for (Int_t iParent=0; iParent<AliMuonForwardTrack::fgkNParentsMax; iParent++) {
      if (part->GetFirstMother() == -1) break;
      if (!(fStack->Particle(part->GetFirstMother()))) break;
      AliDebug(1, Form("fStack->Particle(part->GetFirstMother() = %p", fStack->Particle(part->GetFirstMother())));
      fFinalBestCandidate->SetParentMCLabel(iParent, part->GetFirstMother());
      fFinalBestCandidate->SetParentPDGCode(iParent, fStack->Particle(part->GetFirstMother())->GetPdgCode());
      part = fStack->Particle(part->GetFirstMother());
    }
  }
  
}

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

Bool_t AliMuonForwardTrackFinder::IsMother(const Char_t *nameMother) {
  
  Bool_t result = kFALSE;
  
  TParticle *part = 0;
  if (fLabelMC>=0) part = fStack->Particle(fLabelMC);
  
  if (part) {
    if (part->GetFirstMother() != -1) {
      TParticle *partMother = fStack->Particle(part->GetFirstMother());
      if (partMother) {
	if (!strcmp(partMother->GetName(), nameMother)) result=kTRUE;
      }
    }
  }

  return result;

}

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

void AliMuonForwardTrackFinder::DrawPlanes() {

  fCanvas -> Clear();
  if (fNPlanesMFT <= 5)       fCanvas -> Divide(3,2);
  else if (fNPlanesMFT <= 11) fCanvas -> Divide(4,3);
  else if (fNPlanesMFT <= 19) fCanvas -> Divide(5,4);

  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    
    fCanvas->cd(fNPlanesMFT-iPlane+1);
    
    fGrMFTPlane[kClusterOfTrack][iPlane] -> GetXaxis() -> SetLimits(-1.1*fRPlaneMax[fNPlanesMFT-1], +1.1*fRPlaneMax[fNPlanesMFT-1]);
    fGrMFTPlane[kClusterOfTrack][iPlane] -> GetYaxis() -> SetRangeUser(-1.1*fRPlaneMax[fNPlanesMFT-1], +1.1*fRPlaneMax[fNPlanesMFT-1]);
    fGrMFTPlane[kClusterOfTrack][iPlane] -> GetXaxis() -> SetTitle("X  [cm]");
    fGrMFTPlane[kClusterOfTrack][iPlane] -> GetYaxis() -> SetTitle("Y  [cm]");
    fGrMFTPlane[kClusterOfTrack][iPlane] -> Draw("ap");

    fCircleExt[iPlane] -> Draw("same");
    fCircleInt[iPlane] -> Draw("same");
    
    if (fGrMFTPlane[kAllClusters][iPlane]->GetN())       fGrMFTPlane[kAllClusters][iPlane]      -> Draw("psame");
    if (fGrMFTPlane[kClustersGoodChi2][iPlane]->GetN())  fGrMFTPlane[kClustersGoodChi2][iPlane] -> Draw("psame");
    if (fGrMFTPlane[kClusterOfTrack][iPlane]->GetN())    fGrMFTPlane[kClusterOfTrack][iPlane]   -> Draw("psame");
    if (fGrMFTPlane[kClusterCorrectMC][iPlane]->GetN())  fGrMFTPlane[kClusterCorrectMC][iPlane] -> Draw("psame");

    fTxtTrackChi2[iPlane] -> Draw("same");

  }

  fCanvas -> cd(1);
  fTxtMuonHistory       -> Draw();
  fTxtDummy             -> Draw("same");
  if (fMatchingMode==kRealMatching) fTxtTrackGoodClusters -> Draw("same");
  fTxtTrackFinalChi2    -> Draw("same");
  fTxtTrackMomentum     -> Draw("same");
  if (fMatchingMode==kRealMatching) fTxtFinalCandidates   -> Draw("same");

  fMrkAllClust      -> Draw("same");
  fMrkClustGoodChi2 -> Draw("same");
  fMrkClustMC       -> Draw("same");
  fMrkClustOfTrack  -> Draw("same");

  fTxtAllClust      -> Draw("same");
  fTxtClustGoodChi2 -> Draw("same");
  fTxtClustMC       -> Draw("same");
  fTxtClustOfTrack  -> Draw("same");

  //  fCanvas -> SaveAs(Form("%s/figures/eventDisplay/run%d_event%d_track%d.eps", fOutDir.Data(), fRun, fEv, fCountRealTracksAnalyzedOfEvent));
  fCanvas -> SaveAs(Form("%s/figures/eventDisplay/run%d_event%d_track%d.gif", fOutDir.Data(), fRun, fEv, fCountRealTracksAnalyzedOfEvent));
  if (IsMother("phi")) {
    fCanvas -> SaveAs(Form("%s/figures/eventDisplay/run%d_event%d_track%d.phi.gif", fOutDir.Data(), fRun, fEv, fCountRealTracksAnalyzedOfEvent));
    fCanvas -> SaveAs(Form("%s/figures/eventDisplay/run%d_event%d_track%d.phi.eps", fOutDir.Data(), fRun, fEv, fCountRealTracksAnalyzedOfEvent));
  }
  if (IsMother("J/psi")) {
    fCanvas -> SaveAs(Form("%s/figures/eventDisplay/run%d_event%d_track%d.jPsi.gif", fOutDir.Data(), fRun, fEv, fCountRealTracksAnalyzedOfEvent));
    fCanvas -> SaveAs(Form("%s/figures/eventDisplay/run%d_event%d_track%d.jPsi.eps", fOutDir.Data(), fRun, fEv, fCountRealTracksAnalyzedOfEvent));
  }
    
}

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

void AliMuonForwardTrackFinder::Terminate() {
  
  AliInfo("");
  AliInfo("---------------------------------------------------------------------------------------------------------------");
  AliInfo(Form("%8d  tracks analyzed",                                                     fCountRealTracksAnalyzed));
  AliInfo(Form("%8d  tracks with MC ref",                                                  fCountRealTracksWithRefMC));
  AliInfo(Form("%8d  tracks with MC ref & trigger match",                                  fCountRealTracksWithRefMC_andTrigger));
  if (fMatchingMode==kRealMatching) {
    AliInfo(Form("%8d  tracks analyzed with final candidates",                             fCountRealTracksAnalyzedWithFinalCandidates));
  }
  else {
    AliInfo(Form("%8d  tracks matched with their MC clusters",                             fCountRealTracksAnalyzedWithFinalCandidates));
  }
//   printf("%8d  tracks with MC ref & trigger match & pt>%3.1f GeV/c",                 fCountRealTracksWithRefMC_andTrigger_andGoodPt, fLowPtCut);
//   printf("%8d  tracks with MC ref & trigger match & pt>%3.1f GeV/c & correct R_abs", fCountRealTracksWithRefMC_andTrigger_andGoodPt_andGoodTheta, fLowPtCut);
  AliInfo("---------------------------------------------------------------------------------------------------------------");

  WriteOutputTree();
  WriteHistos();

}

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

void AliMuonForwardTrackFinder::FillOutputTree() {

  if (!fMuonForwardTracks || !fOutputEventTree) return;

  AliDebug(1, Form("Filling output tree %p with %p having %d entries whose 1st entry is %p", 
		   fOutputEventTree, fMuonForwardTracks, fMuonForwardTracks->GetEntries(), fMuonForwardTracks->At(0)));
  
  //  fOutputTreeFile->cd();
  fOutputEventTree->Fill();
  AliDebug(1, Form("\nFilled Tree: nEvents = %d!!!!\n", Int_t(fOutputEventTree->GetEntries())));

}

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

void AliMuonForwardTrackFinder::WriteOutputTree() {

  if (!fOutputEventTree || !fOutputTreeFile) return;

  fOutputTreeFile -> cd();

  fOutputEventTree -> Write();
  fOutputTreeFile -> Close();

}

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

void AliMuonForwardTrackFinder::WriteHistos() {

  fOutputQAFile = new TFile(Form("MuonGlobalTracking.QA.run%d.root", fRun), "recreate");
  fOutputQAFile -> cd();

  fHistRadiusEndOfAbsorber         -> Write();
  fHistNGoodClustersForFinalTracks -> Write();

  fHistDistanceGoodClusterFromTrackAtLastPlane                                  -> Write();  
  fHistDistanceGoodClusterFromTrackMinusDistanceBestClusterFromTrackAtLastPlane -> Write();  

  for (Int_t iPlane=0; iPlane<fNPlanesMFT; iPlane++) {
    
    fHistNTracksAfterExtrapolation[iPlane] -> Write();
    fHistResearchRadius[iPlane]            -> Write();
    
    fHistChi2Cluster_GoodCluster[iPlane]   -> Write();
    fHistChi2Cluster_BadCluster[iPlane]    -> Write();
    
    fHistGlobalChi2AtPlaneFor_GOOD_CandidatesOfTrackableMuons[iPlane] -> Write();
    fHistGlobalChi2AtPlaneFor_BAD_CandidatesOfTrackableMuons[iPlane]  -> Write();

  }

  fNtuFinalCandidates     -> Write();
  fNtuFinalBestCandidates -> Write();

  fOutputQAFile -> Close();

}

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

void AliMuonForwardTrackFinder::PDGNameConverter(const Char_t *nameIn, Char_t *nameOut) {

  if      (!strcmp(nameIn, "mu+"))     snprintf(nameOut, 50, "#mu^{+}");
  else if (!strcmp(nameIn, "mu-"))     snprintf(nameOut, 50, "#mu^{-}");
  else if (!strcmp(nameIn, "pi+"))     snprintf(nameOut, 50, "#pi^{+}");
  else if (!strcmp(nameIn, "pi-"))     snprintf(nameOut, 50, "#pi^{-}");
  else if (!strcmp(nameIn, "K+"))      snprintf(nameOut, 50, "K^{+}");
  else if (!strcmp(nameIn, "K-"))      snprintf(nameOut, 50, "K^{-}");
  else if (!strcmp(nameIn, "K*+"))     snprintf(nameOut, 50, "K^{*+}");
  else if (!strcmp(nameIn, "K*-"))     snprintf(nameOut, 50, "K^{*-}");
  else if (!strcmp(nameIn, "K_S0"))    snprintf(nameOut, 50, "K_{S}^{0}");
  else if (!strcmp(nameIn, "K_L0"))    snprintf(nameOut, 50, "K_{L}^{0}");
  else if (!strcmp(nameIn, "K0"))      snprintf(nameOut, 50, "K^{0}");
  else if (!strcmp(nameIn, "K0_bar"))  snprintf(nameOut, 50, "#bar{K}^{0}");
  else if (!strcmp(nameIn, "K*0"))     snprintf(nameOut, 50, "K^{*0}");
  else if (!strcmp(nameIn, "K*0_bar")) snprintf(nameOut, 50, "#bar{K}^{*0}");
  else if (!strcmp(nameIn, "rho0"))    snprintf(nameOut, 50, "#rho^{0}");
  else if (!strcmp(nameIn, "rho+"))    snprintf(nameOut, 50, "#rho^{+}");
  else if (!strcmp(nameIn, "rho-"))    snprintf(nameOut, 50, "#rho^{-}");
  else if (!strcmp(nameIn, "omega"))   snprintf(nameOut, 50, "#omega");
  else if (!strcmp(nameIn, "eta'"))    snprintf(nameOut, 50, "#eta'");
  else if (!strcmp(nameIn, "phi"))     snprintf(nameOut, 50, "#phi");

  else if (!strcmp(nameIn, "D-"))     snprintf(nameOut, 50, "D^{-}");
  else if (!strcmp(nameIn, "D+"))     snprintf(nameOut, 50, "D^{+}");
  else if (!strcmp(nameIn, "D0"))     snprintf(nameOut, 50, "D^{0}");
  else if (!strcmp(nameIn, "D0_bar")) snprintf(nameOut, 50, "#bar{D}^{0}");
  else if (!strcmp(nameIn, "D*-"))    snprintf(nameOut, 50, "D^{*-}");
  else if (!strcmp(nameIn, "D*+"))    snprintf(nameOut, 50, "D^{*+}");
  else if (!strcmp(nameIn, "D_s+"))   snprintf(nameOut, 50, "D_{s}^{+}");
  else if (!strcmp(nameIn, "D*_s+"))  snprintf(nameOut, 50, "D_{s}^{*+}");

  else if (!strcmp(nameIn, "B-"))       snprintf(nameOut, 50, "B^{-}");
  else if (!strcmp(nameIn, "B+"))       snprintf(nameOut, 50, "B^{+}");
  else if (!strcmp(nameIn, "B_s0_bar")) snprintf(nameOut, 50, "#bar{B}_{s}^{0}");

  else if (!strcmp(nameIn, "antiproton"))  snprintf(nameOut, 50, "#bar{p}");
  else if (!strcmp(nameIn, "proton"))      snprintf(nameOut, 50, "p");
  else if (!strcmp(nameIn, "neutron"))     snprintf(nameOut, 50, "n");
  else if (!strcmp(nameIn, "Sigma+"))      snprintf(nameOut, 50, "#Sigma^{+}");
  else if (!strcmp(nameIn, "Delta+"))      snprintf(nameOut, 50, "#Delta{+}");
  else if (!strcmp(nameIn, "Delta--"))     snprintf(nameOut, 50, "#Delta{--}");
  else if (!strcmp(nameIn, "Lambda0"))     snprintf(nameOut, 50, "#Lambda_0");
  else if (!strcmp(nameIn, "Lambda0_bar")) snprintf(nameOut, 50, "#bar{Lambda}_0");

  else snprintf(nameOut, 50, "%s", nameIn);

}

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

void AliMuonForwardTrackFinder::SetDraw(Bool_t drawOption) { 

  fDrawOption = drawOption;

  if (!fCanvas) {
    fCanvas = new TCanvas("tracking", "tracking", 1200, 800);
    fCanvas -> Divide(3,2);
  }

}

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

Bool_t AliMuonForwardTrackFinder::InitGRP() {

  //------------------------------------
  // Initialization of the GRP entry 
  //------------------------------------

  AliCDBEntry* entry = AliCDBManager::Instance()->Get("GRP/GRP/Data");

  if (entry) {

    TMap* m = dynamic_cast<TMap*>(entry->GetObject());  // old GRP entry

    if (m) {
       AliInfo("Found a TMap in GRP/GRP/Data, converting it into an AliGRPObject");
       m->Print();
       fGRPData = new AliGRPObject();
       fGRPData->ReadValuesFromMap(m);
    }

    else {
       AliInfo("Found an AliGRPObject in GRP/GRP/Data, reading it");
       fGRPData = dynamic_cast<AliGRPObject*>(entry->GetObject());  // new GRP entry
       entry->SetOwner(0);
    }

    //    FIX ME: The unloading of GRP entry is temporarily disabled
    //    because ZDC and VZERO are using it in order to initialize
    //    their reconstructor objects. In the future one has to think
    //    of propagating AliRunInfo to the reconstructors.
    //    AliCDBManager::Instance()->UnloadFromCache("GRP/GRP/Data");
  }

  if (!fGRPData) {
     AliError("No GRP entry found in OCDB!");
     return kFALSE;
  }

  TString lhcState = fGRPData->GetLHCState();
  if (lhcState==AliGRPObject::GetInvalidString()) {
    AliError("GRP/GRP/Data entry:  missing value for the LHC state ! Using UNKNOWN");
    lhcState = "UNKNOWN";
  }

  TString beamType = fGRPData->GetBeamType();
  if (beamType==AliGRPObject::GetInvalidString()) {
    AliError("GRP/GRP/Data entry:  missing value for the beam type ! Using UNKNOWN");
    beamType = "UNKNOWN";
  }

  Float_t beamEnergy = fGRPData->GetBeamEnergy();
  if (beamEnergy==AliGRPObject::GetInvalidFloat()) {
    AliError("GRP/GRP/Data entry:  missing value for the beam energy ! Using 0");
    beamEnergy = 0;
  }

  TString runType = fGRPData->GetRunType();
  if (runType==AliGRPObject::GetInvalidString()) {
    AliError("GRP/GRP/Data entry:  missing value for the run type ! Using UNKNOWN");
    runType = "UNKNOWN";
  }

  Int_t activeDetectors = fGRPData->GetDetectorMask();
  if (activeDetectors==AliGRPObject::GetInvalidUInt()) {
    AliError("GRP/GRP/Data entry:  missing value for the detector mask ! Using 1074790399");
    activeDetectors = 1074790399;
  }
  AliDebug(1, Form("activeDetectors = %d", activeDetectors));

  fRunInfo = new AliRunInfo(lhcState, beamType, beamEnergy, runType, activeDetectors);
  fRunInfo->Dump();

  // *** Dealing with the magnetic field map

  if ( TGeoGlobalMagField::Instance()->IsLocked() ) {
    if (TGeoGlobalMagField::Instance()->GetField()->TestBit(AliMagF::kOverrideGRP)) {
      AliInfo("ExpertMode!!! GRP information will be ignored !");
      AliInfo("ExpertMode!!! Running with the externally locked B field !");
    }
    else {
      AliInfo("Destroying existing B field instance!");
      delete TGeoGlobalMagField::Instance();
    }    
  }
  if ( !TGeoGlobalMagField::Instance()->IsLocked() ) {
    // Construct the field map out of the information retrieved from GRP.
    Bool_t ok = kTRUE;
    // L3
    Float_t l3Current = fGRPData->GetL3Current((AliGRPObject::Stats)0);
    if (l3Current == AliGRPObject::GetInvalidFloat()) {
      AliError("GRP/GRP/Data entry:  missing value for the L3 current !");
      ok = kFALSE;
    }
    
    Char_t l3Polarity = fGRPData->GetL3Polarity();
    if (l3Polarity == AliGRPObject::GetInvalidChar()) {
      AliError("GRP/GRP/Data entry:  missing value for the L3 polarity !");
      ok = kFALSE;
    }

    // Dipole
    Float_t diCurrent = fGRPData->GetDipoleCurrent((AliGRPObject::Stats)0);
    if (diCurrent == AliGRPObject::GetInvalidFloat()) {
      AliError("GRP/GRP/Data entry:  missing value for the dipole current !");
      ok = kFALSE;
    }

    Char_t diPolarity = fGRPData->GetDipolePolarity();
    if (diPolarity == AliGRPObject::GetInvalidChar()) {
      AliError("GRP/GRP/Data entry:  missing value for the dipole polarity !");
      ok = kFALSE;
    }

    // read special bits for the polarity convention and map type
    Int_t  polConvention = fGRPData->IsPolarityConventionLHC() ? AliMagF::kConvLHC : AliMagF::kConvDCS2008;
    Bool_t uniformB = fGRPData->IsUniformBMap();

    if (ok) { 
      AliMagF* fld = AliMagF::CreateFieldMap(TMath::Abs(l3Current) * (l3Polarity ? -1:1), 
					     TMath::Abs(diCurrent) * (diPolarity ? -1:1), 
					     polConvention,uniformB,beamEnergy, beamType.Data());
      if (fld) {
	TGeoGlobalMagField::Instance()->SetField( fld );
	TGeoGlobalMagField::Instance()->Lock();
	AliInfo("Running with the B field constructed out of GRP !");
      }
      else AliFatal("Failed to create a B field map !");
    }
    else AliFatal("B field is neither set nor constructed from GRP ! Exitig...");
  }
  
  return kTRUE;
} 

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

Bool_t AliMuonForwardTrackFinder::SetRunNumber() {

  AliCDBManager *man = AliCDBManager::Instance();

  if (!fRunLoader) {
    AliError("No run loader found!");
    return kFALSE;
  }
  else {
    fRunLoader->LoadHeader();
    // read run number from gAlice
    if (fRunLoader->GetHeader()) {
      man->SetRun(fRunLoader->GetHeader()->GetRun());
      fRunLoader->UnloadHeader();
    }
    else {
      AliError("No run-loader header found!");
      return kFALSE;
    }
  }

  return kTRUE;

}

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

 AliMuonForwardTrackFinder.cxx:1
 AliMuonForwardTrackFinder.cxx:2
 AliMuonForwardTrackFinder.cxx:3
 AliMuonForwardTrackFinder.cxx:4
 AliMuonForwardTrackFinder.cxx:5
 AliMuonForwardTrackFinder.cxx:6
 AliMuonForwardTrackFinder.cxx:7
 AliMuonForwardTrackFinder.cxx:8
 AliMuonForwardTrackFinder.cxx:9
 AliMuonForwardTrackFinder.cxx:10
 AliMuonForwardTrackFinder.cxx:11
 AliMuonForwardTrackFinder.cxx:12
 AliMuonForwardTrackFinder.cxx:13
 AliMuonForwardTrackFinder.cxx:14
 AliMuonForwardTrackFinder.cxx:15
 AliMuonForwardTrackFinder.cxx:16
 AliMuonForwardTrackFinder.cxx:17
 AliMuonForwardTrackFinder.cxx:18
 AliMuonForwardTrackFinder.cxx:19
 AliMuonForwardTrackFinder.cxx:20
 AliMuonForwardTrackFinder.cxx:21
 AliMuonForwardTrackFinder.cxx:22
 AliMuonForwardTrackFinder.cxx:23
 AliMuonForwardTrackFinder.cxx:24
 AliMuonForwardTrackFinder.cxx:25
 AliMuonForwardTrackFinder.cxx:26
 AliMuonForwardTrackFinder.cxx:27
 AliMuonForwardTrackFinder.cxx:28
 AliMuonForwardTrackFinder.cxx:29
 AliMuonForwardTrackFinder.cxx:30
 AliMuonForwardTrackFinder.cxx:31
 AliMuonForwardTrackFinder.cxx:32
 AliMuonForwardTrackFinder.cxx:33
 AliMuonForwardTrackFinder.cxx:34
 AliMuonForwardTrackFinder.cxx:35
 AliMuonForwardTrackFinder.cxx:36
 AliMuonForwardTrackFinder.cxx:37
 AliMuonForwardTrackFinder.cxx:38
 AliMuonForwardTrackFinder.cxx:39
 AliMuonForwardTrackFinder.cxx:40
 AliMuonForwardTrackFinder.cxx:41
 AliMuonForwardTrackFinder.cxx:42
 AliMuonForwardTrackFinder.cxx:43
 AliMuonForwardTrackFinder.cxx:44
 AliMuonForwardTrackFinder.cxx:45
 AliMuonForwardTrackFinder.cxx:46
 AliMuonForwardTrackFinder.cxx:47
 AliMuonForwardTrackFinder.cxx:48
 AliMuonForwardTrackFinder.cxx:49
 AliMuonForwardTrackFinder.cxx:50
 AliMuonForwardTrackFinder.cxx:51
 AliMuonForwardTrackFinder.cxx:52
 AliMuonForwardTrackFinder.cxx:53
 AliMuonForwardTrackFinder.cxx:54
 AliMuonForwardTrackFinder.cxx:55
 AliMuonForwardTrackFinder.cxx:56
 AliMuonForwardTrackFinder.cxx:57
 AliMuonForwardTrackFinder.cxx:58
 AliMuonForwardTrackFinder.cxx:59
 AliMuonForwardTrackFinder.cxx:60
 AliMuonForwardTrackFinder.cxx:61
 AliMuonForwardTrackFinder.cxx:62
 AliMuonForwardTrackFinder.cxx:63
 AliMuonForwardTrackFinder.cxx:64
 AliMuonForwardTrackFinder.cxx:65
 AliMuonForwardTrackFinder.cxx:66
 AliMuonForwardTrackFinder.cxx:67
 AliMuonForwardTrackFinder.cxx:68
 AliMuonForwardTrackFinder.cxx:69
 AliMuonForwardTrackFinder.cxx:70
 AliMuonForwardTrackFinder.cxx:71
 AliMuonForwardTrackFinder.cxx:72
 AliMuonForwardTrackFinder.cxx:73
 AliMuonForwardTrackFinder.cxx:74
 AliMuonForwardTrackFinder.cxx:75
 AliMuonForwardTrackFinder.cxx:76
 AliMuonForwardTrackFinder.cxx:77
 AliMuonForwardTrackFinder.cxx:78
 AliMuonForwardTrackFinder.cxx:79
 AliMuonForwardTrackFinder.cxx:80
 AliMuonForwardTrackFinder.cxx:81
 AliMuonForwardTrackFinder.cxx:82
 AliMuonForwardTrackFinder.cxx:83
 AliMuonForwardTrackFinder.cxx:84
 AliMuonForwardTrackFinder.cxx:85
 AliMuonForwardTrackFinder.cxx:86
 AliMuonForwardTrackFinder.cxx:87
 AliMuonForwardTrackFinder.cxx:88
 AliMuonForwardTrackFinder.cxx:89
 AliMuonForwardTrackFinder.cxx:90
 AliMuonForwardTrackFinder.cxx:91
 AliMuonForwardTrackFinder.cxx:92
 AliMuonForwardTrackFinder.cxx:93
 AliMuonForwardTrackFinder.cxx:94
 AliMuonForwardTrackFinder.cxx:95
 AliMuonForwardTrackFinder.cxx:96
 AliMuonForwardTrackFinder.cxx:97
 AliMuonForwardTrackFinder.cxx:98
 AliMuonForwardTrackFinder.cxx:99
 AliMuonForwardTrackFinder.cxx:100
 AliMuonForwardTrackFinder.cxx:101
 AliMuonForwardTrackFinder.cxx:102
 AliMuonForwardTrackFinder.cxx:103
 AliMuonForwardTrackFinder.cxx:104
 AliMuonForwardTrackFinder.cxx:105
 AliMuonForwardTrackFinder.cxx:106
 AliMuonForwardTrackFinder.cxx:107
 AliMuonForwardTrackFinder.cxx:108
 AliMuonForwardTrackFinder.cxx:109
 AliMuonForwardTrackFinder.cxx:110
 AliMuonForwardTrackFinder.cxx:111
 AliMuonForwardTrackFinder.cxx:112
 AliMuonForwardTrackFinder.cxx:113
 AliMuonForwardTrackFinder.cxx:114
 AliMuonForwardTrackFinder.cxx:115
 AliMuonForwardTrackFinder.cxx:116
 AliMuonForwardTrackFinder.cxx:117
 AliMuonForwardTrackFinder.cxx:118
 AliMuonForwardTrackFinder.cxx:119
 AliMuonForwardTrackFinder.cxx:120
 AliMuonForwardTrackFinder.cxx:121
 AliMuonForwardTrackFinder.cxx:122
 AliMuonForwardTrackFinder.cxx:123
 AliMuonForwardTrackFinder.cxx:124
 AliMuonForwardTrackFinder.cxx:125
 AliMuonForwardTrackFinder.cxx:126
 AliMuonForwardTrackFinder.cxx:127
 AliMuonForwardTrackFinder.cxx:128
 AliMuonForwardTrackFinder.cxx:129
 AliMuonForwardTrackFinder.cxx:130
 AliMuonForwardTrackFinder.cxx:131
 AliMuonForwardTrackFinder.cxx:132
 AliMuonForwardTrackFinder.cxx:133
 AliMuonForwardTrackFinder.cxx:134
 AliMuonForwardTrackFinder.cxx:135
 AliMuonForwardTrackFinder.cxx:136
 AliMuonForwardTrackFinder.cxx:137
 AliMuonForwardTrackFinder.cxx:138
 AliMuonForwardTrackFinder.cxx:139
 AliMuonForwardTrackFinder.cxx:140
 AliMuonForwardTrackFinder.cxx:141
 AliMuonForwardTrackFinder.cxx:142
 AliMuonForwardTrackFinder.cxx:143
 AliMuonForwardTrackFinder.cxx:144
 AliMuonForwardTrackFinder.cxx:145
 AliMuonForwardTrackFinder.cxx:146
 AliMuonForwardTrackFinder.cxx:147
 AliMuonForwardTrackFinder.cxx:148
 AliMuonForwardTrackFinder.cxx:149
 AliMuonForwardTrackFinder.cxx:150
 AliMuonForwardTrackFinder.cxx:151
 AliMuonForwardTrackFinder.cxx:152
 AliMuonForwardTrackFinder.cxx:153
 AliMuonForwardTrackFinder.cxx:154
 AliMuonForwardTrackFinder.cxx:155
 AliMuonForwardTrackFinder.cxx:156
 AliMuonForwardTrackFinder.cxx:157
 AliMuonForwardTrackFinder.cxx:158
 AliMuonForwardTrackFinder.cxx:159
 AliMuonForwardTrackFinder.cxx:160
 AliMuonForwardTrackFinder.cxx:161
 AliMuonForwardTrackFinder.cxx:162
 AliMuonForwardTrackFinder.cxx:163
 AliMuonForwardTrackFinder.cxx:164
 AliMuonForwardTrackFinder.cxx:165
 AliMuonForwardTrackFinder.cxx:166
 AliMuonForwardTrackFinder.cxx:167
 AliMuonForwardTrackFinder.cxx:168
 AliMuonForwardTrackFinder.cxx:169
 AliMuonForwardTrackFinder.cxx:170
 AliMuonForwardTrackFinder.cxx:171
 AliMuonForwardTrackFinder.cxx:172
 AliMuonForwardTrackFinder.cxx:173
 AliMuonForwardTrackFinder.cxx:174
 AliMuonForwardTrackFinder.cxx:175
 AliMuonForwardTrackFinder.cxx:176
 AliMuonForwardTrackFinder.cxx:177
 AliMuonForwardTrackFinder.cxx:178
 AliMuonForwardTrackFinder.cxx:179
 AliMuonForwardTrackFinder.cxx:180
 AliMuonForwardTrackFinder.cxx:181
 AliMuonForwardTrackFinder.cxx:182
 AliMuonForwardTrackFinder.cxx:183
 AliMuonForwardTrackFinder.cxx:184
 AliMuonForwardTrackFinder.cxx:185
 AliMuonForwardTrackFinder.cxx:186
 AliMuonForwardTrackFinder.cxx:187
 AliMuonForwardTrackFinder.cxx:188
 AliMuonForwardTrackFinder.cxx:189
 AliMuonForwardTrackFinder.cxx:190
 AliMuonForwardTrackFinder.cxx:191
 AliMuonForwardTrackFinder.cxx:192
 AliMuonForwardTrackFinder.cxx:193
 AliMuonForwardTrackFinder.cxx:194
 AliMuonForwardTrackFinder.cxx:195
 AliMuonForwardTrackFinder.cxx:196
 AliMuonForwardTrackFinder.cxx:197
 AliMuonForwardTrackFinder.cxx:198
 AliMuonForwardTrackFinder.cxx:199
 AliMuonForwardTrackFinder.cxx:200
 AliMuonForwardTrackFinder.cxx:201
 AliMuonForwardTrackFinder.cxx:202
 AliMuonForwardTrackFinder.cxx:203
 AliMuonForwardTrackFinder.cxx:204
 AliMuonForwardTrackFinder.cxx:205
 AliMuonForwardTrackFinder.cxx:206
 AliMuonForwardTrackFinder.cxx:207
 AliMuonForwardTrackFinder.cxx:208
 AliMuonForwardTrackFinder.cxx:209
 AliMuonForwardTrackFinder.cxx:210
 AliMuonForwardTrackFinder.cxx:211
 AliMuonForwardTrackFinder.cxx:212
 AliMuonForwardTrackFinder.cxx:213
 AliMuonForwardTrackFinder.cxx:214
 AliMuonForwardTrackFinder.cxx:215
 AliMuonForwardTrackFinder.cxx:216
 AliMuonForwardTrackFinder.cxx:217
 AliMuonForwardTrackFinder.cxx:218
 AliMuonForwardTrackFinder.cxx:219
 AliMuonForwardTrackFinder.cxx:220
 AliMuonForwardTrackFinder.cxx:221
 AliMuonForwardTrackFinder.cxx:222
 AliMuonForwardTrackFinder.cxx:223
 AliMuonForwardTrackFinder.cxx:224
 AliMuonForwardTrackFinder.cxx:225
 AliMuonForwardTrackFinder.cxx:226
 AliMuonForwardTrackFinder.cxx:227
 AliMuonForwardTrackFinder.cxx:228
 AliMuonForwardTrackFinder.cxx:229
 AliMuonForwardTrackFinder.cxx:230
 AliMuonForwardTrackFinder.cxx:231
 AliMuonForwardTrackFinder.cxx:232
 AliMuonForwardTrackFinder.cxx:233
 AliMuonForwardTrackFinder.cxx:234
 AliMuonForwardTrackFinder.cxx:235
 AliMuonForwardTrackFinder.cxx:236
 AliMuonForwardTrackFinder.cxx:237
 AliMuonForwardTrackFinder.cxx:238
 AliMuonForwardTrackFinder.cxx:239
 AliMuonForwardTrackFinder.cxx:240
 AliMuonForwardTrackFinder.cxx:241
 AliMuonForwardTrackFinder.cxx:242
 AliMuonForwardTrackFinder.cxx:243
 AliMuonForwardTrackFinder.cxx:244
 AliMuonForwardTrackFinder.cxx:245
 AliMuonForwardTrackFinder.cxx:246
 AliMuonForwardTrackFinder.cxx:247
 AliMuonForwardTrackFinder.cxx:248
 AliMuonForwardTrackFinder.cxx:249
 AliMuonForwardTrackFinder.cxx:250
 AliMuonForwardTrackFinder.cxx:251
 AliMuonForwardTrackFinder.cxx:252
 AliMuonForwardTrackFinder.cxx:253
 AliMuonForwardTrackFinder.cxx:254
 AliMuonForwardTrackFinder.cxx:255
 AliMuonForwardTrackFinder.cxx:256
 AliMuonForwardTrackFinder.cxx:257
 AliMuonForwardTrackFinder.cxx:258
 AliMuonForwardTrackFinder.cxx:259
 AliMuonForwardTrackFinder.cxx:260
 AliMuonForwardTrackFinder.cxx:261
 AliMuonForwardTrackFinder.cxx:262
 AliMuonForwardTrackFinder.cxx:263
 AliMuonForwardTrackFinder.cxx:264
 AliMuonForwardTrackFinder.cxx:265
 AliMuonForwardTrackFinder.cxx:266
 AliMuonForwardTrackFinder.cxx:267
 AliMuonForwardTrackFinder.cxx:268
 AliMuonForwardTrackFinder.cxx:269
 AliMuonForwardTrackFinder.cxx:270
 AliMuonForwardTrackFinder.cxx:271
 AliMuonForwardTrackFinder.cxx:272
 AliMuonForwardTrackFinder.cxx:273
 AliMuonForwardTrackFinder.cxx:274
 AliMuonForwardTrackFinder.cxx:275
 AliMuonForwardTrackFinder.cxx:276
 AliMuonForwardTrackFinder.cxx:277
 AliMuonForwardTrackFinder.cxx:278
 AliMuonForwardTrackFinder.cxx:279
 AliMuonForwardTrackFinder.cxx:280
 AliMuonForwardTrackFinder.cxx:281
 AliMuonForwardTrackFinder.cxx:282
 AliMuonForwardTrackFinder.cxx:283
 AliMuonForwardTrackFinder.cxx:284
 AliMuonForwardTrackFinder.cxx:285
 AliMuonForwardTrackFinder.cxx:286
 AliMuonForwardTrackFinder.cxx:287
 AliMuonForwardTrackFinder.cxx:288
 AliMuonForwardTrackFinder.cxx:289
 AliMuonForwardTrackFinder.cxx:290
 AliMuonForwardTrackFinder.cxx:291
 AliMuonForwardTrackFinder.cxx:292
 AliMuonForwardTrackFinder.cxx:293
 AliMuonForwardTrackFinder.cxx:294
 AliMuonForwardTrackFinder.cxx:295
 AliMuonForwardTrackFinder.cxx:296
 AliMuonForwardTrackFinder.cxx:297
 AliMuonForwardTrackFinder.cxx:298
 AliMuonForwardTrackFinder.cxx:299
 AliMuonForwardTrackFinder.cxx:300
 AliMuonForwardTrackFinder.cxx:301
 AliMuonForwardTrackFinder.cxx:302
 AliMuonForwardTrackFinder.cxx:303
 AliMuonForwardTrackFinder.cxx:304
 AliMuonForwardTrackFinder.cxx:305
 AliMuonForwardTrackFinder.cxx:306
 AliMuonForwardTrackFinder.cxx:307
 AliMuonForwardTrackFinder.cxx:308
 AliMuonForwardTrackFinder.cxx:309
 AliMuonForwardTrackFinder.cxx:310
 AliMuonForwardTrackFinder.cxx:311
 AliMuonForwardTrackFinder.cxx:312
 AliMuonForwardTrackFinder.cxx:313
 AliMuonForwardTrackFinder.cxx:314
 AliMuonForwardTrackFinder.cxx:315
 AliMuonForwardTrackFinder.cxx:316
 AliMuonForwardTrackFinder.cxx:317
 AliMuonForwardTrackFinder.cxx:318
 AliMuonForwardTrackFinder.cxx:319
 AliMuonForwardTrackFinder.cxx:320
 AliMuonForwardTrackFinder.cxx:321
 AliMuonForwardTrackFinder.cxx:322
 AliMuonForwardTrackFinder.cxx:323
 AliMuonForwardTrackFinder.cxx:324
 AliMuonForwardTrackFinder.cxx:325
 AliMuonForwardTrackFinder.cxx:326
 AliMuonForwardTrackFinder.cxx:327
 AliMuonForwardTrackFinder.cxx:328
 AliMuonForwardTrackFinder.cxx:329
 AliMuonForwardTrackFinder.cxx:330
 AliMuonForwardTrackFinder.cxx:331
 AliMuonForwardTrackFinder.cxx:332
 AliMuonForwardTrackFinder.cxx:333
 AliMuonForwardTrackFinder.cxx:334
 AliMuonForwardTrackFinder.cxx:335
 AliMuonForwardTrackFinder.cxx:336
 AliMuonForwardTrackFinder.cxx:337
 AliMuonForwardTrackFinder.cxx:338
 AliMuonForwardTrackFinder.cxx:339
 AliMuonForwardTrackFinder.cxx:340
 AliMuonForwardTrackFinder.cxx:341
 AliMuonForwardTrackFinder.cxx:342
 AliMuonForwardTrackFinder.cxx:343
 AliMuonForwardTrackFinder.cxx:344
 AliMuonForwardTrackFinder.cxx:345
 AliMuonForwardTrackFinder.cxx:346
 AliMuonForwardTrackFinder.cxx:347
 AliMuonForwardTrackFinder.cxx:348
 AliMuonForwardTrackFinder.cxx:349
 AliMuonForwardTrackFinder.cxx:350
 AliMuonForwardTrackFinder.cxx:351
 AliMuonForwardTrackFinder.cxx:352
 AliMuonForwardTrackFinder.cxx:353
 AliMuonForwardTrackFinder.cxx:354
 AliMuonForwardTrackFinder.cxx:355
 AliMuonForwardTrackFinder.cxx:356
 AliMuonForwardTrackFinder.cxx:357
 AliMuonForwardTrackFinder.cxx:358
 AliMuonForwardTrackFinder.cxx:359
 AliMuonForwardTrackFinder.cxx:360
 AliMuonForwardTrackFinder.cxx:361
 AliMuonForwardTrackFinder.cxx:362
 AliMuonForwardTrackFinder.cxx:363
 AliMuonForwardTrackFinder.cxx:364
 AliMuonForwardTrackFinder.cxx:365
 AliMuonForwardTrackFinder.cxx:366
 AliMuonForwardTrackFinder.cxx:367
 AliMuonForwardTrackFinder.cxx:368
 AliMuonForwardTrackFinder.cxx:369
 AliMuonForwardTrackFinder.cxx:370
 AliMuonForwardTrackFinder.cxx:371
 AliMuonForwardTrackFinder.cxx:372
 AliMuonForwardTrackFinder.cxx:373
 AliMuonForwardTrackFinder.cxx:374
 AliMuonForwardTrackFinder.cxx:375
 AliMuonForwardTrackFinder.cxx:376
 AliMuonForwardTrackFinder.cxx:377
 AliMuonForwardTrackFinder.cxx:378
 AliMuonForwardTrackFinder.cxx:379
 AliMuonForwardTrackFinder.cxx:380
 AliMuonForwardTrackFinder.cxx:381
 AliMuonForwardTrackFinder.cxx:382
 AliMuonForwardTrackFinder.cxx:383
 AliMuonForwardTrackFinder.cxx:384
 AliMuonForwardTrackFinder.cxx:385
 AliMuonForwardTrackFinder.cxx:386
 AliMuonForwardTrackFinder.cxx:387
 AliMuonForwardTrackFinder.cxx:388
 AliMuonForwardTrackFinder.cxx:389
 AliMuonForwardTrackFinder.cxx:390
 AliMuonForwardTrackFinder.cxx:391
 AliMuonForwardTrackFinder.cxx:392
 AliMuonForwardTrackFinder.cxx:393
 AliMuonForwardTrackFinder.cxx:394
 AliMuonForwardTrackFinder.cxx:395
 AliMuonForwardTrackFinder.cxx:396
 AliMuonForwardTrackFinder.cxx:397
 AliMuonForwardTrackFinder.cxx:398
 AliMuonForwardTrackFinder.cxx:399
 AliMuonForwardTrackFinder.cxx:400
 AliMuonForwardTrackFinder.cxx:401
 AliMuonForwardTrackFinder.cxx:402
 AliMuonForwardTrackFinder.cxx:403
 AliMuonForwardTrackFinder.cxx:404
 AliMuonForwardTrackFinder.cxx:405
 AliMuonForwardTrackFinder.cxx:406
 AliMuonForwardTrackFinder.cxx:407
 AliMuonForwardTrackFinder.cxx:408
 AliMuonForwardTrackFinder.cxx:409
 AliMuonForwardTrackFinder.cxx:410
 AliMuonForwardTrackFinder.cxx:411
 AliMuonForwardTrackFinder.cxx:412
 AliMuonForwardTrackFinder.cxx:413
 AliMuonForwardTrackFinder.cxx:414
 AliMuonForwardTrackFinder.cxx:415
 AliMuonForwardTrackFinder.cxx:416
 AliMuonForwardTrackFinder.cxx:417
 AliMuonForwardTrackFinder.cxx:418
 AliMuonForwardTrackFinder.cxx:419
 AliMuonForwardTrackFinder.cxx:420
 AliMuonForwardTrackFinder.cxx:421
 AliMuonForwardTrackFinder.cxx:422
 AliMuonForwardTrackFinder.cxx:423
 AliMuonForwardTrackFinder.cxx:424
 AliMuonForwardTrackFinder.cxx:425
 AliMuonForwardTrackFinder.cxx:426
 AliMuonForwardTrackFinder.cxx:427
 AliMuonForwardTrackFinder.cxx:428
 AliMuonForwardTrackFinder.cxx:429
 AliMuonForwardTrackFinder.cxx:430
 AliMuonForwardTrackFinder.cxx:431
 AliMuonForwardTrackFinder.cxx:432
 AliMuonForwardTrackFinder.cxx:433
 AliMuonForwardTrackFinder.cxx:434
 AliMuonForwardTrackFinder.cxx:435
 AliMuonForwardTrackFinder.cxx:436
 AliMuonForwardTrackFinder.cxx:437
 AliMuonForwardTrackFinder.cxx:438
 AliMuonForwardTrackFinder.cxx:439
 AliMuonForwardTrackFinder.cxx:440
 AliMuonForwardTrackFinder.cxx:441
 AliMuonForwardTrackFinder.cxx:442
 AliMuonForwardTrackFinder.cxx:443
 AliMuonForwardTrackFinder.cxx:444
 AliMuonForwardTrackFinder.cxx:445
 AliMuonForwardTrackFinder.cxx:446
 AliMuonForwardTrackFinder.cxx:447
 AliMuonForwardTrackFinder.cxx:448
 AliMuonForwardTrackFinder.cxx:449
 AliMuonForwardTrackFinder.cxx:450
 AliMuonForwardTrackFinder.cxx:451
 AliMuonForwardTrackFinder.cxx:452
 AliMuonForwardTrackFinder.cxx:453
 AliMuonForwardTrackFinder.cxx:454
 AliMuonForwardTrackFinder.cxx:455
 AliMuonForwardTrackFinder.cxx:456
 AliMuonForwardTrackFinder.cxx:457
 AliMuonForwardTrackFinder.cxx:458
 AliMuonForwardTrackFinder.cxx:459
 AliMuonForwardTrackFinder.cxx:460
 AliMuonForwardTrackFinder.cxx:461
 AliMuonForwardTrackFinder.cxx:462
 AliMuonForwardTrackFinder.cxx:463
 AliMuonForwardTrackFinder.cxx:464
 AliMuonForwardTrackFinder.cxx:465
 AliMuonForwardTrackFinder.cxx:466
 AliMuonForwardTrackFinder.cxx:467
 AliMuonForwardTrackFinder.cxx:468
 AliMuonForwardTrackFinder.cxx:469
 AliMuonForwardTrackFinder.cxx:470
 AliMuonForwardTrackFinder.cxx:471
 AliMuonForwardTrackFinder.cxx:472
 AliMuonForwardTrackFinder.cxx:473
 AliMuonForwardTrackFinder.cxx:474
 AliMuonForwardTrackFinder.cxx:475
 AliMuonForwardTrackFinder.cxx:476
 AliMuonForwardTrackFinder.cxx:477
 AliMuonForwardTrackFinder.cxx:478
 AliMuonForwardTrackFinder.cxx:479
 AliMuonForwardTrackFinder.cxx:480
 AliMuonForwardTrackFinder.cxx:481
 AliMuonForwardTrackFinder.cxx:482
 AliMuonForwardTrackFinder.cxx:483
 AliMuonForwardTrackFinder.cxx:484
 AliMuonForwardTrackFinder.cxx:485
 AliMuonForwardTrackFinder.cxx:486
 AliMuonForwardTrackFinder.cxx:487
 AliMuonForwardTrackFinder.cxx:488
 AliMuonForwardTrackFinder.cxx:489
 AliMuonForwardTrackFinder.cxx:490
 AliMuonForwardTrackFinder.cxx:491
 AliMuonForwardTrackFinder.cxx:492
 AliMuonForwardTrackFinder.cxx:493
 AliMuonForwardTrackFinder.cxx:494
 AliMuonForwardTrackFinder.cxx:495
 AliMuonForwardTrackFinder.cxx:496
 AliMuonForwardTrackFinder.cxx:497
 AliMuonForwardTrackFinder.cxx:498
 AliMuonForwardTrackFinder.cxx:499
 AliMuonForwardTrackFinder.cxx:500
 AliMuonForwardTrackFinder.cxx:501
 AliMuonForwardTrackFinder.cxx:502
 AliMuonForwardTrackFinder.cxx:503
 AliMuonForwardTrackFinder.cxx:504
 AliMuonForwardTrackFinder.cxx:505
 AliMuonForwardTrackFinder.cxx:506
 AliMuonForwardTrackFinder.cxx:507
 AliMuonForwardTrackFinder.cxx:508
 AliMuonForwardTrackFinder.cxx:509
 AliMuonForwardTrackFinder.cxx:510
 AliMuonForwardTrackFinder.cxx:511
 AliMuonForwardTrackFinder.cxx:512
 AliMuonForwardTrackFinder.cxx:513
 AliMuonForwardTrackFinder.cxx:514
 AliMuonForwardTrackFinder.cxx:515
 AliMuonForwardTrackFinder.cxx:516
 AliMuonForwardTrackFinder.cxx:517
 AliMuonForwardTrackFinder.cxx:518
 AliMuonForwardTrackFinder.cxx:519
 AliMuonForwardTrackFinder.cxx:520
 AliMuonForwardTrackFinder.cxx:521
 AliMuonForwardTrackFinder.cxx:522
 AliMuonForwardTrackFinder.cxx:523
 AliMuonForwardTrackFinder.cxx:524
 AliMuonForwardTrackFinder.cxx:525
 AliMuonForwardTrackFinder.cxx:526
 AliMuonForwardTrackFinder.cxx:527
 AliMuonForwardTrackFinder.cxx:528
 AliMuonForwardTrackFinder.cxx:529
 AliMuonForwardTrackFinder.cxx:530
 AliMuonForwardTrackFinder.cxx:531
 AliMuonForwardTrackFinder.cxx:532
 AliMuonForwardTrackFinder.cxx:533
 AliMuonForwardTrackFinder.cxx:534
 AliMuonForwardTrackFinder.cxx:535
 AliMuonForwardTrackFinder.cxx:536
 AliMuonForwardTrackFinder.cxx:537
 AliMuonForwardTrackFinder.cxx:538
 AliMuonForwardTrackFinder.cxx:539
 AliMuonForwardTrackFinder.cxx:540
 AliMuonForwardTrackFinder.cxx:541
 AliMuonForwardTrackFinder.cxx:542
 AliMuonForwardTrackFinder.cxx:543
 AliMuonForwardTrackFinder.cxx:544
 AliMuonForwardTrackFinder.cxx:545
 AliMuonForwardTrackFinder.cxx:546
 AliMuonForwardTrackFinder.cxx:547
 AliMuonForwardTrackFinder.cxx:548
 AliMuonForwardTrackFinder.cxx:549
 AliMuonForwardTrackFinder.cxx:550
 AliMuonForwardTrackFinder.cxx:551
 AliMuonForwardTrackFinder.cxx:552
 AliMuonForwardTrackFinder.cxx:553
 AliMuonForwardTrackFinder.cxx:554
 AliMuonForwardTrackFinder.cxx:555
 AliMuonForwardTrackFinder.cxx:556
 AliMuonForwardTrackFinder.cxx:557
 AliMuonForwardTrackFinder.cxx:558
 AliMuonForwardTrackFinder.cxx:559
 AliMuonForwardTrackFinder.cxx:560
 AliMuonForwardTrackFinder.cxx:561
 AliMuonForwardTrackFinder.cxx:562
 AliMuonForwardTrackFinder.cxx:563
 AliMuonForwardTrackFinder.cxx:564
 AliMuonForwardTrackFinder.cxx:565
 AliMuonForwardTrackFinder.cxx:566
 AliMuonForwardTrackFinder.cxx:567
 AliMuonForwardTrackFinder.cxx:568
 AliMuonForwardTrackFinder.cxx:569
 AliMuonForwardTrackFinder.cxx:570
 AliMuonForwardTrackFinder.cxx:571
 AliMuonForwardTrackFinder.cxx:572
 AliMuonForwardTrackFinder.cxx:573
 AliMuonForwardTrackFinder.cxx:574
 AliMuonForwardTrackFinder.cxx:575
 AliMuonForwardTrackFinder.cxx:576
 AliMuonForwardTrackFinder.cxx:577
 AliMuonForwardTrackFinder.cxx:578
 AliMuonForwardTrackFinder.cxx:579
 AliMuonForwardTrackFinder.cxx:580
 AliMuonForwardTrackFinder.cxx:581
 AliMuonForwardTrackFinder.cxx:582
 AliMuonForwardTrackFinder.cxx:583
 AliMuonForwardTrackFinder.cxx:584
 AliMuonForwardTrackFinder.cxx:585
 AliMuonForwardTrackFinder.cxx:586
 AliMuonForwardTrackFinder.cxx:587
 AliMuonForwardTrackFinder.cxx:588
 AliMuonForwardTrackFinder.cxx:589
 AliMuonForwardTrackFinder.cxx:590
 AliMuonForwardTrackFinder.cxx:591
 AliMuonForwardTrackFinder.cxx:592
 AliMuonForwardTrackFinder.cxx:593
 AliMuonForwardTrackFinder.cxx:594
 AliMuonForwardTrackFinder.cxx:595
 AliMuonForwardTrackFinder.cxx:596
 AliMuonForwardTrackFinder.cxx:597
 AliMuonForwardTrackFinder.cxx:598
 AliMuonForwardTrackFinder.cxx:599
 AliMuonForwardTrackFinder.cxx:600
 AliMuonForwardTrackFinder.cxx:601
 AliMuonForwardTrackFinder.cxx:602
 AliMuonForwardTrackFinder.cxx:603
 AliMuonForwardTrackFinder.cxx:604
 AliMuonForwardTrackFinder.cxx:605
 AliMuonForwardTrackFinder.cxx:606
 AliMuonForwardTrackFinder.cxx:607
 AliMuonForwardTrackFinder.cxx:608
 AliMuonForwardTrackFinder.cxx:609
 AliMuonForwardTrackFinder.cxx:610
 AliMuonForwardTrackFinder.cxx:611
 AliMuonForwardTrackFinder.cxx:612
 AliMuonForwardTrackFinder.cxx:613
 AliMuonForwardTrackFinder.cxx:614
 AliMuonForwardTrackFinder.cxx:615
 AliMuonForwardTrackFinder.cxx:616
 AliMuonForwardTrackFinder.cxx:617
 AliMuonForwardTrackFinder.cxx:618
 AliMuonForwardTrackFinder.cxx:619
 AliMuonForwardTrackFinder.cxx:620
 AliMuonForwardTrackFinder.cxx:621
 AliMuonForwardTrackFinder.cxx:622
 AliMuonForwardTrackFinder.cxx:623
 AliMuonForwardTrackFinder.cxx:624
 AliMuonForwardTrackFinder.cxx:625
 AliMuonForwardTrackFinder.cxx:626
 AliMuonForwardTrackFinder.cxx:627
 AliMuonForwardTrackFinder.cxx:628
 AliMuonForwardTrackFinder.cxx:629
 AliMuonForwardTrackFinder.cxx:630
 AliMuonForwardTrackFinder.cxx:631
 AliMuonForwardTrackFinder.cxx:632
 AliMuonForwardTrackFinder.cxx:633
 AliMuonForwardTrackFinder.cxx:634
 AliMuonForwardTrackFinder.cxx:635
 AliMuonForwardTrackFinder.cxx:636
 AliMuonForwardTrackFinder.cxx:637
 AliMuonForwardTrackFinder.cxx:638
 AliMuonForwardTrackFinder.cxx:639
 AliMuonForwardTrackFinder.cxx:640
 AliMuonForwardTrackFinder.cxx:641
 AliMuonForwardTrackFinder.cxx:642
 AliMuonForwardTrackFinder.cxx:643
 AliMuonForwardTrackFinder.cxx:644
 AliMuonForwardTrackFinder.cxx:645
 AliMuonForwardTrackFinder.cxx:646
 AliMuonForwardTrackFinder.cxx:647
 AliMuonForwardTrackFinder.cxx:648
 AliMuonForwardTrackFinder.cxx:649
 AliMuonForwardTrackFinder.cxx:650
 AliMuonForwardTrackFinder.cxx:651
 AliMuonForwardTrackFinder.cxx:652
 AliMuonForwardTrackFinder.cxx:653
 AliMuonForwardTrackFinder.cxx:654
 AliMuonForwardTrackFinder.cxx:655
 AliMuonForwardTrackFinder.cxx:656
 AliMuonForwardTrackFinder.cxx:657
 AliMuonForwardTrackFinder.cxx:658
 AliMuonForwardTrackFinder.cxx:659
 AliMuonForwardTrackFinder.cxx:660
 AliMuonForwardTrackFinder.cxx:661
 AliMuonForwardTrackFinder.cxx:662
 AliMuonForwardTrackFinder.cxx:663
 AliMuonForwardTrackFinder.cxx:664
 AliMuonForwardTrackFinder.cxx:665
 AliMuonForwardTrackFinder.cxx:666
 AliMuonForwardTrackFinder.cxx:667
 AliMuonForwardTrackFinder.cxx:668
 AliMuonForwardTrackFinder.cxx:669
 AliMuonForwardTrackFinder.cxx:670
 AliMuonForwardTrackFinder.cxx:671
 AliMuonForwardTrackFinder.cxx:672
 AliMuonForwardTrackFinder.cxx:673
 AliMuonForwardTrackFinder.cxx:674
 AliMuonForwardTrackFinder.cxx:675
 AliMuonForwardTrackFinder.cxx:676
 AliMuonForwardTrackFinder.cxx:677
 AliMuonForwardTrackFinder.cxx:678
 AliMuonForwardTrackFinder.cxx:679
 AliMuonForwardTrackFinder.cxx:680
 AliMuonForwardTrackFinder.cxx:681
 AliMuonForwardTrackFinder.cxx:682
 AliMuonForwardTrackFinder.cxx:683
 AliMuonForwardTrackFinder.cxx:684
 AliMuonForwardTrackFinder.cxx:685
 AliMuonForwardTrackFinder.cxx:686
 AliMuonForwardTrackFinder.cxx:687
 AliMuonForwardTrackFinder.cxx:688
 AliMuonForwardTrackFinder.cxx:689
 AliMuonForwardTrackFinder.cxx:690
 AliMuonForwardTrackFinder.cxx:691
 AliMuonForwardTrackFinder.cxx:692
 AliMuonForwardTrackFinder.cxx:693
 AliMuonForwardTrackFinder.cxx:694
 AliMuonForwardTrackFinder.cxx:695
 AliMuonForwardTrackFinder.cxx:696
 AliMuonForwardTrackFinder.cxx:697
 AliMuonForwardTrackFinder.cxx:698
 AliMuonForwardTrackFinder.cxx:699
 AliMuonForwardTrackFinder.cxx:700
 AliMuonForwardTrackFinder.cxx:701
 AliMuonForwardTrackFinder.cxx:702
 AliMuonForwardTrackFinder.cxx:703
 AliMuonForwardTrackFinder.cxx:704
 AliMuonForwardTrackFinder.cxx:705
 AliMuonForwardTrackFinder.cxx:706
 AliMuonForwardTrackFinder.cxx:707
 AliMuonForwardTrackFinder.cxx:708
 AliMuonForwardTrackFinder.cxx:709
 AliMuonForwardTrackFinder.cxx:710
 AliMuonForwardTrackFinder.cxx:711
 AliMuonForwardTrackFinder.cxx:712
 AliMuonForwardTrackFinder.cxx:713
 AliMuonForwardTrackFinder.cxx:714
 AliMuonForwardTrackFinder.cxx:715
 AliMuonForwardTrackFinder.cxx:716
 AliMuonForwardTrackFinder.cxx:717
 AliMuonForwardTrackFinder.cxx:718
 AliMuonForwardTrackFinder.cxx:719
 AliMuonForwardTrackFinder.cxx:720
 AliMuonForwardTrackFinder.cxx:721
 AliMuonForwardTrackFinder.cxx:722
 AliMuonForwardTrackFinder.cxx:723
 AliMuonForwardTrackFinder.cxx:724
 AliMuonForwardTrackFinder.cxx:725
 AliMuonForwardTrackFinder.cxx:726
 AliMuonForwardTrackFinder.cxx:727
 AliMuonForwardTrackFinder.cxx:728
 AliMuonForwardTrackFinder.cxx:729
 AliMuonForwardTrackFinder.cxx:730
 AliMuonForwardTrackFinder.cxx:731
 AliMuonForwardTrackFinder.cxx:732
 AliMuonForwardTrackFinder.cxx:733
 AliMuonForwardTrackFinder.cxx:734
 AliMuonForwardTrackFinder.cxx:735
 AliMuonForwardTrackFinder.cxx:736
 AliMuonForwardTrackFinder.cxx:737
 AliMuonForwardTrackFinder.cxx:738
 AliMuonForwardTrackFinder.cxx:739
 AliMuonForwardTrackFinder.cxx:740
 AliMuonForwardTrackFinder.cxx:741
 AliMuonForwardTrackFinder.cxx:742
 AliMuonForwardTrackFinder.cxx:743
 AliMuonForwardTrackFinder.cxx:744
 AliMuonForwardTrackFinder.cxx:745
 AliMuonForwardTrackFinder.cxx:746
 AliMuonForwardTrackFinder.cxx:747
 AliMuonForwardTrackFinder.cxx:748
 AliMuonForwardTrackFinder.cxx:749
 AliMuonForwardTrackFinder.cxx:750
 AliMuonForwardTrackFinder.cxx:751
 AliMuonForwardTrackFinder.cxx:752
 AliMuonForwardTrackFinder.cxx:753
 AliMuonForwardTrackFinder.cxx:754
 AliMuonForwardTrackFinder.cxx:755
 AliMuonForwardTrackFinder.cxx:756
 AliMuonForwardTrackFinder.cxx:757
 AliMuonForwardTrackFinder.cxx:758
 AliMuonForwardTrackFinder.cxx:759
 AliMuonForwardTrackFinder.cxx:760
 AliMuonForwardTrackFinder.cxx:761
 AliMuonForwardTrackFinder.cxx:762
 AliMuonForwardTrackFinder.cxx:763
 AliMuonForwardTrackFinder.cxx:764
 AliMuonForwardTrackFinder.cxx:765
 AliMuonForwardTrackFinder.cxx:766
 AliMuonForwardTrackFinder.cxx:767
 AliMuonForwardTrackFinder.cxx:768
 AliMuonForwardTrackFinder.cxx:769
 AliMuonForwardTrackFinder.cxx:770
 AliMuonForwardTrackFinder.cxx:771
 AliMuonForwardTrackFinder.cxx:772
 AliMuonForwardTrackFinder.cxx:773
 AliMuonForwardTrackFinder.cxx:774
 AliMuonForwardTrackFinder.cxx:775
 AliMuonForwardTrackFinder.cxx:776
 AliMuonForwardTrackFinder.cxx:777
 AliMuonForwardTrackFinder.cxx:778
 AliMuonForwardTrackFinder.cxx:779
 AliMuonForwardTrackFinder.cxx:780
 AliMuonForwardTrackFinder.cxx:781
 AliMuonForwardTrackFinder.cxx:782
 AliMuonForwardTrackFinder.cxx:783
 AliMuonForwardTrackFinder.cxx:784
 AliMuonForwardTrackFinder.cxx:785
 AliMuonForwardTrackFinder.cxx:786
 AliMuonForwardTrackFinder.cxx:787
 AliMuonForwardTrackFinder.cxx:788
 AliMuonForwardTrackFinder.cxx:789
 AliMuonForwardTrackFinder.cxx:790
 AliMuonForwardTrackFinder.cxx:791
 AliMuonForwardTrackFinder.cxx:792
 AliMuonForwardTrackFinder.cxx:793
 AliMuonForwardTrackFinder.cxx:794
 AliMuonForwardTrackFinder.cxx:795
 AliMuonForwardTrackFinder.cxx:796
 AliMuonForwardTrackFinder.cxx:797
 AliMuonForwardTrackFinder.cxx:798
 AliMuonForwardTrackFinder.cxx:799
 AliMuonForwardTrackFinder.cxx:800
 AliMuonForwardTrackFinder.cxx:801
 AliMuonForwardTrackFinder.cxx:802
 AliMuonForwardTrackFinder.cxx:803
 AliMuonForwardTrackFinder.cxx:804
 AliMuonForwardTrackFinder.cxx:805
 AliMuonForwardTrackFinder.cxx:806
 AliMuonForwardTrackFinder.cxx:807
 AliMuonForwardTrackFinder.cxx:808
 AliMuonForwardTrackFinder.cxx:809
 AliMuonForwardTrackFinder.cxx:810
 AliMuonForwardTrackFinder.cxx:811
 AliMuonForwardTrackFinder.cxx:812
 AliMuonForwardTrackFinder.cxx:813
 AliMuonForwardTrackFinder.cxx:814
 AliMuonForwardTrackFinder.cxx:815
 AliMuonForwardTrackFinder.cxx:816
 AliMuonForwardTrackFinder.cxx:817
 AliMuonForwardTrackFinder.cxx:818
 AliMuonForwardTrackFinder.cxx:819
 AliMuonForwardTrackFinder.cxx:820
 AliMuonForwardTrackFinder.cxx:821
 AliMuonForwardTrackFinder.cxx:822
 AliMuonForwardTrackFinder.cxx:823
 AliMuonForwardTrackFinder.cxx:824
 AliMuonForwardTrackFinder.cxx:825
 AliMuonForwardTrackFinder.cxx:826
 AliMuonForwardTrackFinder.cxx:827
 AliMuonForwardTrackFinder.cxx:828
 AliMuonForwardTrackFinder.cxx:829
 AliMuonForwardTrackFinder.cxx:830
 AliMuonForwardTrackFinder.cxx:831
 AliMuonForwardTrackFinder.cxx:832
 AliMuonForwardTrackFinder.cxx:833
 AliMuonForwardTrackFinder.cxx:834
 AliMuonForwardTrackFinder.cxx:835
 AliMuonForwardTrackFinder.cxx:836
 AliMuonForwardTrackFinder.cxx:837
 AliMuonForwardTrackFinder.cxx:838
 AliMuonForwardTrackFinder.cxx:839
 AliMuonForwardTrackFinder.cxx:840
 AliMuonForwardTrackFinder.cxx:841
 AliMuonForwardTrackFinder.cxx:842
 AliMuonForwardTrackFinder.cxx:843
 AliMuonForwardTrackFinder.cxx:844
 AliMuonForwardTrackFinder.cxx:845
 AliMuonForwardTrackFinder.cxx:846
 AliMuonForwardTrackFinder.cxx:847
 AliMuonForwardTrackFinder.cxx:848
 AliMuonForwardTrackFinder.cxx:849
 AliMuonForwardTrackFinder.cxx:850
 AliMuonForwardTrackFinder.cxx:851
 AliMuonForwardTrackFinder.cxx:852
 AliMuonForwardTrackFinder.cxx:853
 AliMuonForwardTrackFinder.cxx:854
 AliMuonForwardTrackFinder.cxx:855
 AliMuonForwardTrackFinder.cxx:856
 AliMuonForwardTrackFinder.cxx:857
 AliMuonForwardTrackFinder.cxx:858
 AliMuonForwardTrackFinder.cxx:859
 AliMuonForwardTrackFinder.cxx:860
 AliMuonForwardTrackFinder.cxx:861
 AliMuonForwardTrackFinder.cxx:862
 AliMuonForwardTrackFinder.cxx:863
 AliMuonForwardTrackFinder.cxx:864
 AliMuonForwardTrackFinder.cxx:865
 AliMuonForwardTrackFinder.cxx:866
 AliMuonForwardTrackFinder.cxx:867
 AliMuonForwardTrackFinder.cxx:868
 AliMuonForwardTrackFinder.cxx:869
 AliMuonForwardTrackFinder.cxx:870
 AliMuonForwardTrackFinder.cxx:871
 AliMuonForwardTrackFinder.cxx:872
 AliMuonForwardTrackFinder.cxx:873
 AliMuonForwardTrackFinder.cxx:874
 AliMuonForwardTrackFinder.cxx:875
 AliMuonForwardTrackFinder.cxx:876
 AliMuonForwardTrackFinder.cxx:877
 AliMuonForwardTrackFinder.cxx:878
 AliMuonForwardTrackFinder.cxx:879
 AliMuonForwardTrackFinder.cxx:880
 AliMuonForwardTrackFinder.cxx:881
 AliMuonForwardTrackFinder.cxx:882
 AliMuonForwardTrackFinder.cxx:883
 AliMuonForwardTrackFinder.cxx:884
 AliMuonForwardTrackFinder.cxx:885
 AliMuonForwardTrackFinder.cxx:886
 AliMuonForwardTrackFinder.cxx:887
 AliMuonForwardTrackFinder.cxx:888
 AliMuonForwardTrackFinder.cxx:889
 AliMuonForwardTrackFinder.cxx:890
 AliMuonForwardTrackFinder.cxx:891
 AliMuonForwardTrackFinder.cxx:892
 AliMuonForwardTrackFinder.cxx:893
 AliMuonForwardTrackFinder.cxx:894
 AliMuonForwardTrackFinder.cxx:895
 AliMuonForwardTrackFinder.cxx:896
 AliMuonForwardTrackFinder.cxx:897
 AliMuonForwardTrackFinder.cxx:898
 AliMuonForwardTrackFinder.cxx:899
 AliMuonForwardTrackFinder.cxx:900
 AliMuonForwardTrackFinder.cxx:901
 AliMuonForwardTrackFinder.cxx:902
 AliMuonForwardTrackFinder.cxx:903
 AliMuonForwardTrackFinder.cxx:904
 AliMuonForwardTrackFinder.cxx:905
 AliMuonForwardTrackFinder.cxx:906
 AliMuonForwardTrackFinder.cxx:907
 AliMuonForwardTrackFinder.cxx:908
 AliMuonForwardTrackFinder.cxx:909
 AliMuonForwardTrackFinder.cxx:910
 AliMuonForwardTrackFinder.cxx:911
 AliMuonForwardTrackFinder.cxx:912
 AliMuonForwardTrackFinder.cxx:913
 AliMuonForwardTrackFinder.cxx:914
 AliMuonForwardTrackFinder.cxx:915
 AliMuonForwardTrackFinder.cxx:916
 AliMuonForwardTrackFinder.cxx:917
 AliMuonForwardTrackFinder.cxx:918
 AliMuonForwardTrackFinder.cxx:919
 AliMuonForwardTrackFinder.cxx:920
 AliMuonForwardTrackFinder.cxx:921
 AliMuonForwardTrackFinder.cxx:922
 AliMuonForwardTrackFinder.cxx:923
 AliMuonForwardTrackFinder.cxx:924
 AliMuonForwardTrackFinder.cxx:925
 AliMuonForwardTrackFinder.cxx:926
 AliMuonForwardTrackFinder.cxx:927
 AliMuonForwardTrackFinder.cxx:928
 AliMuonForwardTrackFinder.cxx:929
 AliMuonForwardTrackFinder.cxx:930
 AliMuonForwardTrackFinder.cxx:931
 AliMuonForwardTrackFinder.cxx:932
 AliMuonForwardTrackFinder.cxx:933
 AliMuonForwardTrackFinder.cxx:934
 AliMuonForwardTrackFinder.cxx:935
 AliMuonForwardTrackFinder.cxx:936
 AliMuonForwardTrackFinder.cxx:937
 AliMuonForwardTrackFinder.cxx:938
 AliMuonForwardTrackFinder.cxx:939
 AliMuonForwardTrackFinder.cxx:940
 AliMuonForwardTrackFinder.cxx:941
 AliMuonForwardTrackFinder.cxx:942
 AliMuonForwardTrackFinder.cxx:943
 AliMuonForwardTrackFinder.cxx:944
 AliMuonForwardTrackFinder.cxx:945
 AliMuonForwardTrackFinder.cxx:946
 AliMuonForwardTrackFinder.cxx:947
 AliMuonForwardTrackFinder.cxx:948
 AliMuonForwardTrackFinder.cxx:949
 AliMuonForwardTrackFinder.cxx:950
 AliMuonForwardTrackFinder.cxx:951
 AliMuonForwardTrackFinder.cxx:952
 AliMuonForwardTrackFinder.cxx:953
 AliMuonForwardTrackFinder.cxx:954
 AliMuonForwardTrackFinder.cxx:955
 AliMuonForwardTrackFinder.cxx:956
 AliMuonForwardTrackFinder.cxx:957
 AliMuonForwardTrackFinder.cxx:958
 AliMuonForwardTrackFinder.cxx:959
 AliMuonForwardTrackFinder.cxx:960
 AliMuonForwardTrackFinder.cxx:961
 AliMuonForwardTrackFinder.cxx:962
 AliMuonForwardTrackFinder.cxx:963
 AliMuonForwardTrackFinder.cxx:964
 AliMuonForwardTrackFinder.cxx:965
 AliMuonForwardTrackFinder.cxx:966
 AliMuonForwardTrackFinder.cxx:967
 AliMuonForwardTrackFinder.cxx:968
 AliMuonForwardTrackFinder.cxx:969
 AliMuonForwardTrackFinder.cxx:970
 AliMuonForwardTrackFinder.cxx:971
 AliMuonForwardTrackFinder.cxx:972
 AliMuonForwardTrackFinder.cxx:973
 AliMuonForwardTrackFinder.cxx:974
 AliMuonForwardTrackFinder.cxx:975
 AliMuonForwardTrackFinder.cxx:976
 AliMuonForwardTrackFinder.cxx:977
 AliMuonForwardTrackFinder.cxx:978
 AliMuonForwardTrackFinder.cxx:979
 AliMuonForwardTrackFinder.cxx:980
 AliMuonForwardTrackFinder.cxx:981
 AliMuonForwardTrackFinder.cxx:982
 AliMuonForwardTrackFinder.cxx:983
 AliMuonForwardTrackFinder.cxx:984
 AliMuonForwardTrackFinder.cxx:985
 AliMuonForwardTrackFinder.cxx:986
 AliMuonForwardTrackFinder.cxx:987
 AliMuonForwardTrackFinder.cxx:988
 AliMuonForwardTrackFinder.cxx:989
 AliMuonForwardTrackFinder.cxx:990
 AliMuonForwardTrackFinder.cxx:991
 AliMuonForwardTrackFinder.cxx:992
 AliMuonForwardTrackFinder.cxx:993
 AliMuonForwardTrackFinder.cxx:994
 AliMuonForwardTrackFinder.cxx:995
 AliMuonForwardTrackFinder.cxx:996
 AliMuonForwardTrackFinder.cxx:997
 AliMuonForwardTrackFinder.cxx:998
 AliMuonForwardTrackFinder.cxx:999
 AliMuonForwardTrackFinder.cxx:1000
 AliMuonForwardTrackFinder.cxx:1001
 AliMuonForwardTrackFinder.cxx:1002
 AliMuonForwardTrackFinder.cxx:1003
 AliMuonForwardTrackFinder.cxx:1004
 AliMuonForwardTrackFinder.cxx:1005
 AliMuonForwardTrackFinder.cxx:1006
 AliMuonForwardTrackFinder.cxx:1007
 AliMuonForwardTrackFinder.cxx:1008
 AliMuonForwardTrackFinder.cxx:1009
 AliMuonForwardTrackFinder.cxx:1010
 AliMuonForwardTrackFinder.cxx:1011
 AliMuonForwardTrackFinder.cxx:1012
 AliMuonForwardTrackFinder.cxx:1013
 AliMuonForwardTrackFinder.cxx:1014
 AliMuonForwardTrackFinder.cxx:1015
 AliMuonForwardTrackFinder.cxx:1016
 AliMuonForwardTrackFinder.cxx:1017
 AliMuonForwardTrackFinder.cxx:1018
 AliMuonForwardTrackFinder.cxx:1019
 AliMuonForwardTrackFinder.cxx:1020
 AliMuonForwardTrackFinder.cxx:1021
 AliMuonForwardTrackFinder.cxx:1022
 AliMuonForwardTrackFinder.cxx:1023
 AliMuonForwardTrackFinder.cxx:1024
 AliMuonForwardTrackFinder.cxx:1025
 AliMuonForwardTrackFinder.cxx:1026
 AliMuonForwardTrackFinder.cxx:1027
 AliMuonForwardTrackFinder.cxx:1028
 AliMuonForwardTrackFinder.cxx:1029
 AliMuonForwardTrackFinder.cxx:1030
 AliMuonForwardTrackFinder.cxx:1031
 AliMuonForwardTrackFinder.cxx:1032
 AliMuonForwardTrackFinder.cxx:1033
 AliMuonForwardTrackFinder.cxx:1034
 AliMuonForwardTrackFinder.cxx:1035
 AliMuonForwardTrackFinder.cxx:1036
 AliMuonForwardTrackFinder.cxx:1037
 AliMuonForwardTrackFinder.cxx:1038
 AliMuonForwardTrackFinder.cxx:1039
 AliMuonForwardTrackFinder.cxx:1040
 AliMuonForwardTrackFinder.cxx:1041
 AliMuonForwardTrackFinder.cxx:1042
 AliMuonForwardTrackFinder.cxx:1043
 AliMuonForwardTrackFinder.cxx:1044
 AliMuonForwardTrackFinder.cxx:1045
 AliMuonForwardTrackFinder.cxx:1046
 AliMuonForwardTrackFinder.cxx:1047
 AliMuonForwardTrackFinder.cxx:1048
 AliMuonForwardTrackFinder.cxx:1049
 AliMuonForwardTrackFinder.cxx:1050
 AliMuonForwardTrackFinder.cxx:1051
 AliMuonForwardTrackFinder.cxx:1052
 AliMuonForwardTrackFinder.cxx:1053
 AliMuonForwardTrackFinder.cxx:1054
 AliMuonForwardTrackFinder.cxx:1055
 AliMuonForwardTrackFinder.cxx:1056
 AliMuonForwardTrackFinder.cxx:1057
 AliMuonForwardTrackFinder.cxx:1058
 AliMuonForwardTrackFinder.cxx:1059
 AliMuonForwardTrackFinder.cxx:1060
 AliMuonForwardTrackFinder.cxx:1061
 AliMuonForwardTrackFinder.cxx:1062
 AliMuonForwardTrackFinder.cxx:1063
 AliMuonForwardTrackFinder.cxx:1064
 AliMuonForwardTrackFinder.cxx:1065
 AliMuonForwardTrackFinder.cxx:1066
 AliMuonForwardTrackFinder.cxx:1067
 AliMuonForwardTrackFinder.cxx:1068
 AliMuonForwardTrackFinder.cxx:1069
 AliMuonForwardTrackFinder.cxx:1070
 AliMuonForwardTrackFinder.cxx:1071
 AliMuonForwardTrackFinder.cxx:1072
 AliMuonForwardTrackFinder.cxx:1073
 AliMuonForwardTrackFinder.cxx:1074
 AliMuonForwardTrackFinder.cxx:1075
 AliMuonForwardTrackFinder.cxx:1076
 AliMuonForwardTrackFinder.cxx:1077
 AliMuonForwardTrackFinder.cxx:1078
 AliMuonForwardTrackFinder.cxx:1079
 AliMuonForwardTrackFinder.cxx:1080
 AliMuonForwardTrackFinder.cxx:1081
 AliMuonForwardTrackFinder.cxx:1082
 AliMuonForwardTrackFinder.cxx:1083
 AliMuonForwardTrackFinder.cxx:1084
 AliMuonForwardTrackFinder.cxx:1085
 AliMuonForwardTrackFinder.cxx:1086
 AliMuonForwardTrackFinder.cxx:1087
 AliMuonForwardTrackFinder.cxx:1088
 AliMuonForwardTrackFinder.cxx:1089
 AliMuonForwardTrackFinder.cxx:1090
 AliMuonForwardTrackFinder.cxx:1091
 AliMuonForwardTrackFinder.cxx:1092
 AliMuonForwardTrackFinder.cxx:1093
 AliMuonForwardTrackFinder.cxx:1094
 AliMuonForwardTrackFinder.cxx:1095
 AliMuonForwardTrackFinder.cxx:1096
 AliMuonForwardTrackFinder.cxx:1097
 AliMuonForwardTrackFinder.cxx:1098
 AliMuonForwardTrackFinder.cxx:1099
 AliMuonForwardTrackFinder.cxx:1100
 AliMuonForwardTrackFinder.cxx:1101
 AliMuonForwardTrackFinder.cxx:1102
 AliMuonForwardTrackFinder.cxx:1103
 AliMuonForwardTrackFinder.cxx:1104
 AliMuonForwardTrackFinder.cxx:1105
 AliMuonForwardTrackFinder.cxx:1106
 AliMuonForwardTrackFinder.cxx:1107
 AliMuonForwardTrackFinder.cxx:1108
 AliMuonForwardTrackFinder.cxx:1109
 AliMuonForwardTrackFinder.cxx:1110
 AliMuonForwardTrackFinder.cxx:1111
 AliMuonForwardTrackFinder.cxx:1112
 AliMuonForwardTrackFinder.cxx:1113
 AliMuonForwardTrackFinder.cxx:1114
 AliMuonForwardTrackFinder.cxx:1115
 AliMuonForwardTrackFinder.cxx:1116
 AliMuonForwardTrackFinder.cxx:1117
 AliMuonForwardTrackFinder.cxx:1118
 AliMuonForwardTrackFinder.cxx:1119
 AliMuonForwardTrackFinder.cxx:1120
 AliMuonForwardTrackFinder.cxx:1121
 AliMuonForwardTrackFinder.cxx:1122
 AliMuonForwardTrackFinder.cxx:1123
 AliMuonForwardTrackFinder.cxx:1124
 AliMuonForwardTrackFinder.cxx:1125
 AliMuonForwardTrackFinder.cxx:1126
 AliMuonForwardTrackFinder.cxx:1127
 AliMuonForwardTrackFinder.cxx:1128
 AliMuonForwardTrackFinder.cxx:1129
 AliMuonForwardTrackFinder.cxx:1130
 AliMuonForwardTrackFinder.cxx:1131
 AliMuonForwardTrackFinder.cxx:1132
 AliMuonForwardTrackFinder.cxx:1133
 AliMuonForwardTrackFinder.cxx:1134
 AliMuonForwardTrackFinder.cxx:1135
 AliMuonForwardTrackFinder.cxx:1136
 AliMuonForwardTrackFinder.cxx:1137
 AliMuonForwardTrackFinder.cxx:1138
 AliMuonForwardTrackFinder.cxx:1139
 AliMuonForwardTrackFinder.cxx:1140
 AliMuonForwardTrackFinder.cxx:1141
 AliMuonForwardTrackFinder.cxx:1142
 AliMuonForwardTrackFinder.cxx:1143
 AliMuonForwardTrackFinder.cxx:1144
 AliMuonForwardTrackFinder.cxx:1145
 AliMuonForwardTrackFinder.cxx:1146
 AliMuonForwardTrackFinder.cxx:1147
 AliMuonForwardTrackFinder.cxx:1148
 AliMuonForwardTrackFinder.cxx:1149
 AliMuonForwardTrackFinder.cxx:1150
 AliMuonForwardTrackFinder.cxx:1151
 AliMuonForwardTrackFinder.cxx:1152
 AliMuonForwardTrackFinder.cxx:1153
 AliMuonForwardTrackFinder.cxx:1154
 AliMuonForwardTrackFinder.cxx:1155
 AliMuonForwardTrackFinder.cxx:1156
 AliMuonForwardTrackFinder.cxx:1157
 AliMuonForwardTrackFinder.cxx:1158
 AliMuonForwardTrackFinder.cxx:1159
 AliMuonForwardTrackFinder.cxx:1160
 AliMuonForwardTrackFinder.cxx:1161
 AliMuonForwardTrackFinder.cxx:1162
 AliMuonForwardTrackFinder.cxx:1163
 AliMuonForwardTrackFinder.cxx:1164
 AliMuonForwardTrackFinder.cxx:1165
 AliMuonForwardTrackFinder.cxx:1166
 AliMuonForwardTrackFinder.cxx:1167
 AliMuonForwardTrackFinder.cxx:1168
 AliMuonForwardTrackFinder.cxx:1169
 AliMuonForwardTrackFinder.cxx:1170
 AliMuonForwardTrackFinder.cxx:1171
 AliMuonForwardTrackFinder.cxx:1172
 AliMuonForwardTrackFinder.cxx:1173
 AliMuonForwardTrackFinder.cxx:1174
 AliMuonForwardTrackFinder.cxx:1175
 AliMuonForwardTrackFinder.cxx:1176
 AliMuonForwardTrackFinder.cxx:1177
 AliMuonForwardTrackFinder.cxx:1178
 AliMuonForwardTrackFinder.cxx:1179
 AliMuonForwardTrackFinder.cxx:1180
 AliMuonForwardTrackFinder.cxx:1181
 AliMuonForwardTrackFinder.cxx:1182
 AliMuonForwardTrackFinder.cxx:1183
 AliMuonForwardTrackFinder.cxx:1184
 AliMuonForwardTrackFinder.cxx:1185
 AliMuonForwardTrackFinder.cxx:1186
 AliMuonForwardTrackFinder.cxx:1187
 AliMuonForwardTrackFinder.cxx:1188
 AliMuonForwardTrackFinder.cxx:1189
 AliMuonForwardTrackFinder.cxx:1190
 AliMuonForwardTrackFinder.cxx:1191
 AliMuonForwardTrackFinder.cxx:1192
 AliMuonForwardTrackFinder.cxx:1193
 AliMuonForwardTrackFinder.cxx:1194
 AliMuonForwardTrackFinder.cxx:1195
 AliMuonForwardTrackFinder.cxx:1196
 AliMuonForwardTrackFinder.cxx:1197
 AliMuonForwardTrackFinder.cxx:1198
 AliMuonForwardTrackFinder.cxx:1199
 AliMuonForwardTrackFinder.cxx:1200
 AliMuonForwardTrackFinder.cxx:1201
 AliMuonForwardTrackFinder.cxx:1202
 AliMuonForwardTrackFinder.cxx:1203
 AliMuonForwardTrackFinder.cxx:1204
 AliMuonForwardTrackFinder.cxx:1205
 AliMuonForwardTrackFinder.cxx:1206
 AliMuonForwardTrackFinder.cxx:1207
 AliMuonForwardTrackFinder.cxx:1208
 AliMuonForwardTrackFinder.cxx:1209
 AliMuonForwardTrackFinder.cxx:1210
 AliMuonForwardTrackFinder.cxx:1211
 AliMuonForwardTrackFinder.cxx:1212
 AliMuonForwardTrackFinder.cxx:1213
 AliMuonForwardTrackFinder.cxx:1214
 AliMuonForwardTrackFinder.cxx:1215
 AliMuonForwardTrackFinder.cxx:1216
 AliMuonForwardTrackFinder.cxx:1217
 AliMuonForwardTrackFinder.cxx:1218
 AliMuonForwardTrackFinder.cxx:1219
 AliMuonForwardTrackFinder.cxx:1220
 AliMuonForwardTrackFinder.cxx:1221
 AliMuonForwardTrackFinder.cxx:1222
 AliMuonForwardTrackFinder.cxx:1223
 AliMuonForwardTrackFinder.cxx:1224
 AliMuonForwardTrackFinder.cxx:1225
 AliMuonForwardTrackFinder.cxx:1226
 AliMuonForwardTrackFinder.cxx:1227
 AliMuonForwardTrackFinder.cxx:1228
 AliMuonForwardTrackFinder.cxx:1229
 AliMuonForwardTrackFinder.cxx:1230
 AliMuonForwardTrackFinder.cxx:1231
 AliMuonForwardTrackFinder.cxx:1232
 AliMuonForwardTrackFinder.cxx:1233
 AliMuonForwardTrackFinder.cxx:1234
 AliMuonForwardTrackFinder.cxx:1235
 AliMuonForwardTrackFinder.cxx:1236
 AliMuonForwardTrackFinder.cxx:1237
 AliMuonForwardTrackFinder.cxx:1238
 AliMuonForwardTrackFinder.cxx:1239
 AliMuonForwardTrackFinder.cxx:1240
 AliMuonForwardTrackFinder.cxx:1241
 AliMuonForwardTrackFinder.cxx:1242
 AliMuonForwardTrackFinder.cxx:1243
 AliMuonForwardTrackFinder.cxx:1244
 AliMuonForwardTrackFinder.cxx:1245
 AliMuonForwardTrackFinder.cxx:1246
 AliMuonForwardTrackFinder.cxx:1247
 AliMuonForwardTrackFinder.cxx:1248
 AliMuonForwardTrackFinder.cxx:1249
 AliMuonForwardTrackFinder.cxx:1250
 AliMuonForwardTrackFinder.cxx:1251
 AliMuonForwardTrackFinder.cxx:1252
 AliMuonForwardTrackFinder.cxx:1253
 AliMuonForwardTrackFinder.cxx:1254
 AliMuonForwardTrackFinder.cxx:1255
 AliMuonForwardTrackFinder.cxx:1256
 AliMuonForwardTrackFinder.cxx:1257
 AliMuonForwardTrackFinder.cxx:1258
 AliMuonForwardTrackFinder.cxx:1259
 AliMuonForwardTrackFinder.cxx:1260
 AliMuonForwardTrackFinder.cxx:1261
 AliMuonForwardTrackFinder.cxx:1262
 AliMuonForwardTrackFinder.cxx:1263
 AliMuonForwardTrackFinder.cxx:1264
 AliMuonForwardTrackFinder.cxx:1265
 AliMuonForwardTrackFinder.cxx:1266
 AliMuonForwardTrackFinder.cxx:1267
 AliMuonForwardTrackFinder.cxx:1268
 AliMuonForwardTrackFinder.cxx:1269
 AliMuonForwardTrackFinder.cxx:1270
 AliMuonForwardTrackFinder.cxx:1271
 AliMuonForwardTrackFinder.cxx:1272
 AliMuonForwardTrackFinder.cxx:1273
 AliMuonForwardTrackFinder.cxx:1274
 AliMuonForwardTrackFinder.cxx:1275
 AliMuonForwardTrackFinder.cxx:1276
 AliMuonForwardTrackFinder.cxx:1277
 AliMuonForwardTrackFinder.cxx:1278
 AliMuonForwardTrackFinder.cxx:1279
 AliMuonForwardTrackFinder.cxx:1280
 AliMuonForwardTrackFinder.cxx:1281
 AliMuonForwardTrackFinder.cxx:1282
 AliMuonForwardTrackFinder.cxx:1283
 AliMuonForwardTrackFinder.cxx:1284
 AliMuonForwardTrackFinder.cxx:1285
 AliMuonForwardTrackFinder.cxx:1286
 AliMuonForwardTrackFinder.cxx:1287
 AliMuonForwardTrackFinder.cxx:1288
 AliMuonForwardTrackFinder.cxx:1289
 AliMuonForwardTrackFinder.cxx:1290
 AliMuonForwardTrackFinder.cxx:1291
 AliMuonForwardTrackFinder.cxx:1292
 AliMuonForwardTrackFinder.cxx:1293
 AliMuonForwardTrackFinder.cxx:1294
 AliMuonForwardTrackFinder.cxx:1295
 AliMuonForwardTrackFinder.cxx:1296
 AliMuonForwardTrackFinder.cxx:1297
 AliMuonForwardTrackFinder.cxx:1298
 AliMuonForwardTrackFinder.cxx:1299
 AliMuonForwardTrackFinder.cxx:1300
 AliMuonForwardTrackFinder.cxx:1301
 AliMuonForwardTrackFinder.cxx:1302
 AliMuonForwardTrackFinder.cxx:1303
 AliMuonForwardTrackFinder.cxx:1304
 AliMuonForwardTrackFinder.cxx:1305
 AliMuonForwardTrackFinder.cxx:1306
 AliMuonForwardTrackFinder.cxx:1307
 AliMuonForwardTrackFinder.cxx:1308
 AliMuonForwardTrackFinder.cxx:1309
 AliMuonForwardTrackFinder.cxx:1310
 AliMuonForwardTrackFinder.cxx:1311
 AliMuonForwardTrackFinder.cxx:1312
 AliMuonForwardTrackFinder.cxx:1313
 AliMuonForwardTrackFinder.cxx:1314
 AliMuonForwardTrackFinder.cxx:1315
 AliMuonForwardTrackFinder.cxx:1316
 AliMuonForwardTrackFinder.cxx:1317
 AliMuonForwardTrackFinder.cxx:1318
 AliMuonForwardTrackFinder.cxx:1319
 AliMuonForwardTrackFinder.cxx:1320
 AliMuonForwardTrackFinder.cxx:1321
 AliMuonForwardTrackFinder.cxx:1322
 AliMuonForwardTrackFinder.cxx:1323
 AliMuonForwardTrackFinder.cxx:1324
 AliMuonForwardTrackFinder.cxx:1325
 AliMuonForwardTrackFinder.cxx:1326
 AliMuonForwardTrackFinder.cxx:1327
 AliMuonForwardTrackFinder.cxx:1328
 AliMuonForwardTrackFinder.cxx:1329
 AliMuonForwardTrackFinder.cxx:1330
 AliMuonForwardTrackFinder.cxx:1331
 AliMuonForwardTrackFinder.cxx:1332
 AliMuonForwardTrackFinder.cxx:1333
 AliMuonForwardTrackFinder.cxx:1334
 AliMuonForwardTrackFinder.cxx:1335
 AliMuonForwardTrackFinder.cxx:1336
 AliMuonForwardTrackFinder.cxx:1337
 AliMuonForwardTrackFinder.cxx:1338
 AliMuonForwardTrackFinder.cxx:1339
 AliMuonForwardTrackFinder.cxx:1340
 AliMuonForwardTrackFinder.cxx:1341
 AliMuonForwardTrackFinder.cxx:1342
 AliMuonForwardTrackFinder.cxx:1343
 AliMuonForwardTrackFinder.cxx:1344
 AliMuonForwardTrackFinder.cxx:1345
 AliMuonForwardTrackFinder.cxx:1346
 AliMuonForwardTrackFinder.cxx:1347
 AliMuonForwardTrackFinder.cxx:1348
 AliMuonForwardTrackFinder.cxx:1349
 AliMuonForwardTrackFinder.cxx:1350
 AliMuonForwardTrackFinder.cxx:1351
 AliMuonForwardTrackFinder.cxx:1352
 AliMuonForwardTrackFinder.cxx:1353
 AliMuonForwardTrackFinder.cxx:1354
 AliMuonForwardTrackFinder.cxx:1355
 AliMuonForwardTrackFinder.cxx:1356
 AliMuonForwardTrackFinder.cxx:1357
 AliMuonForwardTrackFinder.cxx:1358
 AliMuonForwardTrackFinder.cxx:1359
 AliMuonForwardTrackFinder.cxx:1360
 AliMuonForwardTrackFinder.cxx:1361
 AliMuonForwardTrackFinder.cxx:1362
 AliMuonForwardTrackFinder.cxx:1363
 AliMuonForwardTrackFinder.cxx:1364
 AliMuonForwardTrackFinder.cxx:1365
 AliMuonForwardTrackFinder.cxx:1366
 AliMuonForwardTrackFinder.cxx:1367
 AliMuonForwardTrackFinder.cxx:1368
 AliMuonForwardTrackFinder.cxx:1369
 AliMuonForwardTrackFinder.cxx:1370
 AliMuonForwardTrackFinder.cxx:1371
 AliMuonForwardTrackFinder.cxx:1372
 AliMuonForwardTrackFinder.cxx:1373
 AliMuonForwardTrackFinder.cxx:1374
 AliMuonForwardTrackFinder.cxx:1375
 AliMuonForwardTrackFinder.cxx:1376
 AliMuonForwardTrackFinder.cxx:1377
 AliMuonForwardTrackFinder.cxx:1378
 AliMuonForwardTrackFinder.cxx:1379
 AliMuonForwardTrackFinder.cxx:1380
 AliMuonForwardTrackFinder.cxx:1381
 AliMuonForwardTrackFinder.cxx:1382
 AliMuonForwardTrackFinder.cxx:1383
 AliMuonForwardTrackFinder.cxx:1384
 AliMuonForwardTrackFinder.cxx:1385
 AliMuonForwardTrackFinder.cxx:1386
 AliMuonForwardTrackFinder.cxx:1387
 AliMuonForwardTrackFinder.cxx:1388
 AliMuonForwardTrackFinder.cxx:1389
 AliMuonForwardTrackFinder.cxx:1390
 AliMuonForwardTrackFinder.cxx:1391
 AliMuonForwardTrackFinder.cxx:1392
 AliMuonForwardTrackFinder.cxx:1393
 AliMuonForwardTrackFinder.cxx:1394
 AliMuonForwardTrackFinder.cxx:1395
 AliMuonForwardTrackFinder.cxx:1396
 AliMuonForwardTrackFinder.cxx:1397
 AliMuonForwardTrackFinder.cxx:1398
 AliMuonForwardTrackFinder.cxx:1399
 AliMuonForwardTrackFinder.cxx:1400
 AliMuonForwardTrackFinder.cxx:1401
 AliMuonForwardTrackFinder.cxx:1402
 AliMuonForwardTrackFinder.cxx:1403
 AliMuonForwardTrackFinder.cxx:1404
 AliMuonForwardTrackFinder.cxx:1405
 AliMuonForwardTrackFinder.cxx:1406
 AliMuonForwardTrackFinder.cxx:1407
 AliMuonForwardTrackFinder.cxx:1408
 AliMuonForwardTrackFinder.cxx:1409
 AliMuonForwardTrackFinder.cxx:1410
 AliMuonForwardTrackFinder.cxx:1411
 AliMuonForwardTrackFinder.cxx:1412
 AliMuonForwardTrackFinder.cxx:1413
 AliMuonForwardTrackFinder.cxx:1414
 AliMuonForwardTrackFinder.cxx:1415
 AliMuonForwardTrackFinder.cxx:1416
 AliMuonForwardTrackFinder.cxx:1417
 AliMuonForwardTrackFinder.cxx:1418
 AliMuonForwardTrackFinder.cxx:1419
 AliMuonForwardTrackFinder.cxx:1420
 AliMuonForwardTrackFinder.cxx:1421
 AliMuonForwardTrackFinder.cxx:1422
 AliMuonForwardTrackFinder.cxx:1423
 AliMuonForwardTrackFinder.cxx:1424
 AliMuonForwardTrackFinder.cxx:1425
 AliMuonForwardTrackFinder.cxx:1426
 AliMuonForwardTrackFinder.cxx:1427
 AliMuonForwardTrackFinder.cxx:1428
 AliMuonForwardTrackFinder.cxx:1429
 AliMuonForwardTrackFinder.cxx:1430
 AliMuonForwardTrackFinder.cxx:1431
 AliMuonForwardTrackFinder.cxx:1432
 AliMuonForwardTrackFinder.cxx:1433
 AliMuonForwardTrackFinder.cxx:1434
 AliMuonForwardTrackFinder.cxx:1435
 AliMuonForwardTrackFinder.cxx:1436
 AliMuonForwardTrackFinder.cxx:1437
 AliMuonForwardTrackFinder.cxx:1438
 AliMuonForwardTrackFinder.cxx:1439
 AliMuonForwardTrackFinder.cxx:1440
 AliMuonForwardTrackFinder.cxx:1441
 AliMuonForwardTrackFinder.cxx:1442
 AliMuonForwardTrackFinder.cxx:1443
 AliMuonForwardTrackFinder.cxx:1444
 AliMuonForwardTrackFinder.cxx:1445
 AliMuonForwardTrackFinder.cxx:1446
 AliMuonForwardTrackFinder.cxx:1447
 AliMuonForwardTrackFinder.cxx:1448
 AliMuonForwardTrackFinder.cxx:1449
 AliMuonForwardTrackFinder.cxx:1450
 AliMuonForwardTrackFinder.cxx:1451
 AliMuonForwardTrackFinder.cxx:1452
 AliMuonForwardTrackFinder.cxx:1453
 AliMuonForwardTrackFinder.cxx:1454
 AliMuonForwardTrackFinder.cxx:1455
 AliMuonForwardTrackFinder.cxx:1456
 AliMuonForwardTrackFinder.cxx:1457
 AliMuonForwardTrackFinder.cxx:1458
 AliMuonForwardTrackFinder.cxx:1459
 AliMuonForwardTrackFinder.cxx:1460
 AliMuonForwardTrackFinder.cxx:1461
 AliMuonForwardTrackFinder.cxx:1462
 AliMuonForwardTrackFinder.cxx:1463
 AliMuonForwardTrackFinder.cxx:1464
 AliMuonForwardTrackFinder.cxx:1465
 AliMuonForwardTrackFinder.cxx:1466
 AliMuonForwardTrackFinder.cxx:1467
 AliMuonForwardTrackFinder.cxx:1468
 AliMuonForwardTrackFinder.cxx:1469
 AliMuonForwardTrackFinder.cxx:1470
 AliMuonForwardTrackFinder.cxx:1471
 AliMuonForwardTrackFinder.cxx:1472
 AliMuonForwardTrackFinder.cxx:1473
 AliMuonForwardTrackFinder.cxx:1474
 AliMuonForwardTrackFinder.cxx:1475
 AliMuonForwardTrackFinder.cxx:1476
 AliMuonForwardTrackFinder.cxx:1477
 AliMuonForwardTrackFinder.cxx:1478
 AliMuonForwardTrackFinder.cxx:1479
 AliMuonForwardTrackFinder.cxx:1480
 AliMuonForwardTrackFinder.cxx:1481
 AliMuonForwardTrackFinder.cxx:1482
 AliMuonForwardTrackFinder.cxx:1483
 AliMuonForwardTrackFinder.cxx:1484
 AliMuonForwardTrackFinder.cxx:1485
 AliMuonForwardTrackFinder.cxx:1486
 AliMuonForwardTrackFinder.cxx:1487
 AliMuonForwardTrackFinder.cxx:1488
 AliMuonForwardTrackFinder.cxx:1489
 AliMuonForwardTrackFinder.cxx:1490
 AliMuonForwardTrackFinder.cxx:1491
 AliMuonForwardTrackFinder.cxx:1492
 AliMuonForwardTrackFinder.cxx:1493
 AliMuonForwardTrackFinder.cxx:1494
 AliMuonForwardTrackFinder.cxx:1495
 AliMuonForwardTrackFinder.cxx:1496
 AliMuonForwardTrackFinder.cxx:1497
 AliMuonForwardTrackFinder.cxx:1498
 AliMuonForwardTrackFinder.cxx:1499
 AliMuonForwardTrackFinder.cxx:1500
 AliMuonForwardTrackFinder.cxx:1501
 AliMuonForwardTrackFinder.cxx:1502
 AliMuonForwardTrackFinder.cxx:1503
 AliMuonForwardTrackFinder.cxx:1504
 AliMuonForwardTrackFinder.cxx:1505
 AliMuonForwardTrackFinder.cxx:1506
 AliMuonForwardTrackFinder.cxx:1507
 AliMuonForwardTrackFinder.cxx:1508
 AliMuonForwardTrackFinder.cxx:1509
 AliMuonForwardTrackFinder.cxx:1510
 AliMuonForwardTrackFinder.cxx:1511
 AliMuonForwardTrackFinder.cxx:1512
 AliMuonForwardTrackFinder.cxx:1513
 AliMuonForwardTrackFinder.cxx:1514
 AliMuonForwardTrackFinder.cxx:1515
 AliMuonForwardTrackFinder.cxx:1516
 AliMuonForwardTrackFinder.cxx:1517
 AliMuonForwardTrackFinder.cxx:1518
 AliMuonForwardTrackFinder.cxx:1519
 AliMuonForwardTrackFinder.cxx:1520
 AliMuonForwardTrackFinder.cxx:1521
 AliMuonForwardTrackFinder.cxx:1522
 AliMuonForwardTrackFinder.cxx:1523
 AliMuonForwardTrackFinder.cxx:1524
 AliMuonForwardTrackFinder.cxx:1525
 AliMuonForwardTrackFinder.cxx:1526
 AliMuonForwardTrackFinder.cxx:1527
 AliMuonForwardTrackFinder.cxx:1528
 AliMuonForwardTrackFinder.cxx:1529
 AliMuonForwardTrackFinder.cxx:1530
 AliMuonForwardTrackFinder.cxx:1531
 AliMuonForwardTrackFinder.cxx:1532
 AliMuonForwardTrackFinder.cxx:1533
 AliMuonForwardTrackFinder.cxx:1534
 AliMuonForwardTrackFinder.cxx:1535
 AliMuonForwardTrackFinder.cxx:1536
 AliMuonForwardTrackFinder.cxx:1537
 AliMuonForwardTrackFinder.cxx:1538
 AliMuonForwardTrackFinder.cxx:1539
 AliMuonForwardTrackFinder.cxx:1540
 AliMuonForwardTrackFinder.cxx:1541
 AliMuonForwardTrackFinder.cxx:1542
 AliMuonForwardTrackFinder.cxx:1543
 AliMuonForwardTrackFinder.cxx:1544
 AliMuonForwardTrackFinder.cxx:1545
 AliMuonForwardTrackFinder.cxx:1546
 AliMuonForwardTrackFinder.cxx:1547
 AliMuonForwardTrackFinder.cxx:1548
 AliMuonForwardTrackFinder.cxx:1549
 AliMuonForwardTrackFinder.cxx:1550
 AliMuonForwardTrackFinder.cxx:1551
 AliMuonForwardTrackFinder.cxx:1552
 AliMuonForwardTrackFinder.cxx:1553
 AliMuonForwardTrackFinder.cxx:1554
 AliMuonForwardTrackFinder.cxx:1555
 AliMuonForwardTrackFinder.cxx:1556
 AliMuonForwardTrackFinder.cxx:1557
 AliMuonForwardTrackFinder.cxx:1558
 AliMuonForwardTrackFinder.cxx:1559
 AliMuonForwardTrackFinder.cxx:1560
 AliMuonForwardTrackFinder.cxx:1561
 AliMuonForwardTrackFinder.cxx:1562
 AliMuonForwardTrackFinder.cxx:1563
 AliMuonForwardTrackFinder.cxx:1564
 AliMuonForwardTrackFinder.cxx:1565
 AliMuonForwardTrackFinder.cxx:1566
 AliMuonForwardTrackFinder.cxx:1567
 AliMuonForwardTrackFinder.cxx:1568
 AliMuonForwardTrackFinder.cxx:1569
 AliMuonForwardTrackFinder.cxx:1570
 AliMuonForwardTrackFinder.cxx:1571
 AliMuonForwardTrackFinder.cxx:1572
 AliMuonForwardTrackFinder.cxx:1573
 AliMuonForwardTrackFinder.cxx:1574
 AliMuonForwardTrackFinder.cxx:1575
 AliMuonForwardTrackFinder.cxx:1576
 AliMuonForwardTrackFinder.cxx:1577
 AliMuonForwardTrackFinder.cxx:1578
 AliMuonForwardTrackFinder.cxx:1579
 AliMuonForwardTrackFinder.cxx:1580
 AliMuonForwardTrackFinder.cxx:1581
 AliMuonForwardTrackFinder.cxx:1582
 AliMuonForwardTrackFinder.cxx:1583
 AliMuonForwardTrackFinder.cxx:1584
 AliMuonForwardTrackFinder.cxx:1585
 AliMuonForwardTrackFinder.cxx:1586
 AliMuonForwardTrackFinder.cxx:1587
 AliMuonForwardTrackFinder.cxx:1588
 AliMuonForwardTrackFinder.cxx:1589
 AliMuonForwardTrackFinder.cxx:1590
 AliMuonForwardTrackFinder.cxx:1591
 AliMuonForwardTrackFinder.cxx:1592
 AliMuonForwardTrackFinder.cxx:1593
 AliMuonForwardTrackFinder.cxx:1594
 AliMuonForwardTrackFinder.cxx:1595
 AliMuonForwardTrackFinder.cxx:1596
 AliMuonForwardTrackFinder.cxx:1597
 AliMuonForwardTrackFinder.cxx:1598
 AliMuonForwardTrackFinder.cxx:1599
 AliMuonForwardTrackFinder.cxx:1600
 AliMuonForwardTrackFinder.cxx:1601
 AliMuonForwardTrackFinder.cxx:1602
 AliMuonForwardTrackFinder.cxx:1603
 AliMuonForwardTrackFinder.cxx:1604
 AliMuonForwardTrackFinder.cxx:1605
 AliMuonForwardTrackFinder.cxx:1606
 AliMuonForwardTrackFinder.cxx:1607
 AliMuonForwardTrackFinder.cxx:1608
 AliMuonForwardTrackFinder.cxx:1609
 AliMuonForwardTrackFinder.cxx:1610
 AliMuonForwardTrackFinder.cxx:1611
 AliMuonForwardTrackFinder.cxx:1612
 AliMuonForwardTrackFinder.cxx:1613
 AliMuonForwardTrackFinder.cxx:1614
 AliMuonForwardTrackFinder.cxx:1615
 AliMuonForwardTrackFinder.cxx:1616
 AliMuonForwardTrackFinder.cxx:1617
 AliMuonForwardTrackFinder.cxx:1618
 AliMuonForwardTrackFinder.cxx:1619
 AliMuonForwardTrackFinder.cxx:1620
 AliMuonForwardTrackFinder.cxx:1621
 AliMuonForwardTrackFinder.cxx:1622
 AliMuonForwardTrackFinder.cxx:1623
 AliMuonForwardTrackFinder.cxx:1624
 AliMuonForwardTrackFinder.cxx:1625
 AliMuonForwardTrackFinder.cxx:1626
 AliMuonForwardTrackFinder.cxx:1627
 AliMuonForwardTrackFinder.cxx:1628
 AliMuonForwardTrackFinder.cxx:1629
 AliMuonForwardTrackFinder.cxx:1630
 AliMuonForwardTrackFinder.cxx:1631
 AliMuonForwardTrackFinder.cxx:1632
 AliMuonForwardTrackFinder.cxx:1633
 AliMuonForwardTrackFinder.cxx:1634
 AliMuonForwardTrackFinder.cxx:1635
 AliMuonForwardTrackFinder.cxx:1636
 AliMuonForwardTrackFinder.cxx:1637
 AliMuonForwardTrackFinder.cxx:1638
 AliMuonForwardTrackFinder.cxx:1639
 AliMuonForwardTrackFinder.cxx:1640
 AliMuonForwardTrackFinder.cxx:1641
 AliMuonForwardTrackFinder.cxx:1642
 AliMuonForwardTrackFinder.cxx:1643
 AliMuonForwardTrackFinder.cxx:1644
 AliMuonForwardTrackFinder.cxx:1645
 AliMuonForwardTrackFinder.cxx:1646
 AliMuonForwardTrackFinder.cxx:1647
 AliMuonForwardTrackFinder.cxx:1648
 AliMuonForwardTrackFinder.cxx:1649
 AliMuonForwardTrackFinder.cxx:1650
 AliMuonForwardTrackFinder.cxx:1651
 AliMuonForwardTrackFinder.cxx:1652
 AliMuonForwardTrackFinder.cxx:1653
 AliMuonForwardTrackFinder.cxx:1654
 AliMuonForwardTrackFinder.cxx:1655
 AliMuonForwardTrackFinder.cxx:1656
 AliMuonForwardTrackFinder.cxx:1657
 AliMuonForwardTrackFinder.cxx:1658
 AliMuonForwardTrackFinder.cxx:1659
 AliMuonForwardTrackFinder.cxx:1660
 AliMuonForwardTrackFinder.cxx:1661
 AliMuonForwardTrackFinder.cxx:1662
 AliMuonForwardTrackFinder.cxx:1663
 AliMuonForwardTrackFinder.cxx:1664
 AliMuonForwardTrackFinder.cxx:1665
 AliMuonForwardTrackFinder.cxx:1666
 AliMuonForwardTrackFinder.cxx:1667
 AliMuonForwardTrackFinder.cxx:1668
 AliMuonForwardTrackFinder.cxx:1669
 AliMuonForwardTrackFinder.cxx:1670
 AliMuonForwardTrackFinder.cxx:1671
 AliMuonForwardTrackFinder.cxx:1672
 AliMuonForwardTrackFinder.cxx:1673
 AliMuonForwardTrackFinder.cxx:1674
 AliMuonForwardTrackFinder.cxx:1675
 AliMuonForwardTrackFinder.cxx:1676
 AliMuonForwardTrackFinder.cxx:1677
 AliMuonForwardTrackFinder.cxx:1678
 AliMuonForwardTrackFinder.cxx:1679
 AliMuonForwardTrackFinder.cxx:1680
 AliMuonForwardTrackFinder.cxx:1681
 AliMuonForwardTrackFinder.cxx:1682
 AliMuonForwardTrackFinder.cxx:1683
 AliMuonForwardTrackFinder.cxx:1684
 AliMuonForwardTrackFinder.cxx:1685
 AliMuonForwardTrackFinder.cxx:1686
 AliMuonForwardTrackFinder.cxx:1687
 AliMuonForwardTrackFinder.cxx:1688
 AliMuonForwardTrackFinder.cxx:1689
 AliMuonForwardTrackFinder.cxx:1690
 AliMuonForwardTrackFinder.cxx:1691
 AliMuonForwardTrackFinder.cxx:1692
 AliMuonForwardTrackFinder.cxx:1693
 AliMuonForwardTrackFinder.cxx:1694
 AliMuonForwardTrackFinder.cxx:1695
 AliMuonForwardTrackFinder.cxx:1696
 AliMuonForwardTrackFinder.cxx:1697
 AliMuonForwardTrackFinder.cxx:1698
 AliMuonForwardTrackFinder.cxx:1699
 AliMuonForwardTrackFinder.cxx:1700
 AliMuonForwardTrackFinder.cxx:1701
 AliMuonForwardTrackFinder.cxx:1702
 AliMuonForwardTrackFinder.cxx:1703
 AliMuonForwardTrackFinder.cxx:1704
 AliMuonForwardTrackFinder.cxx:1705
 AliMuonForwardTrackFinder.cxx:1706
 AliMuonForwardTrackFinder.cxx:1707
 AliMuonForwardTrackFinder.cxx:1708
 AliMuonForwardTrackFinder.cxx:1709
 AliMuonForwardTrackFinder.cxx:1710
 AliMuonForwardTrackFinder.cxx:1711
 AliMuonForwardTrackFinder.cxx:1712
 AliMuonForwardTrackFinder.cxx:1713
 AliMuonForwardTrackFinder.cxx:1714
 AliMuonForwardTrackFinder.cxx:1715
 AliMuonForwardTrackFinder.cxx:1716
 AliMuonForwardTrackFinder.cxx:1717
 AliMuonForwardTrackFinder.cxx:1718
 AliMuonForwardTrackFinder.cxx:1719
 AliMuonForwardTrackFinder.cxx:1720
 AliMuonForwardTrackFinder.cxx:1721
 AliMuonForwardTrackFinder.cxx:1722
 AliMuonForwardTrackFinder.cxx:1723
 AliMuonForwardTrackFinder.cxx:1724
 AliMuonForwardTrackFinder.cxx:1725
 AliMuonForwardTrackFinder.cxx:1726
 AliMuonForwardTrackFinder.cxx:1727
 AliMuonForwardTrackFinder.cxx:1728
 AliMuonForwardTrackFinder.cxx:1729
 AliMuonForwardTrackFinder.cxx:1730
 AliMuonForwardTrackFinder.cxx:1731
 AliMuonForwardTrackFinder.cxx:1732
 AliMuonForwardTrackFinder.cxx:1733
 AliMuonForwardTrackFinder.cxx:1734
 AliMuonForwardTrackFinder.cxx:1735
 AliMuonForwardTrackFinder.cxx:1736
 AliMuonForwardTrackFinder.cxx:1737
 AliMuonForwardTrackFinder.cxx:1738
 AliMuonForwardTrackFinder.cxx:1739
 AliMuonForwardTrackFinder.cxx:1740
 AliMuonForwardTrackFinder.cxx:1741
 AliMuonForwardTrackFinder.cxx:1742
 AliMuonForwardTrackFinder.cxx:1743
 AliMuonForwardTrackFinder.cxx:1744
 AliMuonForwardTrackFinder.cxx:1745
 AliMuonForwardTrackFinder.cxx:1746
 AliMuonForwardTrackFinder.cxx:1747
 AliMuonForwardTrackFinder.cxx:1748
 AliMuonForwardTrackFinder.cxx:1749
 AliMuonForwardTrackFinder.cxx:1750
 AliMuonForwardTrackFinder.cxx:1751
 AliMuonForwardTrackFinder.cxx:1752
 AliMuonForwardTrackFinder.cxx:1753
 AliMuonForwardTrackFinder.cxx:1754
 AliMuonForwardTrackFinder.cxx:1755
 AliMuonForwardTrackFinder.cxx:1756
 AliMuonForwardTrackFinder.cxx:1757
 AliMuonForwardTrackFinder.cxx:1758
 AliMuonForwardTrackFinder.cxx:1759
 AliMuonForwardTrackFinder.cxx:1760
 AliMuonForwardTrackFinder.cxx:1761
 AliMuonForwardTrackFinder.cxx:1762
 AliMuonForwardTrackFinder.cxx:1763
 AliMuonForwardTrackFinder.cxx:1764
 AliMuonForwardTrackFinder.cxx:1765
 AliMuonForwardTrackFinder.cxx:1766
 AliMuonForwardTrackFinder.cxx:1767
 AliMuonForwardTrackFinder.cxx:1768
 AliMuonForwardTrackFinder.cxx:1769
 AliMuonForwardTrackFinder.cxx:1770
 AliMuonForwardTrackFinder.cxx:1771
 AliMuonForwardTrackFinder.cxx:1772
 AliMuonForwardTrackFinder.cxx:1773
 AliMuonForwardTrackFinder.cxx:1774
 AliMuonForwardTrackFinder.cxx:1775
 AliMuonForwardTrackFinder.cxx:1776
 AliMuonForwardTrackFinder.cxx:1777
 AliMuonForwardTrackFinder.cxx:1778
 AliMuonForwardTrackFinder.cxx:1779
 AliMuonForwardTrackFinder.cxx:1780
 AliMuonForwardTrackFinder.cxx:1781
 AliMuonForwardTrackFinder.cxx:1782
 AliMuonForwardTrackFinder.cxx:1783
 AliMuonForwardTrackFinder.cxx:1784
 AliMuonForwardTrackFinder.cxx:1785
 AliMuonForwardTrackFinder.cxx:1786
 AliMuonForwardTrackFinder.cxx:1787
 AliMuonForwardTrackFinder.cxx:1788
 AliMuonForwardTrackFinder.cxx:1789
 AliMuonForwardTrackFinder.cxx:1790
 AliMuonForwardTrackFinder.cxx:1791
 AliMuonForwardTrackFinder.cxx:1792
 AliMuonForwardTrackFinder.cxx:1793
 AliMuonForwardTrackFinder.cxx:1794
 AliMuonForwardTrackFinder.cxx:1795
 AliMuonForwardTrackFinder.cxx:1796
 AliMuonForwardTrackFinder.cxx:1797
 AliMuonForwardTrackFinder.cxx:1798
 AliMuonForwardTrackFinder.cxx:1799
 AliMuonForwardTrackFinder.cxx:1800
 AliMuonForwardTrackFinder.cxx:1801
 AliMuonForwardTrackFinder.cxx:1802
 AliMuonForwardTrackFinder.cxx:1803
 AliMuonForwardTrackFinder.cxx:1804
 AliMuonForwardTrackFinder.cxx:1805
 AliMuonForwardTrackFinder.cxx:1806
 AliMuonForwardTrackFinder.cxx:1807
 AliMuonForwardTrackFinder.cxx:1808
 AliMuonForwardTrackFinder.cxx:1809
 AliMuonForwardTrackFinder.cxx:1810
 AliMuonForwardTrackFinder.cxx:1811
 AliMuonForwardTrackFinder.cxx:1812
 AliMuonForwardTrackFinder.cxx:1813
 AliMuonForwardTrackFinder.cxx:1814
 AliMuonForwardTrackFinder.cxx:1815
 AliMuonForwardTrackFinder.cxx:1816
 AliMuonForwardTrackFinder.cxx:1817
 AliMuonForwardTrackFinder.cxx:1818
 AliMuonForwardTrackFinder.cxx:1819
 AliMuonForwardTrackFinder.cxx:1820
 AliMuonForwardTrackFinder.cxx:1821
 AliMuonForwardTrackFinder.cxx:1822
 AliMuonForwardTrackFinder.cxx:1823
 AliMuonForwardTrackFinder.cxx:1824
 AliMuonForwardTrackFinder.cxx:1825
 AliMuonForwardTrackFinder.cxx:1826
 AliMuonForwardTrackFinder.cxx:1827
 AliMuonForwardTrackFinder.cxx:1828
 AliMuonForwardTrackFinder.cxx:1829
 AliMuonForwardTrackFinder.cxx:1830
 AliMuonForwardTrackFinder.cxx:1831
 AliMuonForwardTrackFinder.cxx:1832
 AliMuonForwardTrackFinder.cxx:1833
 AliMuonForwardTrackFinder.cxx:1834
 AliMuonForwardTrackFinder.cxx:1835
 AliMuonForwardTrackFinder.cxx:1836
 AliMuonForwardTrackFinder.cxx:1837
 AliMuonForwardTrackFinder.cxx:1838
 AliMuonForwardTrackFinder.cxx:1839
 AliMuonForwardTrackFinder.cxx:1840
 AliMuonForwardTrackFinder.cxx:1841
 AliMuonForwardTrackFinder.cxx:1842
 AliMuonForwardTrackFinder.cxx:1843
 AliMuonForwardTrackFinder.cxx:1844
 AliMuonForwardTrackFinder.cxx:1845
 AliMuonForwardTrackFinder.cxx:1846
 AliMuonForwardTrackFinder.cxx:1847
 AliMuonForwardTrackFinder.cxx:1848
 AliMuonForwardTrackFinder.cxx:1849
 AliMuonForwardTrackFinder.cxx:1850
 AliMuonForwardTrackFinder.cxx:1851
 AliMuonForwardTrackFinder.cxx:1852
 AliMuonForwardTrackFinder.cxx:1853