ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2003, 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$ */

///////////////////////////////////////////////////////////
//  Stand alone ITS tracker class                        //
//  Origin:  Elisabetta Crescio - crescio@to.infn.it     //
//  Updated: Francesco Prino    - prino@to.infn.it       //
///////////////////////////////////////////////////////////

#include <stdlib.h>

#include <TArrayI.h>
#include <TBranch.h>
#include <TObjArray.h>
#include <TTree.h>

#include "AliESDEvent.h"
#include "AliESDVertex.h"
#include "AliESDtrack.h"
#include "AliITSVertexer.h"
#include "AliITSclusterTable.h"
#include "AliITSRecPoint.h"
#include "AliITSgeomTGeo.h"
#include "AliITStrackSA.h"
#include "AliITStrackerSA.h"
#include "AliITSReconstructor.h"
#include "AliLog.h"
#include "AliRun.h"

ClassImp(AliITStrackerSA)

//____________________________________________________________________________
AliITStrackerSA::AliITStrackerSA():AliITStrackerMI(),
fPhiEstimate(0),
fITSStandAlone(0),
fLambdac(0),
fPhic(0),
fCoef1(0),
fCoef2(0),
fCoef3(0),
fNloop(0),
fPhiWin(0),
fLambdaWin(0),
fListOfTracks(0),
fListOfSATracks(0),
fITSclusters(0),
fInwardFlag(0),
fOuterStartLayer(0),
fInnerStartLayer(5),
fMinNPoints(0),
fMinQ(0.),
fCluCoord(0){
  // Default constructor
  Init();
 
}
//____________________________________________________________________________
AliITStrackerSA::AliITStrackerSA(const Char_t *geom):AliITStrackerMI(0),
fPhiEstimate(0),
fITSStandAlone(0),
fLambdac(0),
fPhic(0),
fCoef1(0),
fCoef2(0),
fCoef3(0),
fNloop(0),
fPhiWin(0),
fLambdaWin(0),
fListOfTracks(0),
fListOfSATracks(0),
fITSclusters(0),
fInwardFlag(0),
fOuterStartLayer(0),
fInnerStartLayer(5),
fMinNPoints(0),
fMinQ(0.),
fCluCoord(0) 
{
  // Standard constructor (Vertex is known and passed to this obj.)
  if (geom) {
    AliWarning("\"geom\" is actually a dummy argument !");
  }

  Init();
 
}

//____________________________________________________________________________
AliITStrackerSA::~AliITStrackerSA(){
  // destructor
 
  if(fPhiWin)delete []fPhiWin;
  if(fLambdaWin)delete []fLambdaWin;
  fListOfTracks->Delete();
  delete fListOfTracks;
  fListOfSATracks->Delete();
  delete fListOfSATracks;
  if(fCluCoord){
    for(Int_t i=0;i<AliITSgeomTGeo::GetNLayers();i++){
      if(fCluCoord[i]){
	fCluCoord[i]->Delete();
	delete fCluCoord[i];
      }
    }
    delete [] fCluCoord;
  }
}

//____________________________________________________________________________
Int_t AliITStrackerSA::Clusters2Tracks(AliESDEvent *event){
// This method is used to find and fit the tracks. By default the corresponding
// method in the parent class is invoked. In this way a combined tracking
// TPC+ITS is performed. If the flag fITSStandAlone is true, the tracking
// is done in the ITS only. In the standard reconstruction chain this option
// can be set via AliReconstruction::SetOption("ITS","onlyITS")
  Int_t rc=0;

  if(!fITSStandAlone){
    rc=AliITStrackerMI::Clusters2Tracks(event);
  }
  else {
    AliDebug(1,"Stand Alone flag set: doing tracking in ITS alone\n");
  }
  if(!rc){ 
    rc=FindTracks(event,kFALSE);
    Int_t nSPDcontr=0;
    const AliESDVertex *spdv = event->GetPrimaryVertexSPD();
    if(spdv) nSPDcontr = spdv->GetNContributors();
    if(AliITSReconstructor::GetRecoParam()->GetSAUseAllClusters()==kTRUE && 
       nSPDcontr<=AliITSReconstructor::GetRecoParam()->GetMaxSPDcontrForSAToUseAllClusters()) {
      rc=FindTracks(event,kTRUE);
    }
  }
  return rc;
}

//____________________________________________________________________________
void AliITStrackerSA::Init(){
  //  Reset all data members
    fPhiEstimate=0;
    for(Int_t i=0;i<2;i++){fPoint1[i]=0;fPoint2[i]=0;fPoint3[i]=0;}
    fLambdac=0;
    fPhic=0;
    fCoef1=0;
    fCoef2=0;
    fCoef3=0;
    fPointc[0]=0;
    fPointc[1]=0;
    Int_t nLoops=AliITSReconstructor::GetRecoParam()->GetNLoopsSA();
    if(nLoops==32){
      SetFixedWindowSizes();
    }else{
      Double_t phimin=AliITSReconstructor::GetRecoParam()->GetMinPhiSA();
      Double_t phimax=AliITSReconstructor::GetRecoParam()->GetMaxPhiSA();
      Double_t lambmin=AliITSReconstructor::GetRecoParam()->GetMinLambdaSA();
      Double_t lambmax=AliITSReconstructor::GetRecoParam()->GetMaxLambdaSA();
      SetCalculatedWindowSizes(nLoops,phimin,phimax,lambmin,lambmax);
    }
    fMinQ=AliITSReconstructor::GetRecoParam()->GetSAMinClusterCharge();
    fITSclusters = 0;
    SetOuterStartLayer(1);
    SetSAFlag(kFALSE);
    fListOfTracks=new TClonesArray("AliITStrackMI",100);
    fListOfSATracks=new TClonesArray("AliITStrackSA",100);
    fCluCoord = 0;
    fMinNPoints = 3;
 }
//_______________________________________________________________________
void AliITStrackerSA::ResetForFinding(){
  //  Reset data members used in all loops during track finding
    fPhiEstimate=0;
    for(Int_t i=0;i<2;i++){fPoint1[i]=0;fPoint2[i]=0;fPoint3[i]=0;}
    fLambdac=0;
    fPhic=0;
    fCoef1=0;
    fCoef2=0;
    fCoef3=0;
    fPointc[0]=0;
    fPointc[1]=0;
    fListOfTracks->Clear();
    fListOfSATracks->Clear();
}

 

//______________________________________________________________________
Int_t AliITStrackerSA::FindTracks(AliESDEvent* event, Bool_t useAllClusters){

// Track finder using the ESD object

  AliDebug(2,Form(" field is %f",event->GetMagneticField()));
  AliDebug(2,Form("SKIPPING %d %d %d %d %d %d",ForceSkippingOfLayer(0),ForceSkippingOfLayer(1),ForceSkippingOfLayer(2),ForceSkippingOfLayer(3),ForceSkippingOfLayer(4),ForceSkippingOfLayer(5)));

  if(!fITSclusters){
    Fatal("FindTracks","ITS cluster tree is not accessed!!!\n Please use method SetClusterTree to pass the pointer to the tree\n");
    return -1;
  }
  //Reads event and mark clusters of traks already found, with flag kITSin
  Int_t nentr=event->GetNumberOfTracks();
  if(!useAllClusters) {
    while (nentr--) {
      AliESDtrack *track=event->GetTrack(nentr);
      if ((track->GetStatus()&AliESDtrack::kITSin) == AliESDtrack::kITSin){
	Int_t idx[12];
	Int_t ncl = track->GetITSclusters(idx);
	for(Int_t k=0;k<ncl;k++){
	  AliITSRecPoint* cll = (AliITSRecPoint*)GetCluster(idx[k]);
	  cll->SetBit(kSAflag);
	}
      }
    }
  }else{
    while (nentr--) {
      AliESDtrack *track=event->GetTrack(nentr);
      if ((track->GetStatus()&AliESDtrack::kITSin) == AliESDtrack::kITSin){
	Int_t idx[12];
	Int_t ncl = track->GetITSclusters(idx);
	for(Int_t k=0;k<ncl;k++){
	  AliITSRecPoint* cll = (AliITSRecPoint*)GetCluster(idx[k]);
	  cll->ResetBit(kSAflag);
	}
      }
    }
  }
  //Get primary vertex
  Double_t primaryVertex[3];
  event->GetVertex()->GetXYZ(primaryVertex);
  //Creates TClonesArray with clusters for each layer. The clusters already used
  //by AliITStrackerMI are not considered
  Int_t nclusters[AliITSgeomTGeo::kNLayers]={0,0,0,0,0,0};
  Int_t dmar[AliITSgeomTGeo::kNLayers]={0,0,0,0,0,0};
  if (fCluCoord == 0) {
    fCluCoord = new TClonesArray*[AliITSgeomTGeo::kNLayers];
    for(Int_t i=0;i<AliITSgeomTGeo::GetNLayers();i++) {
      fCluCoord[i]=0;
    }
  }
  for(Int_t i=0;i<AliITSgeomTGeo::GetNLayers();i++){
    AliITSlayer &layer=fgLayers[i];
    if (!ForceSkippingOfLayer(i)) {
      for(Int_t cli=0;cli<layer.GetNumberOfClusters();cli++){
	AliITSRecPoint* cls = (AliITSRecPoint*)layer.GetCluster(cli);
	if(cls->TestBit(kSAflag)==kTRUE) continue; //clusters used by TPC prol.
	if(cls->GetQ()==0) continue; //fake clusters dead zones
	if(i>1 && cls->GetQ()<=fMinQ) continue; // cut on SDD and SSD cluster charge
	nclusters[i]++;
      }
    }
    dmar[i]=0;
    if(!fCluCoord[i]){
      fCluCoord[i] = new TClonesArray("AliITSclusterTable",nclusters[i]);
    }else{
      fCluCoord[i]->Delete();
      fCluCoord[i]->Expand(nclusters[i]);
    }
  }

  for(Int_t ilay=0;ilay<AliITSgeomTGeo::GetNLayers();ilay++){
    TClonesArray &clucoo = *fCluCoord[ilay];
    AliITSlayer &layer=fgLayers[ilay];
    if (!ForceSkippingOfLayer(ilay)) {
      for(Int_t cli=0;cli<layer.GetNumberOfClusters();cli++){
	AliITSRecPoint* cls = (AliITSRecPoint*)layer.GetCluster(cli);
	if(cls->TestBit(kSAflag)==kTRUE) continue;
	if(cls->GetQ()==0) continue;
	if(ilay>1 && cls->GetQ()<=fMinQ) continue; 
	Double_t phi=0;Double_t lambda=0;
	Double_t x=0;Double_t y=0;Double_t z=0;
	Double_t sx=0;Double_t sy=0;Double_t sz=0;
	GetCoorAngles(cls,phi,lambda,x,y,z,primaryVertex);
	GetCoorErrors(cls,sx,sy,sz);
	new (clucoo[dmar[ilay]]) AliITSclusterTable(x,y,z,sx,sy,sz,phi,lambda,cli);
	dmar[ilay]++;
      }
    }
    fCluCoord[ilay]->Sort();
  }
   
  // track counter
  Int_t ntrack=0;

  static Int_t nClusLay[AliITSgeomTGeo::kNLayers];//counter for clusters on each layer
  Int_t startLayForSeed=0;
  Int_t lastLayForSeed=fOuterStartLayer;
  Int_t nSeedSteps=lastLayForSeed-startLayForSeed;
  Int_t seedStep=1;
  if(fInwardFlag){
    startLayForSeed=AliITSgeomTGeo::GetNLayers()-1;
    lastLayForSeed=fInnerStartLayer;
    nSeedSteps=startLayForSeed-lastLayForSeed;
    seedStep=-1;
  }

  // loop on minimum number of points
  for(Int_t iMinNPoints=AliITSgeomTGeo::GetNLayers(); iMinNPoints>=fMinNPoints; iMinNPoints--) {

    // loop on starting layer for track finding 
    for(Int_t iSeedLay=0; iSeedLay<=nSeedSteps; iSeedLay++) {
      Int_t theLay=startLayForSeed+iSeedLay*seedStep;
      if(ForceSkippingOfLayer(theLay)) continue;
      Int_t minNPoints=iMinNPoints-theLay;
      if(fInwardFlag) minNPoints=iMinNPoints-(AliITSgeomTGeo::GetNLayers()-1-theLay);
      for(Int_t i=theLay+1;i<AliITSgeomTGeo::GetNLayers();i++)
	if(ForceSkippingOfLayer(i)) 
	  minNPoints--;
      if(minNPoints<fMinNPoints) continue;

      // loop on phi and lambda window size
      for(Int_t nloop=0;nloop<fNloop;nloop++){
	Int_t nclTheLay=fCluCoord[theLay]->GetEntries();
	while(nclTheLay--){ 
	  ResetForFinding();
	  Bool_t useRP=SetFirstPoint(theLay,nclTheLay,primaryVertex);
	  if(!useRP) continue;	    
	  AliITStrackSA trs;
	    
	  Int_t pflag=0;	    
	  Int_t kk;
	  for(kk=0;kk<AliITSgeomTGeo::GetNLayers();kk++) nClusLay[kk] = 0;
	    
	  kk=0;
	  nClusLay[kk] = SearchClusters(theLay,fPhiWin[nloop],fLambdaWin[nloop],
					&trs,primaryVertex[2],pflag);
	  Int_t nextLay=theLay+seedStep;
	  Bool_t goon=kTRUE;
	  if(nextLay<0 || nextLay == 6) goon = kFALSE;
	  while(goon){
	    kk++;
	    nClusLay[kk] = SearchClusters(nextLay,fPhiWin[nloop],fLambdaWin[nloop],
					    &trs,primaryVertex[2],pflag);
	    if(nClusLay[kk]!=0){
	      pflag=1;
	      if(kk==1) {
		fPoint3[0]=fPointc[0];
		fPoint3[1]=fPointc[1];
	      } else {
		UpdatePoints();
	      }
	    }
	    nextLay+=seedStep;
	    if(nextLay<0 || nextLay==6) goon=kFALSE;
	  }

	    
	  Int_t layOK=0;
	  if(!fInwardFlag){
	    for(Int_t nnp=0;nnp<AliITSgeomTGeo::GetNLayers()-theLay;nnp++){
	      if(nClusLay[nnp]!=0) layOK+=1;
	    }
	  }else{
	    for(Int_t nnp=theLay; nnp>=0; nnp--){
	      if(nClusLay[nnp]!=0) layOK+=1;
	    }
	  }
	  if(layOK>=minNPoints){ 
	    AliDebug(2,Form("---NPOINTS: %d; MAP: %d %d %d %d %d %d\n",layOK,nClusLay[0],nClusLay[1],nClusLay[2],nClusLay[3],nClusLay[4],nClusLay[5]));
	    AliITStrackV2* tr2 = 0;
	    tr2 = FitTrack(&trs,primaryVertex);
	    if(!tr2){ 
	      continue;
	    }
	    AliDebug(2,Form("---NPOINTS fit: %d\n",tr2->GetNumberOfClusters()));
	      
	    StoreTrack(tr2,event,useAllClusters);
	    ntrack++;
	      
	  }   
	  
	}//end loop on clusters of theLay
      } //end loop on window sizes
    } //end loop on theLay
  }//end loop on min points

  // search for 1-point tracks in SPD, only for cosmics
  // (A.Dainese 21.03.08)
  if(AliITSReconstructor::GetRecoParam()->GetSAOnePointTracks() && 
     TMath::Abs(event->GetMagneticField())<0.01) {
    Int_t outerLayer=1; // only SPD
    for(Int_t innLay=0; innLay<=TMath::Min(1,fOuterStartLayer); innLay++) {
      //   counter for clusters on each layer  

      for(Int_t nloop=0;nloop<fNloop;nloop++){
	Int_t nclInnLay=fCluCoord[innLay]->GetEntries();
	while(nclInnLay--){ //loop starting from layer innLay
	  ResetForFinding();
	  Bool_t useRP=SetFirstPoint(innLay,nclInnLay,primaryVertex);
	  if(!useRP) continue;
	  AliITStrackSA trs;
	    
	  Int_t pflag=0;	    
	  Int_t kk;
	  for(kk=0;kk<AliITSgeomTGeo::GetNLayers();kk++) nClusLay[kk] = 0;
	  
	  kk=0;
	  nClusLay[kk] = SearchClusters(innLay,fPhiWin[nloop],fLambdaWin[nloop],
				  &trs,primaryVertex[2],pflag);
	  for(Int_t nextLay=innLay+1; nextLay<=outerLayer; nextLay++) {
	    kk++;
	    nClusLay[kk] = SearchClusters(nextLay,fPhiWin[nloop],fLambdaWin[nloop],
				    &trs,primaryVertex[2],pflag);
	    if(nClusLay[kk]!=0){
	      pflag=1;
	      if(kk==1) {
		fPoint3[0]=fPointc[0];
		fPoint3[1]=fPointc[1];
	      } else {
		UpdatePoints();
	      }
	    }
	  }
	  
	  Int_t layOK=0;
	  for(Int_t nnp=0;nnp<AliITSgeomTGeo::GetNLayers()-innLay;nnp++){
	    if(nClusLay[nnp]!=0) layOK+=1;
	  }
	  if(layOK==1) {
	    AliDebug(2,Form("----NPOINTS: %d; MAP: %d %d %d %d %d %d\n",layOK,nClusLay[0],nClusLay[1],nClusLay[2],nClusLay[3],nClusLay[4],nClusLay[5]));
	    AliITStrackV2* tr2 = 0;
	    Bool_t onePoint = kTRUE;
	    tr2 = FitTrack(&trs,primaryVertex,onePoint);
	    if(!tr2){
	      continue;
	    }
	    AliDebug(2,Form("----NPOINTS fit: %d\n",tr2->GetNumberOfClusters()));
	    
	    StoreTrack(tr2,event,useAllClusters);
	    ntrack++;
	    
	  }   
	  
	}//end loop on clusters of innLay
      } //end loop on window sizes
      
    } //end loop on innLay
  } // end search 1-point tracks
  
  if(!useAllClusters) AliInfo(Form("Number of found tracks: %d",event->GetNumberOfTracks()));
  ResetForFinding();
  return 0;

}
 
//________________________________________________________________________

AliITStrackV2* AliITStrackerSA::FitTrack(AliITStrackSA* tr,Double_t *primaryVertex,Bool_t onePoint) {
  //fit of the found track (most general case, also <6 points, layers missing)
  // A.Dainese 16.11.07 

  
  const Int_t kMaxClu=AliITStrackSA::kMaxNumberOfClusters;

  static Int_t firstmod[AliITSgeomTGeo::kNLayers];  
  static Int_t clind[AliITSgeomTGeo::kNLayers][kMaxClu];
  static Int_t clmark[AliITSgeomTGeo::kNLayers][kMaxClu];
  static Int_t end[AliITSgeomTGeo::kNLayers];
  static Int_t indices[AliITSgeomTGeo::kNLayers];

  static AliITSRecPoint *listlayer[AliITSgeomTGeo::kNLayers][kMaxClu];

  for(Int_t i=0;i<AliITSgeomTGeo::GetNLayers();i++) {
    firstmod[i]=AliITSgeomTGeo::GetModuleIndex(i+1,1,1);
    end[i]=0;
    for(Int_t j=0;j<kMaxClu; j++){
      clind[i][j]=0;
      clmark[i][j]=0;
      listlayer[i][j]=0;
   }
  }
  

  Int_t nclusters = tr->GetNumberOfClustersSA();
  for(Int_t ncl=0;ncl<nclusters;ncl++){
    Int_t index = tr->GetClusterIndexSA(ncl); 
    AliITSRecPoint* cl = (AliITSRecPoint*)GetCluster(index);
    Int_t lay = (index & 0xf0000000) >> 28;
    Int_t nInLay=end[lay];
    listlayer[lay][nInLay]=cl;
    clind[lay][nInLay]=index;
    end[lay]++;
  }

  for(Int_t nlay=0;nlay<AliITSgeomTGeo::GetNLayers();nlay++){
    for(Int_t ncl=0;ncl<tr->GetNumberOfMarked(nlay);ncl++){
      Int_t mark = tr->GetClusterMark(nlay,ncl);
      clmark[nlay][ncl]=mark;
    }
  }


  Int_t firstLay=-1,secondLay=-1;
  for(Int_t i=0;i<AliITSgeomTGeo::GetNLayers();i++) {
    if(end[i]==0) {
      end[i]=1;
    }else{
      if(firstLay==-1) {
	firstLay=i;
      } else if(secondLay==-1) {
	secondLay=i;
      }
    }
  }

  if(firstLay==-1 || (secondLay==-1 && !onePoint)) return 0;
  TClonesArray &arrMI= *fListOfTracks;
  TClonesArray &arrSA= *fListOfSATracks;
  Int_t nFoundTracks=0;


  for(Int_t l0=0;l0<end[0];l0++){ //loop on layer 1
    indices[0]=l0;
    for(Int_t l1=0;l1<end[1];l1++){ //loop on layer 2
      indices[1]=l1;
      for(Int_t l2=0;l2<end[2];l2++){  //loop on layer 3
	indices[2]=l2;
        for(Int_t l3=0;l3<end[3];l3++){ //loop on layer 4   
	  indices[3]=l3;
          for(Int_t l4=0;l4<end[4];l4++){ //loop on layer 5
	    indices[4]=l4;
            for(Int_t l5=0;l5<end[5];l5++){ //loop on layer 6  
	      indices[5]=l5;

	      // estimate curvature from 2 innermost points (or innermost point + vertex)

	      Int_t iFirstLay=indices[firstLay];
	      Int_t mrk1=clmark[firstLay][iFirstLay];

	      AliITSRecPoint* p1=(AliITSRecPoint*)listlayer[firstLay][iFirstLay];
	      Int_t module1 = p1->GetDetectorIndex()+firstmod[firstLay]; 
	      Int_t layer,ladder,detector;
	      AliITSgeomTGeo::GetModuleId(module1,layer,ladder,detector);
	      Double_t yclu1 = p1->GetY();
	      Double_t zclu1 = p1->GetZ();

	      Double_t x1,y1,z1;
	      Double_t x2,y2,z2;
	      Double_t cv=0,tgl2=0,phi2=0;
	      AliITSclusterTable* arr1 = (AliITSclusterTable*)GetClusterCoord(firstLay,mrk1);
	      x1 = arr1->GetX();
	      y1 = arr1->GetY();
	      z1 = arr1->GetZ();

	      if(secondLay>0) {
		Int_t iSecondLay=indices[secondLay];	      
		Int_t mrk2=clmark[secondLay][iSecondLay];
		AliITSclusterTable* arr2 = (AliITSclusterTable*)GetClusterCoord(secondLay,mrk2);
		x2 = arr2->GetX();
		y2 = arr2->GetY();
		z2 = arr2->GetZ();
		cv = Curvature(primaryVertex[0],primaryVertex[1],x1,y1,x2,y2);
		tgl2 = (z2-z1)/TMath::Sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
		phi2 = TMath::ATan2((y2-y1),(x2-x1));
	      } else { // special case of 1-point tracks, only for cosmics (B=0)
		x2 = primaryVertex[0];
		y2 = primaryVertex[1];
		z2 = primaryVertex[2];
		cv = 0;
		tgl2 = (z1-z2)/TMath::Sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
		phi2 = TMath::ATan2((y1-y2),(x1-x2));
	      }

	      // create track and attach it the RecPoints
              AliITStrackSA trac(layer,ladder,detector,yclu1,zclu1,phi2,tgl2,cv,1);
	      for(Int_t iLay=5; iLay>=0; iLay--){
		Int_t iInLay=indices[iLay];
		AliITSRecPoint* cl=(AliITSRecPoint*)listlayer[iLay][iInLay];
		if(cl!=0){
		  trac.AddClusterV2(iLay,(clind[iLay][iInLay] & 0x0fffffff)>>0);
		  trac.AddClusterMark(iLay,clmark[iLay][iInLay]);
		}
	      }

              //fit with Kalman filter using AliITStrackerMI::RefitAt()
	      AliITStrackSA ot(trac);

              ot.ResetCovariance(10.);
              ot.ResetClusters();
              
	      // Propagate inside the innermost layer with a cluster 
	      if(ot.Propagate(ot.GetX()-0.1*ot.GetX())) {

		if(RefitAt(AliITSRecoParam::GetrInsideITSscreen(),&ot,&trac)){ //fit from layer 1 to layer 6
		  AliITStrackMI otrack2(ot);
		  otrack2.ResetCovariance(10.); 
		  otrack2.ResetClusters();
		  //fit from layer 6 to layer 1
		  if(RefitAt(AliITSRecoParam::GetrInsideSPD1(),&otrack2,&ot)) {
		    new(arrMI[nFoundTracks]) AliITStrackMI(otrack2);
		    new(arrSA[nFoundTracks]) AliITStrackSA(trac);
		    ++nFoundTracks;
		  }
                              
		}       
	      }
            }//end loop layer 6
          }//end loop layer 5
        }//end loop layer 4        
      }//end loop layer 3
    }//end loop layer 2 
  }//end loop layer 1




  if(fListOfTracks->GetEntries()==0) return 0;

  Int_t lowchi2 = FindTrackLowChiSquare();
  AliITStrackV2* otrack =(AliITStrackV2*)fListOfTracks->At(lowchi2);
  AliITStrackSA* trsa = (AliITStrackSA*)fListOfSATracks->At(lowchi2);
 
  if(otrack==0) return 0;

  CookLabel(otrack,0.); //MI change - to see fake ratio
  Int_t label=FindLabel(otrack);
  otrack->SetLabel(label);  
  Double_t low=0.;
  Double_t up=0.51;    
  otrack->CookdEdx(low,up);

  //remove clusters of found track
  for(Int_t nlay=0;nlay<AliITSgeomTGeo::GetNLayers();nlay++){
    for(Int_t cln=0;cln<trsa->GetNumberOfMarked(nlay);cln++){
      Int_t index = trsa->GetClusterMark(nlay,cln);
      RemoveClusterCoord(nlay,index);
    }    
  }

  return otrack;

}

//_______________________________________________________
void AliITStrackerSA::StoreTrack(AliITStrackV2 *t,AliESDEvent *event, Bool_t pureSA) const 
{
  //
  // Add new track to the ESD
  //
  AliESDtrack outtrack;
  outtrack.UpdateTrackParams(t,AliESDtrack::kITSin);
  if(pureSA) outtrack.SetStatus(AliESDtrack::kITSpureSA);
  for(Int_t i=0;i<12;i++) {
    outtrack.SetITSModuleIndex(i,t->GetModuleIndex(i));
  }
  Double_t sdedx[4]={0.,0.,0.,0.};
  for(Int_t i=0; i<4; i++) sdedx[i]=t->GetSampledEdx(i);
  outtrack.SetITSdEdxSamples(sdedx);


  if(AliITSReconstructor::GetRecoParam()->GetSAUsedEdxInfo()){
    Double_t mom=t->P();
    Double_t ppid[AliPID::kSPECIES];
    for(Int_t isp=0;isp<AliPID::kSPECIES;isp++) ppid[isp]=0.;
    ppid[AliPID::kPion]=1.;
    if(mom<0.7){
      Double_t truncmean=t->GetdEdx();
      Int_t ide=fITSPid->GetParticleIdFromdEdxVsP(mom,truncmean,kTRUE);
      if(ide==AliPID::kProton){
	ppid[AliPID::kProton]=1.;
	ppid[AliPID::kPion]=0.;
      }
      else if(ide==AliPID::kKaon){ 
	ppid[AliPID::kKaon]=1.; 
	ppid[AliPID::kPion]=0.;
      }
    }
    outtrack.SetITSpid(ppid);
    outtrack.SetESDpid(ppid);    
  }
  event->AddTrack(&outtrack);

  return;
}


//_______________________________________________________
Int_t AliITStrackerSA::SearchClusters(Int_t layer,Double_t phiwindow,Double_t lambdawindow, AliITStrackSA* trs,Double_t /*zvertex*/,Int_t pflag){
  //function used to to find the clusters associated to the track

  if(ForceSkippingOfLayer(layer)) return 0;


  Int_t nc=0;
  AliITSlayer &lay = fgLayers[layer];
  Double_t r=lay.GetR();
  if(pflag==1){      
    Double_t cx1,cx2,cy1,cy2;
    FindEquation(fPoint1[0],fPoint1[1],fPoint2[0],fPoint2[1],fPoint3[0],fPoint3[1],fCoef1,fCoef2,fCoef3);
    if (FindIntersection(fCoef1,fCoef2,fCoef3,-r*r,cx1,cy1,cx2,cy2)==0)
       return 0;
    Double_t fi1=TMath::ATan2(cy1-fPoint1[1],cx1-fPoint1[0]);
    Double_t fi2=TMath::ATan2(cy2-fPoint1[1],cx2-fPoint1[0]);
    fPhiEstimate=ChoosePoint(fi1,fi2,fPhic);
  }

 
  Double_t phiExpect=fPhiEstimate;
  Double_t lamExpect=fLambdac;

  Int_t ncl = fCluCoord[layer]->GetEntriesFast();
  Int_t startcl=FindIndex(layer,lamExpect-lambdawindow*1.02);
  Int_t endcl=FindIndex(layer,lamExpect+lambdawindow*1.02)+1;
  if(endcl>=ncl) endcl=ncl-1;

  for (Int_t index=startcl; index<=endcl; index++) {
    //for (Int_t index=0; index<ncl; index++) {
    AliITSclusterTable* arr = (AliITSclusterTable*)GetClusterCoord(layer,index);


    Double_t phi = arr->GetPhi();
    Double_t deltaPhi = phi-phiExpect;
    if(deltaPhi>TMath::Pi()) deltaPhi-=2*TMath::Pi();
    else if(deltaPhi<-TMath::Pi()) deltaPhi+=2*TMath::Pi();
    if (TMath::Abs(deltaPhi)>phiwindow) continue;
    
    Double_t lambda = arr->GetLambda();
    if (TMath::Abs(lambda-lamExpect)>lambdawindow) continue;

    if(trs->GetNumberOfClustersSA()==trs->GetMaxNumberOfClusters()) return 0;
    if(trs->GetNumberOfMarked(layer)==trs->GetMaxNMarkedPerLayer()) return 0;
    Int_t orind = arr->GetOrInd();
    trs->AddClusterSA(layer,orind);
    trs->AddClusterMark(layer,index);
    nc++;
    fLambdac=lambda;
    fPhiEstimate=phi;
    
    fPointc[0]=arr->GetX();
    fPointc[1]=arr->GetY();
    
  }
  return nc;
}

//________________________________________________________________
Bool_t AliITStrackerSA::SetFirstPoint(Int_t lay, Int_t clu, Double_t* primaryVertex){
  // Sets the first point (seed) for tracking

  AliITSclusterTable* arr = (AliITSclusterTable*)GetClusterCoord(lay,clu);
  fPhic = arr->GetPhi();
  fLambdac = arr->GetLambda();
  fPhiEstimate = fPhic;
  fPoint1[0]=primaryVertex[0];
  fPoint1[1]=primaryVertex[1];
  fPoint2[0]=arr->GetX();
  fPoint2[1]=arr->GetY();
  return kTRUE; 
}

//________________________________________________________________
void AliITStrackerSA::UpdatePoints(){
  //update of points for the estimation of the curvature  

  fPoint2[0]=fPoint3[0];
  fPoint2[1]=fPoint3[1];
  fPoint3[0]=fPointc[0];
  fPoint3[1]=fPointc[1];

  
}

//___________________________________________________________________
Int_t AliITStrackerSA::FindEquation(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Double_t x3, Double_t y3,Double_t& a, Double_t& b, Double_t& c){

   //given (x,y) of three recpoints (in global coordinates) 
   //returns the parameters a,b,c of circonference x*x + y*y +a*x + b*y +c
   double dx31=x3-x1,dy31=y3-y1,dx21=x2-x1,dy21=y2-y1;
   Double_t den = dx31*dy21-dx21*dy31;
   if(den==0) return 0;
   else den = 1./den;
   //
   double r31 = -dx31*(x1+x3) - dy31*(y1+y3);
   double r21 = -dx21*(x1+x2) - dy21*(y1+y2);
   //
   double da = r31*dy21 - r21*dy31;
   double db = r21*dx31 - r31*dx21;
   a = da*den;
   b = db*den;
   c = -x1*x1-y1*y1-a*x1-b*y1;
   return 1;
 }
//__________________________________________________________________________
 Int_t AliITStrackerSA::FindIntersection(Double_t a1, Double_t b1, Double_t c1, Double_t c2,Double_t& x1,Double_t& y1, Double_t& x2, Double_t& y2){
 
 //Finds the intersection between the circonference of the track and the circonference centered in (0,0) represented by one layer
 //c2 is -rlayer*rlayer

  if(a1==0) return 0;
 Double_t m = c2-c1; 
 Double_t aA = (b1*b1)/(a1*a1)+1;
 Double_t bB = (-2*m*b1/(a1*a1));
 Double_t cC = c2+(m*m)/(a1*a1);
 Double_t dD = bB*bB-4*aA*cC;
 if(dD<0) return 0;
 
 y1 = (-bB+TMath::Sqrt(dD))/(2*aA); 
 y2 = (-bB-TMath::Sqrt(dD))/(2*aA); 
 x1 = (c2-c1-b1*y1)/a1;
 x2 = (c2-c1-b1*y2)/a1;

 return 1; 
}
//____________________________________________________________________
Double_t AliITStrackerSA::Curvature(Double_t x1,Double_t y1,Double_t 
x2,Double_t y2,Double_t x3,Double_t y3){

  //calculates the curvature of track  
  Double_t den = (x3-x1)*(y2-y1)-(x2-x1)*(y3-y1);
  if(den==0) return 0;
  Double_t a = ((y3-y1)*(x2*x2+y2*y2-x1*x1-y1*y1)-(y2-y1)*(x3*x3+y3*y3-x1*x1-y1*y1))/den;
  Double_t b = -(x2*x2-x1*x1+y2*y2-y1*y1+a*(x2-x1))/(y2-y1);
  Double_t c = -x1*x1-y1*y1-a*x1-b*y1;
  Double_t xc=-a/2.;

  if((a*a+b*b-4*c)<0) return 0;
  Double_t rad = TMath::Sqrt(a*a+b*b-4*c)/2.;
  if(rad==0) return 0;
  
  if((x1>0 && y1>0 && x1<xc)) rad*=-1;
  if((x1<0 && y1>0 && x1<xc)) rad*=-1;
  //  if((x1<0 && y1<0 && x1<xc)) rad*=-1;
  // if((x1>0 && y1<0 && x1<xc)) rad*=-1;
  
  return 1/rad;
 
}


//____________________________________________________________________
Double_t AliITStrackerSA::ChoosePoint(Double_t p1, Double_t p2, Double_t pp){

  //Returns the point closest to pp

  Double_t diff1 = p1-pp;
  Double_t diff2 = p2-pp;
  
  if(TMath::Abs(diff1)<TMath::Abs(diff2)) fPhiEstimate=p1;
  else fPhiEstimate=p2;  
  return fPhiEstimate;
  
}


//_________________________________________________________________
Int_t AliITStrackerSA::FindTrackLowChiSquare() const {
  // returns track with lowest chi square  
  Int_t dim=fListOfTracks->GetEntries();
  if(dim<=1) return 0;
  AliITStrackV2* trk = (AliITStrackV2*)fListOfTracks->At(0);
  Double_t minChi2=trk->GetChi2();
  Int_t index=0;
  for(Int_t i=1;i<dim;i++){
    trk = (AliITStrackV2*)fListOfTracks->At(i);
    Double_t chi2=trk->GetChi2();
    if(chi2<minChi2){
      minChi2=chi2;
      index=i;
    }
  }
  return index;
}

//__________________________________________________________
Int_t AliITStrackerSA::FindLabel(AliITStrackV2* track){
  // compute the track label starting from cluster labels
  
  Int_t labl[AliITSgeomTGeo::kNLayers][3];
  Int_t cnts[AliITSgeomTGeo::kNLayers][3];
  for(Int_t j=0;j<AliITSgeomTGeo::GetNLayers();j++){
    for(Int_t k=0;k<3;k++){
      labl[j][k]=-2;
      cnts[j][k]=1;
    }
  }
  Int_t iNotLabel=0;
  for(Int_t i=0;i<track->GetNumberOfClusters(); i++) {
    Int_t indexc = track->GetClusterIndex(i);
    AliITSRecPoint* cl = (AliITSRecPoint*)GetCluster(indexc);
    Int_t iLayer=cl->GetLayer();
    for(Int_t k=0;k<3;k++){
      labl[iLayer][k]=cl->GetLabel(k);
      if(labl[iLayer][k]<0) iNotLabel++;
    }
  }
  if(iNotLabel==3*track->GetNumberOfClusters()) return -2;

  for(Int_t j1=0;j1<AliITSgeomTGeo::kNLayers; j1++) {
    for(Int_t j2=0; j2<j1;  j2++){
      for(Int_t k1=0; k1<3; k1++){
	for(Int_t k2=0; k2<3; k2++){
	  if(labl[j1][k1]>=0 && labl[j1][k1]==labl[j2][k2] && cnts[j2][k2]>0){
	    cnts[j2][k2]++;
	    cnts[j1][k1]=0;
	  }
	}
      }
    }
  }


  Int_t cntMax=0;
  Int_t label=-1;
  for(Int_t j=0;j<AliITSgeomTGeo::kNLayers;j++){
    for(Int_t k=0;k<3;k++){
      if(cnts[j][k]>cntMax && labl[j][k]>=0){
	cntMax=cnts[j][k];
	label=labl[j][k];
      }
    }
  }

  Int_t lflag=0;
  for(Int_t i=0;i<AliITSgeomTGeo::kNLayers;i++)
    if(labl[i][0]==label || labl[i][1]==label || labl[i][2]==label) lflag++;
  
  if(lflag<track->GetNumberOfClusters()) label = -label;
  return label;
}
//_____________________________________________________________________________
void AliITStrackerSA::SetCalculatedWindowSizes(Int_t n, Double_t phimin, Double_t phimax, Double_t lambdamin, Double_t lambdamax){
  // Set sizes of the phi and lambda windows used for track finding
  fNloop = n;
  if(fPhiWin) delete [] fPhiWin;
  if(fLambdaWin) delete [] fLambdaWin;
  fPhiWin = new Double_t[fNloop];
  fLambdaWin = new Double_t[fNloop];
  Double_t stepPhi=(phimax-phimin)/(Double_t)(fNloop-1);
  Double_t stepLambda=(lambdamax-lambdamin)/(Double_t)(fNloop-1);
  for(Int_t k=0;k<fNloop;k++){
    Double_t phi=phimin+k*stepPhi;
    Double_t lam=lambdamin+k*stepLambda;
    fPhiWin[k]=phi;
    fLambdaWin[k]=lam;
  }
}
//_____________________________________________________________________________
void AliITStrackerSA::SetFixedWindowSizes(Int_t n, Double_t *phi, Double_t *lam){
  // Set sizes of the phi and lambda windows used for track finding
  fNloop = n;
  if(phi){ // user defined values
    fPhiWin = new Double_t[fNloop];
    fLambdaWin = new Double_t[fNloop];
    for(Int_t k=0;k<fNloop;k++){
      fPhiWin[k]=phi[k];
      fLambdaWin[k]=lam[k];
    }
  }
  else {  // default values
            
    Double_t phid[32]   = {0.002,0.003,0.004,0.0045,0.0047,
			   0.005,0.0053,0.0055,0.006,0.0063,
			   0.0065,0.007,0.0073,0.0075,0.0077,
			   0.008,0.0083,0.0085,0.0087,0.009,
			   0.0095,0.0097,0.01,0.0105,0.011,
			   0.0115,0.012,0.0125,0.013,0.0135,
			   0.0140,0.0145};
    Double_t lambdad[32] = {0.003,0.004,0.005,0.005,0.005,
			    0.005,0.005,0.006,0.006,0.006,
			    0.006,0.007,0.007,0.007,0.007,
			    0.007,0.007,0.007,0.007,0.007,
			    0.007,0.007,0.008,0.008,0.008,
			    0.008,0.008,0.008,0.008,0.008,
			    0.008,0.008};
    
    if(fNloop!=32){
      fNloop = 32;
    }
    
    
    fPhiWin = new Double_t[fNloop];
    fLambdaWin = new Double_t[fNloop];

    Double_t factor=AliITSReconstructor::GetRecoParam()->GetFactorSAWindowSizes(); // possibility to enlarge windows for cosmics reco with large misalignments (A.Dainese)
  
    for(Int_t k=0;k<fNloop;k++){
      fPhiWin[k]=phid[k]*factor;
      fLambdaWin[k]=lambdad[k]*factor;
    }
  
  }

}
//_______________________________________________________________________
void AliITStrackerSA::GetCoorAngles(AliITSRecPoint* cl,Double_t &phi,Double_t &lambda, Double_t &x, Double_t &y,Double_t &z, const Double_t* vertex){
  //Returns values of phi (azimuthal) and lambda angles for a given cluster
/*  
  Double_t rot[9];     fGeom->GetRotMatrix(module,rot);
  Int_t lay,lad,det; fGeom->GetModuleId(module,lay,lad,det);
  Double_t tx,ty,tz;  fGeom->GetTrans(lay,lad,det,tx,ty,tz);     

  Double_t alpha=TMath::ATan2(rot[1],rot[0])+TMath::Pi();
  Double_t phi1=TMath::Pi()/2+alpha;
  if (lay==1) phi1+=TMath::Pi();

  Double_t cp=TMath::Cos(phi1), sp=TMath::Sin(phi1);
  Double_t r=tx*cp+ty*sp;

  xyz= r*cp - cl->GetY()*sp;
  y= r*sp + cl->GetY()*cp;
  z=cl->GetZ();
*/
  Float_t xyz[3];
  cl->GetGlobalXYZ(xyz);
  x=xyz[0];
  y=xyz[1];
  z=xyz[2];
 
  phi=TMath::ATan2(y-vertex[1],x-vertex[0]);
  lambda=TMath::ATan2(z-vertex[2],TMath::Sqrt((x-vertex[0])*(x-vertex[0])+(y-vertex[1])*(y-vertex[1])));
}

//________________________________________________________________________
void AliITStrackerSA::GetCoorErrors(AliITSRecPoint* cl,Double_t &sx,Double_t &sy, Double_t &sz){

  //returns sigmax, y, z of cluster in global coordinates
/*
  Double_t rot[9];     fGeom->GetRotMatrix(module,rot);
  Int_t lay,lad,det; 
  AliITSgeomTGeo::GetModuleId(module,lay,lad,det);
 
  Double_t alpha=TMath::ATan2(rot[1],rot[0])+TMath::Pi();
  Double_t phi=TMath::Pi()/2+alpha;
  if (lay==1) phi+=TMath::Pi();

  Double_t cp=TMath::Cos(phi), sp=TMath::Sin(phi);
*/
  Float_t covm[6];
  cl->GetGlobalCov(covm);
  sx=TMath::Sqrt(covm[0]);
  sy=TMath::Sqrt(covm[3]);
  sz=TMath::Sqrt(covm[5]);
/*
  sx = TMath::Sqrt(sp*sp*cl->GetSigmaY2());
  sy = TMath::Sqrt(cp*cp*cl->GetSigmaY2());
  sz = TMath::Sqrt(cl->GetSigmaZ2());
*/
}

//________________________________________________________________________
Int_t AliITStrackerSA::FindIndex(Int_t lay, Double_t lamVal) const {
  // Find the cluster at limit of lambda window 

  Int_t base = 0;
  Int_t last = fCluCoord[lay]->GetEntriesFast()-1;
  if(last<0) return 0;
  Int_t position;
  Double_t lamfirst=((AliITSclusterTable*)fCluCoord[lay]->At(base))->GetLambda();
  if(lamfirst>lamVal) return base;
  Double_t lamlast=((AliITSclusterTable*)fCluCoord[lay]->At(last))->GetLambda();
  if(lamlast<=lamVal) return last;
  while (last >= base) {
    position = (base+last) / 2;
    Double_t a=((AliITSclusterTable*)fCluCoord[lay]->At(position))->GetLambda()-lamVal;
    Double_t b=((AliITSclusterTable*)fCluCoord[lay]->At(position+1))->GetLambda()-lamVal;
    if(a*b<=0) return position;
    if(a>0) last = position;
    else  base = position;
  }
  return 0;
}

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