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

//---------------------------------
//Class to perform the realignment if the Inner Tracking System 
//with an iterative approach based on track to cluster residuals
// minimization. A chi2 function of the residuals is minimized with
//respect to alignment parameters. The class allows both single module
//realignment and set of modules realignment. Tracks are fitted with
//AliTrackFitter* fitters. AliTrackFitterKalman is more suited for
//straight line (e.g. cosmic in the absence of magnetic field) but can't
//work with helixes. AliTrackFitterRieman is suited for helixes. 
//The minimization is performed by AliTrackResiduals* classes: default
//one is AliTrackResidualsFast (analytic minimization by inversion). 
//For numerical minimization using MINUIT, use AliTrackResidualChi2.
//Methods are present to defined both the set of modules where the tracks
//are fittef and the set of modules which  are to be realigned
//The main method is  AlignVolumesITS
//
//Class by: A. Rossi, andrea,rossi@ts.infn.it

#include <TFile.h>
#include <TStopwatch.h>
#include <TNtuple.h>
#include <TClonesArray.h>
#include <TMath.h>
#include <TGraph.h>
#include <TCanvas.h>
#include <TH1F.h>
#include "AliITSRealignTracks.h"
#include "AliAlignObjParams.h"
#include "AliAlignObj.h"
#include "AliGeomManager.h"
#include "AliTrackFitter.h"
#include "AliTrackFitterKalman.h"
#include "AliTrackFitterRieman.h"
#include "AliTrackResidualsFast.h"
#include "AliTrackResidualsChi2.h"
#include "AliTrackResidualsLinear.h"

#include "AliLog.h"
#include <TSystem.h>
#include <TGeoManager.h>

class AliAlignmentTracks;
class TGeoMatrix;
class TArray;


/* $Id$ */


ClassImp(AliITSRealignTracks)

const Int_t kreferSect=2;


AliITSRealignTracks::AliITSRealignTracks(TString minimizer,Int_t fit,Bool_t covUsed,TString fileintro,TString geometryfile,TString misalignmentFile,TString startingfile):
  AliAlignmentTracks(),
  fSurveyObjs(0),
  fgeomfilename(),
  fmintracks(),
  fUpdateCov(kFALSE),
  fVarySigmaY(kFALSE),
  fCorrModules(0),
  fLimitCorr(0),
  fsigmaY(),
  fDraw(kFALSE),  
  fAlignDrawObjs(0), 
  fCanvPar(0), 
  fCanvGr(0), 
  fgrIterMeanX(0), 
  fgrIterRMSX(0),  
  fgrIterMeanY(0), 
  fgrIterRMSY(0),  
  fgrIterMeanZ(0), 
  fgrIterRMSZ(0),  
  fgrIterMeanPsi(0), 
  fgrIterRMSPsi(0),  
  fgrIterMeanTheta(0), 
  fgrIterRMSTheta(0),  
  fgrIterMeanPhi(0), 
  fgrIterRMSPhi(0)  
{

  // minimizer="fast"->AliTrackResidualFast minimizer
  //           "minuit"->AliTrackResidualChi2 minimizer
  //           "minuitnorot"->AliTrackResidualChi2 minimizer without rotations degrees of freedom
  //           "linear"->AliTrackResidualLinear minimizer    
  //fit=0-> Riemann Fitter, fit=1->Kalman
  //fileintro=file into which the Tree with the space points is stored
  //geometryfile=file containing the geometry  
  
  
  SetPointsFilename(fileintro.Data());
  SetGeomFilename(geometryfile);
  InitAlignObjs();
  if(!InitSurveyObjs(kFALSE))AliWarning("Unable to set Survey AlignObjs!");
  
  if(startingfile=="")printf("Starting from default geometry \n");
  else ReadAlignObjs(startingfile.Data(),"ITSAlignObjs");
  
  if(misalignmentFile=="")printf("NO FAKE MISALIGNMENT INTRODUCED \n");
  else {
    Bool_t misal=Misalign(misalignmentFile,"ITSAlignObjs");
    if(!misal)AliWarning("Incorrect fake misalignment filename!");;
  }
  
  if(!gGeoManager) AliGeomManager::LoadGeometry(fgeomfilename.Data());
  if(covUsed)SetCovIsUsed(kTRUE);
  if(!SelectFitter(fit))AliWarning("Incorrect fitter assignment!");
  if(!SelectMinimizer(minimizer))AliWarning("Incorrect minimizer assignment!");
  fsigmaY=1.;
  fmintracks=1;
  BuildIndex();
  
}

AliITSRealignTracks::AliITSRealignTracks(const AliITSRealignTracks &realignTracks):
  AliAlignmentTracks(),
  fSurveyObjs(new AliAlignObj**(*realignTracks.fSurveyObjs)),
  fgeomfilename(realignTracks.fgeomfilename),
  fmintracks(realignTracks.fmintracks),
  fUpdateCov(realignTracks.fUpdateCov),
  fVarySigmaY(realignTracks.fVarySigmaY),
  fCorrModules(new Double_t *(*realignTracks.fCorrModules)),
  fLimitCorr(realignTracks.fLimitCorr),
  fsigmaY(realignTracks.fsigmaY),
  fDraw(kFALSE),  
  fAlignDrawObjs(realignTracks.fAlignDrawObjs), 
  fCanvPar(realignTracks.fCanvPar), 
  fCanvGr(realignTracks.fCanvGr), 
  fgrIterMeanX(realignTracks.fgrIterMeanX), 
  fgrIterRMSX(realignTracks.fgrIterRMSX),  
  fgrIterMeanY(realignTracks.fgrIterMeanY), 
  fgrIterRMSY(realignTracks.fgrIterRMSY),  
  fgrIterMeanZ(realignTracks.fgrIterMeanZ), 
  fgrIterRMSZ(realignTracks.fgrIterRMSZ),  
  fgrIterMeanPsi(realignTracks.fgrIterMeanPsi), 
  fgrIterRMSPsi(realignTracks.fgrIterRMSPsi),  
  fgrIterMeanTheta(realignTracks.fgrIterMeanTheta), 
  fgrIterRMSTheta(realignTracks.fgrIterRMSTheta),  
  fgrIterMeanPhi(realignTracks.fgrIterMeanPhi), 
  fgrIterRMSPhi(realignTracks.fgrIterRMSPhi)  

{//Copy Constructor
  AliWarning("Can't copy AliAlignmentTracks Data member!");
}

AliITSRealignTracks& AliITSRealignTracks::operator=(const AliITSRealignTracks &obj){
  ////////////////////////
  // Assignment operator
  ////////////////////////
  this->~AliITSRealignTracks();
  new(this) AliITSRealignTracks(obj); 
  return *this;
}

AliITSRealignTracks::~AliITSRealignTracks(){
  //destructor
  
  if(fSurveyObjs)   DeleteSurveyObjs();
  if(fAlignDrawObjs) DeleteDrawHists();
  //delete [] fSurveyObjs; 
  
} 


//_____________________________
Bool_t AliITSRealignTracks::SelectFitter(Int_t fit,Int_t minTrackPoint){
  //Method to select the fitter: 0 for AliTrackFitterRieman (use this for helixes)
  //                             1 for AliTrackFitterKalman
  //minTrackPoint defines the minimum number of points (not rejected by the fit itself) 
  //a track should have to fit it
 
  if(fit==1){
     AliTrackFitterKalman *fitter= new AliTrackFitterKalman();
     fitter->SetMinNPoints(minTrackPoint);
     SetTrackFitter(fitter);    
  }
 
  else if(fit==0){
    AliTrackFitterRieman *fitter=new AliTrackFitterRieman();
    fitter->SetMinNPoints(minTrackPoint);
    SetTrackFitter(fitter);
  }
  else return kFALSE;
 
  return kTRUE;
}


Bool_t AliITSRealignTracks::SelectMinimizer(TString minimizer,Int_t minpoints,const Bool_t *coord){
  //Method to select the minimizer: "minuit" for AliTrackFitterChi2 (numerical minimization by MINUIT)
  //                                "fast" for AliTrackResidualsFast
  //                                "linear" for AliTrackResidualsLinear
  //                                "minuitnorot" for AliTrackFitterChi2 by 
  // coord[6] allows to fix the degrees of freedom in the minimization (e.g. look only for tranlsations, 
  //       or only for rotations). The coord are: dTx,dTy,dTz,dPsi,dTheta,dPhi where "d" stands for 
  //       "differential" and "T" for translation. If coord[i] is set to kTRUE then the i coord is fixed
  //       When a coordinate is fixed the value returnd for it is 0
  // minnpoints fix the minimum number of residuals to perform the minimization: it's not safe
  //     to align a module with a small number of track passing through it since the results could be
  //     not reliable. For single modules the number of residuals and the number of tracks passing 
  //     through it and accepted bu the fit procedure coincide. This is not the case for sets of modules,
  //     since a given track can pass through two or more modules in the set (e.g a cosmic track can give
  //     two cluster on a layer)

  AliTrackResiduals *res;
  if(minimizer=="minuit"){
    res = new AliTrackResidualsChi2();
    if(coord){
      for(Int_t j=0;j<6;j++){
	if(coord[j])res->FixParameter(j);
      }
    }
  }
  else if(minimizer=="minuitnorot"){
    res = new AliTrackResidualsChi2();
    res->FixParameter(3);
    res->FixParameter(4);
    res->FixParameter(5);
  }
  
  else if(minimizer=="fast"){
    res = new AliTrackResidualsFast();
    if(coord){
      for(Int_t j=0;j<6;j++){
	if(coord[j])res->FixParameter(j);
      }
    }
  } 
  else if(minimizer=="linear"){
    res = new AliTrackResidualsLinear();
  } 
  
  else {
    printf("Trying to set a non existing minimizer! \n");
    return kFALSE;
  }
  
  res->SetMinNPoints(minpoints);
  SetMinimizer(res);
  
  return kTRUE;
}

//____________________________________
void AliITSRealignTracks::SetVarySigmaY(Bool_t varysigmay,Double_t sigmaYfixed){
  //SigmaY is the value of the error along the track direction assigned 
  //to the AliTrackPoint constructed from the extrapolation of the fit of a track
  //to the module one is realigning. This error simulate the uncertainty on the
  //position of the cluster in space due to the misalingment of the module (i.e. 
  //you don't the real position and orientation of the plane of the desired extrapolation 
  //but you rely on the fit and consider the point to lie along the track)
  
  
  fVarySigmaY=varysigmay;
  if(!varysigmay){
    if(sigmaYfixed>0.)fsigmaY=sigmaYfixed;
    else {
      printf("Negative assignment to sigmaY! set it to default value (1 cm) \n");
      fsigmaY=1.;
    }
  }
}

//_______________________________________
void AliITSRealignTracks::RealignITSVolIndependent(Int_t iter1,Int_t iterations,Int_t minNtracks,Int_t layer,Int_t minTrackPoint){
  

  //iter1=#iterations inside AliAlignmentTracks::AliAlignVolumesITS method 
  //iterations=#iterations on the all procedure
  //layer=0->all ITS, otherways the usual notation is considered (1=SPD1,2=SPD2,3=SDD1,4=SDD2,5=SSD1,6=SSD2)
  //minNtracks=minimun number of tracks passing through a module in order to try to realign the module itsself
  //           if minNtracks<0, minimun number of tracks is |minNtracks|*minNumPoint[layer]/fact (see the code below): this allows a different
  //           choice of the number of tracks required on different layers and to vary these numbers once tuned the relative proportions.  
  //minTrackPoint=minimun number of "good" points required to a track (THE POINT ON THE MODULE THAT IS GOING TO BE REALIGNED 
  //IS NEVER CONSIDERED->max number can be required is 11 for cosmics tracks) for the track being considered in the minimization
  

  fTrackFitter->SetMinNPoints(minTrackPoint);
  TArrayI volIDs2(2200); 
  volIDs2.Reset(0);
  TArrayI volIDs(1);
  TString command;
  TArrayI volIDsFit;
  
  Int_t iLayer,iLayerToAlign;

  Int_t minNumPoint[6]={100,100,100,100,50,50}; 
  Double_t fact=10; 
  Int_t j=0;
  
  Int_t size=0;
  Int_t layerNum,modNum,lastVolid=0;
  TNtuple *ntVolumeAlign=new TNtuple("ntVolumeAlign","NTuple with volume tried to be realigned","layerNum:modNum:volumeIDnum"); 
 
  TStopwatch *timer=new TStopwatch();
  timer->Start(); 
  BuildIndex();
  j=0;
  UShort_t volid;
  
  for(Int_t iter=0;iter<iterations;iter++){
   
    //Starting Independent Modules Realignment
    for(iLayerToAlign=(Int_t)AliGeomManager::kSPD1;iLayerToAlign<=(Int_t)AliGeomManager::kSSD2;iLayerToAlign++){
      if(layer!=0&&iLayerToAlign!=layer)continue;
      j=0;
      size=0;
      for(Int_t k=(Int_t)AliGeomManager::kSPD1;k<=(Int_t)AliGeomManager::kSSD2;k++){
	size+=AliGeomManager::LayerSize(k);
	printf("size: %d \n",size);
      }
       
      for (Int_t iModule=0;iModule<AliGeomManager::LayerSize(iLayerToAlign);iModule++){      
	j=0;
	if(minNtracks<0){	
	  if(GetLastIndex(iLayerToAlign-(Int_t)AliGeomManager::kFirstLayer,iModule)<minNumPoint[iLayerToAlign-(Int_t)AliGeomManager::kFirstLayer]*(-1*minNtracks/fact))continue;	}	
	else if(GetLastIndex(iLayerToAlign-(Int_t)AliGeomManager::kFirstLayer,iModule)<minNtracks)continue;
	
	UShort_t volidAl = AliGeomManager::LayerToVolUID(iLayerToAlign,iModule);
	
	volIDsFit.Reset(0);
	volIDsFit.Set(size-1);
	for (iLayer=AliGeomManager::kSPD1;iLayer<AliGeomManager::kTPC1;iLayer++){
	  for (Int_t iModule2=0;iModule2<AliGeomManager::LayerSize(iLayer);iModule2++){	    
	    volid = AliGeomManager::LayerToVolUID(iLayer,iModule2);
	    if(AliGeomManager::LayerToVolUID(iLayer,iModule2)==volidAl)continue;
	    volIDsFit.AddAt(volid,j);
	    j++;
	  }
	}
	volIDs.AddAt((Int_t)volidAl,0);
	if(iter==iterations-1){
	  volIDs2.AddAt(volidAl,lastVolid);
	  lastVolid++;
	}
	volIDs2.AddAt(volidAl,lastVolid);
	AlignVolumesITS(&volIDs,&volIDsFit,AliGeomManager::kSPD1,AliGeomManager::kSSD2,iter1);  
      }
    }
    
    
    if((iter+1)%5==0||iter==0||iter==1||iter==2||iter==3||iter==iterations-1){
      command="RealignObj";
      command+=(iter+1);
      command.Append(".root");
      WriteRealignObjArray(command.Data(),AliGeomManager::kSPD1,AliGeomManager::kSSD2);
    }
  }
  
  
  if(j==0){printf("j=0 \n");return;}
  for(Int_t k=0;k<volIDs2.GetSize();k++){
    if(volIDs2.At(k)==0)break;
    layerNum=AliGeomManager::VolUIDToLayer(volIDs2.At(k),modNum);
    ntVolumeAlign->Fill(layerNum,modNum,volIDs2.At(k));
  }
  printf("End of selecting modules cycle: %d modules selected \n",j);
  TFile *f=new TFile("RealignVolNt.root","RECREATE");
  f->cd();
  ntVolumeAlign->Write();
  f->Close();
  
  timer->Stop();
  timer->Print();
  return;
}


void AliITSRealignTracks::RealignITStracks(TString minimizer,Int_t fit=0,Int_t iter1=1,Int_t iterations=5,Int_t minNtracks=-10,Int_t layer=0,Int_t minTrackPoint=6,Bool_t covUsed=kFALSE,TString misalignmentFile="",TString startingfile="",Int_t doGlobal=1)
{
  
  // minimizer="fast"->AliTrackResidualFast minimizer
  //           "minuit"->AliTrackResidualChi2 minimizer
  //           "minuitnorot"->AliTrackResidualChi2 minimizer without rotations degrees of freedom
  //           "linear"->AliTrackResidualLinear minimizer    
  //fit=0-> Riemann Fitter, fit=1->Kalman
  //iter1=#iterations inside AliAlignmentTracks::AliAlignVolumesITS method 
  //iterations=#iterations on the all procedure
  //layer=0->all ITS, otherways the usual notation is considered (1=SPD1,2=SPD2,3=SDD1,4=SDD2,5=SSD1,6=SSD2)
  //minNtracks=minimun number of tracks passing through a module in order to try to realign the module itsself
  //           if minNtracks<0, minimun number of tracks is |minNtracks|*minNumPoint[layer]/fact (see the code below): this allows a different
  //           choice of the number of tracks required on different layers and to vary these numbers once tuned the relative proportions.  
  //minTrackPoint=minimun number of "good" points required to a track (THE POINT ON THE MODULE THAT IS GOING TO BE REALIGNED 
  //              IS NEVER CONSIDERED->max number that can be required is 11 for cosmics tracks) for the track being considered in the minimization
  //doGlobal : do global realignment, 0=no, 1= yes, 2=only global 


  TArrayI volIDs2(2200); 
  volIDs2.Reset(0);
  TArrayI volIDs(1);
  TString command;
  TArrayI volIDsFit;
  
  Int_t iLayer,iLayerToAlign;

  Int_t minNumPoint[6]={100,100,100,100,50,50}; 
  Double_t fact=10; 
  Int_t count=0;
 
  Int_t size=0;
  Int_t layerNum,modNum,lastVolid=0;
  TNtuple *ntVolumeAlign=new TNtuple("ntVolumeAlign","NTuple with volume tried to be realigned","layerNum:modNum:volumeIDnum"); 

 
  if(!SelectFitter(fit))AliWarning("Incorrect fitter assignment!");
  if(!SelectMinimizer(minimizer))AliWarning("Incorrect minimizer assignment!");
  if(misalignmentFile=="")printf("NO FAKE MISALIGNMENT INTRODUCED \n");
  else {
    Bool_t misal=Misalign(misalignmentFile,"ITSAlignObjs");
    if(!misal)return;
  }

 
  TStopwatch *timer=new TStopwatch();
  timer->Start(); 
  BuildIndex();
  count=0;
  UShort_t volid;

  if(startingfile=="")printf("Starting from default geometry \n");
  else {
    printf("Starting from AlignObjs file: %s",startingfile.Data());
    ReadAlignObjs(startingfile.Data(),"ITSAlignObjs");
  }
  
  for(Int_t iter=0;iter<iterations;iter++){
    if(covUsed)SetCovIsUsed(kTRUE);
    
   
    //START HIERARCHY REALIGNMENT

    if(layer==0&&(doGlobal==1||doGlobal==2)){
      for(Int_t siter=0;siter<5;siter++){
	fTrackFitter->SetMinNPoints(2);
	SetCovUpdate(kFALSE);
	AlignSPDHalfBarrelToSectorRef(kreferSect,3);
	//	AlignSPDBarrel(1);
	//	if(siter==0)SetCovUpdate(kFALSE);
	//	AlignSPDHalfBarrel(0,3);
	//	SetCovUpdate(kTRUE);
	AlignSPDHalfBarrelToHalfBarrel(1,3);
	//	AlignSPDHalfBarrelToSectorRef(kreferSect,3);
	for(Int_t sector=0;sector<10;sector++){
	  SetMinNtracks(100);
	  if(sector==kreferSect)continue;
	  AlignSPDSectorWithSectors(sector,1);
	}


	for(Int_t lay=1;lay<=6;lay++){
	  if(!AlignLayerToSector(lay,kreferSect,3))AlignLayerToSPDHalfBarrel(lay,0,3);
	}
	AlignSPDHalfBarrel(0,3);
	
	Int_t layers[6]={2,2,1,0,0,0};
	fTrackFitter->SetMinNPoints(4);
	AlignLayersToLayers(layers,1);
      
	fTrackFitter->SetMinNPoints(6);
	layers[2]=2;
	layers[3]=1;//{2,2,2,1,0,0};
	AlignLayersToLayers(layers,1);

	fTrackFitter->SetMinNPoints(6);
	layers[3]=2;
	layers[4]=1;//{2,2,2,2,1,0};
	AlignLayersToLayers(layers,1);

	fTrackFitter->SetMinNPoints(6);
	layers[4]=2;
	layers[5]=1;//{2,2,2,2,2,1};
	AlignLayersToLayers(layers,1);
	
	
	for(Int_t sector=0;sector<10;sector++){
	  AlignSPDSectorToOuterLayers(sector,1);
	}
	WriteRealignObjArray("AfterGlobal.root",AliGeomManager::kSPD1,AliGeomManager::kSSD2);
      }
    }
        
    if(doGlobal==2)return;    

    if(covUsed)SetCovUpdate(kTRUE);
    SetMinNtracks(1);


    // STARTS INDEPENDENT MOULES REALIGNMENT

    fTrackFitter->SetMinNPoints(minTrackPoint);
    for(iLayerToAlign=(Int_t)AliGeomManager::kSPD1;iLayerToAlign<=(Int_t)AliGeomManager::kSSD2;iLayerToAlign++){
      if(layer!=0&&iLayerToAlign!=layer)continue;
      count=0;
      size=0;
      for(Int_t k=(Int_t)AliGeomManager::kSPD1;k<=(Int_t)AliGeomManager::kSSD2;k++){
	size+=AliGeomManager::LayerSize(k);
	printf("size: %d \n",size);
      }
      
      for (Int_t iModule=0;iModule<AliGeomManager::LayerSize(iLayerToAlign);iModule++){      
	count=0;
	if(minNtracks<0){	
	  if(GetLastIndex(iLayerToAlign-(Int_t)AliGeomManager::kFirstLayer,iModule)<minNumPoint[iLayerToAlign-(Int_t)AliGeomManager::kFirstLayer]*(-1*minNtracks/fact))continue;
	}	
	else if(GetLastIndex(iLayerToAlign-(Int_t)AliGeomManager::kFirstLayer,iModule)<minNtracks)continue;
	
	UShort_t volidAl = AliGeomManager::LayerToVolUID(iLayerToAlign,iModule);
	
	volIDsFit.Reset(0);
	volIDsFit.Set(size-1);
	for (iLayer=(Int_t)AliGeomManager::kSPD1;iLayer<(Int_t)AliGeomManager::kTPC1;iLayer++){
	  for (Int_t iModule2=0;iModule2<AliGeomManager::LayerSize(iLayer);iModule2++){
	    
	  
	    volid = AliGeomManager::LayerToVolUID(iLayer,iModule2);
	  
	    if(AliGeomManager::LayerToVolUID(iLayer,iModule2)==volidAl)continue;
	    volIDsFit.AddAt(volid,count);
	    count++;
	  }
	}
    
	volIDs.AddAt((Int_t)volidAl,0);
	if(iter==iterations-1){
	  volIDs2.AddAt(volidAl,lastVolid);
	  lastVolid++;
	}
	volIDs2.AddAt(volidAl,lastVolid);	
	AlignVolumesITS(&volIDs,&volIDsFit,AliGeomManager::kSPD1,AliGeomManager::kSSD2,iter1);  	
      }
    }   
    
    if((iter+1)%2==0||(iter+1)%5==0||iter==0||iter==1||iter==2||iter==3||iter==iterations-1){
      command="RealignObj";
      command+=(iter+1);
      command.Append(".root");
      WriteRealignObjArray(command.Data(),AliGeomManager::kSPD1,AliGeomManager::kSSD2);
    }
    
  }
  
  if(count==0){printf("count=0 \n");return;}
  for(Int_t k=0;k<volIDs2.GetSize();k++){
    if(volIDs2.At(k)==0)break;
    layerNum=AliGeomManager::VolUIDToLayer(volIDs2.At(k),modNum);
    ntVolumeAlign->Fill(layerNum,modNum,volIDs2.At(k));
  }
  printf("End of selecting modules cycle: %d modules selected \n",count);
  TFile *f=new TFile("RealignVolNt.root","RECREATE");
  f->cd();
  ntVolumeAlign->Write();
  f->Close();
  
  timer->Stop();
  timer->Print();
  return;
  
}


//______________________________________________________________________________
void AliITSRealignTracks::InitAlignObjs()
{
  // Initialize the alignment objects array
  TMatrixDSym c(6);
  Double_t cov[21];
  for(Int_t i=0;i<21;i++)cov[i]=0.;
  for(Int_t i=0;i<3;i++)cov[i*(i+1)/2+i]=0.05*0.05;//Set Default Error to 500 micron for Translations 
  for(Int_t i=3;i<6;i++)cov[i*(i+1)/2+i]=0.001*0.001*180*180/3.14/3.14;//and 1 mrad for rotations (global ref. sysytem->~40 micron for SPD1,~450 micron for SSD2)

  Int_t nLayers = AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer;
  fAlignObjs = new AliAlignObj**[nLayers];
  for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
    fAlignObjs[iLayer] = new AliAlignObj*[AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer)];
    for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++) {
      UShort_t volid = AliGeomManager::LayerToVolUID(iLayer+ AliGeomManager::kFirstLayer,iModule);
      fAlignObjs[iLayer][iModule] = new AliAlignObjParams(AliGeomManager::SymName(volid),volid,0,0,0,0,0,0,kTRUE);
      fAlignObjs[iLayer][iModule]->SetCorrMatrix(cov);
      fAlignObjs[iLayer][iModule]->SetUniqueID(0);
    }
  }
}

//______________________________________________________________________________
void AliITSRealignTracks::ResetCorrModules(){
  // Initialize and reset to 0 the array with the information on correlation
  if(!fCorrModules){
    Int_t nLayers = AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer;
    fCorrModules = new Double_t*[nLayers];
    for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
      fCorrModules[iLayer] = new Double_t[AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer)];
      for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++) {
	fCorrModules[iLayer][iModule]=0.;
      }
    }
  }
  else{
    for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
      for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++) {
	fCorrModules[iLayer][iModule]=0.;
      }
    }
  }
}

//______________________________________________________________________________
Bool_t AliITSRealignTracks::InitSurveyObjs(Bool_t infinite,Double_t factor,TString filename,TString arrayName){
  //Initialize the Survey Objects. There is the possibility to set them equal to external objects
  //   stored in file filename. Otherwuse they are set equal to 0 and with default values for the variances
  //infinite: set the cov matrix to extremly large values, so that the results of a minimization
  //   are never rejected by the comparison with the survey
  //factor: multiplication factor for the variances of the cov. matrix of the survey obj.

  if(fSurveyObjs)DeleteSurveyObjs();
  Bool_t fromfile=kFALSE;
  TFile *surveyObj;
  TClonesArray *clnarray;
  if(!filename.IsNull()){
    //Initialize from file
    if(gSystem->AccessPathName(filename.Data(),kFileExists)){
      printf("Wrong Survey AlignObjs File Name \n");
      return kFALSE;
    } 
    if(arrayName.IsNull()){
      printf("Null Survey Object Name! \n");
      return kFALSE;
    }
   
    fromfile=kTRUE;
  }

  // Initialize the alignment objects array with default values
  Double_t v=1.*factor;
  if(infinite)v*=100000.;
  TMatrixDSym c(6);
  Double_t cov[21];
  for(Int_t i=0;i<21;i++)cov[i]=0.;
  for(Int_t i=0;i<3;i++)cov[i*(i+1)/2+i]=0.1*0.1*v;//Set Default Error to 1 mm  for Translation 
  for(Int_t i=3;i<6;i++)cov[i*(i+1)/2+i]=0.03*0.03*180.*180./3.14/3.14*v;//and 30 mrad (~1.7 degrees)for rotations (global ref. sysytem)
  
  Int_t nLayers = AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer;
  fSurveyObjs = new AliAlignObj**[nLayers];
  for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
    fSurveyObjs[iLayer] = new AliAlignObj*[AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer)];
    for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++) {
      fSurveyObjs[iLayer][iModule] = 0x0;
    }
  }
  
  if(fromfile){
    surveyObj=TFile::Open(filename.Data());
    if (!surveyObj || !surveyObj->IsOpen()) {
      AliError(Form("Could not open SurveyObjs file: %s !",filename.Data()));
      return kFALSE;
    }
    printf("Getting TClonesArray \n");
    clnarray=(TClonesArray*)surveyObj->Get(arrayName);
    Int_t size=clnarray->GetSize();
    UShort_t volid;
    for(Int_t ivol=0;ivol<size;ivol++){
      AliAlignObjParams *a=(AliAlignObjParams*)clnarray->At(ivol);
      volid=a->GetVolUID();
      Int_t iModule;
      AliGeomManager::ELayerID iLayer = AliGeomManager::VolUIDToLayer(volid,iModule);
      if(iLayer<=0)continue;
      if(a->GetUniqueID()==0)continue;
      printf("Updating survey for volume: %d ,layer: %d module: %d from file\n",volid,iLayer,iModule);
      fSurveyObjs[iLayer-AliGeomManager::kFirstLayer][iModule] = new AliAlignObjParams(*a);
      fSurveyObjs[iLayer-AliGeomManager::kFirstLayer][iModule]->SetUniqueID(a->GetUniqueID());
      fSurveyObjs[iLayer-AliGeomManager::kFirstLayer][iModule]->Print("");
    }
    delete clnarray;
    surveyObj->Close();
  }
 
  for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
    for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++) {
      UShort_t volid = AliGeomManager::LayerToVolUID(iLayer+ AliGeomManager::kFirstLayer,iModule);
      if(!fSurveyObjs[iLayer][iModule]){
	printf("Updating survey for volume: %d ,layer: %d module: %d with default values \n",volid,iLayer,iModule);
	fSurveyObjs[iLayer][iModule] = new AliAlignObjParams(AliGeomManager::SymName(volid),volid,0,0,0,0,0,0,kTRUE);
	fSurveyObjs[iLayer][iModule]->SetCorrMatrix(cov);
	fSurveyObjs[iLayer][iModule]->SetUniqueID(0);
      }
      
    }
  }
  
 
  return kTRUE;
}


//______________________________________________________________________________
Int_t AliITSRealignTracks::CheckWithSurvey(Double_t factor,const TArrayI *volids){
  
  // Check the parameters of the alignment objects in volids (or of all objects if volids is null) 
  // are into the boundaries set by the cov. matrix of the survey objs
  // Returns the number of objects out of boudaries
  AliAlignObj *alignObj;	
  Int_t outofsurv=0;
  UShort_t volid;
  Double_t surveycov[21],transl[3],rot[3],survtransl[3],survrot[3];
  if(volids==0x0){
    for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
      for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++){
	volid=AliGeomManager::LayerToVolUIDSafe(iLayer+AliGeomManager::kFirstLayer,iModule);
	alignObj=GetAlignObj(volid);
	alignObj->GetPars(transl,rot);
	fSurveyObjs[iLayer][iModule]->GetCovMatrix(surveycov);
	fSurveyObjs[iLayer][iModule]->GetPars(survtransl,survrot);
	if(TMath::Sqrt(TMath::Abs(surveycov[0]))*factor<TMath::Abs(transl[0]-survtransl[0])||TMath::Sqrt(TMath::Abs(surveycov[2]))*factor<TMath::Abs(transl[1]-survtransl[1])||TMath::Sqrt(TMath::Abs(surveycov[5]))*factor<TMath::Abs(transl[2]-survtransl[2])||TMath::Sqrt(TMath::Abs(surveycov[9]))*factor<TMath::Abs(rot[0]-survrot[0])||TMath::Sqrt(TMath::Abs(surveycov[14]))*factor<TMath::Abs(rot[1]-survrot[1])||TMath::Sqrt(TMath::Abs(surveycov[20]))*factor<TMath::Abs(rot[2]-survrot[2])){
	  printf("Results for module %d out of Survey: reinitializing it from survey \n",volid);
	  //	  *alignObj = *alignObjSurv;
	  alignObj->SetPars(survtransl[0],survtransl[1],survtransl[2],survrot[0],survrot[1],survrot[2]);
	  alignObj->SetUniqueID(0);
	  if(fUpdateCov)alignObj->SetCorrMatrix(surveycov);
	  outofsurv++;
	}
      }
    }
  }
  else{
    Int_t iLayer;
    Int_t iModule;
    for(Int_t j=0;j<volids->GetSize();j++){
      volid=volids->At(j);
      alignObj=GetAlignObj(volid);
      alignObj->GetPars(transl,rot);
      iLayer=(Int_t)AliGeomManager::VolUIDToLayerSafe(volid,iModule)-(Int_t)AliGeomManager::kFirstLayer;
      fSurveyObjs[iLayer][iModule]->GetCovMatrix(surveycov);
      fSurveyObjs[iLayer][iModule]->GetPars(survtransl,survrot);
      if(TMath::Sqrt(TMath::Abs(surveycov[0]))*factor<TMath::Abs(transl[0]-survtransl[0])||TMath::Sqrt(TMath::Abs(surveycov[2]))*factor<TMath::Abs(transl[1]-survtransl[1])||TMath::Sqrt(TMath::Abs(surveycov[5]))*factor<TMath::Abs(transl[2]-survtransl[2])||TMath::Sqrt(TMath::Abs(surveycov[9]))*factor<TMath::Abs(rot[0]-survrot[0])||TMath::Sqrt(TMath::Abs(surveycov[14]))*factor<TMath::Abs(rot[1]-survrot[1])||TMath::Sqrt(TMath::Abs(surveycov[20]))*factor<TMath::Abs(rot[2]-survrot[2])){
	printf("Results for module %d out of Survey: reinitializing it from survey \n",volid);
	//	  *alignObj = *alignObjSurv;
	alignObj->SetPars(survtransl[0],survtransl[1],survtransl[2],survrot[0],survrot[1],survrot[2]);
	alignObj->SetUniqueID(0);
	if(fUpdateCov)alignObj->SetCorrMatrix(surveycov);
	outofsurv++;
      }
    }
  }  
  return outofsurv;
}  

//___________________________________________________________________

void AliITSRealignTracks::ResetAlignObjs(Bool_t all,TArrayI *volids)
{
  // Reset the alignment objects in volids or all if all=kTRUE
  if(all){
    for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
      for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++)
	fAlignObjs[iLayer][iModule]->SetPars(0,0,0,0,0,0);
    }
  }
  else{
    Int_t layer;
    Int_t mod;
    for(Int_t j=0;j<volids->GetSize();j++){
      layer=(Int_t)AliGeomManager::VolUIDToLayer(volids->At(j),mod)-(Int_t)AliGeomManager::kFirstLayer;
      fAlignObjs[layer][mod]->SetPars(0,0,0,0,0,0);
    }
  }
}

//______________________________________________-
void AliITSRealignTracks::DeleteSurveyObjs()
{//destructor for the survey objs. array

  if(!fSurveyObjs)return;
  // Delete the alignment objects array
  for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
    for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++){
      if (fSurveyObjs[iLayer][iModule])	delete fSurveyObjs[iLayer][iModule];
    }
    
    if(fSurveyObjs[iLayer])delete [] fSurveyObjs[iLayer];
  }
    
  delete [] fSurveyObjs;
  fSurveyObjs = 0;
}


//______________________________________________________________________________
Bool_t AliITSRealignTracks::ReadAlignObjs(const char *alignObjFileName, const char* arrayName){

  // Read alignment object from a file: update the alignobj already present with the one in the file
  // To be replaced by a call to CDB
  
  if(gSystem->AccessPathName(alignObjFileName,kFileExists)){
    printf("Wrong AlignObjs File Name \n");
    return kFALSE;
  } 

  TFile *fRealign=TFile::Open(alignObjFileName);
  if (!fRealign || !fRealign->IsOpen()) {
    AliError(Form("Could not open Align Obj File file %s !",alignObjFileName));
    return kFALSE;
  }  
  printf("Getting TClonesArray \n");
  TClonesArray *clnarray=(TClonesArray*)fRealign->Get(arrayName);
  Int_t size=clnarray->GetSize();
  UShort_t volid;

  for(Int_t ivol=0;ivol<size;ivol++){
    AliAlignObjParams *a=(AliAlignObjParams*)clnarray->At(ivol);
    volid=a->GetVolUID();
    Int_t iModule;
    AliGeomManager::ELayerID iLayer = AliGeomManager::VolUIDToLayer(volid,iModule);
    if(iLayer<AliGeomManager::kFirstLayer||iLayer>AliGeomManager::kSSD2)continue;
    printf("Updating volume: %d ,layer: %d module: %d \n",volid,iLayer,iModule);
    *fAlignObjs[iLayer-AliGeomManager::kFirstLayer][iModule] *= *a;
  }
 
  delete clnarray;
  fRealign->Close();
  return kTRUE;
}

//_________________________________________
Bool_t AliITSRealignTracks::FirstAlignmentLayers(const Bool_t *layers,Int_t minNtracks,Int_t iterations,Bool_t fitall,const TArrayI *volidsSet){

  //Align all modules in the set of layers independently according to a sequence based on the number of tracks passing through a given module
  
  BuildIndex();
  TString name="DrawFirstAlignment_Layers";
  UShort_t voluid;
  Int_t **lastIndex;
  Int_t laymax = 0;
  Int_t modmax = 0;
  Int_t maxntr=0,nMod=0,modAligned=0,size=0;
  for(Int_t i=0;i<6;i++){
    if(layers[i]==1){
      size+=AliGeomManager::LayerSize(i+AliGeomManager::kFirstLayer);
      name+=i+1;
    }
  }

  TArrayI *volFit=new TArrayI(size);
  TArrayI *volFit2=new TArrayI(size-1);
  TArrayI *sequence=new TArrayI(size);
  TArrayI *volIn=new TArrayI(1);
  
  // Initialize the index arrays
  Int_t nLayers = AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer;
  lastIndex = new Int_t*[nLayers];
  for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
    lastIndex[iLayer] = new Int_t[AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer)];
    for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++) {
      lastIndex[iLayer][iModule] =  fLastIndex[iLayer][iModule];
      if(iLayer<=(AliGeomManager::kSSD2-AliGeomManager::kFirstLayer)&&layers[iLayer]==1){
	volFit->AddAt(AliGeomManager::LayerToVolUID(iLayer+AliGeomManager::kFirstLayer,iModule),maxntr);
	maxntr++;
      }
    }
  }
  Int_t found=0;
  maxntr=minNtracks+1;
  while (maxntr>minNtracks){
    maxntr=minNtracks;
    for (Int_t iLayer = 0; iLayer <= (AliGeomManager::kSSD2 - AliGeomManager::kFirstLayer); iLayer++) {
      if(layers[iLayer]==0)continue;
      for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++) {
	if(lastIndex[iLayer][iModule]>maxntr){
	  maxntr=lastIndex[iLayer][iModule];
	  laymax=iLayer;
	  modmax=iModule;
	}
      }
    }
    if(maxntr>minNtracks){
      voluid=AliGeomManager::LayerToVolUID(laymax+AliGeomManager::kFirstLayer,modmax);
      sequence->AddAt(voluid,nMod);
      lastIndex[laymax][modmax]=0;
      nMod++;
    }
  }

  sequence->Set(nMod);

  // Int_t imod;
  for(Int_t iter=0;iter<iterations;iter++){
    if(iter>0&&fDraw)UpdateDraw(sequence,iter,iter);
    modAligned=0;
    for(Int_t k=0;k<nMod;k++){
      TArrayI *volFit3;
      voluid=sequence->At(k);
      //      ilayer=AliGeomManager::VolUIDToLayer(voluid,imod);
      volIn->AddAt(voluid,0);
      found=0;
      if(!fitall){
	for(Int_t j=0;j<nMod;j++){
	  if(j==k){
	    found=1;
	    continue;
	  }
	  else volFit2->AddAt(sequence->At(j),j-found);
	}
	volFit2->Set(nMod-1);
      }
      else{
	for(Int_t j=0;j<volFit->GetSize();j++){
	  if(volFit->At(j)!=volIn->At(0))volFit2->AddAt(volFit->At(j),j-found);
	  else found=1;
	}
      }
      
      if(volidsSet){
	volFit3=IntersectVolArray(volidsSet,volFit2);
      }
      else volFit3=new TArrayI(*volFit2);
      
      
      if(AlignVolumesITS(volIn,volFit3,AliGeomManager::kSPD1,AliGeomManager::kTPC1,2))modAligned++;
      delete volFit3;
    
    }
  }
  Int_t noutofsurv=CheckWithSurvey(2.,sequence);
  printf("%d modules into the sequence \n %d modules re-aligned \n %d modules moved far away from survey (-> reset) \n",nMod,modAligned,noutofsurv);
  name.Append("_iter");
  name+=iterations;
  name.Append(".root");
  if(fDraw)WriteHists(name.Data());
  delete volFit;
  delete volFit2;
  delete sequence;
  for(Int_t m=0;m<nLayers;m++){
    delete [] lastIndex[m];
  }
  delete [] lastIndex;
  return kTRUE;
  
}

//__________________________________________
Bool_t AliITSRealignTracks::FirstAlignmentSPD(Int_t minNtracks,Int_t iterations,Bool_t fitall,const TArrayI *volidsSet){

  //OBSOLETE METHOD: perform a stand-alone realignment of the SPD modules
  //                 based on a sequence constructed accordingly to the number of tracks
  //                 passing through each module
  
  BuildIndex();
   
  UShort_t voluid;
  Int_t **lastIndex;
  Int_t laymax = 0;
  Int_t modmax = 0;
  Int_t maxntr=0,nMod=0,modAligned=0;
  TArrayI *volFit=new TArrayI(AliGeomManager::LayerSize(1)+AliGeomManager::LayerSize(2));
  TArrayI *volFit2=new TArrayI(AliGeomManager::LayerSize(1)+AliGeomManager::LayerSize(2)-1);
  TArrayI *sequence=new TArrayI(AliGeomManager::LayerSize(1)+AliGeomManager::LayerSize(2));
  TArrayI *volIn=new TArrayI(1);
 
  // Initialize the index arrays
  Int_t nLayers = AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer;
  lastIndex = new Int_t*[nLayers];
  for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
    lastIndex[iLayer] = new Int_t[AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer)];
    for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++) {
      lastIndex[iLayer][iModule] =  fLastIndex[iLayer][iModule];
      if(iLayer+AliGeomManager::kFirstLayer<=AliGeomManager::kSPD2){
	volFit->AddAt(AliGeomManager::LayerToVolUID(iLayer+AliGeomManager::kFirstLayer,iModule),maxntr);
	maxntr++;
      }
    }
  }
  Int_t found=0;
  maxntr=minNtracks+1;
  while (maxntr>minNtracks){
    maxntr=minNtracks;
    for (Int_t iLayer = 0; iLayer <= (AliGeomManager::kSPD2 - AliGeomManager::kFirstLayer); iLayer++) {
      for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++) {
	if(lastIndex[iLayer][iModule]>maxntr){
	  laymax=iLayer;
	  modmax=iModule;
	  maxntr=lastIndex[iLayer][iModule];
	}
      }
    }
    if(maxntr>minNtracks){
      voluid=AliGeomManager::LayerToVolUID(laymax+AliGeomManager::kFirstLayer,modmax);
      sequence->AddAt(voluid,nMod);
      lastIndex[laymax][modmax]=0;
      nMod++;
      volIn->AddAt(voluid,0);
    }
  }
  sequence->Set(nMod);
  
  for(Int_t iter=0;iter<iterations;iter++){ 
    modAligned=0;
    for(Int_t k=0;k<nMod;k++){
      TArrayI *volFit3;
      voluid=sequence->At(k);
      //      ilayer=AliGeomManager::VolUIDToLayer(voluid,imod);
      volIn->AddAt(voluid,0);
      found=0;
      if(!fitall){
	for(Int_t j=0;j<nMod;j++){
	  if(j==k){
	    found=1;
	    continue;
	  }
	  else volFit2->AddAt(sequence->At(j),j-found);
	}
	volFit2->Set(nMod-1);
      }
      else{
	for(Int_t j=0;j<volFit->GetSize();j++){
	  if(volFit->At(j)!=volIn->At(0))volFit2->AddAt(volFit->At(j),j-found);
	  else found=1;
	}
      }
      
      if(volidsSet){
	volFit3=IntersectVolArray(volidsSet,volFit2);
      }
      else volFit3=new TArrayI(*volFit2);
      
      
      if(AlignVolumesITS(volIn,volFit3,AliGeomManager::kSPD1,AliGeomManager::kSDD1,2))modAligned++;
      delete volFit3;
      //      if(volidsSet)delete volFit3;
    }
  }
  Int_t noutofsurv=CheckWithSurvey(2.,sequence);
  printf("%d modules into the sequence \n %d modules re-aligned \n %d modules moved far away from survey (-> reset) \n",nMod,modAligned,noutofsurv);
  delete volFit;
  delete volFit2;
  delete sequence;
  for(Int_t m=0;m<nLayers;m++){
    delete [] lastIndex[m];
  }
  delete [] lastIndex;

  return kTRUE;
}


//__________________________________
Bool_t AliITSRealignTracks::SPDmodulesAlignToSSD(Int_t minNtracks,Int_t iterations){
  //Align each SPD module with at least minNtracks passing through it with respect to SSD
  //The selection based on the minimum number of tracks is a fast one:
  // the number considere here doesn't coincide with the tracks effectively used then in the
  // minimization, it's just the total number of tracks in the sample passing through the module
  // The procedure is iterated "iterations" times
  Int_t volSSD[6]={0,0,0,0,1,1};
  TArrayI *volOuter=GetLayersVolUID(volSSD);
  TArrayI *voluid=new TArrayI(1);
  for(Int_t iter=0;iter<iterations;iter++){
    //SPD1
    for(Int_t imod=0;imod<AliGeomManager::LayerSize(AliGeomManager::kSPD1);imod++){    if(GetLastIndex(AliGeomManager::kSPD1-AliGeomManager::kFirstLayer,imod)<minNtracks){
      printf("Not enough tracks for module: lay %d mod %d \n",1,imod );
      continue;
    }
    voluid->AddAt(AliGeomManager::LayerToVolUID(AliGeomManager::kSPD1,imod),0);
    AlignVolumesITS(voluid,volOuter,AliGeomManager::kSSD1,AliGeomManager::kSSD2,2);  
    }
    //SPD2
    for(Int_t imod=0;imod<AliGeomManager::LayerSize(AliGeomManager::kSPD2);imod++){ 
      if(GetLastIndex(AliGeomManager::kSPD2-AliGeomManager::kFirstLayer,imod)<minNtracks){
	printf("Not enough tracks for module: lay %d mod %d \n",2,imod );
	continue;
      }
      voluid->AddAt(AliGeomManager::LayerToVolUID(AliGeomManager::kSPD2,imod),0);
      AlignVolumesITS(voluid,volOuter,AliGeomManager::kSSD1,AliGeomManager::kSSD2,2);  
    }
  }
  return kTRUE;
}

//______________________________________________________________________________
Bool_t AliITSRealignTracks::AlignVolumesITS(const TArrayI *volids, const TArrayI *volidsfit,
				     AliGeomManager::ELayerID layerRangeMin,
				     AliGeomManager::ELayerID layerRangeMax,
				     Int_t iterations){
  
  // Align a set of detector volumes.
  // Tracks are fitted only within
  // the range defined by the user
  // (by layerRangeMin and layerRangeMax)
  // or within the set of volidsfit
  // Repeat the procedure 'iterations' times

  Int_t nVolIds = volids->GetSize();
  if (nVolIds == 0) {
    AliError("Volume IDs array is empty!");
    return kFALSE;
  }
  Bool_t correlated=kFALSE;
  Double_t surveycov[21],transl[3],rot[3],survtransl[3],survrot[3];
  Double_t frac;

  TGeoHMatrix hM;
  Double_t smearing,rotorig[9],normplanevect[3]={0.,0.,0.},normplanevect2[3]={0.,0.,0.};  
  Double_t *deltarot;
  TMatrixDSym covmatrx(6);
  AliAlignObj *modAlign;

  // Load only the tracks with at least one
  // space point in the set of volume (volids)
  BuildIndex();
  AliTrackPointArray **points;
  Bool_t failed=kFALSE;
  Int_t pointsdim=0,skipped=0;
  // Start the iterations
  while (iterations > 0){
    normplanevect2[0]=0.;
    normplanevect2[1]=0.;
    normplanevect2[2]=0.;
    if(fLimitCorr>0.){
      ResetCorrModules();
      skipped=0;
    }
    Int_t nArrays = LoadPoints(volids, points,pointsdim);
    
    if (nArrays < fmintracks||nArrays<=0){
      failed=kTRUE;
      printf("Not enough tracks to try minimization: volUID %d and following in volids \n", volids->At(0));
      UnloadPoints(pointsdim, points);
      break;
    }
    frac=1./(Double_t)nArrays;
    AliTrackResiduals *minimizer = CreateMinimizer();
    minimizer->SetNTracks(nArrays);
    minimizer->InitAlignObj();
    AliTrackFitter *fitter = CreateFitter();

    //Here prepare to set the plane for GetPCArot
                                                       //    if(volids->GetSize()==1){//TEMPORARY: to be improved
    AliGeomManager::GetOrigRotation(volids->At(0),rotorig);
    if((Int_t)AliGeomManager::VolUIDToLayer(volids->At(0))==1){//TEMPORARY: to be improved  
      normplanevect[0]=-rotorig[1];
      normplanevect[1]=-rotorig[4];
      normplanevect[2]=0.;
    }
    else{
	  normplanevect[0]=rotorig[1];
	  normplanevect[1]=rotorig[4];
	  normplanevect[2]=0.;
    }
    
    //    phiglob=TMath::ATan2(normplanevect[1],normplanevect[0]);
    
    modAlign=GetAlignObj(volids->At(0));
    modAlign->GetMatrix(hM);
    deltarot=hM.GetRotationMatrix();
    for(Int_t j=0;j<3;j++){
      for(Int_t i=0;i<3;i++){
	normplanevect2[j]+=deltarot[j*3+i]*normplanevect[i];
      }
      // printf("Here the difference: norm1[%d]=%f  norm2[%d]=%f \n",j,normplanevect[j],j,normplanevect2[j]);
    }
    
    if(fVarySigmaY){
      if(modAlign->GetUniqueID()==0)smearing=fsigmaY;
      else{
	modAlign->GetCovMatrix(covmatrx);
	smearing=5.*5.*(covmatrx(0,0)+covmatrx(1,1)+covmatrx(2,2)+10.*10.*covmatrx(3,3)+10.*10.*covmatrx(4,4)+10.*10.*covmatrx(5,5))/6.; 
	//This is a sort of average: the trace with the variances of the angles 
	//weighted with 10 cm divided per 6 and the result multiplied per 25 
	// (the sqrt would be 5 times a sort of "mean sigma" )
	//	 
	  }
    }
    else smearing=fsigmaY;
    printf("This is the sigmaY value: %f \n",smearing);
    // the plane will be set into the loop on tracks
    

    for (Int_t iArray = 0; iArray < nArrays; iArray++) {
      if (!points[iArray]) continue;
      points[iArray]->Sort(kTRUE);
      fitter->SetTrackPointArray(points[iArray], kFALSE);
      // printf("Here normplane vect: %f \n",normplanevect2[1]); //TO BE REPLACED BY      fitter->SetNormPlaneVect(normplanevect2);
      if (fitter->Fit(volids,volidsfit,layerRangeMin,layerRangeMax) == kFALSE) continue;
      
       if(fLimitCorr>0.){
	correlated=kFALSE;
	AliTrackPoint p;
	Int_t layer,module;
	TArrayI *volparray=new TArrayI(points[iArray]->GetNPoints());
	for(Int_t point=0;point<points[iArray]->GetNPoints();point++){
	  points[iArray]->GetPoint(p,point);
	  volparray->AddAt(p.GetVolumeID(),point);
	}
	TArrayI	*volpArray=ExcludeVolidsFromVolidsArray(volids,volparray);
	for(Int_t point=0;point<volpArray->GetSize();point++){
	  layer=(Int_t)AliGeomManager::VolUIDToLayerSafe(volpArray->At(point),module);  
	  if(fCorrModules[layer-AliGeomManager::kFirstLayer][module]>fLimitCorr){
	    correlated=kTRUE;
	    //	    printf("volid %d, iarray = %d : skipping %d for Volume: %d \n",volids->At(0),iArray,skipped,volpArray->At(point));
	    skipped++;
	    break;
	  }
	}
	if(!correlated){
	  for(Int_t point=0;point<volpArray->GetSize();point++){
	    layer=(Int_t)AliGeomManager::VolUIDToLayerSafe(volpArray->At(point),module);  
	    //printf("Number of common tracks: %d \n",fCorrModules[layer-AliGeomManager::kFirstLayer][module]);
	    fCorrModules[layer-AliGeomManager::kFirstLayer][module]+=frac;
	    delete volparray;
	    delete volpArray;
	  }
	}
       	else { 
	  delete volparray;
	  delete volpArray;
	  continue;
	}
       }
       
      AliTrackPointArray *pVolId,*pTrack;
      fitter->GetTrackResiduals(pVolId,pTrack);
      minimizer->AddTrackPointArrays(pVolId,pTrack);
    }
    
    printf("Number of tracks considered: %d \n",nArrays);
    frac=(Double_t)skipped/(Double_t)nArrays;
    printf("Number of tracks skipped cause of correlation: %d (fraction: %f )\n",skipped,frac);
    
    Int_t ntracks=minimizer->GetNFilledTracks();
    frac=(Double_t)ntracks/(Double_t)nArrays;
    printf("Number of tracks into the minimizer: %d (fraction: %f )\n",ntracks,frac);
    if(ntracks<=fmintracks){
      printf("Not enough good tracks found: could not find parameter for volume %d (and following in volids)\n",volids->At(0));
      UnloadPoints(pointsdim, points);
      failed=kTRUE;
      break;
    }
    
    failed=(!minimizer->Minimize());
    
    // Update the alignment object(s)
    if (fDoUpdate) for (Int_t iVolId = 0; iVolId < nVolIds; iVolId++) {
      UShort_t volid = (*volids)[iVolId];
      if(!failed){
	Int_t iModule;
	AliGeomManager::ELayerID iLayer = AliGeomManager::VolUIDToLayer(volid,iModule);
	AliAlignObj *alignObj = fAlignObjs[iLayer-AliGeomManager::kFirstLayer][iModule];  

	//Check the last minimization is not too large
	minimizer->GetAlignObj()->GetPars(transl,rot);     
	fSurveyObjs[iLayer-AliGeomManager::kFirstLayer][iModule]->GetCovMatrix(surveycov);
	fSurveyObjs[iLayer-AliGeomManager::kFirstLayer][iModule]->GetPars(survtransl,survrot);
	if(TMath::Sqrt(TMath::Abs(surveycov[0]))*2<TMath::Abs(transl[0]-survtransl[0])||TMath::Sqrt(TMath::Abs(surveycov[2]))*2<TMath::Abs(transl[1]-survtransl[1])||TMath::Sqrt(TMath::Abs(surveycov[5]))*2<TMath::Abs(transl[2]-survtransl[2])||TMath::Sqrt(TMath::Abs(surveycov[9]))*2<TMath::Abs(rot[0]-survrot[0])||TMath::Sqrt(TMath::Abs(surveycov[14]))*2<TMath::Abs(rot[1]-survrot[1])||TMath::Sqrt(TMath::Abs(surveycov[20]))*2<TMath::Abs(rot[2]-survrot[2])){
	  printf("Results for module %d too large: can't update them \n",volid);
	  alignObj->SetUniqueID(2);
	  if(iterations==1){
	    failed=kTRUE;
	  }
	}
	else{
	  if(fUpdateCov){
	    *alignObj *= *minimizer->GetAlignObj();
	    alignObj->SetUniqueID(1);
	  }
	  else{
	    alignObj->GetCovMatrix(covmatrx);
	    *alignObj *= *minimizer->GetAlignObj();
	    alignObj->SetCorrMatrix(covmatrx);
	    alignObj->SetUniqueID(1);
	  }
	  
	  /*alignObj->GetPars(transl,rot);
	  
	  if(TMath::Sqrt(TMath::Abs(surveycov[0]))*20<TMath::Abs(transl[0])||TMath::Sqrt(TMath::Abs(surveycov[2]))*20<TMath::Abs(transl[1])||TMath::Sqrt(TMath::Abs(surveycov[5]))*20<TMath::Abs(transl[2])||TMath::Sqrt(TMath::Abs(surveycov[9]))*20<TMath::Abs(rot[0])||TMath::Sqrt(TMath::Abs(surveycov[14]))*20<TMath::Abs(rot[1])||TMath::Sqrt(TMath::Abs(surveycov[20]))*20<TMath::Abs(rot[2])){
	  printf("Results for module %d out of Survey: reinitializing it from survey \n",volid);
	    //	  *alignObj = *alignObjSurv;
	    alignObj->SetPars(0.,0.,0.,0.,0.,0.);
	    alignObj->SetUniqueID(0);
	    if(fUpdateCov)alignObj->SetCorrMatrix(surveycov);
	    if(iterations==1){
	    failed=kTRUE;
	    }
	    }*/
	}
	if(iterations==1)alignObj->Print("");
      }
      else {
	printf("Minimization failed: cannot update AlignObj for volume: %d \n",volid);
      }
    }
    UnloadPoints(pointsdim,points);
    if(failed)break;
    minimizer->InitAlignObj();
    iterations--;
  }
  
  printf("\n \n");

  return (!failed);
}



//______________________________________________
Bool_t AliITSRealignTracks::AlignSPDBarrel(Int_t iterations){
  //Align the SPD barrel "iterations" times
  
  Int_t size=0,size2=0;
  Int_t layers[6]={1,1,0,0,0,0};
  for(Int_t k=1;k<=2;k++){
    size+=AliGeomManager::LayerSize(k);
  }
  for(Int_t k=3;k<=6;k++){
    size2+=AliGeomManager::LayerSize(k);
    printf("size: %d \n",size2);
  }
  
  printf("Aligning SPDBarrel: nmodules: %d \n",size);  
  printf("Fitting modules: %d \n",size2);

  TArrayI *volIDs=GetLayersVolUID(layers);
  layers[0]=0;
  layers[1]=0;
  layers[2]=1;
  layers[3]=1;
  layers[4]=1;
  layers[5]=1;
  TArrayI *volIDsFit=GetLayersVolUID(layers);   

  AlignVolumesITS(volIDs,volIDsFit,AliGeomManager::kSDD1,AliGeomManager::kTPC1,iterations);
  
  return kTRUE; 
}

//______________________
Bool_t AliITSRealignTracks::AlignSPDHalfBarrel(Int_t method,Int_t iterations){
  //Align a SPD Half barrel "iterations" times
  //method 0 : align SPDHalfBarrel Up without using the points on SPD Half Barrel down in the fits (only outer layers)
  //method 1 : align SPDHalfBarrel Down without using the points on SPD Half Barrel up in the fits (only outer layers)
  //method 10 : align SPDHalfBarrel Up using also the points on SPD Half Barrel down in the fits (and points on outer layers)
  //method 11 : align SPDHalfBarrel Down using also the points on SPD Half Barrel up in the fits (and points on outer layers)

  Int_t size=0,size2=0;
  Int_t layers[6]={0,0,1,1,1,1};
  Int_t sectorsUp[10]={1,1,1,1,1,0,0,0,0,0}; 
  Int_t sectorsDown[10]={0,0,0,0,0,1,1,1,1,1}; 
  
  TString updownstr;
  if(method==0)updownstr="UpNoDown";
  else if (method==1)updownstr="DownNoUp";
  else if (method==10)updownstr="UpWithDown";
  else if (method==11)updownstr="DownWithUp";
  else {
    AliWarning("Wrong AlignSPDHalfBarrel method selected ");
    return kFALSE;
  }
  
  for(Int_t i=1;i<=2;i++){
    size+=AliGeomManager::LayerSize(i);
  }
  
  for(Int_t i=3;i<=6;i++){
    size2+=AliGeomManager::LayerSize(i);
  }
  
  size=size/2;
  if(method==10||method==11)size2+=size;
  
  printf("Aligning  SPDHalfBarrel %s: nmodules: %d \n",updownstr.Data(),size);
  printf("Fitting modules: %d \n",size2);
  TArrayI *volIDsFit2;
  TArrayI *volids = NULL;
  TArrayI *volIDsFit=GetLayersVolUID(layers);
  if(method==0||method==10)volids=GetSPDSectorsVolids(sectorsUp);
  if(method==1||method==11)volids=GetSPDSectorsVolids(sectorsDown);

  if(method==10)volIDsFit2=JoinVolArrays(GetSPDSectorsVolids(sectorsDown),volIDsFit);
  else if(method==11)volIDsFit2=JoinVolArrays(GetSPDSectorsVolids(sectorsUp),volIDsFit);
  else volIDsFit2=volIDsFit;
  
  AlignVolumesITS(volids,volIDsFit2,AliGeomManager::kSPD1,AliGeomManager::kSSD2,iterations);
  
  return kTRUE; 
}


//______________________________________________________
Bool_t AliITSRealignTracks::AlignLayer(Int_t layer,Int_t iterations){
  //Align the layer "layer" iterations times

  Int_t size=0,size2=0;
  Int_t layers[6]={0,0,0,0,0,0};
  layers[layer-1]=1;
  TString layerstr[6]={"SPD1","SPD2","SDD1","SDD2","SSD1","SSD2"};
  for(Int_t k=1;k<=6;k++){
    if(k!=layer)size2+=AliGeomManager::LayerSize(k);
  }
  size=AliGeomManager::LayerSize(layer);
  
  printf("Aligning layer %s, nmodules %d ,fitted modules %d \n",layerstr[layer-1].Data(),size,size2);
  
  
  TArrayI *volIDs=GetLayersVolUID(layers);
  layers[0]=1;
  layers[1]=1;
  layers[2]=1;
  layers[3]=1;
  layers[4]=1;
  layers[5]=1;
  layers[layer]=0;
  TArrayI *volIDsFit=GetLayersVolUID(layers);   
  
  AlignVolumesITS(volIDs,volIDsFit,AliGeomManager::kSDD1,AliGeomManager::kSSD2,iterations);
  
  return kTRUE; 
}

//___________________________________________

Bool_t AliITSRealignTracks::AlignLayersToLayers(const Int_t *layer,Int_t iterations){

  //Align the set of layers A with respect to the set of layers B iterations time.
  //The two sets A and B are defined into *layer==layer[6] the following way:
  //   layer[i]=0 the layer is skipped both in the fits than in the minimization
  //   layer[i]=1 the layer is skipped in the fits and considered in the minimization
  //   layer[i]=2 the layer is considered in the fits and skipped in the minimization
  //   layer[i]=3 the layer is considered both in the fits and in the minimization
  
  UShort_t volid;
  Int_t size=0,size2=0,j=0,k=0;
  Int_t iLayer;
  TString layerstr[6]={"SPD1","SPD2","SDD1","SDD2","SSD1","SSD2"};
  TString command="",str;
  for(Int_t i=1;i<=6;i++){
    if(layer[i-1]==1||layer[i-1]==3){
      size+=AliGeomManager::LayerSize(i);
      command.Append(" ");
      command.Append(layerstr[i-1]);
    }
    if(layer[i-1]==2||layer[i-1]==3){
      size2+=AliGeomManager::LayerSize(i);
      str.Append(" ");
      str.Append(layerstr[i-1]);
    }
  }
  
  printf("Aligning layers %s To layers %s, nmodules %d ,fitted modules %d \n",command.Data(),str.Data(),size,size2);
  
  
  TArrayI volIDs(size);
  TArrayI volIDsFit(size2);   
  
  for (iLayer=(Int_t)AliGeomManager::kSPD1;iLayer<(Int_t)AliGeomManager::kTPC1;iLayer++){
    if(layer[iLayer-AliGeomManager::kFirstLayer]==0)continue;
    if(layer[iLayer-AliGeomManager::kFirstLayer]==1){
      for (Int_t iModule2=0;iModule2<AliGeomManager::LayerSize(iLayer);iModule2++){
	volid = AliGeomManager::LayerToVolUID(iLayer,iModule2);
	volIDs.AddAt(volid,j);
	j++;
      }
    }
    else if(layer[iLayer-AliGeomManager::kFirstLayer]==2){
      for (Int_t iModule2=0;iModule2<AliGeomManager::LayerSize(iLayer);iModule2++){
	volid = AliGeomManager::LayerToVolUID(iLayer,iModule2);
	volIDsFit.AddAt(volid,k);
	k++;
      }
    }
    else if(layer[iLayer-AliGeomManager::kFirstLayer]==3){
      for (Int_t iModule2=0;iModule2<AliGeomManager::LayerSize(iLayer);iModule2++){
	volid = AliGeomManager::LayerToVolUID(iLayer,iModule2);
	volIDs.AddAt(volid,j);
	j++;
	volIDsFit.AddAt(volid,k);
	k++;
      }
    }
  }
  
  AlignVolumesITS(&volIDs,&volIDsFit,AliGeomManager::kSPD1,AliGeomManager::kSSD2,iterations);
   
  return kTRUE; 
}

//______________________________________________

Bool_t AliITSRealignTracks::AlignSPDSectorToOuterLayers(Int_t sector,Int_t iterations){
  //Align the SPD sector "sector" with respect to outer layers iterations times

  
  Int_t layers[6]={0,0,1,1,1,1};
  Bool_t spd=kFALSE;
  Int_t sectorsIN[10]={0,0,0,0,0,0,0,0,0,0};
  Int_t sectorsFit[10]={1,1,1,1,1,1,1,1,1,1};
  
  if(sector<0){
    sector=-sector;
    spd=kTRUE;
  }
  sectorsIN[sector]=1;
  sectorsFit[sector]=0;
  TArrayI *volIDs=GetSPDSectorsVolids(sectorsIN);
  TArrayI *volIDsFit;
  if(spd){
    volIDsFit=JoinVolArrays(GetSPDSectorsVolids(sectorsFit),GetLayersVolUID(layers));
  }
  else volIDsFit=GetLayersVolUID(layers);
  
  printf("Aligning SPD sector %d: nmodules: %d \n",sector,volIDs->GetSize());  
  printf("Fitting modules: %d \n",volIDsFit->GetSize());
  
  AlignVolumesITS(volIDs,volIDsFit,AliGeomManager::kSPD1,AliGeomManager::kSPD2,iterations);
  
  return kTRUE; 
}

//______________________________________________
Bool_t AliITSRealignTracks::AlignSPDSectorWithSectors(Int_t sector,Int_t iterations){
  //Align the SPD sector "sector" with respect to the other SPD sectors iterations times

  Int_t sectorsIN[10]={0,0,0,0,0,0,0,0,0,0};
  Int_t sectorsFit[10]={1,1,1,1,1,1,1,1,1,1};

  sectorsIN[sector]=1;
  sectorsFit[sector]=0;
  TArrayI *volIDs=GetSPDSectorsVolids(sectorsIN);
  TArrayI *volIDsFit=GetSPDSectorsVolids(sectorsFit);;   
  
  printf("Aligning SPD sector %d: nmodules: %d \n",sector,volIDs->GetSize());  
  printf("Fitting modules: %d \n",volIDsFit->GetSize());
 

  AlignVolumesITS(volIDs,volIDsFit,AliGeomManager::kSPD1,AliGeomManager::kSDD1,iterations);
  
  return kTRUE; 
}



//___________________________________________________
Bool_t AliITSRealignTracks::AlignSPDSectorsWithSectors(const Int_t *sectorsIN,const Int_t *sectorsFit,Int_t iterations){
  //Align SPD sectors defined in "sectorsIN" with respect to 
  //SPD sectors defined in "sectorsFit" iterations time

  TArrayI *volIDs=GetSPDSectorsVolids(sectorsIN);
  TArrayI *volIDsFit=GetSPDSectorsVolids(sectorsFit);;   
  
  printf("Aligning SPD sectors: modules: %d \n",volIDs->GetSize());  
  printf("Fitting modules: %d \n",volIDsFit->GetSize());
  
  
  
  return AlignVolumesITS(volIDs,volIDsFit,AliGeomManager::kSPD1,AliGeomManager::kSDD1,iterations);; 
}

//___________________________________________________
Bool_t AliITSRealignTracks::AlignSPDStaves(const Int_t *staves,const Int_t *sectorsIN,const Int_t *sectorsFit,Int_t iterations){
  //Align SPD staves defined by staves and sectorsIN with respect to sectorsFit volumes iterations times

  TArrayI *volIDs=GetSPDStavesVolids(sectorsIN,staves);
  TArrayI *volIDsFit=GetSPDSectorsVolids(sectorsFit);   
  
  if(volIDs->GetSize()==0){
    printf("EMPTY ARRAY !! \n");
    return kFALSE;
  }
  printf("Aligning SPD staves: modules: %d \n",volIDs->GetSize());  
  printf("Fitting modules: %d \n",volIDsFit->GetSize());

  TArrayI *volIDsFit2=ExcludeVolidsFromVolidsArray(volIDs,volIDsFit);
  return  AlignVolumesITS(volIDs,volIDsFit2,AliGeomManager::kSPD1,AliGeomManager::kSSD1,iterations); 
}


//___________________________________________

Bool_t AliITSRealignTracks::AlignLayerToSPDHalfBarrel(Int_t layer,Int_t updown,Int_t iterations){
  //Align the layer "layer" with respect to SPD Half Barrel Up (updowon=0) 
  //or Down (updown=1) iterations times
  


  Int_t sectorsDown[10]={0,0,0,0,0,1,1,1,1,1};
  Int_t sectorsUp[10]={1,1,1,1,1,0,0,0,0,0};
  TString layerstr[6]={"SPD1","SPD2","SDD1","SDD2","SSD1","SSD2"};  
  TArrayI *volIDsFit;
  Int_t layers[6]={0,0,0,0,0,0};
  layers[layer-1]=1;
  Int_t size=AliGeomManager::LayerSize(layer);
  TArrayI *volIDs=GetLayersVolUID(layers);

  if(updown==0){
    volIDsFit=GetSPDSectorsVolids(sectorsUp);   
    printf("Aligning layer %s, nmodules %d ,to half barrel Up \n",layerstr[layer-1].Data(),size);
  }
  else if(updown==1){
    volIDsFit=GetSPDSectorsVolids(sectorsDown);
    printf("Aligning layer %s, nmodules %d ,to half barrel Down \n",layerstr[layer-1].Data(),size);
  }
  else {
    printf("Wrong Half Barrel selection! \n");
    return kFALSE;
  }
 
  AlignVolumesITS(volIDs,volIDsFit,AliGeomManager::kSPD1,AliGeomManager::kSSD2,iterations);
  
  return kTRUE; 
}

//___________________________________________

Bool_t AliITSRealignTracks::AlignLayerToSector(Int_t layer,Int_t sector,Int_t iterations){
  //Align the layer "layer" with respect to SPD sector "sector" iterations times

  if(sector>9){
    printf("Wrong Sector selection! \n");
    return kFALSE;
  }
  Int_t sectors[10]={0,0,0,0,0,0,0,0,0,0};
  sectors[sector]=1;
  TString layerstr[6]={"SPD1","SPD2","SDD1","SDD2","SSD1","SSD2"};  
  TArrayI *volIDsFit;
  Int_t layers[6]={0,0,0,0,0,0};
  layers[layer-1]=1;
  TArrayI *volIDs=GetLayersVolUID(layers);
  Int_t size=AliGeomManager::LayerSize(layer); 
  
 
  volIDsFit=GetSPDSectorsVolids(sectors);   
  printf("Aligning layer %s, nmodules %d ,to half barrel Up \n",layerstr[layer-1].Data(),size);
  
  AlignVolumesITS(volIDs,volIDsFit,AliGeomManager::kSPD1,AliGeomManager::kSSD2,iterations);
  
  return kTRUE; 
}

//_______________________________________________

Bool_t AliITSRealignTracks::AlignSPDHalfBarrelToHalfBarrel(Int_t updown,Int_t iterations){
  //Align the SPD Half Barrel Up[Down] with respect to HB Down[Up] iterations time if
  //updown=0[1]

  
  Int_t sectorsDown[10]={0,0,0,0,0,1,1,1,1,1};
  Int_t sectorsUp[10]={1,1,1,1,1,0,0,0,0,0};
  
  TArrayI *volIDsUp=GetSPDSectorsVolids(sectorsUp);
  TArrayI *volIDsDown=GetSPDSectorsVolids(sectorsDown);   
  
  if(updown==0){
    printf("Aligning SPD HalfBarrel up to half Barrel down : nmodules: %d \n",volIDsUp->GetSize());  
    printf("Fitting modules: %d \n",volIDsDown->GetSize());
    AlignVolumesITS(volIDsUp,volIDsDown,AliGeomManager::kSPD1,AliGeomManager::kSPD2,iterations);
  }
  else if(updown==1){
    printf("Aligning SPD HalfBarrel down to half Barrel Up : nmodules: %d \n",volIDsDown->GetSize());  
    printf("Fitting modules: %d \n",volIDsUp->GetSize()); 
    AlignVolumesITS(volIDsDown,volIDsUp,AliGeomManager::kSPD1,AliGeomManager::kSPD2,iterations);
  }
  else {
    printf("Wrong Half Barrel selection! \n");
    return kFALSE;
  }
  
  return kTRUE; 
}


//_______________________
Bool_t AliITSRealignTracks::AlignSPDHalfBarrelToSectorRef(Int_t sector,Int_t iterations){
  //Align the SPD Half Barrel Down with respect to sector "sector" iterations times

  Int_t sectorsIN[10]={0,0,0,0,0,1,1,1,1,1};
  Int_t sectorsFit[10]={0,0,0,0,0,0,0,0,0,0};

  sectorsFit[sector]=1;

  TArrayI *volIDs=GetSPDSectorsVolids(sectorsIN);
  TArrayI *volIDsFit=GetSPDSectorsVolids(sectorsFit);   
  
  printf("Aligning SPD HalfBarrel to sector 0 %d: nmodules: %d \n",sector,volIDs->GetSize());  
  printf("Fitting modules: %d \n",volIDsFit->GetSize());
 

  AlignVolumesITS(volIDs,volIDsFit,AliGeomManager::kSPD1,AliGeomManager::kSPD2,iterations);

 
  return kTRUE; 
}
//_________________________________________
Bool_t AliITSRealignTracks::AlignSPD1SectorRef(Int_t sector,Int_t iterations){
  //OBSOLETE METHOD: Align the SPD1 modules of sector "sector" with respect 
  // to the other SPD volumes iterations times

  Int_t sectorsIN[10]={0,0,0,0,0,0,0,0,0,0};
  Int_t sectorsFit[10]={1,1,1,1,1,1,1,1,1,1};
  sectorsIN[sector]=1;
  sectorsFit[sector]=0;
  TArrayI *volIDs=GetSPDSectorsVolids(sectorsIN);
  TArrayI *volIDsFit=GetSPDSectorsVolids(sectorsFit);   
  Int_t size=volIDs->GetSize();
  Int_t size2=volIDsFit->GetSize();
  UShort_t volID;
  Int_t k=0;

  TArrayI *volIDsSPD1=new TArrayI(size-8);
  TArrayI *volIDsFit2=new TArrayI(size2+8);
  
  for(Int_t j=0;j<size;j++){
    volID=volIDs->At(j);
    if(AliGeomManager::VolUIDToLayer(volID)==AliGeomManager::kSPD1){
      volIDsSPD1->AddAt(volID,size2+k);
      k++;
    }
    else volIDsFit2->AddAt(volID,j-k);
  }
  
  
  for(Int_t j=0;j<size2;j++){
    volID=volIDsFit->At(j);
    volIDsFit2->AddAt(volID,size-k+j);
  }
  
  printf("Aligning SPD Sector %d: nmodules: %d \n",sector,volIDsSPD1->GetSize());  
  printf("Fitting modules: %d \n",volIDsFit2->GetSize());
  
  AlignVolumesITS(volIDsSPD1,volIDsFit2,AliGeomManager::kSPD1,AliGeomManager::kSPD2,iterations);
  
  return kTRUE; 
}

//_____________________________________________

AliAlignObjParams* AliITSRealignTracks::MediateAlignObj(const TArrayI *volIDs,Int_t lastVolid){
  //TEMPORARY METHOD: perform an average of the values of the parameters of the AlignObjs 
  // defined by the array volIDs up to lastVolid position in this array
  //The aim of such a method is to look for collective movement of a given set of modules

  //  UShort_t volid;

  TGeoHMatrix hm;
  Double_t *rot,*transl;
  Double_t rotSum[9],translSum[3]={0.,0.,0.};
  for(Int_t k=0;k<8;k++)rotSum[k]=0.;


  for(Int_t ivol=0;ivol<lastVolid;ivol++){
    //    volid=volIDs->At(ivol);
  
    GetAlignObj(volIDs->At(ivol))->GetMatrix(hm); 
   
    rot=hm.GetRotationMatrix();
    transl=hm.GetTranslation();
   
    for(Int_t j=0;j<9;j++)rotSum[j]+=rot[j];
    for(Int_t jt=0;jt<3;jt++)translSum[jt]+=transl[jt];
  }
  if(lastVolid!=0){
    for(Int_t j=0;j<9;j++)rotSum[j]=rotSum[j]/lastVolid;
    for(Int_t jt=0;jt<3;jt++)translSum[jt]=translSum[jt]/lastVolid;
  }
  else printf("Try to mediate results for zero modules \n");
 
  hm.SetRotation(rotSum);
  hm.SetTranslation(translSum);


  
  AliAlignObjParams *alignObj=new AliAlignObjParams("average", 0,hm, kTRUE);
  return alignObj;
  
}


//________________________________________________
TArrayI* AliITSRealignTracks::GetSPDStavesVolids(const Int_t *sectors,const Int_t* staves){

  
  // This method gets the volID Array for the chosen staves into the 
  // chosen sectors. You have to pass an array (10 dim) with a 1 for each 
  // selected sector and an array (6 dim) with a 1 for each chosen stave.    
  // The staves are numbered in this way: 0,1 for SPD1 and 2,3,4,5 for SPD2
  // i.e. sectors[10] = {1,1,0,0,0,0,0,0,1,0} -> Sector 0, 1, 9 selected.
  // staves[6]={0,1,1,0,0,1} -> Staves 1 on SPD1 and 0 and 3 on SPD2 selected
  
  Int_t nSect=0,nStaves=0;
  Int_t last=0;

 
  for(Int_t co=0;co<10;co++){ //counts the number of sectors chosen
    if(sectors[co]==1) nSect++;
  }

  for(Int_t co=0;co<6;co++){ //counts the number of sectors chosen
    if(staves[co]==1) nStaves++;
  }
  
  if(nSect<1||nStaves<1){ //if no sector chosen -> exit
    Printf("Error! No Sector/s or staves Selected!");
    return 0x0;
  }

  TArrayI *volIDs = new TArrayI(nSect*nStaves*4);
  TString stave="/Stave",str,symn,laystr;
  
  TArrayI *sectvol=GetSPDSectorsVolids(sectors); 
  //SPD1 
  laystr="SPD0";
  for(Int_t k=0;k<2;k++){
    if(staves[k]==1){
      str=stave;
      str+=k;
      for(Int_t i=0;i<sectvol->GetSize();i++){
	symn=AliGeomManager::SymName(sectvol->At(i));
	if(symn.Contains(str)&&symn.Contains(laystr)){
	  //	  printf("Adding: %s \n",symn.Data());
	  volIDs->AddAt(sectvol->At(i),last);
	  last++;
	}
      }
    }
  }
  //SPD1 
  laystr="SPD1";
  for(Int_t k=2;k<6;k++){
    if(staves[k]==1){
      str=stave;
      str+=k-2;
      for(Int_t i=0;i<sectvol->GetSize();i++){
	symn=AliGeomManager::SymName(sectvol->At(i));
	if(symn.Contains(str)&&symn.Contains(laystr)){
	  volIDs->AddAt(sectvol->At(i),last);
	  printf("Adding: %s \n",symn.Data());
	  last++;
	}
      }
    }
  }

  volIDs->Set(last);
  return volIDs;
} 

//________________________________________________
TArrayI* AliITSRealignTracks::GetSPDSectorsVolids(const Int_t *sectors) 
{
  //
  // This method gets the volID Array for the chosen sectors.
  // You have to pass an array with a 1 for each selected sector.
  // i.e. sectors[10] = {1,1,0,0,0,0,0,0,1,0} -> Sector 0, 1, 9 selected.
  //

  Int_t nSect=0;
  Int_t iModule=0;

 
  for(Int_t co=0;co<10;co++){ //counts the number of sectors chosen
    if(sectors[co]==1) nSect++;
  }
  
  if(nSect<1){ //if no sector chosen -> exit
    Printf("Error! No Sector/s Selected!");
    return 0x0;
  }

  TArrayI *volIDs = new TArrayI(nSect*24);
  
    if(sectors[0]==1){ //--->cSect = 0 <---
      volIDs->AddAt(2048,iModule); iModule++;
      volIDs->AddAt(2049,iModule); iModule++;
      volIDs->AddAt(2050,iModule); iModule++;
      volIDs->AddAt(2051,iModule); iModule++;
      volIDs->AddAt(2052,iModule); iModule++;
      volIDs->AddAt(2053,iModule); iModule++;
      volIDs->AddAt(2054,iModule); iModule++;
      volIDs->AddAt(2055,iModule); iModule++;
      volIDs->AddAt(4096,iModule); iModule++;
      volIDs->AddAt(4097,iModule); iModule++;
      volIDs->AddAt(4098,iModule); iModule++;
      volIDs->AddAt(4099,iModule); iModule++;
      volIDs->AddAt(4100,iModule); iModule++;
      volIDs->AddAt(4101,iModule); iModule++;
      volIDs->AddAt(4102,iModule); iModule++;
      volIDs->AddAt(4103,iModule); iModule++;
      volIDs->AddAt(4104,iModule); iModule++;
      volIDs->AddAt(4105,iModule); iModule++;
      volIDs->AddAt(4106,iModule); iModule++;
      volIDs->AddAt(4107,iModule); iModule++;
      volIDs->AddAt(4108,iModule); iModule++;
      volIDs->AddAt(4109,iModule); iModule++;
      volIDs->AddAt(4110,iModule); iModule++;
      volIDs->AddAt(4111,iModule); iModule++;
    }
    if(sectors[1]==1){ //--->cSect = 1 <//---
      volIDs->AddAt(2056,iModule); iModule++;
      volIDs->AddAt(2057,iModule); iModule++;
      volIDs->AddAt(2058,iModule); iModule++;
      volIDs->AddAt(2059,iModule); iModule++;
      volIDs->AddAt(2060,iModule); iModule++;
      volIDs->AddAt(2061,iModule); iModule++;
      volIDs->AddAt(2062,iModule); iModule++;
      volIDs->AddAt(2063,iModule); iModule++;
      volIDs->AddAt(4112,iModule); iModule++;
      volIDs->AddAt(4113,iModule); iModule++;
      volIDs->AddAt(4114,iModule); iModule++;
      volIDs->AddAt(4115,iModule); iModule++;
      volIDs->AddAt(4116,iModule); iModule++;
      volIDs->AddAt(4117,iModule); iModule++;
      volIDs->AddAt(4118,iModule); iModule++;
      volIDs->AddAt(4119,iModule); iModule++;
      volIDs->AddAt(4120,iModule); iModule++;
      volIDs->AddAt(4121,iModule); iModule++;
      volIDs->AddAt(4122,iModule); iModule++;
      volIDs->AddAt(4123,iModule); iModule++;
      volIDs->AddAt(4124,iModule); iModule++;
      volIDs->AddAt(4125,iModule); iModule++;
      volIDs->AddAt(4126,iModule); iModule++;
      volIDs->AddAt(4127,iModule); iModule++;
    }
    if(sectors[2]==1){//--->cSect = 2 <//---
      volIDs->AddAt(2064,iModule); iModule++;
      volIDs->AddAt(2065,iModule); iModule++;
      volIDs->AddAt(2066,iModule); iModule++;
      volIDs->AddAt(2067,iModule); iModule++;
      volIDs->AddAt(2068,iModule); iModule++;
      volIDs->AddAt(2069,iModule); iModule++;
      volIDs->AddAt(2070,iModule); iModule++;
      volIDs->AddAt(2071,iModule); iModule++;
      volIDs->AddAt(4128,iModule); iModule++;
      volIDs->AddAt(4129,iModule); iModule++;
      volIDs->AddAt(4130,iModule); iModule++;
      volIDs->AddAt(4131,iModule); iModule++;
      volIDs->AddAt(4132,iModule); iModule++;
      volIDs->AddAt(4133,iModule); iModule++;
      volIDs->AddAt(4134,iModule); iModule++;
      volIDs->AddAt(4135,iModule); iModule++;
      volIDs->AddAt(4136,iModule); iModule++;
      volIDs->AddAt(4137,iModule); iModule++;
      volIDs->AddAt(4138,iModule); iModule++;
      volIDs->AddAt(4139,iModule); iModule++;
      volIDs->AddAt(4140,iModule); iModule++;
      volIDs->AddAt(4141,iModule); iModule++;
      volIDs->AddAt(4142,iModule); iModule++;
      volIDs->AddAt(4143,iModule); iModule++;
    }
    if(sectors[3]==1){//--->cSect = 3 <//---
      volIDs->AddAt(2072,iModule); iModule++;
      volIDs->AddAt(2073,iModule); iModule++;
      volIDs->AddAt(2074,iModule); iModule++;
      volIDs->AddAt(2075,iModule); iModule++;
      volIDs->AddAt(2076,iModule); iModule++;
      volIDs->AddAt(2077,iModule); iModule++;
      volIDs->AddAt(2078,iModule); iModule++;
      volIDs->AddAt(2079,iModule); iModule++;
      volIDs->AddAt(4144,iModule); iModule++;
      volIDs->AddAt(4145,iModule); iModule++;
      volIDs->AddAt(4146,iModule); iModule++;
      volIDs->AddAt(4147,iModule); iModule++;
      volIDs->AddAt(4148,iModule); iModule++;
      volIDs->AddAt(4149,iModule); iModule++;
      volIDs->AddAt(4150,iModule); iModule++;
      volIDs->AddAt(4151,iModule); iModule++;
      volIDs->AddAt(4152,iModule); iModule++;
      volIDs->AddAt(4153,iModule); iModule++;
      volIDs->AddAt(4154,iModule); iModule++;
      volIDs->AddAt(4155,iModule); iModule++;
      volIDs->AddAt(4156,iModule); iModule++;
      volIDs->AddAt(4157,iModule); iModule++;
      volIDs->AddAt(4158,iModule); iModule++;
      volIDs->AddAt(4159,iModule); iModule++;
    }
    if(sectors[4]==1){//--->cSect = 4 <//---
      volIDs->AddAt(2080,iModule); iModule++;
      volIDs->AddAt(2081,iModule); iModule++;
      volIDs->AddAt(2082,iModule); iModule++;
      volIDs->AddAt(2083,iModule); iModule++;
      volIDs->AddAt(2084,iModule); iModule++;
      volIDs->AddAt(2085,iModule); iModule++;
      volIDs->AddAt(2086,iModule); iModule++;
      volIDs->AddAt(2087,iModule); iModule++;
      volIDs->AddAt(4160,iModule); iModule++;
      volIDs->AddAt(4161,iModule); iModule++;
      volIDs->AddAt(4162,iModule); iModule++;
      volIDs->AddAt(4163,iModule); iModule++;
      volIDs->AddAt(4164,iModule); iModule++;
      volIDs->AddAt(4165,iModule); iModule++;
      volIDs->AddAt(4166,iModule); iModule++;
      volIDs->AddAt(4167,iModule); iModule++;
      volIDs->AddAt(4168,iModule); iModule++;
      volIDs->AddAt(4169,iModule); iModule++;
      volIDs->AddAt(4170,iModule); iModule++;
      volIDs->AddAt(4171,iModule); iModule++;
      volIDs->AddAt(4172,iModule); iModule++;
      volIDs->AddAt(4173,iModule); iModule++;
      volIDs->AddAt(4174,iModule); iModule++;
      volIDs->AddAt(4175,iModule); iModule++;
    }
    if(sectors[5]==1){//--->cSect = 5 <//---
      volIDs->AddAt(2088,iModule); iModule++;
      volIDs->AddAt(2089,iModule); iModule++;
      volIDs->AddAt(2090,iModule); iModule++;
      volIDs->AddAt(2091,iModule); iModule++;
      volIDs->AddAt(2092,iModule); iModule++;
      volIDs->AddAt(2093,iModule); iModule++;
      volIDs->AddAt(2094,iModule); iModule++;
      volIDs->AddAt(2095,iModule); iModule++;
      volIDs->AddAt(4176,iModule); iModule++;
      volIDs->AddAt(4177,iModule); iModule++;
      volIDs->AddAt(4178,iModule); iModule++;
      volIDs->AddAt(4179,iModule); iModule++;
      volIDs->AddAt(4180,iModule); iModule++;
      volIDs->AddAt(4181,iModule); iModule++;
      volIDs->AddAt(4182,iModule); iModule++;
      volIDs->AddAt(4183,iModule); iModule++;
      volIDs->AddAt(4184,iModule); iModule++;
      volIDs->AddAt(4185,iModule); iModule++;
      volIDs->AddAt(4186,iModule); iModule++;
      volIDs->AddAt(4187,iModule); iModule++;
      volIDs->AddAt(4188,iModule); iModule++;
      volIDs->AddAt(4189,iModule); iModule++;
      volIDs->AddAt(4190,iModule); iModule++;
      volIDs->AddAt(4191,iModule); iModule++;
    }
    if(sectors[6]==1){//--->cSect = 6 <//---
      volIDs->AddAt(2096,iModule); iModule++;
      volIDs->AddAt(2097,iModule); iModule++;
      volIDs->AddAt(2098,iModule); iModule++;
      volIDs->AddAt(2099,iModule); iModule++;
      volIDs->AddAt(2100,iModule); iModule++;
      volIDs->AddAt(2101,iModule); iModule++;
      volIDs->AddAt(2102,iModule); iModule++;
      volIDs->AddAt(2103,iModule); iModule++;
      volIDs->AddAt(4192,iModule); iModule++;
      volIDs->AddAt(4193,iModule); iModule++;
      volIDs->AddAt(4194,iModule); iModule++;
      volIDs->AddAt(4195,iModule); iModule++;
      volIDs->AddAt(4196,iModule); iModule++;
      volIDs->AddAt(4197,iModule); iModule++;
      volIDs->AddAt(4198,iModule); iModule++;
      volIDs->AddAt(4199,iModule); iModule++;
      volIDs->AddAt(4200,iModule); iModule++;
      volIDs->AddAt(4201,iModule); iModule++;
      volIDs->AddAt(4202,iModule); iModule++;
      volIDs->AddAt(4203,iModule); iModule++;
      volIDs->AddAt(4204,iModule); iModule++;
      volIDs->AddAt(4205,iModule); iModule++;
      volIDs->AddAt(4206,iModule); iModule++;
      volIDs->AddAt(4207,iModule); iModule++;
    }
     if(sectors[7]==1){ //--->cSect = 7 <//---
       volIDs->AddAt(2104,iModule); iModule++;
       volIDs->AddAt(2105,iModule); iModule++;
       volIDs->AddAt(2106,iModule); iModule++;
       volIDs->AddAt(2107,iModule); iModule++;
       volIDs->AddAt(2108,iModule); iModule++;
       volIDs->AddAt(2109,iModule); iModule++;
       volIDs->AddAt(2110,iModule); iModule++;
       volIDs->AddAt(2111,iModule); iModule++;
       volIDs->AddAt(4208,iModule); iModule++;
       volIDs->AddAt(4209,iModule); iModule++;
       volIDs->AddAt(4210,iModule); iModule++;
       volIDs->AddAt(4211,iModule); iModule++;
       volIDs->AddAt(4212,iModule); iModule++;
       volIDs->AddAt(4213,iModule); iModule++;
       volIDs->AddAt(4214,iModule); iModule++;
       volIDs->AddAt(4215,iModule); iModule++;
       volIDs->AddAt(4216,iModule); iModule++;
       volIDs->AddAt(4217,iModule); iModule++;
       volIDs->AddAt(4218,iModule); iModule++;
       volIDs->AddAt(4219,iModule); iModule++;
       volIDs->AddAt(4220,iModule); iModule++;
       volIDs->AddAt(4221,iModule); iModule++;
       volIDs->AddAt(4222,iModule); iModule++;
       volIDs->AddAt(4223,iModule); iModule++;
     }
     if(sectors[8]==1){//--->cSect = 8 <//---
       volIDs->AddAt(2112,iModule); iModule++;
       volIDs->AddAt(2113,iModule); iModule++;
       volIDs->AddAt(2114,iModule); iModule++;
       volIDs->AddAt(2115,iModule); iModule++;
       volIDs->AddAt(2116,iModule); iModule++;
       volIDs->AddAt(2117,iModule); iModule++;
       volIDs->AddAt(2118,iModule); iModule++;
       volIDs->AddAt(2119,iModule); iModule++;
       volIDs->AddAt(4224,iModule); iModule++;
       volIDs->AddAt(4225,iModule); iModule++;
       volIDs->AddAt(4226,iModule); iModule++;
       volIDs->AddAt(4227,iModule); iModule++;
       volIDs->AddAt(4228,iModule); iModule++;
       volIDs->AddAt(4229,iModule); iModule++;
       volIDs->AddAt(4230,iModule); iModule++;
       volIDs->AddAt(4231,iModule); iModule++;
       volIDs->AddAt(4232,iModule); iModule++;
       volIDs->AddAt(4233,iModule); iModule++;
       volIDs->AddAt(4234,iModule); iModule++;
       volIDs->AddAt(4235,iModule); iModule++;
       volIDs->AddAt(4236,iModule); iModule++;
       volIDs->AddAt(4237,iModule); iModule++;
       volIDs->AddAt(4238,iModule); iModule++;
       volIDs->AddAt(4239,iModule); iModule++;
     }
     if(sectors[9]==1){//--->cSect = 9 <//---
       volIDs->AddAt(2120,iModule); iModule++;
       volIDs->AddAt(2121,iModule); iModule++;
       volIDs->AddAt(2122,iModule); iModule++;
       volIDs->AddAt(2123,iModule); iModule++;
       volIDs->AddAt(2124,iModule); iModule++;
       volIDs->AddAt(2125,iModule); iModule++;
       volIDs->AddAt(2126,iModule); iModule++;
       volIDs->AddAt(2127,iModule); iModule++;
       volIDs->AddAt(4240,iModule); iModule++;
       volIDs->AddAt(4241,iModule); iModule++;
       volIDs->AddAt(4242,iModule); iModule++;
       volIDs->AddAt(4243,iModule); iModule++;
       volIDs->AddAt(4244,iModule); iModule++;
       volIDs->AddAt(4245,iModule); iModule++;
       volIDs->AddAt(4246,iModule); iModule++;
       volIDs->AddAt(4247,iModule); iModule++;
       volIDs->AddAt(4248,iModule); iModule++;
       volIDs->AddAt(4249,iModule); iModule++;
       volIDs->AddAt(4250,iModule); iModule++;
       volIDs->AddAt(4251,iModule); iModule++;
       volIDs->AddAt(4252,iModule); iModule++;
       volIDs->AddAt(4253,iModule); iModule++;
       volIDs->AddAt(4254,iModule); iModule++;
       volIDs->AddAt(4255,iModule); iModule++;
     }

  return volIDs;
}

//___________________________________
TArrayI* AliITSRealignTracks::GetLayersVolUID(const Int_t *layer){

  //return a TArrayI with the volUIDs of the modules into the set of layers
  //defined by layer[6]
  
  TArrayI *out=new TArrayI(2198);
  Int_t last=0;
  UShort_t voluid;
  for(Int_t i=0;i<6;i++){
    if(layer[i]==1){
      for(Int_t mod=0;mod<AliGeomManager::LayerSize(i+AliGeomManager::kFirstLayer);mod++){
	voluid=AliGeomManager::LayerToVolUID(i+AliGeomManager::kFirstLayer,mod);
	out->AddAt(voluid,last);
	//	printf("voluid %d at position %d \n",out->At(last),last);
	last++;
      }
    }
  }  
  out->Set(last);
  return out;
}

//_________________
TArrayI* AliITSRealignTracks::SelectLayerInVolids(const TArrayI *volidsIN,AliGeomManager::ELayerID layer){
  //Select between the modules specified by their volUIDs in volidsIN only those
  // of a given layer "layer"

  Int_t size=volidsIN->GetSize();
  Int_t count=0;
  for(Int_t j=0;j<size;j++){
    if(AliGeomManager::VolUIDToLayer(volidsIN->At(j))==layer)count++;
  }
  TArrayI *volidsOUT=new TArrayI(count);
  count=0;
  for(Int_t j=0;j<size;j++){
    if(AliGeomManager::VolUIDToLayer(volidsIN->At(j))==layer){
      volidsOUT->AddAt(volidsIN->At(j),count);
      count++;
    }
  }
  return volidsOUT;
}

//______________________________________________

TArrayI* AliITSRealignTracks::IntersectVolArray(const TArrayI *vol1,const TArrayI *vol2){

  //Perform the intersection between the array vol1 and vol2
  
  Int_t size1=vol1->GetSize();
  Int_t size2=vol2->GetSize();
  Int_t last=0,volid;
  Bool_t found;
  TArrayI *volidOut=new TArrayI(size1+size2);  
  
  for(Int_t k=0;k<size1;k++){
    found=kFALSE;
    volid=vol1->At(k);
    for(Int_t j=0;j<size2;j++){
      if(vol2->At(j)==volid)found=kTRUE;
    }
    if(found){
      volidOut->AddAt(volid,last);
      last++;
    }
  }
  volidOut->Set(last);
  return volidOut;
}
//_________________________________________

TArrayI* AliITSRealignTracks::JoinVolArrays(const TArrayI *vol1,const TArrayI *vol2){
  //!BE CAREFUL: If an index is repeated into vol1 or into vol2 will be repeated also in the final array
  
  Int_t size1=vol1->GetSize();
  Int_t size2=vol2->GetSize();
  Int_t count=0;
  UShort_t volid;
  Bool_t found;
  TArrayI *volidOut=new TArrayI(size1+size2);  
  
  for(Int_t k=0;k<size1;k++){
    volid=vol1->At(k);
    volidOut->AddAt(volid,k);
  }
 
  for(Int_t k=0;k<size2;k++){
    found=kFALSE;
    volid=vol2->At(k);
    for(Int_t j=0;j<size1;j++){
      if(volidOut->At(j)==volid)found=kTRUE;
    }
    if(!found){
      volidOut->AddAt(volid,size1+count);
      count++;
    }
  }
  volidOut->Set(size1+count);
  return volidOut;
}

//______________________________________

TArrayI* AliITSRealignTracks::ExcludeVolidsFromVolidsArray(const TArrayI *volidsToExclude,const TArrayI *volStart){
  //Excludes the modules defined by their volUID in the array volidsToExclude from the array volStart

  Int_t size1=volidsToExclude->GetSize();
  Int_t size2=volStart->GetSize();
  Int_t last=0;
  UShort_t volid;
  Bool_t found;
  TArrayI *volidOut=new TArrayI(size2);  

  for(Int_t k=0;k<size2;k++){
    found=kFALSE;
    volid=volStart->At(k);
    for(Int_t j=0;j<size1;j++){
      if(volidsToExclude->At(j)==volid){
	found=kTRUE;
	break;
      }
    }
    if(!found){
      volidOut->AddAt(volid,last);
      last++;
    }
  }
  volidOut->Set(last);
  return volidOut;
}


//________________________________________

TArrayI* AliITSRealignTracks::GetLayerVolumes(const Int_t *layer){
  //returns a TArrayI with the volUIDs of the modules of the layers
  //specified into *layer
  
  TArrayI *out=new TArrayI(2198);
  Int_t last=0;
  UShort_t voluid;
  for(Int_t i=0;i<6;i++){
    if(layer[i]==1){
      for(Int_t mod=0;mod<AliGeomManager::LayerSize(i+AliGeomManager::kFirstLayer);mod++){
	voluid=AliGeomManager::LayerToVolUID(i+AliGeomManager::kFirstLayer,mod);
	out->AddAt(voluid,last);
	//	printf("voluid %d at position %d \n",out->At(last),last);
	last++;
      }
    }
  }  
  out->Set(last);
  return out;
}



//______________________________
TArrayI* AliITSRealignTracks::GetAlignedVolumes(char *filename){
  //Open the file "filename" which is expected to contain
  //a TClonesArray named "ITSAlignObjs" with stored a set of AlignObjs
  //returns an array with the volumes UID of the modules considered realigned 
  
  if(gSystem->AccessPathName(filename)){
    printf("Wrong Realignment file name \n");
    return 0x0;
  }
  TFile *f=TFile::Open(filename,"READ");
  TClonesArray *array=(TClonesArray*)f->Get("ITSAlignObjs");
  AliAlignObjParams *a;
  Int_t last=0;
  TArrayI *volidOut=new TArrayI(2200);
  for(Int_t j=0;j<array->GetSize();j++){
    a=(AliAlignObjParams*)array->At(j);
    if(a->GetUniqueID()==0)continue;
    
    else {
      volidOut->AddAt(a->GetVolUID(),last);
      last++;								      
    }
  }
  volidOut->Set(last);
  f->Close();
  return volidOut;
}


//________________________________________
void AliITSRealignTracks::SetDraw(Bool_t draw,Bool_t refresh){
  //TEPMORARY METHOD: method to switch on/off the drawing of histograms
  // if refresh=kTRUE deletes the old histos and constructs new ones
  
  if(refresh){
    // WriteHists();
    if(fAlignDrawObjs)DeleteDrawHists();
    InitDrawHists();
  }
  fDraw=draw;
  return;
}

void AliITSRealignTracks::DeleteDrawHists(){
  //Delete the pointers to the histograms

  for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
    for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++) {
      delete fAlignDrawObjs[iLayer][iModule];
    }
    if(fAlignDrawObjs[iLayer])delete [] fAlignDrawObjs[iLayer];
  }
  
  delete [] fAlignDrawObjs;
  fAlignDrawObjs = 0;

  
  delete fCanvPar;
  delete fCanvGr; 
  delete fgrIterMeanX;
  delete fgrIterRMSX; 
  delete fgrIterMeanY;
  delete fgrIterRMSY;
  delete fgrIterMeanZ;
  delete fgrIterRMSZ;
  delete fgrIterMeanPsi;
  delete fgrIterRMSPsi;
  delete fgrIterMeanTheta;
  delete fgrIterRMSTheta;
  delete fgrIterMeanPhi;
  delete fgrIterRMSPhi;  

} 

void AliITSRealignTracks::InitDrawHists(){
  //Initialize the histograms to monitor the results

  Int_t nLayers = AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer;
  fAlignDrawObjs = new AliAlignObj**[nLayers];
  for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
    fAlignDrawObjs[iLayer] = new AliAlignObj*[AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer)];
    for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++) {
      UShort_t volid = AliGeomManager::LayerToVolUID(iLayer+ AliGeomManager::kFirstLayer,iModule);
      fAlignDrawObjs[iLayer][iModule] = new AliAlignObjParams(AliGeomManager::SymName(volid),volid,0,0,0,0,0,0,kTRUE);
      fAlignDrawObjs[iLayer][iModule]->SetUniqueID(1);
    }
  }


  TH1F *hX=new TH1F("hX","hX",1000,-10000.,10000.);
  TH1F *hY=new TH1F("hY","hY",1000,-10000.,10000.);
  TH1F *hZ=new TH1F("hZ","hZ",1000,-10000.,10000.);
  TH1F *hPsi=new TH1F("hPsi","hPsi",1000,-5000.,5000.);
  TH1F *hTheta=new TH1F("hTheta","hTheta",1000,-5000.,5000.);
  TH1F *hPhi=new TH1F("hPhi","hPhi",1000,-5000.,5000.);

  fCanvPar=new TCanvas("fCanvPar","Parameters trend during iterations: Convergence \n");
  fCanvPar->Divide(3,2);
  fCanvPar->cd(1);
  hX->Draw();
  hX->SetXTitle("#mum");
  fCanvPar->cd(2);
  hY->Draw();
  hY->SetXTitle("#mum");
  fCanvPar->cd(3);
  hZ->SetXTitle("#mum");
  hZ->Draw();
  fCanvPar->cd(4);
  hPsi->SetXTitle("mdeg");
  hPsi->Draw();
  fCanvPar->cd(5);
  hTheta->SetXTitle("mdeg");
  hTheta->Draw();
  fCanvPar->cd(6);
  hPhi->SetXTitle("mdeg");
  hPhi->Draw();
  fCanvPar->Update();

  
  fCanvGr=new TCanvas("fCanvGr","Parameters trend during iterations: Convergence \n");
  fCanvGr->Divide(3,2);

  fCanvGr->cd(1);
  fgrIterMeanX=new TGraph(1);
  fgrIterRMSX=new TGraph(1);
  fgrIterRMSX->GetYaxis()->SetRangeUser(-1000.,1000.);
  fgrIterRMSX->SetName("fgrIterRMSX");
  fgrIterRMSX->SetLineColor(2);
  fgrIterMeanX->SetName("fgrIterMeanX");
  fgrIterMeanX->SetTitle("Convergence of #deltaX \n");
  fgrIterMeanX->GetXaxis()->SetTitle("#mum");
  fgrIterRMSX->Draw("acp");
  fgrIterMeanX->Draw("cp");

  fCanvGr->cd(2);
  fgrIterMeanY=new TGraph(1);
  fgrIterRMSY=new TGraph(1);
  fgrIterRMSY->GetYaxis()->SetRangeUser(-1000.,1000.);
  fgrIterRMSY->SetName("fgrIterRMSY");
  fgrIterRMSY->SetLineColor(2);
  fgrIterMeanY->SetName("fgrIterMeanY");
  fgrIterMeanY->SetTitle("Convergence of #deltaY \n");
  fgrIterMeanY->GetXaxis()->SetTitle("#mum");
  fgrIterRMSY->Draw("acp");
  fgrIterMeanY->Draw("cp");

  fCanvGr->cd(3);
  fgrIterMeanZ=new TGraph(1);
  fgrIterRMSZ=new TGraph(1);
  fgrIterRMSZ->GetYaxis()->SetRangeUser(-1000.,1000.);
  fgrIterRMSZ->SetName("fgrIterRMSZ");
  fgrIterRMSZ->SetLineColor(2);
  fgrIterMeanZ->SetName("fgrIterMeanZ");
  fgrIterMeanZ->SetTitle("Convergence of #deltaZ \n");
  fgrIterMeanZ->GetXaxis()->SetTitle("#mum");
  fgrIterRMSZ->Draw("acp");
  fgrIterMeanZ->Draw("cp");

  fCanvGr->cd(4);
  fgrIterMeanPsi=new TGraph(1);
  fgrIterRMSPsi=new TGraph(1);
  fgrIterRMSPsi->GetYaxis()->SetRangeUser(-1000.,1000.);
  fgrIterRMSPsi->SetName("fgrIterRMSPsi");
  fgrIterRMSPsi->SetLineColor(2);
  fgrIterMeanPsi->SetName("fgrIterMeanPsi");
  fgrIterMeanPsi->SetTitle("Convergence of #deltaPsi \n");
  fgrIterMeanPsi->GetXaxis()->SetTitle("mdeg");
  fgrIterRMSPsi->Draw("acp");
  fgrIterMeanPsi->Draw("cp");

  fCanvGr->cd(5);
  fgrIterMeanTheta=new TGraph(1);
  fgrIterRMSTheta=new TGraph(1);
  fgrIterRMSTheta->GetYaxis()->SetRangeUser(-1000.,1000.);
  fgrIterRMSTheta->SetName("fgrIterRMSTheta");
  fgrIterRMSTheta->SetLineColor(2);
  fgrIterMeanTheta->SetName("fgrIterMeanTheta");
  fgrIterMeanTheta->SetTitle("Convergence of #deltaTheta \n");
  fgrIterMeanTheta->GetXaxis()->SetTitle("mdeg");
  fgrIterRMSTheta->Draw("acp");
  fgrIterMeanTheta->Draw("cp");

  fCanvGr->cd(6);
  fgrIterMeanPhi=new TGraph(1);
  fgrIterRMSPhi=new TGraph(1);
  fgrIterRMSPhi->GetYaxis()->SetRangeUser(-1000.,1000.);
  fgrIterRMSPhi->SetName("fgrIterRMSPhi");
  fgrIterRMSPhi->SetLineColor(2);
  fgrIterMeanPhi->SetName("fgrIterMeanPhi");
  fgrIterMeanPhi->SetTitle("Convergence of #deltaPhi \n");
  fgrIterMeanPhi->GetXaxis()->SetTitle("mdeg");
  fgrIterRMSPhi->Draw("acp");
  fgrIterMeanPhi->Draw("cp");


  
}

void AliITSRealignTracks::UpdateDraw(TArrayI *volids,Int_t iter,Int_t color){
  //Updates the histograms to monitor the results. Only the histograms
  //of the volumes specified in *volids will be updated.
  // iter is just a flag for the names of the histo
  // color specifies the color of the lines of the histograms for this update
  
  TString name="hX_";
  name+=iter;
  name.Append("iter");
  TH1F *hX=new TH1F("hX",name.Data(),1000,-10000.,10000.);

  name="hY_";
  name+=iter;
  name.Append("iter");
  TH1F *hY=new TH1F("hY",name.Data(),1000,-10000.,10000.);

  name="hZ_";
  name+=iter;
  name.Append("iter");
  TH1F *hZ=new TH1F("hZ",name.Data(),1000,-10000.,10000.);

  name="hPsi_";
  name+=iter;
  name.Append("iter");
  TH1F *hPsi=new TH1F("hPsi",name.Data(),1000,-5000.,5000.);
  
  name="hTheta_";
  name+=iter;
  name.Append("iter");
  TH1F *hTheta=new TH1F("hTheta",name.Data(),1000,-5000.,5000.);

  name="hPhi_";
  name+=iter;
  name.Append("iter");
  TH1F *hPhi=new TH1F("hPhi",name.Data(),1000,-5000.,5000.);
  
  Int_t layer,mod;
  Double_t transl[3],rot[3],transldr[3],rotdr[3];
  
  for(Int_t i=0;i<volids->GetSize();i++){
    layer=AliGeomManager::VolUIDToLayer(volids->At(i),mod); 
    fAlignObjs[layer-AliGeomManager::kFirstLayer][mod]->GetPars(transl,rot);
    fAlignDrawObjs[layer-AliGeomManager::kFirstLayer][mod]->GetPars(transldr,rotdr);
    
    hX->Fill(10000.*(transl[0]-transldr[0]));
    hY->Fill(10000.*(transl[1]-transldr[1]));
    hZ->Fill(10000.*(transl[2]-transldr[2]));
    hPsi->Fill(1000.*(rot[0]-rotdr[0]));
    hTheta->Fill(1000.*(rot[1]-rotdr[1]));
    hPhi->Fill(1000.*(rot[1]-rotdr[2]));
    //Update the pars of the draw object
    fAlignDrawObjs[layer-AliGeomManager::kFirstLayer][mod]->SetPars(transl[0],transl[1],transl[2],rot[0],rot[1],rot[2]);
  }

  hX->SetLineColor(color);
  hY->SetLineColor(color);
  hZ->SetLineColor(color);
  hPsi->SetLineColor(color);
  hTheta->SetLineColor(color);
  hPhi->SetLineColor(color);
  
  
  fCanvPar->cd(1);
  hX->Draw("Same");
  fCanvPar->cd(2);
  hY->Draw("Same");
  fCanvPar->cd(3);
  hZ->Draw("Same");
  fCanvPar->cd(4);
  hPsi->Draw("Same");
  fCanvPar->cd(5);
  hTheta->Draw("Same");
  fCanvPar->cd(6);
  hPhi->Draw("Same");
  gPad->Modified();
  fCanvPar->Update();
  fCanvPar->Modified();
  
  fgrIterMeanX->SetPoint(fgrIterMeanX->GetN()+1,iter,hX->GetMean());
  fgrIterRMSX->SetPoint(fgrIterRMSX->GetN()+1,iter,hX->GetRMS());
  fgrIterMeanY->SetPoint(fgrIterMeanY->GetN()+1,iter,hY->GetMean());
  fgrIterRMSY->SetPoint(fgrIterRMSY->GetN()+1,iter,hY->GetRMS());
  fgrIterMeanZ->SetPoint(fgrIterMeanZ->GetN()+1,iter,hZ->GetMean());
  fgrIterRMSZ->SetPoint(fgrIterRMSZ->GetN()+1,iter,hZ->GetRMS());
  fgrIterMeanPsi->SetPoint(fgrIterMeanPsi->GetN()+1,iter,hPsi->GetMean());
  fgrIterRMSPsi->SetPoint(fgrIterRMSPsi->GetN()+1,iter,hPsi->GetRMS());
  fgrIterMeanTheta->SetPoint(fgrIterMeanTheta->GetN()+1,iter,hTheta->GetMean());
  fgrIterRMSTheta->SetPoint(fgrIterRMSTheta->GetN()+1,iter,hTheta->GetRMS());
  fgrIterMeanPhi->SetPoint(fgrIterMeanPhi->GetN()+1,iter,hPhi->GetMean());
  fgrIterRMSPhi->SetPoint(fgrIterRMSPhi->GetN()+1,iter,hPhi->GetRMS());

  gPad->Modified();
  fCanvGr->Update();
  fCanvGr->Update();
}

void AliITSRealignTracks::WriteHists(const char *outfile){
  //Writes the histograms for the monitoring of the results
  // in a file named "outfile"

  TFile *f=new TFile(outfile,"RECREATE");
  f->cd();
  fCanvPar->Write();
  fCanvGr->Write(); 
  fgrIterMeanX->Write(); 
  fgrIterRMSX->Write();  
  fgrIterMeanY->Write(); 
  fgrIterRMSY->Write();  
  fgrIterMeanZ->Write(); 
  fgrIterRMSZ->Write();  
  fgrIterMeanPsi->Write(); 
  fgrIterRMSPsi->Write();  
  fgrIterMeanTheta->Write(); 
  fgrIterRMSTheta->Write();  
  fgrIterMeanPhi->Write();  
  fgrIterRMSPhi->Write();

  f->Close();
  return;
  
}
 AliITSRealignTracks.cxx:1
 AliITSRealignTracks.cxx:2
 AliITSRealignTracks.cxx:3
 AliITSRealignTracks.cxx:4
 AliITSRealignTracks.cxx:5
 AliITSRealignTracks.cxx:6
 AliITSRealignTracks.cxx:7
 AliITSRealignTracks.cxx:8
 AliITSRealignTracks.cxx:9
 AliITSRealignTracks.cxx:10
 AliITSRealignTracks.cxx:11
 AliITSRealignTracks.cxx:12
 AliITSRealignTracks.cxx:13
 AliITSRealignTracks.cxx:14
 AliITSRealignTracks.cxx:15
 AliITSRealignTracks.cxx:16
 AliITSRealignTracks.cxx:17
 AliITSRealignTracks.cxx:18
 AliITSRealignTracks.cxx:19
 AliITSRealignTracks.cxx:20
 AliITSRealignTracks.cxx:21
 AliITSRealignTracks.cxx:22
 AliITSRealignTracks.cxx:23
 AliITSRealignTracks.cxx:24
 AliITSRealignTracks.cxx:25
 AliITSRealignTracks.cxx:26
 AliITSRealignTracks.cxx:27
 AliITSRealignTracks.cxx:28
 AliITSRealignTracks.cxx:29
 AliITSRealignTracks.cxx:30
 AliITSRealignTracks.cxx:31
 AliITSRealignTracks.cxx:32
 AliITSRealignTracks.cxx:33
 AliITSRealignTracks.cxx:34
 AliITSRealignTracks.cxx:35
 AliITSRealignTracks.cxx:36
 AliITSRealignTracks.cxx:37
 AliITSRealignTracks.cxx:38
 AliITSRealignTracks.cxx:39
 AliITSRealignTracks.cxx:40
 AliITSRealignTracks.cxx:41
 AliITSRealignTracks.cxx:42
 AliITSRealignTracks.cxx:43
 AliITSRealignTracks.cxx:44
 AliITSRealignTracks.cxx:45
 AliITSRealignTracks.cxx:46
 AliITSRealignTracks.cxx:47
 AliITSRealignTracks.cxx:48
 AliITSRealignTracks.cxx:49
 AliITSRealignTracks.cxx:50
 AliITSRealignTracks.cxx:51
 AliITSRealignTracks.cxx:52
 AliITSRealignTracks.cxx:53
 AliITSRealignTracks.cxx:54
 AliITSRealignTracks.cxx:55
 AliITSRealignTracks.cxx:56
 AliITSRealignTracks.cxx:57
 AliITSRealignTracks.cxx:58
 AliITSRealignTracks.cxx:59
 AliITSRealignTracks.cxx:60
 AliITSRealignTracks.cxx:61
 AliITSRealignTracks.cxx:62
 AliITSRealignTracks.cxx:63
 AliITSRealignTracks.cxx:64
 AliITSRealignTracks.cxx:65
 AliITSRealignTracks.cxx:66
 AliITSRealignTracks.cxx:67
 AliITSRealignTracks.cxx:68
 AliITSRealignTracks.cxx:69
 AliITSRealignTracks.cxx:70
 AliITSRealignTracks.cxx:71
 AliITSRealignTracks.cxx:72
 AliITSRealignTracks.cxx:73
 AliITSRealignTracks.cxx:74
 AliITSRealignTracks.cxx:75
 AliITSRealignTracks.cxx:76
 AliITSRealignTracks.cxx:77
 AliITSRealignTracks.cxx:78
 AliITSRealignTracks.cxx:79
 AliITSRealignTracks.cxx:80
 AliITSRealignTracks.cxx:81
 AliITSRealignTracks.cxx:82
 AliITSRealignTracks.cxx:83
 AliITSRealignTracks.cxx:84
 AliITSRealignTracks.cxx:85
 AliITSRealignTracks.cxx:86
 AliITSRealignTracks.cxx:87
 AliITSRealignTracks.cxx:88
 AliITSRealignTracks.cxx:89
 AliITSRealignTracks.cxx:90
 AliITSRealignTracks.cxx:91
 AliITSRealignTracks.cxx:92
 AliITSRealignTracks.cxx:93
 AliITSRealignTracks.cxx:94
 AliITSRealignTracks.cxx:95
 AliITSRealignTracks.cxx:96
 AliITSRealignTracks.cxx:97
 AliITSRealignTracks.cxx:98
 AliITSRealignTracks.cxx:99
 AliITSRealignTracks.cxx:100
 AliITSRealignTracks.cxx:101
 AliITSRealignTracks.cxx:102
 AliITSRealignTracks.cxx:103
 AliITSRealignTracks.cxx:104
 AliITSRealignTracks.cxx:105
 AliITSRealignTracks.cxx:106
 AliITSRealignTracks.cxx:107
 AliITSRealignTracks.cxx:108
 AliITSRealignTracks.cxx:109
 AliITSRealignTracks.cxx:110
 AliITSRealignTracks.cxx:111
 AliITSRealignTracks.cxx:112
 AliITSRealignTracks.cxx:113
 AliITSRealignTracks.cxx:114
 AliITSRealignTracks.cxx:115
 AliITSRealignTracks.cxx:116
 AliITSRealignTracks.cxx:117
 AliITSRealignTracks.cxx:118
 AliITSRealignTracks.cxx:119
 AliITSRealignTracks.cxx:120
 AliITSRealignTracks.cxx:121
 AliITSRealignTracks.cxx:122
 AliITSRealignTracks.cxx:123
 AliITSRealignTracks.cxx:124
 AliITSRealignTracks.cxx:125
 AliITSRealignTracks.cxx:126
 AliITSRealignTracks.cxx:127
 AliITSRealignTracks.cxx:128
 AliITSRealignTracks.cxx:129
 AliITSRealignTracks.cxx:130
 AliITSRealignTracks.cxx:131
 AliITSRealignTracks.cxx:132
 AliITSRealignTracks.cxx:133
 AliITSRealignTracks.cxx:134
 AliITSRealignTracks.cxx:135
 AliITSRealignTracks.cxx:136
 AliITSRealignTracks.cxx:137
 AliITSRealignTracks.cxx:138
 AliITSRealignTracks.cxx:139
 AliITSRealignTracks.cxx:140
 AliITSRealignTracks.cxx:141
 AliITSRealignTracks.cxx:142
 AliITSRealignTracks.cxx:143
 AliITSRealignTracks.cxx:144
 AliITSRealignTracks.cxx:145
 AliITSRealignTracks.cxx:146
 AliITSRealignTracks.cxx:147
 AliITSRealignTracks.cxx:148
 AliITSRealignTracks.cxx:149
 AliITSRealignTracks.cxx:150
 AliITSRealignTracks.cxx:151
 AliITSRealignTracks.cxx:152
 AliITSRealignTracks.cxx:153
 AliITSRealignTracks.cxx:154
 AliITSRealignTracks.cxx:155
 AliITSRealignTracks.cxx:156
 AliITSRealignTracks.cxx:157
 AliITSRealignTracks.cxx:158
 AliITSRealignTracks.cxx:159
 AliITSRealignTracks.cxx:160
 AliITSRealignTracks.cxx:161
 AliITSRealignTracks.cxx:162
 AliITSRealignTracks.cxx:163
 AliITSRealignTracks.cxx:164
 AliITSRealignTracks.cxx:165
 AliITSRealignTracks.cxx:166
 AliITSRealignTracks.cxx:167
 AliITSRealignTracks.cxx:168
 AliITSRealignTracks.cxx:169
 AliITSRealignTracks.cxx:170
 AliITSRealignTracks.cxx:171
 AliITSRealignTracks.cxx:172
 AliITSRealignTracks.cxx:173
 AliITSRealignTracks.cxx:174
 AliITSRealignTracks.cxx:175
 AliITSRealignTracks.cxx:176
 AliITSRealignTracks.cxx:177
 AliITSRealignTracks.cxx:178
 AliITSRealignTracks.cxx:179
 AliITSRealignTracks.cxx:180
 AliITSRealignTracks.cxx:181
 AliITSRealignTracks.cxx:182
 AliITSRealignTracks.cxx:183
 AliITSRealignTracks.cxx:184
 AliITSRealignTracks.cxx:185
 AliITSRealignTracks.cxx:186
 AliITSRealignTracks.cxx:187
 AliITSRealignTracks.cxx:188
 AliITSRealignTracks.cxx:189
 AliITSRealignTracks.cxx:190
 AliITSRealignTracks.cxx:191
 AliITSRealignTracks.cxx:192
 AliITSRealignTracks.cxx:193
 AliITSRealignTracks.cxx:194
 AliITSRealignTracks.cxx:195
 AliITSRealignTracks.cxx:196
 AliITSRealignTracks.cxx:197
 AliITSRealignTracks.cxx:198
 AliITSRealignTracks.cxx:199
 AliITSRealignTracks.cxx:200
 AliITSRealignTracks.cxx:201
 AliITSRealignTracks.cxx:202
 AliITSRealignTracks.cxx:203
 AliITSRealignTracks.cxx:204
 AliITSRealignTracks.cxx:205
 AliITSRealignTracks.cxx:206
 AliITSRealignTracks.cxx:207
 AliITSRealignTracks.cxx:208
 AliITSRealignTracks.cxx:209
 AliITSRealignTracks.cxx:210
 AliITSRealignTracks.cxx:211
 AliITSRealignTracks.cxx:212
 AliITSRealignTracks.cxx:213
 AliITSRealignTracks.cxx:214
 AliITSRealignTracks.cxx:215
 AliITSRealignTracks.cxx:216
 AliITSRealignTracks.cxx:217
 AliITSRealignTracks.cxx:218
 AliITSRealignTracks.cxx:219
 AliITSRealignTracks.cxx:220
 AliITSRealignTracks.cxx:221
 AliITSRealignTracks.cxx:222
 AliITSRealignTracks.cxx:223
 AliITSRealignTracks.cxx:224
 AliITSRealignTracks.cxx:225
 AliITSRealignTracks.cxx:226
 AliITSRealignTracks.cxx:227
 AliITSRealignTracks.cxx:228
 AliITSRealignTracks.cxx:229
 AliITSRealignTracks.cxx:230
 AliITSRealignTracks.cxx:231
 AliITSRealignTracks.cxx:232
 AliITSRealignTracks.cxx:233
 AliITSRealignTracks.cxx:234
 AliITSRealignTracks.cxx:235
 AliITSRealignTracks.cxx:236
 AliITSRealignTracks.cxx:237
 AliITSRealignTracks.cxx:238
 AliITSRealignTracks.cxx:239
 AliITSRealignTracks.cxx:240
 AliITSRealignTracks.cxx:241
 AliITSRealignTracks.cxx:242
 AliITSRealignTracks.cxx:243
 AliITSRealignTracks.cxx:244
 AliITSRealignTracks.cxx:245
 AliITSRealignTracks.cxx:246
 AliITSRealignTracks.cxx:247
 AliITSRealignTracks.cxx:248
 AliITSRealignTracks.cxx:249
 AliITSRealignTracks.cxx:250
 AliITSRealignTracks.cxx:251
 AliITSRealignTracks.cxx:252
 AliITSRealignTracks.cxx:253
 AliITSRealignTracks.cxx:254
 AliITSRealignTracks.cxx:255
 AliITSRealignTracks.cxx:256
 AliITSRealignTracks.cxx:257
 AliITSRealignTracks.cxx:258
 AliITSRealignTracks.cxx:259
 AliITSRealignTracks.cxx:260
 AliITSRealignTracks.cxx:261
 AliITSRealignTracks.cxx:262
 AliITSRealignTracks.cxx:263
 AliITSRealignTracks.cxx:264
 AliITSRealignTracks.cxx:265
 AliITSRealignTracks.cxx:266
 AliITSRealignTracks.cxx:267
 AliITSRealignTracks.cxx:268
 AliITSRealignTracks.cxx:269
 AliITSRealignTracks.cxx:270
 AliITSRealignTracks.cxx:271
 AliITSRealignTracks.cxx:272
 AliITSRealignTracks.cxx:273
 AliITSRealignTracks.cxx:274
 AliITSRealignTracks.cxx:275
 AliITSRealignTracks.cxx:276
 AliITSRealignTracks.cxx:277
 AliITSRealignTracks.cxx:278
 AliITSRealignTracks.cxx:279
 AliITSRealignTracks.cxx:280
 AliITSRealignTracks.cxx:281
 AliITSRealignTracks.cxx:282
 AliITSRealignTracks.cxx:283
 AliITSRealignTracks.cxx:284
 AliITSRealignTracks.cxx:285
 AliITSRealignTracks.cxx:286
 AliITSRealignTracks.cxx:287
 AliITSRealignTracks.cxx:288
 AliITSRealignTracks.cxx:289
 AliITSRealignTracks.cxx:290
 AliITSRealignTracks.cxx:291
 AliITSRealignTracks.cxx:292
 AliITSRealignTracks.cxx:293
 AliITSRealignTracks.cxx:294
 AliITSRealignTracks.cxx:295
 AliITSRealignTracks.cxx:296
 AliITSRealignTracks.cxx:297
 AliITSRealignTracks.cxx:298
 AliITSRealignTracks.cxx:299
 AliITSRealignTracks.cxx:300
 AliITSRealignTracks.cxx:301
 AliITSRealignTracks.cxx:302
 AliITSRealignTracks.cxx:303
 AliITSRealignTracks.cxx:304
 AliITSRealignTracks.cxx:305
 AliITSRealignTracks.cxx:306
 AliITSRealignTracks.cxx:307
 AliITSRealignTracks.cxx:308
 AliITSRealignTracks.cxx:309
 AliITSRealignTracks.cxx:310
 AliITSRealignTracks.cxx:311
 AliITSRealignTracks.cxx:312
 AliITSRealignTracks.cxx:313
 AliITSRealignTracks.cxx:314
 AliITSRealignTracks.cxx:315
 AliITSRealignTracks.cxx:316
 AliITSRealignTracks.cxx:317
 AliITSRealignTracks.cxx:318
 AliITSRealignTracks.cxx:319
 AliITSRealignTracks.cxx:320
 AliITSRealignTracks.cxx:321
 AliITSRealignTracks.cxx:322
 AliITSRealignTracks.cxx:323
 AliITSRealignTracks.cxx:324
 AliITSRealignTracks.cxx:325
 AliITSRealignTracks.cxx:326
 AliITSRealignTracks.cxx:327
 AliITSRealignTracks.cxx:328
 AliITSRealignTracks.cxx:329
 AliITSRealignTracks.cxx:330
 AliITSRealignTracks.cxx:331
 AliITSRealignTracks.cxx:332
 AliITSRealignTracks.cxx:333
 AliITSRealignTracks.cxx:334
 AliITSRealignTracks.cxx:335
 AliITSRealignTracks.cxx:336
 AliITSRealignTracks.cxx:337
 AliITSRealignTracks.cxx:338
 AliITSRealignTracks.cxx:339
 AliITSRealignTracks.cxx:340
 AliITSRealignTracks.cxx:341
 AliITSRealignTracks.cxx:342
 AliITSRealignTracks.cxx:343
 AliITSRealignTracks.cxx:344
 AliITSRealignTracks.cxx:345
 AliITSRealignTracks.cxx:346
 AliITSRealignTracks.cxx:347
 AliITSRealignTracks.cxx:348
 AliITSRealignTracks.cxx:349
 AliITSRealignTracks.cxx:350
 AliITSRealignTracks.cxx:351
 AliITSRealignTracks.cxx:352
 AliITSRealignTracks.cxx:353
 AliITSRealignTracks.cxx:354
 AliITSRealignTracks.cxx:355
 AliITSRealignTracks.cxx:356
 AliITSRealignTracks.cxx:357
 AliITSRealignTracks.cxx:358
 AliITSRealignTracks.cxx:359
 AliITSRealignTracks.cxx:360
 AliITSRealignTracks.cxx:361
 AliITSRealignTracks.cxx:362
 AliITSRealignTracks.cxx:363
 AliITSRealignTracks.cxx:364
 AliITSRealignTracks.cxx:365
 AliITSRealignTracks.cxx:366
 AliITSRealignTracks.cxx:367
 AliITSRealignTracks.cxx:368
 AliITSRealignTracks.cxx:369
 AliITSRealignTracks.cxx:370
 AliITSRealignTracks.cxx:371
 AliITSRealignTracks.cxx:372
 AliITSRealignTracks.cxx:373
 AliITSRealignTracks.cxx:374
 AliITSRealignTracks.cxx:375
 AliITSRealignTracks.cxx:376
 AliITSRealignTracks.cxx:377
 AliITSRealignTracks.cxx:378
 AliITSRealignTracks.cxx:379
 AliITSRealignTracks.cxx:380
 AliITSRealignTracks.cxx:381
 AliITSRealignTracks.cxx:382
 AliITSRealignTracks.cxx:383
 AliITSRealignTracks.cxx:384
 AliITSRealignTracks.cxx:385
 AliITSRealignTracks.cxx:386
 AliITSRealignTracks.cxx:387
 AliITSRealignTracks.cxx:388
 AliITSRealignTracks.cxx:389
 AliITSRealignTracks.cxx:390
 AliITSRealignTracks.cxx:391
 AliITSRealignTracks.cxx:392
 AliITSRealignTracks.cxx:393
 AliITSRealignTracks.cxx:394
 AliITSRealignTracks.cxx:395
 AliITSRealignTracks.cxx:396
 AliITSRealignTracks.cxx:397
 AliITSRealignTracks.cxx:398
 AliITSRealignTracks.cxx:399
 AliITSRealignTracks.cxx:400
 AliITSRealignTracks.cxx:401
 AliITSRealignTracks.cxx:402
 AliITSRealignTracks.cxx:403
 AliITSRealignTracks.cxx:404
 AliITSRealignTracks.cxx:405
 AliITSRealignTracks.cxx:406
 AliITSRealignTracks.cxx:407
 AliITSRealignTracks.cxx:408
 AliITSRealignTracks.cxx:409
 AliITSRealignTracks.cxx:410
 AliITSRealignTracks.cxx:411
 AliITSRealignTracks.cxx:412
 AliITSRealignTracks.cxx:413
 AliITSRealignTracks.cxx:414
 AliITSRealignTracks.cxx:415
 AliITSRealignTracks.cxx:416
 AliITSRealignTracks.cxx:417
 AliITSRealignTracks.cxx:418
 AliITSRealignTracks.cxx:419
 AliITSRealignTracks.cxx:420
 AliITSRealignTracks.cxx:421
 AliITSRealignTracks.cxx:422
 AliITSRealignTracks.cxx:423
 AliITSRealignTracks.cxx:424
 AliITSRealignTracks.cxx:425
 AliITSRealignTracks.cxx:426
 AliITSRealignTracks.cxx:427
 AliITSRealignTracks.cxx:428
 AliITSRealignTracks.cxx:429
 AliITSRealignTracks.cxx:430
 AliITSRealignTracks.cxx:431
 AliITSRealignTracks.cxx:432
 AliITSRealignTracks.cxx:433
 AliITSRealignTracks.cxx:434
 AliITSRealignTracks.cxx:435
 AliITSRealignTracks.cxx:436
 AliITSRealignTracks.cxx:437
 AliITSRealignTracks.cxx:438
 AliITSRealignTracks.cxx:439
 AliITSRealignTracks.cxx:440
 AliITSRealignTracks.cxx:441
 AliITSRealignTracks.cxx:442
 AliITSRealignTracks.cxx:443
 AliITSRealignTracks.cxx:444
 AliITSRealignTracks.cxx:445
 AliITSRealignTracks.cxx:446
 AliITSRealignTracks.cxx:447
 AliITSRealignTracks.cxx:448
 AliITSRealignTracks.cxx:449
 AliITSRealignTracks.cxx:450
 AliITSRealignTracks.cxx:451
 AliITSRealignTracks.cxx:452
 AliITSRealignTracks.cxx:453
 AliITSRealignTracks.cxx:454
 AliITSRealignTracks.cxx:455
 AliITSRealignTracks.cxx:456
 AliITSRealignTracks.cxx:457
 AliITSRealignTracks.cxx:458
 AliITSRealignTracks.cxx:459
 AliITSRealignTracks.cxx:460
 AliITSRealignTracks.cxx:461
 AliITSRealignTracks.cxx:462
 AliITSRealignTracks.cxx:463
 AliITSRealignTracks.cxx:464
 AliITSRealignTracks.cxx:465
 AliITSRealignTracks.cxx:466
 AliITSRealignTracks.cxx:467
 AliITSRealignTracks.cxx:468
 AliITSRealignTracks.cxx:469
 AliITSRealignTracks.cxx:470
 AliITSRealignTracks.cxx:471
 AliITSRealignTracks.cxx:472
 AliITSRealignTracks.cxx:473
 AliITSRealignTracks.cxx:474
 AliITSRealignTracks.cxx:475
 AliITSRealignTracks.cxx:476
 AliITSRealignTracks.cxx:477
 AliITSRealignTracks.cxx:478
 AliITSRealignTracks.cxx:479
 AliITSRealignTracks.cxx:480
 AliITSRealignTracks.cxx:481
 AliITSRealignTracks.cxx:482
 AliITSRealignTracks.cxx:483
 AliITSRealignTracks.cxx:484
 AliITSRealignTracks.cxx:485
 AliITSRealignTracks.cxx:486
 AliITSRealignTracks.cxx:487
 AliITSRealignTracks.cxx:488
 AliITSRealignTracks.cxx:489
 AliITSRealignTracks.cxx:490
 AliITSRealignTracks.cxx:491
 AliITSRealignTracks.cxx:492
 AliITSRealignTracks.cxx:493
 AliITSRealignTracks.cxx:494
 AliITSRealignTracks.cxx:495
 AliITSRealignTracks.cxx:496
 AliITSRealignTracks.cxx:497
 AliITSRealignTracks.cxx:498
 AliITSRealignTracks.cxx:499
 AliITSRealignTracks.cxx:500
 AliITSRealignTracks.cxx:501
 AliITSRealignTracks.cxx:502
 AliITSRealignTracks.cxx:503
 AliITSRealignTracks.cxx:504
 AliITSRealignTracks.cxx:505
 AliITSRealignTracks.cxx:506
 AliITSRealignTracks.cxx:507
 AliITSRealignTracks.cxx:508
 AliITSRealignTracks.cxx:509
 AliITSRealignTracks.cxx:510
 AliITSRealignTracks.cxx:511
 AliITSRealignTracks.cxx:512
 AliITSRealignTracks.cxx:513
 AliITSRealignTracks.cxx:514
 AliITSRealignTracks.cxx:515
 AliITSRealignTracks.cxx:516
 AliITSRealignTracks.cxx:517
 AliITSRealignTracks.cxx:518
 AliITSRealignTracks.cxx:519
 AliITSRealignTracks.cxx:520
 AliITSRealignTracks.cxx:521
 AliITSRealignTracks.cxx:522
 AliITSRealignTracks.cxx:523
 AliITSRealignTracks.cxx:524
 AliITSRealignTracks.cxx:525
 AliITSRealignTracks.cxx:526
 AliITSRealignTracks.cxx:527
 AliITSRealignTracks.cxx:528
 AliITSRealignTracks.cxx:529
 AliITSRealignTracks.cxx:530
 AliITSRealignTracks.cxx:531
 AliITSRealignTracks.cxx:532
 AliITSRealignTracks.cxx:533
 AliITSRealignTracks.cxx:534
 AliITSRealignTracks.cxx:535
 AliITSRealignTracks.cxx:536
 AliITSRealignTracks.cxx:537
 AliITSRealignTracks.cxx:538
 AliITSRealignTracks.cxx:539
 AliITSRealignTracks.cxx:540
 AliITSRealignTracks.cxx:541
 AliITSRealignTracks.cxx:542
 AliITSRealignTracks.cxx:543
 AliITSRealignTracks.cxx:544
 AliITSRealignTracks.cxx:545
 AliITSRealignTracks.cxx:546
 AliITSRealignTracks.cxx:547
 AliITSRealignTracks.cxx:548
 AliITSRealignTracks.cxx:549
 AliITSRealignTracks.cxx:550
 AliITSRealignTracks.cxx:551
 AliITSRealignTracks.cxx:552
 AliITSRealignTracks.cxx:553
 AliITSRealignTracks.cxx:554
 AliITSRealignTracks.cxx:555
 AliITSRealignTracks.cxx:556
 AliITSRealignTracks.cxx:557
 AliITSRealignTracks.cxx:558
 AliITSRealignTracks.cxx:559
 AliITSRealignTracks.cxx:560
 AliITSRealignTracks.cxx:561
 AliITSRealignTracks.cxx:562
 AliITSRealignTracks.cxx:563
 AliITSRealignTracks.cxx:564
 AliITSRealignTracks.cxx:565
 AliITSRealignTracks.cxx:566
 AliITSRealignTracks.cxx:567
 AliITSRealignTracks.cxx:568
 AliITSRealignTracks.cxx:569
 AliITSRealignTracks.cxx:570
 AliITSRealignTracks.cxx:571
 AliITSRealignTracks.cxx:572
 AliITSRealignTracks.cxx:573
 AliITSRealignTracks.cxx:574
 AliITSRealignTracks.cxx:575
 AliITSRealignTracks.cxx:576
 AliITSRealignTracks.cxx:577
 AliITSRealignTracks.cxx:578
 AliITSRealignTracks.cxx:579
 AliITSRealignTracks.cxx:580
 AliITSRealignTracks.cxx:581
 AliITSRealignTracks.cxx:582
 AliITSRealignTracks.cxx:583
 AliITSRealignTracks.cxx:584
 AliITSRealignTracks.cxx:585
 AliITSRealignTracks.cxx:586
 AliITSRealignTracks.cxx:587
 AliITSRealignTracks.cxx:588
 AliITSRealignTracks.cxx:589
 AliITSRealignTracks.cxx:590
 AliITSRealignTracks.cxx:591
 AliITSRealignTracks.cxx:592
 AliITSRealignTracks.cxx:593
 AliITSRealignTracks.cxx:594
 AliITSRealignTracks.cxx:595
 AliITSRealignTracks.cxx:596
 AliITSRealignTracks.cxx:597
 AliITSRealignTracks.cxx:598
 AliITSRealignTracks.cxx:599
 AliITSRealignTracks.cxx:600
 AliITSRealignTracks.cxx:601
 AliITSRealignTracks.cxx:602
 AliITSRealignTracks.cxx:603
 AliITSRealignTracks.cxx:604
 AliITSRealignTracks.cxx:605
 AliITSRealignTracks.cxx:606
 AliITSRealignTracks.cxx:607
 AliITSRealignTracks.cxx:608
 AliITSRealignTracks.cxx:609
 AliITSRealignTracks.cxx:610
 AliITSRealignTracks.cxx:611
 AliITSRealignTracks.cxx:612
 AliITSRealignTracks.cxx:613
 AliITSRealignTracks.cxx:614
 AliITSRealignTracks.cxx:615
 AliITSRealignTracks.cxx:616
 AliITSRealignTracks.cxx:617
 AliITSRealignTracks.cxx:618
 AliITSRealignTracks.cxx:619
 AliITSRealignTracks.cxx:620
 AliITSRealignTracks.cxx:621
 AliITSRealignTracks.cxx:622
 AliITSRealignTracks.cxx:623
 AliITSRealignTracks.cxx:624
 AliITSRealignTracks.cxx:625
 AliITSRealignTracks.cxx:626
 AliITSRealignTracks.cxx:627
 AliITSRealignTracks.cxx:628
 AliITSRealignTracks.cxx:629
 AliITSRealignTracks.cxx:630
 AliITSRealignTracks.cxx:631
 AliITSRealignTracks.cxx:632
 AliITSRealignTracks.cxx:633
 AliITSRealignTracks.cxx:634
 AliITSRealignTracks.cxx:635
 AliITSRealignTracks.cxx:636
 AliITSRealignTracks.cxx:637
 AliITSRealignTracks.cxx:638
 AliITSRealignTracks.cxx:639
 AliITSRealignTracks.cxx:640
 AliITSRealignTracks.cxx:641
 AliITSRealignTracks.cxx:642
 AliITSRealignTracks.cxx:643
 AliITSRealignTracks.cxx:644
 AliITSRealignTracks.cxx:645
 AliITSRealignTracks.cxx:646
 AliITSRealignTracks.cxx:647
 AliITSRealignTracks.cxx:648
 AliITSRealignTracks.cxx:649
 AliITSRealignTracks.cxx:650
 AliITSRealignTracks.cxx:651
 AliITSRealignTracks.cxx:652
 AliITSRealignTracks.cxx:653
 AliITSRealignTracks.cxx:654
 AliITSRealignTracks.cxx:655
 AliITSRealignTracks.cxx:656
 AliITSRealignTracks.cxx:657
 AliITSRealignTracks.cxx:658
 AliITSRealignTracks.cxx:659
 AliITSRealignTracks.cxx:660
 AliITSRealignTracks.cxx:661
 AliITSRealignTracks.cxx:662
 AliITSRealignTracks.cxx:663
 AliITSRealignTracks.cxx:664
 AliITSRealignTracks.cxx:665
 AliITSRealignTracks.cxx:666
 AliITSRealignTracks.cxx:667
 AliITSRealignTracks.cxx:668
 AliITSRealignTracks.cxx:669
 AliITSRealignTracks.cxx:670
 AliITSRealignTracks.cxx:671
 AliITSRealignTracks.cxx:672
 AliITSRealignTracks.cxx:673
 AliITSRealignTracks.cxx:674
 AliITSRealignTracks.cxx:675
 AliITSRealignTracks.cxx:676
 AliITSRealignTracks.cxx:677
 AliITSRealignTracks.cxx:678
 AliITSRealignTracks.cxx:679
 AliITSRealignTracks.cxx:680
 AliITSRealignTracks.cxx:681
 AliITSRealignTracks.cxx:682
 AliITSRealignTracks.cxx:683
 AliITSRealignTracks.cxx:684
 AliITSRealignTracks.cxx:685
 AliITSRealignTracks.cxx:686
 AliITSRealignTracks.cxx:687
 AliITSRealignTracks.cxx:688
 AliITSRealignTracks.cxx:689
 AliITSRealignTracks.cxx:690
 AliITSRealignTracks.cxx:691
 AliITSRealignTracks.cxx:692
 AliITSRealignTracks.cxx:693
 AliITSRealignTracks.cxx:694
 AliITSRealignTracks.cxx:695
 AliITSRealignTracks.cxx:696
 AliITSRealignTracks.cxx:697
 AliITSRealignTracks.cxx:698
 AliITSRealignTracks.cxx:699
 AliITSRealignTracks.cxx:700
 AliITSRealignTracks.cxx:701
 AliITSRealignTracks.cxx:702
 AliITSRealignTracks.cxx:703
 AliITSRealignTracks.cxx:704
 AliITSRealignTracks.cxx:705
 AliITSRealignTracks.cxx:706
 AliITSRealignTracks.cxx:707
 AliITSRealignTracks.cxx:708
 AliITSRealignTracks.cxx:709
 AliITSRealignTracks.cxx:710
 AliITSRealignTracks.cxx:711
 AliITSRealignTracks.cxx:712
 AliITSRealignTracks.cxx:713
 AliITSRealignTracks.cxx:714
 AliITSRealignTracks.cxx:715
 AliITSRealignTracks.cxx:716
 AliITSRealignTracks.cxx:717
 AliITSRealignTracks.cxx:718
 AliITSRealignTracks.cxx:719
 AliITSRealignTracks.cxx:720
 AliITSRealignTracks.cxx:721
 AliITSRealignTracks.cxx:722
 AliITSRealignTracks.cxx:723
 AliITSRealignTracks.cxx:724
 AliITSRealignTracks.cxx:725
 AliITSRealignTracks.cxx:726
 AliITSRealignTracks.cxx:727
 AliITSRealignTracks.cxx:728
 AliITSRealignTracks.cxx:729
 AliITSRealignTracks.cxx:730
 AliITSRealignTracks.cxx:731
 AliITSRealignTracks.cxx:732
 AliITSRealignTracks.cxx:733
 AliITSRealignTracks.cxx:734
 AliITSRealignTracks.cxx:735
 AliITSRealignTracks.cxx:736
 AliITSRealignTracks.cxx:737
 AliITSRealignTracks.cxx:738
 AliITSRealignTracks.cxx:739
 AliITSRealignTracks.cxx:740
 AliITSRealignTracks.cxx:741
 AliITSRealignTracks.cxx:742
 AliITSRealignTracks.cxx:743
 AliITSRealignTracks.cxx:744
 AliITSRealignTracks.cxx:745
 AliITSRealignTracks.cxx:746
 AliITSRealignTracks.cxx:747
 AliITSRealignTracks.cxx:748
 AliITSRealignTracks.cxx:749
 AliITSRealignTracks.cxx:750
 AliITSRealignTracks.cxx:751
 AliITSRealignTracks.cxx:752
 AliITSRealignTracks.cxx:753
 AliITSRealignTracks.cxx:754
 AliITSRealignTracks.cxx:755
 AliITSRealignTracks.cxx:756
 AliITSRealignTracks.cxx:757
 AliITSRealignTracks.cxx:758
 AliITSRealignTracks.cxx:759
 AliITSRealignTracks.cxx:760
 AliITSRealignTracks.cxx:761
 AliITSRealignTracks.cxx:762
 AliITSRealignTracks.cxx:763
 AliITSRealignTracks.cxx:764
 AliITSRealignTracks.cxx:765
 AliITSRealignTracks.cxx:766
 AliITSRealignTracks.cxx:767
 AliITSRealignTracks.cxx:768
 AliITSRealignTracks.cxx:769
 AliITSRealignTracks.cxx:770
 AliITSRealignTracks.cxx:771
 AliITSRealignTracks.cxx:772
 AliITSRealignTracks.cxx:773
 AliITSRealignTracks.cxx:774
 AliITSRealignTracks.cxx:775
 AliITSRealignTracks.cxx:776
 AliITSRealignTracks.cxx:777
 AliITSRealignTracks.cxx:778
 AliITSRealignTracks.cxx:779
 AliITSRealignTracks.cxx:780
 AliITSRealignTracks.cxx:781
 AliITSRealignTracks.cxx:782
 AliITSRealignTracks.cxx:783
 AliITSRealignTracks.cxx:784
 AliITSRealignTracks.cxx:785
 AliITSRealignTracks.cxx:786
 AliITSRealignTracks.cxx:787
 AliITSRealignTracks.cxx:788
 AliITSRealignTracks.cxx:789
 AliITSRealignTracks.cxx:790
 AliITSRealignTracks.cxx:791
 AliITSRealignTracks.cxx:792
 AliITSRealignTracks.cxx:793
 AliITSRealignTracks.cxx:794
 AliITSRealignTracks.cxx:795
 AliITSRealignTracks.cxx:796
 AliITSRealignTracks.cxx:797
 AliITSRealignTracks.cxx:798
 AliITSRealignTracks.cxx:799
 AliITSRealignTracks.cxx:800
 AliITSRealignTracks.cxx:801
 AliITSRealignTracks.cxx:802
 AliITSRealignTracks.cxx:803
 AliITSRealignTracks.cxx:804
 AliITSRealignTracks.cxx:805
 AliITSRealignTracks.cxx:806
 AliITSRealignTracks.cxx:807
 AliITSRealignTracks.cxx:808
 AliITSRealignTracks.cxx:809
 AliITSRealignTracks.cxx:810
 AliITSRealignTracks.cxx:811
 AliITSRealignTracks.cxx:812
 AliITSRealignTracks.cxx:813
 AliITSRealignTracks.cxx:814
 AliITSRealignTracks.cxx:815
 AliITSRealignTracks.cxx:816
 AliITSRealignTracks.cxx:817
 AliITSRealignTracks.cxx:818
 AliITSRealignTracks.cxx:819
 AliITSRealignTracks.cxx:820
 AliITSRealignTracks.cxx:821
 AliITSRealignTracks.cxx:822
 AliITSRealignTracks.cxx:823
 AliITSRealignTracks.cxx:824
 AliITSRealignTracks.cxx:825
 AliITSRealignTracks.cxx:826
 AliITSRealignTracks.cxx:827
 AliITSRealignTracks.cxx:828
 AliITSRealignTracks.cxx:829
 AliITSRealignTracks.cxx:830
 AliITSRealignTracks.cxx:831
 AliITSRealignTracks.cxx:832
 AliITSRealignTracks.cxx:833
 AliITSRealignTracks.cxx:834
 AliITSRealignTracks.cxx:835
 AliITSRealignTracks.cxx:836
 AliITSRealignTracks.cxx:837
 AliITSRealignTracks.cxx:838
 AliITSRealignTracks.cxx:839
 AliITSRealignTracks.cxx:840
 AliITSRealignTracks.cxx:841
 AliITSRealignTracks.cxx:842
 AliITSRealignTracks.cxx:843
 AliITSRealignTracks.cxx:844
 AliITSRealignTracks.cxx:845
 AliITSRealignTracks.cxx:846
 AliITSRealignTracks.cxx:847
 AliITSRealignTracks.cxx:848
 AliITSRealignTracks.cxx:849
 AliITSRealignTracks.cxx:850
 AliITSRealignTracks.cxx:851
 AliITSRealignTracks.cxx:852
 AliITSRealignTracks.cxx:853
 AliITSRealignTracks.cxx:854
 AliITSRealignTracks.cxx:855
 AliITSRealignTracks.cxx:856
 AliITSRealignTracks.cxx:857
 AliITSRealignTracks.cxx:858
 AliITSRealignTracks.cxx:859
 AliITSRealignTracks.cxx:860
 AliITSRealignTracks.cxx:861
 AliITSRealignTracks.cxx:862
 AliITSRealignTracks.cxx:863
 AliITSRealignTracks.cxx:864
 AliITSRealignTracks.cxx:865
 AliITSRealignTracks.cxx:866
 AliITSRealignTracks.cxx:867
 AliITSRealignTracks.cxx:868
 AliITSRealignTracks.cxx:869
 AliITSRealignTracks.cxx:870
 AliITSRealignTracks.cxx:871
 AliITSRealignTracks.cxx:872
 AliITSRealignTracks.cxx:873
 AliITSRealignTracks.cxx:874
 AliITSRealignTracks.cxx:875
 AliITSRealignTracks.cxx:876
 AliITSRealignTracks.cxx:877
 AliITSRealignTracks.cxx:878
 AliITSRealignTracks.cxx:879
 AliITSRealignTracks.cxx:880
 AliITSRealignTracks.cxx:881
 AliITSRealignTracks.cxx:882
 AliITSRealignTracks.cxx:883
 AliITSRealignTracks.cxx:884
 AliITSRealignTracks.cxx:885
 AliITSRealignTracks.cxx:886
 AliITSRealignTracks.cxx:887
 AliITSRealignTracks.cxx:888
 AliITSRealignTracks.cxx:889
 AliITSRealignTracks.cxx:890
 AliITSRealignTracks.cxx:891
 AliITSRealignTracks.cxx:892
 AliITSRealignTracks.cxx:893
 AliITSRealignTracks.cxx:894
 AliITSRealignTracks.cxx:895
 AliITSRealignTracks.cxx:896
 AliITSRealignTracks.cxx:897
 AliITSRealignTracks.cxx:898
 AliITSRealignTracks.cxx:899
 AliITSRealignTracks.cxx:900
 AliITSRealignTracks.cxx:901
 AliITSRealignTracks.cxx:902
 AliITSRealignTracks.cxx:903
 AliITSRealignTracks.cxx:904
 AliITSRealignTracks.cxx:905
 AliITSRealignTracks.cxx:906
 AliITSRealignTracks.cxx:907
 AliITSRealignTracks.cxx:908
 AliITSRealignTracks.cxx:909
 AliITSRealignTracks.cxx:910
 AliITSRealignTracks.cxx:911
 AliITSRealignTracks.cxx:912
 AliITSRealignTracks.cxx:913
 AliITSRealignTracks.cxx:914
 AliITSRealignTracks.cxx:915
 AliITSRealignTracks.cxx:916
 AliITSRealignTracks.cxx:917
 AliITSRealignTracks.cxx:918
 AliITSRealignTracks.cxx:919
 AliITSRealignTracks.cxx:920
 AliITSRealignTracks.cxx:921
 AliITSRealignTracks.cxx:922
 AliITSRealignTracks.cxx:923
 AliITSRealignTracks.cxx:924
 AliITSRealignTracks.cxx:925
 AliITSRealignTracks.cxx:926
 AliITSRealignTracks.cxx:927
 AliITSRealignTracks.cxx:928
 AliITSRealignTracks.cxx:929
 AliITSRealignTracks.cxx:930
 AliITSRealignTracks.cxx:931
 AliITSRealignTracks.cxx:932
 AliITSRealignTracks.cxx:933
 AliITSRealignTracks.cxx:934
 AliITSRealignTracks.cxx:935
 AliITSRealignTracks.cxx:936
 AliITSRealignTracks.cxx:937
 AliITSRealignTracks.cxx:938
 AliITSRealignTracks.cxx:939
 AliITSRealignTracks.cxx:940
 AliITSRealignTracks.cxx:941
 AliITSRealignTracks.cxx:942
 AliITSRealignTracks.cxx:943
 AliITSRealignTracks.cxx:944
 AliITSRealignTracks.cxx:945
 AliITSRealignTracks.cxx:946
 AliITSRealignTracks.cxx:947
 AliITSRealignTracks.cxx:948
 AliITSRealignTracks.cxx:949
 AliITSRealignTracks.cxx:950
 AliITSRealignTracks.cxx:951
 AliITSRealignTracks.cxx:952
 AliITSRealignTracks.cxx:953
 AliITSRealignTracks.cxx:954
 AliITSRealignTracks.cxx:955
 AliITSRealignTracks.cxx:956
 AliITSRealignTracks.cxx:957
 AliITSRealignTracks.cxx:958
 AliITSRealignTracks.cxx:959
 AliITSRealignTracks.cxx:960
 AliITSRealignTracks.cxx:961
 AliITSRealignTracks.cxx:962
 AliITSRealignTracks.cxx:963
 AliITSRealignTracks.cxx:964
 AliITSRealignTracks.cxx:965
 AliITSRealignTracks.cxx:966
 AliITSRealignTracks.cxx:967
 AliITSRealignTracks.cxx:968
 AliITSRealignTracks.cxx:969
 AliITSRealignTracks.cxx:970
 AliITSRealignTracks.cxx:971
 AliITSRealignTracks.cxx:972
 AliITSRealignTracks.cxx:973
 AliITSRealignTracks.cxx:974
 AliITSRealignTracks.cxx:975
 AliITSRealignTracks.cxx:976
 AliITSRealignTracks.cxx:977
 AliITSRealignTracks.cxx:978
 AliITSRealignTracks.cxx:979
 AliITSRealignTracks.cxx:980
 AliITSRealignTracks.cxx:981
 AliITSRealignTracks.cxx:982
 AliITSRealignTracks.cxx:983
 AliITSRealignTracks.cxx:984
 AliITSRealignTracks.cxx:985
 AliITSRealignTracks.cxx:986
 AliITSRealignTracks.cxx:987
 AliITSRealignTracks.cxx:988
 AliITSRealignTracks.cxx:989
 AliITSRealignTracks.cxx:990
 AliITSRealignTracks.cxx:991
 AliITSRealignTracks.cxx:992
 AliITSRealignTracks.cxx:993
 AliITSRealignTracks.cxx:994
 AliITSRealignTracks.cxx:995
 AliITSRealignTracks.cxx:996
 AliITSRealignTracks.cxx:997
 AliITSRealignTracks.cxx:998
 AliITSRealignTracks.cxx:999
 AliITSRealignTracks.cxx:1000
 AliITSRealignTracks.cxx:1001
 AliITSRealignTracks.cxx:1002
 AliITSRealignTracks.cxx:1003
 AliITSRealignTracks.cxx:1004
 AliITSRealignTracks.cxx:1005
 AliITSRealignTracks.cxx:1006
 AliITSRealignTracks.cxx:1007
 AliITSRealignTracks.cxx:1008
 AliITSRealignTracks.cxx:1009
 AliITSRealignTracks.cxx:1010
 AliITSRealignTracks.cxx:1011
 AliITSRealignTracks.cxx:1012
 AliITSRealignTracks.cxx:1013
 AliITSRealignTracks.cxx:1014
 AliITSRealignTracks.cxx:1015
 AliITSRealignTracks.cxx:1016
 AliITSRealignTracks.cxx:1017
 AliITSRealignTracks.cxx:1018
 AliITSRealignTracks.cxx:1019
 AliITSRealignTracks.cxx:1020
 AliITSRealignTracks.cxx:1021
 AliITSRealignTracks.cxx:1022
 AliITSRealignTracks.cxx:1023
 AliITSRealignTracks.cxx:1024
 AliITSRealignTracks.cxx:1025
 AliITSRealignTracks.cxx:1026
 AliITSRealignTracks.cxx:1027
 AliITSRealignTracks.cxx:1028
 AliITSRealignTracks.cxx:1029
 AliITSRealignTracks.cxx:1030
 AliITSRealignTracks.cxx:1031
 AliITSRealignTracks.cxx:1032
 AliITSRealignTracks.cxx:1033
 AliITSRealignTracks.cxx:1034
 AliITSRealignTracks.cxx:1035
 AliITSRealignTracks.cxx:1036
 AliITSRealignTracks.cxx:1037
 AliITSRealignTracks.cxx:1038
 AliITSRealignTracks.cxx:1039
 AliITSRealignTracks.cxx:1040
 AliITSRealignTracks.cxx:1041
 AliITSRealignTracks.cxx:1042
 AliITSRealignTracks.cxx:1043
 AliITSRealignTracks.cxx:1044
 AliITSRealignTracks.cxx:1045
 AliITSRealignTracks.cxx:1046
 AliITSRealignTracks.cxx:1047
 AliITSRealignTracks.cxx:1048
 AliITSRealignTracks.cxx:1049
 AliITSRealignTracks.cxx:1050
 AliITSRealignTracks.cxx:1051
 AliITSRealignTracks.cxx:1052
 AliITSRealignTracks.cxx:1053
 AliITSRealignTracks.cxx:1054
 AliITSRealignTracks.cxx:1055
 AliITSRealignTracks.cxx:1056
 AliITSRealignTracks.cxx:1057
 AliITSRealignTracks.cxx:1058
 AliITSRealignTracks.cxx:1059
 AliITSRealignTracks.cxx:1060
 AliITSRealignTracks.cxx:1061
 AliITSRealignTracks.cxx:1062
 AliITSRealignTracks.cxx:1063
 AliITSRealignTracks.cxx:1064
 AliITSRealignTracks.cxx:1065
 AliITSRealignTracks.cxx:1066
 AliITSRealignTracks.cxx:1067
 AliITSRealignTracks.cxx:1068
 AliITSRealignTracks.cxx:1069
 AliITSRealignTracks.cxx:1070
 AliITSRealignTracks.cxx:1071
 AliITSRealignTracks.cxx:1072
 AliITSRealignTracks.cxx:1073
 AliITSRealignTracks.cxx:1074
 AliITSRealignTracks.cxx:1075
 AliITSRealignTracks.cxx:1076
 AliITSRealignTracks.cxx:1077
 AliITSRealignTracks.cxx:1078
 AliITSRealignTracks.cxx:1079
 AliITSRealignTracks.cxx:1080
 AliITSRealignTracks.cxx:1081
 AliITSRealignTracks.cxx:1082
 AliITSRealignTracks.cxx:1083
 AliITSRealignTracks.cxx:1084
 AliITSRealignTracks.cxx:1085
 AliITSRealignTracks.cxx:1086
 AliITSRealignTracks.cxx:1087
 AliITSRealignTracks.cxx:1088
 AliITSRealignTracks.cxx:1089
 AliITSRealignTracks.cxx:1090
 AliITSRealignTracks.cxx:1091
 AliITSRealignTracks.cxx:1092
 AliITSRealignTracks.cxx:1093
 AliITSRealignTracks.cxx:1094
 AliITSRealignTracks.cxx:1095
 AliITSRealignTracks.cxx:1096
 AliITSRealignTracks.cxx:1097
 AliITSRealignTracks.cxx:1098
 AliITSRealignTracks.cxx:1099
 AliITSRealignTracks.cxx:1100
 AliITSRealignTracks.cxx:1101
 AliITSRealignTracks.cxx:1102
 AliITSRealignTracks.cxx:1103
 AliITSRealignTracks.cxx:1104
 AliITSRealignTracks.cxx:1105
 AliITSRealignTracks.cxx:1106
 AliITSRealignTracks.cxx:1107
 AliITSRealignTracks.cxx:1108
 AliITSRealignTracks.cxx:1109
 AliITSRealignTracks.cxx:1110
 AliITSRealignTracks.cxx:1111
 AliITSRealignTracks.cxx:1112
 AliITSRealignTracks.cxx:1113
 AliITSRealignTracks.cxx:1114
 AliITSRealignTracks.cxx:1115
 AliITSRealignTracks.cxx:1116
 AliITSRealignTracks.cxx:1117
 AliITSRealignTracks.cxx:1118
 AliITSRealignTracks.cxx:1119
 AliITSRealignTracks.cxx:1120
 AliITSRealignTracks.cxx:1121
 AliITSRealignTracks.cxx:1122
 AliITSRealignTracks.cxx:1123
 AliITSRealignTracks.cxx:1124
 AliITSRealignTracks.cxx:1125
 AliITSRealignTracks.cxx:1126
 AliITSRealignTracks.cxx:1127
 AliITSRealignTracks.cxx:1128
 AliITSRealignTracks.cxx:1129
 AliITSRealignTracks.cxx:1130
 AliITSRealignTracks.cxx:1131
 AliITSRealignTracks.cxx:1132
 AliITSRealignTracks.cxx:1133
 AliITSRealignTracks.cxx:1134
 AliITSRealignTracks.cxx:1135
 AliITSRealignTracks.cxx:1136
 AliITSRealignTracks.cxx:1137
 AliITSRealignTracks.cxx:1138
 AliITSRealignTracks.cxx:1139
 AliITSRealignTracks.cxx:1140
 AliITSRealignTracks.cxx:1141
 AliITSRealignTracks.cxx:1142
 AliITSRealignTracks.cxx:1143
 AliITSRealignTracks.cxx:1144
 AliITSRealignTracks.cxx:1145
 AliITSRealignTracks.cxx:1146
 AliITSRealignTracks.cxx:1147
 AliITSRealignTracks.cxx:1148
 AliITSRealignTracks.cxx:1149
 AliITSRealignTracks.cxx:1150
 AliITSRealignTracks.cxx:1151
 AliITSRealignTracks.cxx:1152
 AliITSRealignTracks.cxx:1153
 AliITSRealignTracks.cxx:1154
 AliITSRealignTracks.cxx:1155
 AliITSRealignTracks.cxx:1156
 AliITSRealignTracks.cxx:1157
 AliITSRealignTracks.cxx:1158
 AliITSRealignTracks.cxx:1159
 AliITSRealignTracks.cxx:1160
 AliITSRealignTracks.cxx:1161
 AliITSRealignTracks.cxx:1162
 AliITSRealignTracks.cxx:1163
 AliITSRealignTracks.cxx:1164
 AliITSRealignTracks.cxx:1165
 AliITSRealignTracks.cxx:1166
 AliITSRealignTracks.cxx:1167
 AliITSRealignTracks.cxx:1168
 AliITSRealignTracks.cxx:1169
 AliITSRealignTracks.cxx:1170
 AliITSRealignTracks.cxx:1171
 AliITSRealignTracks.cxx:1172
 AliITSRealignTracks.cxx:1173
 AliITSRealignTracks.cxx:1174
 AliITSRealignTracks.cxx:1175
 AliITSRealignTracks.cxx:1176
 AliITSRealignTracks.cxx:1177
 AliITSRealignTracks.cxx:1178
 AliITSRealignTracks.cxx:1179
 AliITSRealignTracks.cxx:1180
 AliITSRealignTracks.cxx:1181
 AliITSRealignTracks.cxx:1182
 AliITSRealignTracks.cxx:1183
 AliITSRealignTracks.cxx:1184
 AliITSRealignTracks.cxx:1185
 AliITSRealignTracks.cxx:1186
 AliITSRealignTracks.cxx:1187
 AliITSRealignTracks.cxx:1188
 AliITSRealignTracks.cxx:1189
 AliITSRealignTracks.cxx:1190
 AliITSRealignTracks.cxx:1191
 AliITSRealignTracks.cxx:1192
 AliITSRealignTracks.cxx:1193
 AliITSRealignTracks.cxx:1194
 AliITSRealignTracks.cxx:1195
 AliITSRealignTracks.cxx:1196
 AliITSRealignTracks.cxx:1197
 AliITSRealignTracks.cxx:1198
 AliITSRealignTracks.cxx:1199
 AliITSRealignTracks.cxx:1200
 AliITSRealignTracks.cxx:1201
 AliITSRealignTracks.cxx:1202
 AliITSRealignTracks.cxx:1203
 AliITSRealignTracks.cxx:1204
 AliITSRealignTracks.cxx:1205
 AliITSRealignTracks.cxx:1206
 AliITSRealignTracks.cxx:1207
 AliITSRealignTracks.cxx:1208
 AliITSRealignTracks.cxx:1209
 AliITSRealignTracks.cxx:1210
 AliITSRealignTracks.cxx:1211
 AliITSRealignTracks.cxx:1212
 AliITSRealignTracks.cxx:1213
 AliITSRealignTracks.cxx:1214
 AliITSRealignTracks.cxx:1215
 AliITSRealignTracks.cxx:1216
 AliITSRealignTracks.cxx:1217
 AliITSRealignTracks.cxx:1218
 AliITSRealignTracks.cxx:1219
 AliITSRealignTracks.cxx:1220
 AliITSRealignTracks.cxx:1221
 AliITSRealignTracks.cxx:1222
 AliITSRealignTracks.cxx:1223
 AliITSRealignTracks.cxx:1224
 AliITSRealignTracks.cxx:1225
 AliITSRealignTracks.cxx:1226
 AliITSRealignTracks.cxx:1227
 AliITSRealignTracks.cxx:1228
 AliITSRealignTracks.cxx:1229
 AliITSRealignTracks.cxx:1230
 AliITSRealignTracks.cxx:1231
 AliITSRealignTracks.cxx:1232
 AliITSRealignTracks.cxx:1233
 AliITSRealignTracks.cxx:1234
 AliITSRealignTracks.cxx:1235
 AliITSRealignTracks.cxx:1236
 AliITSRealignTracks.cxx:1237
 AliITSRealignTracks.cxx:1238
 AliITSRealignTracks.cxx:1239
 AliITSRealignTracks.cxx:1240
 AliITSRealignTracks.cxx:1241
 AliITSRealignTracks.cxx:1242
 AliITSRealignTracks.cxx:1243
 AliITSRealignTracks.cxx:1244
 AliITSRealignTracks.cxx:1245
 AliITSRealignTracks.cxx:1246
 AliITSRealignTracks.cxx:1247
 AliITSRealignTracks.cxx:1248
 AliITSRealignTracks.cxx:1249
 AliITSRealignTracks.cxx:1250
 AliITSRealignTracks.cxx:1251
 AliITSRealignTracks.cxx:1252
 AliITSRealignTracks.cxx:1253
 AliITSRealignTracks.cxx:1254
 AliITSRealignTracks.cxx:1255
 AliITSRealignTracks.cxx:1256
 AliITSRealignTracks.cxx:1257
 AliITSRealignTracks.cxx:1258
 AliITSRealignTracks.cxx:1259
 AliITSRealignTracks.cxx:1260
 AliITSRealignTracks.cxx:1261
 AliITSRealignTracks.cxx:1262
 AliITSRealignTracks.cxx:1263
 AliITSRealignTracks.cxx:1264
 AliITSRealignTracks.cxx:1265
 AliITSRealignTracks.cxx:1266
 AliITSRealignTracks.cxx:1267
 AliITSRealignTracks.cxx:1268
 AliITSRealignTracks.cxx:1269
 AliITSRealignTracks.cxx:1270
 AliITSRealignTracks.cxx:1271
 AliITSRealignTracks.cxx:1272
 AliITSRealignTracks.cxx:1273
 AliITSRealignTracks.cxx:1274
 AliITSRealignTracks.cxx:1275
 AliITSRealignTracks.cxx:1276
 AliITSRealignTracks.cxx:1277
 AliITSRealignTracks.cxx:1278
 AliITSRealignTracks.cxx:1279
 AliITSRealignTracks.cxx:1280
 AliITSRealignTracks.cxx:1281
 AliITSRealignTracks.cxx:1282
 AliITSRealignTracks.cxx:1283
 AliITSRealignTracks.cxx:1284
 AliITSRealignTracks.cxx:1285
 AliITSRealignTracks.cxx:1286
 AliITSRealignTracks.cxx:1287
 AliITSRealignTracks.cxx:1288
 AliITSRealignTracks.cxx:1289
 AliITSRealignTracks.cxx:1290
 AliITSRealignTracks.cxx:1291
 AliITSRealignTracks.cxx:1292
 AliITSRealignTracks.cxx:1293
 AliITSRealignTracks.cxx:1294
 AliITSRealignTracks.cxx:1295
 AliITSRealignTracks.cxx:1296
 AliITSRealignTracks.cxx:1297
 AliITSRealignTracks.cxx:1298
 AliITSRealignTracks.cxx:1299
 AliITSRealignTracks.cxx:1300
 AliITSRealignTracks.cxx:1301
 AliITSRealignTracks.cxx:1302
 AliITSRealignTracks.cxx:1303
 AliITSRealignTracks.cxx:1304
 AliITSRealignTracks.cxx:1305
 AliITSRealignTracks.cxx:1306
 AliITSRealignTracks.cxx:1307
 AliITSRealignTracks.cxx:1308
 AliITSRealignTracks.cxx:1309
 AliITSRealignTracks.cxx:1310
 AliITSRealignTracks.cxx:1311
 AliITSRealignTracks.cxx:1312
 AliITSRealignTracks.cxx:1313
 AliITSRealignTracks.cxx:1314
 AliITSRealignTracks.cxx:1315
 AliITSRealignTracks.cxx:1316
 AliITSRealignTracks.cxx:1317
 AliITSRealignTracks.cxx:1318
 AliITSRealignTracks.cxx:1319
 AliITSRealignTracks.cxx:1320
 AliITSRealignTracks.cxx:1321
 AliITSRealignTracks.cxx:1322
 AliITSRealignTracks.cxx:1323
 AliITSRealignTracks.cxx:1324
 AliITSRealignTracks.cxx:1325
 AliITSRealignTracks.cxx:1326
 AliITSRealignTracks.cxx:1327
 AliITSRealignTracks.cxx:1328
 AliITSRealignTracks.cxx:1329
 AliITSRealignTracks.cxx:1330
 AliITSRealignTracks.cxx:1331
 AliITSRealignTracks.cxx:1332
 AliITSRealignTracks.cxx:1333
 AliITSRealignTracks.cxx:1334
 AliITSRealignTracks.cxx:1335
 AliITSRealignTracks.cxx:1336
 AliITSRealignTracks.cxx:1337
 AliITSRealignTracks.cxx:1338
 AliITSRealignTracks.cxx:1339
 AliITSRealignTracks.cxx:1340
 AliITSRealignTracks.cxx:1341
 AliITSRealignTracks.cxx:1342
 AliITSRealignTracks.cxx:1343
 AliITSRealignTracks.cxx:1344
 AliITSRealignTracks.cxx:1345
 AliITSRealignTracks.cxx:1346
 AliITSRealignTracks.cxx:1347
 AliITSRealignTracks.cxx:1348
 AliITSRealignTracks.cxx:1349
 AliITSRealignTracks.cxx:1350
 AliITSRealignTracks.cxx:1351
 AliITSRealignTracks.cxx:1352
 AliITSRealignTracks.cxx:1353
 AliITSRealignTracks.cxx:1354
 AliITSRealignTracks.cxx:1355
 AliITSRealignTracks.cxx:1356
 AliITSRealignTracks.cxx:1357
 AliITSRealignTracks.cxx:1358
 AliITSRealignTracks.cxx:1359
 AliITSRealignTracks.cxx:1360
 AliITSRealignTracks.cxx:1361
 AliITSRealignTracks.cxx:1362
 AliITSRealignTracks.cxx:1363
 AliITSRealignTracks.cxx:1364
 AliITSRealignTracks.cxx:1365
 AliITSRealignTracks.cxx:1366
 AliITSRealignTracks.cxx:1367
 AliITSRealignTracks.cxx:1368
 AliITSRealignTracks.cxx:1369
 AliITSRealignTracks.cxx:1370
 AliITSRealignTracks.cxx:1371
 AliITSRealignTracks.cxx:1372
 AliITSRealignTracks.cxx:1373
 AliITSRealignTracks.cxx:1374
 AliITSRealignTracks.cxx:1375
 AliITSRealignTracks.cxx:1376
 AliITSRealignTracks.cxx:1377
 AliITSRealignTracks.cxx:1378
 AliITSRealignTracks.cxx:1379
 AliITSRealignTracks.cxx:1380
 AliITSRealignTracks.cxx:1381
 AliITSRealignTracks.cxx:1382
 AliITSRealignTracks.cxx:1383
 AliITSRealignTracks.cxx:1384
 AliITSRealignTracks.cxx:1385
 AliITSRealignTracks.cxx:1386
 AliITSRealignTracks.cxx:1387
 AliITSRealignTracks.cxx:1388
 AliITSRealignTracks.cxx:1389
 AliITSRealignTracks.cxx:1390
 AliITSRealignTracks.cxx:1391
 AliITSRealignTracks.cxx:1392
 AliITSRealignTracks.cxx:1393
 AliITSRealignTracks.cxx:1394
 AliITSRealignTracks.cxx:1395
 AliITSRealignTracks.cxx:1396
 AliITSRealignTracks.cxx:1397
 AliITSRealignTracks.cxx:1398
 AliITSRealignTracks.cxx:1399
 AliITSRealignTracks.cxx:1400
 AliITSRealignTracks.cxx:1401
 AliITSRealignTracks.cxx:1402
 AliITSRealignTracks.cxx:1403
 AliITSRealignTracks.cxx:1404
 AliITSRealignTracks.cxx:1405
 AliITSRealignTracks.cxx:1406
 AliITSRealignTracks.cxx:1407
 AliITSRealignTracks.cxx:1408
 AliITSRealignTracks.cxx:1409
 AliITSRealignTracks.cxx:1410
 AliITSRealignTracks.cxx:1411
 AliITSRealignTracks.cxx:1412
 AliITSRealignTracks.cxx:1413
 AliITSRealignTracks.cxx:1414
 AliITSRealignTracks.cxx:1415
 AliITSRealignTracks.cxx:1416
 AliITSRealignTracks.cxx:1417
 AliITSRealignTracks.cxx:1418
 AliITSRealignTracks.cxx:1419
 AliITSRealignTracks.cxx:1420
 AliITSRealignTracks.cxx:1421
 AliITSRealignTracks.cxx:1422
 AliITSRealignTracks.cxx:1423
 AliITSRealignTracks.cxx:1424
 AliITSRealignTracks.cxx:1425
 AliITSRealignTracks.cxx:1426
 AliITSRealignTracks.cxx:1427
 AliITSRealignTracks.cxx:1428
 AliITSRealignTracks.cxx:1429
 AliITSRealignTracks.cxx:1430
 AliITSRealignTracks.cxx:1431
 AliITSRealignTracks.cxx:1432
 AliITSRealignTracks.cxx:1433
 AliITSRealignTracks.cxx:1434
 AliITSRealignTracks.cxx:1435
 AliITSRealignTracks.cxx:1436
 AliITSRealignTracks.cxx:1437
 AliITSRealignTracks.cxx:1438
 AliITSRealignTracks.cxx:1439
 AliITSRealignTracks.cxx:1440
 AliITSRealignTracks.cxx:1441
 AliITSRealignTracks.cxx:1442
 AliITSRealignTracks.cxx:1443
 AliITSRealignTracks.cxx:1444
 AliITSRealignTracks.cxx:1445
 AliITSRealignTracks.cxx:1446
 AliITSRealignTracks.cxx:1447
 AliITSRealignTracks.cxx:1448
 AliITSRealignTracks.cxx:1449
 AliITSRealignTracks.cxx:1450
 AliITSRealignTracks.cxx:1451
 AliITSRealignTracks.cxx:1452
 AliITSRealignTracks.cxx:1453
 AliITSRealignTracks.cxx:1454
 AliITSRealignTracks.cxx:1455
 AliITSRealignTracks.cxx:1456
 AliITSRealignTracks.cxx:1457
 AliITSRealignTracks.cxx:1458
 AliITSRealignTracks.cxx:1459
 AliITSRealignTracks.cxx:1460
 AliITSRealignTracks.cxx:1461
 AliITSRealignTracks.cxx:1462
 AliITSRealignTracks.cxx:1463
 AliITSRealignTracks.cxx:1464
 AliITSRealignTracks.cxx:1465
 AliITSRealignTracks.cxx:1466
 AliITSRealignTracks.cxx:1467
 AliITSRealignTracks.cxx:1468
 AliITSRealignTracks.cxx:1469
 AliITSRealignTracks.cxx:1470
 AliITSRealignTracks.cxx:1471
 AliITSRealignTracks.cxx:1472
 AliITSRealignTracks.cxx:1473
 AliITSRealignTracks.cxx:1474
 AliITSRealignTracks.cxx:1475
 AliITSRealignTracks.cxx:1476
 AliITSRealignTracks.cxx:1477
 AliITSRealignTracks.cxx:1478
 AliITSRealignTracks.cxx:1479
 AliITSRealignTracks.cxx:1480
 AliITSRealignTracks.cxx:1481
 AliITSRealignTracks.cxx:1482
 AliITSRealignTracks.cxx:1483
 AliITSRealignTracks.cxx:1484
 AliITSRealignTracks.cxx:1485
 AliITSRealignTracks.cxx:1486
 AliITSRealignTracks.cxx:1487
 AliITSRealignTracks.cxx:1488
 AliITSRealignTracks.cxx:1489
 AliITSRealignTracks.cxx:1490
 AliITSRealignTracks.cxx:1491
 AliITSRealignTracks.cxx:1492
 AliITSRealignTracks.cxx:1493
 AliITSRealignTracks.cxx:1494
 AliITSRealignTracks.cxx:1495
 AliITSRealignTracks.cxx:1496
 AliITSRealignTracks.cxx:1497
 AliITSRealignTracks.cxx:1498
 AliITSRealignTracks.cxx:1499
 AliITSRealignTracks.cxx:1500
 AliITSRealignTracks.cxx:1501
 AliITSRealignTracks.cxx:1502
 AliITSRealignTracks.cxx:1503
 AliITSRealignTracks.cxx:1504
 AliITSRealignTracks.cxx:1505
 AliITSRealignTracks.cxx:1506
 AliITSRealignTracks.cxx:1507
 AliITSRealignTracks.cxx:1508
 AliITSRealignTracks.cxx:1509
 AliITSRealignTracks.cxx:1510
 AliITSRealignTracks.cxx:1511
 AliITSRealignTracks.cxx:1512
 AliITSRealignTracks.cxx:1513
 AliITSRealignTracks.cxx:1514
 AliITSRealignTracks.cxx:1515
 AliITSRealignTracks.cxx:1516
 AliITSRealignTracks.cxx:1517
 AliITSRealignTracks.cxx:1518
 AliITSRealignTracks.cxx:1519
 AliITSRealignTracks.cxx:1520
 AliITSRealignTracks.cxx:1521
 AliITSRealignTracks.cxx:1522
 AliITSRealignTracks.cxx:1523
 AliITSRealignTracks.cxx:1524
 AliITSRealignTracks.cxx:1525
 AliITSRealignTracks.cxx:1526
 AliITSRealignTracks.cxx:1527
 AliITSRealignTracks.cxx:1528
 AliITSRealignTracks.cxx:1529
 AliITSRealignTracks.cxx:1530
 AliITSRealignTracks.cxx:1531
 AliITSRealignTracks.cxx:1532
 AliITSRealignTracks.cxx:1533
 AliITSRealignTracks.cxx:1534
 AliITSRealignTracks.cxx:1535
 AliITSRealignTracks.cxx:1536
 AliITSRealignTracks.cxx:1537
 AliITSRealignTracks.cxx:1538
 AliITSRealignTracks.cxx:1539
 AliITSRealignTracks.cxx:1540
 AliITSRealignTracks.cxx:1541
 AliITSRealignTracks.cxx:1542
 AliITSRealignTracks.cxx:1543
 AliITSRealignTracks.cxx:1544
 AliITSRealignTracks.cxx:1545
 AliITSRealignTracks.cxx:1546
 AliITSRealignTracks.cxx:1547
 AliITSRealignTracks.cxx:1548
 AliITSRealignTracks.cxx:1549
 AliITSRealignTracks.cxx:1550
 AliITSRealignTracks.cxx:1551
 AliITSRealignTracks.cxx:1552
 AliITSRealignTracks.cxx:1553
 AliITSRealignTracks.cxx:1554
 AliITSRealignTracks.cxx:1555
 AliITSRealignTracks.cxx:1556
 AliITSRealignTracks.cxx:1557
 AliITSRealignTracks.cxx:1558
 AliITSRealignTracks.cxx:1559
 AliITSRealignTracks.cxx:1560
 AliITSRealignTracks.cxx:1561
 AliITSRealignTracks.cxx:1562
 AliITSRealignTracks.cxx:1563
 AliITSRealignTracks.cxx:1564
 AliITSRealignTracks.cxx:1565
 AliITSRealignTracks.cxx:1566
 AliITSRealignTracks.cxx:1567
 AliITSRealignTracks.cxx:1568
 AliITSRealignTracks.cxx:1569
 AliITSRealignTracks.cxx:1570
 AliITSRealignTracks.cxx:1571
 AliITSRealignTracks.cxx:1572
 AliITSRealignTracks.cxx:1573
 AliITSRealignTracks.cxx:1574
 AliITSRealignTracks.cxx:1575
 AliITSRealignTracks.cxx:1576
 AliITSRealignTracks.cxx:1577
 AliITSRealignTracks.cxx:1578
 AliITSRealignTracks.cxx:1579
 AliITSRealignTracks.cxx:1580
 AliITSRealignTracks.cxx:1581
 AliITSRealignTracks.cxx:1582
 AliITSRealignTracks.cxx:1583
 AliITSRealignTracks.cxx:1584
 AliITSRealignTracks.cxx:1585
 AliITSRealignTracks.cxx:1586
 AliITSRealignTracks.cxx:1587
 AliITSRealignTracks.cxx:1588
 AliITSRealignTracks.cxx:1589
 AliITSRealignTracks.cxx:1590
 AliITSRealignTracks.cxx:1591
 AliITSRealignTracks.cxx:1592
 AliITSRealignTracks.cxx:1593
 AliITSRealignTracks.cxx:1594
 AliITSRealignTracks.cxx:1595
 AliITSRealignTracks.cxx:1596
 AliITSRealignTracks.cxx:1597
 AliITSRealignTracks.cxx:1598
 AliITSRealignTracks.cxx:1599
 AliITSRealignTracks.cxx:1600
 AliITSRealignTracks.cxx:1601
 AliITSRealignTracks.cxx:1602
 AliITSRealignTracks.cxx:1603
 AliITSRealignTracks.cxx:1604
 AliITSRealignTracks.cxx:1605
 AliITSRealignTracks.cxx:1606
 AliITSRealignTracks.cxx:1607
 AliITSRealignTracks.cxx:1608
 AliITSRealignTracks.cxx:1609
 AliITSRealignTracks.cxx:1610
 AliITSRealignTracks.cxx:1611
 AliITSRealignTracks.cxx:1612
 AliITSRealignTracks.cxx:1613
 AliITSRealignTracks.cxx:1614
 AliITSRealignTracks.cxx:1615
 AliITSRealignTracks.cxx:1616
 AliITSRealignTracks.cxx:1617
 AliITSRealignTracks.cxx:1618
 AliITSRealignTracks.cxx:1619
 AliITSRealignTracks.cxx:1620
 AliITSRealignTracks.cxx:1621
 AliITSRealignTracks.cxx:1622
 AliITSRealignTracks.cxx:1623
 AliITSRealignTracks.cxx:1624
 AliITSRealignTracks.cxx:1625
 AliITSRealignTracks.cxx:1626
 AliITSRealignTracks.cxx:1627
 AliITSRealignTracks.cxx:1628
 AliITSRealignTracks.cxx:1629
 AliITSRealignTracks.cxx:1630
 AliITSRealignTracks.cxx:1631
 AliITSRealignTracks.cxx:1632
 AliITSRealignTracks.cxx:1633
 AliITSRealignTracks.cxx:1634
 AliITSRealignTracks.cxx:1635
 AliITSRealignTracks.cxx:1636
 AliITSRealignTracks.cxx:1637
 AliITSRealignTracks.cxx:1638
 AliITSRealignTracks.cxx:1639
 AliITSRealignTracks.cxx:1640
 AliITSRealignTracks.cxx:1641
 AliITSRealignTracks.cxx:1642
 AliITSRealignTracks.cxx:1643
 AliITSRealignTracks.cxx:1644
 AliITSRealignTracks.cxx:1645
 AliITSRealignTracks.cxx:1646
 AliITSRealignTracks.cxx:1647
 AliITSRealignTracks.cxx:1648
 AliITSRealignTracks.cxx:1649
 AliITSRealignTracks.cxx:1650
 AliITSRealignTracks.cxx:1651
 AliITSRealignTracks.cxx:1652
 AliITSRealignTracks.cxx:1653
 AliITSRealignTracks.cxx:1654
 AliITSRealignTracks.cxx:1655
 AliITSRealignTracks.cxx:1656
 AliITSRealignTracks.cxx:1657
 AliITSRealignTracks.cxx:1658
 AliITSRealignTracks.cxx:1659
 AliITSRealignTracks.cxx:1660
 AliITSRealignTracks.cxx:1661
 AliITSRealignTracks.cxx:1662
 AliITSRealignTracks.cxx:1663
 AliITSRealignTracks.cxx:1664
 AliITSRealignTracks.cxx:1665
 AliITSRealignTracks.cxx:1666
 AliITSRealignTracks.cxx:1667
 AliITSRealignTracks.cxx:1668
 AliITSRealignTracks.cxx:1669
 AliITSRealignTracks.cxx:1670
 AliITSRealignTracks.cxx:1671
 AliITSRealignTracks.cxx:1672
 AliITSRealignTracks.cxx:1673
 AliITSRealignTracks.cxx:1674
 AliITSRealignTracks.cxx:1675
 AliITSRealignTracks.cxx:1676
 AliITSRealignTracks.cxx:1677
 AliITSRealignTracks.cxx:1678
 AliITSRealignTracks.cxx:1679
 AliITSRealignTracks.cxx:1680
 AliITSRealignTracks.cxx:1681
 AliITSRealignTracks.cxx:1682
 AliITSRealignTracks.cxx:1683
 AliITSRealignTracks.cxx:1684
 AliITSRealignTracks.cxx:1685
 AliITSRealignTracks.cxx:1686
 AliITSRealignTracks.cxx:1687
 AliITSRealignTracks.cxx:1688
 AliITSRealignTracks.cxx:1689
 AliITSRealignTracks.cxx:1690
 AliITSRealignTracks.cxx:1691
 AliITSRealignTracks.cxx:1692
 AliITSRealignTracks.cxx:1693
 AliITSRealignTracks.cxx:1694
 AliITSRealignTracks.cxx:1695
 AliITSRealignTracks.cxx:1696
 AliITSRealignTracks.cxx:1697
 AliITSRealignTracks.cxx:1698
 AliITSRealignTracks.cxx:1699
 AliITSRealignTracks.cxx:1700
 AliITSRealignTracks.cxx:1701
 AliITSRealignTracks.cxx:1702
 AliITSRealignTracks.cxx:1703
 AliITSRealignTracks.cxx:1704
 AliITSRealignTracks.cxx:1705
 AliITSRealignTracks.cxx:1706
 AliITSRealignTracks.cxx:1707
 AliITSRealignTracks.cxx:1708
 AliITSRealignTracks.cxx:1709
 AliITSRealignTracks.cxx:1710
 AliITSRealignTracks.cxx:1711
 AliITSRealignTracks.cxx:1712
 AliITSRealignTracks.cxx:1713
 AliITSRealignTracks.cxx:1714
 AliITSRealignTracks.cxx:1715
 AliITSRealignTracks.cxx:1716
 AliITSRealignTracks.cxx:1717
 AliITSRealignTracks.cxx:1718
 AliITSRealignTracks.cxx:1719
 AliITSRealignTracks.cxx:1720
 AliITSRealignTracks.cxx:1721
 AliITSRealignTracks.cxx:1722
 AliITSRealignTracks.cxx:1723
 AliITSRealignTracks.cxx:1724
 AliITSRealignTracks.cxx:1725
 AliITSRealignTracks.cxx:1726
 AliITSRealignTracks.cxx:1727
 AliITSRealignTracks.cxx:1728
 AliITSRealignTracks.cxx:1729
 AliITSRealignTracks.cxx:1730
 AliITSRealignTracks.cxx:1731
 AliITSRealignTracks.cxx:1732
 AliITSRealignTracks.cxx:1733
 AliITSRealignTracks.cxx:1734
 AliITSRealignTracks.cxx:1735
 AliITSRealignTracks.cxx:1736
 AliITSRealignTracks.cxx:1737
 AliITSRealignTracks.cxx:1738
 AliITSRealignTracks.cxx:1739
 AliITSRealignTracks.cxx:1740
 AliITSRealignTracks.cxx:1741
 AliITSRealignTracks.cxx:1742
 AliITSRealignTracks.cxx:1743
 AliITSRealignTracks.cxx:1744
 AliITSRealignTracks.cxx:1745
 AliITSRealignTracks.cxx:1746
 AliITSRealignTracks.cxx:1747
 AliITSRealignTracks.cxx:1748
 AliITSRealignTracks.cxx:1749
 AliITSRealignTracks.cxx:1750
 AliITSRealignTracks.cxx:1751
 AliITSRealignTracks.cxx:1752
 AliITSRealignTracks.cxx:1753
 AliITSRealignTracks.cxx:1754
 AliITSRealignTracks.cxx:1755
 AliITSRealignTracks.cxx:1756
 AliITSRealignTracks.cxx:1757
 AliITSRealignTracks.cxx:1758
 AliITSRealignTracks.cxx:1759
 AliITSRealignTracks.cxx:1760
 AliITSRealignTracks.cxx:1761
 AliITSRealignTracks.cxx:1762
 AliITSRealignTracks.cxx:1763
 AliITSRealignTracks.cxx:1764
 AliITSRealignTracks.cxx:1765
 AliITSRealignTracks.cxx:1766
 AliITSRealignTracks.cxx:1767
 AliITSRealignTracks.cxx:1768
 AliITSRealignTracks.cxx:1769
 AliITSRealignTracks.cxx:1770
 AliITSRealignTracks.cxx:1771
 AliITSRealignTracks.cxx:1772
 AliITSRealignTracks.cxx:1773
 AliITSRealignTracks.cxx:1774
 AliITSRealignTracks.cxx:1775
 AliITSRealignTracks.cxx:1776
 AliITSRealignTracks.cxx:1777
 AliITSRealignTracks.cxx:1778
 AliITSRealignTracks.cxx:1779
 AliITSRealignTracks.cxx:1780
 AliITSRealignTracks.cxx:1781
 AliITSRealignTracks.cxx:1782
 AliITSRealignTracks.cxx:1783
 AliITSRealignTracks.cxx:1784
 AliITSRealignTracks.cxx:1785
 AliITSRealignTracks.cxx:1786
 AliITSRealignTracks.cxx:1787
 AliITSRealignTracks.cxx:1788
 AliITSRealignTracks.cxx:1789
 AliITSRealignTracks.cxx:1790
 AliITSRealignTracks.cxx:1791
 AliITSRealignTracks.cxx:1792
 AliITSRealignTracks.cxx:1793
 AliITSRealignTracks.cxx:1794
 AliITSRealignTracks.cxx:1795
 AliITSRealignTracks.cxx:1796
 AliITSRealignTracks.cxx:1797
 AliITSRealignTracks.cxx:1798
 AliITSRealignTracks.cxx:1799
 AliITSRealignTracks.cxx:1800
 AliITSRealignTracks.cxx:1801
 AliITSRealignTracks.cxx:1802
 AliITSRealignTracks.cxx:1803
 AliITSRealignTracks.cxx:1804
 AliITSRealignTracks.cxx:1805
 AliITSRealignTracks.cxx:1806
 AliITSRealignTracks.cxx:1807
 AliITSRealignTracks.cxx:1808
 AliITSRealignTracks.cxx:1809
 AliITSRealignTracks.cxx:1810
 AliITSRealignTracks.cxx:1811
 AliITSRealignTracks.cxx:1812
 AliITSRealignTracks.cxx:1813
 AliITSRealignTracks.cxx:1814
 AliITSRealignTracks.cxx:1815
 AliITSRealignTracks.cxx:1816
 AliITSRealignTracks.cxx:1817
 AliITSRealignTracks.cxx:1818
 AliITSRealignTracks.cxx:1819
 AliITSRealignTracks.cxx:1820
 AliITSRealignTracks.cxx:1821
 AliITSRealignTracks.cxx:1822
 AliITSRealignTracks.cxx:1823
 AliITSRealignTracks.cxx:1824
 AliITSRealignTracks.cxx:1825
 AliITSRealignTracks.cxx:1826
 AliITSRealignTracks.cxx:1827
 AliITSRealignTracks.cxx:1828
 AliITSRealignTracks.cxx:1829
 AliITSRealignTracks.cxx:1830
 AliITSRealignTracks.cxx:1831
 AliITSRealignTracks.cxx:1832
 AliITSRealignTracks.cxx:1833
 AliITSRealignTracks.cxx:1834
 AliITSRealignTracks.cxx:1835
 AliITSRealignTracks.cxx:1836
 AliITSRealignTracks.cxx:1837
 AliITSRealignTracks.cxx:1838
 AliITSRealignTracks.cxx:1839
 AliITSRealignTracks.cxx:1840
 AliITSRealignTracks.cxx:1841
 AliITSRealignTracks.cxx:1842
 AliITSRealignTracks.cxx:1843
 AliITSRealignTracks.cxx:1844
 AliITSRealignTracks.cxx:1845
 AliITSRealignTracks.cxx:1846
 AliITSRealignTracks.cxx:1847
 AliITSRealignTracks.cxx:1848
 AliITSRealignTracks.cxx:1849
 AliITSRealignTracks.cxx:1850
 AliITSRealignTracks.cxx:1851
 AliITSRealignTracks.cxx:1852
 AliITSRealignTracks.cxx:1853
 AliITSRealignTracks.cxx:1854
 AliITSRealignTracks.cxx:1855
 AliITSRealignTracks.cxx:1856
 AliITSRealignTracks.cxx:1857
 AliITSRealignTracks.cxx:1858
 AliITSRealignTracks.cxx:1859
 AliITSRealignTracks.cxx:1860
 AliITSRealignTracks.cxx:1861
 AliITSRealignTracks.cxx:1862
 AliITSRealignTracks.cxx:1863
 AliITSRealignTracks.cxx:1864
 AliITSRealignTracks.cxx:1865
 AliITSRealignTracks.cxx:1866
 AliITSRealignTracks.cxx:1867
 AliITSRealignTracks.cxx:1868
 AliITSRealignTracks.cxx:1869
 AliITSRealignTracks.cxx:1870
 AliITSRealignTracks.cxx:1871
 AliITSRealignTracks.cxx:1872
 AliITSRealignTracks.cxx:1873
 AliITSRealignTracks.cxx:1874
 AliITSRealignTracks.cxx:1875
 AliITSRealignTracks.cxx:1876
 AliITSRealignTracks.cxx:1877
 AliITSRealignTracks.cxx:1878
 AliITSRealignTracks.cxx:1879
 AliITSRealignTracks.cxx:1880
 AliITSRealignTracks.cxx:1881
 AliITSRealignTracks.cxx:1882
 AliITSRealignTracks.cxx:1883
 AliITSRealignTracks.cxx:1884
 AliITSRealignTracks.cxx:1885
 AliITSRealignTracks.cxx:1886
 AliITSRealignTracks.cxx:1887
 AliITSRealignTracks.cxx:1888
 AliITSRealignTracks.cxx:1889
 AliITSRealignTracks.cxx:1890
 AliITSRealignTracks.cxx:1891
 AliITSRealignTracks.cxx:1892
 AliITSRealignTracks.cxx:1893
 AliITSRealignTracks.cxx:1894
 AliITSRealignTracks.cxx:1895
 AliITSRealignTracks.cxx:1896
 AliITSRealignTracks.cxx:1897
 AliITSRealignTracks.cxx:1898
 AliITSRealignTracks.cxx:1899
 AliITSRealignTracks.cxx:1900
 AliITSRealignTracks.cxx:1901
 AliITSRealignTracks.cxx:1902
 AliITSRealignTracks.cxx:1903
 AliITSRealignTracks.cxx:1904
 AliITSRealignTracks.cxx:1905
 AliITSRealignTracks.cxx:1906
 AliITSRealignTracks.cxx:1907
 AliITSRealignTracks.cxx:1908
 AliITSRealignTracks.cxx:1909
 AliITSRealignTracks.cxx:1910
 AliITSRealignTracks.cxx:1911
 AliITSRealignTracks.cxx:1912
 AliITSRealignTracks.cxx:1913
 AliITSRealignTracks.cxx:1914
 AliITSRealignTracks.cxx:1915
 AliITSRealignTracks.cxx:1916
 AliITSRealignTracks.cxx:1917
 AliITSRealignTracks.cxx:1918
 AliITSRealignTracks.cxx:1919
 AliITSRealignTracks.cxx:1920
 AliITSRealignTracks.cxx:1921
 AliITSRealignTracks.cxx:1922
 AliITSRealignTracks.cxx:1923
 AliITSRealignTracks.cxx:1924
 AliITSRealignTracks.cxx:1925
 AliITSRealignTracks.cxx:1926
 AliITSRealignTracks.cxx:1927
 AliITSRealignTracks.cxx:1928
 AliITSRealignTracks.cxx:1929
 AliITSRealignTracks.cxx:1930
 AliITSRealignTracks.cxx:1931
 AliITSRealignTracks.cxx:1932
 AliITSRealignTracks.cxx:1933
 AliITSRealignTracks.cxx:1934
 AliITSRealignTracks.cxx:1935
 AliITSRealignTracks.cxx:1936
 AliITSRealignTracks.cxx:1937
 AliITSRealignTracks.cxx:1938
 AliITSRealignTracks.cxx:1939
 AliITSRealignTracks.cxx:1940
 AliITSRealignTracks.cxx:1941
 AliITSRealignTracks.cxx:1942
 AliITSRealignTracks.cxx:1943
 AliITSRealignTracks.cxx:1944
 AliITSRealignTracks.cxx:1945
 AliITSRealignTracks.cxx:1946
 AliITSRealignTracks.cxx:1947
 AliITSRealignTracks.cxx:1948
 AliITSRealignTracks.cxx:1949
 AliITSRealignTracks.cxx:1950
 AliITSRealignTracks.cxx:1951
 AliITSRealignTracks.cxx:1952
 AliITSRealignTracks.cxx:1953
 AliITSRealignTracks.cxx:1954
 AliITSRealignTracks.cxx:1955
 AliITSRealignTracks.cxx:1956
 AliITSRealignTracks.cxx:1957
 AliITSRealignTracks.cxx:1958
 AliITSRealignTracks.cxx:1959
 AliITSRealignTracks.cxx:1960
 AliITSRealignTracks.cxx:1961
 AliITSRealignTracks.cxx:1962
 AliITSRealignTracks.cxx:1963
 AliITSRealignTracks.cxx:1964
 AliITSRealignTracks.cxx:1965
 AliITSRealignTracks.cxx:1966
 AliITSRealignTracks.cxx:1967
 AliITSRealignTracks.cxx:1968
 AliITSRealignTracks.cxx:1969
 AliITSRealignTracks.cxx:1970
 AliITSRealignTracks.cxx:1971
 AliITSRealignTracks.cxx:1972
 AliITSRealignTracks.cxx:1973
 AliITSRealignTracks.cxx:1974
 AliITSRealignTracks.cxx:1975
 AliITSRealignTracks.cxx:1976
 AliITSRealignTracks.cxx:1977
 AliITSRealignTracks.cxx:1978
 AliITSRealignTracks.cxx:1979
 AliITSRealignTracks.cxx:1980
 AliITSRealignTracks.cxx:1981
 AliITSRealignTracks.cxx:1982
 AliITSRealignTracks.cxx:1983
 AliITSRealignTracks.cxx:1984
 AliITSRealignTracks.cxx:1985
 AliITSRealignTracks.cxx:1986
 AliITSRealignTracks.cxx:1987
 AliITSRealignTracks.cxx:1988
 AliITSRealignTracks.cxx:1989
 AliITSRealignTracks.cxx:1990
 AliITSRealignTracks.cxx:1991
 AliITSRealignTracks.cxx:1992
 AliITSRealignTracks.cxx:1993
 AliITSRealignTracks.cxx:1994
 AliITSRealignTracks.cxx:1995
 AliITSRealignTracks.cxx:1996
 AliITSRealignTracks.cxx:1997
 AliITSRealignTracks.cxx:1998
 AliITSRealignTracks.cxx:1999
 AliITSRealignTracks.cxx:2000
 AliITSRealignTracks.cxx:2001
 AliITSRealignTracks.cxx:2002
 AliITSRealignTracks.cxx:2003
 AliITSRealignTracks.cxx:2004
 AliITSRealignTracks.cxx:2005
 AliITSRealignTracks.cxx:2006
 AliITSRealignTracks.cxx:2007
 AliITSRealignTracks.cxx:2008
 AliITSRealignTracks.cxx:2009
 AliITSRealignTracks.cxx:2010
 AliITSRealignTracks.cxx:2011
 AliITSRealignTracks.cxx:2012
 AliITSRealignTracks.cxx:2013
 AliITSRealignTracks.cxx:2014
 AliITSRealignTracks.cxx:2015
 AliITSRealignTracks.cxx:2016
 AliITSRealignTracks.cxx:2017
 AliITSRealignTracks.cxx:2018
 AliITSRealignTracks.cxx:2019
 AliITSRealignTracks.cxx:2020
 AliITSRealignTracks.cxx:2021
 AliITSRealignTracks.cxx:2022
 AliITSRealignTracks.cxx:2023
 AliITSRealignTracks.cxx:2024
 AliITSRealignTracks.cxx:2025
 AliITSRealignTracks.cxx:2026
 AliITSRealignTracks.cxx:2027
 AliITSRealignTracks.cxx:2028
 AliITSRealignTracks.cxx:2029
 AliITSRealignTracks.cxx:2030
 AliITSRealignTracks.cxx:2031
 AliITSRealignTracks.cxx:2032
 AliITSRealignTracks.cxx:2033
 AliITSRealignTracks.cxx:2034
 AliITSRealignTracks.cxx:2035
 AliITSRealignTracks.cxx:2036
 AliITSRealignTracks.cxx:2037
 AliITSRealignTracks.cxx:2038
 AliITSRealignTracks.cxx:2039
 AliITSRealignTracks.cxx:2040
 AliITSRealignTracks.cxx:2041
 AliITSRealignTracks.cxx:2042
 AliITSRealignTracks.cxx:2043
 AliITSRealignTracks.cxx:2044
 AliITSRealignTracks.cxx:2045
 AliITSRealignTracks.cxx:2046
 AliITSRealignTracks.cxx:2047
 AliITSRealignTracks.cxx:2048
 AliITSRealignTracks.cxx:2049
 AliITSRealignTracks.cxx:2050
 AliITSRealignTracks.cxx:2051
 AliITSRealignTracks.cxx:2052
 AliITSRealignTracks.cxx:2053
 AliITSRealignTracks.cxx:2054
 AliITSRealignTracks.cxx:2055
 AliITSRealignTracks.cxx:2056
 AliITSRealignTracks.cxx:2057
 AliITSRealignTracks.cxx:2058
 AliITSRealignTracks.cxx:2059
 AliITSRealignTracks.cxx:2060
 AliITSRealignTracks.cxx:2061
 AliITSRealignTracks.cxx:2062
 AliITSRealignTracks.cxx:2063
 AliITSRealignTracks.cxx:2064
 AliITSRealignTracks.cxx:2065
 AliITSRealignTracks.cxx:2066
 AliITSRealignTracks.cxx:2067
 AliITSRealignTracks.cxx:2068
 AliITSRealignTracks.cxx:2069
 AliITSRealignTracks.cxx:2070
 AliITSRealignTracks.cxx:2071
 AliITSRealignTracks.cxx:2072
 AliITSRealignTracks.cxx:2073
 AliITSRealignTracks.cxx:2074
 AliITSRealignTracks.cxx:2075
 AliITSRealignTracks.cxx:2076
 AliITSRealignTracks.cxx:2077
 AliITSRealignTracks.cxx:2078
 AliITSRealignTracks.cxx:2079
 AliITSRealignTracks.cxx:2080
 AliITSRealignTracks.cxx:2081
 AliITSRealignTracks.cxx:2082
 AliITSRealignTracks.cxx:2083
 AliITSRealignTracks.cxx:2084
 AliITSRealignTracks.cxx:2085
 AliITSRealignTracks.cxx:2086
 AliITSRealignTracks.cxx:2087
 AliITSRealignTracks.cxx:2088
 AliITSRealignTracks.cxx:2089
 AliITSRealignTracks.cxx:2090
 AliITSRealignTracks.cxx:2091
 AliITSRealignTracks.cxx:2092
 AliITSRealignTracks.cxx:2093
 AliITSRealignTracks.cxx:2094
 AliITSRealignTracks.cxx:2095
 AliITSRealignTracks.cxx:2096
 AliITSRealignTracks.cxx:2097
 AliITSRealignTracks.cxx:2098
 AliITSRealignTracks.cxx:2099
 AliITSRealignTracks.cxx:2100
 AliITSRealignTracks.cxx:2101
 AliITSRealignTracks.cxx:2102
 AliITSRealignTracks.cxx:2103
 AliITSRealignTracks.cxx:2104
 AliITSRealignTracks.cxx:2105
 AliITSRealignTracks.cxx:2106
 AliITSRealignTracks.cxx:2107
 AliITSRealignTracks.cxx:2108
 AliITSRealignTracks.cxx:2109
 AliITSRealignTracks.cxx:2110
 AliITSRealignTracks.cxx:2111
 AliITSRealignTracks.cxx:2112
 AliITSRealignTracks.cxx:2113
 AliITSRealignTracks.cxx:2114
 AliITSRealignTracks.cxx:2115
 AliITSRealignTracks.cxx:2116
 AliITSRealignTracks.cxx:2117
 AliITSRealignTracks.cxx:2118
 AliITSRealignTracks.cxx:2119
 AliITSRealignTracks.cxx:2120
 AliITSRealignTracks.cxx:2121
 AliITSRealignTracks.cxx:2122
 AliITSRealignTracks.cxx:2123
 AliITSRealignTracks.cxx:2124
 AliITSRealignTracks.cxx:2125
 AliITSRealignTracks.cxx:2126
 AliITSRealignTracks.cxx:2127
 AliITSRealignTracks.cxx:2128
 AliITSRealignTracks.cxx:2129
 AliITSRealignTracks.cxx:2130
 AliITSRealignTracks.cxx:2131
 AliITSRealignTracks.cxx:2132
 AliITSRealignTracks.cxx:2133
 AliITSRealignTracks.cxx:2134
 AliITSRealignTracks.cxx:2135
 AliITSRealignTracks.cxx:2136
 AliITSRealignTracks.cxx:2137
 AliITSRealignTracks.cxx:2138
 AliITSRealignTracks.cxx:2139
 AliITSRealignTracks.cxx:2140
 AliITSRealignTracks.cxx:2141
 AliITSRealignTracks.cxx:2142
 AliITSRealignTracks.cxx:2143
 AliITSRealignTracks.cxx:2144
 AliITSRealignTracks.cxx:2145
 AliITSRealignTracks.cxx:2146
 AliITSRealignTracks.cxx:2147
 AliITSRealignTracks.cxx:2148
 AliITSRealignTracks.cxx:2149
 AliITSRealignTracks.cxx:2150
 AliITSRealignTracks.cxx:2151
 AliITSRealignTracks.cxx:2152
 AliITSRealignTracks.cxx:2153
 AliITSRealignTracks.cxx:2154
 AliITSRealignTracks.cxx:2155
 AliITSRealignTracks.cxx:2156
 AliITSRealignTracks.cxx:2157
 AliITSRealignTracks.cxx:2158
 AliITSRealignTracks.cxx:2159
 AliITSRealignTracks.cxx:2160
 AliITSRealignTracks.cxx:2161
 AliITSRealignTracks.cxx:2162
 AliITSRealignTracks.cxx:2163
 AliITSRealignTracks.cxx:2164
 AliITSRealignTracks.cxx:2165
 AliITSRealignTracks.cxx:2166
 AliITSRealignTracks.cxx:2167
 AliITSRealignTracks.cxx:2168
 AliITSRealignTracks.cxx:2169
 AliITSRealignTracks.cxx:2170
 AliITSRealignTracks.cxx:2171
 AliITSRealignTracks.cxx:2172
 AliITSRealignTracks.cxx:2173
 AliITSRealignTracks.cxx:2174
 AliITSRealignTracks.cxx:2175
 AliITSRealignTracks.cxx:2176
 AliITSRealignTracks.cxx:2177
 AliITSRealignTracks.cxx:2178
 AliITSRealignTracks.cxx:2179
 AliITSRealignTracks.cxx:2180
 AliITSRealignTracks.cxx:2181
 AliITSRealignTracks.cxx:2182
 AliITSRealignTracks.cxx:2183
 AliITSRealignTracks.cxx:2184
 AliITSRealignTracks.cxx:2185
 AliITSRealignTracks.cxx:2186
 AliITSRealignTracks.cxx:2187
 AliITSRealignTracks.cxx:2188
 AliITSRealignTracks.cxx:2189
 AliITSRealignTracks.cxx:2190
 AliITSRealignTracks.cxx:2191
 AliITSRealignTracks.cxx:2192
 AliITSRealignTracks.cxx:2193
 AliITSRealignTracks.cxx:2194
 AliITSRealignTracks.cxx:2195
 AliITSRealignTracks.cxx:2196
 AliITSRealignTracks.cxx:2197
 AliITSRealignTracks.cxx:2198
 AliITSRealignTracks.cxx:2199
 AliITSRealignTracks.cxx:2200
 AliITSRealignTracks.cxx:2201
 AliITSRealignTracks.cxx:2202
 AliITSRealignTracks.cxx:2203
 AliITSRealignTracks.cxx:2204
 AliITSRealignTracks.cxx:2205
 AliITSRealignTracks.cxx:2206
 AliITSRealignTracks.cxx:2207
 AliITSRealignTracks.cxx:2208
 AliITSRealignTracks.cxx:2209
 AliITSRealignTracks.cxx:2210
 AliITSRealignTracks.cxx:2211
 AliITSRealignTracks.cxx:2212
 AliITSRealignTracks.cxx:2213
 AliITSRealignTracks.cxx:2214
 AliITSRealignTracks.cxx:2215
 AliITSRealignTracks.cxx:2216
 AliITSRealignTracks.cxx:2217
 AliITSRealignTracks.cxx:2218
 AliITSRealignTracks.cxx:2219
 AliITSRealignTracks.cxx:2220
 AliITSRealignTracks.cxx:2221
 AliITSRealignTracks.cxx:2222
 AliITSRealignTracks.cxx:2223
 AliITSRealignTracks.cxx:2224
 AliITSRealignTracks.cxx:2225
 AliITSRealignTracks.cxx:2226
 AliITSRealignTracks.cxx:2227
 AliITSRealignTracks.cxx:2228
 AliITSRealignTracks.cxx:2229
 AliITSRealignTracks.cxx:2230
 AliITSRealignTracks.cxx:2231
 AliITSRealignTracks.cxx:2232
 AliITSRealignTracks.cxx:2233
 AliITSRealignTracks.cxx:2234
 AliITSRealignTracks.cxx:2235
 AliITSRealignTracks.cxx:2236
 AliITSRealignTracks.cxx:2237
 AliITSRealignTracks.cxx:2238
 AliITSRealignTracks.cxx:2239
 AliITSRealignTracks.cxx:2240
 AliITSRealignTracks.cxx:2241
 AliITSRealignTracks.cxx:2242
 AliITSRealignTracks.cxx:2243
 AliITSRealignTracks.cxx:2244
 AliITSRealignTracks.cxx:2245
 AliITSRealignTracks.cxx:2246
 AliITSRealignTracks.cxx:2247
 AliITSRealignTracks.cxx:2248
 AliITSRealignTracks.cxx:2249
 AliITSRealignTracks.cxx:2250
 AliITSRealignTracks.cxx:2251
 AliITSRealignTracks.cxx:2252
 AliITSRealignTracks.cxx:2253
 AliITSRealignTracks.cxx:2254
 AliITSRealignTracks.cxx:2255
 AliITSRealignTracks.cxx:2256
 AliITSRealignTracks.cxx:2257
 AliITSRealignTracks.cxx:2258
 AliITSRealignTracks.cxx:2259
 AliITSRealignTracks.cxx:2260
 AliITSRealignTracks.cxx:2261
 AliITSRealignTracks.cxx:2262
 AliITSRealignTracks.cxx:2263
 AliITSRealignTracks.cxx:2264
 AliITSRealignTracks.cxx:2265
 AliITSRealignTracks.cxx:2266
 AliITSRealignTracks.cxx:2267
 AliITSRealignTracks.cxx:2268
 AliITSRealignTracks.cxx:2269
 AliITSRealignTracks.cxx:2270
 AliITSRealignTracks.cxx:2271
 AliITSRealignTracks.cxx:2272
 AliITSRealignTracks.cxx:2273
 AliITSRealignTracks.cxx:2274
 AliITSRealignTracks.cxx:2275
 AliITSRealignTracks.cxx:2276
 AliITSRealignTracks.cxx:2277
 AliITSRealignTracks.cxx:2278
 AliITSRealignTracks.cxx:2279
 AliITSRealignTracks.cxx:2280
 AliITSRealignTracks.cxx:2281
 AliITSRealignTracks.cxx:2282
 AliITSRealignTracks.cxx:2283
 AliITSRealignTracks.cxx:2284
 AliITSRealignTracks.cxx:2285
 AliITSRealignTracks.cxx:2286
 AliITSRealignTracks.cxx:2287
 AliITSRealignTracks.cxx:2288
 AliITSRealignTracks.cxx:2289
 AliITSRealignTracks.cxx:2290
 AliITSRealignTracks.cxx:2291
 AliITSRealignTracks.cxx:2292
 AliITSRealignTracks.cxx:2293
 AliITSRealignTracks.cxx:2294
 AliITSRealignTracks.cxx:2295
 AliITSRealignTracks.cxx:2296
 AliITSRealignTracks.cxx:2297
 AliITSRealignTracks.cxx:2298
 AliITSRealignTracks.cxx:2299
 AliITSRealignTracks.cxx:2300
 AliITSRealignTracks.cxx:2301
 AliITSRealignTracks.cxx:2302
 AliITSRealignTracks.cxx:2303
 AliITSRealignTracks.cxx:2304
 AliITSRealignTracks.cxx:2305
 AliITSRealignTracks.cxx:2306
 AliITSRealignTracks.cxx:2307
 AliITSRealignTracks.cxx:2308
 AliITSRealignTracks.cxx:2309
 AliITSRealignTracks.cxx:2310
 AliITSRealignTracks.cxx:2311
 AliITSRealignTracks.cxx:2312
 AliITSRealignTracks.cxx:2313
 AliITSRealignTracks.cxx:2314
 AliITSRealignTracks.cxx:2315
 AliITSRealignTracks.cxx:2316
 AliITSRealignTracks.cxx:2317
 AliITSRealignTracks.cxx:2318
 AliITSRealignTracks.cxx:2319
 AliITSRealignTracks.cxx:2320
 AliITSRealignTracks.cxx:2321
 AliITSRealignTracks.cxx:2322
 AliITSRealignTracks.cxx:2323
 AliITSRealignTracks.cxx:2324
 AliITSRealignTracks.cxx:2325
 AliITSRealignTracks.cxx:2326
 AliITSRealignTracks.cxx:2327
 AliITSRealignTracks.cxx:2328
 AliITSRealignTracks.cxx:2329
 AliITSRealignTracks.cxx:2330
 AliITSRealignTracks.cxx:2331
 AliITSRealignTracks.cxx:2332
 AliITSRealignTracks.cxx:2333
 AliITSRealignTracks.cxx:2334
 AliITSRealignTracks.cxx:2335
 AliITSRealignTracks.cxx:2336
 AliITSRealignTracks.cxx:2337
 AliITSRealignTracks.cxx:2338
 AliITSRealignTracks.cxx:2339
 AliITSRealignTracks.cxx:2340
 AliITSRealignTracks.cxx:2341
 AliITSRealignTracks.cxx:2342
 AliITSRealignTracks.cxx:2343
 AliITSRealignTracks.cxx:2344
 AliITSRealignTracks.cxx:2345
 AliITSRealignTracks.cxx:2346
 AliITSRealignTracks.cxx:2347
 AliITSRealignTracks.cxx:2348
 AliITSRealignTracks.cxx:2349
 AliITSRealignTracks.cxx:2350
 AliITSRealignTracks.cxx:2351
 AliITSRealignTracks.cxx:2352
 AliITSRealignTracks.cxx:2353
 AliITSRealignTracks.cxx:2354
 AliITSRealignTracks.cxx:2355
 AliITSRealignTracks.cxx:2356
 AliITSRealignTracks.cxx:2357
 AliITSRealignTracks.cxx:2358
 AliITSRealignTracks.cxx:2359
 AliITSRealignTracks.cxx:2360
 AliITSRealignTracks.cxx:2361
 AliITSRealignTracks.cxx:2362
 AliITSRealignTracks.cxx:2363
 AliITSRealignTracks.cxx:2364
 AliITSRealignTracks.cxx:2365
 AliITSRealignTracks.cxx:2366
 AliITSRealignTracks.cxx:2367
 AliITSRealignTracks.cxx:2368
 AliITSRealignTracks.cxx:2369
 AliITSRealignTracks.cxx:2370
 AliITSRealignTracks.cxx:2371
 AliITSRealignTracks.cxx:2372
 AliITSRealignTracks.cxx:2373
 AliITSRealignTracks.cxx:2374
 AliITSRealignTracks.cxx:2375
 AliITSRealignTracks.cxx:2376
 AliITSRealignTracks.cxx:2377
 AliITSRealignTracks.cxx:2378
 AliITSRealignTracks.cxx:2379
 AliITSRealignTracks.cxx:2380
 AliITSRealignTracks.cxx:2381
 AliITSRealignTracks.cxx:2382
 AliITSRealignTracks.cxx:2383
 AliITSRealignTracks.cxx:2384
 AliITSRealignTracks.cxx:2385
 AliITSRealignTracks.cxx:2386
 AliITSRealignTracks.cxx:2387
 AliITSRealignTracks.cxx:2388
 AliITSRealignTracks.cxx:2389
 AliITSRealignTracks.cxx:2390
 AliITSRealignTracks.cxx:2391
 AliITSRealignTracks.cxx:2392
 AliITSRealignTracks.cxx:2393
 AliITSRealignTracks.cxx:2394
 AliITSRealignTracks.cxx:2395
 AliITSRealignTracks.cxx:2396
 AliITSRealignTracks.cxx:2397
 AliITSRealignTracks.cxx:2398
 AliITSRealignTracks.cxx:2399
 AliITSRealignTracks.cxx:2400
 AliITSRealignTracks.cxx:2401
 AliITSRealignTracks.cxx:2402
 AliITSRealignTracks.cxx:2403
 AliITSRealignTracks.cxx:2404
 AliITSRealignTracks.cxx:2405
 AliITSRealignTracks.cxx:2406
 AliITSRealignTracks.cxx:2407
 AliITSRealignTracks.cxx:2408
 AliITSRealignTracks.cxx:2409
 AliITSRealignTracks.cxx:2410
 AliITSRealignTracks.cxx:2411
 AliITSRealignTracks.cxx:2412
 AliITSRealignTracks.cxx:2413
 AliITSRealignTracks.cxx:2414
 AliITSRealignTracks.cxx:2415
 AliITSRealignTracks.cxx:2416
 AliITSRealignTracks.cxx:2417
 AliITSRealignTracks.cxx:2418
 AliITSRealignTracks.cxx:2419
 AliITSRealignTracks.cxx:2420
 AliITSRealignTracks.cxx:2421
 AliITSRealignTracks.cxx:2422
 AliITSRealignTracks.cxx:2423
 AliITSRealignTracks.cxx:2424
 AliITSRealignTracks.cxx:2425
 AliITSRealignTracks.cxx:2426
 AliITSRealignTracks.cxx:2427
 AliITSRealignTracks.cxx:2428
 AliITSRealignTracks.cxx:2429
 AliITSRealignTracks.cxx:2430
 AliITSRealignTracks.cxx:2431
 AliITSRealignTracks.cxx:2432
 AliITSRealignTracks.cxx:2433
 AliITSRealignTracks.cxx:2434
 AliITSRealignTracks.cxx:2435
 AliITSRealignTracks.cxx:2436
 AliITSRealignTracks.cxx:2437
 AliITSRealignTracks.cxx:2438
 AliITSRealignTracks.cxx:2439
 AliITSRealignTracks.cxx:2440
 AliITSRealignTracks.cxx:2441
 AliITSRealignTracks.cxx:2442
 AliITSRealignTracks.cxx:2443
 AliITSRealignTracks.cxx:2444
 AliITSRealignTracks.cxx:2445
 AliITSRealignTracks.cxx:2446
 AliITSRealignTracks.cxx:2447
 AliITSRealignTracks.cxx:2448
 AliITSRealignTracks.cxx:2449
 AliITSRealignTracks.cxx:2450
 AliITSRealignTracks.cxx:2451
 AliITSRealignTracks.cxx:2452
 AliITSRealignTracks.cxx:2453
 AliITSRealignTracks.cxx:2454
 AliITSRealignTracks.cxx:2455
 AliITSRealignTracks.cxx:2456
 AliITSRealignTracks.cxx:2457
 AliITSRealignTracks.cxx:2458
 AliITSRealignTracks.cxx:2459
 AliITSRealignTracks.cxx:2460
 AliITSRealignTracks.cxx:2461
 AliITSRealignTracks.cxx:2462
 AliITSRealignTracks.cxx:2463
 AliITSRealignTracks.cxx:2464
 AliITSRealignTracks.cxx:2465
 AliITSRealignTracks.cxx:2466
 AliITSRealignTracks.cxx:2467
 AliITSRealignTracks.cxx:2468
 AliITSRealignTracks.cxx:2469
 AliITSRealignTracks.cxx:2470
 AliITSRealignTracks.cxx:2471
 AliITSRealignTracks.cxx:2472
 AliITSRealignTracks.cxx:2473
 AliITSRealignTracks.cxx:2474
 AliITSRealignTracks.cxx:2475
 AliITSRealignTracks.cxx:2476
 AliITSRealignTracks.cxx:2477
 AliITSRealignTracks.cxx:2478
 AliITSRealignTracks.cxx:2479
 AliITSRealignTracks.cxx:2480
 AliITSRealignTracks.cxx:2481
 AliITSRealignTracks.cxx:2482
 AliITSRealignTracks.cxx:2483
 AliITSRealignTracks.cxx:2484
 AliITSRealignTracks.cxx:2485
 AliITSRealignTracks.cxx:2486
 AliITSRealignTracks.cxx:2487
 AliITSRealignTracks.cxx:2488
 AliITSRealignTracks.cxx:2489
 AliITSRealignTracks.cxx:2490
 AliITSRealignTracks.cxx:2491
 AliITSRealignTracks.cxx:2492
 AliITSRealignTracks.cxx:2493
 AliITSRealignTracks.cxx:2494
 AliITSRealignTracks.cxx:2495
 AliITSRealignTracks.cxx:2496
 AliITSRealignTracks.cxx:2497
 AliITSRealignTracks.cxx:2498
 AliITSRealignTracks.cxx:2499
 AliITSRealignTracks.cxx:2500
 AliITSRealignTracks.cxx:2501
 AliITSRealignTracks.cxx:2502
 AliITSRealignTracks.cxx:2503
 AliITSRealignTracks.cxx:2504
 AliITSRealignTracks.cxx:2505
 AliITSRealignTracks.cxx:2506
 AliITSRealignTracks.cxx:2507
 AliITSRealignTracks.cxx:2508
 AliITSRealignTracks.cxx:2509
 AliITSRealignTracks.cxx:2510
 AliITSRealignTracks.cxx:2511
 AliITSRealignTracks.cxx:2512
 AliITSRealignTracks.cxx:2513
 AliITSRealignTracks.cxx:2514
 AliITSRealignTracks.cxx:2515
 AliITSRealignTracks.cxx:2516
 AliITSRealignTracks.cxx:2517
 AliITSRealignTracks.cxx:2518
 AliITSRealignTracks.cxx:2519
 AliITSRealignTracks.cxx:2520
 AliITSRealignTracks.cxx:2521
 AliITSRealignTracks.cxx:2522
 AliITSRealignTracks.cxx:2523
 AliITSRealignTracks.cxx:2524
 AliITSRealignTracks.cxx:2525
 AliITSRealignTracks.cxx:2526
 AliITSRealignTracks.cxx:2527
 AliITSRealignTracks.cxx:2528
 AliITSRealignTracks.cxx:2529
 AliITSRealignTracks.cxx:2530
 AliITSRealignTracks.cxx:2531
 AliITSRealignTracks.cxx:2532
 AliITSRealignTracks.cxx:2533
 AliITSRealignTracks.cxx:2534
 AliITSRealignTracks.cxx:2535
 AliITSRealignTracks.cxx:2536
 AliITSRealignTracks.cxx:2537
 AliITSRealignTracks.cxx:2538
 AliITSRealignTracks.cxx:2539
 AliITSRealignTracks.cxx:2540
 AliITSRealignTracks.cxx:2541
 AliITSRealignTracks.cxx:2542
 AliITSRealignTracks.cxx:2543
 AliITSRealignTracks.cxx:2544
 AliITSRealignTracks.cxx:2545
 AliITSRealignTracks.cxx:2546
 AliITSRealignTracks.cxx:2547
 AliITSRealignTracks.cxx:2548
 AliITSRealignTracks.cxx:2549
 AliITSRealignTracks.cxx:2550
 AliITSRealignTracks.cxx:2551
 AliITSRealignTracks.cxx:2552
 AliITSRealignTracks.cxx:2553
 AliITSRealignTracks.cxx:2554
 AliITSRealignTracks.cxx:2555
 AliITSRealignTracks.cxx:2556
 AliITSRealignTracks.cxx:2557
 AliITSRealignTracks.cxx:2558
 AliITSRealignTracks.cxx:2559
 AliITSRealignTracks.cxx:2560
 AliITSRealignTracks.cxx:2561
 AliITSRealignTracks.cxx:2562
 AliITSRealignTracks.cxx:2563
 AliITSRealignTracks.cxx:2564
 AliITSRealignTracks.cxx:2565
 AliITSRealignTracks.cxx:2566
 AliITSRealignTracks.cxx:2567
 AliITSRealignTracks.cxx:2568
 AliITSRealignTracks.cxx:2569
 AliITSRealignTracks.cxx:2570
 AliITSRealignTracks.cxx:2571
 AliITSRealignTracks.cxx:2572
 AliITSRealignTracks.cxx:2573
 AliITSRealignTracks.cxx:2574
 AliITSRealignTracks.cxx:2575
 AliITSRealignTracks.cxx:2576
 AliITSRealignTracks.cxx:2577
 AliITSRealignTracks.cxx:2578
 AliITSRealignTracks.cxx:2579
 AliITSRealignTracks.cxx:2580
 AliITSRealignTracks.cxx:2581
 AliITSRealignTracks.cxx:2582
 AliITSRealignTracks.cxx:2583
 AliITSRealignTracks.cxx:2584
 AliITSRealignTracks.cxx:2585
 AliITSRealignTracks.cxx:2586
 AliITSRealignTracks.cxx:2587
 AliITSRealignTracks.cxx:2588
 AliITSRealignTracks.cxx:2589
 AliITSRealignTracks.cxx:2590
 AliITSRealignTracks.cxx:2591
 AliITSRealignTracks.cxx:2592
 AliITSRealignTracks.cxx:2593
 AliITSRealignTracks.cxx:2594
 AliITSRealignTracks.cxx:2595
 AliITSRealignTracks.cxx:2596
 AliITSRealignTracks.cxx:2597
 AliITSRealignTracks.cxx:2598
 AliITSRealignTracks.cxx:2599
 AliITSRealignTracks.cxx:2600
 AliITSRealignTracks.cxx:2601
 AliITSRealignTracks.cxx:2602
 AliITSRealignTracks.cxx:2603
 AliITSRealignTracks.cxx:2604
 AliITSRealignTracks.cxx:2605
 AliITSRealignTracks.cxx:2606
 AliITSRealignTracks.cxx:2607
 AliITSRealignTracks.cxx:2608
 AliITSRealignTracks.cxx:2609
 AliITSRealignTracks.cxx:2610
 AliITSRealignTracks.cxx:2611
 AliITSRealignTracks.cxx:2612
 AliITSRealignTracks.cxx:2613
 AliITSRealignTracks.cxx:2614
 AliITSRealignTracks.cxx:2615
 AliITSRealignTracks.cxx:2616
 AliITSRealignTracks.cxx:2617
 AliITSRealignTracks.cxx:2618
 AliITSRealignTracks.cxx:2619
 AliITSRealignTracks.cxx:2620
 AliITSRealignTracks.cxx:2621