ROOT logo
/**************************************************************************
 * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
/* $Id$ */

//-------------------------------------------------------------------------
//               Implementation of the ITS tracker class
//    It reads AliITSRecPoint clusters and creates AliITStrackMI tracks
//                   and fills with them the ESD
//          Origin: Marian Ivanov, CERN, Marian.Ivanov@cern.ch 
//          Current support and development: 
//                     Andrea Dainese, andrea.dainese@lnl.infn.it
//     dE/dx analysis by: Boris Batyunya, JINR, Boris.Batiounia@cern.ch
//     Params moved to AliITSRecoParam by: Andrea Dainese, INFN
//     Material budget from TGeo by: Ludovic Gaudichet & Andrea Dainese, INFN
//-------------------------------------------------------------------------

#include <TMatrixD.h>
#include <TTree.h>
#include <TDatabasePDG.h>
#include <TString.h>
#include <TRandom.h>
#include <TTreeStream.h>
#include <TVector3.h>
#include <TBits.h>

#include "AliLog.h"
#include "AliGeomManager.h"
#include "AliITSPlaneEff.h"
#include "AliTrackPointArray.h"
#include "AliESDEvent.h"
#include "AliESDV0Params.h"
#include "AliESDtrack.h"
#include "AliV0.h"
#include "AliITSChannelStatus.h"
#include "AliITSDetTypeRec.h"
#include "AliITSRecPoint.h"
#include "AliITSRecPointContainer.h"
#include "AliITSgeomTGeo.h"
#include "AliITSReconstructor.h"
#include "AliITSClusterParam.h"
#include "AliITSsegmentation.h"
#include "AliITSCalibration.h"
#include "AliITSPlaneEffSPD.h"
#include "AliITSPlaneEffSDD.h"
#include "AliITSPlaneEffSSD.h"
#include "AliITSV0Finder.h"
#include "AliITStrackerMI.h"
#include "AliMathBase.h"
#include "AliPID.h"


ClassImp(AliITStrackerMI)

AliITStrackerMI::AliITSlayer AliITStrackerMI::fgLayers[AliITSgeomTGeo::kNLayers]; // ITS layers

AliITStrackerMI::AliITStrackerMI():AliTracker(),
fI(0),
fBestTrack(),
fTrackToFollow(),
fTrackHypothesys(),
fBestHypothesys(),
fOriginal(),
fCurrentEsdTrack(),
fPass(0),
fAfterV0(kFALSE),
fLastLayerToTrackTo(0),
fCoefficients(0),
fEsd(0),
fTrackingPhase("Default"),
fUseTGeo(3),
fNtracks(0),
fFlagFakes(kFALSE),
fSelectBestMIP03(kFALSE),
fUseImproveKalman(kFALSE),
fxOverX0Pipe(-1.),
fxTimesRhoPipe(-1.),
fxOverX0PipeTrks(0),
fxTimesRhoPipeTrks(0),
fxOverX0ShieldTrks(0),
fxTimesRhoShieldTrks(0),
fxOverX0LayerTrks(0),
fxTimesRhoLayerTrks(0),
fDebugStreamer(0),
fITSChannelStatus(0),
fkDetTypeRec(0),
fPlaneEff(0),
fSPDChipIntPlaneEff(0),
fITSPid(0)

 {
  //Default constructor
  Int_t i;
  for(i=0;i<4;i++) fSPDdetzcentre[i]=0.;
  for(i=0;i<2;i++) {
    fxOverX0Shield[i]=-1.;
    fxTimesRhoShield[i]=-1.;
    fConstraint[i]=0;
  }
  for(i=0;i<6;i++) {fxOverX0Layer[i]=-1.;fxTimesRhoLayer[i]=-1.;}
  fOriginal.SetOwner();
  for(i=0;i<AliITSgeomTGeo::kNLayers;i++)fForceSkippingOfLayer[i]=0;
  for(i=0;i<100000;i++)fBestTrackIndex[i]=0;
  fITSPid=new AliITSPIDResponse();

}
//------------------------------------------------------------------------
AliITStrackerMI::AliITStrackerMI(const Char_t *geom) : AliTracker(),
fI(AliITSgeomTGeo::GetNLayers()),
fBestTrack(),
fTrackToFollow(),
fTrackHypothesys(),
fBestHypothesys(),
fOriginal(),
fCurrentEsdTrack(),
fPass(0),
fAfterV0(kFALSE),
fLastLayerToTrackTo(AliITSRecoParam::GetLastLayerToTrackTo()),
fCoefficients(0),
fEsd(0),
fTrackingPhase("Default"),
fUseTGeo(3),
fNtracks(0),
fFlagFakes(kFALSE),
fSelectBestMIP03(kFALSE),
fUseImproveKalman(kFALSE),
fxOverX0Pipe(-1.),
fxTimesRhoPipe(-1.),
fxOverX0PipeTrks(0),
fxTimesRhoPipeTrks(0),
fxOverX0ShieldTrks(0),
fxTimesRhoShieldTrks(0),
fxOverX0LayerTrks(0),
fxTimesRhoLayerTrks(0),
fDebugStreamer(0),
fITSChannelStatus(0),
fkDetTypeRec(0),
fPlaneEff(0),
fSPDChipIntPlaneEff(0),
fITSPid(0) {
  //--------------------------------------------------------------------
  //This is the AliITStrackerMI constructor
  //--------------------------------------------------------------------
  if (geom) {
    AliWarning("\"geom\" is actually a dummy argument !");
  }

  fOriginal.SetOwner();
  fCoefficients = 0;
  fAfterV0     = kFALSE;

  for (Int_t i=1; i<AliITSgeomTGeo::GetNLayers()+1; i++) {
    Int_t nlad=AliITSgeomTGeo::GetNLadders(i);
    Int_t ndet=AliITSgeomTGeo::GetNDetectors(i);

    Double_t xyz[3], &x=xyz[0], &y=xyz[1], &z=xyz[2];
    AliITSgeomTGeo::GetTranslation(i,1,1,xyz); 
    Double_t poff=TMath::ATan2(y,x);
    Double_t zoff=z;

    AliITSgeomTGeo::GetOrigTranslation(i,1,1,xyz);
    Double_t r=TMath::Sqrt(x*x + y*y);

    AliITSgeomTGeo::GetOrigTranslation(i,1,2,xyz);
    r += TMath::Sqrt(x*x + y*y);
    AliITSgeomTGeo::GetOrigTranslation(i,2,1,xyz);
    r += TMath::Sqrt(x*x + y*y);
    AliITSgeomTGeo::GetOrigTranslation(i,2,2,xyz);
    r += TMath::Sqrt(x*x + y*y);
    r*=0.25;

    new (fgLayers+i-1) AliITSlayer(r,poff,zoff,nlad,ndet);

    for (Int_t j=1; j<nlad+1; j++) {
      for (Int_t k=1; k<ndet+1; k++) { //Fill this layer with detectors
        TGeoHMatrix m; AliITSgeomTGeo::GetOrigMatrix(i,j,k,m);
        const TGeoHMatrix *tm=AliITSgeomTGeo::GetTracking2LocalMatrix(i,j,k);
        m.Multiply(tm);
        Double_t txyz[3]={0.};
	xyz[0]=0.;xyz[1]=0.;xyz[2]=0.;
        m.LocalToMaster(txyz,xyz);
        r=TMath::Sqrt(xyz[0]*xyz[0] + xyz[1]*xyz[1]);
        Double_t phi=TMath::ATan2(xyz[1],xyz[0]);

        if (phi<0) phi+=TMath::TwoPi();
        else if (phi>=TMath::TwoPi()) phi-=TMath::TwoPi();

        AliITSdetector &det=fgLayers[i-1].GetDetector((j-1)*ndet + k-1); 
        new(&det) AliITSdetector(r,phi); 
	// compute the real radius (with misalignment)
        TGeoHMatrix mmisal(*(AliITSgeomTGeo::GetMatrix(i,j,k)));
        mmisal.Multiply(tm);
	xyz[0]=0.;xyz[1]=0.;xyz[2]=0.;
        mmisal.LocalToMaster(txyz,xyz);
        Double_t rmisal=TMath::Sqrt(xyz[0]*xyz[0] + xyz[1]*xyz[1]);
	det.SetRmisal(rmisal);
	
      } // end loop on detectors
    } // end loop on ladders
    fForceSkippingOfLayer[i-1] = 0;
  } // end loop on layers


  fI=AliITSgeomTGeo::GetNLayers();

  fPass=0;
  fConstraint[0]=1; fConstraint[1]=0;

  Double_t xyzVtx[]={AliITSReconstructor::GetRecoParam()->GetXVdef(),
		     AliITSReconstructor::GetRecoParam()->GetYVdef(),
		     AliITSReconstructor::GetRecoParam()->GetZVdef()}; 
  Double_t ersVtx[]={AliITSReconstructor::GetRecoParam()->GetSigmaXVdef(),
		     AliITSReconstructor::GetRecoParam()->GetSigmaYVdef(),
		     AliITSReconstructor::GetRecoParam()->GetSigmaZVdef()}; 
  SetVertex(xyzVtx,ersVtx);

  fLastLayerToTrackTo=AliITSRecoParam::GetLastLayerToTrackTo();
  for (Int_t i=0;i<100000;i++){
    fBestTrackIndex[i]=0;
  }

  // store positions of centre of SPD modules (in z)
  //  The convetion is that fSPDdetzcentre is ordered from -z to +z
  Double_t tr[3];
  AliITSgeomTGeo::GetTranslation(1,1,1,tr);
  if (tr[2]<0) { // old geom (up to v5asymmPPR)
    AliITSgeomTGeo::GetTranslation(1,1,1,tr);
    fSPDdetzcentre[0] = tr[2];
    AliITSgeomTGeo::GetTranslation(1,1,2,tr);
    fSPDdetzcentre[1] = tr[2];
    AliITSgeomTGeo::GetTranslation(1,1,3,tr);
    fSPDdetzcentre[2] = tr[2];
    AliITSgeomTGeo::GetTranslation(1,1,4,tr);
    fSPDdetzcentre[3] = tr[2];
  } else { // new geom (from v11Hybrid)
    AliITSgeomTGeo::GetTranslation(1,1,4,tr);
    fSPDdetzcentre[0] = tr[2];
    AliITSgeomTGeo::GetTranslation(1,1,3,tr);
    fSPDdetzcentre[1] = tr[2];
    AliITSgeomTGeo::GetTranslation(1,1,2,tr);
    fSPDdetzcentre[2] = tr[2];
    AliITSgeomTGeo::GetTranslation(1,1,1,tr);
    fSPDdetzcentre[3] = tr[2];
  }

  fUseTGeo = AliITSReconstructor::GetRecoParam()->GetUseTGeoInTracker();
  if(AliITSReconstructor::GetRecoParam()->GetExtendedEtaAcceptance() && fUseTGeo!=1 && fUseTGeo!=3) {
    AliWarning("fUseTGeo changed to 3 because fExtendedEtaAcceptance is kTRUE");
    fUseTGeo = 3;
  }

  for(Int_t i=0;i<2;i++) {fxOverX0Shield[i]=-1.;fxTimesRhoShield[i]=-1.;}
  for(Int_t i=0;i<6;i++) {fxOverX0Layer[i]=-1.;fxTimesRhoLayer[i]=-1.;}
  
  if (AliITSReconstructor::GetRecoParam()->GetESDV0Params()->StreamLevel()>0)
    fDebugStreamer = new TTreeSRedirector("ITSdebug.root");

  // only for plane efficiency evaluation
  if (AliITSReconstructor::GetRecoParam()->GetComputePlaneEff() &&
      AliITSReconstructor::GetRecoParam()->GetIPlanePlaneEff()>=0) {
    Int_t iplane=AliITSReconstructor::GetRecoParam()->GetIPlanePlaneEff();
    if(AliITSReconstructor::GetRecoParam()->GetLayersToSkip(iplane)!=1)
      AliWarning(Form("Evaluation of Plane Eff for layer %d will be attempted without removing it from tracker",iplane));
    if (iplane<2) {
      fPlaneEff = new AliITSPlaneEffSPD();
      fSPDChipIntPlaneEff = new Bool_t[AliITSPlaneEffSPD::kNModule*AliITSPlaneEffSPD::kNChip];
      for (UInt_t i=0; i<AliITSPlaneEffSPD::kNModule*AliITSPlaneEffSPD::kNChip; i++) fSPDChipIntPlaneEff[i]=kFALSE;
    }
    else if (iplane<4) fPlaneEff = new AliITSPlaneEffSDD();
    else fPlaneEff = new AliITSPlaneEffSSD();
    if(AliITSReconstructor::GetRecoParam()->GetReadPlaneEffFromOCDB())
       if(!fPlaneEff->ReadFromCDB()) {AliWarning("AliITStrackerMI reading of AliITSPlaneEff from OCDB failed") ;}
    if(AliITSReconstructor::GetRecoParam()->GetHistoPlaneEff()) fPlaneEff->SetCreateHistos(kTRUE);
  }
  //
  // RS
  fSelectBestMIP03  = kFALSE;//AliITSReconstructor::GetRecoParam()->GetSelectBestMIP03();
  fFlagFakes        = AliITSReconstructor::GetRecoParam()->GetFlagFakes();
  fUseImproveKalman = AliITSReconstructor::GetRecoParam()->GetUseImproveKalman();
  //
  fITSPid=new AliITSPIDResponse();
}
/*
//------------------------------------------------------------------------
AliITStrackerMI::AliITStrackerMI(const AliITStrackerMI &tracker):AliTracker(tracker),
fI(tracker.fI),
fBestTrack(tracker.fBestTrack),
fTrackToFollow(tracker.fTrackToFollow),
fTrackHypothesys(tracker.fTrackHypothesys),
fBestHypothesys(tracker.fBestHypothesys),
fOriginal(tracker.fOriginal),
fCurrentEsdTrack(tracker.fCurrentEsdTrack),
fPass(tracker.fPass),
fAfterV0(tracker.fAfterV0),
fLastLayerToTrackTo(tracker.fLastLayerToTrackTo),
fCoefficients(tracker.fCoefficients),
fEsd(tracker.fEsd),
fTrackingPhase(tracker.fTrackingPhase),
fUseTGeo(tracker.fUseTGeo),
fNtracks(tracker.fNtracks),
fFlagFakes(tracker.fFlagFakes),
fSelectBestMIP03(tracker.fSelectBestMIP03),
fxOverX0Pipe(tracker.fxOverX0Pipe),
fxTimesRhoPipe(tracker.fxTimesRhoPipe),
fxOverX0PipeTrks(0),
fxTimesRhoPipeTrks(0),
fxOverX0ShieldTrks(0),
fxTimesRhoShieldTrks(0),
fxOverX0LayerTrks(0),
fxTimesRhoLayerTrks(0),
fDebugStreamer(tracker.fDebugStreamer),
fITSChannelStatus(tracker.fITSChannelStatus),
fkDetTypeRec(tracker.fkDetTypeRec),
fPlaneEff(tracker.fPlaneEff) {
  //Copy constructor
  fOriginal.SetOwner();
  Int_t i;
  for(i=0;i<4;i++) {
    fSPDdetzcentre[i]=tracker.fSPDdetzcentre[i];
  }
  for(i=0;i<6;i++) {
    fxOverX0Layer[i]=tracker.fxOverX0Layer[i];
    fxTimesRhoLayer[i]=tracker.fxTimesRhoLayer[i];
  }
  for(i=0;i<2;i++) {
    fxOverX0Shield[i]=tracker.fxOverX0Shield[i];
    fxTimesRhoShield[i]=tracker.fxTimesRhoShield[i];
  }
}

//------------------------------------------------------------------------
AliITStrackerMI & AliITStrackerMI::operator=(const AliITStrackerMI &tracker){
  //Assignment operator
  this->~AliITStrackerMI();
  new(this) AliITStrackerMI(tracker);
  return *this;
}
*/
//------------------------------------------------------------------------
AliITStrackerMI::~AliITStrackerMI()
{
  //
  //destructor
  //
  if (fCoefficients) delete [] fCoefficients;
  DeleteTrksMaterialLUT();
  if (fDebugStreamer) {
    //fDebugStreamer->Close();
    delete fDebugStreamer;
  }
  if(fITSChannelStatus) delete fITSChannelStatus;
  if(fPlaneEff) delete fPlaneEff;
  if(fITSPid) delete fITSPid;
  if (fSPDChipIntPlaneEff) delete [] fSPDChipIntPlaneEff;

}
//------------------------------------------------------------------------
void AliITStrackerMI::ReadBadFromDetTypeRec() {
  //--------------------------------------------------------------------
  //This function read ITS bad detectors, chips, channels from AliITSDetTypeRec
  //i.e. from OCDB
  //--------------------------------------------------------------------

  if(!AliITSReconstructor::GetRecoParam()->GetUseBadZonesFromOCDB()) return;

  Info("ReadBadFromDetTypeRec","Reading info about bad ITS detectors and channels");

  if(!fkDetTypeRec) Error("ReadBadFromDetTypeRec","AliITSDetTypeRec nof found!\n");

  // ITS channels map
  if(fITSChannelStatus) delete fITSChannelStatus;
  fITSChannelStatus = new AliITSChannelStatus(fkDetTypeRec);

  // ITS detectors and chips
  Int_t i=0,j=0,k=0,ndet=0;
  for (i=1; i<AliITSgeomTGeo::GetNLayers()+1; i++) {
    Int_t nBadDetsPerLayer=0;
    ndet=AliITSgeomTGeo::GetNDetectors(i);    
    for (j=1; j<AliITSgeomTGeo::GetNLadders(i)+1; j++) {
      for (k=1; k<ndet+1; k++) {
        AliITSdetector &det=fgLayers[i-1].GetDetector((j-1)*ndet + k-1);  
	det.ReadBadDetectorAndChips(i-1,(j-1)*ndet + k-1,fkDetTypeRec);
	if(det.IsBad()) {nBadDetsPerLayer++;}
      } // end loop on detectors
    } // end loop on ladders
    AliInfo(Form("Layer %d: %d bad out of %d",i-1,nBadDetsPerLayer,ndet*AliITSgeomTGeo::GetNLadders(i)));
  } // end loop on layers
  
  return;
}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::LoadClusters(TTree *cTree) {
  //--------------------------------------------------------------------
  //This function loads ITS clusters
  //--------------------------------------------------------------------
 
  TClonesArray *clusters = NULL;
  AliITSRecPointContainer* rpcont=AliITSRecPointContainer::Instance();
  clusters=rpcont->FetchClusters(0,cTree);
  if(!clusters) return 1;

  if(!(rpcont->IsSPDActive() || rpcont->IsSDDActive() || rpcont->IsSSDActive())){
      AliError("ITS is not in a known running configuration: SPD, SDD and SSD are not active");
      return 1;
  }
  Int_t i=0,j=0,ndet=0;
  Int_t detector=0;
  for (i=0; i<AliITSgeomTGeo::GetNLayers(); i++) {
    ndet=fgLayers[i].GetNdetectors();
    Int_t jmax = j + fgLayers[i].GetNladders()*ndet;
    for (; j<jmax; j++) {           
      //      if (!cTree->GetEvent(j)) continue;
      clusters = rpcont->UncheckedGetClusters(j);
      if(!clusters)continue;
      Int_t ncl=clusters->GetEntriesFast();
      SignDeltas(clusters,GetZ());
 
      while (ncl--) {
        AliITSRecPoint *c=(AliITSRecPoint*)clusters->UncheckedAt(ncl);
        detector=c->GetDetectorIndex();

	if (!c->Misalign()) AliWarning("Can't misalign this cluster !");
	
	Int_t retval = fgLayers[i].InsertCluster(new AliITSRecPoint(*c));
	if(retval) {
	  AliWarning(Form("Too many clusters on layer %d!",i));
	  break;  
	} 
      }

      // add dead zone "virtual" cluster in SPD, if there is a cluster within 
      // zwindow cm from the dead zone      
      //  This method assumes that fSPDdetzcentre is ordered from -z to +z
      if (i<2 && AliITSReconstructor::GetRecoParam()->GetAddVirtualClustersInDeadZone()) {
	for (Float_t xdead = 0; xdead < AliITSRecoParam::GetSPDdetxlength(); xdead += (i+1.)*AliITSReconstructor::GetRecoParam()->GetXPassDeadZoneHits()) {
	  Int_t lab[4]   = {0,0,0,detector};
	  Int_t info[3]  = {0,0,i};
	  Float_t q      = 0.; // this identifies virtual clusters
	  Float_t hit[6] = {xdead,
			    0.,
			    static_cast<Float_t>(AliITSReconstructor::GetRecoParam()->GetSigmaXDeadZoneHit2()),
			    static_cast<Float_t>(AliITSReconstructor::GetRecoParam()->GetSigmaZDeadZoneHit2()),
			    q,
			    0.};
	  Bool_t local   = kTRUE;
	  Double_t zwindow = AliITSReconstructor::GetRecoParam()->GetZWindowDeadZone();
	  hit[1] = fSPDdetzcentre[0]+0.5*AliITSRecoParam::GetSPDdetzlength();
	  if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<zwindow) 
	    fgLayers[i].InsertCluster(new AliITSRecPoint(lab,hit,info,local));
	  hit[1] = fSPDdetzcentre[1]-0.5*AliITSRecoParam::GetSPDdetzlength();
	  if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<zwindow) 
	    fgLayers[i].InsertCluster(new AliITSRecPoint(lab,hit,info,local));
	  hit[1] = fSPDdetzcentre[1]+0.5*AliITSRecoParam::GetSPDdetzlength();
	  if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<zwindow) 
	    fgLayers[i].InsertCluster(new AliITSRecPoint(lab,hit,info,local));
	  hit[1] = fSPDdetzcentre[2]-0.5*AliITSRecoParam::GetSPDdetzlength();
	  if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<zwindow) 
	    fgLayers[i].InsertCluster(new AliITSRecPoint(lab,hit,info,local));
	  hit[1] = fSPDdetzcentre[2]+0.5*AliITSRecoParam::GetSPDdetzlength();
	  if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<zwindow) 
	    fgLayers[i].InsertCluster(new AliITSRecPoint(lab,hit,info,local));
	  hit[1] = fSPDdetzcentre[3]-0.5*AliITSRecoParam::GetSPDdetzlength();
	  if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<zwindow) 
	    fgLayers[i].InsertCluster(new AliITSRecPoint(lab,hit,info,local));
	}
      } // "virtual" clusters in SPD
      
    }
    //
    fgLayers[i].ResetRoad(); //road defined by the cluster density
    fgLayers[i].SortClusters();
  }

  // check whether we have to skip some layers
  SetForceSkippingOfLayer();

  return 0;
}
//------------------------------------------------------------------------
void AliITStrackerMI::UnloadClusters() {
  //--------------------------------------------------------------------
  //This function unloads ITS clusters
  //--------------------------------------------------------------------
  for (Int_t i=0; i<AliITSgeomTGeo::GetNLayers(); i++) fgLayers[i].ResetClusters();
}
//------------------------------------------------------------------------
void AliITStrackerMI::FillClusterArray(TObjArray* array) const {
  //--------------------------------------------------------------------
  // Publishes all pointers to clusters known to the tracker into the
  // passed object array.
  // The ownership is not transfered - the caller is not expected to delete
  // the clusters.
  //--------------------------------------------------------------------

  for(Int_t i=0; i<AliITSgeomTGeo::GetNLayers(); i++) {
    for(Int_t icl=0; icl<fgLayers[i].GetNumberOfClusters(); icl++) {
      AliCluster *cl = (AliCluster*)fgLayers[i].GetCluster(icl);
      array->AddLast(cl);
    }
  }

  return;
}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::CorrectForTPCtoITSDeadZoneMaterial(AliITStrackMI *t) {
  //--------------------------------------------------------------------
  // Correction for the material between the TPC and the ITS
  //--------------------------------------------------------------------
  if (t->GetX() > AliITSRecoParam::Getriw()) {   // inward direction 
      if (!t->PropagateToTGeo(AliITSRecoParam::Getriw(),1)) return 0;// TPC inner wall
      if (!t->PropagateToTGeo(AliITSRecoParam::Getrcd(),1)) return 0;// TPC central drum
      if (!t->PropagateToTGeo(AliITSRecoParam::Getrs(),1))  return 0;// ITS screen
  } else if (t->GetX() < AliITSRecoParam::Getrs()) {  // outward direction
      if (!t->PropagateToTGeo(AliITSRecoParam::Getrs(),1))        return 0;// ITS screen
      if (!t->PropagateToTGeo(AliITSRecoParam::Getrcd(),1))       return 0;// TPC central drum
      if (!t->PropagateToTGeo(AliITSRecoParam::Getriw()+0.001,1)) return 0;// TPC inner wall
  } else {
    printf("CorrectForTPCtoITSDeadZoneMaterial: Track is already in the dead zone !\n");
    return 0;
  }
  
  return 1;
}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::Clusters2Tracks(AliESDEvent *event) {
  //--------------------------------------------------------------------
  // This functions reconstructs ITS tracks
  // The clusters must be already loaded !
  //--------------------------------------------------------------------

  AliDebug(2,Form("SKIPPING %d %d %d %d %d %d",ForceSkippingOfLayer(0),ForceSkippingOfLayer(1),ForceSkippingOfLayer(2),ForceSkippingOfLayer(3),ForceSkippingOfLayer(4),ForceSkippingOfLayer(5)));

  fTrackingPhase="Clusters2Tracks";
  //
  // RS
  fSelectBestMIP03  = kFALSE;//AliITSReconstructor::GetRecoParam()->GetSelectBestMIP03();
  fFlagFakes        = AliITSReconstructor::GetRecoParam()->GetFlagFakes();
  fUseImproveKalman = AliITSReconstructor::GetRecoParam()->GetUseImproveKalman();
  //
  TObjArray itsTracks(15000);
  fOriginal.Clear();
  fEsd = event;         // store pointer to the esd 

  // temporary (for cosmics)
  if(event->GetVertex()) {
    TString title = event->GetVertex()->GetTitle();
    if(title.Contains("cosmics")) {
      Double_t xyz[3]={GetX(),GetY(),GetZ()};
      Double_t exyz[3]={0.1,0.1,0.1};
      SetVertex(xyz,exyz);
    }
  }
  // temporary
  Int_t noesd = 0;
  {/* Read ESD tracks */
    Int_t nentr=event->GetNumberOfTracks();
    noesd=nentr;
    //    Info("Clusters2Tracks", "Number of ESD tracks: %d\n", nentr);
    while (nentr--) {
      AliESDtrack *esd=event->GetTrack(nentr);
      //  ---- for debugging:
      //if(TMath::Abs(esd->GetX()-83.65)<0.1) { FILE *f=fopen("tpc.dat","a"); fprintf(f,"%f %f %f %f %f %f\n",(Float_t)event->GetEventNumberInFile(),(Float_t)TMath::Abs(esd->GetLabel()),(Float_t)esd->GetX(),(Float_t)esd->GetY(),(Float_t)esd->GetZ(),(Float_t)esd->Pt()); fclose(f); }

      if ((esd->GetStatus()&AliESDtrack::kTPCin)==0) continue;
      if (esd->GetStatus()&AliESDtrack::kTPCout) continue;
      if (esd->GetStatus()&AliESDtrack::kITSin) continue;
      if (esd->GetKinkIndex(0)>0) continue;   //kink daughter
      AliITStrackMI *t = new AliITStrackMI(*esd);
      t->GetDZ(GetX(),GetY(),GetZ(),t->GetDP());              //I.B.
      Double_t vdist = TMath::Sqrt(t->GetD(0)*t->GetD(0)+t->GetD(1)*t->GetD(1));

      // write expected q
      t->SetExpQ(TMath::Max(0.8*t->GetESDtrack()->GetTPCsignal(),30.));

      if (esd->GetV0Index(0)>0 && t->GetD(0)<AliITSReconstructor::GetRecoParam()->GetMaxDforV0dghtrForProlongation()){
	//track - can be  V0 according to TPC
      } else {	
	if (TMath::Abs(t->GetD(0))>AliITSReconstructor::GetRecoParam()->GetMaxDForProlongation()) {
	  delete t;
	  continue;
	}	
	if (TMath::Abs(vdist)>AliITSReconstructor::GetRecoParam()->GetMaxDZForProlongation()) {
	  delete t;
	  continue;
	}
	if (t->Pt()<AliITSReconstructor::GetRecoParam()->GetMinPtForProlongation()) {
	  delete t;
	  continue;
	}
	if (!CorrectForTPCtoITSDeadZoneMaterial(t)) {
	  delete t;
	  continue;
	}
      }
      t->SetReconstructed(kFALSE);
      itsTracks.AddLast(t);
      fOriginal.AddLast(t);
    }
  } /* End Read ESD tracks */

  itsTracks.Sort();
  fOriginal.Sort();
  Int_t nentr=itsTracks.GetEntriesFast();
  fTrackHypothesys.Expand(nentr);
  fBestHypothesys.Expand(nentr);
  MakeCoefficients(nentr);
  if(fUseTGeo==3 || fUseTGeo==4) MakeTrksMaterialLUT(event->GetNumberOfTracks());
  Int_t ntrk=0;
  // THE TWO TRACKING PASSES
  for (fPass=0; fPass<2; fPass++) {
     Int_t &constraint=fConstraint[fPass]; if (constraint<0) continue;
     for (fCurrentEsdTrack=0; fCurrentEsdTrack<nentr; fCurrentEsdTrack++) {
       AliITStrackMI *t=(AliITStrackMI*)itsTracks.UncheckedAt(fCurrentEsdTrack);
       if (t==0) continue;              //this track has been already tracked
       //cout<<"========== "<<fPass<<"    "<<fCurrentEsdTrack<<" =========\n";
       if (t->GetReconstructed()&&(t->GetNUsed()<1.5)) continue;  //this track was  already  "succesfully" reconstructed
       Float_t dz[2]; t->GetDZ(GetX(),GetY(),GetZ(),dz);              //I.B.
       if (fConstraint[fPass]) { 
	 if (TMath::Abs(dz[0])>AliITSReconstructor::GetRecoParam()->GetMaxDZToUseConstraint() ||
	     TMath::Abs(dz[1])>AliITSReconstructor::GetRecoParam()->GetMaxDZToUseConstraint()) continue;
       }

       Int_t tpcLabel=t->GetLabel(); //save the TPC track label       
       AliDebug(2,Form("LABEL %d pass %d",tpcLabel,fPass));
       fI = 6;
       ResetTrackToFollow(*t);
       ResetBestTrack();

       FollowProlongationTree(t,fCurrentEsdTrack,fConstraint[fPass]);
 

       SortTrackHypothesys(fCurrentEsdTrack,20,0);  //MI change
       //
       AliITStrackMI *besttrack = GetBestHypothesys(fCurrentEsdTrack,t,15);
       if (!besttrack) continue;
       besttrack->SetLabel(tpcLabel);
       //       besttrack->CookdEdx();
       CookdEdx(besttrack);
       besttrack->SetFakeRatio(1.);
       CookLabel(besttrack,0.); //For comparison only
       UpdateESDtrack(besttrack,AliESDtrack::kITSin);
       t->SetWinner(besttrack);

       if (fConstraint[fPass]&&(!besttrack->IsGoldPrimary())) continue;  //to be tracked also without vertex constrain 

       t->SetReconstructed(kTRUE);
       ntrk++;  
       AliDebug(2,Form("TRACK! (label %d) ncls %d",besttrack->GetLabel(),besttrack->GetNumberOfClusters()));
     }
     GetBestHypothesysMIP(itsTracks); 
  } // end loop on the two tracking passes
  //
  if (fFlagFakes) FlagFakes(itsTracks);
  //
  if(event->GetNumberOfV0s()>0) AliITSV0Finder::UpdateTPCV0(event,this);
  if(AliITSReconstructor::GetRecoParam()->GetFindV0s()) AliITSV0Finder::FindV02(event,this);
  fAfterV0 = kTRUE;
  //
  itsTracks.Clear();
  //
  Int_t entries = fTrackHypothesys.GetEntriesFast();
  for (Int_t ientry=0; ientry<entries; ientry++) {
    TObjArray * array =(TObjArray*)fTrackHypothesys.At(ientry);
    if (array) array->Delete();
    delete fTrackHypothesys.RemoveAt(ientry); 
  }

  fTrackHypothesys.Delete();
  entries = fBestHypothesys.GetEntriesFast();
  for (Int_t ientry=0; ientry<entries; ientry++) {
    TObjArray * array =(TObjArray*)fBestHypothesys.At(ientry);
    if (array) array->Delete();
    delete fBestHypothesys.RemoveAt(ientry);
  }
  fBestHypothesys.Delete();
  fOriginal.Clear();
  delete [] fCoefficients;
  fCoefficients=0;
  DeleteTrksMaterialLUT();

  AliInfo(Form("Number of prolonged tracks: %d out of %d ESD tracks",ntrk,noesd));

  fTrackingPhase="Default";
  
  return 0;
}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::PropagateBack(AliESDEvent *event) {
  //--------------------------------------------------------------------
  // This functions propagates reconstructed ITS tracks back
  // The clusters must be loaded !
  //--------------------------------------------------------------------
  fTrackingPhase="PropagateBack";
  Int_t nentr=event->GetNumberOfTracks();
  //  Info("PropagateBack", "Number of ESD tracks: %d\n", nentr);
  double bz0 = GetBz();
  const double kWatchStep=10.; // for larger steps watch arc vs segment difference
  //
  Int_t ntrk=0;
  for (Int_t i=0; i<nentr; i++) {
     AliESDtrack *esd=event->GetTrack(i);

     // Start time integral and add distance from current position to vertex 
     if (esd->GetStatus()&AliESDtrack::kITSout) continue;
     AliITStrackMI t(*esd);
     Double_t xyzTrk[3],xyzVtx[3]={GetX(),GetY(),GetZ()};
     t.GetXYZ(xyzTrk); 
     Double_t dst2 = 0.;
     {
       double dxs = xyzTrk[0] - xyzVtx[0];
       double dys = xyzTrk[1] - xyzVtx[1];
       double dzs = xyzTrk[2] - xyzVtx[2];
       // RS: for large segment steps d use approximation of cicrular arc s by
       // s = 2R*asin(d/2R) = d/p asin(p) \approx d/p (p + 1/6 p^3) = d (1+1/6 p^2)
       // where R is the track radius, p = d/2R = 2C*d (C is the abs curvature)
       // Hence s^2/d^2 = (1+1/6 p^2)^2
       dst2 = dxs*dxs + dys*dys;
       if (dst2 > kWatchStep*kWatchStep) { // correct circular part for arc/segment factor
	 double crv = TMath::Abs(esd->GetC(bz0));
	 double fcarc = 1.+crv*crv*dst2/6.;
	 dst2 *= fcarc*fcarc;
       }
       dst2 += dzs*dzs;
     }
     t.StartTimeIntegral();
     t.AddTimeStep(TMath::Sqrt(dst2));
     //
     // transfer the time integral to ESD track
     esd->SetStatus(AliESDtrack::kTIME);
     Double_t times[AliPID::kSPECIESC];
     t.GetIntegratedTimes(times,AliPID::kSPECIESC); 
     esd->SetIntegratedTimes(times);
     esd->SetIntegratedLength(t.GetIntegratedLength());
     //
     if ((esd->GetStatus()&AliESDtrack::kITSin)==0) continue;

     t.SetExpQ(TMath::Max(0.8*t.GetESDtrack()->GetTPCsignal(),30.));
     ResetTrackToFollow(t);
     //
     fTrackToFollow.ResetCovariance(10.); fTrackToFollow.ResetClusters();
     if (RefitAt(AliITSRecoParam::GetrInsideITSscreen(),&fTrackToFollow,&t)) {
       if (!CorrectForTPCtoITSDeadZoneMaterial(&fTrackToFollow)) continue;
       //       fTrackToFollow.SetLabel(t.GetLabel());              // why do we neet this
       //fTrackToFollow.CookdEdx();
       CookLabel(&fTrackToFollow,0.); //For comparison only // why do we need this?
       fTrackToFollow.UpdateESDtrack(AliESDtrack::kITSout);
       //UseClusters(&fTrackToFollow);
       ntrk++;
     }
  }

  AliInfo(Form("Number of back propagated ITS tracks: %d out of %d ESD tracks",ntrk,nentr));

  fTrackingPhase="Default";

  return 0;
}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::RefitInward(AliESDEvent *event) {
  //--------------------------------------------------------------------
  // This functions refits ITS tracks using the 
  // "inward propagated" TPC tracks
  // The clusters must be loaded !
  //--------------------------------------------------------------------
  fTrackingPhase="RefitInward";

  if(AliITSReconstructor::GetRecoParam()->GetFindV0s()) AliITSV0Finder::RefitV02(event,this);

  Bool_t doExtra=AliITSReconstructor::GetRecoParam()->GetSearchForExtraClusters();
  if(!doExtra) AliDebug(2,"Do not search for extra clusters");

  Int_t nentr=event->GetNumberOfTracks();
  //  Info("RefitInward", "Number of ESD tracks: %d\n", nentr);

  // only for PlaneEff and in case of SPD (for FO studies)
  if( AliITSReconstructor::GetRecoParam()->GetComputePlaneEff() &&
      AliITSReconstructor::GetRecoParam()->GetIPlanePlaneEff()>=0 && 
      AliITSReconstructor::GetRecoParam()->GetIPlanePlaneEff()<2) {
      for (UInt_t i=0; i<AliITSPlaneEffSPD::kNModule*AliITSPlaneEffSPD::kNChip; i++) fSPDChipIntPlaneEff[i]=kFALSE;     
  }

  Int_t ntrk=0;
  for (Int_t i=0; i<nentr; i++) {
    AliESDtrack *esd=event->GetTrack(i);

    if ((esd->GetStatus()&AliESDtrack::kITSout) == 0) continue;
    if (esd->GetStatus()&AliESDtrack::kITSrefit) continue;
    if (esd->GetStatus()&AliESDtrack::kTPCout)
      if ((esd->GetStatus()&AliESDtrack::kTPCrefit)==0) continue;

    AliITStrackMI *t = new AliITStrackMI(*esd);

    t->SetExpQ(TMath::Max(0.8*t->GetESDtrack()->GetTPCsignal(),30.));
    if (!CorrectForTPCtoITSDeadZoneMaterial(t)) {
       delete t;
       continue;
    }

    ResetTrackToFollow(*t);
    fTrackToFollow.ResetClusters();

    // ITS standalone tracks
    if ((esd->GetStatus()&AliESDtrack::kTPCin)==0) {
      fTrackToFollow.ResetCovariance(10.);
      // protection for loopers that can have parameters screwed up
      if(TMath::Abs(fTrackToFollow.GetY())>1000. ||
	 TMath::Abs(fTrackToFollow.GetZ())>1000.) {
	delete t;
	continue;
      }
    }

    //Refitting...
    Bool_t pe=(AliITSReconstructor::GetRecoParam()->GetComputePlaneEff() &&
               AliITSReconstructor::GetRecoParam()->GetIPlanePlaneEff()>=0);

    AliDebug(2,Form("Refit LABEL %d  %d",t->GetLabel(),t->GetNumberOfClusters()));
    if (RefitAt(AliITSRecoParam::GetrInsideSPD1(),&fTrackToFollow,t,doExtra,pe)) {
       AliDebug(2,"  refit OK");
       fTrackToFollow.SetLabel(t->GetLabel());
       //       fTrackToFollow.CookdEdx();
       CookdEdx(&fTrackToFollow);

       CookLabel(&fTrackToFollow,0.0); //For comparison only // RS why do we need this?

       //The beam pipe
       if (CorrectForPipeMaterial(&fTrackToFollow,"inward")) {
	 fTrackToFollow.UpdateESDtrack(AliESDtrack::kITSrefit);
	 AliESDtrack  *esdTrack =fTrackToFollow.GetESDtrack();
	 //printf("                                       %d\n",esdTrack->GetITSModuleIndex(0));
	 //esdTrack->UpdateTrackParams(&fTrackToFollow,AliESDtrack::kITSrefit); //original line
	 Double_t r[3]={0.,0.,0.};
	 Double_t maxD=3.;
	 esdTrack->RelateToVertex(event->GetVertex(),GetBz(r),maxD);
	 ntrk++;
       }
    }
    delete t;
  }

  AliInfo(Form("Number of refitted tracks: %d out of %d ESD tracks",ntrk,nentr));

  fTrackingPhase="Default";

  return 0;
}
//------------------------------------------------------------------------
AliCluster *AliITStrackerMI::GetCluster(Int_t index) const {
  //--------------------------------------------------------------------
  //       Return pointer to a given cluster
  //--------------------------------------------------------------------
  Int_t l=(index & 0xf0000000) >> 28;
  Int_t c=(index & 0x0fffffff) >> 00;
  return fgLayers[l].GetCluster(c);
}
//------------------------------------------------------------------------
Bool_t AliITStrackerMI::GetTrackPoint(Int_t index, AliTrackPoint& p) const {
  //--------------------------------------------------------------------
  // Get track space point with index i
  //--------------------------------------------------------------------

  Int_t l=(index & 0xf0000000) >> 28;
  Int_t c=(index & 0x0fffffff) >> 00;
  AliITSRecPoint *cl = fgLayers[l].GetCluster(c);
  Int_t idet = cl->GetDetectorIndex();

  Float_t xyz[3];
  Float_t cov[6];
  cl->GetGlobalXYZ(xyz);
  cl->GetGlobalCov(cov);
  p.SetXYZ(xyz, cov);
  p.SetCharge(cl->GetQ());
  p.SetDriftTime(cl->GetDriftTime());
  p.SetChargeRatio(cl->GetChargeRatio());
  p.SetClusterType(cl->GetClusterType());
  AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer; 
  switch (l) {
  case 0:
    iLayer = AliGeomManager::kSPD1;
    break;
  case 1:
    iLayer = AliGeomManager::kSPD2;
    break;
  case 2:
    iLayer = AliGeomManager::kSDD1;
    break;
  case 3:
    iLayer = AliGeomManager::kSDD2;
    break;
  case 4:
    iLayer = AliGeomManager::kSSD1;
    break;
  case 5:
    iLayer = AliGeomManager::kSSD2;
    break;
  default:
    AliWarning(Form("Wrong layer index in ITS (%d) !",l));
    break;
  };
  UShort_t volid = AliGeomManager::LayerToVolUID(iLayer,idet);
  p.SetVolumeID((UShort_t)volid);
  return kTRUE;
}
//------------------------------------------------------------------------
Bool_t AliITStrackerMI::GetTrackPointTrackingError(Int_t index, 
			AliTrackPoint& p, const AliESDtrack *t) {
  //--------------------------------------------------------------------
  // Get track space point with index i
  // (assign error estimated during the tracking)
  //--------------------------------------------------------------------

  Int_t l=(index & 0xf0000000) >> 28;
  Int_t c=(index & 0x0fffffff) >> 00;
  const AliITSRecPoint *cl = fgLayers[l].GetCluster(c);
  Int_t idet = cl->GetDetectorIndex();

  const AliITSdetector &det=fgLayers[l].GetDetector(idet);

  // tgphi and tglambda of the track in tracking frame with alpha=det.GetPhi
  Float_t detxy[2];
  detxy[0] = det.GetR()*TMath::Cos(det.GetPhi());
  detxy[1] = det.GetR()*TMath::Sin(det.GetPhi());
  Double_t alpha = t->GetAlpha();
  Double_t xdetintrackframe = detxy[0]*TMath::Cos(alpha)+detxy[1]*TMath::Sin(alpha);
  Float_t phi = TMath::ASin(t->GetSnpAt(xdetintrackframe+cl->GetX(),GetBz()));
  phi += alpha-det.GetPhi();
  Float_t tgphi = TMath::Tan(phi);

  Float_t tgl = t->GetTgl(); // tgl about const along track
  Float_t expQ = TMath::Max(0.8*t->GetTPCsignal(),30.);

  Float_t errtrky,errtrkz,covyz;
  Bool_t addMisalErr=kFALSE;
  AliITSClusterParam::GetError(l,cl,tgl,tgphi,expQ,errtrky,errtrkz,covyz,addMisalErr);

  Float_t xyz[3];
  Float_t cov[6];
  cl->GetGlobalXYZ(xyz);
  //  cl->GetGlobalCov(cov);
  Float_t pos[3] = {0.,0.,0.};
  AliCluster tmpcl((UShort_t)cl->GetVolumeId(),pos[0],pos[1],pos[2],errtrky*errtrky,errtrkz*errtrkz,covyz);
  tmpcl.GetGlobalCov(cov);

  p.SetXYZ(xyz, cov);
  p.SetCharge(cl->GetQ());
  p.SetDriftTime(cl->GetDriftTime());
  p.SetChargeRatio(cl->GetChargeRatio());
  p.SetClusterType(cl->GetClusterType());

  AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer; 
  switch (l) {
  case 0:
    iLayer = AliGeomManager::kSPD1;
    break;
  case 1:
    iLayer = AliGeomManager::kSPD2;
    break;
  case 2:
    iLayer = AliGeomManager::kSDD1;
    break;
  case 3:
    iLayer = AliGeomManager::kSDD2;
    break;
  case 4:
    iLayer = AliGeomManager::kSSD1;
    break;
  case 5:
    iLayer = AliGeomManager::kSSD2;
    break;
  default:
    AliWarning(Form("Wrong layer index in ITS (%d) !",l));
    break;
  };
  UShort_t volid = AliGeomManager::LayerToVolUID(iLayer,idet);

  p.SetVolumeID((UShort_t)volid);
  return kTRUE;
}
//------------------------------------------------------------------------
void AliITStrackerMI::FollowProlongationTree(AliITStrackMI * otrack, Int_t esdindex, Bool_t constrain) 
{
  //--------------------------------------------------------------------
  // Follow prolongation tree
  //--------------------------------------------------------------------
  //
  Double_t xyzVtx[]={GetX(),GetY(),GetZ()};
  Double_t ersVtx[]={GetSigmaX(),GetSigmaY(),GetSigmaZ()};


  AliESDtrack * esd = otrack->GetESDtrack();
  if (esd->GetV0Index(0)>0) {
    // TEMPORARY SOLLUTION: map V0 indexes to point to proper track
    //                      mapping of ESD track is different as ITS track in Containers
    //                      Need something more stable
    //                      Indexes are set back again to the ESD track indexes in UpdateTPCV0
    for (Int_t i=0;i<3;i++){
      Int_t  index = esd->GetV0Index(i);
      if (index==0) break;
      AliESDv0 * vertex = fEsd->GetV0(index);
      if (vertex->GetStatus()<0) continue;     // rejected V0
      //
      if (esd->GetSign()>0) {
	vertex->SetIndex(0,esdindex);
      } else {
	vertex->SetIndex(1,esdindex);
      }
    }
  }
  TObjArray *bestarray = (TObjArray*)fBestHypothesys.At(esdindex);
  if (!bestarray){
    bestarray = new TObjArray(5);
    bestarray->SetOwner();
    fBestHypothesys.AddAt(bestarray,esdindex);
  }

  //
  //setup tree of the prolongations
  //
  const int kMaxTr = 100; //RS
  static AliITStrackMI tracks[7][kMaxTr];
  AliITStrackMI *currenttrack;
  static AliITStrackMI currenttrack1;
  static AliITStrackMI currenttrack2;  
  static AliITStrackMI backuptrack;
  Int_t ntracks[7];
  Int_t nindexes[7][kMaxTr];
  Float_t normalizedchi2[kMaxTr];
  for (Int_t ilayer=0;ilayer<6;ilayer++) ntracks[ilayer]=0;
  otrack->SetNSkipped(0);
  new (&(tracks[6][0])) AliITStrackMI(*otrack);
  ntracks[6]=1;
  for (Int_t i=0;i<7;i++) nindexes[i][0]=0;
  Int_t modstatus = 1; // found 
  Float_t xloc,zloc;
  // 
  //
  // follow prolongations
  for (Int_t ilayer=5; ilayer>=0; ilayer--) {
    AliDebug(2,Form("FollowProlongationTree: layer %d",ilayer));
    fI = ilayer;
    //
    AliITSlayer &layer=fgLayers[ilayer];
    Double_t r = layer.GetR(); 
    ntracks[ilayer]=0;
    //
    //
    Int_t nskipped=0;
    Float_t nused =0;
    for (Int_t itrack =0; itrack<ntracks[ilayer+1]; itrack++) {
      //      printf("LR %d Tr:%d NSeeds: %d\n",ilayer,itrack,ntracks[ilayer+1]);
      //set current track
      if (ntracks[ilayer]>=kMaxTr) break;  
      if (tracks[ilayer+1][nindexes[ilayer+1][itrack]].GetNSkipped()>0) nskipped++;
      if (tracks[ilayer+1][nindexes[ilayer+1][itrack]].GetNUsed()>2.) nused++;
      if (ntracks[ilayer]>15+ilayer){
	if (itrack>1&&tracks[ilayer+1][nindexes[ilayer+1][itrack]].GetNSkipped()>0 && nskipped>4+ilayer) continue;
	if (itrack>1&&tracks[ilayer+1][nindexes[ilayer+1][itrack]].GetNUsed()>2. && nused>3) continue;
      }

      new(&currenttrack1)  AliITStrackMI(tracks[ilayer+1][nindexes[ilayer+1][itrack]]);
  
      // material between SSD and SDD, SDD and SPD
      if (ilayer==3) 
	if(!CorrectForShieldMaterial(&currenttrack1,"SDD","inward")) continue;
      if (ilayer==1) 
	if(!CorrectForShieldMaterial(&currenttrack1,"SPD","inward")) continue;

      // detector number
      Double_t phi,z;
      if (!currenttrack1.GetPhiZat(r,phi,z)) continue;
      Int_t idet=layer.FindDetectorIndex(phi,z);

      Double_t trackGlobXYZ1[3];
      if (!currenttrack1.GetXYZ(trackGlobXYZ1)) continue;

      // Get the budget to the primary vertex for the current track being prolonged
      Double_t budgetToPrimVertex = 0;
      double xMSLrs[9],x2X0MSLrs[9]; // needed for ImproveKalman
      int nMSLrs = 0;
      //
      if (fUseImproveKalman) nMSLrs = GetEffectiveThicknessLbyL(xMSLrs,x2X0MSLrs);
      else budgetToPrimVertex = GetEffectiveThickness();
      //
      // check if we allow a prolongation without point
      Int_t skip = CheckSkipLayer(&currenttrack1,ilayer,idet);
      if (skip) {
	AliITStrackMI* vtrack = new (&tracks[ilayer][ntracks[ilayer]]) AliITStrackMI(currenttrack1);
	// propagate to the layer radius
	Double_t xToGo; if (!vtrack->GetLocalXat(r,xToGo)) continue;
	if(!vtrack->Propagate(xToGo)) continue;
	// apply correction for material of the current layer
	CorrectForLayerMaterial(vtrack,ilayer,trackGlobXYZ1,"inward");
	vtrack->SetNDeadZone(vtrack->GetNDeadZone()+1);
	vtrack->SetDeadZoneProbability(ilayer,1.); // no penalty for missing cluster
	vtrack->SetClIndex(ilayer,-1);
	modstatus = (skip==1 ? 3 : 4); // skipped : out in z
	if(LocalModuleCoord(ilayer,idet,vtrack,xloc,zloc)) { // local module coords
	  vtrack->SetModuleIndexInfo(ilayer,idet,modstatus,xloc,zloc);
	}
	if(constrain && AliITSReconstructor::GetRecoParam()->GetImproveWithVertex()) {
	  fUseImproveKalman ? 
	    vtrack->ImproveKalman(xyzVtx,ersVtx,xMSLrs,x2X0MSLrs,nMSLrs) : 
	    vtrack->Improve(budgetToPrimVertex,xyzVtx,ersVtx);
	}
	ntracks[ilayer]++;
	continue;
      }

      // track outside layer acceptance in z
      if (idet<0) continue;
      
      //propagate to the intersection with the detector plane
      const AliITSdetector &det=layer.GetDetector(idet);
      new(&currenttrack2)  AliITStrackMI(currenttrack1);
      if (!currenttrack1.Propagate(det.GetPhi(),det.GetR())) continue;
      if (!currenttrack2.Propagate(det.GetPhi(),det.GetR())) continue;
      currenttrack1.SetDetectorIndex(idet);
      currenttrack2.SetDetectorIndex(idet);
      if(!LocalModuleCoord(ilayer,idet,&currenttrack1,xloc,zloc)) continue; // local module coords

      //***************
      // DEFINITION OF SEARCH ROAD AND CLUSTERS SELECTION
      //
      // road in global (rphi,z) [i.e. in tracking ref. system]
      Double_t zmin,zmax,ymin,ymax;
      if (!ComputeRoad(&currenttrack1,ilayer,idet,zmin,zmax,ymin,ymax)) continue;

      // select clusters in road
      layer.SelectClusters(zmin,zmax,ymin,ymax); 
      //********************

      // Define criteria for track-cluster association
      Double_t msz = currenttrack1.GetSigmaZ2() + 
	AliITSReconstructor::GetRecoParam()->GetNSigmaZLayerForRoadZ()*
	AliITSReconstructor::GetRecoParam()->GetNSigmaZLayerForRoadZ()*
	AliITSReconstructor::GetRecoParam()->GetSigmaZ2(ilayer);
      Double_t msy = currenttrack1.GetSigmaY2() + 
	AliITSReconstructor::GetRecoParam()->GetNSigmaYLayerForRoadY()*
	AliITSReconstructor::GetRecoParam()->GetNSigmaYLayerForRoadY()*
	AliITSReconstructor::GetRecoParam()->GetSigmaY2(ilayer);
      if (constrain) {
	msz *= AliITSReconstructor::GetRecoParam()->GetNSigma2RoadZC();
	msy *= AliITSReconstructor::GetRecoParam()->GetNSigma2RoadYC(); 
      }  else {
	msz *= AliITSReconstructor::GetRecoParam()->GetNSigma2RoadZNonC();
	msy *= AliITSReconstructor::GetRecoParam()->GetNSigma2RoadYNonC(); 
      }
      msz = 1./msz; // 1/RoadZ^2
      msy = 1./msy; // 1/RoadY^2

      //
      //
      // LOOP OVER ALL POSSIBLE TRACK PROLONGATIONS ON THIS LAYER
      //
      const AliITSRecPoint *cl=0; 
      Int_t clidx=-1;
      Double_t chi2trkcl=AliITSReconstructor::GetRecoParam()->GetMaxChi2(); // init with big value
      Bool_t deadzoneSPD=kFALSE;
      currenttrack = &currenttrack1;

      // check if the road contains a dead zone 
      Bool_t noClusters = kFALSE;
      if (!layer.GetNextCluster(clidx,kTRUE)) noClusters=kTRUE;
      if (noClusters) AliDebug(2,"no clusters in road");
      Double_t dz=0.5*(zmax-zmin);
      Double_t dy=0.5*(ymax-ymin);
      Int_t dead = CheckDeadZone(&currenttrack1,ilayer,idet,dz,dy,noClusters); 
      if(dead) AliDebug(2,Form("DEAD (%d)\n",dead));
      // create a prolongation without clusters (check also if there are no clusters in the road)
      if (dead || 
	  (noClusters && 
	   AliITSReconstructor::GetRecoParam()->GetAllowProlongationWithEmptyRoad())) {
	AliITStrackMI * updatetrack = new (&tracks[ilayer][ntracks[ilayer]]) AliITStrackMI(*currenttrack);
	updatetrack->SetClIndex(ilayer,-1);
	if (dead==0) {
	  modstatus = 5; // no cls in road
	} else if (dead==1) {
	  modstatus = 7; // holes in z in SPD
	} else if (dead==2 || dead==3 || dead==4) {
	  modstatus = 2; // dead from OCDB
	}
	updatetrack->SetModuleIndexInfo(ilayer,idet,modstatus,xloc,zloc);
	// apply correction for material of the current layer
	CorrectForLayerMaterial(updatetrack,ilayer,trackGlobXYZ1,"inward");
	if (constrain) { // apply vertex constrain
	  updatetrack->SetConstrain(constrain);
	  Bool_t isPrim = kTRUE;
	  if (ilayer<4) { // check that it's close to the vertex
	    updatetrack->GetDZ(GetX(),GetY(),GetZ(),updatetrack->GetDP()); //I.B.
	    if (TMath::Abs(updatetrack->GetD(0)/(1.+ilayer)) > // y
		AliITSReconstructor::GetRecoParam()->GetMaxDZforPrimTrk() || 
		TMath::Abs(updatetrack->GetD(1)/(1.+ilayer)) > // z
		AliITSReconstructor::GetRecoParam()->GetMaxDZforPrimTrk()) isPrim=kFALSE;
	  }
	  if (isPrim && AliITSReconstructor::GetRecoParam()->GetImproveWithVertex()) {
	    fUseImproveKalman ? 
	      updatetrack->ImproveKalman(xyzVtx,ersVtx,xMSLrs,x2X0MSLrs,nMSLrs) : 
	      updatetrack->Improve(budgetToPrimVertex,xyzVtx,ersVtx);
	  }
	}
	updatetrack->SetNDeadZone(updatetrack->GetNDeadZone()+1);
	if (dead) {
	  if (dead==1) { // dead zone at z=0,+-7cm in SPD
	    updatetrack->SetDeadZoneProbability(ilayer,GetSPDDeadZoneProbability(updatetrack->GetZ(),TMath::Sqrt(updatetrack->GetSigmaZ2())));
	    deadzoneSPD=kTRUE;
	  } else if (dead==2 || dead==3) { // dead module or chip from OCDB  
	    updatetrack->SetDeadZoneProbability(ilayer,1.); 
	  } else if (dead==4) { // at least a single dead channel from OCDB  
	    updatetrack->SetDeadZoneProbability(ilayer,0.); 
	  } 
	}
	ntracks[ilayer]++;
      }

      clidx=-1;
      // loop over clusters in the road
      while ((cl=layer.GetNextCluster(clidx))!=0) { 
	if (ntracks[ilayer]>int(0.95*kMaxTr)) break; //space for skipped clusters  
	Bool_t changedet =kFALSE;  
	if (TMath::Abs(cl->GetQ())<1.e-13 && deadzoneSPD==kTRUE) continue;
	Int_t idetc=cl->GetDetectorIndex();

	if (currenttrack->GetDetectorIndex()==idetc) { // track already on the cluster's detector
	  // take into account misalignment (bring track to real detector plane)
	  Double_t xTrOrig = currenttrack->GetX();
	  if (!currenttrack->Propagate(xTrOrig+cl->GetX())) continue;
	  // a first cut on track-cluster distance
	  if ( (currenttrack->GetZ()-cl->GetZ())*(currenttrack->GetZ()-cl->GetZ())*msz + 
	       (currenttrack->GetY()-cl->GetY())*(currenttrack->GetY()-cl->GetY())*msy > 1. ) 
	    {  // cluster not associated to track
	      AliDebug(2,"not associated");
	      // MvL: added here as well
	      // bring track back to ideal detector plane
	      currenttrack->Propagate(xTrOrig);
	      continue;
	    }
	  // bring track back to ideal detector plane
	  if (!currenttrack->Propagate(xTrOrig)) continue;
	} else {                                      // have to move track to cluster's detector
	  const AliITSdetector &detc=layer.GetDetector(idetc);
	  // a first cut on track-cluster distance
	  Double_t y;
	  if (!currenttrack2.GetProlongationFast(detc.GetPhi(),detc.GetR()+cl->GetX(),y,z)) continue;
	  if ( (z-cl->GetZ())*(z-cl->GetZ())*msz + 
	       (y-cl->GetY())*(y-cl->GetY())*msy > 1. ) 
	    continue; // cluster not associated to track
	  //
	  new (&backuptrack) AliITStrackMI(currenttrack2);
	  changedet = kTRUE;
	  currenttrack =&currenttrack2;
	  if (!currenttrack->Propagate(detc.GetPhi(),detc.GetR())) {
	    new (currenttrack) AliITStrackMI(backuptrack);
	    changedet = kFALSE;
	    continue;
	  }
	  currenttrack->SetDetectorIndex(idetc);
	  // Get again the budget to the primary vertex 
	  // for the current track being prolonged, if had to change detector 
	  //budgetToPrimVertex = GetEffectiveThickness();// not needed at the moment because anyway we take a mean material for this correction
	}

	// calculate track-clusters chi2
	chi2trkcl = GetPredictedChi2MI(currenttrack,cl,ilayer); 
	// chi2 cut
	AliDebug(2,Form("chi2 %f max %f",chi2trkcl,AliITSReconstructor::GetRecoParam()->GetMaxChi2s(ilayer)));
	if (chi2trkcl < AliITSReconstructor::GetRecoParam()->GetMaxChi2s(ilayer)) {
	  if (TMath::Abs(cl->GetQ())<1.e-13) deadzoneSPD=kTRUE; // only 1 prolongation with virtual cluster	  
	  if (ntracks[ilayer]>=kMaxTr) continue;
	  AliITStrackMI * updatetrack = new (&tracks[ilayer][ntracks[ilayer]]) AliITStrackMI(*currenttrack);
	  updatetrack->SetClIndex(ilayer,-1);
	  if (changedet) new (&currenttrack2) AliITStrackMI(backuptrack);

	  if (TMath::Abs(cl->GetQ())>1.e-13) { // real cluster
	    if (!UpdateMI(updatetrack,cl,chi2trkcl,(ilayer<<28)+clidx)) {
	      AliDebug(2,"update failed");
	      continue;
	    } 
	    updatetrack->SetSampledEdx(cl->GetQ(),ilayer-2); 
	    modstatus = 1; // found
	  } else {             // virtual cluster in dead zone
	    updatetrack->SetNDeadZone(updatetrack->GetNDeadZone()+1);
	    updatetrack->SetDeadZoneProbability(ilayer,GetSPDDeadZoneProbability(updatetrack->GetZ(),TMath::Sqrt(updatetrack->GetSigmaZ2())));
	    modstatus = 7; // holes in z in SPD
	  }

	  if (changedet) {
	    Float_t xlocnewdet,zlocnewdet;
	    if(LocalModuleCoord(ilayer,idet,updatetrack,xlocnewdet,zlocnewdet)) { // local module coords
	      updatetrack->SetModuleIndexInfo(ilayer,idet,modstatus,xlocnewdet,zlocnewdet);
	    }
	  } else {
	    updatetrack->SetModuleIndexInfo(ilayer,idet,modstatus,xloc,zloc);
	  }
	  if (cl->IsUsed()) updatetrack->IncrementNUsed();

	  // apply correction for material of the current layer
	  CorrectForLayerMaterial(updatetrack,ilayer,trackGlobXYZ1,"inward");

	  if (constrain) { // apply vertex constrain
	    updatetrack->SetConstrain(constrain);
	    Bool_t isPrim = kTRUE;
	    if (ilayer<4) { // check that it's close to the vertex
              updatetrack->GetDZ(GetX(),GetY(),GetZ(),updatetrack->GetDP()); //I.B.
	      if (TMath::Abs(updatetrack->GetD(0)/(1.+ilayer)) > // y
		  AliITSReconstructor::GetRecoParam()->GetMaxDZforPrimTrk() || 
		  TMath::Abs(updatetrack->GetD(1)/(1.+ilayer)) > // z
		  AliITSReconstructor::GetRecoParam()->GetMaxDZforPrimTrk()) isPrim=kFALSE;
	    }
	    if (isPrim && AliITSReconstructor::GetRecoParam()->GetImproveWithVertex()) {
	      fUseImproveKalman ? 
		updatetrack->ImproveKalman(xyzVtx,ersVtx,xMSLrs,x2X0MSLrs,nMSLrs) : 
		updatetrack->Improve(budgetToPrimVertex,xyzVtx,ersVtx);
	    }
	  } //apply vertex constrain	  	  
	  ntracks[ilayer]++;
	}  // create new hypothesis
	else {
	  AliDebug(2,"chi2 too large");
	}

      } // loop over possible prolongations 
     
      // allow one prolongation without clusters
      if (constrain && itrack<=1 && TMath::Abs(currenttrack1.GetNSkipped())<1.e-13 && deadzoneSPD==kFALSE && ntracks[ilayer]<kMaxTr) {
	AliITStrackMI* vtrack = new (&tracks[ilayer][ntracks[ilayer]]) AliITStrackMI(currenttrack1);
	// apply correction for material of the current layer
	CorrectForLayerMaterial(vtrack,ilayer,trackGlobXYZ1,"inward");
	vtrack->SetClIndex(ilayer,-1);
	modstatus = 3; // skipped 
	vtrack->SetModuleIndexInfo(ilayer,idet,modstatus,xloc,zloc);
	if(AliITSReconstructor::GetRecoParam()->GetImproveWithVertex()) {
	  fUseImproveKalman ? 
	    vtrack->ImproveKalman(xyzVtx,ersVtx,xMSLrs,x2X0MSLrs,nMSLrs) : 
	    vtrack->Improve(budgetToPrimVertex,xyzVtx,ersVtx);
	}
	vtrack->IncrementNSkipped();
	ntracks[ilayer]++;
      }
      

    } // loop over tracks in layer ilayer+1

    //loop over track candidates for the current layer
    //
    //
    Int_t accepted=0;
    
    Int_t golden=0;
    for (Int_t itrack=0;itrack<ntracks[ilayer];itrack++){
      normalizedchi2[itrack] = NormalizedChi2(&tracks[ilayer][itrack],ilayer); 
      if (normalizedchi2[itrack] < 
	  AliITSReconstructor::GetRecoParam()->GetMaxNormChi2ForGolden(ilayer)) golden++;
      if (ilayer>4) {
	accepted++;
      } else {
	if (constrain) { // constrain
	  if (normalizedchi2[itrack]<AliITSReconstructor::GetRecoParam()->GetMaxNormChi2C(ilayer)+1) 
	    accepted++;
	} else {        // !constrain
	  if (normalizedchi2[itrack]<AliITSReconstructor::GetRecoParam()->GetMaxNormChi2NonC(ilayer)+1) 
	    accepted++;
	}
      }
    }
    // sort tracks by increasing normalized chi2
    TMath::Sort(ntracks[ilayer],normalizedchi2,nindexes[ilayer],kFALSE); 
    ntracks[ilayer] = TMath::Min(accepted,7+2*ilayer);
    if (ntracks[ilayer]<golden+2+ilayer) ntracks[ilayer]=TMath::Min(golden+2+ilayer,accepted);
    //    if (ntracks[ilayer]>90) ntracks[ilayer]=90; 
    if (ntracks[ilayer]>int(kMaxTr*0.9)) ntracks[ilayer]=int(kMaxTr*0.9); 
  } // end loop over layers


  //
  // Now select tracks to be kept
  //
  Int_t max = constrain ? 20 : 5;

  // tracks that reach layer 0 (SPD inner)
  for (Int_t i=0; i<TMath::Min(max,ntracks[0]); i++) {
    AliITStrackMI & track= tracks[0][nindexes[0][i]];
    if (track.GetNumberOfClusters()<2) continue;
    if (!constrain && track.GetNormChi2(0) >
	AliITSReconstructor::GetRecoParam()->GetMaxNormChi2NonCForHypothesis()) {
      continue;
    }
    AddTrackHypothesys(new AliITStrackMI(track), esdindex);
  }

  // tracks that reach layer 1 (SPD outer)
  for (Int_t i=0;i<TMath::Min(2,ntracks[1]);i++) {
    AliITStrackMI & track= tracks[1][nindexes[1][i]];
    if (track.GetNumberOfClusters()<4) continue;
    if (!constrain && track.GetNormChi2(1) >
	AliITSReconstructor::GetRecoParam()->GetMaxNormChi2NonCForHypothesis()) continue;
    if (constrain) track.IncrementNSkipped();
    if (!constrain) {
      track.SetD(0,track.GetD(GetX(),GetY()));   
      track.SetNSkipped(track.GetNSkipped()+4./(4.+8.*TMath::Abs(track.GetD(0))));
      if (track.GetNumberOfClusters()+track.GetNDeadZone()+track.GetNSkipped()>6) {
	track.SetNSkipped(6-track.GetNumberOfClusters()+track.GetNDeadZone());
      }
    }
    AddTrackHypothesys(new AliITStrackMI(track), esdindex);
  }

  // tracks that reach layer 2 (SDD inner), only during non-constrained pass
  if (!constrain){  
    for (Int_t i=0;i<TMath::Min(2,ntracks[2]);i++) {
      AliITStrackMI & track= tracks[2][nindexes[2][i]];
      if (track.GetNumberOfClusters()<3) continue;
      if (track.GetNormChi2(2) >
	  AliITSReconstructor::GetRecoParam()->GetMaxNormChi2NonCForHypothesis()) continue;
      track.SetD(0,track.GetD(GetX(),GetY()));
      track.SetNSkipped(track.GetNSkipped()+7./(7.+8.*TMath::Abs(track.GetD(0))));
      if (track.GetNumberOfClusters()+track.GetNDeadZone()+track.GetNSkipped()>6) {
	track.SetNSkipped(6-track.GetNumberOfClusters()+track.GetNDeadZone());
      }
      AddTrackHypothesys(new AliITStrackMI(track), esdindex);
    }
  }
  
  if (!constrain) {
    //
    // register best track of each layer - important for V0 finder
    //
    for (Int_t ilayer=0;ilayer<5;ilayer++){
      if (ntracks[ilayer]==0) continue;
      AliITStrackMI & track= tracks[ilayer][nindexes[ilayer][0]];
      if (track.GetNumberOfClusters()<1) continue;
      CookLabel(&track,0);
      bestarray->AddAt(new AliITStrackMI(track),ilayer);
    }
  }
  //
  // update TPC V0 information
  //
  if (otrack->GetESDtrack()->GetV0Index(0)>0){    
    Float_t fprimvertex[3]={static_cast<Float_t>(GetX()),static_cast<Float_t>(GetY()),static_cast<Float_t>(GetZ())};
    for (Int_t i=0;i<3;i++){
      Int_t  index = otrack->GetESDtrack()->GetV0Index(i); 
      if (index==0) break;
      AliV0 *vertex = (AliV0*)fEsd->GetV0(index);
      if (vertex->GetStatus()<0) continue;     // rejected V0
      //
      if (otrack->GetSign()>0) {
	vertex->SetIndex(0,esdindex);
      }
      else{
	vertex->SetIndex(1,esdindex);
      }
      //find nearest layer with track info
      Double_t xrp[3]; vertex->GetXYZ(xrp[0],xrp[1],xrp[2]);  //I.B.
      Int_t nearestold  = GetNearestLayer(xrp);               //I.B.
      Int_t nearest     = nearestold; 
      for (Int_t ilayer =nearest;ilayer<7;ilayer++){
	if (ntracks[nearest]==0){
	  nearest = ilayer;
	}
      }
      //
      AliITStrackMI & track= tracks[nearest][nindexes[nearest][0]];
      if (nearestold<5&&nearest<5){
	Bool_t accept = track.GetNormChi2(nearest)<10; 
	if (accept){
	  if (track.GetSign()>0) {
	    vertex->SetParamP(track);
	    vertex->Update(fprimvertex);
	    //vertex->SetIndex(0,track.fESDtrack->GetID()); 
	    if (track.GetNumberOfClusters()>2) AddTrackHypothesys(new AliITStrackMI(track), esdindex);
	  }else{
	    vertex->SetParamN(track);
	    vertex->Update(fprimvertex);
	    //vertex->SetIndex(1,track.fESDtrack->GetID());
	    if (track.GetNumberOfClusters()>2) AddTrackHypothesys(new AliITStrackMI(track), esdindex);
	  }
	  vertex->SetStatus(vertex->GetStatus()+1);
	}else{
	  //vertex->SetStatus(-2);  // reject V0  - not enough clusters
	}
      }
    }
  } 
  
}
//------------------------------------------------------------------------
AliITStrackerMI::AliITSlayer & AliITStrackerMI::GetLayer(Int_t layer) const
{
  //--------------------------------------------------------------------
  //
  //
  return fgLayers[layer];
}
//------------------------------------------------------------------------
AliITStrackerMI::AliITSlayer::AliITSlayer():
fR(0),
fPhiOffset(0),
fNladders(0),
fZOffset(0),
fNdetectors(0),
fDetectors(0),
fN(0),
fDy5(0),
fDy10(0),
fDy20(0),
fClustersCs(0),
fClusterIndexCs(0),
fYcs(0),
fZcs(0),
fNcs(0),
fCurrentSlice(-1),
fZmin(0),
fZmax(0),
fYmin(0),
fYmax(0),
fI(0),
fImax(0),
fSkip(0),
fAccepted(0),
fRoad(0),
fMaxSigmaClY(0),
fMaxSigmaClZ(0),
fNMaxSigmaCl(3)
{
  //--------------------------------------------------------------------
  //default AliITSlayer constructor
  //--------------------------------------------------------------------
  for (Int_t i=0; i<AliITSRecoParam::GetMaxClusterPerLayer(); i++) {
    fClusterWeight[i]=0;
    fClusterTracks[0][i]=-1;
    fClusterTracks[1][i]=-1;
    fClusterTracks[2][i]=-1;    
    fClusterTracks[3][i]=-1;
    fY[i]=0;    
    fZ[i]=0;    
  }
  fYB[0]=0;
  fYB[1]=0;

  for (Int_t j=0; j<AliITSRecoParam::kMaxClusterPerLayer5; j++) {
    for (Int_t j1=0; j1<6; j1++) {
      fClusters5[j1][j]=0;
      fClusterIndex5[j1][j]=-1;
      fY5[j1][j]=0;
      fZ5[j1][j]=0;
      fN5[j1]=0;
      fBy5[j1][0]=0;
      fBy5[j1][1]=0;
    }
  }

  for (Int_t j=0; j<AliITSRecoParam::kMaxClusterPerLayer10; j++) {
    for (Int_t j1=0; j1<11; j1++) {
      fClusters10[j1][j]=0;
      fClusterIndex10[j1][j]=-1;
      fY10[j1][j]=0;
      fZ10[j1][j]=0;
      fN10[j1]=0;
      fBy10[j1][0]=0;
      fBy10[j1][1]=0;
    }
  }

  for (Int_t j=0; j<AliITSRecoParam::kMaxClusterPerLayer20; j++) {
    for (Int_t j1=0; j1<21; j1++) {
      fClusters20[j1][j]=0;
      fClusterIndex20[j1][j]=-1;
      fY20[j1][j]=0;
      fZ20[j1][j]=0;
      fN20[j1]=0;
      fBy20[j1][0]=0;
      fBy20[j1][1]=0;
    }
  }
  for(Int_t i=0;i<AliITSRecoParam::kMaxClusterPerLayer;i++){
    fClusters[i]=NULL;
    fClusterIndex[i]=0;
  }
}
//------------------------------------------------------------------------
AliITStrackerMI::AliITSlayer::
AliITSlayer(Double_t r,Double_t p,Double_t z,Int_t nl,Int_t nd):
fR(r),
fPhiOffset(p),
fNladders(nl),
fZOffset(z),
fNdetectors(nd),
fDetectors(0),
fN(0),
fDy5(0),
fDy10(0),
fDy20(0),
fClustersCs(0),
fClusterIndexCs(0),
fYcs(0),
fZcs(0),
fNcs(0),
fCurrentSlice(-1),
fZmin(0),
fZmax(0),
fYmin(0),
fYmax(0),
fI(0),
fImax(0),
fSkip(0),
fAccepted(0),
fRoad(0),
fMaxSigmaClY(0),
fMaxSigmaClZ(0),
fNMaxSigmaCl(3) {
  //--------------------------------------------------------------------
  //main AliITSlayer constructor
  //--------------------------------------------------------------------
  fDetectors=new AliITSdetector[fNladders*fNdetectors];
  fRoad=2*fR*TMath::Sqrt(TMath::Pi()/1.);//assuming that there's only one cluster

  for (Int_t i=0; i<AliITSRecoParam::GetMaxClusterPerLayer(); i++) {
    fClusterWeight[i]=0;
    fClusterTracks[0][i]=-1;
    fClusterTracks[1][i]=-1;
    fClusterTracks[2][i]=-1;    
    fClusterTracks[3][i]=-1;    
    fY[i]=0;    
    fZ[i]=0;    
  }

  fYB[0]=0;
  fYB[1]=0;

 for (Int_t j=0; j<AliITSRecoParam::kMaxClusterPerLayer5; j++) {
    for (Int_t j1=0; j1<6; j1++) {
      fClusters5[j1][j]=0;
      fClusterIndex5[j1][j]=-1;
      fY5[j1][j]=0;
      fZ5[j1][j]=0;
      fN5[j1]=0;
      fBy5[j1][0]=0;
      fBy5[j1][1]=0;
    }
  }

  for (Int_t j=0; j<AliITSRecoParam::kMaxClusterPerLayer10; j++) {
    for (Int_t j1=0; j1<11; j1++) {
      fClusters10[j1][j]=0;
      fClusterIndex10[j1][j]=-1;
      fY10[j1][j]=0;
      fZ10[j1][j]=0;
      fN10[j1]=0;
      fBy10[j1][0]=0;
      fBy10[j1][1]=0;
    }
  }

  for (Int_t j=0; j<AliITSRecoParam::kMaxClusterPerLayer20; j++) {
    for (Int_t j1=0; j1<21; j1++) {
      fClusters20[j1][j]=0;
      fClusterIndex20[j1][j]=-1;
      fY20[j1][j]=0;
      fZ20[j1][j]=0;
      fN20[j1]=0;
      fBy20[j1][0]=0;
      fBy20[j1][1]=0;
    }
  }
  for(Int_t i=0;i<AliITSRecoParam::kMaxClusterPerLayer;i++){
    fClusters[i]=NULL;
    fClusterIndex[i]=0;
  }
}
/*
//------------------------------------------------------------------------
AliITStrackerMI::AliITSlayer::AliITSlayer(const AliITSlayer& layer):
fR(layer.fR),
fPhiOffset(layer.fPhiOffset),
fNladders(layer.fNladders),
fZOffset(layer.fZOffset),
fNdetectors(layer.fNdetectors),
fDetectors(layer.fDetectors),
fN(layer.fN),
fDy5(layer.fDy5),
fDy10(layer.fDy10),
fDy20(layer.fDy20),
fClustersCs(layer.fClustersCs),
fClusterIndexCs(layer.fClusterIndexCs),
fYcs(layer.fYcs),
fZcs(layer.fZcs),
fNcs(layer.fNcs),
fCurrentSlice(layer.fCurrentSlice),
fZmin(layer.fZmin),
fZmax(layer.fZmax),
fYmin(layer.fYmin),
fYmax(layer.fYmax),
fI(layer.fI),
fImax(layer.fImax),
fSkip(layer.fSkip),
fAccepted(layer.fAccepted),
fRoad(layer.fRoad),
fMaxSigmaClY(layer.fMaxSigmaClY),
fMaxSigmaClZ(layer.fMaxSigmaClZ),
fNMaxSigmaCl(layer.fNMaxSigmaCl)
{
  //Copy constructor
}
*/
//------------------------------------------------------------------------
AliITStrackerMI::AliITSlayer::~AliITSlayer() {
  //--------------------------------------------------------------------
  // AliITSlayer destructor
  //--------------------------------------------------------------------
  delete [] fDetectors;
  for (Int_t i=0; i<fN; i++) delete fClusters[i];
  for (Int_t i=0; i<AliITSRecoParam::GetMaxClusterPerLayer(); i++) {
    fClusterWeight[i]=0;
    fClusterTracks[0][i]=-1;
    fClusterTracks[1][i]=-1;
    fClusterTracks[2][i]=-1;    
    fClusterTracks[3][i]=-1;    
  }
}
//------------------------------------------------------------------------
void AliITStrackerMI::AliITSlayer::ResetClusters() {
  //--------------------------------------------------------------------
  // This function removes loaded clusters
  //--------------------------------------------------------------------
  for (Int_t i=0; i<fN; i++) delete fClusters[i];
  for (Int_t i=0; i<AliITSRecoParam::GetMaxClusterPerLayer(); i++){
    fClusterWeight[i]=0;
    fClusterTracks[0][i]=-1;
    fClusterTracks[1][i]=-1;
    fClusterTracks[2][i]=-1;    
    fClusterTracks[3][i]=-1;  
  }
  
  fN=0;
  fI=0;
}
//------------------------------------------------------------------------
void AliITStrackerMI::AliITSlayer::ResetWeights() {
  //--------------------------------------------------------------------
  // This function reset weights of the clusters
  //--------------------------------------------------------------------
  for (Int_t i=0; i<AliITSRecoParam::GetMaxClusterPerLayer(); i++) {
    fClusterWeight[i]=0;
    fClusterTracks[0][i]=-1;
    fClusterTracks[1][i]=-1;
    fClusterTracks[2][i]=-1;    
    fClusterTracks[3][i]=-1;  
  }
  for (Int_t i=0; i<fN;i++) {
    AliITSRecPoint * cl = (AliITSRecPoint*)GetCluster(i);
    if (cl&&cl->IsUsed()) cl->Use();
  }

}
//------------------------------------------------------------------------
void AliITStrackerMI::AliITSlayer::ResetRoad() {
  //--------------------------------------------------------------------
  // This function calculates the road defined by the cluster density
  //--------------------------------------------------------------------
  Int_t n=0;
  for (Int_t i=0; i<fN; i++) {
     if (TMath::Abs(fClusters[i]->GetZ())<fR) n++;
  }
  if (n>1) fRoad=2*fR*TMath::Sqrt(TMath::Pi()/n);
}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::AliITSlayer::InsertCluster(AliITSRecPoint *cl) {
  //--------------------------------------------------------------------
  //This function adds a cluster to this layer
  //--------------------------------------------------------------------
  if (fN==AliITSRecoParam::GetMaxClusterPerLayer()) {
    return 1;
  }
  fCurrentSlice=-1;
  fClusters[fN]=cl;
  fN++;
  AliITSdetector &det=GetDetector(cl->GetDetectorIndex());    
  //AD
  Double_t nSigmaY=fNMaxSigmaCl*TMath::Sqrt(cl->GetSigmaY2());
  Double_t nSigmaZ=fNMaxSigmaCl*TMath::Sqrt(cl->GetSigmaZ2()); 
  if (cl->GetY()-nSigmaY<det.GetYmin()) det.SetYmin(cl->GetY()-nSigmaY);
  if (cl->GetY()+nSigmaY>det.GetYmax()) det.SetYmax(cl->GetY()+nSigmaY);
  if (cl->GetZ()-nSigmaZ<det.GetZmin()) det.SetZmin(cl->GetZ()-nSigmaZ);
  if (cl->GetZ()+nSigmaZ>det.GetZmax()) det.SetZmax(cl->GetZ()+nSigmaZ);
  //AD		     
  /*
  if (cl->GetY()<det.GetYmin()) det.SetYmin(cl->GetY());
  if (cl->GetY()>det.GetYmax()) det.SetYmax(cl->GetY());
  if (cl->GetZ()<det.GetZmin()) det.SetZmin(cl->GetZ());
  if (cl->GetZ()>det.GetZmax()) det.SetZmax(cl->GetZ());
  */		     
  return 0;
}
//------------------------------------------------------------------------
void  AliITStrackerMI::AliITSlayer::SortClusters()
{
  //
  //sort clusters
  //
  AliITSRecPoint **clusters = new AliITSRecPoint*[fN];
  Float_t *z                = new Float_t[fN];
  Int_t   * index           = new Int_t[fN];
  //
  fMaxSigmaClY=0.; //AD
  fMaxSigmaClZ=0.; //AD

  for (Int_t i=0;i<fN;i++){
    z[i] = fClusters[i]->GetZ();
    // save largest errors in y and z for this layer
    fMaxSigmaClY=TMath::Max(fMaxSigmaClY,TMath::Sqrt(fClusters[i]->GetSigmaY2()));
    fMaxSigmaClZ=TMath::Max(fMaxSigmaClZ,TMath::Sqrt(fClusters[i]->GetSigmaZ2()));
  }
  TMath::Sort(fN,z,index,kFALSE);
  for (Int_t i=0;i<fN;i++){
    clusters[i] = fClusters[index[i]];
  }
  //
  for (Int_t i=0;i<fN;i++){
    fClusters[i] = clusters[i];
    fZ[i]        = fClusters[i]->GetZ();
    AliITSdetector &det=GetDetector(fClusters[i]->GetDetectorIndex());    
    Double_t y=fR*det.GetPhi() + fClusters[i]->GetY();
    if (y>2.*fR*TMath::Pi()) y -= 2.*fR*TMath::Pi();
    fY[i] = y;
  }
  delete[] index;
  delete[] z;
  delete[] clusters;
  //

  fYB[0]=10000000;
  fYB[1]=-10000000;
  for (Int_t i=0;i<fN;i++){
    if (fY[i]<fYB[0]) fYB[0]=fY[i];
    if (fY[i]>fYB[1]) fYB[1]=fY[i];
    fClusterIndex[i] = i;
  }
  //
  // fill slices
  fDy5 = (fYB[1]-fYB[0])/5.;
  fDy10 = (fYB[1]-fYB[0])/10.;
  fDy20 = (fYB[1]-fYB[0])/20.;
  for (Int_t i=0;i<6;i++)  fN5[i] =0;  
  for (Int_t i=0;i<11;i++) fN10[i]=0;  
  for (Int_t i=0;i<21;i++) fN20[i]=0;
  //  
  for (Int_t i=0;i<6;i++) {fBy5[i][0] =  fYB[0]+(i-0.75)*fDy5; fBy5[i][1] =  fYB[0]+(i+0.75)*fDy5;}
  for (Int_t i=0;i<11;i++) {fBy10[i][0] =  fYB[0]+(i-0.75)*fDy10; fBy10[i][1] =  fYB[0]+(i+0.75)*fDy10;} 
  for (Int_t i=0;i<21;i++) {fBy20[i][0] =  fYB[0]+(i-0.75)*fDy20; fBy20[i][1] =  fYB[0]+(i+0.75)*fDy20;}
  //
  //
  for (Int_t i=0;i<fN;i++)
    for (Int_t irot=-1;irot<=1;irot++){
      Float_t curY = fY[i]+irot*TMath::TwoPi()*fR; 
      // slice 5
      for (Int_t slice=0; slice<6;slice++){
	if (fBy5[slice][0]<curY && curY<fBy5[slice][1]&&fN5[slice]<AliITSRecoParam::GetMaxClusterPerLayer5()){
	  fClusters5[slice][fN5[slice]] = fClusters[i];
	  fY5[slice][fN5[slice]] = curY;
	  fZ5[slice][fN5[slice]] = fZ[i];
	  fClusterIndex5[slice][fN5[slice]]=i;
	  fN5[slice]++;
	}
      }
      // slice 10
      for (Int_t slice=0; slice<11;slice++){
	if (fBy10[slice][0]<curY && curY<fBy10[slice][1]&&fN10[slice]<AliITSRecoParam::GetMaxClusterPerLayer10()){
	  fClusters10[slice][fN10[slice]] = fClusters[i];
	  fY10[slice][fN10[slice]] = curY;
	  fZ10[slice][fN10[slice]] = fZ[i];
	  fClusterIndex10[slice][fN10[slice]]=i;
	  fN10[slice]++;
	}
      }
      // slice 20
      for (Int_t slice=0; slice<21;slice++){
	if (fBy20[slice][0]<curY && curY<fBy20[slice][1]&&fN20[slice]<AliITSRecoParam::GetMaxClusterPerLayer20()){
	  fClusters20[slice][fN20[slice]] = fClusters[i];
	  fY20[slice][fN20[slice]] = curY;
	  fZ20[slice][fN20[slice]] = fZ[i];
	  fClusterIndex20[slice][fN20[slice]]=i;
	  fN20[slice]++;
	}
      }      
    }

  //
  // consistency check
  //
  for (Int_t i=0;i<fN-1;i++){
    if (fZ[i]>fZ[i+1]){
      printf("Bug\n");
    }
  }
  //
  for (Int_t slice=0;slice<21;slice++)
  for (Int_t i=0;i<fN20[slice]-1;i++){
    if (fZ20[slice][i]>fZ20[slice][i+1]){
      printf("Bug\n");
    }
  }


}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::AliITSlayer::FindClusterIndex(Float_t z) const {
  //--------------------------------------------------------------------
  // This function returns the index of the nearest cluster 
  //--------------------------------------------------------------------
  Int_t ncl=0;
  const Float_t *zcl;  
  if (fCurrentSlice<0) {
    ncl = fN;
    zcl   = fZ;
  }
  else{
    ncl   = fNcs;
    zcl   = fZcs;;
  }
  
  if (ncl==0) return 0;
  Int_t b=0, e=ncl-1, m=(b+e)/2;
  for (; b<e; m=(b+e)/2) {
    //    if (z > fClusters[m]->GetZ()) b=m+1;
    if (z > zcl[m]) b=m+1;
    else e=m; 
  }
  return m;
}
//------------------------------------------------------------------------
Bool_t AliITStrackerMI::ComputeRoad(AliITStrackMI* track,Int_t ilayer,Int_t idet,Double_t &zmin,Double_t &zmax,Double_t &ymin,Double_t &ymax) const {
  //--------------------------------------------------------------------
  // This function computes the rectangular road for this track
  //--------------------------------------------------------------------


  AliITSdetector &det = fgLayers[ilayer].GetDetector(idet);
  // take into account the misalignment: propagate track to misaligned detector plane
  if (!track->Propagate(det.GetPhi(),det.GetRmisal())) return kFALSE;

  Double_t dz=AliITSReconstructor::GetRecoParam()->GetNSigmaRoadZ()*
                    TMath::Sqrt(track->GetSigmaZ2() + 
		    AliITSReconstructor::GetRecoParam()->GetNSigmaZLayerForRoadZ()*
		    AliITSReconstructor::GetRecoParam()->GetNSigmaZLayerForRoadZ()*
		    AliITSReconstructor::GetRecoParam()->GetSigmaZ2(ilayer));
  Double_t dy=AliITSReconstructor::GetRecoParam()->GetNSigmaRoadY()*
                    TMath::Sqrt(track->GetSigmaY2() + 
		    AliITSReconstructor::GetRecoParam()->GetNSigmaYLayerForRoadY()*
		    AliITSReconstructor::GetRecoParam()->GetNSigmaYLayerForRoadY()*
		    AliITSReconstructor::GetRecoParam()->GetSigmaY2(ilayer));
      
  // track at boundary between detectors, enlarge road
  Double_t boundaryWidth=AliITSRecoParam::GetBoundaryWidth();
  if ( (track->GetY()-dy < det.GetYmin()+boundaryWidth) || 
       (track->GetY()+dy > det.GetYmax()-boundaryWidth) || 
       (track->GetZ()-dz < det.GetZmin()+boundaryWidth) ||
       (track->GetZ()+dz > det.GetZmax()-boundaryWidth) ) {
    Float_t tgl = TMath::Abs(track->GetTgl());
    if (tgl > 1.) tgl=1.;
    Double_t deltaXNeighbDets=AliITSRecoParam::GetDeltaXNeighbDets();
    dz = TMath::Sqrt(dz*dz+deltaXNeighbDets*deltaXNeighbDets*tgl*tgl);
    Float_t snp = TMath::Abs(track->GetSnp());
    if (snp > AliITSReconstructor::GetRecoParam()->GetMaxSnp()) return kFALSE;
    dy = TMath::Sqrt(dy*dy+deltaXNeighbDets*deltaXNeighbDets*snp*snp);
  } // boundary
  
  // add to the road a term (up to 2-3 mm) to deal with misalignments
  dy = TMath::Sqrt(dy*dy + AliITSReconstructor::GetRecoParam()->GetRoadMisal()*AliITSReconstructor::GetRecoParam()->GetRoadMisal());
  dz = TMath::Sqrt(dz*dz + AliITSReconstructor::GetRecoParam()->GetRoadMisal()*AliITSReconstructor::GetRecoParam()->GetRoadMisal());

  Double_t r = fgLayers[ilayer].GetR();
  zmin = track->GetZ() - dz; 
  zmax = track->GetZ() + dz;
  ymin = track->GetY() + r*det.GetPhi() - dy;
  ymax = track->GetY() + r*det.GetPhi() + dy;

  // bring track back to idead detector plane
  if (!track->Propagate(det.GetPhi(),det.GetR())) return kFALSE;

  return kTRUE;
}
//------------------------------------------------------------------------
void AliITStrackerMI::AliITSlayer::
SelectClusters(Double_t zmin,Double_t zmax,Double_t ymin, Double_t ymax) {
  //--------------------------------------------------------------------
  // This function sets the "window"
  //--------------------------------------------------------------------
 
  Double_t circle=2*TMath::Pi()*fR;
  fYmin = ymin; 
  fYmax = ymax;
  fZmin = zmin;
  fZmax = zmax;
  // AD
  // enlarge road in y by maximum cluster error on this layer (3 sigma)
  fYmin -= fNMaxSigmaCl*fMaxSigmaClY;
  fYmax += fNMaxSigmaCl*fMaxSigmaClY;
  fZmin -= fNMaxSigmaCl*fMaxSigmaClZ;
  fZmax += fNMaxSigmaCl*fMaxSigmaClZ;

  Float_t ymiddle = (fYmin+fYmax)*0.5;
  if (ymiddle<fYB[0]) {
    fYmin+=circle; fYmax+=circle; ymiddle+=circle;
  } else if (ymiddle>fYB[1]) {
    fYmin-=circle; fYmax-=circle; ymiddle-=circle;
  }
  
  //
  fCurrentSlice =-1;
  // defualt take all
  fClustersCs = fClusters;
  fClusterIndexCs = fClusterIndex;
  fYcs  = fY;
  fZcs  = fZ;
  fNcs  = fN;
  //
  //is in 20 slice?
  if (fCurrentSlice<0&&TMath::Abs(fYmax-fYmin)<1.49*fDy20){
    Int_t slice = int(0.5+(ymiddle-fYB[0])/fDy20);
    if (slice<0) slice=0;
    if (slice>20) slice=20;
    Bool_t isOK = (fYmin>fBy20[slice][0]&&fYmax<fBy20[slice][1]);
    if (isOK) {
      fCurrentSlice=slice;
      fClustersCs = fClusters20[fCurrentSlice];
      fClusterIndexCs = fClusterIndex20[fCurrentSlice];
      fYcs  = fY20[fCurrentSlice];
      fZcs  = fZ20[fCurrentSlice];
      fNcs  = fN20[fCurrentSlice];
    }
  }  
  //
  //is in 10 slice?
  if (fCurrentSlice<0&&TMath::Abs(fYmax-fYmin)<1.49*fDy10){
    Int_t slice = int(0.5+(ymiddle-fYB[0])/fDy10);
    if (slice<0) slice=0;
    if (slice>10) slice=10;
    Bool_t isOK = (fYmin>fBy10[slice][0]&&fYmax<fBy10[slice][1]);
    if (isOK) {
      fCurrentSlice=slice;
      fClustersCs = fClusters10[fCurrentSlice];
      fClusterIndexCs = fClusterIndex10[fCurrentSlice];
      fYcs  = fY10[fCurrentSlice];
      fZcs  = fZ10[fCurrentSlice];
      fNcs  = fN10[fCurrentSlice];
    }
  }  
  //
  //is in 5 slice?
  if (fCurrentSlice<0&&TMath::Abs(fYmax-fYmin)<1.49*fDy5){
    Int_t slice = int(0.5+(ymiddle-fYB[0])/fDy5);
    if (slice<0) slice=0;
    if (slice>5) slice=5;
    Bool_t isOK = (fYmin>fBy5[slice][0]&&fYmax<fBy5[slice][1]);
    if (isOK) {
      fCurrentSlice=slice;
      fClustersCs = fClusters5[fCurrentSlice];
      fClusterIndexCs = fClusterIndex5[fCurrentSlice];
      fYcs  = fY5[fCurrentSlice];
      fZcs  = fZ5[fCurrentSlice];
      fNcs  = fN5[fCurrentSlice];
    }
  }  
  //  
  fI        = FindClusterIndex(fZmin); 
  fImax     = TMath::Min(FindClusterIndex(fZmax)+1,fNcs);
  fSkip     = 0;
  fAccepted = 0;

  return;
}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::AliITSlayer::
FindDetectorIndex(Double_t phi, Double_t z) const {
  //--------------------------------------------------------------------
  //This function finds the detector crossed by the track
  //--------------------------------------------------------------------
  Double_t dphi;
  if (fZOffset<0)            // old geometry
    dphi = -(phi-fPhiOffset);
  else                       // new geometry
    dphi = phi-fPhiOffset;


  if      (dphi <  0) dphi += 2*TMath::Pi();
  else if (dphi >= 2*TMath::Pi()) dphi -= 2*TMath::Pi();
  Int_t np=Int_t(dphi*fNladders*0.5/TMath::Pi()+0.5);
  if (np>=fNladders) np-=fNladders;
  if (np<0)          np+=fNladders;


  Double_t dz=fZOffset-z;
  Double_t nnz = dz*(fNdetectors-1)*0.5/fZOffset+0.5;
  Int_t nz = (nnz<0 ? -1 : (Int_t)nnz);
  if (nz>=fNdetectors || nz<0) {
    //printf("ndet %d phi %f z %f  np %d nz %d\n",fNdetectors,phi,z,np,nz);
    return -1;
  }

  // ad hoc correction for 3rd ladder of SDD inner layer,
  // which is reversed (rotated by pi around local y)
  // this correction is OK only from AliITSv11Hybrid onwards
  if (GetR()>12. && GetR()<20.) { // SDD inner
    if(np==2) { // 3rd ladder
      Double_t posMod252[3];
      AliITSgeomTGeo::GetTranslation(252,posMod252);
      // check the Z coordinate of Mod 252: if negative 
      // (old SDD geometry in AliITSv11Hybrid)
      // the swap of numeration whould be applied
      if(posMod252[2]<0.){
	nz = (fNdetectors-1) - nz;
      } 
    }
  }
  //printf("ndet %d phi %f z %f  np %d nz %d\n",fNdetectors,phi,z,np,nz);


  return np*fNdetectors + nz;
}
//------------------------------------------------------------------------
const AliITSRecPoint *AliITStrackerMI::AliITSlayer::GetNextCluster(Int_t &ci,Bool_t test)
{
  //--------------------------------------------------------------------
  // This function returns clusters within the "window" 
  //--------------------------------------------------------------------

  if (fCurrentSlice<0) {
    Double_t rpi2 = 2.*fR*TMath::Pi();
    for (Int_t i=fI; i<fImax; i++) {
      Double_t y = fY[i];
      Double_t z = fZ[i];
      if (fYmax<y) y -= rpi2;
      if (fYmin>y) y += rpi2;
      if (y<fYmin) continue;
      if (y>fYmax) continue;
      // AD
      // skip clusters that are in "extended" road but they 
      // 3sigma error does not touch the original road
      if (z+fNMaxSigmaCl*TMath::Sqrt(fClusters[i]->GetSigmaZ2())<fZmin+fNMaxSigmaCl*fMaxSigmaClZ) continue;
      if (z-fNMaxSigmaCl*TMath::Sqrt(fClusters[i]->GetSigmaZ2())>fZmax-fNMaxSigmaCl*fMaxSigmaClZ) continue;
      //
      if (TMath::Abs(fClusters[i]->GetQ())<1.e-13 && fSkip==2) continue;
      ci=i;
      if (!test) fI=i+1;
      return fClusters[i];
    }
  } else {
    for (Int_t i=fI; i<fImax; i++) {
      if (fYcs[i]<fYmin) continue;
      if (fYcs[i]>fYmax) continue;
      if (TMath::Abs(fClustersCs[i]->GetQ())<1.e-13 && fSkip==2) continue;
      ci=fClusterIndexCs[i];
      if (!test) fI=i+1;
      return fClustersCs[i];
    }
  }
  return 0;
}
//------------------------------------------------------------------------
Double_t AliITStrackerMI::AliITSlayer::GetThickness(Double_t y,Double_t z,Double_t &x0)
const {
  //--------------------------------------------------------------------
  // This function returns the layer thickness at this point (units X0)
  //--------------------------------------------------------------------
  Double_t d=0.0085;
  x0=AliITSRecoParam::GetX0Air();
  if (43<fR&&fR<45) { //SSD2
     Double_t dd=0.0034;
     d=dd;
     if (TMath::Abs(y-0.00)>3.40) d+=dd;
     if (TMath::Abs(y-1.90)<0.45) {d+=(0.013-0.0034);}
     if (TMath::Abs(y+1.90)<0.45) {d+=(0.013-0.0034);}
     for (Int_t i=0; i<12; i++) {
       if (TMath::Abs(z-3.9*(i+0.5))<0.15) {
          if (TMath::Abs(y-0.00)>3.40) d+=dd;
          d+=0.0034; 
          break;
       }
       if (TMath::Abs(z+3.9*(i+0.5))<0.15) {
          if (TMath::Abs(y-0.00)>3.40) d+=dd;
          d+=0.0034; 
          break;
       }         
       if (TMath::Abs(z-3.4-3.9*i)<0.50) {d+=(0.016-0.0034); break;}
       if (TMath::Abs(z+0.5+3.9*i)<0.50) {d+=(0.016-0.0034); break;}
     }
  } else 
  if (37<fR&&fR<41) { //SSD1
     Double_t dd=0.0034;
     d=dd;
     if (TMath::Abs(y-0.00)>3.40) d+=dd;
     if (TMath::Abs(y-1.90)<0.45) {d+=(0.013-0.0034);}
     if (TMath::Abs(y+1.90)<0.45) {d+=(0.013-0.0034);}
     for (Int_t i=0; i<11; i++) {
       if (TMath::Abs(z-3.9*i)<0.15) {
          if (TMath::Abs(y-0.00)>3.40) d+=dd;
          d+=dd; 
          break;
       }
       if (TMath::Abs(z+3.9*i)<0.15) {
          if (TMath::Abs(y-0.00)>3.40) d+=dd;
          d+=dd; 
          break;
       }         
       if (TMath::Abs(z-1.85-3.9*i)<0.50) {d+=(0.016-0.0034); break;}
       if (TMath::Abs(z+2.05+3.9*i)<0.50) {d+=(0.016-0.0034); break;}         
     }
  } else
  if (13<fR&&fR<26) { //SDD
     Double_t dd=0.0033;
     d=dd;
     if (TMath::Abs(y-0.00)>3.30) d+=dd;

     if (TMath::Abs(y-1.80)<0.55) {
        d+=0.016;
        for (Int_t j=0; j<20; j++) {
          if (TMath::Abs(z+0.7+1.47*j)<0.12) {d+=0.08; x0=9.; break;}
          if (TMath::Abs(z-0.7-1.47*j)<0.12) {d+=0.08; x0=9.; break;}
        } 
     }
     if (TMath::Abs(y+1.80)<0.55) {
        d+=0.016;
        for (Int_t j=0; j<20; j++) {
          if (TMath::Abs(z-0.7-1.47*j)<0.12) {d+=0.08; x0=9.; break;}
          if (TMath::Abs(z+0.7+1.47*j)<0.12) {d+=0.08; x0=9.; break;}
        } 
     }

     for (Int_t i=0; i<4; i++) {
       if (TMath::Abs(z-7.3*i)<0.60) {
          d+=dd;
          if (TMath::Abs(y-0.00)>3.30) d+=dd; 
          break;
       }
       if (TMath::Abs(z+7.3*i)<0.60) {
          d+=dd; 
          if (TMath::Abs(y-0.00)>3.30) d+=dd; 
          break;
       }
     }
  } else
  if (6<fR&&fR<8) {   //SPD2
     Double_t dd=0.0063; x0=21.5;
     d=dd;
     if (TMath::Abs(y-3.08)>0.5) d+=dd;
     if (TMath::Abs(y-3.03)<0.10) d+=0.014;
  } else
  if (3<fR&&fR<5) {   //SPD1
     Double_t dd=0.0063; x0=21.5;
     d=dd;
     if (TMath::Abs(y+0.21)>0.6) d+=dd;
     if (TMath::Abs(y+0.10)<0.10) d+=0.014;
  }

  return d;
}
//------------------------------------------------------------------------
AliITStrackerMI::AliITSdetector::AliITSdetector(const AliITSdetector& det):
fR(det.fR),
fRmisal(det.fRmisal),
fPhi(det.fPhi),
fSinPhi(det.fSinPhi),
fCosPhi(det.fCosPhi),
fYmin(det.fYmin),
fYmax(det.fYmax),
fZmin(det.fZmin),
fZmax(det.fZmax),
fIsBad(det.fIsBad),
fNChips(det.fNChips),
fChipIsBad(det.fChipIsBad)
{
  //Copy constructor
}
//------------------------------------------------------------------------
void AliITStrackerMI::AliITSdetector::ReadBadDetectorAndChips(Int_t ilayer,Int_t idet,
					       const AliITSDetTypeRec *detTypeRec)
{
  //--------------------------------------------------------------------
  // Read bad detectors and chips from calibration objects in AliITSDetTypeRec
  //--------------------------------------------------------------------

  // In AliITSDetTypeRec, detector numbers go from 0 to 2197
  // while in the tracker they start from 0 for each layer
  for(Int_t il=0; il<ilayer; il++) 
    idet += AliITSgeomTGeo::GetNLadders(il+1)*AliITSgeomTGeo::GetNDetectors(il+1);

  Int_t detType;
  if (ilayer==0 || ilayer==1) {        // ----------  SPD
    detType = 0;
  } else if (ilayer==2 || ilayer==3) { // ----------  SDD
    detType = 1;
  } else if (ilayer==4 || ilayer==5) { // ----------  SSD
    detType = 2;
  } else {
    printf("AliITStrackerMI::AliITSdetector::InitBadFromOCDB: Wrong layer number %d\n",ilayer);
    return;
  }

  // Get calibration from AliITSDetTypeRec
  AliITSCalibration *calib = (AliITSCalibration*)detTypeRec->GetCalibrationModel(idet);
  calib->SetModuleIndex(idet);
  AliITSCalibration *calibSPDdead = 0;
  if(detType==0) calibSPDdead = (AliITSCalibration*)detTypeRec->GetSPDDeadModel(idet); // TEMPORARY
  if (calib->IsBad() ||
      (detType==0 && calibSPDdead->IsBad())) // TEMPORARY
    {
      SetBad();
      //      printf("lay %d bad %d\n",ilayer,idet);
    }

  // Get segmentation from AliITSDetTypeRec
  AliITSsegmentation *segm = (AliITSsegmentation*)detTypeRec->GetSegmentationModel(detType);

  // Read info about bad chips
  fNChips = segm->GetMaximumChipIndex()+1;
  //printf("ilayer %d  detType %d idet %d fNChips %d %d  GetNumberOfChips %d\n",ilayer,detType,idet,fNChips,segm->GetMaximumChipIndex(),segm->GetNumberOfChips());
  if(fChipIsBad) { delete [] fChipIsBad; fChipIsBad=NULL; }
  fChipIsBad = new Bool_t[fNChips];
  for (Int_t iCh=0;iCh<fNChips;iCh++) {
    fChipIsBad[iCh] = calib->IsChipBad(iCh);
    if (detType==0 && calibSPDdead->IsChipBad(iCh)) fChipIsBad[iCh] = kTRUE; // TEMPORARY
    //if(fChipIsBad[iCh]) {printf("lay %d det %d bad chip %d\n",ilayer,idet,iCh);}
  }

  return;
}
//------------------------------------------------------------------------
Double_t AliITStrackerMI::GetEffectiveThickness()
{
  //--------------------------------------------------------------------
  // Returns the thickness between the current layer and the vertex (units X0)
  //--------------------------------------------------------------------

  if(fUseTGeo!=0) {
    if(fxOverX0Layer[0]<0) BuildMaterialLUT("Layers");
    if(fxOverX0Shield[0]<0) BuildMaterialLUT("Shields");
    if(fxOverX0Pipe<0) BuildMaterialLUT("Pipe");
  }

  // beam pipe
  Double_t dPipe = (fUseTGeo==0 ? AliITSRecoParam::GetdPipe() : fxOverX0Pipe);
  Double_t d=dPipe*AliITSRecoParam::GetrPipe()*AliITSRecoParam::GetrPipe();

  // layers
  Double_t x0=0;
  Double_t xn=fgLayers[fI].GetR();
  for (Int_t i=0; i<fI; i++) {
    Double_t xi=fgLayers[i].GetR();
    Double_t dLayer = (fUseTGeo==0 ? fgLayers[i].GetThickness(0,0,x0) : fxOverX0Layer[i]);
    d+=dLayer*xi*xi;
  }

  // shields
  if (fI>1) {
    Double_t dshieldSPD = (fUseTGeo==0 ? AliITSRecoParam::Getdshield(0) : fxOverX0Shield[0]);
    d+=dshieldSPD*AliITSRecoParam::GetrInsideShield(0)*AliITSRecoParam::GetrInsideShield(0);
  }
  if (fI>3) {
    Double_t dshieldSDD = (fUseTGeo==0 ? AliITSRecoParam::Getdshield(1) : fxOverX0Shield[1]);
    d+=dshieldSDD*AliITSRecoParam::GetrInsideShield(1)*AliITSRecoParam::GetrInsideShield(1);
  }
  return d/(xn*xn);
}

//------------------------------------------------------------------------
Int_t AliITStrackerMI::GetEffectiveThicknessLbyL(Double_t* xMS, Double_t* x2x0MS)
{
  //--------------------------------------------------------------------
  // Returns the array of layers between the current layer and the vertex
  //--------------------------------------------------------------------
  //
  if(fUseTGeo!=0) {
    if(fxOverX0Layer[0]<0) BuildMaterialLUT("Layers");
    if(fxOverX0Shield[0]<0) BuildMaterialLUT("Shields");
    if(fxOverX0Pipe<0) BuildMaterialLUT("Pipe");
  }

  int nl = 0;
  double x0 = 0;
  for (int il=fI;il--;) {
    //
    if (il==3) {
      x2x0MS[nl] = (fUseTGeo==0 ? AliITSRecoParam::Getdshield(1) : fxOverX0Shield[1]);
      xMS[nl++]  = AliITSRecoParam::GetrInsideShield(1);
    }
    else if (il==1) {
      x2x0MS[nl] = (fUseTGeo==0 ? AliITSRecoParam::Getdshield(0) : fxOverX0Shield[0]);
      xMS[nl++]  = AliITSRecoParam::GetrInsideShield(0);
    }
    //
    x2x0MS[nl] = (fUseTGeo==0 ? fgLayers[il].GetThickness(0,0,x0) : fxOverX0Layer[il]);
    xMS[nl++]  = fgLayers[il].GetR();
    //
  }
  //
  // beam pipe
  x2x0MS[nl]  = (fUseTGeo==0 ? AliITSRecoParam::GetdPipe() : fxOverX0Pipe);
  xMS[nl++]  = AliITSRecoParam::GetrPipe();
  //
  return nl;
}


//------------------------------------------------------------------------
Int_t AliITStrackerMI::AliITSlayer::InRoad() const {
  //-------------------------------------------------------------------
  // This function returns number of clusters within the "window" 
  //--------------------------------------------------------------------
  Int_t ncl=0;
  for (Int_t i=fI; i<fN; i++) {
    const AliITSRecPoint *c=fClusters[i];
    if (c->GetZ() > fZmax) break;
    if (c->IsUsed()) continue;
    const AliITSdetector &det=GetDetector(c->GetDetectorIndex());    
    Double_t y=fR*det.GetPhi() + c->GetY();

    if (y>2.*fR*TMath::Pi()) y -= 2*fR*TMath::Pi();
    if (y>1.*fR*TMath::Pi() && fYmax<y) y -= 2*fR*TMath::Pi();

    if (y<fYmin) continue;
    if (y>fYmax) continue;
    ncl++;
  }
  return ncl;
}
//------------------------------------------------------------------------
Bool_t AliITStrackerMI::RefitAt(Double_t xx,AliITStrackMI *track,
				const AliITStrackMI *clusters,Bool_t extra, Bool_t planeeff) 
{
  //--------------------------------------------------------------------
  // This function refits the track "track" at the position "x" using
  // the clusters from "clusters"
  // If "extra"==kTRUE, 
  //    the clusters from overlapped modules get attached to "track" 
  // If "planeff"==kTRUE,
  //    special approach for plane efficiency evaluation is applyed
  //--------------------------------------------------------------------

  Int_t index[AliITSgeomTGeo::kNLayers];
  Int_t k;
  for (k=0; k<AliITSgeomTGeo::GetNLayers(); k++) index[k]=-1;
  Int_t nc=clusters->GetNumberOfClusters();
  for (k=0; k<nc; k++) { 
    Int_t idx=clusters->GetClusterIndex(k);
    Int_t ilayer=(idx&0xf0000000)>>28;
    index[ilayer]=idx; 
  }

  return RefitAt(xx,track,index,extra,planeeff); // call the method below
}
//------------------------------------------------------------------------
Bool_t AliITStrackerMI::RefitAt(Double_t xx,AliITStrackMI *track,
				const Int_t *clusters,Bool_t extra, Bool_t planeeff) 
{
  //--------------------------------------------------------------------
  // This function refits the track "track" at the position "x" using
  // the clusters from array
  // If "extra"==kTRUE, 
  //    the clusters from overlapped modules get attached to "track" 
  // If "planeff"==kTRUE,
  //    special approach for plane efficiency evaluation is applyed
  //--------------------------------------------------------------------
  Int_t index[AliITSgeomTGeo::kNLayers];
  Int_t k;
  for (k=0; k<AliITSgeomTGeo::GetNLayers(); k++) index[k]=-1;
  //
  for (k=0; k<AliITSgeomTGeo::GetNLayers(); k++) { 
    index[k]=clusters[k]; 
  }

  // special for cosmics and TPC prolonged tracks: 
  // propagate to the innermost of:
  // - innermost layer crossed by the track
  // - innermost layer where a cluster was associated to the track
  static AliITSRecoParam *repa = NULL;
  if(!repa){
    repa = (AliITSRecoParam*) AliITSReconstructor::GetRecoParam();
    if(!repa){
      repa = AliITSRecoParam::GetHighFluxParam();
      AliWarning("Using default AliITSRecoParam class");
    }
  }
  Int_t evsp=repa->GetEventSpecie();
  ULong_t trStatus=0;
  if(track->GetESDtrack()) trStatus=track->GetStatus();
  Int_t innermostlayer=0;
  if((evsp&AliRecoParam::kCosmic) || (trStatus&AliESDtrack::kTPCin))  {
    innermostlayer=5;
    Double_t drphi = TMath::Abs(track->GetD(0.,0.));
    for(innermostlayer=0; innermostlayer<AliITSgeomTGeo::GetNLayers(); innermostlayer++) {
      if( (drphi < (fgLayers[innermostlayer].GetR()+1.)) ||
	  index[innermostlayer] >= 0 ) break;
    }

    AliDebug(2,Form(" drphi  %f  innermost %d",drphi,innermostlayer));
  }

  Int_t modstatus=1; // found
  Float_t xloc,zloc;
  Int_t from, to, step;
  if (xx > track->GetX()) {
      from=innermostlayer; to=AliITSgeomTGeo::GetNLayers();
      step=+1;
  } else {
      from=AliITSgeomTGeo::GetNLayers()-1; to=innermostlayer-1;
      step=-1;
  }
  TString dir = (step>0 ? "outward" : "inward");

  for (Int_t ilayer = from; ilayer != to; ilayer += step) {
     AliITSlayer &layer=fgLayers[ilayer];
     Double_t r=layer.GetR();

     if (step<0 && xx>r) break;

     // material between SSD and SDD, SDD and SPD
     Double_t hI=ilayer-0.5*step; 
     if (TMath::Abs(hI-3.5)<0.01) // SDDouter
       if(!CorrectForShieldMaterial(track,"SDD",dir)) return kFALSE;
     if (TMath::Abs(hI-1.5)<0.01) // SPDouter
       if(!CorrectForShieldMaterial(track,"SPD",dir)) return kFALSE;


     Double_t oldGlobXYZ[3];
     if (!track->GetXYZ(oldGlobXYZ)) return kFALSE;

     // continue if we are already beyond this layer
     Double_t oldGlobR = TMath::Sqrt(oldGlobXYZ[0]*oldGlobXYZ[0]+oldGlobXYZ[1]*oldGlobXYZ[1]);
     if(step>0 && oldGlobR > r) continue; // going outward
     if(step<0 && oldGlobR < r) continue; // going inward

     Double_t phi,z;
     if (!track->GetPhiZat(r,phi,z)) return kFALSE;

     Int_t idet=layer.FindDetectorIndex(phi,z);

     // check if we allow a prolongation without point for large-eta tracks
     Int_t skip = CheckSkipLayer(track,ilayer,idet);
     if (skip==2) {
       modstatus = 4; // out in z
       if(LocalModuleCoord(ilayer,idet,track,xloc,zloc)) { // local module coords
	 track->SetModuleIndexInfo(ilayer,idet,modstatus,xloc,zloc);
       }
       // cross layer
       // apply correction for material of the current layer
       // add time if going outward
       CorrectForLayerMaterial(track,ilayer,oldGlobXYZ,dir);
       continue;
     }

     if (idet<0) return kFALSE;


     const AliITSdetector &det=layer.GetDetector(idet);
     // only for ITS-SA tracks refit
     if (ilayer>1 && fTrackingPhase.Contains("RefitInward") && !(track->GetStatus()&AliESDtrack::kTPCin)) track->SetCheckInvariant(kFALSE);
     // 
     if (!track->Propagate(det.GetPhi(),det.GetR())) return kFALSE;

     track->SetDetectorIndex(idet);
     if(!LocalModuleCoord(ilayer,idet,track,xloc,zloc)) return kFALSE; // local module coords

     Double_t dz,zmin,zmax,dy,ymin,ymax;

     const AliITSRecPoint *clAcc=0;
     Double_t maxchi2=1000.*AliITSReconstructor::GetRecoParam()->GetMaxChi2();

     Int_t idx=index[ilayer];
     if (idx>=0) { // cluster in this layer
       modstatus = 6; // no refit
       const AliITSRecPoint *cl=(AliITSRecPoint *)GetCluster(idx); 
       if (cl) {
	 if (idet != cl->GetDetectorIndex()) {
	   idet=cl->GetDetectorIndex();
	   const AliITSdetector &detc=layer.GetDetector(idet);
	   if (!track->Propagate(detc.GetPhi(),detc.GetR())) return kFALSE;
	   track->SetDetectorIndex(idet);
	   if(!LocalModuleCoord(ilayer,idet,track,xloc,zloc)) return kFALSE; // local module coords
	 }
	 Int_t cllayer = (idx & 0xf0000000) >> 28;;
	 Double_t chi2=GetPredictedChi2MI(track,cl,cllayer);
	 if (chi2<maxchi2) { 
	   clAcc=cl; 
	   maxchi2=chi2; 
	   modstatus = 1; // found
	 } else {
	    return kFALSE; //
	 }
       }
     } else { // no cluster in this layer
       if (skip==1) {
	 modstatus = 3; // skipped
         // Plane Eff determination:
         if (planeeff && ilayer==AliITSReconstructor::GetRecoParam()->GetIPlanePlaneEff()) {
           if (IsOKForPlaneEff(track,clusters,ilayer))  // only adequate track for plane eff. evaluation
              UseTrackForPlaneEff(track,ilayer);
         }
       } else {
	 modstatus = 5; // no cls in road
	 // check dead
	 if (!ComputeRoad(track,ilayer,idet,zmin,zmax,ymin,ymax)) return kFALSE;
	 dz = 0.5*(zmax-zmin);
	 dy = 0.5*(ymax-ymin);
	 Int_t dead = CheckDeadZone(track,ilayer,idet,dz,dy,kTRUE);
	 if (dead==1) modstatus = 7; // holes in z in SPD
	 if (dead==2 || dead==3 || dead==4) modstatus = 2; // dead from OCDB
       }
     }
     
     if (clAcc) {
       if (!UpdateMI(track,clAcc,maxchi2,idx)) return kFALSE;
       track->SetSampledEdx(clAcc->GetQ(),ilayer-2);
     }
     track->SetModuleIndexInfo(ilayer,idet,modstatus,xloc,zloc);


     if (extra && clAcc) { // search for extra clusters in overlapped modules
       AliITStrackV2 tmp(*track);
       if (!ComputeRoad(track,ilayer,idet,zmin,zmax,ymin,ymax)) return kFALSE;
       layer.SelectClusters(zmin,zmax,ymin,ymax);
       
       const AliITSRecPoint *clExtra=0; Int_t ci=-1,cci=-1;
       Int_t idetExtra=-1;  
       maxchi2=1000.*AliITSReconstructor::GetRecoParam()->GetMaxChi2();
       Double_t tolerance=0.1;
       while ((clExtra=layer.GetNextCluster(ci))!=0) {
	 // only clusters in another module! (overlaps)
	 idetExtra = clExtra->GetDetectorIndex();
	 if (idet == idetExtra) continue;
	 
	 const AliITSdetector &detx=layer.GetDetector(idetExtra);
	 
	 if (!tmp.Propagate(detx.GetPhi(),detx.GetR()+clExtra->GetX())) continue;
	 if (TMath::Abs(tmp.GetZ() - clExtra->GetZ()) > tolerance) continue;
	 if (TMath::Abs(tmp.GetY() - clExtra->GetY()) > tolerance) continue;
	 if (!tmp.Propagate(detx.GetPhi(),detx.GetR())) continue;
	 
	 Double_t chi2=tmp.GetPredictedChi2(clExtra);
	 if (chi2<maxchi2) { maxchi2=chi2; cci=ci; }
       }
       if (cci>=0) {
	 track->SetExtraCluster(ilayer,(ilayer<<28)+cci);
	 track->SetExtraModule(ilayer,idetExtra);
       }
     } // end search for extra clusters in overlapped modules
     
     // Correct for material of the current layer
     // cross material
     // add time if going outward
     if(!CorrectForLayerMaterial(track,ilayer,oldGlobXYZ,dir)) return kFALSE;
     track->SetCheckInvariant(kTRUE);
  } // end loop on layers

  if (!track->PropagateTo(xx,0.,0.)) return kFALSE;

  return kTRUE;
}
//------------------------------------------------------------------------
Double_t AliITStrackerMI::GetNormalizedChi2(AliITStrackMI * track, Int_t mode)
{
  //
  // calculate normalized chi2
  //  return NormalizedChi2(track,0);
  Float_t chi2 = 0;
  Float_t sum=0;
  Float_t *erry = GetErrY(fCurrentEsdTrack), *errz = GetErrZ(fCurrentEsdTrack);
  //  track->fdEdxMismatch=0;
  Float_t dedxmismatch =0;
  Float_t *ny = GetNy(fCurrentEsdTrack), *nz = GetNz(fCurrentEsdTrack); 
  if (mode<100){
    for (Int_t i = 0;i<6;i++){
      if (track->GetClIndex(i)>=0){
	Float_t cerry, cerrz;
	if (ny[i]>0) {cerry = erry[i]; cerrz=errz[i];}
	else 
	  { cerry= track->GetSigmaY(i); cerrz = track->GetSigmaZ(i);}
	cerry*=cerry;
	cerrz*=cerrz;	
	Float_t cchi2 = (track->GetDy(i)*track->GetDy(i)/cerry)+(track->GetDz(i)*track->GetDz(i)/cerrz);
	if (i>1 && AliITSReconstructor::GetRecoParam()->GetUseAmplitudeInfo(i)) {
	  Float_t ratio = track->GetNormQ(i)/track->GetExpQ();
	  if (ratio<0.5) {
	    cchi2+=(0.5-ratio)*10.;
	    //track->fdEdxMismatch+=(0.5-ratio)*10.;
	    dedxmismatch+=(0.5-ratio)*10.;	    
	  }
	}
	if (i<2 ||i>3){
	  AliITSRecPoint * cl = (AliITSRecPoint*)GetCluster( track->GetClIndex(i));  
	  Double_t delta = cl->GetNy()+cl->GetNz()-ny[i]-nz[i];
	  if (delta>1) chi2 +=0.5*TMath::Min(delta/2,2.); 
	  if (i<2) chi2+=2*cl->GetDeltaProbability();
	}
	chi2+=cchi2;
	sum++;
      }
    }
    if (TMath::Abs(track->GetdEdxMismatch()-dedxmismatch)>0.0001){
      track->SetdEdxMismatch(dedxmismatch);
    }
  }
  else{
    for (Int_t i = 0;i<4;i++){
      if (track->GetClIndex(i)>=0){
	Float_t cerry, cerrz;
	if (ny[i]>0) {cerry = erry[i]; cerrz=errz[i];}
	else { cerry= track->GetSigmaY(i); cerrz = track->GetSigmaZ(i);}
	cerry*=cerry;
	cerrz*=cerrz;
	chi2+= (track->GetDy(i)*track->GetDy(i)/cerry);
	chi2+= (track->GetDz(i)*track->GetDz(i)/cerrz);      
	sum++;
      }
    }
    for (Int_t i = 4;i<6;i++){
      if (track->GetClIndex(i)>=0){	
	Float_t cerry, cerrz;
	if (ny[i]>0) {cerry = erry[i]; cerrz=errz[i];}
	else { cerry= track->GetSigmaY(i); cerrz = track->GetSigmaZ(i);}
	cerry*=cerry;
	cerrz*=cerrz;	
	Float_t cerryb, cerrzb;
	if (ny[i+6]>0) {cerryb = erry[i+6]; cerrzb=errz[i+6];}
	else { cerryb= track->GetSigmaY(i+6); cerrzb = track->GetSigmaZ(i+6);}
	cerryb*=cerryb;
	cerrzb*=cerrzb;
	chi2+= TMath::Min((track->GetDy(i+6)*track->GetDy(i+6)/cerryb),track->GetDy(i)*track->GetDy(i)/cerry);
	chi2+= TMath::Min((track->GetDz(i+6)*track->GetDz(i+6)/cerrzb),track->GetDz(i)*track->GetDz(i)/cerrz);      
	sum++;
      }
    }
  }
  if (track->GetESDtrack()->GetTPCsignal()>85){
    Float_t ratio = track->GetdEdx()/track->GetESDtrack()->GetTPCsignal();
    if (ratio<0.5) {
      chi2+=(0.5-ratio)*5.;      
    }
    if (ratio>2){
      chi2+=(ratio-2.0)*3; 
    }
  }
  //
  Double_t match = TMath::Sqrt(track->GetChi22());
  if (track->GetConstrain())  match/=track->GetNumberOfClusters();
  if (!track->GetConstrain()) { 
    if (track->GetNumberOfClusters()>2) {
      match/=track->GetNumberOfClusters()-2.;
    } else {
      match=0;
    }
  }
  if (match<0) match=0;

  // penalty factor for missing points (NDeadZone>0), but no penalty
  // for layer with deadZoneProb close to 1 (either we wanted to skip layer
  // or there is a dead from OCDB)
  Float_t deadzonefactor = 0.; 
  if (track->GetNDeadZone()>0.) {    
    Int_t sumDeadZoneProbability=0; 
    for(Int_t ilay=0;ilay<6;ilay++) {
      if(track->GetDeadZoneProbability(ilay)>0.) sumDeadZoneProbability++;
    }
    Int_t nDeadZoneWithProbNot1=(Int_t)(track->GetNDeadZone())-sumDeadZoneProbability;
    if(nDeadZoneWithProbNot1>0) {
      Float_t deadZoneProbability = track->GetNDeadZone()-(Float_t)sumDeadZoneProbability;
      AliDebug(2,Form("nDeadZone %f sumDZProbability %d nDZWithProbNot1 %d deadZoneProb %f\n",track->GetNDeadZone(),sumDeadZoneProbability,nDeadZoneWithProbNot1,deadZoneProbability));
      deadZoneProbability /= (Float_t)nDeadZoneWithProbNot1;
      Float_t one = 1.;
      deadZoneProbability = TMath::Min(deadZoneProbability,one);
      deadzonefactor = 3.*(1.1-deadZoneProbability);  
    }
  }  

  Double_t normchi2 = 2*track->GetNSkipped()+match+deadzonefactor+(1+(2*track->GetNSkipped()+deadzonefactor)/track->GetNumberOfClusters())*
    (chi2)/TMath::Max(double(sum-track->GetNSkipped()),
				1./(1.+track->GetNSkipped()));     
  AliDebug(2,Form("match %f deadzonefactor %f chi2 %f sum %f skipped %f\n",match,deadzonefactor,chi2,sum,track->GetNSkipped()));
  AliDebug(2,Form("NormChi2 %f  cls %d\n",normchi2,track->GetNumberOfClusters()));
  return normchi2;
}
//------------------------------------------------------------------------
Double_t AliITStrackerMI::GetMatchingChi2(const AliITStrackMI * track1,const AliITStrackMI * track2)
{
  //
  // return matching chi2 between two tracks
  Double_t largeChi2=1000.;

  AliITStrackMI track3(*track2);
  if (!track3.Propagate(track1->GetAlpha(),track1->GetX())) return largeChi2;
  TMatrixD vec(5,1);
  vec(0,0)=track1->GetY()   - track3.GetY();
  vec(1,0)=track1->GetZ()   - track3.GetZ();
  vec(2,0)=track1->GetSnp() - track3.GetSnp();
  vec(3,0)=track1->GetTgl() - track3.GetTgl();
  vec(4,0)=track1->GetSigned1Pt() - track3.GetSigned1Pt();
  //
  TMatrixD cov(5,5);
  cov(0,0) = track1->GetSigmaY2()+track3.GetSigmaY2();
  cov(1,1) = track1->GetSigmaZ2()+track3.GetSigmaZ2();
  cov(2,2) = track1->GetSigmaSnp2()+track3.GetSigmaSnp2();
  cov(3,3) = track1->GetSigmaTgl2()+track3.GetSigmaTgl2();
  cov(4,4) = track1->GetSigma1Pt2()+track3.GetSigma1Pt2();
  
  cov(0,1)=cov(1,0) = track1->GetSigmaZY()+track3.GetSigmaZY();
  cov(0,2)=cov(2,0) = track1->GetSigmaSnpY()+track3.GetSigmaSnpY();
  cov(0,3)=cov(3,0) = track1->GetSigmaTglY()+track3.GetSigmaTglY();
  cov(0,4)=cov(4,0) = track1->GetSigma1PtY()+track3.GetSigma1PtY();
  //
  cov(1,2)=cov(2,1) = track1->GetSigmaSnpZ()+track3.GetSigmaSnpZ();
  cov(1,3)=cov(3,1) = track1->GetSigmaTglZ()+track3.GetSigmaTglZ();
  cov(1,4)=cov(4,1) = track1->GetSigma1PtZ()+track3.GetSigma1PtZ();
  //
  cov(2,3)=cov(3,2) = track1->GetSigmaTglSnp()+track3.GetSigmaTglSnp();
  cov(2,4)=cov(4,2) = track1->GetSigma1PtSnp()+track3.GetSigma1PtSnp();
  //
  cov(3,4)=cov(4,3) = track1->GetSigma1PtTgl()+track3.GetSigma1PtTgl();
  
  cov.Invert();
  TMatrixD vec2(cov,TMatrixD::kMult,vec);
  TMatrixD chi2(vec2,TMatrixD::kTransposeMult,vec);
  return chi2(0,0);
}
//------------------------------------------------------------------------
Double_t  AliITStrackerMI::GetSPDDeadZoneProbability(Double_t zpos, Double_t zerr) const
{
  //
  //  return probability that given point (characterized by z position and error) 
  //  is in SPD dead zone
  //     This method assumes that fSPDdetzcentre is ordered from -z to +z
  //
  Double_t probability = 0.;
  Double_t nearestz = 0.,distz=0.;
  Int_t    nearestzone = -1;
  Double_t mindistz = 1000.;

  // find closest dead zone
  for (Int_t i=0; i<3; i++) {
    distz=TMath::Abs(zpos-0.5*(fSPDdetzcentre[i]+fSPDdetzcentre[i+1]));
    if (distz<mindistz) {
      nearestzone=i;
      nearestz=0.5*(fSPDdetzcentre[i]+fSPDdetzcentre[i+1]);
      mindistz=distz;
    }
  }

  // too far from dead zone
  if (TMath::Abs(zpos-nearestz)>0.25+3.*zerr) return probability;


  Double_t zmin, zmax;   
  if (nearestzone==0) { // dead zone at z = -7
    zmin = fSPDdetzcentre[0] + 0.5*AliITSRecoParam::GetSPDdetzlength();
    zmax = fSPDdetzcentre[1] - 0.5*AliITSRecoParam::GetSPDdetzlength();
  } else if (nearestzone==1) { // dead zone at z = 0
    zmin = fSPDdetzcentre[1] + 0.5*AliITSRecoParam::GetSPDdetzlength();
    zmax = fSPDdetzcentre[2] - 0.5*AliITSRecoParam::GetSPDdetzlength();
  } else if (nearestzone==2) { // dead zone at z = +7
    zmin = fSPDdetzcentre[2] + 0.5*AliITSRecoParam::GetSPDdetzlength();
    zmax = fSPDdetzcentre[3] - 0.5*AliITSRecoParam::GetSPDdetzlength();
  } else {
    zmin = 0.;
    zmax = 0.;
  }
  // probability that the true z is in the range [zmin,zmax] (i.e. inside 
  // dead zone)
  probability = 0.5*( AliMathBase::ErfFast((zpos-zmin)/zerr/TMath::Sqrt(2.)) - 
		      AliMathBase::ErfFast((zpos-zmax)/zerr/TMath::Sqrt(2.)) );
  AliDebug(2,Form("zpos %f +- %f nearestzone %d  zmin zmax %f %f prob %f\n",zpos,zerr,nearestzone,zmin,zmax,probability));
  return probability;
}
//------------------------------------------------------------------------
Double_t AliITStrackerMI::GetTruncatedChi2(const AliITStrackMI * track, Float_t fac)
{
  //
  // calculate normalized chi2
  Float_t chi2[6];
  Float_t *erry = GetErrY(fCurrentEsdTrack), *errz = GetErrZ(fCurrentEsdTrack);
  Float_t ncl = 0;
  for (Int_t i = 0;i<6;i++){
    if (TMath::Abs(track->GetDy(i))>0){      
      chi2[i]= (track->GetDy(i)/erry[i])*(track->GetDy(i)/erry[i]);
      chi2[i]+= (track->GetDz(i)/errz[i])*(track->GetDz(i)/errz[i]);
      ncl++;
    }
    else{chi2[i]=10000;}
  }
  Int_t index[6];
  TMath::Sort(6,chi2,index,kFALSE);
  Float_t max = float(ncl)*fac-1.;
  Float_t sumchi=0, sumweight=0; 
  for (Int_t i=0;i<max+1;i++){
    Float_t weight = (i<max)?1.:(max+1.-i);
    sumchi+=weight*chi2[index[i]];
    sumweight+=weight;
  }
  Double_t normchi2 = sumchi/sumweight;
  return normchi2;
}
//------------------------------------------------------------------------
Double_t AliITStrackerMI::GetInterpolatedChi2(const AliITStrackMI * forwardtrack,const AliITStrackMI * backtrack)
{
  //
  // calculate normalized chi2
  //  if (forwardtrack->fNUsed>0.3*float(forwardtrack->GetNumberOfClusters())) return 10000;
  Int_t npoints = 0;
  Double_t res =0;
  for (Int_t i=0;i<6;i++){
    if ( (backtrack->GetSigmaY(i)<0.000000001) || (forwardtrack->GetSigmaY(i)<0.000000001)) continue;
    Double_t sy1 = forwardtrack->GetSigmaY(i);
    Double_t sz1 = forwardtrack->GetSigmaZ(i);
    Double_t sy2 = backtrack->GetSigmaY(i);
    Double_t sz2 = backtrack->GetSigmaZ(i);
    if (i<2){ sy2=1000.;sz2=1000;}
    //    
    Double_t dy0 = (forwardtrack->GetDy(i)/(sy1*sy1) +backtrack->GetDy(i)/(sy2*sy2))/(1./(sy1*sy1)+1./(sy2*sy2));
    Double_t dz0 = (forwardtrack->GetDz(i)/(sz1*sz1) +backtrack->GetDz(i)/(sz2*sz2))/(1./(sz1*sz1)+1./(sz2*sz2));
    // 
    Double_t nz0 = dz0*TMath::Sqrt((1./(sz1*sz1)+1./(sz2*sz2)));
    Double_t ny0 = dy0*TMath::Sqrt((1./(sy1*sy1)+1./(sy2*sy2)));
    //
    res+= nz0*nz0+ny0*ny0;
    npoints++;
  }
  if (npoints>1) return 
                   TMath::Max(0.3*forwardtrack->OneOverPt()-0.5,0.)+
		   //2*forwardtrack->fNUsed+
		   res/TMath::Max(double(npoints-forwardtrack->GetNSkipped()),
				  1./(1.+forwardtrack->GetNSkipped()));
  return 1000;
}
//------------------------------------------------------------------------
Float_t  *AliITStrackerMI::GetWeight(Int_t index) {
  //--------------------------------------------------------------------
  //       Return pointer to a given cluster
  //--------------------------------------------------------------------
  Int_t l=(index & 0xf0000000) >> 28;
  Int_t c=(index & 0x0fffffff) >> 00;
  return fgLayers[l].GetWeight(c);
}
//------------------------------------------------------------------------
void AliITStrackerMI::RegisterClusterTracks(const AliITStrackMI* track,Int_t id)
{
  //---------------------------------------------
  // register track to the list
  //
  if (track->GetESDtrack()->GetKinkIndex(0)!=0) return;  //don't register kink tracks
  //
  //
  for (Int_t icluster=0;icluster<track->GetNumberOfClusters();icluster++){
    Int_t index = track->GetClusterIndex(icluster);
    Int_t l=(index & 0xf0000000) >> 28;
    Int_t c=(index & 0x0fffffff) >> 00;
    if (c>fgLayers[l].GetNumberOfClusters()) continue;
    for (Int_t itrack=0;itrack<4;itrack++){
      if (fgLayers[l].GetClusterTracks(itrack,c)<0){
	fgLayers[l].SetClusterTracks(itrack,c,id);
	break;
      }
    }
  }
}
//------------------------------------------------------------------------
void AliITStrackerMI::UnRegisterClusterTracks(const AliITStrackMI* track, Int_t id)
{
  //---------------------------------------------
  // unregister track from the list
  for (Int_t icluster=0;icluster<track->GetNumberOfClusters();icluster++){
    Int_t index = track->GetClusterIndex(icluster);
    Int_t l=(index & 0xf0000000) >> 28;
    Int_t c=(index & 0x0fffffff) >> 00;
    if (c>fgLayers[l].GetNumberOfClusters()) continue;
    for (Int_t itrack=0;itrack<4;itrack++){
      if (fgLayers[l].GetClusterTracks(itrack,c)==id){
	fgLayers[l].SetClusterTracks(itrack,c,-1);
      }
    }
  }
}
//------------------------------------------------------------------------
Float_t AliITStrackerMI::GetNumberOfSharedClusters(AliITStrackMI* track,Int_t id, Int_t list[6], AliITSRecPoint *clist[6])
{
  //-------------------------------------------------------------
  //get number of shared clusters
  //-------------------------------------------------------------
  Float_t shared=0;
  for (Int_t i=0;i<6;i++) { list[i]=-1, clist[i]=0;}
  // mean  number of clusters
  Float_t *ny = GetNy(id), *nz = GetNz(id); 

 
  for (Int_t icluster=0;icluster<track->GetNumberOfClusters();icluster++){
    Int_t index = track->GetClusterIndex(icluster);
    Int_t l=(index & 0xf0000000) >> 28;
    Int_t c=(index & 0x0fffffff) >> 00;
    if (c>fgLayers[l].GetNumberOfClusters()) continue;
    // if (ny[l]<1.e-13){
    //   printf("problem\n");
    // }
    AliITSRecPoint *cl = (AliITSRecPoint*)GetCluster(index);
    Float_t weight=1;
    //
    Float_t deltan = 0;
    if (l>3&&cl->GetNy()+cl->GetNz()>6) continue;
    if (l>2&&AliITSReconstructor::GetRecoParam()->GetUseAmplitudeInfo(l))
      if (track->GetNormQ(l)/track->GetExpQ()>3.5) continue;
    if (l<2 || l>3){      
      deltan = (cl->GetNy()+cl->GetNz()-ny[l]-nz[l]);
    }
    else{
      deltan = (cl->GetNz()-nz[l]);
    }
    if (deltan>2.0) continue;  // extended - highly probable shared cluster
    weight = 2./TMath::Max(3.+deltan,2.);
    //
    for (Int_t itrack=0;itrack<4;itrack++){
      if (fgLayers[l].GetClusterTracks(itrack,c)>=0 && fgLayers[l].GetClusterTracks(itrack,c)!=id){
	list[l]=index;
	clist[l] = (AliITSRecPoint*)GetCluster(index);
	track->SetSharedWeight(l,weight);
	shared+=weight; 
	break;
      }
    }
  }
  track->SetNUsed(shared);
  return shared;
}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::GetOverlapTrack(const AliITStrackMI *track, Int_t trackID, Int_t &shared, Int_t clusterlist[6],Int_t overlist[6])
{
  //
  // find first shared track 
  //
  // mean  number of clusters
  Float_t *ny = GetNy(trackID), *nz = GetNz(trackID); 
  //
  for (Int_t i=0;i<6;i++) overlist[i]=-1;
  Int_t sharedtrack=100000;
  Int_t tracks[24],trackindex=0;
  for (Int_t i=0;i<24;i++) {tracks[i]=-1;}
  //
  for (Int_t icluster=0;icluster<6;icluster++){
    if (clusterlist[icluster]<0) continue;
    Int_t index = clusterlist[icluster];
    Int_t l=(index & 0xf0000000) >> 28;
    Int_t c=(index & 0x0fffffff) >> 00;
    // if (ny[l]<1.e-13){
    //   printf("problem\n");
    // }
    if (c>fgLayers[l].GetNumberOfClusters()) continue;
    //if (l>3) continue;
    AliITSRecPoint *cl = (AliITSRecPoint*)GetCluster(index);
    //
    Float_t deltan = 0;
    if (l>3&&cl->GetNy()+cl->GetNz()>6) continue;
    if (l>2&&AliITSReconstructor::GetRecoParam()->GetUseAmplitudeInfo(l))
      if (track->GetNormQ(l)/track->GetExpQ()>3.5) continue;
    if (l<2 || l>3){      
      deltan = (cl->GetNy()+cl->GetNz()-ny[l]-nz[l]);
    }
    else{
      deltan = (cl->GetNz()-nz[l]);
    }
    if (deltan>2.0) continue;  // extended - highly probable shared cluster
    //
    for (Int_t itrack=3;itrack>=0;itrack--){
      if (fgLayers[l].GetClusterTracks(itrack,c)<0) continue;
      if (fgLayers[l].GetClusterTracks(itrack,c)!=trackID){
       tracks[trackindex]  = fgLayers[l].GetClusterTracks(itrack,c);
       trackindex++;
      }
    }
  }
  if (trackindex==0) return -1;
  if (trackindex==1){    
    sharedtrack = tracks[0];
  }else{
    if (trackindex==2) sharedtrack =TMath::Min(tracks[0],tracks[1]);
    else{
      //
      Int_t tracks2[24], cluster[24];
      for (Int_t i=0;i<24;i++){ tracks2[i]=-1; cluster[i]=0;}
      Int_t index =0;
      //
      for (Int_t i=0;i<trackindex;i++){
	if (tracks[i]<0) continue;
	tracks2[index] = tracks[i];
	cluster[index]++;	
	for (Int_t j=i+1;j<trackindex;j++){
	  if (tracks[j]<0) continue;
	  if (tracks[j]==tracks[i]){
	    cluster[index]++;
	    tracks[j]=-1;
	  }
	}
	index++;
      }
      Int_t max=0;
      for (Int_t i=0;i<index;i++){
	if (cluster[index]>max) {
	  sharedtrack=tracks2[index];
	  max=cluster[index];
	}
      }
    }
  }
  
  if (sharedtrack>=100000) return -1;
  //
  // make list of overlaps
  shared =0;
  for (Int_t icluster=0;icluster<6;icluster++){
    if (clusterlist[icluster]<0) continue;
    Int_t index = clusterlist[icluster];
    Int_t l=(index & 0xf0000000) >> 28;
    Int_t c=(index & 0x0fffffff) >> 00;
    if (c>fgLayers[l].GetNumberOfClusters()) continue;
    AliITSRecPoint *cl = (AliITSRecPoint*)GetCluster(index);
    if (l==0 || l==1){
      if (cl->GetNy()>2) continue;
      if (cl->GetNz()>2) continue;
    }
    if (l==4 || l==5){
      if (cl->GetNy()>3) continue;
      if (cl->GetNz()>3) continue;
    }
    //
    for (Int_t itrack=3;itrack>=0;itrack--){
      if (fgLayers[l].GetClusterTracks(itrack,c)<0) continue;
      if (fgLayers[l].GetClusterTracks(itrack,c)==sharedtrack){
	overlist[l]=index;
	shared++;      
      }
    }
  }
  return sharedtrack;
}
//------------------------------------------------------------------------
AliITStrackMI *  AliITStrackerMI::GetBest2Tracks(Int_t trackID1, Int_t trackID2, Float_t th0, Float_t th1,AliITStrackMI* original){
  //
  // try to find track hypothesys without conflicts
  // with minimal chi2;
  TClonesArray *arr1 = (TClonesArray*)fTrackHypothesys.At(trackID1);
  Int_t entries1 = arr1->GetEntriesFast();
  TClonesArray *arr2 = (TClonesArray*)fTrackHypothesys.At(trackID2);
  if (!arr2) return (AliITStrackMI*) arr1->UncheckedAt(0);
  Int_t entries2 = arr2->GetEntriesFast();
  if (entries2<=0) return (AliITStrackMI*) arr1->UncheckedAt(0);
  //
  AliITStrackMI * track10=(AliITStrackMI*) arr1->UncheckedAt(0);
  AliITStrackMI * track20=(AliITStrackMI*) arr2->UncheckedAt(0);
  if (track10->Pt()>0.5+track20->Pt()) return track10;
  //
  for (Int_t itrack=0;itrack<entries1;itrack++){
    AliITStrackMI * track=(AliITStrackMI*) arr1->UncheckedAt(itrack);
    UnRegisterClusterTracks(track,trackID1);
  }
  //
  for (Int_t itrack=0;itrack<entries2;itrack++){
    AliITStrackMI * track=(AliITStrackMI*) arr2->UncheckedAt(itrack);
    UnRegisterClusterTracks(track,trackID2);
  }
  Int_t index1=0;
  Int_t index2=0;
  Float_t maxconflicts=6;
  Double_t maxchi2 =1000.;
  //
  // get weight of hypothesys - using best hypothesy
  Double_t w1,w2;
 
  Int_t list1[6],list2[6];
  AliITSRecPoint *clist1[6], *clist2[6] ;
  RegisterClusterTracks(track10,trackID1);
  RegisterClusterTracks(track20,trackID2);
  Float_t conflict1 = GetNumberOfSharedClusters(track10,trackID1,list1,clist1);
  Float_t conflict2 = GetNumberOfSharedClusters(track20,trackID2,list2,clist2);
  UnRegisterClusterTracks(track10,trackID1);
  UnRegisterClusterTracks(track20,trackID2);
  //
  // normalized chi2
  Float_t chi21 =0,chi22=0,ncl1=0,ncl2=0;
  Float_t nerry[6],nerrz[6];
  Float_t *erry1=GetErrY(trackID1),*errz1 = GetErrZ(trackID1);
  Float_t *erry2=GetErrY(trackID2),*errz2 = GetErrZ(trackID2);
  for (Int_t i=0;i<6;i++){
     if ( (erry1[i]>0) && (erry2[i]>0)) {
       nerry[i] = TMath::Min(erry1[i],erry2[i]);
       nerrz[i] = TMath::Min(errz1[i],errz2[i]);
     }else{
       nerry[i] = TMath::Max(erry1[i],erry2[i]);
       nerrz[i] = TMath::Max(errz1[i],errz2[i]);
     }
     if (TMath::Abs(track10->GetDy(i))>0.000000000000001){
       chi21 += track10->GetDy(i)*track10->GetDy(i)/(nerry[i]*nerry[i]);
       chi21 += track10->GetDz(i)*track10->GetDz(i)/(nerrz[i]*nerrz[i]);
       ncl1++;
     }
     if (TMath::Abs(track20->GetDy(i))>0.000000000000001){
       chi22 += track20->GetDy(i)*track20->GetDy(i)/(nerry[i]*nerry[i]);
       chi22 += track20->GetDz(i)*track20->GetDz(i)/(nerrz[i]*nerrz[i]);
       ncl2++;
     }
  }
  chi21/=ncl1;
  chi22/=ncl2;
  //
  // 
  Float_t d1 = TMath::Sqrt(track10->GetD(0)*track10->GetD(0)+track10->GetD(1)*track10->GetD(1))+0.1;
  Float_t d2 = TMath::Sqrt(track20->GetD(0)*track20->GetD(0)+track20->GetD(1)*track20->GetD(1))+0.1;
  Float_t s1 = TMath::Sqrt(track10->GetSigmaY2()*track10->GetSigmaZ2());
  Float_t s2 = TMath::Sqrt(track20->GetSigmaY2()*track20->GetSigmaZ2());
  //
  w1 = (d2/(d1+d2)+ 2*s2/(s1+s2)+
	+s2/(s1+s2)*0.5*(chi22+2.)/(chi21+chi22+4.)
	+1.*track10->Pt()/(track10->Pt()+track20->Pt())
	);
  w2 = (d1/(d1+d2)+ 2*s1/(s1+s2)+
	s1/(s1+s2)*0.5*(chi21+2.)/(chi21+chi22+4.)
	+1.*track20->Pt()/(track10->Pt()+track20->Pt())
	);

  Double_t sumw = w1+w2;
  w1/=sumw;
  w2/=sumw;
  if (w1<w2*0.5) {
    w1 = (d2+0.5)/(d1+d2+1.);
    w2 = (d1+0.5)/(d1+d2+1.);
  }
  //  Float_t maxmax       = w1*track10->fChi2MIP[0]+w2*track20->fChi2MIP[0]+w1*conflict1+w2*conflict2+1.;
  //Float_t maxconflicts0 = w1*conflict1+w2*conflict2;
  //
  // get pair of "best" hypothesys
  //  
  Float_t * ny1 = GetNy(trackID1), * nz1 = GetNz(trackID1); 
  Float_t * ny2 = GetNy(trackID2), * nz2 = GetNz(trackID2); 

  for (Int_t itrack1=0;itrack1<entries1;itrack1++){
    AliITStrackMI * track1=(AliITStrackMI*) arr1->UncheckedAt(itrack1);
    //if (track1->fFakeRatio>0) continue;
    RegisterClusterTracks(track1,trackID1);
    for (Int_t itrack2=0;itrack2<entries2;itrack2++){
      AliITStrackMI * track2=(AliITStrackMI*) arr2->UncheckedAt(itrack2);

      //      Float_t current = w1*track1->fChi2MIP[0]+w2*track2->fChi2MIP[0];
      //if (track2->fFakeRatio>0) continue;
      Float_t nskipped=0;            
      RegisterClusterTracks(track2,trackID2);
      Float_t cconflict1 = GetNumberOfSharedClusters(track1,trackID1,list1,clist1);
      Float_t cconflict2 = GetNumberOfSharedClusters(track2,trackID2,list2,clist2);
      UnRegisterClusterTracks(track2,trackID2);
      //
      if (track1->GetConstrain()) nskipped+=w1*track1->GetNSkipped();
      if (track2->GetConstrain()) nskipped+=w2*track2->GetNSkipped();
      if (nskipped>0.5) continue;
      //
      //if ( w1*conflict1+w2*conflict2>maxconflicts0) continue;
      if (conflict1+1<cconflict1) continue;
      if (conflict2+1<cconflict2) continue;
      Float_t conflict=0;
      Float_t sumchi2=0;
      Float_t sum=0;
      for (Int_t i=0;i<6;i++){
	//
	Float_t c1 =0.; // conflict coeficients
	Float_t c2 =0.; 
	if (clist1[i]&&clist2[i]){
	  Float_t deltan = 0;
	  if (i<2 || i>3){      
	    deltan = (clist1[i]->GetNy()+clist1[i]->GetNz()-TMath::Max(ny1[i],ny2[i])-TMath::Max(nz1[i],nz2[i]));
	  }
	  else{
	    deltan = (clist1[i]->GetNz()-TMath::Max(nz1[i],nz2[i]));
	  }
	  c1  = 2./TMath::Max(3.+deltan,2.);	  
	  c2  = 2./TMath::Max(3.+deltan,2.);	  
	}
	else{
	  if (clist1[i]){
	    Float_t deltan = 0;
	    if (i<2 || i>3){      
	      deltan = (clist1[i]->GetNy()+clist1[i]->GetNz()-ny1[i]-nz1[i]);
	    }
	    else{
	      deltan = (clist1[i]->GetNz()-nz1[i]);
	    }
	    c1  = 2./TMath::Max(3.+deltan,2.);	  
	    c2  = 0;
	  }

	  if (clist2[i]){
	    Float_t deltan = 0;
	    if (i<2 || i>3){      
	      deltan = (clist2[i]->GetNy()+clist2[i]->GetNz()-ny2[i]-nz2[i]);
	    }
	    else{
	      deltan = (clist2[i]->GetNz()-nz2[i]);
	    }
	    c2  = 2./TMath::Max(3.+deltan,2.);	  
	    c1  = 0;
	  }	  
	}
	//
	chi21=0;chi22=0;
	if (TMath::Abs(track1->GetDy(i))>0.) {
	  chi21 = (track1->GetDy(i)/track1->GetSigmaY(i))*(track1->GetDy(i)/track1->GetSigmaY(i))+
	    (track1->GetDz(i)/track1->GetSigmaZ(i))*(track1->GetDz(i)/track1->GetSigmaZ(i));
	  //chi21 = (track1->fDy[i]*track1->fDy[i])/(nerry[i]*nerry[i])+
	  //  (track1->GetDz(i)*track1->GetDz(i))/(nerrz[i]*nerrz[i]);
	}else{
	  if (TMath::Abs(track1->GetSigmaY(i)>0.)) c1=1;
	}
	//
	if (TMath::Abs(track2->GetDy(i))>0.) {
	  chi22 = (track2->GetDy(i)/track2->GetSigmaY(i))*(track2->GetDy(i)/track2->GetSigmaY(i))+
	    (track2->GetDz(i)/track2->GetSigmaZ(i))*(track2->GetDz(i)/track2->GetSigmaZ(i));
	  //chi22 = (track2->fDy[i]*track2->fDy[i])/(nerry[i]*nerry[i])+
	  //  (track2->fDz[i]*track2->fDz[i])/(nerrz[i]*nerrz[i]);
	}
	else{
	  if (TMath::Abs(track2->GetSigmaY(i)>0.)) c2=1;
	}
	sumchi2+=w1*(1.+c1)*(1+c1)*(chi21+c1)+w2*(1.+c2)*(1+c2)*(chi22+c2);
	if (chi21>0) sum+=w1;
	if (chi22>0) sum+=w2;
	conflict+=(c1+c2);
      }
      Double_t norm = sum-w1*track1->GetNSkipped()-w2*track2->GetNSkipped();
      if (norm<0) norm =1/(w1*track1->GetNSkipped()+w2*track2->GetNSkipped());
      Double_t normchi2 = 2*conflict+sumchi2/sum;
      if ( normchi2 <maxchi2 ){	  
	index1 = itrack1;
	index2 = itrack2;
	maxconflicts = conflict;
	maxchi2 = normchi2;
      }      
    }
    UnRegisterClusterTracks(track1,trackID1);
  }
  //
  //  if (maxconflicts<4 && maxchi2<th0){   
  if (maxchi2<th0*2.){   
    Float_t orig = track10->GetFakeRatio()*track10->GetNumberOfClusters();
    AliITStrackMI* track1=(AliITStrackMI*) arr1->UncheckedAt(index1);
    track1->SetChi2MIP(5,maxconflicts);
    track1->SetChi2MIP(6,maxchi2);
    track1->SetChi2MIP(7,0.01+orig-(track1->GetFakeRatio()*track1->GetNumberOfClusters()));
    //    track1->UpdateESDtrack(AliESDtrack::kITSin);
    track1->SetChi2MIP(8,index1);
    fBestTrackIndex[trackID1] =index1;
    UpdateESDtrack(track1, AliESDtrack::kITSin);
    original->SetWinner(track1);
  }  
  else if (track10->GetChi2MIP(0)<th1){
    track10->SetChi2MIP(5,maxconflicts);
    track10->SetChi2MIP(6,maxchi2);    
    //    track10->UpdateESDtrack(AliESDtrack::kITSin);
    UpdateESDtrack(track10,AliESDtrack::kITSin);
    original->SetWinner(track10);
  }   
  
  for (Int_t itrack=0;itrack<entries1;itrack++){
    AliITStrackMI * track=(AliITStrackMI*) arr1->UncheckedAt(itrack);
    UnRegisterClusterTracks(track,trackID1);
  }
  //
  for (Int_t itrack=0;itrack<entries2;itrack++){
    AliITStrackMI * track=(AliITStrackMI*) arr2->UncheckedAt(itrack);
    UnRegisterClusterTracks(track,trackID2);
  }

  if (track10->GetConstrain()&&track10->GetChi2MIP(0)<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(0)&&track10->GetChi2MIP(1)<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(1)
      &&track10->GetChi2MIP(2)<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(2)&&track10->GetChi2MIP(3)<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(3)){ 
    //  if (track10->fChi2MIP[0]<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(0)&&track10->fChi2MIP[1]<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(1)
  //    &&track10->fChi2MIP[2]<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(2)&&track10->fChi2MIP[3]<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(3)){ 
    RegisterClusterTracks(track10,trackID1);
  }
  if (track20->GetConstrain()&&track20->GetChi2MIP(0)<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(0)&&track20->GetChi2MIP(1)<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(1)
      &&track20->GetChi2MIP(2)<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(2)&&track20->GetChi2MIP(3)<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(3)){ 
    //if (track20->fChi2MIP[0]<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(0)&&track20->fChi2MIP[1]<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(1)
    //  &&track20->fChi2MIP[2]<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(2)&&track20->fChi2MIP[3]<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(3)){ 
    RegisterClusterTracks(track20,trackID2);  
  }
  return track10; 
 
}
//------------------------------------------------------------------------
void AliITStrackerMI::UseClusters(const AliKalmanTrack *t, Int_t from) const {
  //--------------------------------------------------------------------
  // This function marks clusters assigned to the track
  //--------------------------------------------------------------------
  AliTracker::UseClusters(t,from);

  AliITSRecPoint *c=(AliITSRecPoint *)GetCluster(t->GetClusterIndex(0));
  //if (c->GetQ()>2) c->Use();
  if (c->GetSigmaZ2()>0.1) c->Use();
  c=(AliITSRecPoint *)GetCluster(t->GetClusterIndex(1));
  //if (c->GetQ()>2) c->Use();
  if (c->GetSigmaZ2()>0.1) c->Use();

}
//------------------------------------------------------------------------
void AliITStrackerMI::AddTrackHypothesys(AliITStrackMI * track, Int_t esdindex)
{
  //------------------------------------------------------------------
  // add track to the list of hypothesys
  //------------------------------------------------------------------

  //
  TObjArray * array = (TObjArray*) fTrackHypothesys.At(esdindex);
  if (!array) {
    array = new TObjArray(10);
    fTrackHypothesys.AddAtAndExpand(array,esdindex);
  }
  array->AddLast(track);
}
//------------------------------------------------------------------------
void AliITStrackerMI::SortTrackHypothesys(Int_t esdindex, Int_t maxcut, Int_t mode)
{
  //-------------------------------------------------------------------
  // compress array of track hypothesys
  // keep only maxsize best hypothesys
  //-------------------------------------------------------------------
  if (esdindex>fTrackHypothesys.GetEntriesFast()) return;
  if (! (fTrackHypothesys.At(esdindex)) ) return;
  TObjArray * array = (TObjArray*) fTrackHypothesys.At(esdindex);
  Int_t entries = array->GetEntriesFast();
  //
  //- find preliminary besttrack as a reference
  Float_t minchi2=10000;
  Int_t maxn=0;
  AliITStrackMI * besttrack=0;
  //
  for (Int_t itrack=0;itrack<array->GetEntriesFast();itrack++){
    AliITStrackMI * track = (AliITStrackMI*)array->At(itrack);
    if (!track) continue;
    Float_t chi2 = NormalizedChi2(track,0);
    //
    Int_t tpcLabel=track->GetESDtrack()->GetTPCLabel();
    track->SetLabel(tpcLabel);
    CookdEdx(track);
    track->SetFakeRatio(1.);
    CookLabel(track,0.); //For comparison only
    //
    //if (chi2<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(0)&&track->fFakeRatio==0){
    if (chi2<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(0)){
      if (track->GetNumberOfClusters()<maxn) continue;
      maxn = track->GetNumberOfClusters();
      //      if (fSelectBestMIP03 && track->GetChi2MIP(3)>0) chi2 *= track->GetChi2MIP(3); // RS    
      if (chi2<minchi2){
	minchi2=chi2;
	besttrack=track;
      }
    }
    else{
      if (track->GetConstrain() || track->GetNumberOfClusters()>5){  //keep best short tracks - without vertex constrain
	delete array->RemoveAt(itrack);
      }	 
    }
  }
  if (!besttrack) return;
  //
  //
  //take errors of best track as a reference
  Float_t *erry = GetErrY(esdindex), *errz = GetErrZ(esdindex);
  Float_t *ny = GetNy(esdindex), *nz = GetNz(esdindex);
  for (Int_t j=0;j<6;j++) {
    if (besttrack->GetClIndex(j)>=0){
      erry[j] = besttrack->GetSigmaY(j); erry[j+6] = besttrack->GetSigmaY(j+6);
      errz[j] = besttrack->GetSigmaZ(j); errz[j+6] = besttrack->GetSigmaZ(j+6);
      ny[j]   = besttrack->GetNy(j);
      nz[j]   = besttrack->GetNz(j);
    }
  }
  //
  // calculate normalized chi2
  //
  Float_t * chi2        = new Float_t[entries];
  Int_t * index         = new Int_t[entries];  
  for (Int_t i=0;i<entries;i++) chi2[i] =10000;
  for (Int_t itrack=0;itrack<entries;itrack++){
    AliITStrackMI * track = (AliITStrackMI*)array->At(itrack);
    if (track){
      AliDebug(2,Form("track %d  ncls %d\n",itrack,track->GetNumberOfClusters()));      
      double chi2t = GetNormalizedChi2(track, mode);
      track->SetChi2MIP(0,chi2t);
      if (chi2t<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(0)) {
	if (fSelectBestMIP03 && track->GetChi2MIP(3)>0) chi2t *= track->GetChi2MIP(3); // RS
	chi2[itrack] = chi2t;
      }
      else{
	if (track->GetConstrain() || track->GetNumberOfClusters()>5){  //keep best short tracks - without vertex constrain
	  delete array->RemoveAt(itrack);	     
	}
      }
    }
  }
  //
  TMath::Sort(entries,chi2,index,kFALSE);
  besttrack = (AliITStrackMI*)array->At(index[0]);
  if(besttrack) AliDebug(2,Form("ncls best track %d\n",besttrack->GetNumberOfClusters()));
  if (besttrack&&besttrack->GetChi2MIP(0)<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(0)){
    for (Int_t j=0;j<6;j++){
      if (besttrack->GetClIndex(j)>=0){
	erry[j] = besttrack->GetSigmaY(j); erry[j+6] = besttrack->GetSigmaY(j+6);
	errz[j] = besttrack->GetSigmaZ(j); erry[j+6] = besttrack->GetSigmaY(j+6);
	ny[j]   = besttrack->GetNy(j);
	nz[j]   = besttrack->GetNz(j);
      }
    }
  }
  //
  // calculate one more time with updated normalized errors
  for (Int_t i=0;i<entries;i++) chi2[i] =10000;  
  for (Int_t itrack=0;itrack<entries;itrack++){
    AliITStrackMI * track = (AliITStrackMI*)array->At(itrack);
    if (track){      
      double chi2t = GetNormalizedChi2(track, mode);
      track->SetChi2MIP(0,chi2t);
      AliDebug(2,Form("track %d  ncls %d\n",itrack,track->GetNumberOfClusters()));            
      if (track->GetChi2MIP(0)<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(0)) {
	if (fSelectBestMIP03 && track->GetChi2MIP(3)>0) chi2t *= track->GetChi2MIP(3); // RS
	chi2[itrack] = chi2t;  //-0*(track->GetNumberOfClusters()+track->GetNDeadZone()); 
      }
      else {
	if (track->GetConstrain() || track->GetNumberOfClusters()>5){  //keep best short tracks - without vertex constrain
	  delete array->RemoveAt(itrack);	
	}
      }
    }   
  }
  entries = array->GetEntriesFast();  
  //
  //
  if (entries>0){
    TObjArray * newarray = new TObjArray();  
    TMath::Sort(entries,chi2,index,kFALSE);
    besttrack = (AliITStrackMI*)array->At(index[0]);
    if (besttrack){
      AliDebug(2,Form("ncls best track %d     %f   %f\n",besttrack->GetNumberOfClusters(),besttrack->GetChi2MIP(0),chi2[index[0]]));
      //
      for (Int_t j=0;j<6;j++){
	if (besttrack->GetNz(j)>0&&besttrack->GetNy(j)>0){
	  erry[j] = besttrack->GetSigmaY(j); erry[j+6] = besttrack->GetSigmaY(j+6);
	  errz[j] = besttrack->GetSigmaZ(j); errz[j+6] = besttrack->GetSigmaZ(j+6);
	  ny[j]   = besttrack->GetNy(j);
	  nz[j]   = besttrack->GetNz(j);
	}
      }
      besttrack->SetChi2MIP(0,GetNormalizedChi2(besttrack,mode));
      minchi2 = TMath::Min(besttrack->GetChi2MIP(0)+5.+besttrack->GetNUsed(), double(AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(0)));
      Float_t minn = besttrack->GetNumberOfClusters()-3;
      Int_t accepted=0;
      for (Int_t i=0;i<entries;i++){
	AliITStrackMI * track = (AliITStrackMI*)array->At(index[i]);	
	if (!track) continue;
	if (accepted>maxcut) break;
	track->SetChi2MIP(0,GetNormalizedChi2(track,mode));
	if (track->GetConstrain() || track->GetNumberOfClusters()>5){  //keep best short tracks - without vertex constrain
	  if (track->GetNumberOfClusters()<6 && (track->GetChi2MIP(0)+track->GetNUsed()>minchi2)){
	    delete array->RemoveAt(index[i]);
	    continue;
	  }
	}
	Bool_t shortbest = !track->GetConstrain() && track->GetNumberOfClusters()<6;
	if ((track->GetChi2MIP(0)+track->GetNUsed()<minchi2 && track->GetNumberOfClusters()>=minn) ||shortbest){
	  if (!shortbest) accepted++;
	  //
	  newarray->AddLast(array->RemoveAt(index[i]));      
	  for (Int_t j=0;j<6;j++){
	    if (nz[j]==0){
	      erry[j] = track->GetSigmaY(j); erry[j+6] = track->GetSigmaY(j+6);
	      errz[j] = track->GetSigmaZ(j); errz[j]   = track->GetSigmaZ(j+6);
	      ny[j]   = track->GetNy(j);
	      nz[j]   = track->GetNz(j);
	    }
	  }
	}
	else{
	  delete array->RemoveAt(index[i]);
	}
      }
      array->Delete();
      delete fTrackHypothesys.RemoveAt(esdindex);
      fTrackHypothesys.AddAt(newarray,esdindex);
    }
    else{
      array->Delete();
      delete fTrackHypothesys.RemoveAt(esdindex);
    }
  }
  delete [] chi2;
  delete [] index;
}
//------------------------------------------------------------------------
AliITStrackMI * AliITStrackerMI::GetBestHypothesys(Int_t esdindex, AliITStrackMI * original, Int_t checkmax)
{
  //-------------------------------------------------------------
  // try to find best hypothesy
  // currently - minimal chi2 of track+backpropagated track+matching to the tpc track
  // RS: optionally changing this to product of Chi2MIP(0)*Chi2MIP(3) == (chi2*chi2_interpolated)
  //-------------------------------------------------------------
  if (fTrackHypothesys.GetEntriesFast()<=esdindex) return 0;
  TObjArray * array = (TObjArray*) fTrackHypothesys.At(esdindex);
  if (!array) return 0;
  Int_t entries = array->GetEntriesFast();
  if (!entries) return 0;  
  Float_t minchi2 = 100000;
  AliITStrackMI * besttrack=0;
  //
  AliITStrackMI * backtrack    = new AliITStrackMI(*original);
  AliITStrackMI * forwardtrack = new AliITStrackMI(*original);
  Double_t xyzVtx[]={GetX(),GetY(),GetZ()};	
  Double_t ersVtx[]={GetSigmaX()/3.,GetSigmaY()/3.,GetSigmaZ()/3.};
  //
  for (Int_t i=0;i<entries;i++){    
    AliITStrackMI * track = (AliITStrackMI*)array->At(i);    
    if (!track) continue;
    Float_t sigmarfi,sigmaz;
    GetDCASigma(track,sigmarfi,sigmaz);
    track->SetDnorm(0,sigmarfi);
    track->SetDnorm(1,sigmaz);
    //
    track->SetChi2MIP(1,1000000);
    track->SetChi2MIP(2,1000000);
    track->SetChi2MIP(3,1000000);
    //
    // backtrack
    backtrack = new(backtrack) AliITStrackMI(*track); 
    if (track->GetConstrain()) {
      if (!CorrectForPipeMaterial(backtrack,"inward")) continue;
      if (AliITSReconstructor::GetRecoParam()->GetImproveWithVertex()) {
	if (fUseImproveKalman) {if (!backtrack->ImproveKalman(xyzVtx,ersVtx,0,0,0)) continue;}
	else                   {if (!backtrack->Improve(0,xyzVtx,ersVtx)) continue;}
      }
      backtrack->ResetCovariance(10.);      
    }else{
      backtrack->ResetCovariance(10.);
    }
    backtrack->ResetClusters();

    Double_t x = original->GetX();
    if (!RefitAt(x,backtrack,track)) continue;
    //
    track->SetChi2MIP(1,NormalizedChi2(backtrack,0));
    //for (Int_t i=2;i<6;i++){track->fDy[i]+=backtrack->fDy[i]; track->fDz[i]+=backtrack->fDz[i];}
    if (track->GetChi2MIP(1)>AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(1)*6.)  continue;
    track->SetChi22(GetMatchingChi2(backtrack,original));

    if ((track->GetConstrain()) && track->GetChi22()>90.)  continue;
    if ((!track->GetConstrain()) && track->GetChi22()>30.)  continue;
    if ( track->GetChi22()/track->GetNumberOfClusters()>11.)  continue;


    if  (!(track->GetConstrain())&&track->GetChi2MIP(1)>AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(1))  continue;
    //
    //forward track - without constraint
    forwardtrack = new(forwardtrack) AliITStrackMI(*original);
    forwardtrack->ResetClusters();
    x = track->GetX();
    if (!RefitAt(x,forwardtrack,track) && fSelectBestMIP03) continue;  // w/o fwd track MIP03 is meaningless
    track->SetChi2MIP(2,NormalizedChi2(forwardtrack,0));    
    if  (track->GetChi2MIP(2)>AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(2)*6.0)  continue;
    if  (!(track->GetConstrain())&&track->GetChi2MIP(2)>AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(2))  continue;
    
    //track->fD[0] = forwardtrack->GetD(GetX(),GetY());
    //track->fD[1] = forwardtrack->GetZat(GetX())-GetZ();
    forwardtrack->GetDZ(GetX(),GetY(),GetZ(),track->GetDP());   //I.B.
    forwardtrack->SetD(0,track->GetD(0));
    forwardtrack->SetD(1,track->GetD(1));    
    {
      Int_t list[6];
      AliITSRecPoint* clist[6];
      track->SetChi2MIP(4,GetNumberOfSharedClusters(track,esdindex,list,clist));      
      if ( (!track->GetConstrain()) && track->GetChi2MIP(4)>1.0) continue;
    }
    
    track->SetChi2MIP(3,GetInterpolatedChi2(forwardtrack,backtrack));
    if  ( (track->GetChi2MIP(3)>6.*AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(3))) continue;    
    if  ( (!track->GetConstrain()) && (track->GetChi2MIP(3)>2*AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(3))) {
      track->SetChi2MIP(3,1000);
      continue; 
    }
    Double_t chi2 = track->GetChi2MIP(0); // +track->GetNUsed();    //RS
    if (fSelectBestMIP03) chi2 *= track->GetChi2MIP(3);
    else chi2 += track->GetNUsed();
    //
    for (Int_t ichi=0;ichi<5;ichi++){
      forwardtrack->SetChi2MIP(ichi, track->GetChi2MIP(ichi));
    }
    if (chi2 < minchi2){
      //besttrack = new AliITStrackMI(*forwardtrack);
      besttrack = track;
      besttrack->SetLabel(track->GetLabel());
      besttrack->SetFakeRatio(track->GetFakeRatio());
      minchi2   = chi2;
      //original->fD[0] = forwardtrack->GetD(GetX(),GetY());
      //original->fD[1] = forwardtrack->GetZat(GetX())-GetZ();
      forwardtrack->GetDZ(GetX(),GetY(),GetZ(),original->GetDP());    //I.B.
    }    
  }
  delete backtrack;
  delete forwardtrack;

  if (!besttrack)  return 0;

  Int_t accepted=0;
  for (Int_t i=0;i<entries;i++){    
    AliITStrackMI * track = (AliITStrackMI*)array->At(i);
   
    if (!track) continue;
    
    if (accepted>checkmax || track->GetChi2MIP(3)>AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(3)*6. || 
	(track->GetNumberOfClusters()<besttrack->GetNumberOfClusters()-1.)
	// RS: don't apply this cut when fSelectBestMIP03 is on
	|| (!fSelectBestMIP03 && (track->GetChi2MIP(0)>besttrack->GetChi2MIP(0)+2.*besttrack->GetNUsed()+3.))
	){
      if (track->GetConstrain() || track->GetNumberOfClusters()>5){  //keep best short tracks - without vertex constrain
	delete array->RemoveAt(i);    
	continue;
      }
    }
    else{
      accepted++;
    }
  }
  //
  array->Compress();
  SortTrackHypothesys(esdindex,checkmax,1);

  array = (TObjArray*) fTrackHypothesys.At(esdindex);
  if (!array) return 0; // PH What can be the reason? Check SortTrackHypothesys
  besttrack = (AliITStrackMI*)array->At(0);  
  if (!besttrack)  return 0;
  besttrack->SetChi2MIP(8,0);
  fBestTrackIndex[esdindex]=0;
  entries = array->GetEntriesFast();
  AliITStrackMI *longtrack =0;
  minchi2 =1000;
  Float_t minn=besttrack->GetNumberOfClusters()+besttrack->GetNDeadZone();
  for (Int_t itrack=entries-1;itrack>0;itrack--) {
    AliITStrackMI * track = (AliITStrackMI*)array->At(itrack);
    if (!track->GetConstrain()) continue;
    if (track->GetNumberOfClusters()+track->GetNDeadZone()<minn) continue;
    if (track->GetChi2MIP(0)-besttrack->GetChi2MIP(0)>0.0) continue;
    if (track->GetChi2MIP(0)>4.) continue;
    minn = track->GetNumberOfClusters()+track->GetNDeadZone();
    longtrack =track;
  }
  //if (longtrack) besttrack=longtrack;
  //
  // RS do shared cluster analysis here only if the new sharing analysis is not requested
  //RRR if (fFlagFakes) return besttrack;

  Int_t list[6];
  AliITSRecPoint * clist[6];
  Float_t shared = GetNumberOfSharedClusters(besttrack,esdindex,list,clist);
  if (besttrack->GetConstrain()&&besttrack->GetChi2MIP(0)<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(0)&&besttrack->GetChi2MIP(1)<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(1)
      &&besttrack->GetChi2MIP(2)<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(2)&&besttrack->GetChi2MIP(3)<AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(3)){ 
    RegisterClusterTracks(besttrack,esdindex);
  }
  //
  //
  if (shared>0.0){
    Int_t nshared;
    Int_t overlist[6];
    Int_t sharedtrack = GetOverlapTrack(besttrack, esdindex, nshared, list, overlist);
    if (sharedtrack>=0){
      //
      besttrack = GetBest2Tracks(esdindex,sharedtrack,10,5.5,original);     
      if (besttrack){
	shared = GetNumberOfSharedClusters(besttrack,esdindex,list,clist);
      }
      else return 0;
    }
  }  
  
  if (shared>2.5) return 0;
  if (shared>1.0) return besttrack;
  //
  // Don't sign clusters if not gold track
  //
  if (!besttrack->IsGoldPrimary()) return besttrack;
  if (besttrack->GetESDtrack()->GetKinkIndex(0)!=0) return besttrack;   //track belong to kink
  //
  if (fConstraint[fPass]){
    //
    // sign clusters
    //
    Float_t *ny = GetNy(esdindex), *nz = GetNz(esdindex);
    for (Int_t i=0;i<6;i++){
      Int_t index = besttrack->GetClIndex(i);
      if (index<0) continue; 
      Int_t ilayer =  (index & 0xf0000000) >> 28;
      if (besttrack->GetSigmaY(ilayer)<0.00000000001) continue;
      AliITSRecPoint *c = (AliITSRecPoint*)GetCluster(index);     
      if (!c) continue;
      if (ilayer>3&&c->GetNy()+c->GetNz()>6) continue;
      if ( (c->GetNy()+c->GetNz() )> ny[i]+nz[i]+0.7) continue; //shared track
      if (  c->GetNz()> nz[i]+0.7) continue; //shared track
      if ( ilayer>2&& AliITSReconstructor::GetRecoParam()->GetUseAmplitudeInfo(ilayer)) 
	if (besttrack->GetNormQ(ilayer)/besttrack->GetExpQ()>1.5) continue;
      //if (  c->GetNy()> ny[i]+0.7) continue; //shared track

      Bool_t cansign = kTRUE;
      for (Int_t itrack=0;itrack<entries; itrack++){
	AliITStrackMI * track = (AliITStrackMI*)array->At(i);   
	if (!track) continue;
	if (track->GetChi2MIP(0)>besttrack->GetChi2MIP(0)+2.*shared+1.) break;
	if ( (track->GetClIndex(ilayer)>=0) && (track->GetClIndex(ilayer)!=besttrack->GetClIndex(ilayer))){
	  cansign = kFALSE;
	  break;
	}
      }
      if (cansign){
	if (TMath::Abs(besttrack->GetDy(ilayer)/besttrack->GetSigmaY(ilayer))>3.) continue;
	if (TMath::Abs(besttrack->GetDz(ilayer)/besttrack->GetSigmaZ(ilayer))>3.) continue;    
	if (!c->IsUsed()) c->Use();
      }
    }
  }
  return besttrack;
} 
//------------------------------------------------------------------------
void  AliITStrackerMI::GetBestHypothesysMIP(TObjArray &itsTracks)
{
  //
  // get "best" hypothesys
  //

  Int_t nentries = itsTracks.GetEntriesFast();
  for (Int_t i=0;i<nentries;i++){
    AliITStrackMI* track = (AliITStrackMI*)itsTracks.At(i);
    if (!track) continue;
    TObjArray * array = (TObjArray*) fTrackHypothesys.At(i);
    if (!array) continue;
    if (array->GetEntriesFast()<=0) continue;
    //
    AliITStrackMI* longtrack=0;
    Float_t minn=0;
    Float_t maxchi2=1000;
    for (Int_t j=0;j<array->GetEntriesFast();j++){
      AliITStrackMI* trackHyp = (AliITStrackMI*)array->At(j);
      if (!trackHyp) continue;
      if (trackHyp->GetGoldV0()) {
	longtrack = trackHyp;   //gold V0 track taken
	break;
      }
      if (trackHyp->GetNumberOfClusters()+trackHyp->GetNDeadZone()<minn) continue;
      Float_t chi2 = trackHyp->GetChi2MIP(0);
      if (fSelectBestMIP03) chi2 *= trackHyp->GetChi2MIP(3);
      if (trackHyp->GetNumberOfClusters()+trackHyp->GetNDeadZone()>minn) maxchi2 = chi2; //trackHyp->GetChi2MIP(0);
      //
      if (fAfterV0){ // ??? RS
	if (!trackHyp->GetGoldV0()&&trackHyp->GetConstrain()==kFALSE) chi2+=5;
      }
      if (chi2 > maxchi2) continue;
      minn = trackHyp->GetNumberOfClusters()+trackHyp->GetNDeadZone();
      if (fSelectBestMIP03) minn++; // allow next to longest to win
      maxchi2 = chi2;
      longtrack=trackHyp;
    }    
    //
    //
    //
    AliITStrackMI * besttrack = (AliITStrackMI*)array->At(0);
    if (!longtrack) {longtrack = besttrack;}
    else besttrack= longtrack;
    //
    if (besttrack) {
      Int_t list[6];
      AliITSRecPoint * clist[6];
      Float_t shared = GetNumberOfSharedClusters(longtrack,i,list,clist);
      //
      track->SetNUsed(shared);      
      track->SetNSkipped(besttrack->GetNSkipped());
      track->SetChi2MIP(0,besttrack->GetChi2MIP(0));
      if (shared>0) {
	if(!AliITSReconstructor::GetRecoParam()->GetAllowSharedClusters()) continue;
	Int_t nshared;
	Int_t overlist[6]; 
	//
	Int_t sharedtrack = GetOverlapTrack(longtrack, i, nshared, list, overlist);
	//if (sharedtrack==-1) sharedtrack=0;
	if (sharedtrack>=0) {       
	  besttrack = GetBest2Tracks(i,sharedtrack,10,5.5,track);			  
	}
      }   
      if (besttrack&&fAfterV0) {
	UpdateESDtrack(besttrack,AliESDtrack::kITSin);
	track->SetWinner(besttrack);
      }
      if (besttrack) {
	if (fConstraint[fPass]) {
	  UpdateESDtrack(besttrack,AliESDtrack::kITSin);
	  track->SetWinner(besttrack);
	}
	if (besttrack->GetChi2MIP(0)+besttrack->GetNUsed()>1.5 && fConstraint[fPass]) {
	  if ( TMath::Abs(besttrack->GetD(0))>0.1 || 
	       TMath::Abs(besttrack->GetD(1))>0.1 ) track->SetReconstructed(kFALSE);	
	}       
      }
    }
  }
} 

//------------------------------------------------------------------------
void AliITStrackerMI::FlagFakes(const TObjArray &itsTracks)
{
  //
  // RS: flag those tracks which are suxpected to have fake clusters
  //
  const double kThreshPt = 0.5;
  AliRefArray *refArr[6];
  //
  for (int i=0;i<6;i++) {
    int ncl = fgLayers[i].GetNumberOfClusters();
    refArr[i] = new AliRefArray(ncl,TMath::Min(ncl,1000));
  }
  Int_t nentries = itsTracks.GetEntriesFast();
  //
  // fill cluster->track associations
  for (Int_t itr=0;itr<nentries;itr++){
    AliITStrackMI* track = (AliITStrackMI*)itsTracks.UncheckedAt(itr);   
    if (!track) continue;
    AliITStrackMI* trackITS = track->GetWinner();
    if (!trackITS) continue;
    for (int il=trackITS->GetNumberOfClusters();il--;) {
      int idx = trackITS->GetClusterIndex(il);
      Int_t l=(idx & 0xf0000000) >> 28, c=(idx & 0x0fffffff) >> 00;
      //      if (c>fgLayers[l].GetNumberOfClusters()) continue;
      refArr[l]->AddReference(c, itr);
    }
  }
  //
  const UInt_t kMaxRef = 100;
  UInt_t crefs[kMaxRef];
  Int_t ncrefs=0;
  // process tracks with shared clusters
  for (int itr=0;itr<nentries;itr++){
    AliITStrackMI* track0 = (AliITStrackMI*)itsTracks.UncheckedAt(itr);  
    AliITStrackMI* trackH0 = track0->GetWinner(); 
    if (!trackH0) continue;
    AliESDtrack* esd0 = track0->GetESDtrack();
    //
    for (int il=0;il<trackH0->GetNumberOfClusters();il++) {
      int idx = trackH0->GetClusterIndex(il);
      Int_t l=(idx & 0xf0000000) >> 28, c=(idx & 0x0fffffff) >> 00;
      ncrefs = refArr[l]->GetReferences(c,crefs,kMaxRef);                
      if (ncrefs<2) continue; // there will be always self-reference, for sharing needs at least 2
      esd0->SetITSSharedFlag(l); 
      for (int ir=ncrefs;ir--;) {
	if (int(crefs[ir]) <= itr) continue; // ==:selfreference, <: the same pair will be checked with >
	AliITStrackMI* track1 = (AliITStrackMI*)itsTracks.UncheckedAt(crefs[ir]);
	AliITStrackMI* trackH1 = track1->GetWinner(); 
	AliESDtrack* esd1 = track1->GetESDtrack();
	esd1->SetITSSharedFlag(l);
	//
	double pt0 = trackH0->Pt(), pt1 = trackH1->Pt(), res = 0.;	
	if      (pt0>kThreshPt && pt0-pt1>0.2+0.2*(pt0-kThreshPt) ) res = -100;
	else if (pt1>kThreshPt && pt1-pt0>0.2+0.2*(pt1-kThreshPt) ) res = 100;

	// select the one with smallest chi2's product
	res += trackH0->GetChi2MIP(0)*trackH0->GetChi2MIP(3); 
	res -= trackH1->GetChi2MIP(0)*trackH1->GetChi2MIP(3);
	//
	if (res<0) esd1->SetITSFakeFlag();  // esd0 is winner
	else       esd0->SetITSFakeFlag();  // esd1 is winner
      }
      //
    }
    //
  }
  //
  for (int i=6;i--;) delete refArr[i];
}



//------------------------------------------------------------------------
void AliITStrackerMI::CookLabel(AliITStrackMI *track,Float_t wrong) const {
  //--------------------------------------------------------------------
  //This function "cooks" a track label. If label<0, this track is fake.
  //--------------------------------------------------------------------
  const int kMaxLbPerCl = 3;
  int lbID[36],lbStat[36];
  Int_t nLab=0, nCl = track->GetNumberOfClusters();
  //
  //  track->SetLabel(-1);
  //  track->SetFakeRatio(0);
  //
  for (Int_t i=0;i<nCl;i++) { // fill all labels
    Int_t cindex = track->GetClusterIndex(i);
    //    Int_t l=(cindex & 0xf0000000) >> 28;
    AliITSRecPoint *cl = (AliITSRecPoint*)GetCluster(cindex);
    //
    for (int imc=0;imc<kMaxLbPerCl;imc++) { // labels within single cluster
      int trLb = cl->GetLabel(imc);
      if (trLb<0) break;
      // search this mc track in already accounted ones
      int iLab;
      for (iLab=0;iLab<nLab;iLab++) if (lbID[iLab]==trLb) break;
      if (iLab<nLab) lbStat[iLab]++;
      else {
	lbID[nLab] = trLb;
	lbStat[nLab++] = 1;
      }
    } // loop over given cluster's labels   
  } // loop over clusters
  //
  if (nLab<1) return; // no labels at all
  //
  Int_t tpcLabel=-1; 
  if (track->GetESDtrack() && track->GetESDtrack()->IsOn(AliESDtrack::kTPCin)){
    tpcLabel = TMath::Abs(track->GetESDtrack()->GetTPCLabel());
  }
  //
  // find majority label
  if (nCl && nLab) {
    int maxLab=0,tpcLabID=-1;
    for (int ilb=nLab;ilb--;) {
      int st = lbStat[ilb];
      if (lbStat[maxLab]<st) maxLab = ilb;
      if (lbID[ilb] == tpcLabel) tpcLabID = ilb;
    }
    // if there is an equal choice, prefer ITS label consistent with TPC label
    if (tpcLabel>0 && (tpcLabID!=maxLab) && lbStat[maxLab]==lbStat[tpcLabID]) maxLab=tpcLabID;
									       
    track->SetFakeRatio(1.-float(lbStat[maxLab])/nCl);
    track->SetLabel( lbStat[maxLab]>=nCl-wrong ? lbID[maxLab] : -lbID[maxLab]);
  }
  //
}

/*
//------------------------------------------------------------------------
void AliITStrackerMI::CookLabel(AliITStrackMI *track,Float_t wrong) const {
  //--------------------------------------------------------------------
  //This function "cooks" a track label. If label<0, this track is fake.
  //--------------------------------------------------------------------
  Int_t tpcLabel=-1; 
     
  if (track->GetESDtrack()){
    tpcLabel = track->GetESDtrack()->GetTPCLabel();
    ULong_t trStatus=track->GetESDtrack()->GetStatus();
    if(!(trStatus&AliESDtrack::kTPCin)) tpcLabel=track->GetLabel(); // for ITSsa tracks
  }
   track->SetChi2MIP(9,0);
   Int_t nwrong=0;
   for (Int_t i=0;i<track->GetNumberOfClusters();i++){
     Int_t cindex = track->GetClusterIndex(i);
     Int_t l=(cindex & 0xf0000000) >> 28;
     AliITSRecPoint *cl = (AliITSRecPoint*)GetCluster(cindex);
     Int_t isWrong=1;
     for (Int_t ind=0;ind<3;ind++){
       if (cl->GetLabel(ind)==TMath::Abs(tpcLabel)) isWrong=0;
       //AliDebug(2,Form("icl %d  ilab %d lab %d",i,ind,cl->GetLabel(ind)));
     }
     track->SetChi2MIP(9,track->GetChi2MIP(9)+isWrong*(2<<l));
     nwrong+=isWrong;
   }
   Int_t nclusters = track->GetNumberOfClusters();
   if (nclusters > 0) //PH Some tracks don't have any cluster
     track->SetFakeRatio(double(nwrong)/double(nclusters));
   if (tpcLabel>0 && track->GetFakeRatio()>wrong) {
     track->SetLabel(-tpcLabel);
   } else {
     track->SetLabel(tpcLabel);
   }
   AliDebug(2,Form(" nls %d wrong %d  label %d  tpcLabel %d\n",nclusters,nwrong,track->GetLabel(),tpcLabel)); 
}
*/

//------------------------------------------------------------------------
void AliITStrackerMI::CookdEdx(AliITStrackMI* track){
  //
  // Fill the dE/dx in this track
  //
  track->SetChi2MIP(9,0);
  for (Int_t i=0;i<track->GetNumberOfClusters();i++){
    Int_t cindex = track->GetClusterIndex(i);
    Int_t l=(cindex & 0xf0000000) >> 28;
    AliITSRecPoint *cl = (AliITSRecPoint*)GetCluster(cindex);
    Int_t lab = TMath::Abs(track->GetESDtrack()->GetTPCLabel());
    Int_t isWrong=1;
    for (Int_t ind=0;ind<3;ind++){
      if (cl->GetLabel(ind)==lab) isWrong=0;
    }
    track->SetChi2MIP(9,track->GetChi2MIP(9)+isWrong*(2<<l));
  }
  Double_t low=0.;
  Double_t up=0.51;    
  track->CookdEdx(low,up);
}
//------------------------------------------------------------------------
void AliITStrackerMI::MakeCoefficients(Int_t ntracks){
  //
  // Create some arrays
  //
  if (fCoefficients) delete []fCoefficients;
  fCoefficients = new Float_t[ntracks*48];
  for (Int_t i=0;i<ntracks*48;i++) fCoefficients[i]=-1.;
}
//------------------------------------------------------------------------
Double_t AliITStrackerMI::GetPredictedChi2MI(AliITStrackMI* track, const AliITSRecPoint *cluster,Int_t layer) 
{
  //
  // Compute predicted chi2
  //
  // Take into account the mis-alignment (bring track to cluster plane)
  Double_t xTrOrig=track->GetX();
  if (!track->Propagate(xTrOrig+cluster->GetX())) return 1000.;
  Float_t erry,errz,covyz;
  Float_t theta = track->GetTgl();
  Float_t phi   = track->GetSnp();
  phi *= TMath::Sqrt(1./((1.-phi)*(1.+phi)));
  AliITSClusterParam::GetError(layer,cluster,theta,phi,track->GetExpQ(),erry,errz,covyz);
  AliDebug(2,Form(" chi2: tr-cl   %f  %f   tr X %f cl X %f",track->GetY()-cluster->GetY(),track->GetZ()-cluster->GetZ(),track->GetX(),cluster->GetX()));
  AliDebug(2,Form(" chi2: tr-cl   %f  %f   tr X %f cl X %f",track->GetY()-cluster->GetY(),track->GetZ()-cluster->GetZ(),track->GetX(),cluster->GetX()));
  Double_t chi2 = track->GetPredictedChi2MI(cluster->GetY(),cluster->GetZ(),erry,errz,covyz);
  // Bring the track back to detector plane in ideal geometry
  // [mis-alignment will be accounted for in UpdateMI()]
  if (!track->Propagate(xTrOrig)) return 1000.;
  Float_t ny,nz;
  AliITSClusterParam::GetNTeor(layer,cluster,theta,phi,ny,nz);  
  Double_t delta = cluster->GetNy()+cluster->GetNz()-nz-ny;
  if (delta>1){
    chi2+=0.5*TMath::Min(delta/2,2.);
    chi2+=2.*cluster->GetDeltaProbability();
  }
  //
  track->SetNy(layer,ny);
  track->SetNz(layer,nz);
  track->SetSigmaY(layer,erry);
  track->SetSigmaZ(layer, errz);
  track->SetSigmaYZ(layer,covyz);
  //track->fNormQ[layer] = cluster->GetQ()/TMath::Sqrt(1+theta*theta+phi*phi);
  track->SetNormQ(layer,cluster->GetQ()/TMath::Sqrt((1.+ track->GetTgl()*track->GetTgl())/((1.-track->GetSnp())*(1.+track->GetSnp()))));
  return chi2;

}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::UpdateMI(AliITStrackMI* track, const AliITSRecPoint* cl,Double_t chi2,Int_t index) const 
{
  //
  // Update ITS track
  //
  Int_t layer = (index & 0xf0000000) >> 28;
  track->SetClIndex(layer, index);
  if (layer>1&&AliITSReconstructor::GetRecoParam()->GetUseAmplitudeInfo(layer)) {
    if (track->GetNormQ(layer)/track->GetExpQ()<0.5 ) {
      chi2+= (0.5-track->GetNormQ(layer)/track->GetExpQ())*10.;
      track->SetdEdxMismatch(track->GetdEdxMismatch()+(0.5-track->GetNormQ(layer)/track->GetExpQ())*10.);
    }
  }

  if (TMath::Abs(cl->GetQ())<1.e-13) return 0;  // ingore the "virtual" clusters


  // Take into account the mis-alignment (bring track to cluster plane)
  Double_t xTrOrig=track->GetX();
  Float_t clxyz[3]; cl->GetGlobalXYZ(clxyz);Double_t trxyz[3]; track->GetXYZ(trxyz);
  AliDebug(2,Form("gtr %f %f %f",trxyz[0],trxyz[1],trxyz[2]));
  AliDebug(2,Form("gcl %f %f %f",clxyz[0],clxyz[1],clxyz[2]));
  AliDebug(2,Form(" xtr %f  xcl %f",track->GetX(),cl->GetX()));

  if (!track->Propagate(xTrOrig+cl->GetX())) return 0;
  
  AliCluster c(*cl);
  c.SetSigmaY2(track->GetSigmaY(layer)*track->GetSigmaY(layer));
  c.SetSigmaZ2(track->GetSigmaZ(layer)*track->GetSigmaZ(layer));
  c.SetSigmaYZ(track->GetSigmaYZ(layer));


  Int_t updated = track->UpdateMI(&c,chi2,index);
  // Bring the track back to detector plane in ideal geometry
  if (!track->Propagate(xTrOrig)) return 0;
 
  if(!updated) AliDebug(2,"update failed");
  return updated;
}

//------------------------------------------------------------------------
void AliITStrackerMI::GetDCASigma(const AliITStrackMI* track, Float_t & sigmarfi, Float_t &sigmaz)
{
  //
  //DCA sigmas parameterization
  //to be paramterized using external parameters in future 
  //
  // 
  Double_t curv=track->GetC();
  sigmarfi = 0.0040+1.4 *TMath::Abs(curv)+332.*curv*curv;
  sigmaz   = 0.0110+4.37*TMath::Abs(curv);
}
//------------------------------------------------------------------------
void AliITStrackerMI::SignDeltas(const TObjArray *clusterArray, Float_t vz)
{
  //
  // Clusters from delta electrons?
  //  
  Int_t entries = clusterArray->GetEntriesFast();
  if (entries<4) return;
  AliITSRecPoint* cluster = (AliITSRecPoint*)clusterArray->At(0);
  Int_t layer = cluster->GetLayer();
  if (layer>1) return;
  Int_t index[10000];
  Int_t ncandidates=0;
  Float_t r = (layer>0)? 7:4;
  // 
  for (Int_t i=0;i<entries;i++){
    AliITSRecPoint* cl0 = (AliITSRecPoint*)clusterArray->At(i);
    Float_t nz = 1+TMath::Abs((cl0->GetZ()-vz)/r);
    if (cl0->GetNy()+cl0->GetNz()<=5+2*layer+nz) continue;
    index[ncandidates] = i;  //candidate to belong to delta electron track
    ncandidates++;
    if (cl0->GetNy()+cl0->GetNz()>9+2*layer+nz) {
      cl0->SetDeltaProbability(1);
    }
  }
  //
  //  
  //
  for (Int_t i=0;i<ncandidates;i++){
    AliITSRecPoint* cl0 = (AliITSRecPoint*)clusterArray->At(index[i]);
    if (cl0->GetDeltaProbability()>0.8) continue;
    // 
    Int_t ncl = 0;
    Float_t y[100],z[100],sumy,sumz,sumy2, sumyz, sumw;
    sumy=sumz=sumy2=sumyz=sumw=0.0;
    for (Int_t j=0;j<ncandidates;j++){
      if (i==j) continue;
      AliITSRecPoint* cl1 = (AliITSRecPoint*)clusterArray->At(index[j]);
      //
      Float_t dz = cl0->GetZ()-cl1->GetZ();
      Float_t dy = cl0->GetY()-cl1->GetY();
      if (TMath::Sqrt(dz*dz+dy*dy)<0.2){
	Float_t weight = cl1->GetNy()+cl1->GetNz()-2;
	y[ncl] = cl1->GetY();
	z[ncl] = cl1->GetZ();
	sumy+= y[ncl]*weight;
	sumz+= z[ncl]*weight;
	sumy2+=y[ncl]*y[ncl]*weight;
	sumyz+=y[ncl]*z[ncl]*weight;
	sumw+=weight;
	ncl++;
      }
    }
    if (ncl<4) continue;
    Float_t det = sumw*sumy2  - sumy*sumy;
    Float_t delta=1000;
    if (TMath::Abs(det)>0.01){
      Float_t z0  = (sumy2*sumz - sumy*sumyz)/det;
      Float_t k   = (sumyz*sumw - sumy*sumz)/det;
      delta = TMath::Abs(cl0->GetZ()-(z0+k*cl0->GetY()));
    }
    else{
      Float_t z0  = sumyz/sumy;
      delta = TMath::Abs(cl0->GetZ()-z0);
    }
    if ( delta<0.05) {
      cl0->SetDeltaProbability(1-20.*delta);
    }   
  }
}
//------------------------------------------------------------------------
void AliITStrackerMI::UpdateESDtrack(AliITStrackMI* track, ULong_t flags) const
{
  //
  // Update ESD track
  //
  track->UpdateESDtrack(flags);
  AliITStrackMI * oldtrack = (AliITStrackMI*)(track->GetESDtrack()->GetITStrack());
  if (oldtrack) delete oldtrack; 
  track->GetESDtrack()->SetITStrack(new AliITStrackMI(*track));
  // if (TMath::Abs(track->GetDnorm(1))<0.000000001){
  //   printf("Problem\n");
  // }
}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::GetNearestLayer(const Double_t *xr) const{
  //
  // Get nearest upper layer close to the point xr.
  // rough approximation 
  //
  const Float_t kRadiuses[6]={4,6.5,15.03,24.,38.5,43.7};
  Float_t radius = TMath::Sqrt(xr[0]*xr[0]+xr[1]*xr[1]);
  Int_t res =6;
  for (Int_t i=0;i<6;i++){
    if (radius<kRadiuses[i]){
      res =i;
      break;
    }
  }
  return res;
}
//------------------------------------------------------------------------
void AliITStrackerMI::BuildMaterialLUT(TString material) {
  //--------------------------------------------------------------------
  // Fill a look-up table with mean material
  //--------------------------------------------------------------------

  Int_t n=1000;
  Double_t mparam[7];
  Double_t point1[3],point2[3];
  Double_t phi,cosphi,sinphi,z;
  // 0-5 layers, 6 pipe, 7-8 shields 
  Double_t rmin[9]={ 3.5, 5.5,13.0,22.0,35.0,41.0, 2.0, 8.0,25.0};
  Double_t rmax[9]={ 5.5, 8.0,17.0,26.0,41.0,47.0, 3.0,10.5,30.0};

  Int_t ifirst=0,ilast=0;  
  if(material.Contains("Pipe")) {
    ifirst=6; ilast=6;
  } else if(material.Contains("Shields")) {
    ifirst=7; ilast=8;
  } else if(material.Contains("Layers")) {
    ifirst=0; ilast=5;
  } else {
    Error("BuildMaterialLUT","Wrong layer name\n");
  }
  const double kAngEps = 1e-4; // tiny slope to avoid tracks strictly normal to Z axis
  for(Int_t imat=ifirst; imat<=ilast; imat++) {
    Double_t param[5]={0.,0.,0.,0.,0.};
    for (Int_t i=0; i<n; i++) {
      phi = 2.*TMath::Pi()*gRandom->Rndm();
      cosphi = TMath::Cos(phi); sinphi = TMath::Sin(phi); 
      z = 14.*(-1.+2.*gRandom->Rndm()); // SPD barrel
      point1[0] = rmin[imat]*cosphi;
      point1[1] = rmin[imat]*sinphi;
      point1[2] = z;
      point2[0] = rmax[imat]*cosphi;
      point2[1] = rmax[imat]*sinphi;
      point2[2] = z+(rmax[imat]-rmin[imat])*kAngEps;
      AliTracker::MeanMaterialBudget(point1,point2,mparam);
      if (mparam[1]>999) {n--; continue;}  // skip anomalous values in failed propagation
      for(Int_t j=0;j<5;j++) param[j]+=mparam[j];
    }
    for(Int_t j=0;j<5;j++) param[j]/=(Float_t)n;
    if(imat<=5) {
      fxOverX0Layer[imat] = param[1];
      fxTimesRhoLayer[imat] = param[0]*param[4];
    } else if(imat==6) {
      fxOverX0Pipe = param[1];
      fxTimesRhoPipe = param[0]*param[4];
    } else if(imat==7) {
      fxOverX0Shield[0] = param[1];
      fxTimesRhoShield[0] = param[0]*param[4];
    } else if(imat==8) {
      fxOverX0Shield[1] = param[1];
      fxTimesRhoShield[1] = param[0]*param[4];
    }
  }
  /*
  printf("%s\n",material.Data());
  printf("%f  %f\n",fxOverX0Pipe,fxTimesRhoPipe);
  printf("%f  %f\n",fxOverX0Shield[0],fxTimesRhoShield[0]);
  printf("%f  %f\n",fxOverX0Shield[1],fxTimesRhoShield[1]);
  printf("%f  %f\n",fxOverX0Layer[0],fxTimesRhoLayer[0]);
  printf("%f  %f\n",fxOverX0Layer[1],fxTimesRhoLayer[1]);
  printf("%f  %f\n",fxOverX0Layer[2],fxTimesRhoLayer[2]);
  printf("%f  %f\n",fxOverX0Layer[3],fxTimesRhoLayer[3]);
  printf("%f  %f\n",fxOverX0Layer[4],fxTimesRhoLayer[4]);
  printf("%f  %f\n",fxOverX0Layer[5],fxTimesRhoLayer[5]);
  */
  return;
}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::CorrectForPipeMaterial(AliITStrackMI *t,
					      TString direction) {
  //-------------------------------------------------------------------
  // Propagate beyond beam pipe and correct for material
  // (material budget in different ways according to fUseTGeo value)
  // Add time if going outward (PropagateTo or PropagateToTGeo)
  //-------------------------------------------------------------------

  // Define budget mode:
  // 0: material from AliITSRecoParam (hard coded)
  // 1: material from TGeo in one step (on the fly)
  // 2: material from lut
  // 3: material from TGeo in one step (same for all hypotheses)
  Int_t mode;
  switch(fUseTGeo) {
  case 0:
    mode=0; 
    break;    
  case 1:
    mode=1;
    break;    
  case 2:
    mode=2;
    break;
  case 3:
    if(fTrackingPhase.Contains("Clusters2Tracks")) 
      { mode=3; } else { mode=1; }
    break;
  case 4:
    if(fTrackingPhase.Contains("Clusters2Tracks")) 
      { mode=3; } else { mode=2; }
    break;
  default:
    mode=0;
    break;
  }
  if(fTrackingPhase.Contains("Default")) mode=0;

  Int_t index=fCurrentEsdTrack;

  Float_t  dir = (direction.Contains("inward") ? 1. : -1.);
  Double_t rToGo=(dir>0 ? AliITSRecoParam::GetrInsidePipe() : AliITSRecoParam::GetrOutsidePipe());
  Double_t xToGo;
  if (!t->GetLocalXat(rToGo,xToGo)) return 0;

  Double_t xOverX0,x0,lengthTimesMeanDensity;

  switch(mode) {
  case 0:
    xOverX0 = AliITSRecoParam::GetdPipe();
    x0 = AliITSRecoParam::GetX0Be();
    lengthTimesMeanDensity = xOverX0*x0;
    lengthTimesMeanDensity *= dir;
    if (!t->PropagateTo(xToGo,xOverX0,lengthTimesMeanDensity/xOverX0)) return 0;
    break;
  case 1:
    if (!t->PropagateToTGeo(xToGo,1)) return 0;
    break;
  case 2:
    if(fxOverX0Pipe<0) BuildMaterialLUT("Pipe");  
    xOverX0 = fxOverX0Pipe;
    lengthTimesMeanDensity = fxTimesRhoPipe;
    lengthTimesMeanDensity *= dir;
    if (!t->PropagateTo(xToGo,xOverX0,lengthTimesMeanDensity/xOverX0)) return 0;
    break;
  case 3:
    if(!fxOverX0PipeTrks || index<0 || index>=fNtracks) Error("CorrectForPipeMaterial","Incorrect usage of UseTGeo option!\n");
    if(fxOverX0PipeTrks[index]<0) {
      if (!t->PropagateToTGeo(xToGo,1,xOverX0,lengthTimesMeanDensity)) return 0;
      Double_t angle=TMath::Sqrt((1.+t->GetTgl()*t->GetTgl())/
				 ((1.-t->GetSnp())*(1.+t->GetSnp())));
      fxOverX0PipeTrks[index] = TMath::Abs(xOverX0)/angle;
      fxTimesRhoPipeTrks[index] = TMath::Abs(lengthTimesMeanDensity)/angle;
      return 1;
    }
    xOverX0 = fxOverX0PipeTrks[index];
    lengthTimesMeanDensity = fxTimesRhoPipeTrks[index];
    lengthTimesMeanDensity *= dir;
    if (!t->PropagateTo(xToGo,xOverX0,lengthTimesMeanDensity/xOverX0)) return 0;
    break;
  }

  return 1;
}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::CorrectForShieldMaterial(AliITStrackMI *t,
						TString shield,
						TString direction) {
  //-------------------------------------------------------------------
  // Propagate beyond SPD or SDD shield and correct for material
  // (material budget in different ways according to fUseTGeo value)
  // Add time if going outward (PropagateTo or PropagateToTGeo)
  //-------------------------------------------------------------------

  // Define budget mode:
  // 0: material from AliITSRecoParam (hard coded)
  // 1: material from TGeo in steps of X cm (on the fly)
  //    X = AliITSRecoParam::GetStepSizeTGeo()
  // 2: material from lut
  // 3: material from TGeo in one step (same for all hypotheses)
  Int_t mode;
  switch(fUseTGeo) {
  case 0:
    mode=0; 
    break;    
  case 1:
    mode=1;
    break;    
  case 2:
    mode=2;
    break;
  case 3:
    if(fTrackingPhase.Contains("Clusters2Tracks")) 
      { mode=3; } else { mode=1; }
    break;
  case 4:
    if(fTrackingPhase.Contains("Clusters2Tracks")) 
      { mode=3; } else { mode=2; }
    break;
  default:
    mode=0;
    break;
  }
  if(fTrackingPhase.Contains("Default")) mode=0;

  Float_t  dir = (direction.Contains("inward") ? 1. : -1.);
  Double_t rToGo;
  Int_t    shieldindex=0;
  if (shield.Contains("SDD")) { // SDDouter
    rToGo=(dir>0 ? AliITSRecoParam::GetrInsideShield(1) : AliITSRecoParam::GetrOutsideShield(1));
    shieldindex=1;
  } else if (shield.Contains("SPD")) {        // SPDouter
    rToGo=(dir>0 ? AliITSRecoParam::GetrInsideShield(0) : AliITSRecoParam::GetrOutsideShield(0)); 
    shieldindex=0;
  } else {
    Error("CorrectForShieldMaterial"," Wrong shield name\n");
    return 0;
  }

  // do nothing if we are already beyond the shield
  Double_t rTrack = TMath::Sqrt(t->GetX()*t->GetX()+t->GetY()*t->GetY());
  if(dir<0 && rTrack > rToGo) return 1; // going outward
  if(dir>0 && rTrack < rToGo) return 1; // going inward


  Double_t xToGo;
  if (!t->GetLocalXat(rToGo,xToGo)) return 0;

  Int_t index=2*fCurrentEsdTrack+shieldindex;

  Double_t xOverX0,x0,lengthTimesMeanDensity;
  Int_t nsteps=1;

  switch(mode) {
  case 0:
    xOverX0 = AliITSRecoParam::Getdshield(shieldindex);
    x0 = AliITSRecoParam::GetX0shield(shieldindex);
    lengthTimesMeanDensity = xOverX0*x0;
    lengthTimesMeanDensity *= dir;
    if (!t->PropagateTo(xToGo,xOverX0,lengthTimesMeanDensity/xOverX0)) return 0;
    break;
  case 1:
    nsteps= (Int_t)(TMath::Abs(t->GetX()-xToGo)/AliITSReconstructor::GetRecoParam()->GetStepSizeTGeo())+1;
    if (!t->PropagateToTGeo(xToGo,nsteps)) return 0; // cross the material and apply correction
    break;
  case 2:
    if(fxOverX0Shield[shieldindex]<0) BuildMaterialLUT("Shields");  
    xOverX0 = fxOverX0Shield[shieldindex];
    lengthTimesMeanDensity = fxTimesRhoShield[shieldindex];
    lengthTimesMeanDensity *= dir;
    if (!t->PropagateTo(xToGo,xOverX0,lengthTimesMeanDensity/xOverX0)) return 0;
    break;
  case 3:
    if(!fxOverX0ShieldTrks || index<0 || index>=2*fNtracks) Error("CorrectForShieldMaterial","Incorrect usage of UseTGeo option!\n");
    if(fxOverX0ShieldTrks[index]<0) {
      if (!t->PropagateToTGeo(xToGo,1,xOverX0,lengthTimesMeanDensity)) return 0;
      Double_t angle=TMath::Sqrt((1.+t->GetTgl()*t->GetTgl())/
				 ((1.-t->GetSnp())*(1.+t->GetSnp())));
      fxOverX0ShieldTrks[index] = TMath::Abs(xOverX0)/angle;
      fxTimesRhoShieldTrks[index] = TMath::Abs(lengthTimesMeanDensity)/angle;
      return 1;
    }
    xOverX0 = fxOverX0ShieldTrks[index];
    lengthTimesMeanDensity = fxTimesRhoShieldTrks[index];
    lengthTimesMeanDensity *= dir;
    if (!t->PropagateTo(xToGo,xOverX0,lengthTimesMeanDensity/xOverX0)) return 0;
    break;
  }

  return 1;
}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::CorrectForLayerMaterial(AliITStrackMI *t,
					       Int_t layerindex,
					       Double_t oldGlobXYZ[3],
					       TString direction) {
  //-------------------------------------------------------------------
  // Propagate beyond layer and correct for material
  // (material budget in different ways according to fUseTGeo value)
  // Add time if going outward (PropagateTo or PropagateToTGeo)
  //-------------------------------------------------------------------

  // Define budget mode:
  // 0: material from AliITSRecoParam (hard coded)
  // 1: material from TGeo in stepsof X cm (on the fly)
  //    X = AliITSRecoParam::GetStepSizeTGeo()
  // 2: material from lut
  // 3: material from TGeo in one step (same for all hypotheses)
  Int_t mode;
  switch(fUseTGeo) {
  case 0:
    mode=0; 
    break;    
  case 1:
    mode=1;
    break;    
  case 2:
    mode=2;
    break;
  case 3:
    if(fTrackingPhase.Contains("Clusters2Tracks"))
      { mode=3; } else { mode=1; }
    break;
  case 4:
    if(fTrackingPhase.Contains("Clusters2Tracks")) 
      { mode=3; } else { mode=2; }
    break;
  default:
    mode=0;
    break;
  }
  if(fTrackingPhase.Contains("Default")) mode=0;

  Float_t  dir = (direction.Contains("inward") ? 1. : -1.);

  Double_t r=fgLayers[layerindex].GetR();
  Double_t deltar=(layerindex<2 ? 0.10*r : 0.05*r);

  Double_t rToGo=TMath::Sqrt(t->GetX()*t->GetX()+t->GetY()*t->GetY())-deltar*dir;
  Double_t xToGo;
  if (!t->GetLocalXat(rToGo,xToGo)) return 0;

  Int_t index=6*fCurrentEsdTrack+layerindex;


  Double_t xOverX0=0.0,x0=0.0,lengthTimesMeanDensity=0.0;
  Int_t nsteps=1;

  // back before material (no correction)
  Double_t rOld,xOld;
  rOld=TMath::Sqrt(oldGlobXYZ[0]*oldGlobXYZ[0]+oldGlobXYZ[1]*oldGlobXYZ[1]);
  if (!t->GetLocalXat(rOld,xOld)) return 0;
  if (!t->Propagate(xOld)) return 0;

  switch(mode) {
  case 0:
    xOverX0 = fgLayers[layerindex].GetThickness(t->GetY(),t->GetZ(),x0);
    lengthTimesMeanDensity = xOverX0*x0;
    lengthTimesMeanDensity *= dir;
    // Bring the track beyond the material
    if (!t->PropagateTo(xToGo,xOverX0,lengthTimesMeanDensity/xOverX0)) return 0;
    break;
  case 1:
    nsteps = (Int_t)(TMath::Abs(xOld-xToGo)/AliITSReconstructor::GetRecoParam()->GetStepSizeTGeo())+1;
    if (!t->PropagateToTGeo(xToGo,nsteps)) return 0; // cross the material and apply correction
    break;
  case 2:
    if(fxOverX0Layer[layerindex]<0) BuildMaterialLUT("Layers");  
    xOverX0 = fxOverX0Layer[layerindex];
    lengthTimesMeanDensity = fxTimesRhoLayer[layerindex];
    lengthTimesMeanDensity *= dir;
    // Bring the track beyond the material
    if (!t->PropagateTo(xToGo,xOverX0,lengthTimesMeanDensity/xOverX0)) return 0;
    break;
  case 3:
    if(!fxOverX0LayerTrks || index<0 || index>=6*fNtracks) Error("CorrectForLayerMaterial","Incorrect usage of UseTGeo option!\n");
    if(fxOverX0LayerTrks[index]<0) {
      nsteps = (Int_t)(TMath::Abs(xOld-xToGo)/AliITSReconstructor::GetRecoParam()->GetStepSizeTGeo())+1;
      if (!t->PropagateToTGeo(xToGo,nsteps,xOverX0,lengthTimesMeanDensity)) return 0;
      Double_t angle=TMath::Sqrt((1.+t->GetTgl()*t->GetTgl())/
				 ((1.-t->GetSnp())*(1.+t->GetSnp())));
      fxOverX0LayerTrks[index] = TMath::Abs(xOverX0)/angle;
      fxTimesRhoLayerTrks[index] = TMath::Abs(lengthTimesMeanDensity)/angle;
      return 1;
    }
    xOverX0 = fxOverX0LayerTrks[index];
    lengthTimesMeanDensity = fxTimesRhoLayerTrks[index];
    lengthTimesMeanDensity *= dir;
    if (!t->PropagateTo(xToGo,xOverX0,lengthTimesMeanDensity/xOverX0)) return 0;
    break;
  }


  return 1;
}
//------------------------------------------------------------------------
void AliITStrackerMI::MakeTrksMaterialLUT(Int_t ntracks) {
  //-----------------------------------------------------------------
  // Initialize LUT for storing material for each prolonged track
  //-----------------------------------------------------------------
  fxOverX0PipeTrks = new Float_t[ntracks]; 
  fxTimesRhoPipeTrks = new Float_t[ntracks]; 
  fxOverX0ShieldTrks = new Float_t[ntracks*2]; 
  fxTimesRhoShieldTrks = new Float_t[ntracks*2]; 
  fxOverX0LayerTrks = new Float_t[ntracks*6]; 
  fxTimesRhoLayerTrks = new Float_t[ntracks*6]; 

  for(Int_t i=0; i<ntracks; i++) {
    fxOverX0PipeTrks[i] = -1.;
    fxTimesRhoPipeTrks[i] = -1.;
  }
  for(Int_t j=0; j<ntracks*2; j++) {
    fxOverX0ShieldTrks[j] = -1.;
    fxTimesRhoShieldTrks[j] = -1.;
  }
  for(Int_t k=0; k<ntracks*6; k++) {
    fxOverX0LayerTrks[k] = -1.;
    fxTimesRhoLayerTrks[k] = -1.;
  }

  fNtracks = ntracks;  

  return;
}
//------------------------------------------------------------------------
void AliITStrackerMI::DeleteTrksMaterialLUT() {
  //-----------------------------------------------------------------
  // Delete LUT for storing material for each prolonged track
  //-----------------------------------------------------------------
  if(fxOverX0PipeTrks) { 
    delete [] fxOverX0PipeTrks; fxOverX0PipeTrks = 0; 
  } 
  if(fxOverX0ShieldTrks) { 
    delete [] fxOverX0ShieldTrks; fxOverX0ShieldTrks = 0; 
  } 
  
  if(fxOverX0LayerTrks) { 
    delete [] fxOverX0LayerTrks;  fxOverX0LayerTrks = 0; 
  } 
  if(fxTimesRhoPipeTrks) { 
    delete [] fxTimesRhoPipeTrks;  fxTimesRhoPipeTrks = 0; 
  } 
  if(fxTimesRhoShieldTrks) { 
    delete [] fxTimesRhoShieldTrks; fxTimesRhoShieldTrks = 0; 
  } 
  if(fxTimesRhoLayerTrks) { 
    delete [] fxTimesRhoLayerTrks; fxTimesRhoLayerTrks = 0; 
  } 
  return;
}
//------------------------------------------------------------------------
void AliITStrackerMI::SetForceSkippingOfLayer() {
  //-----------------------------------------------------------------
  // Check if we are forced to skip layers
  // either we set to skip them in RecoParam
  // or they were off during data-taking
  //-----------------------------------------------------------------

  const AliEventInfo *eventInfo = GetEventInfo();
  
  for(Int_t l=0; l<AliITSgeomTGeo::kNLayers; l++) {
    fForceSkippingOfLayer[l] = 0;
    // check reco param
    if(AliITSReconstructor::GetRecoParam()->GetLayersToSkip(l)) fForceSkippingOfLayer[l] = 1;
    // check run info

    if(eventInfo && 
       AliITSReconstructor::GetRecoParam()->GetSkipSubdetsNotInTriggerCluster()) {
      AliDebug(2,Form("GetEventInfo->GetTriggerCluster: %s",eventInfo->GetTriggerCluster()));
      if(l==0 || l==1)  {
	if(!strstr(eventInfo->GetTriggerCluster(),"ITSSPD")) fForceSkippingOfLayer[l] = 1;
      } else if(l==2 || l==3) {
	if(!strstr(eventInfo->GetTriggerCluster(),"ITSSDD")) fForceSkippingOfLayer[l] = 1; 
      } else {
	if(!strstr(eventInfo->GetTriggerCluster(),"ITSSSD")) fForceSkippingOfLayer[l] = 1;
      } 
    }
  }
  return;
}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::CheckSkipLayer(const AliITStrackMI *track,
				      Int_t ilayer,Int_t idet) const {
  //-----------------------------------------------------------------
  // This method is used to decide whether to allow a prolongation 
  // without clusters, because we want to skip the layer.
  // In this case the return value is > 0:
  // return 1: the user requested to skip a layer
  // return 2: track outside z acceptance
  //-----------------------------------------------------------------

  if (ForceSkippingOfLayer(ilayer)) return 1;

  Int_t innerLayCanSkip=0; // was 2, changed on 05.11.2009

  if (idet<0 &&  // out in z
      ilayer>innerLayCanSkip && 
      AliITSReconstructor::GetRecoParam()->GetExtendedEtaAcceptance()) {
    // check if track will cross SPD outer layer
    Double_t phiAtSPD2,zAtSPD2;
    if (track->GetPhiZat(fgLayers[1].GetR(),phiAtSPD2,zAtSPD2)) {
      if (TMath::Abs(zAtSPD2)<2.*AliITSRecoParam::GetSPDdetzlength()) return 2;
    }
    return 2; // always allow skipping, changed on 05.11.2009
  }

  return 0;
}
//------------------------------------------------------------------------
Int_t AliITStrackerMI::CheckDeadZone(AliITStrackMI *track,
				     Int_t ilayer,Int_t idet,
				     Double_t dz,Double_t dy,
				     Bool_t noClusters) const {
  //-----------------------------------------------------------------
  // This method is used to decide whether to allow a prolongation 
  // without clusters, because there is a dead zone in the road.
  // In this case the return value is > 0:
  // return 1: dead zone at z=0,+-7cm in SPD
  //     This method assumes that fSPDdetzcentre is ordered from -z to +z
  // return 2: all road is "bad" (dead or noisy) from the OCDB
  // return 3: at least a chip is "bad" (dead or noisy) from the OCDB
  // return 4: at least a single channel is "bad" (dead or noisy) from the OCDB
  //-----------------------------------------------------------------

  // check dead zones at z=0,+-7cm in the SPD
  if (ilayer<2 && !AliITSReconstructor::GetRecoParam()->GetAddVirtualClustersInDeadZone()) {
    Double_t zmindead[3]={fSPDdetzcentre[0] + 0.5*AliITSRecoParam::GetSPDdetzlength(),
			  fSPDdetzcentre[1] + 0.5*AliITSRecoParam::GetSPDdetzlength(),
			  fSPDdetzcentre[2] + 0.5*AliITSRecoParam::GetSPDdetzlength()};
    Double_t zmaxdead[3]={fSPDdetzcentre[1] - 0.5*AliITSRecoParam::GetSPDdetzlength(),
			  fSPDdetzcentre[2] - 0.5*AliITSRecoParam::GetSPDdetzlength(),
			  fSPDdetzcentre[3] - 0.5*AliITSRecoParam::GetSPDdetzlength()};
    for (Int_t i=0; i<3; i++)
      if (track->GetZ()-dz<zmaxdead[i] && track->GetZ()+dz>zmindead[i]) {
	AliDebug(2,Form("crack SPD %d track z %f   %f   %f  %f\n",ilayer,track->GetZ(),dz,zmaxdead[i],zmindead[i]));
	if (GetSPDDeadZoneProbability(track->GetZ(),TMath::Sqrt(track->GetSigmaZ2()))>0.1) return 1; 
      } 
  }

  // check bad zones from OCDB
  if (!AliITSReconstructor::GetRecoParam()->GetUseBadZonesFromOCDB()) return 0;

  if (idet<0) return 0;

  AliITSdetector &det=fgLayers[ilayer].GetDetector(idet);  

  Int_t detType=-1;
  Float_t detSizeFactorX=0.0001,detSizeFactorZ=0.0001;
  if (ilayer==0 || ilayer==1) {        // ----------  SPD
    detType = 0;
  } else if (ilayer==2 || ilayer==3) { // ----------  SDD
    detType = 1;
    detSizeFactorX *= 2.;
  } else if (ilayer==4 || ilayer==5) { // ----------  SSD
    detType = 2;
  }
  AliITSsegmentation *segm = (AliITSsegmentation*)fkDetTypeRec->GetSegmentationModel(detType);
  if (detType==2) segm->SetLayer(ilayer+1);
  Float_t detSizeX = detSizeFactorX*segm->Dx(); 
  Float_t detSizeZ = detSizeFactorZ*segm->Dz(); 

  // check if the road overlaps with bad chips
  Float_t xloc,zloc;
  if(!(LocalModuleCoord(ilayer,idet,track,xloc,zloc)))return 0;
  Float_t zlocmin = zloc-dz;
  Float_t zlocmax = zloc+dz;
  Float_t xlocmin = xloc-dy;
  Float_t xlocmax = xloc+dy;
  Int_t chipsInRoad[100];

  // check if road goes out of detector
  Bool_t touchNeighbourDet=kFALSE; 
  if (TMath::Abs(xlocmin)>0.5*detSizeX) {xlocmin=-0.4999*detSizeX; touchNeighbourDet=kTRUE;} 
  if (TMath::Abs(xlocmax)>0.5*detSizeX) {xlocmax=+0.4999*detSizeX; touchNeighbourDet=kTRUE;} 
  if (TMath::Abs(zlocmin)>0.5*detSizeZ) {zlocmin=-0.4999*detSizeZ; touchNeighbourDet=kTRUE;} 
  if (TMath::Abs(zlocmax)>0.5*detSizeZ) {zlocmax=+0.4999*detSizeZ; touchNeighbourDet=kTRUE;} 
  AliDebug(2,Form("layer %d det %d zmim zmax %f %f xmin xmax %f %f   %f %f",ilayer,idet,zlocmin,zlocmax,xlocmin,xlocmax,detSizeZ,detSizeX));

  // check if this detector is bad
  if (det.IsBad()) {
    AliDebug(2,Form("lay %d  bad detector %d",ilayer,idet));
    if(!touchNeighbourDet) {
      return 2; // all detectors in road are bad
    } else { 
      return 3; // at least one is bad
    }
  }

  if(zlocmin>zlocmax)return 0;
  Int_t nChipsInRoad = segm->GetChipsInLocalWindow(chipsInRoad,zlocmin,zlocmax,xlocmin,xlocmax);
  AliDebug(2,Form("lay %d nChipsInRoad %d",ilayer,nChipsInRoad));
  if (!nChipsInRoad) return 0;

  Bool_t anyBad=kFALSE,anyGood=kFALSE;
  for (Int_t iCh=0; iCh<nChipsInRoad; iCh++) {
    if (chipsInRoad[iCh]<0 || chipsInRoad[iCh]>det.GetNChips()-1) continue;
    AliDebug(2,Form("  chip %d bad %d",chipsInRoad[iCh],(Int_t)det.IsChipBad(chipsInRoad[iCh])));
    if (det.IsChipBad(chipsInRoad[iCh])) {
      anyBad=kTRUE;
    } else {
      anyGood=kTRUE;
    } 
  }

  if (!anyGood) {
    if(!touchNeighbourDet) {
      AliDebug(2,"all bad in road");
      return 2;  // all chips in road are bad
    } else {
      return 3; // at least a bad chip in road
    }
  }

  if (anyBad) {
    AliDebug(2,"at least a bad in road");
    return 3; // at least a bad chip in road
  } 


  if (!AliITSReconstructor::GetRecoParam()->GetUseSingleBadChannelsFromOCDB()
      || !noClusters) return 0;

  // There are no clusters in road: check if there is at least 
  // a bad SPD pixel or SDD anode or SSD strips on both sides

  Int_t idetInITS=idet;
  for(Int_t l=0;l<ilayer;l++) idetInITS+=AliITSgeomTGeo::GetNLadders(l+1)*AliITSgeomTGeo::GetNDetectors(l+1);

  if (fITSChannelStatus->AnyBadInRoad(idetInITS,zlocmin,zlocmax,xlocmin,xlocmax)) {
    AliDebug(2,Form("Bad channel in det %d of layer %d\n",idet,ilayer));
    return 4;
  }
  //if (fITSChannelStatus->FractionOfBadInRoad(idet,zlocmin,zlocmax,xlocmin,xlocmax) > AliITSReconstructor::GetRecoParam()->GetMinFractionOfBadInRoad()) return 3;

  return 0;
}
//------------------------------------------------------------------------
Bool_t AliITStrackerMI::LocalModuleCoord(Int_t ilayer,Int_t idet,
				       const AliITStrackMI *track,
				       Float_t &xloc,Float_t &zloc) const {
  //-----------------------------------------------------------------
  // Gives position of track in local module ref. frame
  //-----------------------------------------------------------------

  xloc=0.; 
  zloc=0.;

  if(idet<0) return kTRUE; // track out of z acceptance of layer

  Int_t ndet=AliITSgeomTGeo::GetNDetectors(ilayer+1); // layers from 1 to 6 

  Int_t lad = Int_t(idet/ndet) + 1;

  Int_t det = idet - (lad-1)*ndet + 1;

  Double_t xyzGlob[3],xyzLoc[3];

  AliITSdetector &detector = fgLayers[ilayer].GetDetector(idet);
  // take into account the misalignment: xyz at real detector plane
  if(!track->GetXYZAt(detector.GetRmisal(),GetBz(),xyzGlob)) return kFALSE;

  if(!AliITSgeomTGeo::GlobalToLocal(ilayer+1,lad,det,xyzGlob,xyzLoc)) return kFALSE;

  xloc = (Float_t)xyzLoc[0];
  zloc = (Float_t)xyzLoc[2];

  return kTRUE;
}
//------------------------------------------------------------------------
//------------------------------------------------------------------------
Bool_t AliITStrackerMI::IsOKForPlaneEff(const AliITStrackMI* track, const Int_t *clusters, Int_t ilayer){
//
// Method to be optimized further: 
// Aim: decide whether a track can be used for PlaneEff evaluation
//      the decision is taken based on the track quality at the layer under study
//      no information on the clusters on this layer has to be used
//      The criterium is to reject tracks at boundaries between basic block (e.g. SPD chip)
//      the cut is done on number of sigmas from the boundaries
//
//  Input: Actual track, layer [0,5] under study
//  Output: none
//  Return: kTRUE if this is a good track
//
// it will apply a pre-selection to obtain good quality tracks.  
// Here also  you will have the possibility to put a control on the 
// impact point of the track on the basic block, in order to exclude border regions 
// this will be done by calling a proper method of the AliITSPlaneEff class.  
//
// input: AliITStrackMI* track, ilayer= layer number [0,5]
// return: Bool_t   -> kTRUE if usable track, kFALSE if not usable. 
//
  Int_t index[AliITSgeomTGeo::kNLayers];
  Int_t k;
  for (k=0; k<AliITSgeomTGeo::GetNLayers(); k++) index[k]=-1;
  //
  for (k=0; k<AliITSgeomTGeo::GetNLayers(); k++) {
    index[k]=clusters[k];
  }

  if(!fPlaneEff)
    {AliWarning("IsOKForPlaneEff: null pointer to AliITSPlaneEff"); return kFALSE;}
  AliITSlayer &layer=fgLayers[ilayer];
  Double_t r=layer.GetR();
  AliITStrackMI tmp(*track);

// require a minimal number of cluster in other layers and eventually clusters in closest layers 
  Int_t nclout=0; Int_t nclin=0;
  for(Int_t lay=AliITSgeomTGeo::kNLayers-1;lay>ilayer;lay--) { // count n. of cluster in outermost layers
 AliDebug(2,Form("trak=%d  lay=%d  ; index=%d ESD label= %d",tmp.GetLabel(),lay,
                    tmp.GetClIndex(lay),((AliESDtrack*)tmp.GetESDtrack())->GetLabel())) ;
   // if (tmp.GetClIndex(lay)>=0) nclout++;
if(index[lay]>=0)nclout++;
  }
  for(Int_t lay=ilayer-1; lay>=0;lay--) { // count n. of cluster in innermost layers
    AliDebug(2,Form("trak=%d  lay=%d  ; index=%d ESD label= %d",tmp.GetLabel(),lay,
                    tmp.GetClIndex(lay),((AliESDtrack*)tmp.GetESDtrack())->GetLabel())) ;
   if (index[lay]>=0) nclin++; 
  }
  Int_t ncl=nclout+nclin;
  Bool_t nextout = kFALSE;
  if(ilayer==AliITSgeomTGeo::kNLayers-1) nextout=kTRUE; // you are already on the outermost layer
  else nextout = ((tmp.GetClIndex(ilayer+1)>=0)? kTRUE : kFALSE );
  Bool_t nextin = kFALSE;
  if(ilayer==0) nextin=kTRUE; // you are already on the innermost layer
  else nextin = ((index[ilayer-1]>=0)? kTRUE : kFALSE );
  // maximum number of missing clusters allowed in outermost layers
  if(nclout<AliITSgeomTGeo::kNLayers-(ilayer+1)-AliITSReconstructor::GetRecoParam()->GetMaxMissingClustersOutPlaneEff()) 
     return kFALSE; 
  // maximum number of missing clusters allowed (both in innermost and in outermost layers)
  if(ncl<AliITSgeomTGeo::kNLayers-1-AliITSReconstructor::GetRecoParam()->GetMaxMissingClustersPlaneEff()) 
     return kFALSE; 
  if(AliITSReconstructor::GetRecoParam()->GetRequireClusterInOuterLayerPlaneEff() && !nextout)  return kFALSE;
  if(AliITSReconstructor::GetRecoParam()->GetRequireClusterInInnerLayerPlaneEff() && !nextin)   return kFALSE;
  if(tmp.Pt() < AliITSReconstructor::GetRecoParam()->GetMinPtPlaneEff()) return kFALSE;
 //  if(AliITSReconstructor::GetRecoParam()->GetOnlyConstraintPlaneEff()  && !tmp.GetConstrain()) return kFALSE;

// detector number
  Double_t phi,z;
  if (!tmp.GetPhiZat(r,phi,z)) return kFALSE;
  Int_t idet=layer.FindDetectorIndex(phi,z);
  if(idet<0) { AliInfo(Form("cannot find detector"));
    return kFALSE;}

  // here check if it has good Chi Square.

  //propagate to the intersection with the detector plane
  const AliITSdetector &det=layer.GetDetector(idet);
  if (!tmp.Propagate(det.GetPhi(),det.GetR())) return kFALSE;

  Float_t locx; //
  Float_t locz; //
  if(!LocalModuleCoord(ilayer,idet,&tmp,locx,locz)) return kFALSE;
  UInt_t key=fPlaneEff->GetKeyFromDetLocCoord(ilayer,idet,locx,locz);
  if(key>fPlaneEff->Nblock()) return kFALSE;
  Float_t blockXmn,blockXmx,blockZmn,blockZmx;
  if (!fPlaneEff->GetBlockBoundaries(key,blockXmn,blockXmx,blockZmn,blockZmx)) return kFALSE;
  //***************
  // DEFINITION OF SEARCH ROAD FOR accepting a track
  //
  Double_t nsigx=AliITSReconstructor::GetRecoParam()->GetNSigXFromBoundaryPlaneEff();
  Double_t nsigz=AliITSReconstructor::GetRecoParam()->GetNSigZFromBoundaryPlaneEff();
  Double_t distx=AliITSReconstructor::GetRecoParam()->GetDistXFromBoundaryPlaneEff();
  Double_t distz=AliITSReconstructor::GetRecoParam()->GetDistZFromBoundaryPlaneEff();
  Double_t dx=nsigx*TMath::Sqrt(tmp.GetSigmaY2()) + distx;
  // those are precisions in the tracking reference system
  Double_t dz=nsigz*TMath::Sqrt(tmp.GetSigmaZ2()) + distz;
  // Use it also for the module reference system, as it is done for RecPoints

  if(AliITSReconstructor::GetRecoParam()->GetSwitchOnMaxDistNSigFrmBndPlaneEff()){
   if(nsigx*TMath::Sqrt(tmp.GetSigmaY2())<=distx) dx -= nsigx*TMath::Sqrt(tmp.GetSigmaY2());
   else dx -= distx;

   if(nsigz*TMath::Sqrt(tmp.GetSigmaZ2())<=distz) dz -= nsigz*TMath::Sqrt(tmp.GetSigmaZ2());
   else dz -= distz;
  }

  // exclude tracks at boundary between detectors
  //Double_t boundaryWidth=AliITSRecoParam::GetBoundaryWidthPlaneEff();
  Double_t boundaryWidth=0; // for the time being hard-wired, later on from AliITSRecoParam
  AliDebug(2,Form("Tracking: track impact x=%f, y=%f, z=%f",tmp.GetX(), tmp.GetY(), tmp.GetZ()));
  AliDebug(2,Form("Local:    track impact x=%f, z=%f",locx,locz));
  AliDebug(2,Form("Search Road. Tracking: dy=%f , dz=%f",dx,dz));
  if ( (locx-dx < blockXmn+boundaryWidth) ||
       (locx+dx > blockXmx-boundaryWidth) ||
       (locz-dz < blockZmn+boundaryWidth) ||
       (locz+dz > blockZmx-boundaryWidth) ) return kFALSE;

  if(ilayer==0){
       const AliESDEvent *myesd = ((AliESDtrack*)tmp.GetESDtrack())->GetESDEvent();
       //The beam pipe
       if (CorrectForPipeMaterial(&tmp,"inward")) {
          const AliESDVertex* vtx = myesd->GetVertex();
          if(!vtx) return kFALSE;
          Double_t ddz[2],cov[3];
          Double_t maxD=3.;
          if(!tmp.PropagateToDCA(vtx,AliTracker::GetBz(),maxD,ddz,cov)) return kFALSE;
          if(TMath::Abs(ddz[0])>=AliITSReconstructor::GetRecoParam()->GetDCACutPlaneEff()) return kFALSE;

          Double_t covar[6]; vtx->GetCovMatrix(covar);
          Double_t p[2]={tmp.GetParameter()[0]-ddz[0],tmp.GetParameter()[1]-ddz[1]};
          Double_t c[3]={covar[2],0.,covar[5]};
          Double_t chi2= ((AliESDtrack*)tmp.GetESDtrack())->GetPredictedChi2(p,c);
          if (chi2>AliITSReconstructor::GetRecoParam()->GetVertexChi2CutPlaneEff()) return kFALSE;  // Use this to cut on chi^2

       } else return kFALSE;
    }


  return kTRUE;
}
//------------------------------------------------------------------------
void AliITStrackerMI::UseTrackForPlaneEff(const AliITStrackMI* track, Int_t ilayer) {
//
// This Method has to be optimized! For the time-being it uses the same criteria
// as those used in the search of extra clusters for overlapping modules.
//
// Method Purpose: estabilish whether a track has produced a recpoint or not
//                 in the layer under study (For Plane efficiency)
//
// inputs: AliITStrackMI* track  (pointer to a usable track)
// outputs: none
// side effects: update (by 1 count) the Plane Efficiency statistics of the basic block
//               traversed by this very track. In details:
//               - if a cluster can be associated to the track then call
//                  AliITSPlaneEff::UpDatePlaneEff(key,kTRUE);
//               - if not, the AliITSPlaneEff::UpDatePlaneEff(key,kFALSE) is called
//
  if(!fPlaneEff)
    {AliWarning("UseTrackForPlaneEff: null pointer to AliITSPlaneEff"); return;}
  AliITSlayer &layer=fgLayers[ilayer];
  Double_t r=layer.GetR();
  AliITStrackMI tmp(*track);

// detector number
  Double_t phi,z;
  if (!tmp.GetPhiZat(r,phi,z)) return;
  Int_t idet=layer.FindDetectorIndex(phi,z);

  if(idet<0) { AliInfo(Form("cannot find detector"));
    return;}


//propagate to the intersection with the detector plane
  const AliITSdetector &det=layer.GetDetector(idet);
  if (!tmp.Propagate(det.GetPhi(),det.GetR())) return;


//***************
// DEFINITION OF SEARCH ROAD FOR CLUSTERS SELECTION
//
  Double_t dz=AliITSReconstructor::GetRecoParam()->GetNSigmaRoadZ()*
                    TMath::Sqrt(tmp.GetSigmaZ2() +
                    AliITSReconstructor::GetRecoParam()->GetNSigmaZLayerForRoadZ()*
                    AliITSReconstructor::GetRecoParam()->GetNSigmaZLayerForRoadZ()*
                    AliITSReconstructor::GetRecoParam()->GetSigmaZ2(ilayer));
  Double_t dy=AliITSReconstructor::GetRecoParam()->GetNSigmaRoadY()*
                    TMath::Sqrt(tmp.GetSigmaY2() +
                    AliITSReconstructor::GetRecoParam()->GetNSigmaYLayerForRoadY()*
                    AliITSReconstructor::GetRecoParam()->GetNSigmaYLayerForRoadY()*
                    AliITSReconstructor::GetRecoParam()->GetSigmaY2(ilayer));

// road in global (rphi,z) [i.e. in tracking ref. system]
  Double_t zmin = tmp.GetZ() - dz;
  Double_t zmax = tmp.GetZ() + dz;
  Double_t ymin = tmp.GetY() + r*det.GetPhi() - dy;
  Double_t ymax = tmp.GetY() + r*det.GetPhi() + dy;

// select clusters in road
  layer.SelectClusters(zmin,zmax,ymin,ymax);

// Define criteria for track-cluster association
  Double_t msz = tmp.GetSigmaZ2() +
  AliITSReconstructor::GetRecoParam()->GetNSigmaZLayerForRoadZ()*
  AliITSReconstructor::GetRecoParam()->GetNSigmaZLayerForRoadZ()*
  AliITSReconstructor::GetRecoParam()->GetSigmaZ2(ilayer);
  Double_t msy = tmp.GetSigmaY2() +
  AliITSReconstructor::GetRecoParam()->GetNSigmaYLayerForRoadY()*
  AliITSReconstructor::GetRecoParam()->GetNSigmaYLayerForRoadY()*
  AliITSReconstructor::GetRecoParam()->GetSigmaY2(ilayer);
  if (tmp.GetConstrain()) {
    msz *= AliITSReconstructor::GetRecoParam()->GetNSigma2RoadZC();
    msy *= AliITSReconstructor::GetRecoParam()->GetNSigma2RoadYC();
  }  else {
    msz *= AliITSReconstructor::GetRecoParam()->GetNSigma2RoadZNonC();
    msy *= AliITSReconstructor::GetRecoParam()->GetNSigma2RoadYNonC();
  }

  if(AliITSReconstructor::GetRecoParam()->GetSwitchOffStdSearchClusPlaneEff()){
     Double_t nsigx=AliITSReconstructor::GetRecoParam()->GetNSigXSearchClusterPlaneEff();
     Double_t nsigz=AliITSReconstructor::GetRecoParam()->GetNSigZSearchClusterPlaneEff();
     Double_t distx=AliITSReconstructor::GetRecoParam()->GetDistXSearchClusterPlaneEff();
     Double_t distz=AliITSReconstructor::GetRecoParam()->GetDistZSearchClusterPlaneEff();
     msy = nsigx*TMath::Sqrt(tmp.GetSigmaY2()) + distx;
     msz = nsigz*TMath::Sqrt(tmp.GetSigmaZ2()) + distz;

  if(AliITSReconstructor::GetRecoParam()->GetSwitchOnMaxDistNSigSrhClusPlaneEff()){
     if(nsigx*TMath::Sqrt(tmp.GetSigmaY2())<=distx) msy -= nsigx*TMath::Sqrt(tmp.GetSigmaY2());
     else msy -= distx;

     if(nsigz*TMath::Sqrt(tmp.GetSigmaZ2())<=distz) msz -= nsigz*TMath::Sqrt(tmp.GetSigmaZ2());
     else msz -= distz;
  }

  msy *= msy;
  msz *= msz;

  }

  if(msz==0 || msy==0){AliWarning("UseTrackForPlaneEff: null search frame"); return;}
    
  msz = 1./msz; // 1/RoadZ^2
  msy = 1./msy; // 1/RoadY^2

  const AliITSRecPoint *cl=0; Int_t clidx=-1, ci=-1;
  Int_t idetc=-1;
  Double_t chi2trkcl=1000.*AliITSReconstructor::GetRecoParam()->GetMaxChi2();
  //Double_t  tolerance=0.2;
  /*while ((cl=layer.GetNextCluster(clidx))!=0) {
    idetc = cl->GetDetectorIndex();
    if(idet!=idetc) continue;
    //Int_t ilay = cl->GetLayer();

    if (TMath::Abs(tmp.GetZ() - cl->GetZ()) > tolerance) continue;
    if (TMath::Abs(tmp.GetY() - cl->GetY()) > tolerance) continue;

    Double_t chi2=tmp.GetPredictedChi2(cl);
    if (chi2<chi2trkcl) { chi2trkcl=chi2; ci=clidx; }
  }*/
  Float_t locx; //
  Float_t locz; //
  if(!LocalModuleCoord(ilayer,idet,&tmp,locx,locz)) return;
//
  AliDebug(2,Form("ilayer= %d, idet=%d, x= %f, z=%f",ilayer,idet,locx,locz));
  UInt_t key=fPlaneEff->GetKeyFromDetLocCoord(ilayer,idet,locx,locz);
  if(key>fPlaneEff->Nblock()) return;
  Bool_t found=kFALSE;
  //if (ci>=0) {
  Double_t chi2;
  while ((cl=layer.GetNextCluster(clidx))!=0) {
    idetc = cl->GetDetectorIndex();
    if(idet!=idetc) continue;
    // here real control to see whether the cluster can be associated to the track.
    // cluster not associated to track
    if ( (tmp.GetZ()-cl->GetZ())*(tmp.GetZ()-cl->GetZ())*msz +
         (tmp.GetY()-cl->GetY())*(tmp.GetY()-cl->GetY())*msy   > 1. ) continue;
    // calculate track-clusters chi2
    chi2 = GetPredictedChi2MI(&tmp,cl,ilayer); // note that this method change track tmp
                                               // in particular, the error associated to the cluster 
    //Double_t chi2 = tmp.GetPredictedChi(cl); // this method does not change track tmp
    // chi2 cut
    if (chi2 > AliITSReconstructor::GetRecoParam()->GetMaxChi2s(ilayer)) continue;
    found=kTRUE;
    if (chi2<chi2trkcl) { chi2trkcl=chi2; ci=clidx; } // this just to trace which cluster is selected
   // track->SetExtraCluster(ilayer,(ilayer<<28)+ci);
   // track->SetExtraModule(ilayer,idetExtra);
  }
  if(!fPlaneEff->UpDatePlaneEff(found,key))
       AliWarning(Form("UseTrackForPlaneEff: cannot UpDate PlaneEff for key=%d",key));

// this for FO efficiency studies (only for SPD) // 
   UInt_t keyFO=999999;
   Bool_t foundFO=kFALSE;
   if(ilayer<2){ //ONLY SPD layers for FastOr studies
    TBits mapFO = fkDetTypeRec->GetFastOrFiredMap();
    Int_t phase = (fEsd->GetBunchCrossNumber())%4;
    if(!fSPDChipIntPlaneEff[key]){
      AliITSPlaneEffSPD spd; 
      keyFO = spd.SwitchChipKeyNumbering(key);
      if(mapFO.TestBitNumber(keyFO))foundFO=kTRUE;
       keyFO = key + (AliITSPlaneEffSPD::kNModule*AliITSPlaneEffSPD::kNChip)*(phase+1);
       if(keyFO<AliITSPlaneEffSPD::kNModule*AliITSPlaneEffSPD::kNChip) {
         AliWarning(Form("UseTrackForPlaneEff: too small keyF0 (= %d), setting it to 999999",keyFO));
         keyFO=999999;
       }
       if(!fPlaneEff->UpDatePlaneEff(foundFO,keyFO))
          AliWarning(Form("UseTrackForPlaneEff: cannot UpDate PlaneEff for FastOR for key=%d",keyFO));
     }
  }
  


  if(fPlaneEff->GetCreateHistos()&&  AliITSReconstructor::GetRecoParam()->GetHistoPlaneEff()) {
    Float_t tr[4]={99999.,99999.,9999.,9999.};    // initialize to high values 
    Float_t clu[4]={-99999.,-99999.,9999.,9999.}; // (in some cases GetCov fails) 
    Int_t cltype[2]={-999,-999};
                                                          // and the module

    Float_t angleModTrack[3]={99999.,99999.,99999.}; // angles (phi, z and "absolute angle") between the track and the mormal to the module (see below)

    tr[0]=locx;
    tr[1]=locz;
    tr[2]=TMath::Sqrt(tmp.GetSigmaY2());  // those are precisions in the tracking reference system
    tr[3]=TMath::Sqrt(tmp.GetSigmaZ2());  // Use it also for the module reference system, as it is

    if (found){
      clu[0]=layer.GetCluster(ci)->GetDetLocalX();
      clu[1]=layer.GetCluster(ci)->GetDetLocalZ();
      cltype[0]=layer.GetCluster(ci)->GetNy();
      cltype[1]=layer.GetCluster(ci)->GetNz();
     
     // Without the following 6 lines you would retrieve the nominal error of a cluster (e.g. for the SPD:
     //  X->50/sqrt(12)=14 micron   Z->450/sqrt(12)= 120 micron) 
     // Within AliTrackerMI/AliTrackMI the error on the cluster is associated to the AliITStrackMI (fSigmaY,Z)
     // It is computed properly by calling the method 
     // AliITStrackerMI::GetPredictedChi2MI(AliITStrackMI* track, const AliITSRecPoint *cluster,Int_t layer)
     // T
     //Double_t x=0.5*(tmp.GetX()+layer.GetCluster(ci)->GetX()); // Take into account the mis-alignment
      //if (tmp.PropagateTo(x,0.,0.)) {
        chi2=GetPredictedChi2MI(&tmp,layer.GetCluster(ci),ilayer);
        AliCluster c(*layer.GetCluster(ci));
        c.SetSigmaY2(tmp.GetSigmaY(ilayer)*tmp.GetSigmaY(ilayer));
        c.SetSigmaZ2(tmp.GetSigmaZ(ilayer)*tmp.GetSigmaZ(ilayer));
        //if (layer.GetCluster(ci)->GetGlobalCov(cov))  // by using this, instead, you got nominal cluster errors
        clu[2]=TMath::Sqrt(c.GetSigmaY2());
        clu[3]=TMath::Sqrt(c.GetSigmaZ2());
      //}
    }
  // Compute the angles between the track and the module
      // compute the angle "in phi direction", i.e. the angle in the transverse plane 
      // between the normal to the module and the projection (in the transverse plane) of the 
      // track trajectory
    // tgphi and tglambda of the track in tracking frame with alpha=det.GetPhi
    Float_t tgl = tmp.GetTgl();
    Float_t phitr   = tmp.GetSnp();
    phitr = TMath::ASin(phitr);
    Int_t volId = AliGeomManager::LayerToVolUIDSafe(ilayer+1 ,idet );

    Double_t tra[3]; AliGeomManager::GetOrigTranslation(volId,tra);
    Double_t rot[9]; AliGeomManager::GetOrigRotation(volId,rot);
   Double_t alpha =0.;
    alpha = tmp.GetAlpha();
    Double_t phiglob = alpha+phitr;
    Double_t p[3];
    p[0] = TMath::Cos(phiglob);
    p[1] = TMath::Sin(phiglob);
    p[2] = tgl;
    TVector3 pvec(p[0],p[1],p[2]);
    TVector3 normvec(rot[1],rot[4],rot[7]);
    Double_t angle = pvec.Angle(normvec);

    if(angle>0.5*TMath::Pi()) angle = (TMath::Pi()-angle);
    angle *= 180./TMath::Pi();

    //Trasverse Plane
    TVector3 pt(p[0],p[1],0);
    TVector3 normt(rot[1],rot[4],0);
    Double_t anglet = pt.Angle(normt);

    Double_t phiPt = TMath::ATan2(p[1],p[0]);
    if(phiPt<0)phiPt+=2.*TMath::Pi();
    Double_t phiNorm = TMath::ATan2(rot[4],rot[1]);
    if(phiNorm<0) phiNorm+=2.*TMath::Pi();
    if(anglet>0.5*TMath::Pi()) anglet = (TMath::Pi()-anglet);
    if(phiNorm>phiPt) anglet*=-1.;// pt-->normt  clockwise: anglet>0
    if((phiNorm-phiPt)>TMath::Pi()) anglet*=-1.;
    anglet *= 180./TMath::Pi();

     angleModTrack[2]=(Float_t) angle;
     angleModTrack[0]=(Float_t) anglet;
     // now the "angle in z" (much easier, i.e. the angle between the z axis and the track momentum + 90)
    angleModTrack[1]=TMath::ACos(tgl/TMath::Sqrt(tgl*tgl+1.));
    angleModTrack[1]-=TMath::Pi()/2.; // range of angle is -pi/2 , pi/2
    angleModTrack[1]*=180./TMath::Pi(); // in degree

    fPlaneEff->FillHistos(key,found,tr,clu,cltype,angleModTrack);

    // For FO efficiency studies of SPD 
    if(ilayer<2 && !fSPDChipIntPlaneEff[key]) fPlaneEff->FillHistos(keyFO,foundFO,tr,clu,cltype,angleModTrack);
  }
  if(ilayer<2) fSPDChipIntPlaneEff[key]=kTRUE;
return;
}

Int_t AliITStrackerMI::FindClusterOfTrack(int label, int lr, int* store) const //RS
{
  // find the MC cluster for the label
  return fgLayers[lr].FindClusterForLabel(label,store);
}

/*
Int_t AliITStrackerMI::GetPattern(const AliITStrackMI* track, char* patt)
{
  // creates pattarn of hits marking fake/corrects by f/c. Used for debugging (RS) 
  strncpy(patt,"......",6); 
  int tpcLabel = 0;
  if (track->GetESDtrack()) tpcLabel = track->GetESDtrack()->GetTPCLabel();
  //
  int nwrong = 0;
  for (Int_t i=0;i<track->GetNumberOfClusters();i++){
    Int_t cindex = track->GetClusterIndex(i);
    Int_t l=(cindex & 0xf0000000) >> 28;
    AliITSRecPoint *cl = (AliITSRecPoint*)GetCluster(cindex);
    Int_t isWrong=1;
    for (Int_t ind=0;ind<3;ind++) if (cl->GetLabel(ind)==TMath::Abs(tpcLabel)) isWrong=0;
    patt[l] = isWrong ? 'f':'c';
    nwrong+=isWrong;
  }
  return nwrong;
}
*/
//------------------------------------------------------------------------
Int_t AliITStrackerMI::AliITSlayer::FindClusterForLabel(Int_t label, Int_t *store) const
{ //RS
  //--------------------------------------------------------------------

  int nfound = 0;
  for (int ic=0;ic<fN;ic++) {
    const AliITSRecPoint *cl = GetCluster(ic);
    for (int i=0;i<3;i++) if (cl->GetLabel(i)==label) {
	if (nfound<50) {
	  if (store) store[nfound] = ic;
	  nfound++;
	}
	break;
      }
  }
  return nfound;
}

 AliITStrackerMI.cxx:1
 AliITStrackerMI.cxx:2
 AliITStrackerMI.cxx:3
 AliITStrackerMI.cxx:4
 AliITStrackerMI.cxx:5
 AliITStrackerMI.cxx:6
 AliITStrackerMI.cxx:7
 AliITStrackerMI.cxx:8
 AliITStrackerMI.cxx:9
 AliITStrackerMI.cxx:10
 AliITStrackerMI.cxx:11
 AliITStrackerMI.cxx:12
 AliITStrackerMI.cxx:13
 AliITStrackerMI.cxx:14
 AliITStrackerMI.cxx:15
 AliITStrackerMI.cxx:16
 AliITStrackerMI.cxx:17
 AliITStrackerMI.cxx:18
 AliITStrackerMI.cxx:19
 AliITStrackerMI.cxx:20
 AliITStrackerMI.cxx:21
 AliITStrackerMI.cxx:22
 AliITStrackerMI.cxx:23
 AliITStrackerMI.cxx:24
 AliITStrackerMI.cxx:25
 AliITStrackerMI.cxx:26
 AliITStrackerMI.cxx:27
 AliITStrackerMI.cxx:28
 AliITStrackerMI.cxx:29
 AliITStrackerMI.cxx:30
 AliITStrackerMI.cxx:31
 AliITStrackerMI.cxx:32
 AliITStrackerMI.cxx:33
 AliITStrackerMI.cxx:34
 AliITStrackerMI.cxx:35
 AliITStrackerMI.cxx:36
 AliITStrackerMI.cxx:37
 AliITStrackerMI.cxx:38
 AliITStrackerMI.cxx:39
 AliITStrackerMI.cxx:40
 AliITStrackerMI.cxx:41
 AliITStrackerMI.cxx:42
 AliITStrackerMI.cxx:43
 AliITStrackerMI.cxx:44
 AliITStrackerMI.cxx:45
 AliITStrackerMI.cxx:46
 AliITStrackerMI.cxx:47
 AliITStrackerMI.cxx:48
 AliITStrackerMI.cxx:49
 AliITStrackerMI.cxx:50
 AliITStrackerMI.cxx:51
 AliITStrackerMI.cxx:52
 AliITStrackerMI.cxx:53
 AliITStrackerMI.cxx:54
 AliITStrackerMI.cxx:55
 AliITStrackerMI.cxx:56
 AliITStrackerMI.cxx:57
 AliITStrackerMI.cxx:58
 AliITStrackerMI.cxx:59
 AliITStrackerMI.cxx:60
 AliITStrackerMI.cxx:61
 AliITStrackerMI.cxx:62
 AliITStrackerMI.cxx:63
 AliITStrackerMI.cxx:64
 AliITStrackerMI.cxx:65
 AliITStrackerMI.cxx:66
 AliITStrackerMI.cxx:67
 AliITStrackerMI.cxx:68
 AliITStrackerMI.cxx:69
 AliITStrackerMI.cxx:70
 AliITStrackerMI.cxx:71
 AliITStrackerMI.cxx:72
 AliITStrackerMI.cxx:73
 AliITStrackerMI.cxx:74
 AliITStrackerMI.cxx:75
 AliITStrackerMI.cxx:76
 AliITStrackerMI.cxx:77
 AliITStrackerMI.cxx:78
 AliITStrackerMI.cxx:79
 AliITStrackerMI.cxx:80
 AliITStrackerMI.cxx:81
 AliITStrackerMI.cxx:82
 AliITStrackerMI.cxx:83
 AliITStrackerMI.cxx:84
 AliITStrackerMI.cxx:85
 AliITStrackerMI.cxx:86
 AliITStrackerMI.cxx:87
 AliITStrackerMI.cxx:88
 AliITStrackerMI.cxx:89
 AliITStrackerMI.cxx:90
 AliITStrackerMI.cxx:91
 AliITStrackerMI.cxx:92
 AliITStrackerMI.cxx:93
 AliITStrackerMI.cxx:94
 AliITStrackerMI.cxx:95
 AliITStrackerMI.cxx:96
 AliITStrackerMI.cxx:97
 AliITStrackerMI.cxx:98
 AliITStrackerMI.cxx:99
 AliITStrackerMI.cxx:100
 AliITStrackerMI.cxx:101
 AliITStrackerMI.cxx:102
 AliITStrackerMI.cxx:103
 AliITStrackerMI.cxx:104
 AliITStrackerMI.cxx:105
 AliITStrackerMI.cxx:106
 AliITStrackerMI.cxx:107
 AliITStrackerMI.cxx:108
 AliITStrackerMI.cxx:109
 AliITStrackerMI.cxx:110
 AliITStrackerMI.cxx:111
 AliITStrackerMI.cxx:112
 AliITStrackerMI.cxx:113
 AliITStrackerMI.cxx:114
 AliITStrackerMI.cxx:115
 AliITStrackerMI.cxx:116
 AliITStrackerMI.cxx:117
 AliITStrackerMI.cxx:118
 AliITStrackerMI.cxx:119
 AliITStrackerMI.cxx:120
 AliITStrackerMI.cxx:121
 AliITStrackerMI.cxx:122
 AliITStrackerMI.cxx:123
 AliITStrackerMI.cxx:124
 AliITStrackerMI.cxx:125
 AliITStrackerMI.cxx:126
 AliITStrackerMI.cxx:127
 AliITStrackerMI.cxx:128
 AliITStrackerMI.cxx:129
 AliITStrackerMI.cxx:130
 AliITStrackerMI.cxx:131
 AliITStrackerMI.cxx:132
 AliITStrackerMI.cxx:133
 AliITStrackerMI.cxx:134
 AliITStrackerMI.cxx:135
 AliITStrackerMI.cxx:136
 AliITStrackerMI.cxx:137
 AliITStrackerMI.cxx:138
 AliITStrackerMI.cxx:139
 AliITStrackerMI.cxx:140
 AliITStrackerMI.cxx:141
 AliITStrackerMI.cxx:142
 AliITStrackerMI.cxx:143
 AliITStrackerMI.cxx:144
 AliITStrackerMI.cxx:145
 AliITStrackerMI.cxx:146
 AliITStrackerMI.cxx:147
 AliITStrackerMI.cxx:148
 AliITStrackerMI.cxx:149
 AliITStrackerMI.cxx:150
 AliITStrackerMI.cxx:151
 AliITStrackerMI.cxx:152
 AliITStrackerMI.cxx:153
 AliITStrackerMI.cxx:154
 AliITStrackerMI.cxx:155
 AliITStrackerMI.cxx:156
 AliITStrackerMI.cxx:157
 AliITStrackerMI.cxx:158
 AliITStrackerMI.cxx:159
 AliITStrackerMI.cxx:160
 AliITStrackerMI.cxx:161
 AliITStrackerMI.cxx:162
 AliITStrackerMI.cxx:163
 AliITStrackerMI.cxx:164
 AliITStrackerMI.cxx:165
 AliITStrackerMI.cxx:166
 AliITStrackerMI.cxx:167
 AliITStrackerMI.cxx:168
 AliITStrackerMI.cxx:169
 AliITStrackerMI.cxx:170
 AliITStrackerMI.cxx:171
 AliITStrackerMI.cxx:172
 AliITStrackerMI.cxx:173
 AliITStrackerMI.cxx:174
 AliITStrackerMI.cxx:175
 AliITStrackerMI.cxx:176
 AliITStrackerMI.cxx:177
 AliITStrackerMI.cxx:178
 AliITStrackerMI.cxx:179
 AliITStrackerMI.cxx:180
 AliITStrackerMI.cxx:181
 AliITStrackerMI.cxx:182
 AliITStrackerMI.cxx:183
 AliITStrackerMI.cxx:184
 AliITStrackerMI.cxx:185
 AliITStrackerMI.cxx:186
 AliITStrackerMI.cxx:187
 AliITStrackerMI.cxx:188
 AliITStrackerMI.cxx:189
 AliITStrackerMI.cxx:190
 AliITStrackerMI.cxx:191
 AliITStrackerMI.cxx:192
 AliITStrackerMI.cxx:193
 AliITStrackerMI.cxx:194
 AliITStrackerMI.cxx:195
 AliITStrackerMI.cxx:196
 AliITStrackerMI.cxx:197
 AliITStrackerMI.cxx:198
 AliITStrackerMI.cxx:199
 AliITStrackerMI.cxx:200
 AliITStrackerMI.cxx:201
 AliITStrackerMI.cxx:202
 AliITStrackerMI.cxx:203
 AliITStrackerMI.cxx:204
 AliITStrackerMI.cxx:205
 AliITStrackerMI.cxx:206
 AliITStrackerMI.cxx:207
 AliITStrackerMI.cxx:208
 AliITStrackerMI.cxx:209
 AliITStrackerMI.cxx:210
 AliITStrackerMI.cxx:211
 AliITStrackerMI.cxx:212
 AliITStrackerMI.cxx:213
 AliITStrackerMI.cxx:214
 AliITStrackerMI.cxx:215
 AliITStrackerMI.cxx:216
 AliITStrackerMI.cxx:217
 AliITStrackerMI.cxx:218
 AliITStrackerMI.cxx:219
 AliITStrackerMI.cxx:220
 AliITStrackerMI.cxx:221
 AliITStrackerMI.cxx:222
 AliITStrackerMI.cxx:223
 AliITStrackerMI.cxx:224
 AliITStrackerMI.cxx:225
 AliITStrackerMI.cxx:226
 AliITStrackerMI.cxx:227
 AliITStrackerMI.cxx:228
 AliITStrackerMI.cxx:229
 AliITStrackerMI.cxx:230
 AliITStrackerMI.cxx:231
 AliITStrackerMI.cxx:232
 AliITStrackerMI.cxx:233
 AliITStrackerMI.cxx:234
 AliITStrackerMI.cxx:235
 AliITStrackerMI.cxx:236
 AliITStrackerMI.cxx:237
 AliITStrackerMI.cxx:238
 AliITStrackerMI.cxx:239
 AliITStrackerMI.cxx:240
 AliITStrackerMI.cxx:241
 AliITStrackerMI.cxx:242
 AliITStrackerMI.cxx:243
 AliITStrackerMI.cxx:244
 AliITStrackerMI.cxx:245
 AliITStrackerMI.cxx:246
 AliITStrackerMI.cxx:247
 AliITStrackerMI.cxx:248
 AliITStrackerMI.cxx:249
 AliITStrackerMI.cxx:250
 AliITStrackerMI.cxx:251
 AliITStrackerMI.cxx:252
 AliITStrackerMI.cxx:253
 AliITStrackerMI.cxx:254
 AliITStrackerMI.cxx:255
 AliITStrackerMI.cxx:256
 AliITStrackerMI.cxx:257
 AliITStrackerMI.cxx:258
 AliITStrackerMI.cxx:259
 AliITStrackerMI.cxx:260
 AliITStrackerMI.cxx:261
 AliITStrackerMI.cxx:262
 AliITStrackerMI.cxx:263
 AliITStrackerMI.cxx:264
 AliITStrackerMI.cxx:265
 AliITStrackerMI.cxx:266
 AliITStrackerMI.cxx:267
 AliITStrackerMI.cxx:268
 AliITStrackerMI.cxx:269
 AliITStrackerMI.cxx:270
 AliITStrackerMI.cxx:271
 AliITStrackerMI.cxx:272
 AliITStrackerMI.cxx:273
 AliITStrackerMI.cxx:274
 AliITStrackerMI.cxx:275
 AliITStrackerMI.cxx:276
 AliITStrackerMI.cxx:277
 AliITStrackerMI.cxx:278
 AliITStrackerMI.cxx:279
 AliITStrackerMI.cxx:280
 AliITStrackerMI.cxx:281
 AliITStrackerMI.cxx:282
 AliITStrackerMI.cxx:283
 AliITStrackerMI.cxx:284
 AliITStrackerMI.cxx:285
 AliITStrackerMI.cxx:286
 AliITStrackerMI.cxx:287
 AliITStrackerMI.cxx:288
 AliITStrackerMI.cxx:289
 AliITStrackerMI.cxx:290
 AliITStrackerMI.cxx:291
 AliITStrackerMI.cxx:292
 AliITStrackerMI.cxx:293
 AliITStrackerMI.cxx:294
 AliITStrackerMI.cxx:295
 AliITStrackerMI.cxx:296
 AliITStrackerMI.cxx:297
 AliITStrackerMI.cxx:298
 AliITStrackerMI.cxx:299
 AliITStrackerMI.cxx:300
 AliITStrackerMI.cxx:301
 AliITStrackerMI.cxx:302
 AliITStrackerMI.cxx:303
 AliITStrackerMI.cxx:304
 AliITStrackerMI.cxx:305
 AliITStrackerMI.cxx:306
 AliITStrackerMI.cxx:307
 AliITStrackerMI.cxx:308
 AliITStrackerMI.cxx:309
 AliITStrackerMI.cxx:310
 AliITStrackerMI.cxx:311
 AliITStrackerMI.cxx:312
 AliITStrackerMI.cxx:313
 AliITStrackerMI.cxx:314
 AliITStrackerMI.cxx:315
 AliITStrackerMI.cxx:316
 AliITStrackerMI.cxx:317
 AliITStrackerMI.cxx:318
 AliITStrackerMI.cxx:319
 AliITStrackerMI.cxx:320
 AliITStrackerMI.cxx:321
 AliITStrackerMI.cxx:322
 AliITStrackerMI.cxx:323
 AliITStrackerMI.cxx:324
 AliITStrackerMI.cxx:325
 AliITStrackerMI.cxx:326
 AliITStrackerMI.cxx:327
 AliITStrackerMI.cxx:328
 AliITStrackerMI.cxx:329
 AliITStrackerMI.cxx:330
 AliITStrackerMI.cxx:331
 AliITStrackerMI.cxx:332
 AliITStrackerMI.cxx:333
 AliITStrackerMI.cxx:334
 AliITStrackerMI.cxx:335
 AliITStrackerMI.cxx:336
 AliITStrackerMI.cxx:337
 AliITStrackerMI.cxx:338
 AliITStrackerMI.cxx:339
 AliITStrackerMI.cxx:340
 AliITStrackerMI.cxx:341
 AliITStrackerMI.cxx:342
 AliITStrackerMI.cxx:343
 AliITStrackerMI.cxx:344
 AliITStrackerMI.cxx:345
 AliITStrackerMI.cxx:346
 AliITStrackerMI.cxx:347
 AliITStrackerMI.cxx:348
 AliITStrackerMI.cxx:349
 AliITStrackerMI.cxx:350
 AliITStrackerMI.cxx:351
 AliITStrackerMI.cxx:352
 AliITStrackerMI.cxx:353
 AliITStrackerMI.cxx:354
 AliITStrackerMI.cxx:355
 AliITStrackerMI.cxx:356
 AliITStrackerMI.cxx:357
 AliITStrackerMI.cxx:358
 AliITStrackerMI.cxx:359
 AliITStrackerMI.cxx:360
 AliITStrackerMI.cxx:361
 AliITStrackerMI.cxx:362
 AliITStrackerMI.cxx:363
 AliITStrackerMI.cxx:364
 AliITStrackerMI.cxx:365
 AliITStrackerMI.cxx:366
 AliITStrackerMI.cxx:367
 AliITStrackerMI.cxx:368
 AliITStrackerMI.cxx:369
 AliITStrackerMI.cxx:370
 AliITStrackerMI.cxx:371
 AliITStrackerMI.cxx:372
 AliITStrackerMI.cxx:373
 AliITStrackerMI.cxx:374
 AliITStrackerMI.cxx:375
 AliITStrackerMI.cxx:376
 AliITStrackerMI.cxx:377
 AliITStrackerMI.cxx:378
 AliITStrackerMI.cxx:379
 AliITStrackerMI.cxx:380
 AliITStrackerMI.cxx:381
 AliITStrackerMI.cxx:382
 AliITStrackerMI.cxx:383
 AliITStrackerMI.cxx:384
 AliITStrackerMI.cxx:385
 AliITStrackerMI.cxx:386
 AliITStrackerMI.cxx:387
 AliITStrackerMI.cxx:388
 AliITStrackerMI.cxx:389
 AliITStrackerMI.cxx:390
 AliITStrackerMI.cxx:391
 AliITStrackerMI.cxx:392
 AliITStrackerMI.cxx:393
 AliITStrackerMI.cxx:394
 AliITStrackerMI.cxx:395
 AliITStrackerMI.cxx:396
 AliITStrackerMI.cxx:397
 AliITStrackerMI.cxx:398
 AliITStrackerMI.cxx:399
 AliITStrackerMI.cxx:400
 AliITStrackerMI.cxx:401
 AliITStrackerMI.cxx:402
 AliITStrackerMI.cxx:403
 AliITStrackerMI.cxx:404
 AliITStrackerMI.cxx:405
 AliITStrackerMI.cxx:406
 AliITStrackerMI.cxx:407
 AliITStrackerMI.cxx:408
 AliITStrackerMI.cxx:409
 AliITStrackerMI.cxx:410
 AliITStrackerMI.cxx:411
 AliITStrackerMI.cxx:412
 AliITStrackerMI.cxx:413
 AliITStrackerMI.cxx:414
 AliITStrackerMI.cxx:415
 AliITStrackerMI.cxx:416
 AliITStrackerMI.cxx:417
 AliITStrackerMI.cxx:418
 AliITStrackerMI.cxx:419
 AliITStrackerMI.cxx:420
 AliITStrackerMI.cxx:421
 AliITStrackerMI.cxx:422
 AliITStrackerMI.cxx:423
 AliITStrackerMI.cxx:424
 AliITStrackerMI.cxx:425
 AliITStrackerMI.cxx:426
 AliITStrackerMI.cxx:427
 AliITStrackerMI.cxx:428
 AliITStrackerMI.cxx:429
 AliITStrackerMI.cxx:430
 AliITStrackerMI.cxx:431
 AliITStrackerMI.cxx:432
 AliITStrackerMI.cxx:433
 AliITStrackerMI.cxx:434
 AliITStrackerMI.cxx:435
 AliITStrackerMI.cxx:436
 AliITStrackerMI.cxx:437
 AliITStrackerMI.cxx:438
 AliITStrackerMI.cxx:439
 AliITStrackerMI.cxx:440
 AliITStrackerMI.cxx:441
 AliITStrackerMI.cxx:442
 AliITStrackerMI.cxx:443
 AliITStrackerMI.cxx:444
 AliITStrackerMI.cxx:445
 AliITStrackerMI.cxx:446
 AliITStrackerMI.cxx:447
 AliITStrackerMI.cxx:448
 AliITStrackerMI.cxx:449
 AliITStrackerMI.cxx:450
 AliITStrackerMI.cxx:451
 AliITStrackerMI.cxx:452
 AliITStrackerMI.cxx:453
 AliITStrackerMI.cxx:454
 AliITStrackerMI.cxx:455
 AliITStrackerMI.cxx:456
 AliITStrackerMI.cxx:457
 AliITStrackerMI.cxx:458
 AliITStrackerMI.cxx:459
 AliITStrackerMI.cxx:460
 AliITStrackerMI.cxx:461
 AliITStrackerMI.cxx:462
 AliITStrackerMI.cxx:463
 AliITStrackerMI.cxx:464
 AliITStrackerMI.cxx:465
 AliITStrackerMI.cxx:466
 AliITStrackerMI.cxx:467
 AliITStrackerMI.cxx:468
 AliITStrackerMI.cxx:469
 AliITStrackerMI.cxx:470
 AliITStrackerMI.cxx:471
 AliITStrackerMI.cxx:472
 AliITStrackerMI.cxx:473
 AliITStrackerMI.cxx:474
 AliITStrackerMI.cxx:475
 AliITStrackerMI.cxx:476
 AliITStrackerMI.cxx:477
 AliITStrackerMI.cxx:478
 AliITStrackerMI.cxx:479
 AliITStrackerMI.cxx:480
 AliITStrackerMI.cxx:481
 AliITStrackerMI.cxx:482
 AliITStrackerMI.cxx:483
 AliITStrackerMI.cxx:484
 AliITStrackerMI.cxx:485
 AliITStrackerMI.cxx:486
 AliITStrackerMI.cxx:487
 AliITStrackerMI.cxx:488
 AliITStrackerMI.cxx:489
 AliITStrackerMI.cxx:490
 AliITStrackerMI.cxx:491
 AliITStrackerMI.cxx:492
 AliITStrackerMI.cxx:493
 AliITStrackerMI.cxx:494
 AliITStrackerMI.cxx:495
 AliITStrackerMI.cxx:496
 AliITStrackerMI.cxx:497
 AliITStrackerMI.cxx:498
 AliITStrackerMI.cxx:499
 AliITStrackerMI.cxx:500
 AliITStrackerMI.cxx:501
 AliITStrackerMI.cxx:502
 AliITStrackerMI.cxx:503
 AliITStrackerMI.cxx:504
 AliITStrackerMI.cxx:505
 AliITStrackerMI.cxx:506
 AliITStrackerMI.cxx:507
 AliITStrackerMI.cxx:508
 AliITStrackerMI.cxx:509
 AliITStrackerMI.cxx:510
 AliITStrackerMI.cxx:511
 AliITStrackerMI.cxx:512
 AliITStrackerMI.cxx:513
 AliITStrackerMI.cxx:514
 AliITStrackerMI.cxx:515
 AliITStrackerMI.cxx:516
 AliITStrackerMI.cxx:517
 AliITStrackerMI.cxx:518
 AliITStrackerMI.cxx:519
 AliITStrackerMI.cxx:520
 AliITStrackerMI.cxx:521
 AliITStrackerMI.cxx:522
 AliITStrackerMI.cxx:523
 AliITStrackerMI.cxx:524
 AliITStrackerMI.cxx:525
 AliITStrackerMI.cxx:526
 AliITStrackerMI.cxx:527
 AliITStrackerMI.cxx:528
 AliITStrackerMI.cxx:529
 AliITStrackerMI.cxx:530
 AliITStrackerMI.cxx:531
 AliITStrackerMI.cxx:532
 AliITStrackerMI.cxx:533
 AliITStrackerMI.cxx:534
 AliITStrackerMI.cxx:535
 AliITStrackerMI.cxx:536
 AliITStrackerMI.cxx:537
 AliITStrackerMI.cxx:538
 AliITStrackerMI.cxx:539
 AliITStrackerMI.cxx:540
 AliITStrackerMI.cxx:541
 AliITStrackerMI.cxx:542
 AliITStrackerMI.cxx:543
 AliITStrackerMI.cxx:544
 AliITStrackerMI.cxx:545
 AliITStrackerMI.cxx:546
 AliITStrackerMI.cxx:547
 AliITStrackerMI.cxx:548
 AliITStrackerMI.cxx:549
 AliITStrackerMI.cxx:550
 AliITStrackerMI.cxx:551
 AliITStrackerMI.cxx:552
 AliITStrackerMI.cxx:553
 AliITStrackerMI.cxx:554
 AliITStrackerMI.cxx:555
 AliITStrackerMI.cxx:556
 AliITStrackerMI.cxx:557
 AliITStrackerMI.cxx:558
 AliITStrackerMI.cxx:559
 AliITStrackerMI.cxx:560
 AliITStrackerMI.cxx:561
 AliITStrackerMI.cxx:562
 AliITStrackerMI.cxx:563
 AliITStrackerMI.cxx:564
 AliITStrackerMI.cxx:565
 AliITStrackerMI.cxx:566
 AliITStrackerMI.cxx:567
 AliITStrackerMI.cxx:568
 AliITStrackerMI.cxx:569
 AliITStrackerMI.cxx:570
 AliITStrackerMI.cxx:571
 AliITStrackerMI.cxx:572
 AliITStrackerMI.cxx:573
 AliITStrackerMI.cxx:574
 AliITStrackerMI.cxx:575
 AliITStrackerMI.cxx:576
 AliITStrackerMI.cxx:577
 AliITStrackerMI.cxx:578
 AliITStrackerMI.cxx:579
 AliITStrackerMI.cxx:580
 AliITStrackerMI.cxx:581
 AliITStrackerMI.cxx:582
 AliITStrackerMI.cxx:583
 AliITStrackerMI.cxx:584
 AliITStrackerMI.cxx:585
 AliITStrackerMI.cxx:586
 AliITStrackerMI.cxx:587
 AliITStrackerMI.cxx:588
 AliITStrackerMI.cxx:589
 AliITStrackerMI.cxx:590
 AliITStrackerMI.cxx:591
 AliITStrackerMI.cxx:592
 AliITStrackerMI.cxx:593
 AliITStrackerMI.cxx:594
 AliITStrackerMI.cxx:595
 AliITStrackerMI.cxx:596
 AliITStrackerMI.cxx:597
 AliITStrackerMI.cxx:598
 AliITStrackerMI.cxx:599
 AliITStrackerMI.cxx:600
 AliITStrackerMI.cxx:601
 AliITStrackerMI.cxx:602
 AliITStrackerMI.cxx:603
 AliITStrackerMI.cxx:604
 AliITStrackerMI.cxx:605
 AliITStrackerMI.cxx:606
 AliITStrackerMI.cxx:607
 AliITStrackerMI.cxx:608
 AliITStrackerMI.cxx:609
 AliITStrackerMI.cxx:610
 AliITStrackerMI.cxx:611
 AliITStrackerMI.cxx:612
 AliITStrackerMI.cxx:613
 AliITStrackerMI.cxx:614
 AliITStrackerMI.cxx:615
 AliITStrackerMI.cxx:616
 AliITStrackerMI.cxx:617
 AliITStrackerMI.cxx:618
 AliITStrackerMI.cxx:619
 AliITStrackerMI.cxx:620
 AliITStrackerMI.cxx:621
 AliITStrackerMI.cxx:622
 AliITStrackerMI.cxx:623
 AliITStrackerMI.cxx:624
 AliITStrackerMI.cxx:625
 AliITStrackerMI.cxx:626
 AliITStrackerMI.cxx:627
 AliITStrackerMI.cxx:628
 AliITStrackerMI.cxx:629
 AliITStrackerMI.cxx:630
 AliITStrackerMI.cxx:631
 AliITStrackerMI.cxx:632
 AliITStrackerMI.cxx:633
 AliITStrackerMI.cxx:634
 AliITStrackerMI.cxx:635
 AliITStrackerMI.cxx:636
 AliITStrackerMI.cxx:637
 AliITStrackerMI.cxx:638
 AliITStrackerMI.cxx:639
 AliITStrackerMI.cxx:640
 AliITStrackerMI.cxx:641
 AliITStrackerMI.cxx:642
 AliITStrackerMI.cxx:643
 AliITStrackerMI.cxx:644
 AliITStrackerMI.cxx:645
 AliITStrackerMI.cxx:646
 AliITStrackerMI.cxx:647
 AliITStrackerMI.cxx:648
 AliITStrackerMI.cxx:649
 AliITStrackerMI.cxx:650
 AliITStrackerMI.cxx:651
 AliITStrackerMI.cxx:652
 AliITStrackerMI.cxx:653
 AliITStrackerMI.cxx:654
 AliITStrackerMI.cxx:655
 AliITStrackerMI.cxx:656
 AliITStrackerMI.cxx:657
 AliITStrackerMI.cxx:658
 AliITStrackerMI.cxx:659
 AliITStrackerMI.cxx:660
 AliITStrackerMI.cxx:661
 AliITStrackerMI.cxx:662
 AliITStrackerMI.cxx:663
 AliITStrackerMI.cxx:664
 AliITStrackerMI.cxx:665
 AliITStrackerMI.cxx:666
 AliITStrackerMI.cxx:667
 AliITStrackerMI.cxx:668
 AliITStrackerMI.cxx:669
 AliITStrackerMI.cxx:670
 AliITStrackerMI.cxx:671
 AliITStrackerMI.cxx:672
 AliITStrackerMI.cxx:673
 AliITStrackerMI.cxx:674
 AliITStrackerMI.cxx:675
 AliITStrackerMI.cxx:676
 AliITStrackerMI.cxx:677
 AliITStrackerMI.cxx:678
 AliITStrackerMI.cxx:679
 AliITStrackerMI.cxx:680
 AliITStrackerMI.cxx:681
 AliITStrackerMI.cxx:682
 AliITStrackerMI.cxx:683
 AliITStrackerMI.cxx:684
 AliITStrackerMI.cxx:685
 AliITStrackerMI.cxx:686
 AliITStrackerMI.cxx:687
 AliITStrackerMI.cxx:688
 AliITStrackerMI.cxx:689
 AliITStrackerMI.cxx:690
 AliITStrackerMI.cxx:691
 AliITStrackerMI.cxx:692
 AliITStrackerMI.cxx:693
 AliITStrackerMI.cxx:694
 AliITStrackerMI.cxx:695
 AliITStrackerMI.cxx:696
 AliITStrackerMI.cxx:697
 AliITStrackerMI.cxx:698
 AliITStrackerMI.cxx:699
 AliITStrackerMI.cxx:700
 AliITStrackerMI.cxx:701
 AliITStrackerMI.cxx:702
 AliITStrackerMI.cxx:703
 AliITStrackerMI.cxx:704
 AliITStrackerMI.cxx:705
 AliITStrackerMI.cxx:706
 AliITStrackerMI.cxx:707
 AliITStrackerMI.cxx:708
 AliITStrackerMI.cxx:709
 AliITStrackerMI.cxx:710
 AliITStrackerMI.cxx:711
 AliITStrackerMI.cxx:712
 AliITStrackerMI.cxx:713
 AliITStrackerMI.cxx:714
 AliITStrackerMI.cxx:715
 AliITStrackerMI.cxx:716
 AliITStrackerMI.cxx:717
 AliITStrackerMI.cxx:718
 AliITStrackerMI.cxx:719
 AliITStrackerMI.cxx:720
 AliITStrackerMI.cxx:721
 AliITStrackerMI.cxx:722
 AliITStrackerMI.cxx:723
 AliITStrackerMI.cxx:724
 AliITStrackerMI.cxx:725
 AliITStrackerMI.cxx:726
 AliITStrackerMI.cxx:727
 AliITStrackerMI.cxx:728
 AliITStrackerMI.cxx:729
 AliITStrackerMI.cxx:730
 AliITStrackerMI.cxx:731
 AliITStrackerMI.cxx:732
 AliITStrackerMI.cxx:733
 AliITStrackerMI.cxx:734
 AliITStrackerMI.cxx:735
 AliITStrackerMI.cxx:736
 AliITStrackerMI.cxx:737
 AliITStrackerMI.cxx:738
 AliITStrackerMI.cxx:739
 AliITStrackerMI.cxx:740
 AliITStrackerMI.cxx:741
 AliITStrackerMI.cxx:742
 AliITStrackerMI.cxx:743
 AliITStrackerMI.cxx:744
 AliITStrackerMI.cxx:745
 AliITStrackerMI.cxx:746
 AliITStrackerMI.cxx:747
 AliITStrackerMI.cxx:748
 AliITStrackerMI.cxx:749
 AliITStrackerMI.cxx:750
 AliITStrackerMI.cxx:751
 AliITStrackerMI.cxx:752
 AliITStrackerMI.cxx:753
 AliITStrackerMI.cxx:754
 AliITStrackerMI.cxx:755
 AliITStrackerMI.cxx:756
 AliITStrackerMI.cxx:757
 AliITStrackerMI.cxx:758
 AliITStrackerMI.cxx:759
 AliITStrackerMI.cxx:760
 AliITStrackerMI.cxx:761
 AliITStrackerMI.cxx:762
 AliITStrackerMI.cxx:763
 AliITStrackerMI.cxx:764
 AliITStrackerMI.cxx:765
 AliITStrackerMI.cxx:766
 AliITStrackerMI.cxx:767
 AliITStrackerMI.cxx:768
 AliITStrackerMI.cxx:769
 AliITStrackerMI.cxx:770
 AliITStrackerMI.cxx:771
 AliITStrackerMI.cxx:772
 AliITStrackerMI.cxx:773
 AliITStrackerMI.cxx:774
 AliITStrackerMI.cxx:775
 AliITStrackerMI.cxx:776
 AliITStrackerMI.cxx:777
 AliITStrackerMI.cxx:778
 AliITStrackerMI.cxx:779
 AliITStrackerMI.cxx:780
 AliITStrackerMI.cxx:781
 AliITStrackerMI.cxx:782
 AliITStrackerMI.cxx:783
 AliITStrackerMI.cxx:784
 AliITStrackerMI.cxx:785
 AliITStrackerMI.cxx:786
 AliITStrackerMI.cxx:787
 AliITStrackerMI.cxx:788
 AliITStrackerMI.cxx:789
 AliITStrackerMI.cxx:790
 AliITStrackerMI.cxx:791
 AliITStrackerMI.cxx:792
 AliITStrackerMI.cxx:793
 AliITStrackerMI.cxx:794
 AliITStrackerMI.cxx:795
 AliITStrackerMI.cxx:796
 AliITStrackerMI.cxx:797
 AliITStrackerMI.cxx:798
 AliITStrackerMI.cxx:799
 AliITStrackerMI.cxx:800
 AliITStrackerMI.cxx:801
 AliITStrackerMI.cxx:802
 AliITStrackerMI.cxx:803
 AliITStrackerMI.cxx:804
 AliITStrackerMI.cxx:805
 AliITStrackerMI.cxx:806
 AliITStrackerMI.cxx:807
 AliITStrackerMI.cxx:808
 AliITStrackerMI.cxx:809
 AliITStrackerMI.cxx:810
 AliITStrackerMI.cxx:811
 AliITStrackerMI.cxx:812
 AliITStrackerMI.cxx:813
 AliITStrackerMI.cxx:814
 AliITStrackerMI.cxx:815
 AliITStrackerMI.cxx:816
 AliITStrackerMI.cxx:817
 AliITStrackerMI.cxx:818
 AliITStrackerMI.cxx:819
 AliITStrackerMI.cxx:820
 AliITStrackerMI.cxx:821
 AliITStrackerMI.cxx:822
 AliITStrackerMI.cxx:823
 AliITStrackerMI.cxx:824
 AliITStrackerMI.cxx:825
 AliITStrackerMI.cxx:826
 AliITStrackerMI.cxx:827
 AliITStrackerMI.cxx:828
 AliITStrackerMI.cxx:829
 AliITStrackerMI.cxx:830
 AliITStrackerMI.cxx:831
 AliITStrackerMI.cxx:832
 AliITStrackerMI.cxx:833
 AliITStrackerMI.cxx:834
 AliITStrackerMI.cxx:835
 AliITStrackerMI.cxx:836
 AliITStrackerMI.cxx:837
 AliITStrackerMI.cxx:838
 AliITStrackerMI.cxx:839
 AliITStrackerMI.cxx:840
 AliITStrackerMI.cxx:841
 AliITStrackerMI.cxx:842
 AliITStrackerMI.cxx:843
 AliITStrackerMI.cxx:844
 AliITStrackerMI.cxx:845
 AliITStrackerMI.cxx:846
 AliITStrackerMI.cxx:847
 AliITStrackerMI.cxx:848
 AliITStrackerMI.cxx:849
 AliITStrackerMI.cxx:850
 AliITStrackerMI.cxx:851
 AliITStrackerMI.cxx:852
 AliITStrackerMI.cxx:853
 AliITStrackerMI.cxx:854
 AliITStrackerMI.cxx:855
 AliITStrackerMI.cxx:856
 AliITStrackerMI.cxx:857
 AliITStrackerMI.cxx:858
 AliITStrackerMI.cxx:859
 AliITStrackerMI.cxx:860
 AliITStrackerMI.cxx:861
 AliITStrackerMI.cxx:862
 AliITStrackerMI.cxx:863
 AliITStrackerMI.cxx:864
 AliITStrackerMI.cxx:865
 AliITStrackerMI.cxx:866
 AliITStrackerMI.cxx:867
 AliITStrackerMI.cxx:868
 AliITStrackerMI.cxx:869
 AliITStrackerMI.cxx:870
 AliITStrackerMI.cxx:871
 AliITStrackerMI.cxx:872
 AliITStrackerMI.cxx:873
 AliITStrackerMI.cxx:874
 AliITStrackerMI.cxx:875
 AliITStrackerMI.cxx:876
 AliITStrackerMI.cxx:877
 AliITStrackerMI.cxx:878
 AliITStrackerMI.cxx:879
 AliITStrackerMI.cxx:880
 AliITStrackerMI.cxx:881
 AliITStrackerMI.cxx:882
 AliITStrackerMI.cxx:883
 AliITStrackerMI.cxx:884
 AliITStrackerMI.cxx:885
 AliITStrackerMI.cxx:886
 AliITStrackerMI.cxx:887
 AliITStrackerMI.cxx:888
 AliITStrackerMI.cxx:889
 AliITStrackerMI.cxx:890
 AliITStrackerMI.cxx:891
 AliITStrackerMI.cxx:892
 AliITStrackerMI.cxx:893
 AliITStrackerMI.cxx:894
 AliITStrackerMI.cxx:895
 AliITStrackerMI.cxx:896
 AliITStrackerMI.cxx:897
 AliITStrackerMI.cxx:898
 AliITStrackerMI.cxx:899
 AliITStrackerMI.cxx:900
 AliITStrackerMI.cxx:901
 AliITStrackerMI.cxx:902
 AliITStrackerMI.cxx:903
 AliITStrackerMI.cxx:904
 AliITStrackerMI.cxx:905
 AliITStrackerMI.cxx:906
 AliITStrackerMI.cxx:907
 AliITStrackerMI.cxx:908
 AliITStrackerMI.cxx:909
 AliITStrackerMI.cxx:910
 AliITStrackerMI.cxx:911
 AliITStrackerMI.cxx:912
 AliITStrackerMI.cxx:913
 AliITStrackerMI.cxx:914
 AliITStrackerMI.cxx:915
 AliITStrackerMI.cxx:916
 AliITStrackerMI.cxx:917
 AliITStrackerMI.cxx:918
 AliITStrackerMI.cxx:919
 AliITStrackerMI.cxx:920
 AliITStrackerMI.cxx:921
 AliITStrackerMI.cxx:922
 AliITStrackerMI.cxx:923
 AliITStrackerMI.cxx:924
 AliITStrackerMI.cxx:925
 AliITStrackerMI.cxx:926
 AliITStrackerMI.cxx:927
 AliITStrackerMI.cxx:928
 AliITStrackerMI.cxx:929
 AliITStrackerMI.cxx:930
 AliITStrackerMI.cxx:931
 AliITStrackerMI.cxx:932
 AliITStrackerMI.cxx:933
 AliITStrackerMI.cxx:934
 AliITStrackerMI.cxx:935
 AliITStrackerMI.cxx:936
 AliITStrackerMI.cxx:937
 AliITStrackerMI.cxx:938
 AliITStrackerMI.cxx:939
 AliITStrackerMI.cxx:940
 AliITStrackerMI.cxx:941
 AliITStrackerMI.cxx:942
 AliITStrackerMI.cxx:943
 AliITStrackerMI.cxx:944
 AliITStrackerMI.cxx:945
 AliITStrackerMI.cxx:946
 AliITStrackerMI.cxx:947
 AliITStrackerMI.cxx:948
 AliITStrackerMI.cxx:949
 AliITStrackerMI.cxx:950
 AliITStrackerMI.cxx:951
 AliITStrackerMI.cxx:952
 AliITStrackerMI.cxx:953
 AliITStrackerMI.cxx:954
 AliITStrackerMI.cxx:955
 AliITStrackerMI.cxx:956
 AliITStrackerMI.cxx:957
 AliITStrackerMI.cxx:958
 AliITStrackerMI.cxx:959
 AliITStrackerMI.cxx:960
 AliITStrackerMI.cxx:961
 AliITStrackerMI.cxx:962
 AliITStrackerMI.cxx:963
 AliITStrackerMI.cxx:964
 AliITStrackerMI.cxx:965
 AliITStrackerMI.cxx:966
 AliITStrackerMI.cxx:967
 AliITStrackerMI.cxx:968
 AliITStrackerMI.cxx:969
 AliITStrackerMI.cxx:970
 AliITStrackerMI.cxx:971
 AliITStrackerMI.cxx:972
 AliITStrackerMI.cxx:973
 AliITStrackerMI.cxx:974
 AliITStrackerMI.cxx:975
 AliITStrackerMI.cxx:976
 AliITStrackerMI.cxx:977
 AliITStrackerMI.cxx:978
 AliITStrackerMI.cxx:979
 AliITStrackerMI.cxx:980
 AliITStrackerMI.cxx:981
 AliITStrackerMI.cxx:982
 AliITStrackerMI.cxx:983
 AliITStrackerMI.cxx:984
 AliITStrackerMI.cxx:985
 AliITStrackerMI.cxx:986
 AliITStrackerMI.cxx:987
 AliITStrackerMI.cxx:988
 AliITStrackerMI.cxx:989
 AliITStrackerMI.cxx:990
 AliITStrackerMI.cxx:991
 AliITStrackerMI.cxx:992
 AliITStrackerMI.cxx:993
 AliITStrackerMI.cxx:994
 AliITStrackerMI.cxx:995
 AliITStrackerMI.cxx:996
 AliITStrackerMI.cxx:997
 AliITStrackerMI.cxx:998
 AliITStrackerMI.cxx:999
 AliITStrackerMI.cxx:1000
 AliITStrackerMI.cxx:1001
 AliITStrackerMI.cxx:1002
 AliITStrackerMI.cxx:1003
 AliITStrackerMI.cxx:1004
 AliITStrackerMI.cxx:1005
 AliITStrackerMI.cxx:1006
 AliITStrackerMI.cxx:1007
 AliITStrackerMI.cxx:1008
 AliITStrackerMI.cxx:1009
 AliITStrackerMI.cxx:1010
 AliITStrackerMI.cxx:1011
 AliITStrackerMI.cxx:1012
 AliITStrackerMI.cxx:1013
 AliITStrackerMI.cxx:1014
 AliITStrackerMI.cxx:1015
 AliITStrackerMI.cxx:1016
 AliITStrackerMI.cxx:1017
 AliITStrackerMI.cxx:1018
 AliITStrackerMI.cxx:1019
 AliITStrackerMI.cxx:1020
 AliITStrackerMI.cxx:1021
 AliITStrackerMI.cxx:1022
 AliITStrackerMI.cxx:1023
 AliITStrackerMI.cxx:1024
 AliITStrackerMI.cxx:1025
 AliITStrackerMI.cxx:1026
 AliITStrackerMI.cxx:1027
 AliITStrackerMI.cxx:1028
 AliITStrackerMI.cxx:1029
 AliITStrackerMI.cxx:1030
 AliITStrackerMI.cxx:1031
 AliITStrackerMI.cxx:1032
 AliITStrackerMI.cxx:1033
 AliITStrackerMI.cxx:1034
 AliITStrackerMI.cxx:1035
 AliITStrackerMI.cxx:1036
 AliITStrackerMI.cxx:1037
 AliITStrackerMI.cxx:1038
 AliITStrackerMI.cxx:1039
 AliITStrackerMI.cxx:1040
 AliITStrackerMI.cxx:1041
 AliITStrackerMI.cxx:1042
 AliITStrackerMI.cxx:1043
 AliITStrackerMI.cxx:1044
 AliITStrackerMI.cxx:1045
 AliITStrackerMI.cxx:1046
 AliITStrackerMI.cxx:1047
 AliITStrackerMI.cxx:1048
 AliITStrackerMI.cxx:1049
 AliITStrackerMI.cxx:1050
 AliITStrackerMI.cxx:1051
 AliITStrackerMI.cxx:1052
 AliITStrackerMI.cxx:1053
 AliITStrackerMI.cxx:1054
 AliITStrackerMI.cxx:1055
 AliITStrackerMI.cxx:1056
 AliITStrackerMI.cxx:1057
 AliITStrackerMI.cxx:1058
 AliITStrackerMI.cxx:1059
 AliITStrackerMI.cxx:1060
 AliITStrackerMI.cxx:1061
 AliITStrackerMI.cxx:1062
 AliITStrackerMI.cxx:1063
 AliITStrackerMI.cxx:1064
 AliITStrackerMI.cxx:1065
 AliITStrackerMI.cxx:1066
 AliITStrackerMI.cxx:1067
 AliITStrackerMI.cxx:1068
 AliITStrackerMI.cxx:1069
 AliITStrackerMI.cxx:1070
 AliITStrackerMI.cxx:1071
 AliITStrackerMI.cxx:1072
 AliITStrackerMI.cxx:1073
 AliITStrackerMI.cxx:1074
 AliITStrackerMI.cxx:1075
 AliITStrackerMI.cxx:1076
 AliITStrackerMI.cxx:1077
 AliITStrackerMI.cxx:1078
 AliITStrackerMI.cxx:1079
 AliITStrackerMI.cxx:1080
 AliITStrackerMI.cxx:1081
 AliITStrackerMI.cxx:1082
 AliITStrackerMI.cxx:1083
 AliITStrackerMI.cxx:1084
 AliITStrackerMI.cxx:1085
 AliITStrackerMI.cxx:1086
 AliITStrackerMI.cxx:1087
 AliITStrackerMI.cxx:1088
 AliITStrackerMI.cxx:1089
 AliITStrackerMI.cxx:1090
 AliITStrackerMI.cxx:1091
 AliITStrackerMI.cxx:1092
 AliITStrackerMI.cxx:1093
 AliITStrackerMI.cxx:1094
 AliITStrackerMI.cxx:1095
 AliITStrackerMI.cxx:1096
 AliITStrackerMI.cxx:1097
 AliITStrackerMI.cxx:1098
 AliITStrackerMI.cxx:1099
 AliITStrackerMI.cxx:1100
 AliITStrackerMI.cxx:1101
 AliITStrackerMI.cxx:1102
 AliITStrackerMI.cxx:1103
 AliITStrackerMI.cxx:1104
 AliITStrackerMI.cxx:1105
 AliITStrackerMI.cxx:1106
 AliITStrackerMI.cxx:1107
 AliITStrackerMI.cxx:1108
 AliITStrackerMI.cxx:1109
 AliITStrackerMI.cxx:1110
 AliITStrackerMI.cxx:1111
 AliITStrackerMI.cxx:1112
 AliITStrackerMI.cxx:1113
 AliITStrackerMI.cxx:1114
 AliITStrackerMI.cxx:1115
 AliITStrackerMI.cxx:1116
 AliITStrackerMI.cxx:1117
 AliITStrackerMI.cxx:1118
 AliITStrackerMI.cxx:1119
 AliITStrackerMI.cxx:1120
 AliITStrackerMI.cxx:1121
 AliITStrackerMI.cxx:1122
 AliITStrackerMI.cxx:1123
 AliITStrackerMI.cxx:1124
 AliITStrackerMI.cxx:1125
 AliITStrackerMI.cxx:1126
 AliITStrackerMI.cxx:1127
 AliITStrackerMI.cxx:1128
 AliITStrackerMI.cxx:1129
 AliITStrackerMI.cxx:1130
 AliITStrackerMI.cxx:1131
 AliITStrackerMI.cxx:1132
 AliITStrackerMI.cxx:1133
 AliITStrackerMI.cxx:1134
 AliITStrackerMI.cxx:1135
 AliITStrackerMI.cxx:1136
 AliITStrackerMI.cxx:1137
 AliITStrackerMI.cxx:1138
 AliITStrackerMI.cxx:1139
 AliITStrackerMI.cxx:1140
 AliITStrackerMI.cxx:1141
 AliITStrackerMI.cxx:1142
 AliITStrackerMI.cxx:1143
 AliITStrackerMI.cxx:1144
 AliITStrackerMI.cxx:1145
 AliITStrackerMI.cxx:1146
 AliITStrackerMI.cxx:1147
 AliITStrackerMI.cxx:1148
 AliITStrackerMI.cxx:1149
 AliITStrackerMI.cxx:1150
 AliITStrackerMI.cxx:1151
 AliITStrackerMI.cxx:1152
 AliITStrackerMI.cxx:1153
 AliITStrackerMI.cxx:1154
 AliITStrackerMI.cxx:1155
 AliITStrackerMI.cxx:1156
 AliITStrackerMI.cxx:1157
 AliITStrackerMI.cxx:1158
 AliITStrackerMI.cxx:1159
 AliITStrackerMI.cxx:1160
 AliITStrackerMI.cxx:1161
 AliITStrackerMI.cxx:1162
 AliITStrackerMI.cxx:1163
 AliITStrackerMI.cxx:1164
 AliITStrackerMI.cxx:1165
 AliITStrackerMI.cxx:1166
 AliITStrackerMI.cxx:1167
 AliITStrackerMI.cxx:1168
 AliITStrackerMI.cxx:1169
 AliITStrackerMI.cxx:1170
 AliITStrackerMI.cxx:1171
 AliITStrackerMI.cxx:1172
 AliITStrackerMI.cxx:1173
 AliITStrackerMI.cxx:1174
 AliITStrackerMI.cxx:1175
 AliITStrackerMI.cxx:1176
 AliITStrackerMI.cxx:1177
 AliITStrackerMI.cxx:1178
 AliITStrackerMI.cxx:1179
 AliITStrackerMI.cxx:1180
 AliITStrackerMI.cxx:1181
 AliITStrackerMI.cxx:1182
 AliITStrackerMI.cxx:1183
 AliITStrackerMI.cxx:1184
 AliITStrackerMI.cxx:1185
 AliITStrackerMI.cxx:1186
 AliITStrackerMI.cxx:1187
 AliITStrackerMI.cxx:1188
 AliITStrackerMI.cxx:1189
 AliITStrackerMI.cxx:1190
 AliITStrackerMI.cxx:1191
 AliITStrackerMI.cxx:1192
 AliITStrackerMI.cxx:1193
 AliITStrackerMI.cxx:1194
 AliITStrackerMI.cxx:1195
 AliITStrackerMI.cxx:1196
 AliITStrackerMI.cxx:1197
 AliITStrackerMI.cxx:1198
 AliITStrackerMI.cxx:1199
 AliITStrackerMI.cxx:1200
 AliITStrackerMI.cxx:1201
 AliITStrackerMI.cxx:1202
 AliITStrackerMI.cxx:1203
 AliITStrackerMI.cxx:1204
 AliITStrackerMI.cxx:1205
 AliITStrackerMI.cxx:1206
 AliITStrackerMI.cxx:1207
 AliITStrackerMI.cxx:1208
 AliITStrackerMI.cxx:1209
 AliITStrackerMI.cxx:1210
 AliITStrackerMI.cxx:1211
 AliITStrackerMI.cxx:1212
 AliITStrackerMI.cxx:1213
 AliITStrackerMI.cxx:1214
 AliITStrackerMI.cxx:1215
 AliITStrackerMI.cxx:1216
 AliITStrackerMI.cxx:1217
 AliITStrackerMI.cxx:1218
 AliITStrackerMI.cxx:1219
 AliITStrackerMI.cxx:1220
 AliITStrackerMI.cxx:1221
 AliITStrackerMI.cxx:1222
 AliITStrackerMI.cxx:1223
 AliITStrackerMI.cxx:1224
 AliITStrackerMI.cxx:1225
 AliITStrackerMI.cxx:1226
 AliITStrackerMI.cxx:1227
 AliITStrackerMI.cxx:1228
 AliITStrackerMI.cxx:1229
 AliITStrackerMI.cxx:1230
 AliITStrackerMI.cxx:1231
 AliITStrackerMI.cxx:1232
 AliITStrackerMI.cxx:1233
 AliITStrackerMI.cxx:1234
 AliITStrackerMI.cxx:1235
 AliITStrackerMI.cxx:1236
 AliITStrackerMI.cxx:1237
 AliITStrackerMI.cxx:1238
 AliITStrackerMI.cxx:1239
 AliITStrackerMI.cxx:1240
 AliITStrackerMI.cxx:1241
 AliITStrackerMI.cxx:1242
 AliITStrackerMI.cxx:1243
 AliITStrackerMI.cxx:1244
 AliITStrackerMI.cxx:1245
 AliITStrackerMI.cxx:1246
 AliITStrackerMI.cxx:1247
 AliITStrackerMI.cxx:1248
 AliITStrackerMI.cxx:1249
 AliITStrackerMI.cxx:1250
 AliITStrackerMI.cxx:1251
 AliITStrackerMI.cxx:1252
 AliITStrackerMI.cxx:1253
 AliITStrackerMI.cxx:1254
 AliITStrackerMI.cxx:1255
 AliITStrackerMI.cxx:1256
 AliITStrackerMI.cxx:1257
 AliITStrackerMI.cxx:1258
 AliITStrackerMI.cxx:1259
 AliITStrackerMI.cxx:1260
 AliITStrackerMI.cxx:1261
 AliITStrackerMI.cxx:1262
 AliITStrackerMI.cxx:1263
 AliITStrackerMI.cxx:1264
 AliITStrackerMI.cxx:1265
 AliITStrackerMI.cxx:1266
 AliITStrackerMI.cxx:1267
 AliITStrackerMI.cxx:1268
 AliITStrackerMI.cxx:1269
 AliITStrackerMI.cxx:1270
 AliITStrackerMI.cxx:1271
 AliITStrackerMI.cxx:1272
 AliITStrackerMI.cxx:1273
 AliITStrackerMI.cxx:1274
 AliITStrackerMI.cxx:1275
 AliITStrackerMI.cxx:1276
 AliITStrackerMI.cxx:1277
 AliITStrackerMI.cxx:1278
 AliITStrackerMI.cxx:1279
 AliITStrackerMI.cxx:1280
 AliITStrackerMI.cxx:1281
 AliITStrackerMI.cxx:1282
 AliITStrackerMI.cxx:1283
 AliITStrackerMI.cxx:1284
 AliITStrackerMI.cxx:1285
 AliITStrackerMI.cxx:1286
 AliITStrackerMI.cxx:1287
 AliITStrackerMI.cxx:1288
 AliITStrackerMI.cxx:1289
 AliITStrackerMI.cxx:1290
 AliITStrackerMI.cxx:1291
 AliITStrackerMI.cxx:1292
 AliITStrackerMI.cxx:1293
 AliITStrackerMI.cxx:1294
 AliITStrackerMI.cxx:1295
 AliITStrackerMI.cxx:1296
 AliITStrackerMI.cxx:1297
 AliITStrackerMI.cxx:1298
 AliITStrackerMI.cxx:1299
 AliITStrackerMI.cxx:1300
 AliITStrackerMI.cxx:1301
 AliITStrackerMI.cxx:1302
 AliITStrackerMI.cxx:1303
 AliITStrackerMI.cxx:1304
 AliITStrackerMI.cxx:1305
 AliITStrackerMI.cxx:1306
 AliITStrackerMI.cxx:1307
 AliITStrackerMI.cxx:1308
 AliITStrackerMI.cxx:1309
 AliITStrackerMI.cxx:1310
 AliITStrackerMI.cxx:1311
 AliITStrackerMI.cxx:1312
 AliITStrackerMI.cxx:1313
 AliITStrackerMI.cxx:1314
 AliITStrackerMI.cxx:1315
 AliITStrackerMI.cxx:1316
 AliITStrackerMI.cxx:1317
 AliITStrackerMI.cxx:1318
 AliITStrackerMI.cxx:1319
 AliITStrackerMI.cxx:1320
 AliITStrackerMI.cxx:1321
 AliITStrackerMI.cxx:1322
 AliITStrackerMI.cxx:1323
 AliITStrackerMI.cxx:1324
 AliITStrackerMI.cxx:1325
 AliITStrackerMI.cxx:1326
 AliITStrackerMI.cxx:1327
 AliITStrackerMI.cxx:1328
 AliITStrackerMI.cxx:1329
 AliITStrackerMI.cxx:1330
 AliITStrackerMI.cxx:1331
 AliITStrackerMI.cxx:1332
 AliITStrackerMI.cxx:1333
 AliITStrackerMI.cxx:1334
 AliITStrackerMI.cxx:1335
 AliITStrackerMI.cxx:1336
 AliITStrackerMI.cxx:1337
 AliITStrackerMI.cxx:1338
 AliITStrackerMI.cxx:1339
 AliITStrackerMI.cxx:1340
 AliITStrackerMI.cxx:1341
 AliITStrackerMI.cxx:1342
 AliITStrackerMI.cxx:1343
 AliITStrackerMI.cxx:1344
 AliITStrackerMI.cxx:1345
 AliITStrackerMI.cxx:1346
 AliITStrackerMI.cxx:1347
 AliITStrackerMI.cxx:1348
 AliITStrackerMI.cxx:1349
 AliITStrackerMI.cxx:1350
 AliITStrackerMI.cxx:1351
 AliITStrackerMI.cxx:1352
 AliITStrackerMI.cxx:1353
 AliITStrackerMI.cxx:1354
 AliITStrackerMI.cxx:1355
 AliITStrackerMI.cxx:1356
 AliITStrackerMI.cxx:1357
 AliITStrackerMI.cxx:1358
 AliITStrackerMI.cxx:1359
 AliITStrackerMI.cxx:1360
 AliITStrackerMI.cxx:1361
 AliITStrackerMI.cxx:1362
 AliITStrackerMI.cxx:1363
 AliITStrackerMI.cxx:1364
 AliITStrackerMI.cxx:1365
 AliITStrackerMI.cxx:1366
 AliITStrackerMI.cxx:1367
 AliITStrackerMI.cxx:1368
 AliITStrackerMI.cxx:1369
 AliITStrackerMI.cxx:1370
 AliITStrackerMI.cxx:1371
 AliITStrackerMI.cxx:1372
 AliITStrackerMI.cxx:1373
 AliITStrackerMI.cxx:1374
 AliITStrackerMI.cxx:1375
 AliITStrackerMI.cxx:1376
 AliITStrackerMI.cxx:1377
 AliITStrackerMI.cxx:1378
 AliITStrackerMI.cxx:1379
 AliITStrackerMI.cxx:1380
 AliITStrackerMI.cxx:1381
 AliITStrackerMI.cxx:1382
 AliITStrackerMI.cxx:1383
 AliITStrackerMI.cxx:1384
 AliITStrackerMI.cxx:1385
 AliITStrackerMI.cxx:1386
 AliITStrackerMI.cxx:1387
 AliITStrackerMI.cxx:1388
 AliITStrackerMI.cxx:1389
 AliITStrackerMI.cxx:1390
 AliITStrackerMI.cxx:1391
 AliITStrackerMI.cxx:1392
 AliITStrackerMI.cxx:1393
 AliITStrackerMI.cxx:1394
 AliITStrackerMI.cxx:1395
 AliITStrackerMI.cxx:1396
 AliITStrackerMI.cxx:1397
 AliITStrackerMI.cxx:1398
 AliITStrackerMI.cxx:1399
 AliITStrackerMI.cxx:1400
 AliITStrackerMI.cxx:1401
 AliITStrackerMI.cxx:1402
 AliITStrackerMI.cxx:1403
 AliITStrackerMI.cxx:1404
 AliITStrackerMI.cxx:1405
 AliITStrackerMI.cxx:1406
 AliITStrackerMI.cxx:1407
 AliITStrackerMI.cxx:1408
 AliITStrackerMI.cxx:1409
 AliITStrackerMI.cxx:1410
 AliITStrackerMI.cxx:1411
 AliITStrackerMI.cxx:1412
 AliITStrackerMI.cxx:1413
 AliITStrackerMI.cxx:1414
 AliITStrackerMI.cxx:1415
 AliITStrackerMI.cxx:1416
 AliITStrackerMI.cxx:1417
 AliITStrackerMI.cxx:1418
 AliITStrackerMI.cxx:1419
 AliITStrackerMI.cxx:1420
 AliITStrackerMI.cxx:1421
 AliITStrackerMI.cxx:1422
 AliITStrackerMI.cxx:1423
 AliITStrackerMI.cxx:1424
 AliITStrackerMI.cxx:1425
 AliITStrackerMI.cxx:1426
 AliITStrackerMI.cxx:1427
 AliITStrackerMI.cxx:1428
 AliITStrackerMI.cxx:1429
 AliITStrackerMI.cxx:1430
 AliITStrackerMI.cxx:1431
 AliITStrackerMI.cxx:1432
 AliITStrackerMI.cxx:1433
 AliITStrackerMI.cxx:1434
 AliITStrackerMI.cxx:1435
 AliITStrackerMI.cxx:1436
 AliITStrackerMI.cxx:1437
 AliITStrackerMI.cxx:1438
 AliITStrackerMI.cxx:1439
 AliITStrackerMI.cxx:1440
 AliITStrackerMI.cxx:1441
 AliITStrackerMI.cxx:1442
 AliITStrackerMI.cxx:1443
 AliITStrackerMI.cxx:1444
 AliITStrackerMI.cxx:1445
 AliITStrackerMI.cxx:1446
 AliITStrackerMI.cxx:1447
 AliITStrackerMI.cxx:1448
 AliITStrackerMI.cxx:1449
 AliITStrackerMI.cxx:1450
 AliITStrackerMI.cxx:1451
 AliITStrackerMI.cxx:1452
 AliITStrackerMI.cxx:1453
 AliITStrackerMI.cxx:1454
 AliITStrackerMI.cxx:1455
 AliITStrackerMI.cxx:1456
 AliITStrackerMI.cxx:1457
 AliITStrackerMI.cxx:1458
 AliITStrackerMI.cxx:1459
 AliITStrackerMI.cxx:1460
 AliITStrackerMI.cxx:1461
 AliITStrackerMI.cxx:1462
 AliITStrackerMI.cxx:1463
 AliITStrackerMI.cxx:1464
 AliITStrackerMI.cxx:1465
 AliITStrackerMI.cxx:1466
 AliITStrackerMI.cxx:1467
 AliITStrackerMI.cxx:1468
 AliITStrackerMI.cxx:1469
 AliITStrackerMI.cxx:1470
 AliITStrackerMI.cxx:1471
 AliITStrackerMI.cxx:1472
 AliITStrackerMI.cxx:1473
 AliITStrackerMI.cxx:1474
 AliITStrackerMI.cxx:1475
 AliITStrackerMI.cxx:1476
 AliITStrackerMI.cxx:1477
 AliITStrackerMI.cxx:1478
 AliITStrackerMI.cxx:1479
 AliITStrackerMI.cxx:1480
 AliITStrackerMI.cxx:1481
 AliITStrackerMI.cxx:1482
 AliITStrackerMI.cxx:1483
 AliITStrackerMI.cxx:1484
 AliITStrackerMI.cxx:1485
 AliITStrackerMI.cxx:1486
 AliITStrackerMI.cxx:1487
 AliITStrackerMI.cxx:1488
 AliITStrackerMI.cxx:1489
 AliITStrackerMI.cxx:1490
 AliITStrackerMI.cxx:1491
 AliITStrackerMI.cxx:1492
 AliITStrackerMI.cxx:1493
 AliITStrackerMI.cxx:1494
 AliITStrackerMI.cxx:1495
 AliITStrackerMI.cxx:1496
 AliITStrackerMI.cxx:1497
 AliITStrackerMI.cxx:1498
 AliITStrackerMI.cxx:1499
 AliITStrackerMI.cxx:1500
 AliITStrackerMI.cxx:1501
 AliITStrackerMI.cxx:1502
 AliITStrackerMI.cxx:1503
 AliITStrackerMI.cxx:1504
 AliITStrackerMI.cxx:1505
 AliITStrackerMI.cxx:1506
 AliITStrackerMI.cxx:1507
 AliITStrackerMI.cxx:1508
 AliITStrackerMI.cxx:1509
 AliITStrackerMI.cxx:1510
 AliITStrackerMI.cxx:1511
 AliITStrackerMI.cxx:1512
 AliITStrackerMI.cxx:1513
 AliITStrackerMI.cxx:1514
 AliITStrackerMI.cxx:1515
 AliITStrackerMI.cxx:1516
 AliITStrackerMI.cxx:1517
 AliITStrackerMI.cxx:1518
 AliITStrackerMI.cxx:1519
 AliITStrackerMI.cxx:1520
 AliITStrackerMI.cxx:1521
 AliITStrackerMI.cxx:1522
 AliITStrackerMI.cxx:1523
 AliITStrackerMI.cxx:1524
 AliITStrackerMI.cxx:1525
 AliITStrackerMI.cxx:1526
 AliITStrackerMI.cxx:1527
 AliITStrackerMI.cxx:1528
 AliITStrackerMI.cxx:1529
 AliITStrackerMI.cxx:1530
 AliITStrackerMI.cxx:1531
 AliITStrackerMI.cxx:1532
 AliITStrackerMI.cxx:1533
 AliITStrackerMI.cxx:1534
 AliITStrackerMI.cxx:1535
 AliITStrackerMI.cxx:1536
 AliITStrackerMI.cxx:1537
 AliITStrackerMI.cxx:1538
 AliITStrackerMI.cxx:1539
 AliITStrackerMI.cxx:1540
 AliITStrackerMI.cxx:1541
 AliITStrackerMI.cxx:1542
 AliITStrackerMI.cxx:1543
 AliITStrackerMI.cxx:1544
 AliITStrackerMI.cxx:1545
 AliITStrackerMI.cxx:1546
 AliITStrackerMI.cxx:1547
 AliITStrackerMI.cxx:1548
 AliITStrackerMI.cxx:1549
 AliITStrackerMI.cxx:1550
 AliITStrackerMI.cxx:1551
 AliITStrackerMI.cxx:1552
 AliITStrackerMI.cxx:1553
 AliITStrackerMI.cxx:1554
 AliITStrackerMI.cxx:1555
 AliITStrackerMI.cxx:1556
 AliITStrackerMI.cxx:1557
 AliITStrackerMI.cxx:1558
 AliITStrackerMI.cxx:1559
 AliITStrackerMI.cxx:1560
 AliITStrackerMI.cxx:1561
 AliITStrackerMI.cxx:1562
 AliITStrackerMI.cxx:1563
 AliITStrackerMI.cxx:1564
 AliITStrackerMI.cxx:1565
 AliITStrackerMI.cxx:1566
 AliITStrackerMI.cxx:1567
 AliITStrackerMI.cxx:1568
 AliITStrackerMI.cxx:1569
 AliITStrackerMI.cxx:1570
 AliITStrackerMI.cxx:1571
 AliITStrackerMI.cxx:1572
 AliITStrackerMI.cxx:1573
 AliITStrackerMI.cxx:1574
 AliITStrackerMI.cxx:1575
 AliITStrackerMI.cxx:1576
 AliITStrackerMI.cxx:1577
 AliITStrackerMI.cxx:1578
 AliITStrackerMI.cxx:1579
 AliITStrackerMI.cxx:1580
 AliITStrackerMI.cxx:1581
 AliITStrackerMI.cxx:1582
 AliITStrackerMI.cxx:1583
 AliITStrackerMI.cxx:1584
 AliITStrackerMI.cxx:1585
 AliITStrackerMI.cxx:1586
 AliITStrackerMI.cxx:1587
 AliITStrackerMI.cxx:1588
 AliITStrackerMI.cxx:1589
 AliITStrackerMI.cxx:1590
 AliITStrackerMI.cxx:1591
 AliITStrackerMI.cxx:1592
 AliITStrackerMI.cxx:1593
 AliITStrackerMI.cxx:1594
 AliITStrackerMI.cxx:1595
 AliITStrackerMI.cxx:1596
 AliITStrackerMI.cxx:1597
 AliITStrackerMI.cxx:1598
 AliITStrackerMI.cxx:1599
 AliITStrackerMI.cxx:1600
 AliITStrackerMI.cxx:1601
 AliITStrackerMI.cxx:1602
 AliITStrackerMI.cxx:1603
 AliITStrackerMI.cxx:1604
 AliITStrackerMI.cxx:1605
 AliITStrackerMI.cxx:1606
 AliITStrackerMI.cxx:1607
 AliITStrackerMI.cxx:1608
 AliITStrackerMI.cxx:1609
 AliITStrackerMI.cxx:1610
 AliITStrackerMI.cxx:1611
 AliITStrackerMI.cxx:1612
 AliITStrackerMI.cxx:1613
 AliITStrackerMI.cxx:1614
 AliITStrackerMI.cxx:1615
 AliITStrackerMI.cxx:1616
 AliITStrackerMI.cxx:1617
 AliITStrackerMI.cxx:1618
 AliITStrackerMI.cxx:1619
 AliITStrackerMI.cxx:1620
 AliITStrackerMI.cxx:1621
 AliITStrackerMI.cxx:1622
 AliITStrackerMI.cxx:1623
 AliITStrackerMI.cxx:1624
 AliITStrackerMI.cxx:1625
 AliITStrackerMI.cxx:1626
 AliITStrackerMI.cxx:1627
 AliITStrackerMI.cxx:1628
 AliITStrackerMI.cxx:1629
 AliITStrackerMI.cxx:1630
 AliITStrackerMI.cxx:1631
 AliITStrackerMI.cxx:1632
 AliITStrackerMI.cxx:1633
 AliITStrackerMI.cxx:1634
 AliITStrackerMI.cxx:1635
 AliITStrackerMI.cxx:1636
 AliITStrackerMI.cxx:1637
 AliITStrackerMI.cxx:1638
 AliITStrackerMI.cxx:1639
 AliITStrackerMI.cxx:1640
 AliITStrackerMI.cxx:1641
 AliITStrackerMI.cxx:1642
 AliITStrackerMI.cxx:1643
 AliITStrackerMI.cxx:1644
 AliITStrackerMI.cxx:1645
 AliITStrackerMI.cxx:1646
 AliITStrackerMI.cxx:1647
 AliITStrackerMI.cxx:1648
 AliITStrackerMI.cxx:1649
 AliITStrackerMI.cxx:1650
 AliITStrackerMI.cxx:1651
 AliITStrackerMI.cxx:1652
 AliITStrackerMI.cxx:1653
 AliITStrackerMI.cxx:1654
 AliITStrackerMI.cxx:1655
 AliITStrackerMI.cxx:1656
 AliITStrackerMI.cxx:1657
 AliITStrackerMI.cxx:1658
 AliITStrackerMI.cxx:1659
 AliITStrackerMI.cxx:1660
 AliITStrackerMI.cxx:1661
 AliITStrackerMI.cxx:1662
 AliITStrackerMI.cxx:1663
 AliITStrackerMI.cxx:1664
 AliITStrackerMI.cxx:1665
 AliITStrackerMI.cxx:1666
 AliITStrackerMI.cxx:1667
 AliITStrackerMI.cxx:1668
 AliITStrackerMI.cxx:1669
 AliITStrackerMI.cxx:1670
 AliITStrackerMI.cxx:1671
 AliITStrackerMI.cxx:1672
 AliITStrackerMI.cxx:1673
 AliITStrackerMI.cxx:1674
 AliITStrackerMI.cxx:1675
 AliITStrackerMI.cxx:1676
 AliITStrackerMI.cxx:1677
 AliITStrackerMI.cxx:1678
 AliITStrackerMI.cxx:1679
 AliITStrackerMI.cxx:1680
 AliITStrackerMI.cxx:1681
 AliITStrackerMI.cxx:1682
 AliITStrackerMI.cxx:1683
 AliITStrackerMI.cxx:1684
 AliITStrackerMI.cxx:1685
 AliITStrackerMI.cxx:1686
 AliITStrackerMI.cxx:1687
 AliITStrackerMI.cxx:1688
 AliITStrackerMI.cxx:1689
 AliITStrackerMI.cxx:1690
 AliITStrackerMI.cxx:1691
 AliITStrackerMI.cxx:1692
 AliITStrackerMI.cxx:1693
 AliITStrackerMI.cxx:1694
 AliITStrackerMI.cxx:1695
 AliITStrackerMI.cxx:1696
 AliITStrackerMI.cxx:1697
 AliITStrackerMI.cxx:1698
 AliITStrackerMI.cxx:1699
 AliITStrackerMI.cxx:1700
 AliITStrackerMI.cxx:1701
 AliITStrackerMI.cxx:1702
 AliITStrackerMI.cxx:1703
 AliITStrackerMI.cxx:1704
 AliITStrackerMI.cxx:1705
 AliITStrackerMI.cxx:1706
 AliITStrackerMI.cxx:1707
 AliITStrackerMI.cxx:1708
 AliITStrackerMI.cxx:1709
 AliITStrackerMI.cxx:1710
 AliITStrackerMI.cxx:1711
 AliITStrackerMI.cxx:1712
 AliITStrackerMI.cxx:1713
 AliITStrackerMI.cxx:1714
 AliITStrackerMI.cxx:1715
 AliITStrackerMI.cxx:1716
 AliITStrackerMI.cxx:1717
 AliITStrackerMI.cxx:1718
 AliITStrackerMI.cxx:1719
 AliITStrackerMI.cxx:1720
 AliITStrackerMI.cxx:1721
 AliITStrackerMI.cxx:1722
 AliITStrackerMI.cxx:1723
 AliITStrackerMI.cxx:1724
 AliITStrackerMI.cxx:1725
 AliITStrackerMI.cxx:1726
 AliITStrackerMI.cxx:1727
 AliITStrackerMI.cxx:1728
 AliITStrackerMI.cxx:1729
 AliITStrackerMI.cxx:1730
 AliITStrackerMI.cxx:1731
 AliITStrackerMI.cxx:1732
 AliITStrackerMI.cxx:1733
 AliITStrackerMI.cxx:1734
 AliITStrackerMI.cxx:1735
 AliITStrackerMI.cxx:1736
 AliITStrackerMI.cxx:1737
 AliITStrackerMI.cxx:1738
 AliITStrackerMI.cxx:1739
 AliITStrackerMI.cxx:1740
 AliITStrackerMI.cxx:1741
 AliITStrackerMI.cxx:1742
 AliITStrackerMI.cxx:1743
 AliITStrackerMI.cxx:1744
 AliITStrackerMI.cxx:1745
 AliITStrackerMI.cxx:1746
 AliITStrackerMI.cxx:1747
 AliITStrackerMI.cxx:1748
 AliITStrackerMI.cxx:1749
 AliITStrackerMI.cxx:1750
 AliITStrackerMI.cxx:1751
 AliITStrackerMI.cxx:1752
 AliITStrackerMI.cxx:1753
 AliITStrackerMI.cxx:1754
 AliITStrackerMI.cxx:1755
 AliITStrackerMI.cxx:1756
 AliITStrackerMI.cxx:1757
 AliITStrackerMI.cxx:1758
 AliITStrackerMI.cxx:1759
 AliITStrackerMI.cxx:1760
 AliITStrackerMI.cxx:1761
 AliITStrackerMI.cxx:1762
 AliITStrackerMI.cxx:1763
 AliITStrackerMI.cxx:1764
 AliITStrackerMI.cxx:1765
 AliITStrackerMI.cxx:1766
 AliITStrackerMI.cxx:1767
 AliITStrackerMI.cxx:1768
 AliITStrackerMI.cxx:1769
 AliITStrackerMI.cxx:1770
 AliITStrackerMI.cxx:1771
 AliITStrackerMI.cxx:1772
 AliITStrackerMI.cxx:1773
 AliITStrackerMI.cxx:1774
 AliITStrackerMI.cxx:1775
 AliITStrackerMI.cxx:1776
 AliITStrackerMI.cxx:1777
 AliITStrackerMI.cxx:1778
 AliITStrackerMI.cxx:1779
 AliITStrackerMI.cxx:1780
 AliITStrackerMI.cxx:1781
 AliITStrackerMI.cxx:1782
 AliITStrackerMI.cxx:1783
 AliITStrackerMI.cxx:1784
 AliITStrackerMI.cxx:1785
 AliITStrackerMI.cxx:1786
 AliITStrackerMI.cxx:1787
 AliITStrackerMI.cxx:1788
 AliITStrackerMI.cxx:1789
 AliITStrackerMI.cxx:1790
 AliITStrackerMI.cxx:1791
 AliITStrackerMI.cxx:1792
 AliITStrackerMI.cxx:1793
 AliITStrackerMI.cxx:1794
 AliITStrackerMI.cxx:1795
 AliITStrackerMI.cxx:1796
 AliITStrackerMI.cxx:1797
 AliITStrackerMI.cxx:1798
 AliITStrackerMI.cxx:1799
 AliITStrackerMI.cxx:1800
 AliITStrackerMI.cxx:1801
 AliITStrackerMI.cxx:1802
 AliITStrackerMI.cxx:1803
 AliITStrackerMI.cxx:1804
 AliITStrackerMI.cxx:1805
 AliITStrackerMI.cxx:1806
 AliITStrackerMI.cxx:1807
 AliITStrackerMI.cxx:1808
 AliITStrackerMI.cxx:1809
 AliITStrackerMI.cxx:1810
 AliITStrackerMI.cxx:1811
 AliITStrackerMI.cxx:1812
 AliITStrackerMI.cxx:1813
 AliITStrackerMI.cxx:1814
 AliITStrackerMI.cxx:1815
 AliITStrackerMI.cxx:1816
 AliITStrackerMI.cxx:1817
 AliITStrackerMI.cxx:1818
 AliITStrackerMI.cxx:1819
 AliITStrackerMI.cxx:1820
 AliITStrackerMI.cxx:1821
 AliITStrackerMI.cxx:1822
 AliITStrackerMI.cxx:1823
 AliITStrackerMI.cxx:1824
 AliITStrackerMI.cxx:1825
 AliITStrackerMI.cxx:1826
 AliITStrackerMI.cxx:1827
 AliITStrackerMI.cxx:1828
 AliITStrackerMI.cxx:1829
 AliITStrackerMI.cxx:1830
 AliITStrackerMI.cxx:1831
 AliITStrackerMI.cxx:1832
 AliITStrackerMI.cxx:1833
 AliITStrackerMI.cxx:1834
 AliITStrackerMI.cxx:1835
 AliITStrackerMI.cxx:1836
 AliITStrackerMI.cxx:1837
 AliITStrackerMI.cxx:1838
 AliITStrackerMI.cxx:1839
 AliITStrackerMI.cxx:1840
 AliITStrackerMI.cxx:1841
 AliITStrackerMI.cxx:1842
 AliITStrackerMI.cxx:1843
 AliITStrackerMI.cxx:1844
 AliITStrackerMI.cxx:1845
 AliITStrackerMI.cxx:1846
 AliITStrackerMI.cxx:1847
 AliITStrackerMI.cxx:1848
 AliITStrackerMI.cxx:1849
 AliITStrackerMI.cxx:1850
 AliITStrackerMI.cxx:1851
 AliITStrackerMI.cxx:1852
 AliITStrackerMI.cxx:1853
 AliITStrackerMI.cxx:1854
 AliITStrackerMI.cxx:1855
 AliITStrackerMI.cxx:1856
 AliITStrackerMI.cxx:1857
 AliITStrackerMI.cxx:1858
 AliITStrackerMI.cxx:1859
 AliITStrackerMI.cxx:1860
 AliITStrackerMI.cxx:1861
 AliITStrackerMI.cxx:1862
 AliITStrackerMI.cxx:1863
 AliITStrackerMI.cxx:1864
 AliITStrackerMI.cxx:1865
 AliITStrackerMI.cxx:1866
 AliITStrackerMI.cxx:1867
 AliITStrackerMI.cxx:1868
 AliITStrackerMI.cxx:1869
 AliITStrackerMI.cxx:1870
 AliITStrackerMI.cxx:1871
 AliITStrackerMI.cxx:1872
 AliITStrackerMI.cxx:1873
 AliITStrackerMI.cxx:1874
 AliITStrackerMI.cxx:1875
 AliITStrackerMI.cxx:1876
 AliITStrackerMI.cxx:1877
 AliITStrackerMI.cxx:1878
 AliITStrackerMI.cxx:1879
 AliITStrackerMI.cxx:1880
 AliITStrackerMI.cxx:1881
 AliITStrackerMI.cxx:1882
 AliITStrackerMI.cxx:1883
 AliITStrackerMI.cxx:1884
 AliITStrackerMI.cxx:1885
 AliITStrackerMI.cxx:1886
 AliITStrackerMI.cxx:1887
 AliITStrackerMI.cxx:1888
 AliITStrackerMI.cxx:1889
 AliITStrackerMI.cxx:1890
 AliITStrackerMI.cxx:1891
 AliITStrackerMI.cxx:1892
 AliITStrackerMI.cxx:1893
 AliITStrackerMI.cxx:1894
 AliITStrackerMI.cxx:1895
 AliITStrackerMI.cxx:1896
 AliITStrackerMI.cxx:1897
 AliITStrackerMI.cxx:1898
 AliITStrackerMI.cxx:1899
 AliITStrackerMI.cxx:1900
 AliITStrackerMI.cxx:1901
 AliITStrackerMI.cxx:1902
 AliITStrackerMI.cxx:1903
 AliITStrackerMI.cxx:1904
 AliITStrackerMI.cxx:1905
 AliITStrackerMI.cxx:1906
 AliITStrackerMI.cxx:1907
 AliITStrackerMI.cxx:1908
 AliITStrackerMI.cxx:1909
 AliITStrackerMI.cxx:1910
 AliITStrackerMI.cxx:1911
 AliITStrackerMI.cxx:1912
 AliITStrackerMI.cxx:1913
 AliITStrackerMI.cxx:1914
 AliITStrackerMI.cxx:1915
 AliITStrackerMI.cxx:1916
 AliITStrackerMI.cxx:1917
 AliITStrackerMI.cxx:1918
 AliITStrackerMI.cxx:1919
 AliITStrackerMI.cxx:1920
 AliITStrackerMI.cxx:1921
 AliITStrackerMI.cxx:1922
 AliITStrackerMI.cxx:1923
 AliITStrackerMI.cxx:1924
 AliITStrackerMI.cxx:1925
 AliITStrackerMI.cxx:1926
 AliITStrackerMI.cxx:1927
 AliITStrackerMI.cxx:1928
 AliITStrackerMI.cxx:1929
 AliITStrackerMI.cxx:1930
 AliITStrackerMI.cxx:1931
 AliITStrackerMI.cxx:1932
 AliITStrackerMI.cxx:1933
 AliITStrackerMI.cxx:1934
 AliITStrackerMI.cxx:1935
 AliITStrackerMI.cxx:1936
 AliITStrackerMI.cxx:1937
 AliITStrackerMI.cxx:1938
 AliITStrackerMI.cxx:1939
 AliITStrackerMI.cxx:1940
 AliITStrackerMI.cxx:1941
 AliITStrackerMI.cxx:1942
 AliITStrackerMI.cxx:1943
 AliITStrackerMI.cxx:1944
 AliITStrackerMI.cxx:1945
 AliITStrackerMI.cxx:1946
 AliITStrackerMI.cxx:1947
 AliITStrackerMI.cxx:1948
 AliITStrackerMI.cxx:1949
 AliITStrackerMI.cxx:1950
 AliITStrackerMI.cxx:1951
 AliITStrackerMI.cxx:1952
 AliITStrackerMI.cxx:1953
 AliITStrackerMI.cxx:1954
 AliITStrackerMI.cxx:1955
 AliITStrackerMI.cxx:1956
 AliITStrackerMI.cxx:1957
 AliITStrackerMI.cxx:1958
 AliITStrackerMI.cxx:1959
 AliITStrackerMI.cxx:1960
 AliITStrackerMI.cxx:1961
 AliITStrackerMI.cxx:1962
 AliITStrackerMI.cxx:1963
 AliITStrackerMI.cxx:1964
 AliITStrackerMI.cxx:1965
 AliITStrackerMI.cxx:1966
 AliITStrackerMI.cxx:1967
 AliITStrackerMI.cxx:1968
 AliITStrackerMI.cxx:1969
 AliITStrackerMI.cxx:1970
 AliITStrackerMI.cxx:1971
 AliITStrackerMI.cxx:1972
 AliITStrackerMI.cxx:1973
 AliITStrackerMI.cxx:1974
 AliITStrackerMI.cxx:1975
 AliITStrackerMI.cxx:1976
 AliITStrackerMI.cxx:1977
 AliITStrackerMI.cxx:1978
 AliITStrackerMI.cxx:1979
 AliITStrackerMI.cxx:1980
 AliITStrackerMI.cxx:1981
 AliITStrackerMI.cxx:1982
 AliITStrackerMI.cxx:1983
 AliITStrackerMI.cxx:1984
 AliITStrackerMI.cxx:1985
 AliITStrackerMI.cxx:1986
 AliITStrackerMI.cxx:1987
 AliITStrackerMI.cxx:1988
 AliITStrackerMI.cxx:1989
 AliITStrackerMI.cxx:1990
 AliITStrackerMI.cxx:1991
 AliITStrackerMI.cxx:1992
 AliITStrackerMI.cxx:1993
 AliITStrackerMI.cxx:1994
 AliITStrackerMI.cxx:1995
 AliITStrackerMI.cxx:1996
 AliITStrackerMI.cxx:1997
 AliITStrackerMI.cxx:1998
 AliITStrackerMI.cxx:1999
 AliITStrackerMI.cxx:2000
 AliITStrackerMI.cxx:2001
 AliITStrackerMI.cxx:2002
 AliITStrackerMI.cxx:2003
 AliITStrackerMI.cxx:2004
 AliITStrackerMI.cxx:2005
 AliITStrackerMI.cxx:2006
 AliITStrackerMI.cxx:2007
 AliITStrackerMI.cxx:2008
 AliITStrackerMI.cxx:2009
 AliITStrackerMI.cxx:2010
 AliITStrackerMI.cxx:2011
 AliITStrackerMI.cxx:2012
 AliITStrackerMI.cxx:2013
 AliITStrackerMI.cxx:2014
 AliITStrackerMI.cxx:2015
 AliITStrackerMI.cxx:2016
 AliITStrackerMI.cxx:2017
 AliITStrackerMI.cxx:2018
 AliITStrackerMI.cxx:2019
 AliITStrackerMI.cxx:2020
 AliITStrackerMI.cxx:2021
 AliITStrackerMI.cxx:2022
 AliITStrackerMI.cxx:2023
 AliITStrackerMI.cxx:2024
 AliITStrackerMI.cxx:2025
 AliITStrackerMI.cxx:2026
 AliITStrackerMI.cxx:2027
 AliITStrackerMI.cxx:2028
 AliITStrackerMI.cxx:2029
 AliITStrackerMI.cxx:2030
 AliITStrackerMI.cxx:2031
 AliITStrackerMI.cxx:2032
 AliITStrackerMI.cxx:2033
 AliITStrackerMI.cxx:2034
 AliITStrackerMI.cxx:2035
 AliITStrackerMI.cxx:2036
 AliITStrackerMI.cxx:2037
 AliITStrackerMI.cxx:2038
 AliITStrackerMI.cxx:2039
 AliITStrackerMI.cxx:2040
 AliITStrackerMI.cxx:2041
 AliITStrackerMI.cxx:2042
 AliITStrackerMI.cxx:2043
 AliITStrackerMI.cxx:2044
 AliITStrackerMI.cxx:2045
 AliITStrackerMI.cxx:2046
 AliITStrackerMI.cxx:2047
 AliITStrackerMI.cxx:2048
 AliITStrackerMI.cxx:2049
 AliITStrackerMI.cxx:2050
 AliITStrackerMI.cxx:2051
 AliITStrackerMI.cxx:2052
 AliITStrackerMI.cxx:2053
 AliITStrackerMI.cxx:2054
 AliITStrackerMI.cxx:2055
 AliITStrackerMI.cxx:2056
 AliITStrackerMI.cxx:2057
 AliITStrackerMI.cxx:2058
 AliITStrackerMI.cxx:2059
 AliITStrackerMI.cxx:2060
 AliITStrackerMI.cxx:2061
 AliITStrackerMI.cxx:2062
 AliITStrackerMI.cxx:2063
 AliITStrackerMI.cxx:2064
 AliITStrackerMI.cxx:2065
 AliITStrackerMI.cxx:2066
 AliITStrackerMI.cxx:2067
 AliITStrackerMI.cxx:2068
 AliITStrackerMI.cxx:2069
 AliITStrackerMI.cxx:2070
 AliITStrackerMI.cxx:2071
 AliITStrackerMI.cxx:2072
 AliITStrackerMI.cxx:2073
 AliITStrackerMI.cxx:2074
 AliITStrackerMI.cxx:2075
 AliITStrackerMI.cxx:2076
 AliITStrackerMI.cxx:2077
 AliITStrackerMI.cxx:2078
 AliITStrackerMI.cxx:2079
 AliITStrackerMI.cxx:2080
 AliITStrackerMI.cxx:2081
 AliITStrackerMI.cxx:2082
 AliITStrackerMI.cxx:2083
 AliITStrackerMI.cxx:2084
 AliITStrackerMI.cxx:2085
 AliITStrackerMI.cxx:2086
 AliITStrackerMI.cxx:2087
 AliITStrackerMI.cxx:2088
 AliITStrackerMI.cxx:2089
 AliITStrackerMI.cxx:2090
 AliITStrackerMI.cxx:2091
 AliITStrackerMI.cxx:2092
 AliITStrackerMI.cxx:2093
 AliITStrackerMI.cxx:2094
 AliITStrackerMI.cxx:2095
 AliITStrackerMI.cxx:2096
 AliITStrackerMI.cxx:2097
 AliITStrackerMI.cxx:2098
 AliITStrackerMI.cxx:2099
 AliITStrackerMI.cxx:2100
 AliITStrackerMI.cxx:2101
 AliITStrackerMI.cxx:2102
 AliITStrackerMI.cxx:2103
 AliITStrackerMI.cxx:2104
 AliITStrackerMI.cxx:2105
 AliITStrackerMI.cxx:2106
 AliITStrackerMI.cxx:2107
 AliITStrackerMI.cxx:2108
 AliITStrackerMI.cxx:2109
 AliITStrackerMI.cxx:2110
 AliITStrackerMI.cxx:2111
 AliITStrackerMI.cxx:2112
 AliITStrackerMI.cxx:2113
 AliITStrackerMI.cxx:2114
 AliITStrackerMI.cxx:2115
 AliITStrackerMI.cxx:2116
 AliITStrackerMI.cxx:2117
 AliITStrackerMI.cxx:2118
 AliITStrackerMI.cxx:2119
 AliITStrackerMI.cxx:2120
 AliITStrackerMI.cxx:2121
 AliITStrackerMI.cxx:2122
 AliITStrackerMI.cxx:2123
 AliITStrackerMI.cxx:2124
 AliITStrackerMI.cxx:2125
 AliITStrackerMI.cxx:2126
 AliITStrackerMI.cxx:2127
 AliITStrackerMI.cxx:2128
 AliITStrackerMI.cxx:2129
 AliITStrackerMI.cxx:2130
 AliITStrackerMI.cxx:2131
 AliITStrackerMI.cxx:2132
 AliITStrackerMI.cxx:2133
 AliITStrackerMI.cxx:2134
 AliITStrackerMI.cxx:2135
 AliITStrackerMI.cxx:2136
 AliITStrackerMI.cxx:2137
 AliITStrackerMI.cxx:2138
 AliITStrackerMI.cxx:2139
 AliITStrackerMI.cxx:2140
 AliITStrackerMI.cxx:2141
 AliITStrackerMI.cxx:2142
 AliITStrackerMI.cxx:2143
 AliITStrackerMI.cxx:2144
 AliITStrackerMI.cxx:2145
 AliITStrackerMI.cxx:2146
 AliITStrackerMI.cxx:2147
 AliITStrackerMI.cxx:2148
 AliITStrackerMI.cxx:2149
 AliITStrackerMI.cxx:2150
 AliITStrackerMI.cxx:2151
 AliITStrackerMI.cxx:2152
 AliITStrackerMI.cxx:2153
 AliITStrackerMI.cxx:2154
 AliITStrackerMI.cxx:2155
 AliITStrackerMI.cxx:2156
 AliITStrackerMI.cxx:2157
 AliITStrackerMI.cxx:2158
 AliITStrackerMI.cxx:2159
 AliITStrackerMI.cxx:2160
 AliITStrackerMI.cxx:2161
 AliITStrackerMI.cxx:2162
 AliITStrackerMI.cxx:2163
 AliITStrackerMI.cxx:2164
 AliITStrackerMI.cxx:2165
 AliITStrackerMI.cxx:2166
 AliITStrackerMI.cxx:2167
 AliITStrackerMI.cxx:2168
 AliITStrackerMI.cxx:2169
 AliITStrackerMI.cxx:2170
 AliITStrackerMI.cxx:2171
 AliITStrackerMI.cxx:2172
 AliITStrackerMI.cxx:2173
 AliITStrackerMI.cxx:2174
 AliITStrackerMI.cxx:2175
 AliITStrackerMI.cxx:2176
 AliITStrackerMI.cxx:2177
 AliITStrackerMI.cxx:2178
 AliITStrackerMI.cxx:2179
 AliITStrackerMI.cxx:2180
 AliITStrackerMI.cxx:2181
 AliITStrackerMI.cxx:2182
 AliITStrackerMI.cxx:2183
 AliITStrackerMI.cxx:2184
 AliITStrackerMI.cxx:2185
 AliITStrackerMI.cxx:2186
 AliITStrackerMI.cxx:2187
 AliITStrackerMI.cxx:2188
 AliITStrackerMI.cxx:2189
 AliITStrackerMI.cxx:2190
 AliITStrackerMI.cxx:2191
 AliITStrackerMI.cxx:2192
 AliITStrackerMI.cxx:2193
 AliITStrackerMI.cxx:2194
 AliITStrackerMI.cxx:2195
 AliITStrackerMI.cxx:2196
 AliITStrackerMI.cxx:2197
 AliITStrackerMI.cxx:2198
 AliITStrackerMI.cxx:2199
 AliITStrackerMI.cxx:2200
 AliITStrackerMI.cxx:2201
 AliITStrackerMI.cxx:2202
 AliITStrackerMI.cxx:2203
 AliITStrackerMI.cxx:2204
 AliITStrackerMI.cxx:2205
 AliITStrackerMI.cxx:2206
 AliITStrackerMI.cxx:2207
 AliITStrackerMI.cxx:2208
 AliITStrackerMI.cxx:2209
 AliITStrackerMI.cxx:2210
 AliITStrackerMI.cxx:2211
 AliITStrackerMI.cxx:2212
 AliITStrackerMI.cxx:2213
 AliITStrackerMI.cxx:2214
 AliITStrackerMI.cxx:2215
 AliITStrackerMI.cxx:2216
 AliITStrackerMI.cxx:2217
 AliITStrackerMI.cxx:2218
 AliITStrackerMI.cxx:2219
 AliITStrackerMI.cxx:2220
 AliITStrackerMI.cxx:2221
 AliITStrackerMI.cxx:2222
 AliITStrackerMI.cxx:2223
 AliITStrackerMI.cxx:2224
 AliITStrackerMI.cxx:2225
 AliITStrackerMI.cxx:2226
 AliITStrackerMI.cxx:2227
 AliITStrackerMI.cxx:2228
 AliITStrackerMI.cxx:2229
 AliITStrackerMI.cxx:2230
 AliITStrackerMI.cxx:2231
 AliITStrackerMI.cxx:2232
 AliITStrackerMI.cxx:2233
 AliITStrackerMI.cxx:2234
 AliITStrackerMI.cxx:2235
 AliITStrackerMI.cxx:2236
 AliITStrackerMI.cxx:2237
 AliITStrackerMI.cxx:2238
 AliITStrackerMI.cxx:2239
 AliITStrackerMI.cxx:2240
 AliITStrackerMI.cxx:2241
 AliITStrackerMI.cxx:2242
 AliITStrackerMI.cxx:2243
 AliITStrackerMI.cxx:2244
 AliITStrackerMI.cxx:2245
 AliITStrackerMI.cxx:2246
 AliITStrackerMI.cxx:2247
 AliITStrackerMI.cxx:2248
 AliITStrackerMI.cxx:2249
 AliITStrackerMI.cxx:2250
 AliITStrackerMI.cxx:2251
 AliITStrackerMI.cxx:2252
 AliITStrackerMI.cxx:2253
 AliITStrackerMI.cxx:2254
 AliITStrackerMI.cxx:2255
 AliITStrackerMI.cxx:2256
 AliITStrackerMI.cxx:2257
 AliITStrackerMI.cxx:2258
 AliITStrackerMI.cxx:2259
 AliITStrackerMI.cxx:2260
 AliITStrackerMI.cxx:2261
 AliITStrackerMI.cxx:2262
 AliITStrackerMI.cxx:2263
 AliITStrackerMI.cxx:2264
 AliITStrackerMI.cxx:2265
 AliITStrackerMI.cxx:2266
 AliITStrackerMI.cxx:2267
 AliITStrackerMI.cxx:2268
 AliITStrackerMI.cxx:2269
 AliITStrackerMI.cxx:2270
 AliITStrackerMI.cxx:2271
 AliITStrackerMI.cxx:2272
 AliITStrackerMI.cxx:2273
 AliITStrackerMI.cxx:2274
 AliITStrackerMI.cxx:2275
 AliITStrackerMI.cxx:2276
 AliITStrackerMI.cxx:2277
 AliITStrackerMI.cxx:2278
 AliITStrackerMI.cxx:2279
 AliITStrackerMI.cxx:2280
 AliITStrackerMI.cxx:2281
 AliITStrackerMI.cxx:2282
 AliITStrackerMI.cxx:2283
 AliITStrackerMI.cxx:2284
 AliITStrackerMI.cxx:2285
 AliITStrackerMI.cxx:2286
 AliITStrackerMI.cxx:2287
 AliITStrackerMI.cxx:2288
 AliITStrackerMI.cxx:2289
 AliITStrackerMI.cxx:2290
 AliITStrackerMI.cxx:2291
 AliITStrackerMI.cxx:2292
 AliITStrackerMI.cxx:2293
 AliITStrackerMI.cxx:2294
 AliITStrackerMI.cxx:2295
 AliITStrackerMI.cxx:2296
 AliITStrackerMI.cxx:2297
 AliITStrackerMI.cxx:2298
 AliITStrackerMI.cxx:2299
 AliITStrackerMI.cxx:2300
 AliITStrackerMI.cxx:2301
 AliITStrackerMI.cxx:2302
 AliITStrackerMI.cxx:2303
 AliITStrackerMI.cxx:2304
 AliITStrackerMI.cxx:2305
 AliITStrackerMI.cxx:2306
 AliITStrackerMI.cxx:2307
 AliITStrackerMI.cxx:2308
 AliITStrackerMI.cxx:2309
 AliITStrackerMI.cxx:2310
 AliITStrackerMI.cxx:2311
 AliITStrackerMI.cxx:2312
 AliITStrackerMI.cxx:2313
 AliITStrackerMI.cxx:2314
 AliITStrackerMI.cxx:2315
 AliITStrackerMI.cxx:2316
 AliITStrackerMI.cxx:2317
 AliITStrackerMI.cxx:2318
 AliITStrackerMI.cxx:2319
 AliITStrackerMI.cxx:2320
 AliITStrackerMI.cxx:2321
 AliITStrackerMI.cxx:2322
 AliITStrackerMI.cxx:2323
 AliITStrackerMI.cxx:2324
 AliITStrackerMI.cxx:2325
 AliITStrackerMI.cxx:2326
 AliITStrackerMI.cxx:2327
 AliITStrackerMI.cxx:2328
 AliITStrackerMI.cxx:2329
 AliITStrackerMI.cxx:2330
 AliITStrackerMI.cxx:2331
 AliITStrackerMI.cxx:2332
 AliITStrackerMI.cxx:2333
 AliITStrackerMI.cxx:2334
 AliITStrackerMI.cxx:2335
 AliITStrackerMI.cxx:2336
 AliITStrackerMI.cxx:2337
 AliITStrackerMI.cxx:2338
 AliITStrackerMI.cxx:2339
 AliITStrackerMI.cxx:2340
 AliITStrackerMI.cxx:2341
 AliITStrackerMI.cxx:2342
 AliITStrackerMI.cxx:2343
 AliITStrackerMI.cxx:2344
 AliITStrackerMI.cxx:2345
 AliITStrackerMI.cxx:2346
 AliITStrackerMI.cxx:2347
 AliITStrackerMI.cxx:2348
 AliITStrackerMI.cxx:2349
 AliITStrackerMI.cxx:2350
 AliITStrackerMI.cxx:2351
 AliITStrackerMI.cxx:2352
 AliITStrackerMI.cxx:2353
 AliITStrackerMI.cxx:2354
 AliITStrackerMI.cxx:2355
 AliITStrackerMI.cxx:2356
 AliITStrackerMI.cxx:2357
 AliITStrackerMI.cxx:2358
 AliITStrackerMI.cxx:2359
 AliITStrackerMI.cxx:2360
 AliITStrackerMI.cxx:2361
 AliITStrackerMI.cxx:2362
 AliITStrackerMI.cxx:2363
 AliITStrackerMI.cxx:2364
 AliITStrackerMI.cxx:2365
 AliITStrackerMI.cxx:2366
 AliITStrackerMI.cxx:2367
 AliITStrackerMI.cxx:2368
 AliITStrackerMI.cxx:2369
 AliITStrackerMI.cxx:2370
 AliITStrackerMI.cxx:2371
 AliITStrackerMI.cxx:2372
 AliITStrackerMI.cxx:2373
 AliITStrackerMI.cxx:2374
 AliITStrackerMI.cxx:2375
 AliITStrackerMI.cxx:2376
 AliITStrackerMI.cxx:2377
 AliITStrackerMI.cxx:2378
 AliITStrackerMI.cxx:2379
 AliITStrackerMI.cxx:2380
 AliITStrackerMI.cxx:2381
 AliITStrackerMI.cxx:2382
 AliITStrackerMI.cxx:2383
 AliITStrackerMI.cxx:2384
 AliITStrackerMI.cxx:2385
 AliITStrackerMI.cxx:2386
 AliITStrackerMI.cxx:2387
 AliITStrackerMI.cxx:2388
 AliITStrackerMI.cxx:2389
 AliITStrackerMI.cxx:2390
 AliITStrackerMI.cxx:2391
 AliITStrackerMI.cxx:2392
 AliITStrackerMI.cxx:2393
 AliITStrackerMI.cxx:2394
 AliITStrackerMI.cxx:2395
 AliITStrackerMI.cxx:2396
 AliITStrackerMI.cxx:2397
 AliITStrackerMI.cxx:2398
 AliITStrackerMI.cxx:2399
 AliITStrackerMI.cxx:2400
 AliITStrackerMI.cxx:2401
 AliITStrackerMI.cxx:2402
 AliITStrackerMI.cxx:2403
 AliITStrackerMI.cxx:2404
 AliITStrackerMI.cxx:2405
 AliITStrackerMI.cxx:2406
 AliITStrackerMI.cxx:2407
 AliITStrackerMI.cxx:2408
 AliITStrackerMI.cxx:2409
 AliITStrackerMI.cxx:2410
 AliITStrackerMI.cxx:2411
 AliITStrackerMI.cxx:2412
 AliITStrackerMI.cxx:2413
 AliITStrackerMI.cxx:2414
 AliITStrackerMI.cxx:2415
 AliITStrackerMI.cxx:2416
 AliITStrackerMI.cxx:2417
 AliITStrackerMI.cxx:2418
 AliITStrackerMI.cxx:2419
 AliITStrackerMI.cxx:2420
 AliITStrackerMI.cxx:2421
 AliITStrackerMI.cxx:2422
 AliITStrackerMI.cxx:2423
 AliITStrackerMI.cxx:2424
 AliITStrackerMI.cxx:2425
 AliITStrackerMI.cxx:2426
 AliITStrackerMI.cxx:2427
 AliITStrackerMI.cxx:2428
 AliITStrackerMI.cxx:2429
 AliITStrackerMI.cxx:2430
 AliITStrackerMI.cxx:2431
 AliITStrackerMI.cxx:2432
 AliITStrackerMI.cxx:2433
 AliITStrackerMI.cxx:2434
 AliITStrackerMI.cxx:2435
 AliITStrackerMI.cxx:2436
 AliITStrackerMI.cxx:2437
 AliITStrackerMI.cxx:2438
 AliITStrackerMI.cxx:2439
 AliITStrackerMI.cxx:2440
 AliITStrackerMI.cxx:2441
 AliITStrackerMI.cxx:2442
 AliITStrackerMI.cxx:2443
 AliITStrackerMI.cxx:2444
 AliITStrackerMI.cxx:2445
 AliITStrackerMI.cxx:2446
 AliITStrackerMI.cxx:2447
 AliITStrackerMI.cxx:2448
 AliITStrackerMI.cxx:2449
 AliITStrackerMI.cxx:2450
 AliITStrackerMI.cxx:2451
 AliITStrackerMI.cxx:2452
 AliITStrackerMI.cxx:2453
 AliITStrackerMI.cxx:2454
 AliITStrackerMI.cxx:2455
 AliITStrackerMI.cxx:2456
 AliITStrackerMI.cxx:2457
 AliITStrackerMI.cxx:2458
 AliITStrackerMI.cxx:2459
 AliITStrackerMI.cxx:2460
 AliITStrackerMI.cxx:2461
 AliITStrackerMI.cxx:2462
 AliITStrackerMI.cxx:2463
 AliITStrackerMI.cxx:2464
 AliITStrackerMI.cxx:2465
 AliITStrackerMI.cxx:2466
 AliITStrackerMI.cxx:2467
 AliITStrackerMI.cxx:2468
 AliITStrackerMI.cxx:2469
 AliITStrackerMI.cxx:2470
 AliITStrackerMI.cxx:2471
 AliITStrackerMI.cxx:2472
 AliITStrackerMI.cxx:2473
 AliITStrackerMI.cxx:2474
 AliITStrackerMI.cxx:2475
 AliITStrackerMI.cxx:2476
 AliITStrackerMI.cxx:2477
 AliITStrackerMI.cxx:2478
 AliITStrackerMI.cxx:2479
 AliITStrackerMI.cxx:2480
 AliITStrackerMI.cxx:2481
 AliITStrackerMI.cxx:2482
 AliITStrackerMI.cxx:2483
 AliITStrackerMI.cxx:2484
 AliITStrackerMI.cxx:2485
 AliITStrackerMI.cxx:2486
 AliITStrackerMI.cxx:2487
 AliITStrackerMI.cxx:2488
 AliITStrackerMI.cxx:2489
 AliITStrackerMI.cxx:2490
 AliITStrackerMI.cxx:2491
 AliITStrackerMI.cxx:2492
 AliITStrackerMI.cxx:2493
 AliITStrackerMI.cxx:2494
 AliITStrackerMI.cxx:2495
 AliITStrackerMI.cxx:2496
 AliITStrackerMI.cxx:2497
 AliITStrackerMI.cxx:2498
 AliITStrackerMI.cxx:2499
 AliITStrackerMI.cxx:2500
 AliITStrackerMI.cxx:2501
 AliITStrackerMI.cxx:2502
 AliITStrackerMI.cxx:2503
 AliITStrackerMI.cxx:2504
 AliITStrackerMI.cxx:2505
 AliITStrackerMI.cxx:2506
 AliITStrackerMI.cxx:2507
 AliITStrackerMI.cxx:2508
 AliITStrackerMI.cxx:2509
 AliITStrackerMI.cxx:2510
 AliITStrackerMI.cxx:2511
 AliITStrackerMI.cxx:2512
 AliITStrackerMI.cxx:2513
 AliITStrackerMI.cxx:2514
 AliITStrackerMI.cxx:2515
 AliITStrackerMI.cxx:2516
 AliITStrackerMI.cxx:2517
 AliITStrackerMI.cxx:2518
 AliITStrackerMI.cxx:2519
 AliITStrackerMI.cxx:2520
 AliITStrackerMI.cxx:2521
 AliITStrackerMI.cxx:2522
 AliITStrackerMI.cxx:2523
 AliITStrackerMI.cxx:2524
 AliITStrackerMI.cxx:2525
 AliITStrackerMI.cxx:2526
 AliITStrackerMI.cxx:2527
 AliITStrackerMI.cxx:2528
 AliITStrackerMI.cxx:2529
 AliITStrackerMI.cxx:2530
 AliITStrackerMI.cxx:2531
 AliITStrackerMI.cxx:2532
 AliITStrackerMI.cxx:2533
 AliITStrackerMI.cxx:2534
 AliITStrackerMI.cxx:2535
 AliITStrackerMI.cxx:2536
 AliITStrackerMI.cxx:2537
 AliITStrackerMI.cxx:2538
 AliITStrackerMI.cxx:2539
 AliITStrackerMI.cxx:2540
 AliITStrackerMI.cxx:2541
 AliITStrackerMI.cxx:2542
 AliITStrackerMI.cxx:2543
 AliITStrackerMI.cxx:2544
 AliITStrackerMI.cxx:2545
 AliITStrackerMI.cxx:2546
 AliITStrackerMI.cxx:2547
 AliITStrackerMI.cxx:2548
 AliITStrackerMI.cxx:2549
 AliITStrackerMI.cxx:2550
 AliITStrackerMI.cxx:2551
 AliITStrackerMI.cxx:2552
 AliITStrackerMI.cxx:2553
 AliITStrackerMI.cxx:2554
 AliITStrackerMI.cxx:2555
 AliITStrackerMI.cxx:2556
 AliITStrackerMI.cxx:2557
 AliITStrackerMI.cxx:2558
 AliITStrackerMI.cxx:2559
 AliITStrackerMI.cxx:2560
 AliITStrackerMI.cxx:2561
 AliITStrackerMI.cxx:2562
 AliITStrackerMI.cxx:2563
 AliITStrackerMI.cxx:2564
 AliITStrackerMI.cxx:2565
 AliITStrackerMI.cxx:2566
 AliITStrackerMI.cxx:2567
 AliITStrackerMI.cxx:2568
 AliITStrackerMI.cxx:2569
 AliITStrackerMI.cxx:2570
 AliITStrackerMI.cxx:2571
 AliITStrackerMI.cxx:2572
 AliITStrackerMI.cxx:2573
 AliITStrackerMI.cxx:2574
 AliITStrackerMI.cxx:2575
 AliITStrackerMI.cxx:2576
 AliITStrackerMI.cxx:2577
 AliITStrackerMI.cxx:2578
 AliITStrackerMI.cxx:2579
 AliITStrackerMI.cxx:2580
 AliITStrackerMI.cxx:2581
 AliITStrackerMI.cxx:2582
 AliITStrackerMI.cxx:2583
 AliITStrackerMI.cxx:2584
 AliITStrackerMI.cxx:2585
 AliITStrackerMI.cxx:2586
 AliITStrackerMI.cxx:2587
 AliITStrackerMI.cxx:2588
 AliITStrackerMI.cxx:2589
 AliITStrackerMI.cxx:2590
 AliITStrackerMI.cxx:2591
 AliITStrackerMI.cxx:2592
 AliITStrackerMI.cxx:2593
 AliITStrackerMI.cxx:2594
 AliITStrackerMI.cxx:2595
 AliITStrackerMI.cxx:2596
 AliITStrackerMI.cxx:2597
 AliITStrackerMI.cxx:2598
 AliITStrackerMI.cxx:2599
 AliITStrackerMI.cxx:2600
 AliITStrackerMI.cxx:2601
 AliITStrackerMI.cxx:2602
 AliITStrackerMI.cxx:2603
 AliITStrackerMI.cxx:2604
 AliITStrackerMI.cxx:2605
 AliITStrackerMI.cxx:2606
 AliITStrackerMI.cxx:2607
 AliITStrackerMI.cxx:2608
 AliITStrackerMI.cxx:2609
 AliITStrackerMI.cxx:2610
 AliITStrackerMI.cxx:2611
 AliITStrackerMI.cxx:2612
 AliITStrackerMI.cxx:2613
 AliITStrackerMI.cxx:2614
 AliITStrackerMI.cxx:2615
 AliITStrackerMI.cxx:2616
 AliITStrackerMI.cxx:2617
 AliITStrackerMI.cxx:2618
 AliITStrackerMI.cxx:2619
 AliITStrackerMI.cxx:2620
 AliITStrackerMI.cxx:2621
 AliITStrackerMI.cxx:2622
 AliITStrackerMI.cxx:2623
 AliITStrackerMI.cxx:2624
 AliITStrackerMI.cxx:2625
 AliITStrackerMI.cxx:2626
 AliITStrackerMI.cxx:2627
 AliITStrackerMI.cxx:2628
 AliITStrackerMI.cxx:2629
 AliITStrackerMI.cxx:2630
 AliITStrackerMI.cxx:2631
 AliITStrackerMI.cxx:2632
 AliITStrackerMI.cxx:2633
 AliITStrackerMI.cxx:2634
 AliITStrackerMI.cxx:2635
 AliITStrackerMI.cxx:2636
 AliITStrackerMI.cxx:2637
 AliITStrackerMI.cxx:2638
 AliITStrackerMI.cxx:2639
 AliITStrackerMI.cxx:2640
 AliITStrackerMI.cxx:2641
 AliITStrackerMI.cxx:2642
 AliITStrackerMI.cxx:2643
 AliITStrackerMI.cxx:2644
 AliITStrackerMI.cxx:2645
 AliITStrackerMI.cxx:2646
 AliITStrackerMI.cxx:2647
 AliITStrackerMI.cxx:2648
 AliITStrackerMI.cxx:2649
 AliITStrackerMI.cxx:2650
 AliITStrackerMI.cxx:2651
 AliITStrackerMI.cxx:2652
 AliITStrackerMI.cxx:2653
 AliITStrackerMI.cxx:2654
 AliITStrackerMI.cxx:2655
 AliITStrackerMI.cxx:2656
 AliITStrackerMI.cxx:2657
 AliITStrackerMI.cxx:2658
 AliITStrackerMI.cxx:2659
 AliITStrackerMI.cxx:2660
 AliITStrackerMI.cxx:2661
 AliITStrackerMI.cxx:2662
 AliITStrackerMI.cxx:2663
 AliITStrackerMI.cxx:2664
 AliITStrackerMI.cxx:2665
 AliITStrackerMI.cxx:2666
 AliITStrackerMI.cxx:2667
 AliITStrackerMI.cxx:2668
 AliITStrackerMI.cxx:2669
 AliITStrackerMI.cxx:2670
 AliITStrackerMI.cxx:2671
 AliITStrackerMI.cxx:2672
 AliITStrackerMI.cxx:2673
 AliITStrackerMI.cxx:2674
 AliITStrackerMI.cxx:2675
 AliITStrackerMI.cxx:2676
 AliITStrackerMI.cxx:2677
 AliITStrackerMI.cxx:2678
 AliITStrackerMI.cxx:2679
 AliITStrackerMI.cxx:2680
 AliITStrackerMI.cxx:2681
 AliITStrackerMI.cxx:2682
 AliITStrackerMI.cxx:2683
 AliITStrackerMI.cxx:2684
 AliITStrackerMI.cxx:2685
 AliITStrackerMI.cxx:2686
 AliITStrackerMI.cxx:2687
 AliITStrackerMI.cxx:2688
 AliITStrackerMI.cxx:2689
 AliITStrackerMI.cxx:2690
 AliITStrackerMI.cxx:2691
 AliITStrackerMI.cxx:2692
 AliITStrackerMI.cxx:2693
 AliITStrackerMI.cxx:2694
 AliITStrackerMI.cxx:2695
 AliITStrackerMI.cxx:2696
 AliITStrackerMI.cxx:2697
 AliITStrackerMI.cxx:2698
 AliITStrackerMI.cxx:2699
 AliITStrackerMI.cxx:2700
 AliITStrackerMI.cxx:2701
 AliITStrackerMI.cxx:2702
 AliITStrackerMI.cxx:2703
 AliITStrackerMI.cxx:2704
 AliITStrackerMI.cxx:2705
 AliITStrackerMI.cxx:2706
 AliITStrackerMI.cxx:2707
 AliITStrackerMI.cxx:2708
 AliITStrackerMI.cxx:2709
 AliITStrackerMI.cxx:2710
 AliITStrackerMI.cxx:2711
 AliITStrackerMI.cxx:2712
 AliITStrackerMI.cxx:2713
 AliITStrackerMI.cxx:2714
 AliITStrackerMI.cxx:2715
 AliITStrackerMI.cxx:2716
 AliITStrackerMI.cxx:2717
 AliITStrackerMI.cxx:2718
 AliITStrackerMI.cxx:2719
 AliITStrackerMI.cxx:2720
 AliITStrackerMI.cxx:2721
 AliITStrackerMI.cxx:2722
 AliITStrackerMI.cxx:2723
 AliITStrackerMI.cxx:2724
 AliITStrackerMI.cxx:2725
 AliITStrackerMI.cxx:2726
 AliITStrackerMI.cxx:2727
 AliITStrackerMI.cxx:2728
 AliITStrackerMI.cxx:2729
 AliITStrackerMI.cxx:2730
 AliITStrackerMI.cxx:2731
 AliITStrackerMI.cxx:2732
 AliITStrackerMI.cxx:2733
 AliITStrackerMI.cxx:2734
 AliITStrackerMI.cxx:2735
 AliITStrackerMI.cxx:2736
 AliITStrackerMI.cxx:2737
 AliITStrackerMI.cxx:2738
 AliITStrackerMI.cxx:2739
 AliITStrackerMI.cxx:2740
 AliITStrackerMI.cxx:2741
 AliITStrackerMI.cxx:2742
 AliITStrackerMI.cxx:2743
 AliITStrackerMI.cxx:2744
 AliITStrackerMI.cxx:2745
 AliITStrackerMI.cxx:2746
 AliITStrackerMI.cxx:2747
 AliITStrackerMI.cxx:2748
 AliITStrackerMI.cxx:2749
 AliITStrackerMI.cxx:2750
 AliITStrackerMI.cxx:2751
 AliITStrackerMI.cxx:2752
 AliITStrackerMI.cxx:2753
 AliITStrackerMI.cxx:2754
 AliITStrackerMI.cxx:2755
 AliITStrackerMI.cxx:2756
 AliITStrackerMI.cxx:2757
 AliITStrackerMI.cxx:2758
 AliITStrackerMI.cxx:2759
 AliITStrackerMI.cxx:2760
 AliITStrackerMI.cxx:2761
 AliITStrackerMI.cxx:2762
 AliITStrackerMI.cxx:2763
 AliITStrackerMI.cxx:2764
 AliITStrackerMI.cxx:2765
 AliITStrackerMI.cxx:2766
 AliITStrackerMI.cxx:2767
 AliITStrackerMI.cxx:2768
 AliITStrackerMI.cxx:2769
 AliITStrackerMI.cxx:2770
 AliITStrackerMI.cxx:2771
 AliITStrackerMI.cxx:2772
 AliITStrackerMI.cxx:2773
 AliITStrackerMI.cxx:2774
 AliITStrackerMI.cxx:2775
 AliITStrackerMI.cxx:2776
 AliITStrackerMI.cxx:2777
 AliITStrackerMI.cxx:2778
 AliITStrackerMI.cxx:2779
 AliITStrackerMI.cxx:2780
 AliITStrackerMI.cxx:2781
 AliITStrackerMI.cxx:2782
 AliITStrackerMI.cxx:2783
 AliITStrackerMI.cxx:2784
 AliITStrackerMI.cxx:2785
 AliITStrackerMI.cxx:2786
 AliITStrackerMI.cxx:2787
 AliITStrackerMI.cxx:2788
 AliITStrackerMI.cxx:2789
 AliITStrackerMI.cxx:2790
 AliITStrackerMI.cxx:2791
 AliITStrackerMI.cxx:2792
 AliITStrackerMI.cxx:2793
 AliITStrackerMI.cxx:2794
 AliITStrackerMI.cxx:2795
 AliITStrackerMI.cxx:2796
 AliITStrackerMI.cxx:2797
 AliITStrackerMI.cxx:2798
 AliITStrackerMI.cxx:2799
 AliITStrackerMI.cxx:2800
 AliITStrackerMI.cxx:2801
 AliITStrackerMI.cxx:2802
 AliITStrackerMI.cxx:2803
 AliITStrackerMI.cxx:2804
 AliITStrackerMI.cxx:2805
 AliITStrackerMI.cxx:2806
 AliITStrackerMI.cxx:2807
 AliITStrackerMI.cxx:2808
 AliITStrackerMI.cxx:2809
 AliITStrackerMI.cxx:2810
 AliITStrackerMI.cxx:2811
 AliITStrackerMI.cxx:2812
 AliITStrackerMI.cxx:2813
 AliITStrackerMI.cxx:2814
 AliITStrackerMI.cxx:2815
 AliITStrackerMI.cxx:2816
 AliITStrackerMI.cxx:2817
 AliITStrackerMI.cxx:2818
 AliITStrackerMI.cxx:2819
 AliITStrackerMI.cxx:2820
 AliITStrackerMI.cxx:2821
 AliITStrackerMI.cxx:2822
 AliITStrackerMI.cxx:2823
 AliITStrackerMI.cxx:2824
 AliITStrackerMI.cxx:2825
 AliITStrackerMI.cxx:2826
 AliITStrackerMI.cxx:2827
 AliITStrackerMI.cxx:2828
 AliITStrackerMI.cxx:2829
 AliITStrackerMI.cxx:2830
 AliITStrackerMI.cxx:2831
 AliITStrackerMI.cxx:2832
 AliITStrackerMI.cxx:2833
 AliITStrackerMI.cxx:2834
 AliITStrackerMI.cxx:2835
 AliITStrackerMI.cxx:2836
 AliITStrackerMI.cxx:2837
 AliITStrackerMI.cxx:2838
 AliITStrackerMI.cxx:2839
 AliITStrackerMI.cxx:2840
 AliITStrackerMI.cxx:2841
 AliITStrackerMI.cxx:2842
 AliITStrackerMI.cxx:2843
 AliITStrackerMI.cxx:2844
 AliITStrackerMI.cxx:2845
 AliITStrackerMI.cxx:2846
 AliITStrackerMI.cxx:2847
 AliITStrackerMI.cxx:2848
 AliITStrackerMI.cxx:2849
 AliITStrackerMI.cxx:2850
 AliITStrackerMI.cxx:2851
 AliITStrackerMI.cxx:2852
 AliITStrackerMI.cxx:2853
 AliITStrackerMI.cxx:2854
 AliITStrackerMI.cxx:2855
 AliITStrackerMI.cxx:2856
 AliITStrackerMI.cxx:2857
 AliITStrackerMI.cxx:2858
 AliITStrackerMI.cxx:2859
 AliITStrackerMI.cxx:2860
 AliITStrackerMI.cxx:2861
 AliITStrackerMI.cxx:2862
 AliITStrackerMI.cxx:2863
 AliITStrackerMI.cxx:2864
 AliITStrackerMI.cxx:2865
 AliITStrackerMI.cxx:2866
 AliITStrackerMI.cxx:2867
 AliITStrackerMI.cxx:2868
 AliITStrackerMI.cxx:2869
 AliITStrackerMI.cxx:2870
 AliITStrackerMI.cxx:2871
 AliITStrackerMI.cxx:2872
 AliITStrackerMI.cxx:2873
 AliITStrackerMI.cxx:2874
 AliITStrackerMI.cxx:2875
 AliITStrackerMI.cxx:2876
 AliITStrackerMI.cxx:2877
 AliITStrackerMI.cxx:2878
 AliITStrackerMI.cxx:2879
 AliITStrackerMI.cxx:2880
 AliITStrackerMI.cxx:2881
 AliITStrackerMI.cxx:2882
 AliITStrackerMI.cxx:2883
 AliITStrackerMI.cxx:2884
 AliITStrackerMI.cxx:2885
 AliITStrackerMI.cxx:2886
 AliITStrackerMI.cxx:2887
 AliITStrackerMI.cxx:2888
 AliITStrackerMI.cxx:2889
 AliITStrackerMI.cxx:2890
 AliITStrackerMI.cxx:2891
 AliITStrackerMI.cxx:2892
 AliITStrackerMI.cxx:2893
 AliITStrackerMI.cxx:2894
 AliITStrackerMI.cxx:2895
 AliITStrackerMI.cxx:2896
 AliITStrackerMI.cxx:2897
 AliITStrackerMI.cxx:2898
 AliITStrackerMI.cxx:2899
 AliITStrackerMI.cxx:2900
 AliITStrackerMI.cxx:2901
 AliITStrackerMI.cxx:2902
 AliITStrackerMI.cxx:2903
 AliITStrackerMI.cxx:2904
 AliITStrackerMI.cxx:2905
 AliITStrackerMI.cxx:2906
 AliITStrackerMI.cxx:2907
 AliITStrackerMI.cxx:2908
 AliITStrackerMI.cxx:2909
 AliITStrackerMI.cxx:2910
 AliITStrackerMI.cxx:2911
 AliITStrackerMI.cxx:2912
 AliITStrackerMI.cxx:2913
 AliITStrackerMI.cxx:2914
 AliITStrackerMI.cxx:2915
 AliITStrackerMI.cxx:2916
 AliITStrackerMI.cxx:2917
 AliITStrackerMI.cxx:2918
 AliITStrackerMI.cxx:2919
 AliITStrackerMI.cxx:2920
 AliITStrackerMI.cxx:2921
 AliITStrackerMI.cxx:2922
 AliITStrackerMI.cxx:2923
 AliITStrackerMI.cxx:2924
 AliITStrackerMI.cxx:2925
 AliITStrackerMI.cxx:2926
 AliITStrackerMI.cxx:2927
 AliITStrackerMI.cxx:2928
 AliITStrackerMI.cxx:2929
 AliITStrackerMI.cxx:2930
 AliITStrackerMI.cxx:2931
 AliITStrackerMI.cxx:2932
 AliITStrackerMI.cxx:2933
 AliITStrackerMI.cxx:2934
 AliITStrackerMI.cxx:2935
 AliITStrackerMI.cxx:2936
 AliITStrackerMI.cxx:2937
 AliITStrackerMI.cxx:2938
 AliITStrackerMI.cxx:2939
 AliITStrackerMI.cxx:2940
 AliITStrackerMI.cxx:2941
 AliITStrackerMI.cxx:2942
 AliITStrackerMI.cxx:2943
 AliITStrackerMI.cxx:2944
 AliITStrackerMI.cxx:2945
 AliITStrackerMI.cxx:2946
 AliITStrackerMI.cxx:2947
 AliITStrackerMI.cxx:2948
 AliITStrackerMI.cxx:2949
 AliITStrackerMI.cxx:2950
 AliITStrackerMI.cxx:2951
 AliITStrackerMI.cxx:2952
 AliITStrackerMI.cxx:2953
 AliITStrackerMI.cxx:2954
 AliITStrackerMI.cxx:2955
 AliITStrackerMI.cxx:2956
 AliITStrackerMI.cxx:2957
 AliITStrackerMI.cxx:2958
 AliITStrackerMI.cxx:2959
 AliITStrackerMI.cxx:2960
 AliITStrackerMI.cxx:2961
 AliITStrackerMI.cxx:2962
 AliITStrackerMI.cxx:2963
 AliITStrackerMI.cxx:2964
 AliITStrackerMI.cxx:2965
 AliITStrackerMI.cxx:2966
 AliITStrackerMI.cxx:2967
 AliITStrackerMI.cxx:2968
 AliITStrackerMI.cxx:2969
 AliITStrackerMI.cxx:2970
 AliITStrackerMI.cxx:2971
 AliITStrackerMI.cxx:2972
 AliITStrackerMI.cxx:2973
 AliITStrackerMI.cxx:2974
 AliITStrackerMI.cxx:2975
 AliITStrackerMI.cxx:2976
 AliITStrackerMI.cxx:2977
 AliITStrackerMI.cxx:2978
 AliITStrackerMI.cxx:2979
 AliITStrackerMI.cxx:2980
 AliITStrackerMI.cxx:2981
 AliITStrackerMI.cxx:2982
 AliITStrackerMI.cxx:2983
 AliITStrackerMI.cxx:2984
 AliITStrackerMI.cxx:2985
 AliITStrackerMI.cxx:2986
 AliITStrackerMI.cxx:2987
 AliITStrackerMI.cxx:2988
 AliITStrackerMI.cxx:2989
 AliITStrackerMI.cxx:2990
 AliITStrackerMI.cxx:2991
 AliITStrackerMI.cxx:2992
 AliITStrackerMI.cxx:2993
 AliITStrackerMI.cxx:2994
 AliITStrackerMI.cxx:2995
 AliITStrackerMI.cxx:2996
 AliITStrackerMI.cxx:2997
 AliITStrackerMI.cxx:2998
 AliITStrackerMI.cxx:2999
 AliITStrackerMI.cxx:3000
 AliITStrackerMI.cxx:3001
 AliITStrackerMI.cxx:3002
 AliITStrackerMI.cxx:3003
 AliITStrackerMI.cxx:3004
 AliITStrackerMI.cxx:3005
 AliITStrackerMI.cxx:3006
 AliITStrackerMI.cxx:3007
 AliITStrackerMI.cxx:3008
 AliITStrackerMI.cxx:3009
 AliITStrackerMI.cxx:3010
 AliITStrackerMI.cxx:3011
 AliITStrackerMI.cxx:3012
 AliITStrackerMI.cxx:3013
 AliITStrackerMI.cxx:3014
 AliITStrackerMI.cxx:3015
 AliITStrackerMI.cxx:3016
 AliITStrackerMI.cxx:3017
 AliITStrackerMI.cxx:3018
 AliITStrackerMI.cxx:3019
 AliITStrackerMI.cxx:3020
 AliITStrackerMI.cxx:3021
 AliITStrackerMI.cxx:3022
 AliITStrackerMI.cxx:3023
 AliITStrackerMI.cxx:3024
 AliITStrackerMI.cxx:3025
 AliITStrackerMI.cxx:3026
 AliITStrackerMI.cxx:3027
 AliITStrackerMI.cxx:3028
 AliITStrackerMI.cxx:3029
 AliITStrackerMI.cxx:3030
 AliITStrackerMI.cxx:3031
 AliITStrackerMI.cxx:3032
 AliITStrackerMI.cxx:3033
 AliITStrackerMI.cxx:3034
 AliITStrackerMI.cxx:3035
 AliITStrackerMI.cxx:3036
 AliITStrackerMI.cxx:3037
 AliITStrackerMI.cxx:3038
 AliITStrackerMI.cxx:3039
 AliITStrackerMI.cxx:3040
 AliITStrackerMI.cxx:3041
 AliITStrackerMI.cxx:3042
 AliITStrackerMI.cxx:3043
 AliITStrackerMI.cxx:3044
 AliITStrackerMI.cxx:3045
 AliITStrackerMI.cxx:3046
 AliITStrackerMI.cxx:3047
 AliITStrackerMI.cxx:3048
 AliITStrackerMI.cxx:3049
 AliITStrackerMI.cxx:3050
 AliITStrackerMI.cxx:3051
 AliITStrackerMI.cxx:3052
 AliITStrackerMI.cxx:3053
 AliITStrackerMI.cxx:3054
 AliITStrackerMI.cxx:3055
 AliITStrackerMI.cxx:3056
 AliITStrackerMI.cxx:3057
 AliITStrackerMI.cxx:3058
 AliITStrackerMI.cxx:3059
 AliITStrackerMI.cxx:3060
 AliITStrackerMI.cxx:3061
 AliITStrackerMI.cxx:3062
 AliITStrackerMI.cxx:3063
 AliITStrackerMI.cxx:3064
 AliITStrackerMI.cxx:3065
 AliITStrackerMI.cxx:3066
 AliITStrackerMI.cxx:3067
 AliITStrackerMI.cxx:3068
 AliITStrackerMI.cxx:3069
 AliITStrackerMI.cxx:3070
 AliITStrackerMI.cxx:3071
 AliITStrackerMI.cxx:3072
 AliITStrackerMI.cxx:3073
 AliITStrackerMI.cxx:3074
 AliITStrackerMI.cxx:3075
 AliITStrackerMI.cxx:3076
 AliITStrackerMI.cxx:3077
 AliITStrackerMI.cxx:3078
 AliITStrackerMI.cxx:3079
 AliITStrackerMI.cxx:3080
 AliITStrackerMI.cxx:3081
 AliITStrackerMI.cxx:3082
 AliITStrackerMI.cxx:3083
 AliITStrackerMI.cxx:3084
 AliITStrackerMI.cxx:3085
 AliITStrackerMI.cxx:3086
 AliITStrackerMI.cxx:3087
 AliITStrackerMI.cxx:3088
 AliITStrackerMI.cxx:3089
 AliITStrackerMI.cxx:3090
 AliITStrackerMI.cxx:3091
 AliITStrackerMI.cxx:3092
 AliITStrackerMI.cxx:3093
 AliITStrackerMI.cxx:3094
 AliITStrackerMI.cxx:3095
 AliITStrackerMI.cxx:3096
 AliITStrackerMI.cxx:3097
 AliITStrackerMI.cxx:3098
 AliITStrackerMI.cxx:3099
 AliITStrackerMI.cxx:3100
 AliITStrackerMI.cxx:3101
 AliITStrackerMI.cxx:3102
 AliITStrackerMI.cxx:3103
 AliITStrackerMI.cxx:3104
 AliITStrackerMI.cxx:3105
 AliITStrackerMI.cxx:3106
 AliITStrackerMI.cxx:3107
 AliITStrackerMI.cxx:3108
 AliITStrackerMI.cxx:3109
 AliITStrackerMI.cxx:3110
 AliITStrackerMI.cxx:3111
 AliITStrackerMI.cxx:3112
 AliITStrackerMI.cxx:3113
 AliITStrackerMI.cxx:3114
 AliITStrackerMI.cxx:3115
 AliITStrackerMI.cxx:3116
 AliITStrackerMI.cxx:3117
 AliITStrackerMI.cxx:3118
 AliITStrackerMI.cxx:3119
 AliITStrackerMI.cxx:3120
 AliITStrackerMI.cxx:3121
 AliITStrackerMI.cxx:3122
 AliITStrackerMI.cxx:3123
 AliITStrackerMI.cxx:3124
 AliITStrackerMI.cxx:3125
 AliITStrackerMI.cxx:3126
 AliITStrackerMI.cxx:3127
 AliITStrackerMI.cxx:3128
 AliITStrackerMI.cxx:3129
 AliITStrackerMI.cxx:3130
 AliITStrackerMI.cxx:3131
 AliITStrackerMI.cxx:3132
 AliITStrackerMI.cxx:3133
 AliITStrackerMI.cxx:3134
 AliITStrackerMI.cxx:3135
 AliITStrackerMI.cxx:3136
 AliITStrackerMI.cxx:3137
 AliITStrackerMI.cxx:3138
 AliITStrackerMI.cxx:3139
 AliITStrackerMI.cxx:3140
 AliITStrackerMI.cxx:3141
 AliITStrackerMI.cxx:3142
 AliITStrackerMI.cxx:3143
 AliITStrackerMI.cxx:3144
 AliITStrackerMI.cxx:3145
 AliITStrackerMI.cxx:3146
 AliITStrackerMI.cxx:3147
 AliITStrackerMI.cxx:3148
 AliITStrackerMI.cxx:3149
 AliITStrackerMI.cxx:3150
 AliITStrackerMI.cxx:3151
 AliITStrackerMI.cxx:3152
 AliITStrackerMI.cxx:3153
 AliITStrackerMI.cxx:3154
 AliITStrackerMI.cxx:3155
 AliITStrackerMI.cxx:3156
 AliITStrackerMI.cxx:3157
 AliITStrackerMI.cxx:3158
 AliITStrackerMI.cxx:3159
 AliITStrackerMI.cxx:3160
 AliITStrackerMI.cxx:3161
 AliITStrackerMI.cxx:3162
 AliITStrackerMI.cxx:3163
 AliITStrackerMI.cxx:3164
 AliITStrackerMI.cxx:3165
 AliITStrackerMI.cxx:3166
 AliITStrackerMI.cxx:3167
 AliITStrackerMI.cxx:3168
 AliITStrackerMI.cxx:3169
 AliITStrackerMI.cxx:3170
 AliITStrackerMI.cxx:3171
 AliITStrackerMI.cxx:3172
 AliITStrackerMI.cxx:3173
 AliITStrackerMI.cxx:3174
 AliITStrackerMI.cxx:3175
 AliITStrackerMI.cxx:3176
 AliITStrackerMI.cxx:3177
 AliITStrackerMI.cxx:3178
 AliITStrackerMI.cxx:3179
 AliITStrackerMI.cxx:3180
 AliITStrackerMI.cxx:3181
 AliITStrackerMI.cxx:3182
 AliITStrackerMI.cxx:3183
 AliITStrackerMI.cxx:3184
 AliITStrackerMI.cxx:3185
 AliITStrackerMI.cxx:3186
 AliITStrackerMI.cxx:3187
 AliITStrackerMI.cxx:3188
 AliITStrackerMI.cxx:3189
 AliITStrackerMI.cxx:3190
 AliITStrackerMI.cxx:3191
 AliITStrackerMI.cxx:3192
 AliITStrackerMI.cxx:3193
 AliITStrackerMI.cxx:3194
 AliITStrackerMI.cxx:3195
 AliITStrackerMI.cxx:3196
 AliITStrackerMI.cxx:3197
 AliITStrackerMI.cxx:3198
 AliITStrackerMI.cxx:3199
 AliITStrackerMI.cxx:3200
 AliITStrackerMI.cxx:3201
 AliITStrackerMI.cxx:3202
 AliITStrackerMI.cxx:3203
 AliITStrackerMI.cxx:3204
 AliITStrackerMI.cxx:3205
 AliITStrackerMI.cxx:3206
 AliITStrackerMI.cxx:3207
 AliITStrackerMI.cxx:3208
 AliITStrackerMI.cxx:3209
 AliITStrackerMI.cxx:3210
 AliITStrackerMI.cxx:3211
 AliITStrackerMI.cxx:3212
 AliITStrackerMI.cxx:3213
 AliITStrackerMI.cxx:3214
 AliITStrackerMI.cxx:3215
 AliITStrackerMI.cxx:3216
 AliITStrackerMI.cxx:3217
 AliITStrackerMI.cxx:3218
 AliITStrackerMI.cxx:3219
 AliITStrackerMI.cxx:3220
 AliITStrackerMI.cxx:3221
 AliITStrackerMI.cxx:3222
 AliITStrackerMI.cxx:3223
 AliITStrackerMI.cxx:3224
 AliITStrackerMI.cxx:3225
 AliITStrackerMI.cxx:3226
 AliITStrackerMI.cxx:3227
 AliITStrackerMI.cxx:3228
 AliITStrackerMI.cxx:3229
 AliITStrackerMI.cxx:3230
 AliITStrackerMI.cxx:3231
 AliITStrackerMI.cxx:3232
 AliITStrackerMI.cxx:3233
 AliITStrackerMI.cxx:3234
 AliITStrackerMI.cxx:3235
 AliITStrackerMI.cxx:3236
 AliITStrackerMI.cxx:3237
 AliITStrackerMI.cxx:3238
 AliITStrackerMI.cxx:3239
 AliITStrackerMI.cxx:3240
 AliITStrackerMI.cxx:3241
 AliITStrackerMI.cxx:3242
 AliITStrackerMI.cxx:3243
 AliITStrackerMI.cxx:3244
 AliITStrackerMI.cxx:3245
 AliITStrackerMI.cxx:3246
 AliITStrackerMI.cxx:3247
 AliITStrackerMI.cxx:3248
 AliITStrackerMI.cxx:3249
 AliITStrackerMI.cxx:3250
 AliITStrackerMI.cxx:3251
 AliITStrackerMI.cxx:3252
 AliITStrackerMI.cxx:3253
 AliITStrackerMI.cxx:3254
 AliITStrackerMI.cxx:3255
 AliITStrackerMI.cxx:3256
 AliITStrackerMI.cxx:3257
 AliITStrackerMI.cxx:3258
 AliITStrackerMI.cxx:3259
 AliITStrackerMI.cxx:3260
 AliITStrackerMI.cxx:3261
 AliITStrackerMI.cxx:3262
 AliITStrackerMI.cxx:3263
 AliITStrackerMI.cxx:3264
 AliITStrackerMI.cxx:3265
 AliITStrackerMI.cxx:3266
 AliITStrackerMI.cxx:3267
 AliITStrackerMI.cxx:3268
 AliITStrackerMI.cxx:3269
 AliITStrackerMI.cxx:3270
 AliITStrackerMI.cxx:3271
 AliITStrackerMI.cxx:3272
 AliITStrackerMI.cxx:3273
 AliITStrackerMI.cxx:3274
 AliITStrackerMI.cxx:3275
 AliITStrackerMI.cxx:3276
 AliITStrackerMI.cxx:3277
 AliITStrackerMI.cxx:3278
 AliITStrackerMI.cxx:3279
 AliITStrackerMI.cxx:3280
 AliITStrackerMI.cxx:3281
 AliITStrackerMI.cxx:3282
 AliITStrackerMI.cxx:3283
 AliITStrackerMI.cxx:3284
 AliITStrackerMI.cxx:3285
 AliITStrackerMI.cxx:3286
 AliITStrackerMI.cxx:3287
 AliITStrackerMI.cxx:3288
 AliITStrackerMI.cxx:3289
 AliITStrackerMI.cxx:3290
 AliITStrackerMI.cxx:3291
 AliITStrackerMI.cxx:3292
 AliITStrackerMI.cxx:3293
 AliITStrackerMI.cxx:3294
 AliITStrackerMI.cxx:3295
 AliITStrackerMI.cxx:3296
 AliITStrackerMI.cxx:3297
 AliITStrackerMI.cxx:3298
 AliITStrackerMI.cxx:3299
 AliITStrackerMI.cxx:3300
 AliITStrackerMI.cxx:3301
 AliITStrackerMI.cxx:3302
 AliITStrackerMI.cxx:3303
 AliITStrackerMI.cxx:3304
 AliITStrackerMI.cxx:3305
 AliITStrackerMI.cxx:3306
 AliITStrackerMI.cxx:3307
 AliITStrackerMI.cxx:3308
 AliITStrackerMI.cxx:3309
 AliITStrackerMI.cxx:3310
 AliITStrackerMI.cxx:3311
 AliITStrackerMI.cxx:3312
 AliITStrackerMI.cxx:3313
 AliITStrackerMI.cxx:3314
 AliITStrackerMI.cxx:3315
 AliITStrackerMI.cxx:3316
 AliITStrackerMI.cxx:3317
 AliITStrackerMI.cxx:3318
 AliITStrackerMI.cxx:3319
 AliITStrackerMI.cxx:3320
 AliITStrackerMI.cxx:3321
 AliITStrackerMI.cxx:3322
 AliITStrackerMI.cxx:3323
 AliITStrackerMI.cxx:3324
 AliITStrackerMI.cxx:3325
 AliITStrackerMI.cxx:3326
 AliITStrackerMI.cxx:3327
 AliITStrackerMI.cxx:3328
 AliITStrackerMI.cxx:3329
 AliITStrackerMI.cxx:3330
 AliITStrackerMI.cxx:3331
 AliITStrackerMI.cxx:3332
 AliITStrackerMI.cxx:3333
 AliITStrackerMI.cxx:3334
 AliITStrackerMI.cxx:3335
 AliITStrackerMI.cxx:3336
 AliITStrackerMI.cxx:3337
 AliITStrackerMI.cxx:3338
 AliITStrackerMI.cxx:3339
 AliITStrackerMI.cxx:3340
 AliITStrackerMI.cxx:3341
 AliITStrackerMI.cxx:3342
 AliITStrackerMI.cxx:3343
 AliITStrackerMI.cxx:3344
 AliITStrackerMI.cxx:3345
 AliITStrackerMI.cxx:3346
 AliITStrackerMI.cxx:3347
 AliITStrackerMI.cxx:3348
 AliITStrackerMI.cxx:3349
 AliITStrackerMI.cxx:3350
 AliITStrackerMI.cxx:3351
 AliITStrackerMI.cxx:3352
 AliITStrackerMI.cxx:3353
 AliITStrackerMI.cxx:3354
 AliITStrackerMI.cxx:3355
 AliITStrackerMI.cxx:3356
 AliITStrackerMI.cxx:3357
 AliITStrackerMI.cxx:3358
 AliITStrackerMI.cxx:3359
 AliITStrackerMI.cxx:3360
 AliITStrackerMI.cxx:3361
 AliITStrackerMI.cxx:3362
 AliITStrackerMI.cxx:3363
 AliITStrackerMI.cxx:3364
 AliITStrackerMI.cxx:3365
 AliITStrackerMI.cxx:3366
 AliITStrackerMI.cxx:3367
 AliITStrackerMI.cxx:3368
 AliITStrackerMI.cxx:3369
 AliITStrackerMI.cxx:3370
 AliITStrackerMI.cxx:3371
 AliITStrackerMI.cxx:3372
 AliITStrackerMI.cxx:3373
 AliITStrackerMI.cxx:3374
 AliITStrackerMI.cxx:3375
 AliITStrackerMI.cxx:3376
 AliITStrackerMI.cxx:3377
 AliITStrackerMI.cxx:3378
 AliITStrackerMI.cxx:3379
 AliITStrackerMI.cxx:3380
 AliITStrackerMI.cxx:3381
 AliITStrackerMI.cxx:3382
 AliITStrackerMI.cxx:3383
 AliITStrackerMI.cxx:3384
 AliITStrackerMI.cxx:3385
 AliITStrackerMI.cxx:3386
 AliITStrackerMI.cxx:3387
 AliITStrackerMI.cxx:3388
 AliITStrackerMI.cxx:3389
 AliITStrackerMI.cxx:3390
 AliITStrackerMI.cxx:3391
 AliITStrackerMI.cxx:3392
 AliITStrackerMI.cxx:3393
 AliITStrackerMI.cxx:3394
 AliITStrackerMI.cxx:3395
 AliITStrackerMI.cxx:3396
 AliITStrackerMI.cxx:3397
 AliITStrackerMI.cxx:3398
 AliITStrackerMI.cxx:3399
 AliITStrackerMI.cxx:3400
 AliITStrackerMI.cxx:3401
 AliITStrackerMI.cxx:3402
 AliITStrackerMI.cxx:3403
 AliITStrackerMI.cxx:3404
 AliITStrackerMI.cxx:3405
 AliITStrackerMI.cxx:3406
 AliITStrackerMI.cxx:3407
 AliITStrackerMI.cxx:3408
 AliITStrackerMI.cxx:3409
 AliITStrackerMI.cxx:3410
 AliITStrackerMI.cxx:3411
 AliITStrackerMI.cxx:3412
 AliITStrackerMI.cxx:3413
 AliITStrackerMI.cxx:3414
 AliITStrackerMI.cxx:3415
 AliITStrackerMI.cxx:3416
 AliITStrackerMI.cxx:3417
 AliITStrackerMI.cxx:3418
 AliITStrackerMI.cxx:3419
 AliITStrackerMI.cxx:3420
 AliITStrackerMI.cxx:3421
 AliITStrackerMI.cxx:3422
 AliITStrackerMI.cxx:3423
 AliITStrackerMI.cxx:3424
 AliITStrackerMI.cxx:3425
 AliITStrackerMI.cxx:3426
 AliITStrackerMI.cxx:3427
 AliITStrackerMI.cxx:3428
 AliITStrackerMI.cxx:3429
 AliITStrackerMI.cxx:3430
 AliITStrackerMI.cxx:3431
 AliITStrackerMI.cxx:3432
 AliITStrackerMI.cxx:3433
 AliITStrackerMI.cxx:3434
 AliITStrackerMI.cxx:3435
 AliITStrackerMI.cxx:3436
 AliITStrackerMI.cxx:3437
 AliITStrackerMI.cxx:3438
 AliITStrackerMI.cxx:3439
 AliITStrackerMI.cxx:3440
 AliITStrackerMI.cxx:3441
 AliITStrackerMI.cxx:3442
 AliITStrackerMI.cxx:3443
 AliITStrackerMI.cxx:3444
 AliITStrackerMI.cxx:3445
 AliITStrackerMI.cxx:3446
 AliITStrackerMI.cxx:3447
 AliITStrackerMI.cxx:3448
 AliITStrackerMI.cxx:3449
 AliITStrackerMI.cxx:3450
 AliITStrackerMI.cxx:3451
 AliITStrackerMI.cxx:3452
 AliITStrackerMI.cxx:3453
 AliITStrackerMI.cxx:3454
 AliITStrackerMI.cxx:3455
 AliITStrackerMI.cxx:3456
 AliITStrackerMI.cxx:3457
 AliITStrackerMI.cxx:3458
 AliITStrackerMI.cxx:3459
 AliITStrackerMI.cxx:3460
 AliITStrackerMI.cxx:3461
 AliITStrackerMI.cxx:3462
 AliITStrackerMI.cxx:3463
 AliITStrackerMI.cxx:3464
 AliITStrackerMI.cxx:3465
 AliITStrackerMI.cxx:3466
 AliITStrackerMI.cxx:3467
 AliITStrackerMI.cxx:3468
 AliITStrackerMI.cxx:3469
 AliITStrackerMI.cxx:3470
 AliITStrackerMI.cxx:3471
 AliITStrackerMI.cxx:3472
 AliITStrackerMI.cxx:3473
 AliITStrackerMI.cxx:3474
 AliITStrackerMI.cxx:3475
 AliITStrackerMI.cxx:3476
 AliITStrackerMI.cxx:3477
 AliITStrackerMI.cxx:3478
 AliITStrackerMI.cxx:3479
 AliITStrackerMI.cxx:3480
 AliITStrackerMI.cxx:3481
 AliITStrackerMI.cxx:3482
 AliITStrackerMI.cxx:3483
 AliITStrackerMI.cxx:3484
 AliITStrackerMI.cxx:3485
 AliITStrackerMI.cxx:3486
 AliITStrackerMI.cxx:3487
 AliITStrackerMI.cxx:3488
 AliITStrackerMI.cxx:3489
 AliITStrackerMI.cxx:3490
 AliITStrackerMI.cxx:3491
 AliITStrackerMI.cxx:3492
 AliITStrackerMI.cxx:3493
 AliITStrackerMI.cxx:3494
 AliITStrackerMI.cxx:3495
 AliITStrackerMI.cxx:3496
 AliITStrackerMI.cxx:3497
 AliITStrackerMI.cxx:3498
 AliITStrackerMI.cxx:3499
 AliITStrackerMI.cxx:3500
 AliITStrackerMI.cxx:3501
 AliITStrackerMI.cxx:3502
 AliITStrackerMI.cxx:3503
 AliITStrackerMI.cxx:3504
 AliITStrackerMI.cxx:3505
 AliITStrackerMI.cxx:3506
 AliITStrackerMI.cxx:3507
 AliITStrackerMI.cxx:3508
 AliITStrackerMI.cxx:3509
 AliITStrackerMI.cxx:3510
 AliITStrackerMI.cxx:3511
 AliITStrackerMI.cxx:3512
 AliITStrackerMI.cxx:3513
 AliITStrackerMI.cxx:3514
 AliITStrackerMI.cxx:3515
 AliITStrackerMI.cxx:3516
 AliITStrackerMI.cxx:3517
 AliITStrackerMI.cxx:3518
 AliITStrackerMI.cxx:3519
 AliITStrackerMI.cxx:3520
 AliITStrackerMI.cxx:3521
 AliITStrackerMI.cxx:3522
 AliITStrackerMI.cxx:3523
 AliITStrackerMI.cxx:3524
 AliITStrackerMI.cxx:3525
 AliITStrackerMI.cxx:3526
 AliITStrackerMI.cxx:3527
 AliITStrackerMI.cxx:3528
 AliITStrackerMI.cxx:3529
 AliITStrackerMI.cxx:3530
 AliITStrackerMI.cxx:3531
 AliITStrackerMI.cxx:3532
 AliITStrackerMI.cxx:3533
 AliITStrackerMI.cxx:3534
 AliITStrackerMI.cxx:3535
 AliITStrackerMI.cxx:3536
 AliITStrackerMI.cxx:3537
 AliITStrackerMI.cxx:3538
 AliITStrackerMI.cxx:3539
 AliITStrackerMI.cxx:3540
 AliITStrackerMI.cxx:3541
 AliITStrackerMI.cxx:3542
 AliITStrackerMI.cxx:3543
 AliITStrackerMI.cxx:3544
 AliITStrackerMI.cxx:3545
 AliITStrackerMI.cxx:3546
 AliITStrackerMI.cxx:3547
 AliITStrackerMI.cxx:3548
 AliITStrackerMI.cxx:3549
 AliITStrackerMI.cxx:3550
 AliITStrackerMI.cxx:3551
 AliITStrackerMI.cxx:3552
 AliITStrackerMI.cxx:3553
 AliITStrackerMI.cxx:3554
 AliITStrackerMI.cxx:3555
 AliITStrackerMI.cxx:3556
 AliITStrackerMI.cxx:3557
 AliITStrackerMI.cxx:3558
 AliITStrackerMI.cxx:3559
 AliITStrackerMI.cxx:3560
 AliITStrackerMI.cxx:3561
 AliITStrackerMI.cxx:3562
 AliITStrackerMI.cxx:3563
 AliITStrackerMI.cxx:3564
 AliITStrackerMI.cxx:3565
 AliITStrackerMI.cxx:3566
 AliITStrackerMI.cxx:3567
 AliITStrackerMI.cxx:3568
 AliITStrackerMI.cxx:3569
 AliITStrackerMI.cxx:3570
 AliITStrackerMI.cxx:3571
 AliITStrackerMI.cxx:3572
 AliITStrackerMI.cxx:3573
 AliITStrackerMI.cxx:3574
 AliITStrackerMI.cxx:3575
 AliITStrackerMI.cxx:3576
 AliITStrackerMI.cxx:3577
 AliITStrackerMI.cxx:3578
 AliITStrackerMI.cxx:3579
 AliITStrackerMI.cxx:3580
 AliITStrackerMI.cxx:3581
 AliITStrackerMI.cxx:3582
 AliITStrackerMI.cxx:3583
 AliITStrackerMI.cxx:3584
 AliITStrackerMI.cxx:3585
 AliITStrackerMI.cxx:3586
 AliITStrackerMI.cxx:3587
 AliITStrackerMI.cxx:3588
 AliITStrackerMI.cxx:3589
 AliITStrackerMI.cxx:3590
 AliITStrackerMI.cxx:3591
 AliITStrackerMI.cxx:3592
 AliITStrackerMI.cxx:3593
 AliITStrackerMI.cxx:3594
 AliITStrackerMI.cxx:3595
 AliITStrackerMI.cxx:3596
 AliITStrackerMI.cxx:3597
 AliITStrackerMI.cxx:3598
 AliITStrackerMI.cxx:3599
 AliITStrackerMI.cxx:3600
 AliITStrackerMI.cxx:3601
 AliITStrackerMI.cxx:3602
 AliITStrackerMI.cxx:3603
 AliITStrackerMI.cxx:3604
 AliITStrackerMI.cxx:3605
 AliITStrackerMI.cxx:3606
 AliITStrackerMI.cxx:3607
 AliITStrackerMI.cxx:3608
 AliITStrackerMI.cxx:3609
 AliITStrackerMI.cxx:3610
 AliITStrackerMI.cxx:3611
 AliITStrackerMI.cxx:3612
 AliITStrackerMI.cxx:3613
 AliITStrackerMI.cxx:3614
 AliITStrackerMI.cxx:3615
 AliITStrackerMI.cxx:3616
 AliITStrackerMI.cxx:3617
 AliITStrackerMI.cxx:3618
 AliITStrackerMI.cxx:3619
 AliITStrackerMI.cxx:3620
 AliITStrackerMI.cxx:3621
 AliITStrackerMI.cxx:3622
 AliITStrackerMI.cxx:3623
 AliITStrackerMI.cxx:3624
 AliITStrackerMI.cxx:3625
 AliITStrackerMI.cxx:3626
 AliITStrackerMI.cxx:3627
 AliITStrackerMI.cxx:3628
 AliITStrackerMI.cxx:3629
 AliITStrackerMI.cxx:3630
 AliITStrackerMI.cxx:3631
 AliITStrackerMI.cxx:3632
 AliITStrackerMI.cxx:3633
 AliITStrackerMI.cxx:3634
 AliITStrackerMI.cxx:3635
 AliITStrackerMI.cxx:3636
 AliITStrackerMI.cxx:3637
 AliITStrackerMI.cxx:3638
 AliITStrackerMI.cxx:3639
 AliITStrackerMI.cxx:3640
 AliITStrackerMI.cxx:3641
 AliITStrackerMI.cxx:3642
 AliITStrackerMI.cxx:3643
 AliITStrackerMI.cxx:3644
 AliITStrackerMI.cxx:3645
 AliITStrackerMI.cxx:3646
 AliITStrackerMI.cxx:3647
 AliITStrackerMI.cxx:3648
 AliITStrackerMI.cxx:3649
 AliITStrackerMI.cxx:3650
 AliITStrackerMI.cxx:3651
 AliITStrackerMI.cxx:3652
 AliITStrackerMI.cxx:3653
 AliITStrackerMI.cxx:3654
 AliITStrackerMI.cxx:3655
 AliITStrackerMI.cxx:3656
 AliITStrackerMI.cxx:3657
 AliITStrackerMI.cxx:3658
 AliITStrackerMI.cxx:3659
 AliITStrackerMI.cxx:3660
 AliITStrackerMI.cxx:3661
 AliITStrackerMI.cxx:3662
 AliITStrackerMI.cxx:3663
 AliITStrackerMI.cxx:3664
 AliITStrackerMI.cxx:3665
 AliITStrackerMI.cxx:3666
 AliITStrackerMI.cxx:3667
 AliITStrackerMI.cxx:3668
 AliITStrackerMI.cxx:3669
 AliITStrackerMI.cxx:3670
 AliITStrackerMI.cxx:3671
 AliITStrackerMI.cxx:3672
 AliITStrackerMI.cxx:3673
 AliITStrackerMI.cxx:3674
 AliITStrackerMI.cxx:3675
 AliITStrackerMI.cxx:3676
 AliITStrackerMI.cxx:3677
 AliITStrackerMI.cxx:3678
 AliITStrackerMI.cxx:3679
 AliITStrackerMI.cxx:3680
 AliITStrackerMI.cxx:3681
 AliITStrackerMI.cxx:3682
 AliITStrackerMI.cxx:3683
 AliITStrackerMI.cxx:3684
 AliITStrackerMI.cxx:3685
 AliITStrackerMI.cxx:3686
 AliITStrackerMI.cxx:3687
 AliITStrackerMI.cxx:3688
 AliITStrackerMI.cxx:3689
 AliITStrackerMI.cxx:3690
 AliITStrackerMI.cxx:3691
 AliITStrackerMI.cxx:3692
 AliITStrackerMI.cxx:3693
 AliITStrackerMI.cxx:3694
 AliITStrackerMI.cxx:3695
 AliITStrackerMI.cxx:3696
 AliITStrackerMI.cxx:3697
 AliITStrackerMI.cxx:3698
 AliITStrackerMI.cxx:3699
 AliITStrackerMI.cxx:3700
 AliITStrackerMI.cxx:3701
 AliITStrackerMI.cxx:3702
 AliITStrackerMI.cxx:3703
 AliITStrackerMI.cxx:3704
 AliITStrackerMI.cxx:3705
 AliITStrackerMI.cxx:3706
 AliITStrackerMI.cxx:3707
 AliITStrackerMI.cxx:3708
 AliITStrackerMI.cxx:3709
 AliITStrackerMI.cxx:3710
 AliITStrackerMI.cxx:3711
 AliITStrackerMI.cxx:3712
 AliITStrackerMI.cxx:3713
 AliITStrackerMI.cxx:3714
 AliITStrackerMI.cxx:3715
 AliITStrackerMI.cxx:3716
 AliITStrackerMI.cxx:3717
 AliITStrackerMI.cxx:3718
 AliITStrackerMI.cxx:3719
 AliITStrackerMI.cxx:3720
 AliITStrackerMI.cxx:3721
 AliITStrackerMI.cxx:3722
 AliITStrackerMI.cxx:3723
 AliITStrackerMI.cxx:3724
 AliITStrackerMI.cxx:3725
 AliITStrackerMI.cxx:3726
 AliITStrackerMI.cxx:3727
 AliITStrackerMI.cxx:3728
 AliITStrackerMI.cxx:3729
 AliITStrackerMI.cxx:3730
 AliITStrackerMI.cxx:3731
 AliITStrackerMI.cxx:3732
 AliITStrackerMI.cxx:3733
 AliITStrackerMI.cxx:3734
 AliITStrackerMI.cxx:3735
 AliITStrackerMI.cxx:3736
 AliITStrackerMI.cxx:3737
 AliITStrackerMI.cxx:3738
 AliITStrackerMI.cxx:3739
 AliITStrackerMI.cxx:3740
 AliITStrackerMI.cxx:3741
 AliITStrackerMI.cxx:3742
 AliITStrackerMI.cxx:3743
 AliITStrackerMI.cxx:3744
 AliITStrackerMI.cxx:3745
 AliITStrackerMI.cxx:3746
 AliITStrackerMI.cxx:3747
 AliITStrackerMI.cxx:3748
 AliITStrackerMI.cxx:3749
 AliITStrackerMI.cxx:3750
 AliITStrackerMI.cxx:3751
 AliITStrackerMI.cxx:3752
 AliITStrackerMI.cxx:3753
 AliITStrackerMI.cxx:3754
 AliITStrackerMI.cxx:3755
 AliITStrackerMI.cxx:3756
 AliITStrackerMI.cxx:3757
 AliITStrackerMI.cxx:3758
 AliITStrackerMI.cxx:3759
 AliITStrackerMI.cxx:3760
 AliITStrackerMI.cxx:3761
 AliITStrackerMI.cxx:3762
 AliITStrackerMI.cxx:3763
 AliITStrackerMI.cxx:3764
 AliITStrackerMI.cxx:3765
 AliITStrackerMI.cxx:3766
 AliITStrackerMI.cxx:3767
 AliITStrackerMI.cxx:3768
 AliITStrackerMI.cxx:3769
 AliITStrackerMI.cxx:3770
 AliITStrackerMI.cxx:3771
 AliITStrackerMI.cxx:3772
 AliITStrackerMI.cxx:3773
 AliITStrackerMI.cxx:3774
 AliITStrackerMI.cxx:3775
 AliITStrackerMI.cxx:3776
 AliITStrackerMI.cxx:3777
 AliITStrackerMI.cxx:3778
 AliITStrackerMI.cxx:3779
 AliITStrackerMI.cxx:3780
 AliITStrackerMI.cxx:3781
 AliITStrackerMI.cxx:3782
 AliITStrackerMI.cxx:3783
 AliITStrackerMI.cxx:3784
 AliITStrackerMI.cxx:3785
 AliITStrackerMI.cxx:3786
 AliITStrackerMI.cxx:3787
 AliITStrackerMI.cxx:3788
 AliITStrackerMI.cxx:3789
 AliITStrackerMI.cxx:3790
 AliITStrackerMI.cxx:3791
 AliITStrackerMI.cxx:3792
 AliITStrackerMI.cxx:3793
 AliITStrackerMI.cxx:3794
 AliITStrackerMI.cxx:3795
 AliITStrackerMI.cxx:3796
 AliITStrackerMI.cxx:3797
 AliITStrackerMI.cxx:3798
 AliITStrackerMI.cxx:3799
 AliITStrackerMI.cxx:3800
 AliITStrackerMI.cxx:3801
 AliITStrackerMI.cxx:3802
 AliITStrackerMI.cxx:3803
 AliITStrackerMI.cxx:3804
 AliITStrackerMI.cxx:3805
 AliITStrackerMI.cxx:3806
 AliITStrackerMI.cxx:3807
 AliITStrackerMI.cxx:3808
 AliITStrackerMI.cxx:3809
 AliITStrackerMI.cxx:3810
 AliITStrackerMI.cxx:3811
 AliITStrackerMI.cxx:3812
 AliITStrackerMI.cxx:3813
 AliITStrackerMI.cxx:3814
 AliITStrackerMI.cxx:3815
 AliITStrackerMI.cxx:3816
 AliITStrackerMI.cxx:3817
 AliITStrackerMI.cxx:3818
 AliITStrackerMI.cxx:3819
 AliITStrackerMI.cxx:3820
 AliITStrackerMI.cxx:3821
 AliITStrackerMI.cxx:3822
 AliITStrackerMI.cxx:3823
 AliITStrackerMI.cxx:3824
 AliITStrackerMI.cxx:3825
 AliITStrackerMI.cxx:3826
 AliITStrackerMI.cxx:3827
 AliITStrackerMI.cxx:3828
 AliITStrackerMI.cxx:3829
 AliITStrackerMI.cxx:3830
 AliITStrackerMI.cxx:3831
 AliITStrackerMI.cxx:3832
 AliITStrackerMI.cxx:3833
 AliITStrackerMI.cxx:3834
 AliITStrackerMI.cxx:3835
 AliITStrackerMI.cxx:3836
 AliITStrackerMI.cxx:3837
 AliITStrackerMI.cxx:3838
 AliITStrackerMI.cxx:3839
 AliITStrackerMI.cxx:3840
 AliITStrackerMI.cxx:3841
 AliITStrackerMI.cxx:3842
 AliITStrackerMI.cxx:3843
 AliITStrackerMI.cxx:3844
 AliITStrackerMI.cxx:3845
 AliITStrackerMI.cxx:3846
 AliITStrackerMI.cxx:3847
 AliITStrackerMI.cxx:3848
 AliITStrackerMI.cxx:3849
 AliITStrackerMI.cxx:3850
 AliITStrackerMI.cxx:3851
 AliITStrackerMI.cxx:3852
 AliITStrackerMI.cxx:3853
 AliITStrackerMI.cxx:3854
 AliITStrackerMI.cxx:3855
 AliITStrackerMI.cxx:3856
 AliITStrackerMI.cxx:3857
 AliITStrackerMI.cxx:3858
 AliITStrackerMI.cxx:3859
 AliITStrackerMI.cxx:3860
 AliITStrackerMI.cxx:3861
 AliITStrackerMI.cxx:3862
 AliITStrackerMI.cxx:3863
 AliITStrackerMI.cxx:3864
 AliITStrackerMI.cxx:3865
 AliITStrackerMI.cxx:3866
 AliITStrackerMI.cxx:3867
 AliITStrackerMI.cxx:3868
 AliITStrackerMI.cxx:3869
 AliITStrackerMI.cxx:3870
 AliITStrackerMI.cxx:3871
 AliITStrackerMI.cxx:3872
 AliITStrackerMI.cxx:3873
 AliITStrackerMI.cxx:3874
 AliITStrackerMI.cxx:3875
 AliITStrackerMI.cxx:3876
 AliITStrackerMI.cxx:3877
 AliITStrackerMI.cxx:3878
 AliITStrackerMI.cxx:3879
 AliITStrackerMI.cxx:3880
 AliITStrackerMI.cxx:3881
 AliITStrackerMI.cxx:3882
 AliITStrackerMI.cxx:3883
 AliITStrackerMI.cxx:3884
 AliITStrackerMI.cxx:3885
 AliITStrackerMI.cxx:3886
 AliITStrackerMI.cxx:3887
 AliITStrackerMI.cxx:3888
 AliITStrackerMI.cxx:3889
 AliITStrackerMI.cxx:3890
 AliITStrackerMI.cxx:3891
 AliITStrackerMI.cxx:3892
 AliITStrackerMI.cxx:3893
 AliITStrackerMI.cxx:3894
 AliITStrackerMI.cxx:3895
 AliITStrackerMI.cxx:3896
 AliITStrackerMI.cxx:3897
 AliITStrackerMI.cxx:3898
 AliITStrackerMI.cxx:3899
 AliITStrackerMI.cxx:3900
 AliITStrackerMI.cxx:3901
 AliITStrackerMI.cxx:3902
 AliITStrackerMI.cxx:3903
 AliITStrackerMI.cxx:3904
 AliITStrackerMI.cxx:3905
 AliITStrackerMI.cxx:3906
 AliITStrackerMI.cxx:3907
 AliITStrackerMI.cxx:3908
 AliITStrackerMI.cxx:3909
 AliITStrackerMI.cxx:3910
 AliITStrackerMI.cxx:3911
 AliITStrackerMI.cxx:3912
 AliITStrackerMI.cxx:3913
 AliITStrackerMI.cxx:3914
 AliITStrackerMI.cxx:3915
 AliITStrackerMI.cxx:3916
 AliITStrackerMI.cxx:3917
 AliITStrackerMI.cxx:3918
 AliITStrackerMI.cxx:3919
 AliITStrackerMI.cxx:3920
 AliITStrackerMI.cxx:3921
 AliITStrackerMI.cxx:3922
 AliITStrackerMI.cxx:3923
 AliITStrackerMI.cxx:3924
 AliITStrackerMI.cxx:3925
 AliITStrackerMI.cxx:3926
 AliITStrackerMI.cxx:3927
 AliITStrackerMI.cxx:3928
 AliITStrackerMI.cxx:3929
 AliITStrackerMI.cxx:3930
 AliITStrackerMI.cxx:3931
 AliITStrackerMI.cxx:3932
 AliITStrackerMI.cxx:3933
 AliITStrackerMI.cxx:3934
 AliITStrackerMI.cxx:3935
 AliITStrackerMI.cxx:3936
 AliITStrackerMI.cxx:3937
 AliITStrackerMI.cxx:3938
 AliITStrackerMI.cxx:3939
 AliITStrackerMI.cxx:3940
 AliITStrackerMI.cxx:3941
 AliITStrackerMI.cxx:3942
 AliITStrackerMI.cxx:3943
 AliITStrackerMI.cxx:3944
 AliITStrackerMI.cxx:3945
 AliITStrackerMI.cxx:3946
 AliITStrackerMI.cxx:3947
 AliITStrackerMI.cxx:3948
 AliITStrackerMI.cxx:3949
 AliITStrackerMI.cxx:3950
 AliITStrackerMI.cxx:3951
 AliITStrackerMI.cxx:3952
 AliITStrackerMI.cxx:3953
 AliITStrackerMI.cxx:3954
 AliITStrackerMI.cxx:3955
 AliITStrackerMI.cxx:3956
 AliITStrackerMI.cxx:3957
 AliITStrackerMI.cxx:3958
 AliITStrackerMI.cxx:3959
 AliITStrackerMI.cxx:3960
 AliITStrackerMI.cxx:3961
 AliITStrackerMI.cxx:3962
 AliITStrackerMI.cxx:3963
 AliITStrackerMI.cxx:3964
 AliITStrackerMI.cxx:3965
 AliITStrackerMI.cxx:3966
 AliITStrackerMI.cxx:3967
 AliITStrackerMI.cxx:3968
 AliITStrackerMI.cxx:3969
 AliITStrackerMI.cxx:3970
 AliITStrackerMI.cxx:3971
 AliITStrackerMI.cxx:3972
 AliITStrackerMI.cxx:3973
 AliITStrackerMI.cxx:3974
 AliITStrackerMI.cxx:3975
 AliITStrackerMI.cxx:3976
 AliITStrackerMI.cxx:3977
 AliITStrackerMI.cxx:3978
 AliITStrackerMI.cxx:3979
 AliITStrackerMI.cxx:3980
 AliITStrackerMI.cxx:3981
 AliITStrackerMI.cxx:3982
 AliITStrackerMI.cxx:3983
 AliITStrackerMI.cxx:3984
 AliITStrackerMI.cxx:3985
 AliITStrackerMI.cxx:3986
 AliITStrackerMI.cxx:3987
 AliITStrackerMI.cxx:3988
 AliITStrackerMI.cxx:3989
 AliITStrackerMI.cxx:3990
 AliITStrackerMI.cxx:3991
 AliITStrackerMI.cxx:3992
 AliITStrackerMI.cxx:3993
 AliITStrackerMI.cxx:3994
 AliITStrackerMI.cxx:3995
 AliITStrackerMI.cxx:3996
 AliITStrackerMI.cxx:3997
 AliITStrackerMI.cxx:3998
 AliITStrackerMI.cxx:3999
 AliITStrackerMI.cxx:4000
 AliITStrackerMI.cxx:4001
 AliITStrackerMI.cxx:4002
 AliITStrackerMI.cxx:4003
 AliITStrackerMI.cxx:4004
 AliITStrackerMI.cxx:4005
 AliITStrackerMI.cxx:4006
 AliITStrackerMI.cxx:4007
 AliITStrackerMI.cxx:4008
 AliITStrackerMI.cxx:4009
 AliITStrackerMI.cxx:4010
 AliITStrackerMI.cxx:4011
 AliITStrackerMI.cxx:4012
 AliITStrackerMI.cxx:4013
 AliITStrackerMI.cxx:4014
 AliITStrackerMI.cxx:4015
 AliITStrackerMI.cxx:4016
 AliITStrackerMI.cxx:4017
 AliITStrackerMI.cxx:4018
 AliITStrackerMI.cxx:4019
 AliITStrackerMI.cxx:4020
 AliITStrackerMI.cxx:4021
 AliITStrackerMI.cxx:4022
 AliITStrackerMI.cxx:4023
 AliITStrackerMI.cxx:4024
 AliITStrackerMI.cxx:4025
 AliITStrackerMI.cxx:4026
 AliITStrackerMI.cxx:4027
 AliITStrackerMI.cxx:4028
 AliITStrackerMI.cxx:4029
 AliITStrackerMI.cxx:4030
 AliITStrackerMI.cxx:4031
 AliITStrackerMI.cxx:4032
 AliITStrackerMI.cxx:4033
 AliITStrackerMI.cxx:4034
 AliITStrackerMI.cxx:4035
 AliITStrackerMI.cxx:4036
 AliITStrackerMI.cxx:4037
 AliITStrackerMI.cxx:4038
 AliITStrackerMI.cxx:4039
 AliITStrackerMI.cxx:4040
 AliITStrackerMI.cxx:4041
 AliITStrackerMI.cxx:4042
 AliITStrackerMI.cxx:4043
 AliITStrackerMI.cxx:4044
 AliITStrackerMI.cxx:4045
 AliITStrackerMI.cxx:4046
 AliITStrackerMI.cxx:4047
 AliITStrackerMI.cxx:4048
 AliITStrackerMI.cxx:4049
 AliITStrackerMI.cxx:4050
 AliITStrackerMI.cxx:4051
 AliITStrackerMI.cxx:4052
 AliITStrackerMI.cxx:4053
 AliITStrackerMI.cxx:4054
 AliITStrackerMI.cxx:4055
 AliITStrackerMI.cxx:4056
 AliITStrackerMI.cxx:4057
 AliITStrackerMI.cxx:4058
 AliITStrackerMI.cxx:4059
 AliITStrackerMI.cxx:4060
 AliITStrackerMI.cxx:4061
 AliITStrackerMI.cxx:4062
 AliITStrackerMI.cxx:4063
 AliITStrackerMI.cxx:4064
 AliITStrackerMI.cxx:4065
 AliITStrackerMI.cxx:4066
 AliITStrackerMI.cxx:4067
 AliITStrackerMI.cxx:4068
 AliITStrackerMI.cxx:4069
 AliITStrackerMI.cxx:4070
 AliITStrackerMI.cxx:4071
 AliITStrackerMI.cxx:4072
 AliITStrackerMI.cxx:4073
 AliITStrackerMI.cxx:4074
 AliITStrackerMI.cxx:4075
 AliITStrackerMI.cxx:4076
 AliITStrackerMI.cxx:4077
 AliITStrackerMI.cxx:4078
 AliITStrackerMI.cxx:4079
 AliITStrackerMI.cxx:4080
 AliITStrackerMI.cxx:4081
 AliITStrackerMI.cxx:4082
 AliITStrackerMI.cxx:4083
 AliITStrackerMI.cxx:4084
 AliITStrackerMI.cxx:4085
 AliITStrackerMI.cxx:4086
 AliITStrackerMI.cxx:4087
 AliITStrackerMI.cxx:4088
 AliITStrackerMI.cxx:4089
 AliITStrackerMI.cxx:4090
 AliITStrackerMI.cxx:4091
 AliITStrackerMI.cxx:4092
 AliITStrackerMI.cxx:4093
 AliITStrackerMI.cxx:4094
 AliITStrackerMI.cxx:4095
 AliITStrackerMI.cxx:4096
 AliITStrackerMI.cxx:4097
 AliITStrackerMI.cxx:4098
 AliITStrackerMI.cxx:4099
 AliITStrackerMI.cxx:4100
 AliITStrackerMI.cxx:4101
 AliITStrackerMI.cxx:4102
 AliITStrackerMI.cxx:4103
 AliITStrackerMI.cxx:4104
 AliITStrackerMI.cxx:4105
 AliITStrackerMI.cxx:4106
 AliITStrackerMI.cxx:4107
 AliITStrackerMI.cxx:4108
 AliITStrackerMI.cxx:4109
 AliITStrackerMI.cxx:4110
 AliITStrackerMI.cxx:4111
 AliITStrackerMI.cxx:4112
 AliITStrackerMI.cxx:4113
 AliITStrackerMI.cxx:4114
 AliITStrackerMI.cxx:4115
 AliITStrackerMI.cxx:4116
 AliITStrackerMI.cxx:4117
 AliITStrackerMI.cxx:4118
 AliITStrackerMI.cxx:4119
 AliITStrackerMI.cxx:4120
 AliITStrackerMI.cxx:4121
 AliITStrackerMI.cxx:4122
 AliITStrackerMI.cxx:4123
 AliITStrackerMI.cxx:4124
 AliITStrackerMI.cxx:4125
 AliITStrackerMI.cxx:4126
 AliITStrackerMI.cxx:4127
 AliITStrackerMI.cxx:4128
 AliITStrackerMI.cxx:4129
 AliITStrackerMI.cxx:4130
 AliITStrackerMI.cxx:4131
 AliITStrackerMI.cxx:4132
 AliITStrackerMI.cxx:4133
 AliITStrackerMI.cxx:4134
 AliITStrackerMI.cxx:4135
 AliITStrackerMI.cxx:4136
 AliITStrackerMI.cxx:4137
 AliITStrackerMI.cxx:4138
 AliITStrackerMI.cxx:4139
 AliITStrackerMI.cxx:4140
 AliITStrackerMI.cxx:4141
 AliITStrackerMI.cxx:4142
 AliITStrackerMI.cxx:4143
 AliITStrackerMI.cxx:4144
 AliITStrackerMI.cxx:4145
 AliITStrackerMI.cxx:4146
 AliITStrackerMI.cxx:4147
 AliITStrackerMI.cxx:4148
 AliITStrackerMI.cxx:4149
 AliITStrackerMI.cxx:4150
 AliITStrackerMI.cxx:4151
 AliITStrackerMI.cxx:4152
 AliITStrackerMI.cxx:4153
 AliITStrackerMI.cxx:4154
 AliITStrackerMI.cxx:4155
 AliITStrackerMI.cxx:4156
 AliITStrackerMI.cxx:4157
 AliITStrackerMI.cxx:4158
 AliITStrackerMI.cxx:4159
 AliITStrackerMI.cxx:4160
 AliITStrackerMI.cxx:4161
 AliITStrackerMI.cxx:4162
 AliITStrackerMI.cxx:4163
 AliITStrackerMI.cxx:4164
 AliITStrackerMI.cxx:4165
 AliITStrackerMI.cxx:4166
 AliITStrackerMI.cxx:4167
 AliITStrackerMI.cxx:4168
 AliITStrackerMI.cxx:4169
 AliITStrackerMI.cxx:4170
 AliITStrackerMI.cxx:4171
 AliITStrackerMI.cxx:4172
 AliITStrackerMI.cxx:4173
 AliITStrackerMI.cxx:4174
 AliITStrackerMI.cxx:4175
 AliITStrackerMI.cxx:4176
 AliITStrackerMI.cxx:4177
 AliITStrackerMI.cxx:4178
 AliITStrackerMI.cxx:4179
 AliITStrackerMI.cxx:4180
 AliITStrackerMI.cxx:4181
 AliITStrackerMI.cxx:4182
 AliITStrackerMI.cxx:4183
 AliITStrackerMI.cxx:4184
 AliITStrackerMI.cxx:4185
 AliITStrackerMI.cxx:4186
 AliITStrackerMI.cxx:4187
 AliITStrackerMI.cxx:4188
 AliITStrackerMI.cxx:4189
 AliITStrackerMI.cxx:4190
 AliITStrackerMI.cxx:4191
 AliITStrackerMI.cxx:4192
 AliITStrackerMI.cxx:4193
 AliITStrackerMI.cxx:4194
 AliITStrackerMI.cxx:4195
 AliITStrackerMI.cxx:4196
 AliITStrackerMI.cxx:4197
 AliITStrackerMI.cxx:4198
 AliITStrackerMI.cxx:4199
 AliITStrackerMI.cxx:4200
 AliITStrackerMI.cxx:4201
 AliITStrackerMI.cxx:4202
 AliITStrackerMI.cxx:4203
 AliITStrackerMI.cxx:4204
 AliITStrackerMI.cxx:4205
 AliITStrackerMI.cxx:4206
 AliITStrackerMI.cxx:4207
 AliITStrackerMI.cxx:4208
 AliITStrackerMI.cxx:4209
 AliITStrackerMI.cxx:4210
 AliITStrackerMI.cxx:4211
 AliITStrackerMI.cxx:4212
 AliITStrackerMI.cxx:4213
 AliITStrackerMI.cxx:4214
 AliITStrackerMI.cxx:4215
 AliITStrackerMI.cxx:4216
 AliITStrackerMI.cxx:4217
 AliITStrackerMI.cxx:4218
 AliITStrackerMI.cxx:4219
 AliITStrackerMI.cxx:4220
 AliITStrackerMI.cxx:4221
 AliITStrackerMI.cxx:4222
 AliITStrackerMI.cxx:4223
 AliITStrackerMI.cxx:4224
 AliITStrackerMI.cxx:4225
 AliITStrackerMI.cxx:4226
 AliITStrackerMI.cxx:4227
 AliITStrackerMI.cxx:4228
 AliITStrackerMI.cxx:4229
 AliITStrackerMI.cxx:4230
 AliITStrackerMI.cxx:4231
 AliITStrackerMI.cxx:4232
 AliITStrackerMI.cxx:4233
 AliITStrackerMI.cxx:4234
 AliITStrackerMI.cxx:4235
 AliITStrackerMI.cxx:4236
 AliITStrackerMI.cxx:4237
 AliITStrackerMI.cxx:4238
 AliITStrackerMI.cxx:4239
 AliITStrackerMI.cxx:4240
 AliITStrackerMI.cxx:4241
 AliITStrackerMI.cxx:4242
 AliITStrackerMI.cxx:4243
 AliITStrackerMI.cxx:4244
 AliITStrackerMI.cxx:4245
 AliITStrackerMI.cxx:4246
 AliITStrackerMI.cxx:4247
 AliITStrackerMI.cxx:4248
 AliITStrackerMI.cxx:4249
 AliITStrackerMI.cxx:4250
 AliITStrackerMI.cxx:4251
 AliITStrackerMI.cxx:4252
 AliITStrackerMI.cxx:4253
 AliITStrackerMI.cxx:4254
 AliITStrackerMI.cxx:4255
 AliITStrackerMI.cxx:4256
 AliITStrackerMI.cxx:4257
 AliITStrackerMI.cxx:4258
 AliITStrackerMI.cxx:4259
 AliITStrackerMI.cxx:4260
 AliITStrackerMI.cxx:4261
 AliITStrackerMI.cxx:4262
 AliITStrackerMI.cxx:4263
 AliITStrackerMI.cxx:4264
 AliITStrackerMI.cxx:4265
 AliITStrackerMI.cxx:4266
 AliITStrackerMI.cxx:4267
 AliITStrackerMI.cxx:4268
 AliITStrackerMI.cxx:4269
 AliITStrackerMI.cxx:4270
 AliITStrackerMI.cxx:4271
 AliITStrackerMI.cxx:4272
 AliITStrackerMI.cxx:4273
 AliITStrackerMI.cxx:4274
 AliITStrackerMI.cxx:4275
 AliITStrackerMI.cxx:4276
 AliITStrackerMI.cxx:4277
 AliITStrackerMI.cxx:4278
 AliITStrackerMI.cxx:4279
 AliITStrackerMI.cxx:4280
 AliITStrackerMI.cxx:4281
 AliITStrackerMI.cxx:4282
 AliITStrackerMI.cxx:4283
 AliITStrackerMI.cxx:4284
 AliITStrackerMI.cxx:4285
 AliITStrackerMI.cxx:4286
 AliITStrackerMI.cxx:4287
 AliITStrackerMI.cxx:4288
 AliITStrackerMI.cxx:4289
 AliITStrackerMI.cxx:4290
 AliITStrackerMI.cxx:4291
 AliITStrackerMI.cxx:4292
 AliITStrackerMI.cxx:4293
 AliITStrackerMI.cxx:4294
 AliITStrackerMI.cxx:4295
 AliITStrackerMI.cxx:4296
 AliITStrackerMI.cxx:4297
 AliITStrackerMI.cxx:4298
 AliITStrackerMI.cxx:4299
 AliITStrackerMI.cxx:4300
 AliITStrackerMI.cxx:4301
 AliITStrackerMI.cxx:4302
 AliITStrackerMI.cxx:4303
 AliITStrackerMI.cxx:4304
 AliITStrackerMI.cxx:4305
 AliITStrackerMI.cxx:4306
 AliITStrackerMI.cxx:4307
 AliITStrackerMI.cxx:4308
 AliITStrackerMI.cxx:4309
 AliITStrackerMI.cxx:4310
 AliITStrackerMI.cxx:4311
 AliITStrackerMI.cxx:4312
 AliITStrackerMI.cxx:4313
 AliITStrackerMI.cxx:4314
 AliITStrackerMI.cxx:4315
 AliITStrackerMI.cxx:4316
 AliITStrackerMI.cxx:4317
 AliITStrackerMI.cxx:4318
 AliITStrackerMI.cxx:4319
 AliITStrackerMI.cxx:4320
 AliITStrackerMI.cxx:4321
 AliITStrackerMI.cxx:4322
 AliITStrackerMI.cxx:4323
 AliITStrackerMI.cxx:4324
 AliITStrackerMI.cxx:4325
 AliITStrackerMI.cxx:4326
 AliITStrackerMI.cxx:4327
 AliITStrackerMI.cxx:4328
 AliITStrackerMI.cxx:4329
 AliITStrackerMI.cxx:4330
 AliITStrackerMI.cxx:4331
 AliITStrackerMI.cxx:4332
 AliITStrackerMI.cxx:4333
 AliITStrackerMI.cxx:4334
 AliITStrackerMI.cxx:4335
 AliITStrackerMI.cxx:4336
 AliITStrackerMI.cxx:4337
 AliITStrackerMI.cxx:4338
 AliITStrackerMI.cxx:4339
 AliITStrackerMI.cxx:4340
 AliITStrackerMI.cxx:4341
 AliITStrackerMI.cxx:4342
 AliITStrackerMI.cxx:4343
 AliITStrackerMI.cxx:4344
 AliITStrackerMI.cxx:4345
 AliITStrackerMI.cxx:4346
 AliITStrackerMI.cxx:4347
 AliITStrackerMI.cxx:4348
 AliITStrackerMI.cxx:4349
 AliITStrackerMI.cxx:4350
 AliITStrackerMI.cxx:4351
 AliITStrackerMI.cxx:4352
 AliITStrackerMI.cxx:4353
 AliITStrackerMI.cxx:4354
 AliITStrackerMI.cxx:4355
 AliITStrackerMI.cxx:4356
 AliITStrackerMI.cxx:4357
 AliITStrackerMI.cxx:4358
 AliITStrackerMI.cxx:4359
 AliITStrackerMI.cxx:4360
 AliITStrackerMI.cxx:4361
 AliITStrackerMI.cxx:4362
 AliITStrackerMI.cxx:4363
 AliITStrackerMI.cxx:4364
 AliITStrackerMI.cxx:4365
 AliITStrackerMI.cxx:4366
 AliITStrackerMI.cxx:4367
 AliITStrackerMI.cxx:4368
 AliITStrackerMI.cxx:4369
 AliITStrackerMI.cxx:4370
 AliITStrackerMI.cxx:4371
 AliITStrackerMI.cxx:4372
 AliITStrackerMI.cxx:4373
 AliITStrackerMI.cxx:4374
 AliITStrackerMI.cxx:4375
 AliITStrackerMI.cxx:4376
 AliITStrackerMI.cxx:4377
 AliITStrackerMI.cxx:4378
 AliITStrackerMI.cxx:4379
 AliITStrackerMI.cxx:4380
 AliITStrackerMI.cxx:4381
 AliITStrackerMI.cxx:4382
 AliITStrackerMI.cxx:4383
 AliITStrackerMI.cxx:4384
 AliITStrackerMI.cxx:4385
 AliITStrackerMI.cxx:4386
 AliITStrackerMI.cxx:4387
 AliITStrackerMI.cxx:4388
 AliITStrackerMI.cxx:4389
 AliITStrackerMI.cxx:4390
 AliITStrackerMI.cxx:4391
 AliITStrackerMI.cxx:4392
 AliITStrackerMI.cxx:4393
 AliITStrackerMI.cxx:4394
 AliITStrackerMI.cxx:4395
 AliITStrackerMI.cxx:4396
 AliITStrackerMI.cxx:4397
 AliITStrackerMI.cxx:4398
 AliITStrackerMI.cxx:4399
 AliITStrackerMI.cxx:4400
 AliITStrackerMI.cxx:4401
 AliITStrackerMI.cxx:4402
 AliITStrackerMI.cxx:4403
 AliITStrackerMI.cxx:4404
 AliITStrackerMI.cxx:4405
 AliITStrackerMI.cxx:4406
 AliITStrackerMI.cxx:4407
 AliITStrackerMI.cxx:4408
 AliITStrackerMI.cxx:4409
 AliITStrackerMI.cxx:4410
 AliITStrackerMI.cxx:4411
 AliITStrackerMI.cxx:4412
 AliITStrackerMI.cxx:4413
 AliITStrackerMI.cxx:4414
 AliITStrackerMI.cxx:4415
 AliITStrackerMI.cxx:4416
 AliITStrackerMI.cxx:4417
 AliITStrackerMI.cxx:4418
 AliITStrackerMI.cxx:4419
 AliITStrackerMI.cxx:4420
 AliITStrackerMI.cxx:4421
 AliITStrackerMI.cxx:4422
 AliITStrackerMI.cxx:4423
 AliITStrackerMI.cxx:4424
 AliITStrackerMI.cxx:4425
 AliITStrackerMI.cxx:4426
 AliITStrackerMI.cxx:4427
 AliITStrackerMI.cxx:4428
 AliITStrackerMI.cxx:4429
 AliITStrackerMI.cxx:4430
 AliITStrackerMI.cxx:4431
 AliITStrackerMI.cxx:4432
 AliITStrackerMI.cxx:4433
 AliITStrackerMI.cxx:4434
 AliITStrackerMI.cxx:4435
 AliITStrackerMI.cxx:4436
 AliITStrackerMI.cxx:4437
 AliITStrackerMI.cxx:4438
 AliITStrackerMI.cxx:4439
 AliITStrackerMI.cxx:4440
 AliITStrackerMI.cxx:4441
 AliITStrackerMI.cxx:4442
 AliITStrackerMI.cxx:4443
 AliITStrackerMI.cxx:4444
 AliITStrackerMI.cxx:4445
 AliITStrackerMI.cxx:4446
 AliITStrackerMI.cxx:4447
 AliITStrackerMI.cxx:4448
 AliITStrackerMI.cxx:4449
 AliITStrackerMI.cxx:4450
 AliITStrackerMI.cxx:4451
 AliITStrackerMI.cxx:4452
 AliITStrackerMI.cxx:4453
 AliITStrackerMI.cxx:4454
 AliITStrackerMI.cxx:4455
 AliITStrackerMI.cxx:4456
 AliITStrackerMI.cxx:4457
 AliITStrackerMI.cxx:4458
 AliITStrackerMI.cxx:4459
 AliITStrackerMI.cxx:4460
 AliITStrackerMI.cxx:4461
 AliITStrackerMI.cxx:4462
 AliITStrackerMI.cxx:4463
 AliITStrackerMI.cxx:4464
 AliITStrackerMI.cxx:4465
 AliITStrackerMI.cxx:4466
 AliITStrackerMI.cxx:4467
 AliITStrackerMI.cxx:4468
 AliITStrackerMI.cxx:4469
 AliITStrackerMI.cxx:4470
 AliITStrackerMI.cxx:4471
 AliITStrackerMI.cxx:4472
 AliITStrackerMI.cxx:4473
 AliITStrackerMI.cxx:4474
 AliITStrackerMI.cxx:4475
 AliITStrackerMI.cxx:4476
 AliITStrackerMI.cxx:4477
 AliITStrackerMI.cxx:4478
 AliITStrackerMI.cxx:4479
 AliITStrackerMI.cxx:4480
 AliITStrackerMI.cxx:4481
 AliITStrackerMI.cxx:4482
 AliITStrackerMI.cxx:4483
 AliITStrackerMI.cxx:4484
 AliITStrackerMI.cxx:4485
 AliITStrackerMI.cxx:4486
 AliITStrackerMI.cxx:4487
 AliITStrackerMI.cxx:4488
 AliITStrackerMI.cxx:4489
 AliITStrackerMI.cxx:4490
 AliITStrackerMI.cxx:4491
 AliITStrackerMI.cxx:4492
 AliITStrackerMI.cxx:4493
 AliITStrackerMI.cxx:4494
 AliITStrackerMI.cxx:4495
 AliITStrackerMI.cxx:4496
 AliITStrackerMI.cxx:4497
 AliITStrackerMI.cxx:4498
 AliITStrackerMI.cxx:4499
 AliITStrackerMI.cxx:4500
 AliITStrackerMI.cxx:4501
 AliITStrackerMI.cxx:4502
 AliITStrackerMI.cxx:4503
 AliITStrackerMI.cxx:4504
 AliITStrackerMI.cxx:4505
 AliITStrackerMI.cxx:4506
 AliITStrackerMI.cxx:4507
 AliITStrackerMI.cxx:4508
 AliITStrackerMI.cxx:4509
 AliITStrackerMI.cxx:4510
 AliITStrackerMI.cxx:4511
 AliITStrackerMI.cxx:4512
 AliITStrackerMI.cxx:4513
 AliITStrackerMI.cxx:4514
 AliITStrackerMI.cxx:4515
 AliITStrackerMI.cxx:4516
 AliITStrackerMI.cxx:4517
 AliITStrackerMI.cxx:4518
 AliITStrackerMI.cxx:4519
 AliITStrackerMI.cxx:4520
 AliITStrackerMI.cxx:4521
 AliITStrackerMI.cxx:4522
 AliITStrackerMI.cxx:4523
 AliITStrackerMI.cxx:4524
 AliITStrackerMI.cxx:4525
 AliITStrackerMI.cxx:4526
 AliITStrackerMI.cxx:4527
 AliITStrackerMI.cxx:4528
 AliITStrackerMI.cxx:4529
 AliITStrackerMI.cxx:4530
 AliITStrackerMI.cxx:4531
 AliITStrackerMI.cxx:4532
 AliITStrackerMI.cxx:4533
 AliITStrackerMI.cxx:4534
 AliITStrackerMI.cxx:4535
 AliITStrackerMI.cxx:4536
 AliITStrackerMI.cxx:4537
 AliITStrackerMI.cxx:4538
 AliITStrackerMI.cxx:4539
 AliITStrackerMI.cxx:4540
 AliITStrackerMI.cxx:4541
 AliITStrackerMI.cxx:4542
 AliITStrackerMI.cxx:4543
 AliITStrackerMI.cxx:4544
 AliITStrackerMI.cxx:4545
 AliITStrackerMI.cxx:4546
 AliITStrackerMI.cxx:4547
 AliITStrackerMI.cxx:4548
 AliITStrackerMI.cxx:4549
 AliITStrackerMI.cxx:4550
 AliITStrackerMI.cxx:4551
 AliITStrackerMI.cxx:4552
 AliITStrackerMI.cxx:4553
 AliITStrackerMI.cxx:4554
 AliITStrackerMI.cxx:4555
 AliITStrackerMI.cxx:4556
 AliITStrackerMI.cxx:4557
 AliITStrackerMI.cxx:4558
 AliITStrackerMI.cxx:4559
 AliITStrackerMI.cxx:4560
 AliITStrackerMI.cxx:4561
 AliITStrackerMI.cxx:4562
 AliITStrackerMI.cxx:4563
 AliITStrackerMI.cxx:4564
 AliITStrackerMI.cxx:4565
 AliITStrackerMI.cxx:4566
 AliITStrackerMI.cxx:4567
 AliITStrackerMI.cxx:4568
 AliITStrackerMI.cxx:4569
 AliITStrackerMI.cxx:4570
 AliITStrackerMI.cxx:4571
 AliITStrackerMI.cxx:4572
 AliITStrackerMI.cxx:4573
 AliITStrackerMI.cxx:4574
 AliITStrackerMI.cxx:4575
 AliITStrackerMI.cxx:4576
 AliITStrackerMI.cxx:4577
 AliITStrackerMI.cxx:4578
 AliITStrackerMI.cxx:4579
 AliITStrackerMI.cxx:4580
 AliITStrackerMI.cxx:4581
 AliITStrackerMI.cxx:4582
 AliITStrackerMI.cxx:4583
 AliITStrackerMI.cxx:4584
 AliITStrackerMI.cxx:4585
 AliITStrackerMI.cxx:4586
 AliITStrackerMI.cxx:4587
 AliITStrackerMI.cxx:4588
 AliITStrackerMI.cxx:4589
 AliITStrackerMI.cxx:4590
 AliITStrackerMI.cxx:4591
 AliITStrackerMI.cxx:4592
 AliITStrackerMI.cxx:4593
 AliITStrackerMI.cxx:4594
 AliITStrackerMI.cxx:4595
 AliITStrackerMI.cxx:4596
 AliITStrackerMI.cxx:4597
 AliITStrackerMI.cxx:4598
 AliITStrackerMI.cxx:4599
 AliITStrackerMI.cxx:4600
 AliITStrackerMI.cxx:4601
 AliITStrackerMI.cxx:4602
 AliITStrackerMI.cxx:4603
 AliITStrackerMI.cxx:4604
 AliITStrackerMI.cxx:4605
 AliITStrackerMI.cxx:4606
 AliITStrackerMI.cxx:4607
 AliITStrackerMI.cxx:4608
 AliITStrackerMI.cxx:4609
 AliITStrackerMI.cxx:4610
 AliITStrackerMI.cxx:4611
 AliITStrackerMI.cxx:4612
 AliITStrackerMI.cxx:4613
 AliITStrackerMI.cxx:4614
 AliITStrackerMI.cxx:4615
 AliITStrackerMI.cxx:4616
 AliITStrackerMI.cxx:4617
 AliITStrackerMI.cxx:4618
 AliITStrackerMI.cxx:4619
 AliITStrackerMI.cxx:4620
 AliITStrackerMI.cxx:4621
 AliITStrackerMI.cxx:4622
 AliITStrackerMI.cxx:4623
 AliITStrackerMI.cxx:4624
 AliITStrackerMI.cxx:4625
 AliITStrackerMI.cxx:4626
 AliITStrackerMI.cxx:4627
 AliITStrackerMI.cxx:4628
 AliITStrackerMI.cxx:4629
 AliITStrackerMI.cxx:4630
 AliITStrackerMI.cxx:4631
 AliITStrackerMI.cxx:4632
 AliITStrackerMI.cxx:4633
 AliITStrackerMI.cxx:4634
 AliITStrackerMI.cxx:4635
 AliITStrackerMI.cxx:4636
 AliITStrackerMI.cxx:4637
 AliITStrackerMI.cxx:4638
 AliITStrackerMI.cxx:4639
 AliITStrackerMI.cxx:4640
 AliITStrackerMI.cxx:4641
 AliITStrackerMI.cxx:4642
 AliITStrackerMI.cxx:4643
 AliITStrackerMI.cxx:4644
 AliITStrackerMI.cxx:4645
 AliITStrackerMI.cxx:4646
 AliITStrackerMI.cxx:4647
 AliITStrackerMI.cxx:4648
 AliITStrackerMI.cxx:4649
 AliITStrackerMI.cxx:4650
 AliITStrackerMI.cxx:4651
 AliITStrackerMI.cxx:4652
 AliITStrackerMI.cxx:4653
 AliITStrackerMI.cxx:4654
 AliITStrackerMI.cxx:4655
 AliITStrackerMI.cxx:4656
 AliITStrackerMI.cxx:4657
 AliITStrackerMI.cxx:4658
 AliITStrackerMI.cxx:4659
 AliITStrackerMI.cxx:4660
 AliITStrackerMI.cxx:4661
 AliITStrackerMI.cxx:4662
 AliITStrackerMI.cxx:4663
 AliITStrackerMI.cxx:4664
 AliITStrackerMI.cxx:4665
 AliITStrackerMI.cxx:4666
 AliITStrackerMI.cxx:4667
 AliITStrackerMI.cxx:4668
 AliITStrackerMI.cxx:4669
 AliITStrackerMI.cxx:4670
 AliITStrackerMI.cxx:4671
 AliITStrackerMI.cxx:4672
 AliITStrackerMI.cxx:4673
 AliITStrackerMI.cxx:4674
 AliITStrackerMI.cxx:4675
 AliITStrackerMI.cxx:4676
 AliITStrackerMI.cxx:4677
 AliITStrackerMI.cxx:4678
 AliITStrackerMI.cxx:4679
 AliITStrackerMI.cxx:4680
 AliITStrackerMI.cxx:4681
 AliITStrackerMI.cxx:4682
 AliITStrackerMI.cxx:4683
 AliITStrackerMI.cxx:4684
 AliITStrackerMI.cxx:4685
 AliITStrackerMI.cxx:4686
 AliITStrackerMI.cxx:4687
 AliITStrackerMI.cxx:4688
 AliITStrackerMI.cxx:4689
 AliITStrackerMI.cxx:4690
 AliITStrackerMI.cxx:4691
 AliITStrackerMI.cxx:4692
 AliITStrackerMI.cxx:4693
 AliITStrackerMI.cxx:4694
 AliITStrackerMI.cxx:4695
 AliITStrackerMI.cxx:4696
 AliITStrackerMI.cxx:4697
 AliITStrackerMI.cxx:4698
 AliITStrackerMI.cxx:4699
 AliITStrackerMI.cxx:4700
 AliITStrackerMI.cxx:4701
 AliITStrackerMI.cxx:4702
 AliITStrackerMI.cxx:4703
 AliITStrackerMI.cxx:4704
 AliITStrackerMI.cxx:4705
 AliITStrackerMI.cxx:4706
 AliITStrackerMI.cxx:4707
 AliITStrackerMI.cxx:4708
 AliITStrackerMI.cxx:4709
 AliITStrackerMI.cxx:4710
 AliITStrackerMI.cxx:4711
 AliITStrackerMI.cxx:4712
 AliITStrackerMI.cxx:4713
 AliITStrackerMI.cxx:4714
 AliITStrackerMI.cxx:4715
 AliITStrackerMI.cxx:4716
 AliITStrackerMI.cxx:4717
 AliITStrackerMI.cxx:4718
 AliITStrackerMI.cxx:4719
 AliITStrackerMI.cxx:4720
 AliITStrackerMI.cxx:4721
 AliITStrackerMI.cxx:4722
 AliITStrackerMI.cxx:4723
 AliITStrackerMI.cxx:4724
 AliITStrackerMI.cxx:4725
 AliITStrackerMI.cxx:4726
 AliITStrackerMI.cxx:4727
 AliITStrackerMI.cxx:4728
 AliITStrackerMI.cxx:4729
 AliITStrackerMI.cxx:4730
 AliITStrackerMI.cxx:4731
 AliITStrackerMI.cxx:4732
 AliITStrackerMI.cxx:4733
 AliITStrackerMI.cxx:4734
 AliITStrackerMI.cxx:4735
 AliITStrackerMI.cxx:4736
 AliITStrackerMI.cxx:4737
 AliITStrackerMI.cxx:4738
 AliITStrackerMI.cxx:4739
 AliITStrackerMI.cxx:4740
 AliITStrackerMI.cxx:4741
 AliITStrackerMI.cxx:4742
 AliITStrackerMI.cxx:4743
 AliITStrackerMI.cxx:4744
 AliITStrackerMI.cxx:4745
 AliITStrackerMI.cxx:4746
 AliITStrackerMI.cxx:4747
 AliITStrackerMI.cxx:4748
 AliITStrackerMI.cxx:4749
 AliITStrackerMI.cxx:4750
 AliITStrackerMI.cxx:4751
 AliITStrackerMI.cxx:4752
 AliITStrackerMI.cxx:4753
 AliITStrackerMI.cxx:4754
 AliITStrackerMI.cxx:4755
 AliITStrackerMI.cxx:4756
 AliITStrackerMI.cxx:4757
 AliITStrackerMI.cxx:4758
 AliITStrackerMI.cxx:4759
 AliITStrackerMI.cxx:4760
 AliITStrackerMI.cxx:4761
 AliITStrackerMI.cxx:4762
 AliITStrackerMI.cxx:4763
 AliITStrackerMI.cxx:4764
 AliITStrackerMI.cxx:4765
 AliITStrackerMI.cxx:4766
 AliITStrackerMI.cxx:4767
 AliITStrackerMI.cxx:4768
 AliITStrackerMI.cxx:4769
 AliITStrackerMI.cxx:4770
 AliITStrackerMI.cxx:4771
 AliITStrackerMI.cxx:4772
 AliITStrackerMI.cxx:4773
 AliITStrackerMI.cxx:4774
 AliITStrackerMI.cxx:4775
 AliITStrackerMI.cxx:4776
 AliITStrackerMI.cxx:4777
 AliITStrackerMI.cxx:4778
 AliITStrackerMI.cxx:4779
 AliITStrackerMI.cxx:4780
 AliITStrackerMI.cxx:4781
 AliITStrackerMI.cxx:4782
 AliITStrackerMI.cxx:4783
 AliITStrackerMI.cxx:4784
 AliITStrackerMI.cxx:4785
 AliITStrackerMI.cxx:4786
 AliITStrackerMI.cxx:4787
 AliITStrackerMI.cxx:4788
 AliITStrackerMI.cxx:4789
 AliITStrackerMI.cxx:4790
 AliITStrackerMI.cxx:4791
 AliITStrackerMI.cxx:4792
 AliITStrackerMI.cxx:4793
 AliITStrackerMI.cxx:4794
 AliITStrackerMI.cxx:4795
 AliITStrackerMI.cxx:4796
 AliITStrackerMI.cxx:4797
 AliITStrackerMI.cxx:4798
 AliITStrackerMI.cxx:4799
 AliITStrackerMI.cxx:4800
 AliITStrackerMI.cxx:4801
 AliITStrackerMI.cxx:4802
 AliITStrackerMI.cxx:4803
 AliITStrackerMI.cxx:4804
 AliITStrackerMI.cxx:4805
 AliITStrackerMI.cxx:4806
 AliITStrackerMI.cxx:4807
 AliITStrackerMI.cxx:4808
 AliITStrackerMI.cxx:4809
 AliITStrackerMI.cxx:4810
 AliITStrackerMI.cxx:4811
 AliITStrackerMI.cxx:4812
 AliITStrackerMI.cxx:4813
 AliITStrackerMI.cxx:4814
 AliITStrackerMI.cxx:4815
 AliITStrackerMI.cxx:4816
 AliITStrackerMI.cxx:4817
 AliITStrackerMI.cxx:4818
 AliITStrackerMI.cxx:4819
 AliITStrackerMI.cxx:4820
 AliITStrackerMI.cxx:4821
 AliITStrackerMI.cxx:4822
 AliITStrackerMI.cxx:4823
 AliITStrackerMI.cxx:4824
 AliITStrackerMI.cxx:4825
 AliITStrackerMI.cxx:4826
 AliITStrackerMI.cxx:4827
 AliITStrackerMI.cxx:4828
 AliITStrackerMI.cxx:4829
 AliITStrackerMI.cxx:4830
 AliITStrackerMI.cxx:4831
 AliITStrackerMI.cxx:4832
 AliITStrackerMI.cxx:4833
 AliITStrackerMI.cxx:4834
 AliITStrackerMI.cxx:4835
 AliITStrackerMI.cxx:4836
 AliITStrackerMI.cxx:4837
 AliITStrackerMI.cxx:4838
 AliITStrackerMI.cxx:4839
 AliITStrackerMI.cxx:4840
 AliITStrackerMI.cxx:4841
 AliITStrackerMI.cxx:4842
 AliITStrackerMI.cxx:4843
 AliITStrackerMI.cxx:4844
 AliITStrackerMI.cxx:4845
 AliITStrackerMI.cxx:4846
 AliITStrackerMI.cxx:4847
 AliITStrackerMI.cxx:4848
 AliITStrackerMI.cxx:4849
 AliITStrackerMI.cxx:4850
 AliITStrackerMI.cxx:4851
 AliITStrackerMI.cxx:4852
 AliITStrackerMI.cxx:4853
 AliITStrackerMI.cxx:4854
 AliITStrackerMI.cxx:4855
 AliITStrackerMI.cxx:4856
 AliITStrackerMI.cxx:4857
 AliITStrackerMI.cxx:4858
 AliITStrackerMI.cxx:4859
 AliITStrackerMI.cxx:4860
 AliITStrackerMI.cxx:4861
 AliITStrackerMI.cxx:4862
 AliITStrackerMI.cxx:4863
 AliITStrackerMI.cxx:4864
 AliITStrackerMI.cxx:4865
 AliITStrackerMI.cxx:4866
 AliITStrackerMI.cxx:4867
 AliITStrackerMI.cxx:4868
 AliITStrackerMI.cxx:4869
 AliITStrackerMI.cxx:4870
 AliITStrackerMI.cxx:4871
 AliITStrackerMI.cxx:4872
 AliITStrackerMI.cxx:4873
 AliITStrackerMI.cxx:4874
 AliITStrackerMI.cxx:4875
 AliITStrackerMI.cxx:4876
 AliITStrackerMI.cxx:4877
 AliITStrackerMI.cxx:4878
 AliITStrackerMI.cxx:4879
 AliITStrackerMI.cxx:4880
 AliITStrackerMI.cxx:4881
 AliITStrackerMI.cxx:4882
 AliITStrackerMI.cxx:4883
 AliITStrackerMI.cxx:4884
 AliITStrackerMI.cxx:4885
 AliITStrackerMI.cxx:4886
 AliITStrackerMI.cxx:4887
 AliITStrackerMI.cxx:4888
 AliITStrackerMI.cxx:4889
 AliITStrackerMI.cxx:4890
 AliITStrackerMI.cxx:4891
 AliITStrackerMI.cxx:4892
 AliITStrackerMI.cxx:4893
 AliITStrackerMI.cxx:4894
 AliITStrackerMI.cxx:4895
 AliITStrackerMI.cxx:4896
 AliITStrackerMI.cxx:4897
 AliITStrackerMI.cxx:4898
 AliITStrackerMI.cxx:4899
 AliITStrackerMI.cxx:4900
 AliITStrackerMI.cxx:4901
 AliITStrackerMI.cxx:4902
 AliITStrackerMI.cxx:4903
 AliITStrackerMI.cxx:4904
 AliITStrackerMI.cxx:4905
 AliITStrackerMI.cxx:4906
 AliITStrackerMI.cxx:4907
 AliITStrackerMI.cxx:4908
 AliITStrackerMI.cxx:4909
 AliITStrackerMI.cxx:4910
 AliITStrackerMI.cxx:4911
 AliITStrackerMI.cxx:4912
 AliITStrackerMI.cxx:4913
 AliITStrackerMI.cxx:4914
 AliITStrackerMI.cxx:4915
 AliITStrackerMI.cxx:4916
 AliITStrackerMI.cxx:4917
 AliITStrackerMI.cxx:4918
 AliITStrackerMI.cxx:4919
 AliITStrackerMI.cxx:4920
 AliITStrackerMI.cxx:4921
 AliITStrackerMI.cxx:4922
 AliITStrackerMI.cxx:4923
 AliITStrackerMI.cxx:4924
 AliITStrackerMI.cxx:4925
 AliITStrackerMI.cxx:4926
 AliITStrackerMI.cxx:4927
 AliITStrackerMI.cxx:4928
 AliITStrackerMI.cxx:4929
 AliITStrackerMI.cxx:4930
 AliITStrackerMI.cxx:4931
 AliITStrackerMI.cxx:4932
 AliITStrackerMI.cxx:4933
 AliITStrackerMI.cxx:4934
 AliITStrackerMI.cxx:4935
 AliITStrackerMI.cxx:4936
 AliITStrackerMI.cxx:4937
 AliITStrackerMI.cxx:4938
 AliITStrackerMI.cxx:4939
 AliITStrackerMI.cxx:4940
 AliITStrackerMI.cxx:4941
 AliITStrackerMI.cxx:4942
 AliITStrackerMI.cxx:4943
 AliITStrackerMI.cxx:4944
 AliITStrackerMI.cxx:4945
 AliITStrackerMI.cxx:4946
 AliITStrackerMI.cxx:4947
 AliITStrackerMI.cxx:4948
 AliITStrackerMI.cxx:4949
 AliITStrackerMI.cxx:4950
 AliITStrackerMI.cxx:4951
 AliITStrackerMI.cxx:4952
 AliITStrackerMI.cxx:4953
 AliITStrackerMI.cxx:4954
 AliITStrackerMI.cxx:4955
 AliITStrackerMI.cxx:4956
 AliITStrackerMI.cxx:4957
 AliITStrackerMI.cxx:4958
 AliITStrackerMI.cxx:4959
 AliITStrackerMI.cxx:4960
 AliITStrackerMI.cxx:4961
 AliITStrackerMI.cxx:4962
 AliITStrackerMI.cxx:4963
 AliITStrackerMI.cxx:4964
 AliITStrackerMI.cxx:4965
 AliITStrackerMI.cxx:4966
 AliITStrackerMI.cxx:4967
 AliITStrackerMI.cxx:4968
 AliITStrackerMI.cxx:4969
 AliITStrackerMI.cxx:4970
 AliITStrackerMI.cxx:4971
 AliITStrackerMI.cxx:4972
 AliITStrackerMI.cxx:4973
 AliITStrackerMI.cxx:4974
 AliITStrackerMI.cxx:4975
 AliITStrackerMI.cxx:4976
 AliITStrackerMI.cxx:4977
 AliITStrackerMI.cxx:4978
 AliITStrackerMI.cxx:4979
 AliITStrackerMI.cxx:4980
 AliITStrackerMI.cxx:4981
 AliITStrackerMI.cxx:4982
 AliITStrackerMI.cxx:4983
 AliITStrackerMI.cxx:4984
 AliITStrackerMI.cxx:4985
 AliITStrackerMI.cxx:4986
 AliITStrackerMI.cxx:4987
 AliITStrackerMI.cxx:4988
 AliITStrackerMI.cxx:4989
 AliITStrackerMI.cxx:4990
 AliITStrackerMI.cxx:4991
 AliITStrackerMI.cxx:4992
 AliITStrackerMI.cxx:4993
 AliITStrackerMI.cxx:4994
 AliITStrackerMI.cxx:4995
 AliITStrackerMI.cxx:4996
 AliITStrackerMI.cxx:4997
 AliITStrackerMI.cxx:4998
 AliITStrackerMI.cxx:4999
 AliITStrackerMI.cxx:5000
 AliITStrackerMI.cxx:5001
 AliITStrackerMI.cxx:5002
 AliITStrackerMI.cxx:5003
 AliITStrackerMI.cxx:5004
 AliITStrackerMI.cxx:5005
 AliITStrackerMI.cxx:5006
 AliITStrackerMI.cxx:5007
 AliITStrackerMI.cxx:5008
 AliITStrackerMI.cxx:5009
 AliITStrackerMI.cxx:5010
 AliITStrackerMI.cxx:5011
 AliITStrackerMI.cxx:5012
 AliITStrackerMI.cxx:5013
 AliITStrackerMI.cxx:5014
 AliITStrackerMI.cxx:5015
 AliITStrackerMI.cxx:5016
 AliITStrackerMI.cxx:5017
 AliITStrackerMI.cxx:5018
 AliITStrackerMI.cxx:5019
 AliITStrackerMI.cxx:5020
 AliITStrackerMI.cxx:5021
 AliITStrackerMI.cxx:5022
 AliITStrackerMI.cxx:5023
 AliITStrackerMI.cxx:5024
 AliITStrackerMI.cxx:5025
 AliITStrackerMI.cxx:5026
 AliITStrackerMI.cxx:5027
 AliITStrackerMI.cxx:5028
 AliITStrackerMI.cxx:5029
 AliITStrackerMI.cxx:5030
 AliITStrackerMI.cxx:5031
 AliITStrackerMI.cxx:5032
 AliITStrackerMI.cxx:5033
 AliITStrackerMI.cxx:5034
 AliITStrackerMI.cxx:5035
 AliITStrackerMI.cxx:5036
 AliITStrackerMI.cxx:5037
 AliITStrackerMI.cxx:5038
 AliITStrackerMI.cxx:5039
 AliITStrackerMI.cxx:5040
 AliITStrackerMI.cxx:5041
 AliITStrackerMI.cxx:5042
 AliITStrackerMI.cxx:5043
 AliITStrackerMI.cxx:5044
 AliITStrackerMI.cxx:5045
 AliITStrackerMI.cxx:5046
 AliITStrackerMI.cxx:5047
 AliITStrackerMI.cxx:5048
 AliITStrackerMI.cxx:5049
 AliITStrackerMI.cxx:5050
 AliITStrackerMI.cxx:5051
 AliITStrackerMI.cxx:5052
 AliITStrackerMI.cxx:5053
 AliITStrackerMI.cxx:5054
 AliITStrackerMI.cxx:5055
 AliITStrackerMI.cxx:5056
 AliITStrackerMI.cxx:5057
 AliITStrackerMI.cxx:5058
 AliITStrackerMI.cxx:5059
 AliITStrackerMI.cxx:5060
 AliITStrackerMI.cxx:5061
 AliITStrackerMI.cxx:5062
 AliITStrackerMI.cxx:5063
 AliITStrackerMI.cxx:5064
 AliITStrackerMI.cxx:5065
 AliITStrackerMI.cxx:5066
 AliITStrackerMI.cxx:5067
 AliITStrackerMI.cxx:5068
 AliITStrackerMI.cxx:5069
 AliITStrackerMI.cxx:5070
 AliITStrackerMI.cxx:5071
 AliITStrackerMI.cxx:5072
 AliITStrackerMI.cxx:5073
 AliITStrackerMI.cxx:5074
 AliITStrackerMI.cxx:5075
 AliITStrackerMI.cxx:5076
 AliITStrackerMI.cxx:5077
 AliITStrackerMI.cxx:5078
 AliITStrackerMI.cxx:5079
 AliITStrackerMI.cxx:5080
 AliITStrackerMI.cxx:5081
 AliITStrackerMI.cxx:5082
 AliITStrackerMI.cxx:5083
 AliITStrackerMI.cxx:5084
 AliITStrackerMI.cxx:5085
 AliITStrackerMI.cxx:5086
 AliITStrackerMI.cxx:5087
 AliITStrackerMI.cxx:5088
 AliITStrackerMI.cxx:5089
 AliITStrackerMI.cxx:5090
 AliITStrackerMI.cxx:5091
 AliITStrackerMI.cxx:5092
 AliITStrackerMI.cxx:5093
 AliITStrackerMI.cxx:5094
 AliITStrackerMI.cxx:5095
 AliITStrackerMI.cxx:5096
 AliITStrackerMI.cxx:5097
 AliITStrackerMI.cxx:5098
 AliITStrackerMI.cxx:5099
 AliITStrackerMI.cxx:5100
 AliITStrackerMI.cxx:5101
 AliITStrackerMI.cxx:5102
 AliITStrackerMI.cxx:5103
 AliITStrackerMI.cxx:5104
 AliITStrackerMI.cxx:5105
 AliITStrackerMI.cxx:5106
 AliITStrackerMI.cxx:5107
 AliITStrackerMI.cxx:5108
 AliITStrackerMI.cxx:5109
 AliITStrackerMI.cxx:5110
 AliITStrackerMI.cxx:5111
 AliITStrackerMI.cxx:5112
 AliITStrackerMI.cxx:5113
 AliITStrackerMI.cxx:5114
 AliITStrackerMI.cxx:5115
 AliITStrackerMI.cxx:5116
 AliITStrackerMI.cxx:5117
 AliITStrackerMI.cxx:5118
 AliITStrackerMI.cxx:5119
 AliITStrackerMI.cxx:5120
 AliITStrackerMI.cxx:5121
 AliITStrackerMI.cxx:5122
 AliITStrackerMI.cxx:5123
 AliITStrackerMI.cxx:5124
 AliITStrackerMI.cxx:5125
 AliITStrackerMI.cxx:5126
 AliITStrackerMI.cxx:5127
 AliITStrackerMI.cxx:5128
 AliITStrackerMI.cxx:5129
 AliITStrackerMI.cxx:5130
 AliITStrackerMI.cxx:5131
 AliITStrackerMI.cxx:5132
 AliITStrackerMI.cxx:5133
 AliITStrackerMI.cxx:5134
 AliITStrackerMI.cxx:5135
 AliITStrackerMI.cxx:5136
 AliITStrackerMI.cxx:5137
 AliITStrackerMI.cxx:5138
 AliITStrackerMI.cxx:5139
 AliITStrackerMI.cxx:5140
 AliITStrackerMI.cxx:5141
 AliITStrackerMI.cxx:5142
 AliITStrackerMI.cxx:5143
 AliITStrackerMI.cxx:5144
 AliITStrackerMI.cxx:5145
 AliITStrackerMI.cxx:5146
 AliITStrackerMI.cxx:5147
 AliITStrackerMI.cxx:5148
 AliITStrackerMI.cxx:5149
 AliITStrackerMI.cxx:5150
 AliITStrackerMI.cxx:5151
 AliITStrackerMI.cxx:5152
 AliITStrackerMI.cxx:5153
 AliITStrackerMI.cxx:5154
 AliITStrackerMI.cxx:5155
 AliITStrackerMI.cxx:5156
 AliITStrackerMI.cxx:5157
 AliITStrackerMI.cxx:5158
 AliITStrackerMI.cxx:5159
 AliITStrackerMI.cxx:5160
 AliITStrackerMI.cxx:5161
 AliITStrackerMI.cxx:5162
 AliITStrackerMI.cxx:5163
 AliITStrackerMI.cxx:5164
 AliITStrackerMI.cxx:5165
 AliITStrackerMI.cxx:5166
 AliITStrackerMI.cxx:5167
 AliITStrackerMI.cxx:5168
 AliITStrackerMI.cxx:5169
 AliITStrackerMI.cxx:5170
 AliITStrackerMI.cxx:5171
 AliITStrackerMI.cxx:5172
 AliITStrackerMI.cxx:5173
 AliITStrackerMI.cxx:5174
 AliITStrackerMI.cxx:5175
 AliITStrackerMI.cxx:5176
 AliITStrackerMI.cxx:5177
 AliITStrackerMI.cxx:5178
 AliITStrackerMI.cxx:5179
 AliITStrackerMI.cxx:5180
 AliITStrackerMI.cxx:5181
 AliITStrackerMI.cxx:5182
 AliITStrackerMI.cxx:5183
 AliITStrackerMI.cxx:5184
 AliITStrackerMI.cxx:5185
 AliITStrackerMI.cxx:5186
 AliITStrackerMI.cxx:5187
 AliITStrackerMI.cxx:5188
 AliITStrackerMI.cxx:5189
 AliITStrackerMI.cxx:5190
 AliITStrackerMI.cxx:5191
 AliITStrackerMI.cxx:5192
 AliITStrackerMI.cxx:5193
 AliITStrackerMI.cxx:5194
 AliITStrackerMI.cxx:5195
 AliITStrackerMI.cxx:5196
 AliITStrackerMI.cxx:5197
 AliITStrackerMI.cxx:5198
 AliITStrackerMI.cxx:5199
 AliITStrackerMI.cxx:5200
 AliITStrackerMI.cxx:5201
 AliITStrackerMI.cxx:5202
 AliITStrackerMI.cxx:5203
 AliITStrackerMI.cxx:5204
 AliITStrackerMI.cxx:5205
 AliITStrackerMI.cxx:5206
 AliITStrackerMI.cxx:5207
 AliITStrackerMI.cxx:5208
 AliITStrackerMI.cxx:5209
 AliITStrackerMI.cxx:5210
 AliITStrackerMI.cxx:5211
 AliITStrackerMI.cxx:5212
 AliITStrackerMI.cxx:5213
 AliITStrackerMI.cxx:5214
 AliITStrackerMI.cxx:5215
 AliITStrackerMI.cxx:5216
 AliITStrackerMI.cxx:5217
 AliITStrackerMI.cxx:5218
 AliITStrackerMI.cxx:5219
 AliITStrackerMI.cxx:5220
 AliITStrackerMI.cxx:5221
 AliITStrackerMI.cxx:5222
 AliITStrackerMI.cxx:5223
 AliITStrackerMI.cxx:5224
 AliITStrackerMI.cxx:5225
 AliITStrackerMI.cxx:5226
 AliITStrackerMI.cxx:5227
 AliITStrackerMI.cxx:5228
 AliITStrackerMI.cxx:5229
 AliITStrackerMI.cxx:5230
 AliITStrackerMI.cxx:5231
 AliITStrackerMI.cxx:5232
 AliITStrackerMI.cxx:5233
 AliITStrackerMI.cxx:5234
 AliITStrackerMI.cxx:5235
 AliITStrackerMI.cxx:5236
 AliITStrackerMI.cxx:5237
 AliITStrackerMI.cxx:5238
 AliITStrackerMI.cxx:5239
 AliITStrackerMI.cxx:5240
 AliITStrackerMI.cxx:5241
 AliITStrackerMI.cxx:5242
 AliITStrackerMI.cxx:5243
 AliITStrackerMI.cxx:5244
 AliITStrackerMI.cxx:5245
 AliITStrackerMI.cxx:5246
 AliITStrackerMI.cxx:5247
 AliITStrackerMI.cxx:5248
 AliITStrackerMI.cxx:5249
 AliITStrackerMI.cxx:5250
 AliITStrackerMI.cxx:5251
 AliITStrackerMI.cxx:5252
 AliITStrackerMI.cxx:5253
 AliITStrackerMI.cxx:5254
 AliITStrackerMI.cxx:5255
 AliITStrackerMI.cxx:5256
 AliITStrackerMI.cxx:5257
 AliITStrackerMI.cxx:5258
 AliITStrackerMI.cxx:5259
 AliITStrackerMI.cxx:5260
 AliITStrackerMI.cxx:5261
 AliITStrackerMI.cxx:5262
 AliITStrackerMI.cxx:5263
 AliITStrackerMI.cxx:5264
 AliITStrackerMI.cxx:5265
 AliITStrackerMI.cxx:5266
 AliITStrackerMI.cxx:5267
 AliITStrackerMI.cxx:5268
 AliITStrackerMI.cxx:5269
 AliITStrackerMI.cxx:5270
 AliITStrackerMI.cxx:5271
 AliITStrackerMI.cxx:5272
 AliITStrackerMI.cxx:5273
 AliITStrackerMI.cxx:5274
 AliITStrackerMI.cxx:5275
 AliITStrackerMI.cxx:5276
 AliITStrackerMI.cxx:5277
 AliITStrackerMI.cxx:5278
 AliITStrackerMI.cxx:5279
 AliITStrackerMI.cxx:5280
 AliITStrackerMI.cxx:5281
 AliITStrackerMI.cxx:5282
 AliITStrackerMI.cxx:5283
 AliITStrackerMI.cxx:5284
 AliITStrackerMI.cxx:5285
 AliITStrackerMI.cxx:5286
 AliITStrackerMI.cxx:5287
 AliITStrackerMI.cxx:5288
 AliITStrackerMI.cxx:5289
 AliITStrackerMI.cxx:5290
 AliITStrackerMI.cxx:5291
 AliITStrackerMI.cxx:5292
 AliITStrackerMI.cxx:5293
 AliITStrackerMI.cxx:5294
 AliITStrackerMI.cxx:5295
 AliITStrackerMI.cxx:5296
 AliITStrackerMI.cxx:5297
 AliITStrackerMI.cxx:5298
 AliITStrackerMI.cxx:5299
 AliITStrackerMI.cxx:5300
 AliITStrackerMI.cxx:5301
 AliITStrackerMI.cxx:5302
 AliITStrackerMI.cxx:5303
 AliITStrackerMI.cxx:5304
 AliITStrackerMI.cxx:5305
 AliITStrackerMI.cxx:5306
 AliITStrackerMI.cxx:5307
 AliITStrackerMI.cxx:5308
 AliITStrackerMI.cxx:5309
 AliITStrackerMI.cxx:5310
 AliITStrackerMI.cxx:5311
 AliITStrackerMI.cxx:5312
 AliITStrackerMI.cxx:5313
 AliITStrackerMI.cxx:5314
 AliITStrackerMI.cxx:5315
 AliITStrackerMI.cxx:5316
 AliITStrackerMI.cxx:5317
 AliITStrackerMI.cxx:5318
 AliITStrackerMI.cxx:5319
 AliITStrackerMI.cxx:5320
 AliITStrackerMI.cxx:5321
 AliITStrackerMI.cxx:5322
 AliITStrackerMI.cxx:5323
 AliITStrackerMI.cxx:5324
 AliITStrackerMI.cxx:5325
 AliITStrackerMI.cxx:5326
 AliITStrackerMI.cxx:5327
 AliITStrackerMI.cxx:5328
 AliITStrackerMI.cxx:5329
 AliITStrackerMI.cxx:5330
 AliITStrackerMI.cxx:5331
 AliITStrackerMI.cxx:5332
 AliITStrackerMI.cxx:5333
 AliITStrackerMI.cxx:5334
 AliITStrackerMI.cxx:5335
 AliITStrackerMI.cxx:5336
 AliITStrackerMI.cxx:5337
 AliITStrackerMI.cxx:5338
 AliITStrackerMI.cxx:5339
 AliITStrackerMI.cxx:5340
 AliITStrackerMI.cxx:5341
 AliITStrackerMI.cxx:5342
 AliITStrackerMI.cxx:5343
 AliITStrackerMI.cxx:5344
 AliITStrackerMI.cxx:5345
 AliITStrackerMI.cxx:5346
 AliITStrackerMI.cxx:5347
 AliITStrackerMI.cxx:5348
 AliITStrackerMI.cxx:5349
 AliITStrackerMI.cxx:5350
 AliITStrackerMI.cxx:5351
 AliITStrackerMI.cxx:5352
 AliITStrackerMI.cxx:5353
 AliITStrackerMI.cxx:5354
 AliITStrackerMI.cxx:5355
 AliITStrackerMI.cxx:5356
 AliITStrackerMI.cxx:5357
 AliITStrackerMI.cxx:5358
 AliITStrackerMI.cxx:5359
 AliITStrackerMI.cxx:5360
 AliITStrackerMI.cxx:5361
 AliITStrackerMI.cxx:5362
 AliITStrackerMI.cxx:5363
 AliITStrackerMI.cxx:5364
 AliITStrackerMI.cxx:5365
 AliITStrackerMI.cxx:5366
 AliITStrackerMI.cxx:5367
 AliITStrackerMI.cxx:5368
 AliITStrackerMI.cxx:5369
 AliITStrackerMI.cxx:5370
 AliITStrackerMI.cxx:5371
 AliITStrackerMI.cxx:5372
 AliITStrackerMI.cxx:5373
 AliITStrackerMI.cxx:5374
 AliITStrackerMI.cxx:5375
 AliITStrackerMI.cxx:5376
 AliITStrackerMI.cxx:5377
 AliITStrackerMI.cxx:5378
 AliITStrackerMI.cxx:5379
 AliITStrackerMI.cxx:5380
 AliITStrackerMI.cxx:5381
 AliITStrackerMI.cxx:5382
 AliITStrackerMI.cxx:5383
 AliITStrackerMI.cxx:5384
 AliITStrackerMI.cxx:5385
 AliITStrackerMI.cxx:5386
 AliITStrackerMI.cxx:5387
 AliITStrackerMI.cxx:5388
 AliITStrackerMI.cxx:5389
 AliITStrackerMI.cxx:5390
 AliITStrackerMI.cxx:5391
 AliITStrackerMI.cxx:5392
 AliITStrackerMI.cxx:5393
 AliITStrackerMI.cxx:5394
 AliITStrackerMI.cxx:5395