#include <TChain.h>
#include <TFile.h>
#include <TVector3.h>
#include <TSystem.h>
#include "AliAlignmentTracks.h"
#include "AliTrackPointArray.h"
#include "AliAlignObjParams.h"
#include "AliTrackFitterRieman.h"
#include "AliTrackResidualsChi2.h"
#include "AliESDEvent.h"
#include "AliLog.h"
#include "AliESDfriend.h"
ClassImp(AliAlignmentTracks)
AliAlignmentTracks::AliAlignmentTracks():
fESDChain(0),
fPointsFilename("AliTrackPoints.root"),
fPointsFile(0),
fPointsTree(0),
fLastIndex(0),
fArrayIndex(0),
fIsIndexBuilt(kFALSE),
fAlignObjs(0),
fMisalignObjs(0),
fTrackFitter(0),
fMinimizer(0),
fDoUpdate(kTRUE),
fCovIsUsed(kFALSE)
{
InitIndex();
InitAlignObjs();
}
AliAlignmentTracks::AliAlignmentTracks(TChain *esdchain):
fESDChain(esdchain),
fPointsFilename("AliTrackPoints.root"),
fPointsFile(0),
fPointsTree(0),
fLastIndex(0),
fArrayIndex(0),
fIsIndexBuilt(kFALSE),
fAlignObjs(0),
fMisalignObjs(0),
fTrackFitter(0),
fMinimizer(0),
fDoUpdate(kTRUE),
fCovIsUsed(kFALSE)
{
InitIndex();
InitAlignObjs();
}
AliAlignmentTracks::AliAlignmentTracks(const char *esdfilename, const char *esdtreename):
fESDChain(new TChain(esdtreename)),
fPointsFilename("AliTrackPoints.root"),
fPointsFile(0),
fPointsTree(0),
fLastIndex(0),
fArrayIndex(0),
fIsIndexBuilt(kFALSE),
fAlignObjs(0),
fMisalignObjs(0),
fTrackFitter(0),
fMinimizer(0),
fDoUpdate(kTRUE),
fCovIsUsed(kFALSE)
{
fESDChain->Add(esdfilename);
InitIndex();
InitAlignObjs();
}
AliAlignmentTracks::~AliAlignmentTracks()
{
if (fESDChain) delete fESDChain;
DeleteIndex();
DeleteAlignObjs();
delete fTrackFitter;
delete fMinimizer;
if (fPointsFile) fPointsFile->Close();
}
void AliAlignmentTracks::AddESD(TChain *esdchain)
{
if (fESDChain)
fESDChain->Add(esdchain);
else
fESDChain = esdchain;
}
void AliAlignmentTracks::AddESD(const char *esdfilename, const char *esdtreename)
{
if (fESDChain)
fESDChain->AddFile(esdfilename,TChain::kBigNumber,esdtreename);
else {
fESDChain = new TChain(esdtreename);
fESDChain->Add(esdfilename);
}
}
void AliAlignmentTracks::ProcessESD(Bool_t onlyITS,
Int_t minITSpts,
Bool_t cuts,
Float_t minAngleWrtITSModulePlanes,
Float_t minMom,Float_t maxMom,
Float_t minAbsSinPhi,Float_t maxAbsSinPhi,
Float_t minSinTheta,Float_t maxSinTheta)
{
if (!fESDChain) return;
AliESDEvent *esd = new AliESDEvent();
esd->ReadFromTree(fESDChain);
AliESDfriend *esdf = 0;
fESDChain->SetBranchStatus("ESDfriend*",1);
fESDChain->SetBranchAddress("ESDfriend.",&esdf);
if (fPointsFilename.IsNull()) {
AliWarning("Incorrect output filename!");
return;
}
TFile *pointsFile = TFile::Open(fPointsFilename,"RECREATE");
if (!pointsFile || !pointsFile->IsOpen()) {
AliWarning(Form("Can't open %s !",fPointsFilename.Data()));
return;
}
TTree *pointsTree = new TTree("spTree", "Tree with track space point arrays");
const AliTrackPointArray *array = 0;
AliTrackPointArray *array2 = 0;
if(onlyITS) {
pointsTree->Branch("SP","AliTrackPointArray", &array2);
} else {
pointsTree->Branch("SP","AliTrackPointArray", &array);
}
Int_t ievent = 0;
while (fESDChain->GetEntry(ievent++)) {
if (!esd) break;
esd->SetESDfriend(esdf);
Int_t ntracks = esd->GetNumberOfTracks();
for (Int_t itrack=0; itrack < ntracks; itrack++) {
AliESDtrack * track = esd->GetTrack(itrack);
if (!track) continue;
if(track->GetNcls(0) < minITSpts) continue;
if(cuts) {
if(track->GetP()<minMom || track->GetP()>maxMom) continue;
Float_t abssinphi = TMath::Abs(TMath::Sin(track->GetAlpha()+TMath::ASin(track->GetSnp())));
if(abssinphi<minAbsSinPhi || abssinphi>maxAbsSinPhi) continue;
Float_t sintheta = TMath::Sin(0.5*TMath::Pi()-TMath::ATan(track->GetTgl()));
if(sintheta<minSinTheta || sintheta>maxSinTheta) continue;
}
AliTrackPoint point;
array = track->GetTrackPointArray();
if(onlyITS) {
Bool_t layerOK[6]={kTRUE,kTRUE,kTRUE,kTRUE,kTRUE,kTRUE};
Int_t ipt,volId,modId,layerId;
Int_t jpt=0;
for(ipt=0; ipt<array->GetNPoints(); ipt++) {
array->GetPoint(point,ipt);
volId = point.GetVolumeID();
layerId = AliGeomManager::VolUIDToLayer(volId,modId);
if(layerId>6) continue;
if(cuts) {
Double_t p[3]; track->GetDirection(p);
TVector3 pvec(p[0],p[1],p[2]);
Double_t rot[9]; AliGeomManager::GetOrigRotation(volId,rot);
TVector3 normvec(rot[1],rot[4],rot[7]);
Double_t angle = pvec.Angle(normvec);
if(angle>0.5*TMath::Pi()) angle = TMath::Pi()-angle;
angle = 0.5*TMath::Pi()-angle;
if(angle<minAngleWrtITSModulePlanes) {
layerOK[layerId-1]=kFALSE;
continue;
}
}
jpt++;
}
if(jpt < minITSpts) continue;
array2 = new AliTrackPointArray(jpt);
jpt=0;
for(ipt=0; ipt<array->GetNPoints(); ipt++) {
array->GetPoint(point,ipt);
volId = point.GetVolumeID();
layerId = AliGeomManager::VolUIDToLayer(volId,modId);
if(layerId>6 || !layerOK[layerId-1]) continue;
array2->AddPoint(jpt,&point);
jpt++;
}
}
pointsTree->Fill();
}
}
if (!pointsTree->Write()) {
AliWarning("Can't write the tree with track point arrays!");
return;
}
pointsFile->Close();
return;
}
void AliAlignmentTracks::ProcessESDCosmics(Bool_t onlyITS,
Int_t minITSpts,Float_t maxMatchingAngle,
Bool_t cuts,
Float_t minAngleWrtITSModulePlanes,
Float_t minMom,Float_t maxMom,
Float_t minAbsSinPhi,Float_t maxAbsSinPhi,
Float_t minSinTheta,Float_t maxSinTheta)
{
if (!fESDChain) return;
AliESDEvent *esd = new AliESDEvent();
esd->ReadFromTree(fESDChain);
AliESDfriend *esdf = 0;
fESDChain->SetBranchStatus("ESDfriend*",1);
fESDChain->SetBranchAddress("ESDfriend.",&esdf);
if (fPointsFilename.IsNull()) {
AliWarning("Incorrect output filename!");
return;
}
TFile *pointsFile = TFile::Open(fPointsFilename,"RECREATE");
if (!pointsFile || !pointsFile->IsOpen()) {
AliWarning(Form("Can't open %s !",fPointsFilename.Data()));
return;
}
TTree *pointsTree = new TTree("spTree", "Tree with track space point arrays");
const AliTrackPointArray *array = 0;
AliTrackPointArray *array2 = 0;
pointsTree->Branch("SP","AliTrackPointArray", &array2);
Int_t ievent = 0;
while (fESDChain->GetEntry(ievent++)) {
if (!esd) break;
esd->SetESDfriend(esdf);
Int_t ntracks = esd->GetNumberOfTracks();
if(ntracks<2) continue;
Int_t *goodtracksArray = new Int_t[ntracks];
Float_t *phiArray = new Float_t[ntracks];
Float_t *thetaArray = new Float_t[ntracks];
Int_t ngt=0;
for (Int_t itrack=0; itrack < ntracks; itrack++) {
AliESDtrack * track = esd->GetTrack(itrack);
if (!track) continue;
if(track->GetNcls(0) < minITSpts) continue;
Float_t phi = track->GetAlpha()+TMath::ASin(track->GetSnp());
Float_t theta = 0.5*TMath::Pi()-TMath::ATan(track->GetTgl());
if(cuts) {
if(track->GetP()<minMom || track->GetP()>maxMom) continue;
Float_t abssinphi = TMath::Abs(TMath::Sin(phi));
if(abssinphi<minAbsSinPhi || abssinphi>maxAbsSinPhi) continue;
Float_t sintheta = TMath::Sin(theta);
if(sintheta<minSinTheta || sintheta>maxSinTheta) continue;
}
goodtracksArray[ngt]=itrack;
phiArray[ngt]=phi;
thetaArray[ngt]=theta;
ngt++;
}
if(ngt<2) {
delete [] goodtracksArray; goodtracksArray=0;
delete [] phiArray; phiArray=0;
delete [] thetaArray; thetaArray=0;
continue;
}
Float_t min = 10000000.;
Int_t good1 = -1, good2 = -1;
for(Int_t itr1=0; itr1<ngt-1; itr1++) {
for(Int_t itr2=itr1+1; itr2<ngt; itr2++) {
Float_t deltatheta = TMath::Abs(TMath::Pi()-thetaArray[itr1]-thetaArray[itr2]);
if(deltatheta>maxMatchingAngle) continue;
Float_t deltaphi = TMath::Abs(TMath::Abs(phiArray[itr1]-phiArray[itr2])-TMath::Pi());
if(deltaphi>maxMatchingAngle) continue;
if(deltatheta+deltaphi<min) {
min=deltatheta+deltaphi;
good1 = goodtracksArray[itr1];
good2 = goodtracksArray[itr2];
}
}
}
delete [] goodtracksArray; goodtracksArray=0;
delete [] phiArray; phiArray=0;
delete [] thetaArray; thetaArray=0;
if(good1<0) continue;
AliESDtrack * track1 = esd->GetTrack(good1);
AliESDtrack * track2 = esd->GetTrack(good2);
AliTrackPoint point;
Int_t ipt,volId,modId,layerId;
Int_t jpt=0;
Bool_t layerOK[6][2];
for(Int_t l1=0;l1<6;l1++) for(Int_t l2=0;l2<2;l2++) layerOK[l1][l2]=kTRUE;
array = track1->GetTrackPointArray();
for(ipt=0; ipt<array->GetNPoints(); ipt++) {
array->GetPoint(point,ipt);
if(onlyITS) {
volId = point.GetVolumeID();
layerId = AliGeomManager::VolUIDToLayer(volId,modId);
if(layerId>6) continue;
if(cuts) {
Double_t p[3]; track1->GetDirection(p);
TVector3 pvec(p[0],p[1],p[2]);
Double_t rot[9]; AliGeomManager::GetOrigRotation(volId,rot);
TVector3 normvec(rot[1],rot[4],rot[7]);
Double_t angle = pvec.Angle(normvec);
if(angle>0.5*TMath::Pi()) angle = TMath::Pi()-angle;
angle = 0.5*TMath::Pi()-angle;
if(angle<minAngleWrtITSModulePlanes) {
layerOK[layerId-1][0]=kFALSE;
continue;
}
}
}
jpt++;
}
array = track2->GetTrackPointArray();
for(ipt=0; ipt<array->GetNPoints(); ipt++) {
array->GetPoint(point,ipt);
if(onlyITS) {
volId = point.GetVolumeID();
layerId = AliGeomManager::VolUIDToLayer(volId,modId);
if(layerId>6) continue;
if(cuts) {
Double_t p[3]; track2->GetDirection(p);
TVector3 pvec(p[0],p[1],p[2]);
Double_t rot[9]; AliGeomManager::GetOrigRotation(volId,rot);
TVector3 normvec(rot[1],rot[4],rot[7]);
Double_t angle = pvec.Angle(normvec);
if(angle>0.5*TMath::Pi()) angle = TMath::Pi()-angle;
angle = 0.5*TMath::Pi()-angle;
if(angle<minAngleWrtITSModulePlanes) {
layerOK[layerId-1][0]=kFALSE;
continue;
}
}
}
jpt++;
}
if(jpt < 2*minITSpts) continue;
array2 = new AliTrackPointArray(jpt);
jpt=0;
array = track1->GetTrackPointArray();
for(ipt=0; ipt<array->GetNPoints(); ipt++) {
array->GetPoint(point,ipt);
if(onlyITS) {
volId = point.GetVolumeID();
layerId = AliGeomManager::VolUIDToLayer(volId,modId);
if(layerId>6 || !layerOK[layerId-1][0]) continue;
}
array2->AddPoint(jpt,&point);
jpt++;
}
array = track2->GetTrackPointArray();
for(ipt=0; ipt<array->GetNPoints(); ipt++) {
array->GetPoint(point,ipt);
if(onlyITS) {
volId = point.GetVolumeID();
layerId = AliGeomManager::VolUIDToLayer(volId,modId);
if(layerId>6 || !layerOK[layerId-1][1]) continue;
}
array2->AddPoint(jpt,&point);
jpt++;
}
pointsTree->Fill();
}
if (!pointsTree->Write()) {
AliWarning("Can't write the tree with track point arrays!");
return;
}
pointsFile->Close();
return;
}
void AliAlignmentTracks::ProcessESD(TSelector *selector)
{
AliWarning(Form("ESD processing based on selector is not yet implemented (%p) !",selector));
}
void AliAlignmentTracks::BuildIndex()
{
if (fIsIndexBuilt) return;
fIsIndexBuilt = kTRUE;
AliAlignObjParams alobj;
fPointsFile = TFile::Open(fPointsFilename);
if (!fPointsFile || !fPointsFile->IsOpen()) {
AliWarning(Form("Can't open %s !",fPointsFilename.Data()));
return;
}
AliTrackPointArray* array = 0;
fPointsTree = (TTree*) fPointsFile->Get("spTree");
if (!fPointsTree) {
AliWarning("No pointsTree found!");
return;
}
fPointsTree->SetBranchAddress("SP", &array);
Int_t nArrays = (Int_t)fPointsTree->GetEntries();
for (Int_t iArray = 0; iArray < nArrays; iArray++)
{
fPointsTree->GetEvent(iArray);
if (!array) continue;
for (Int_t ipoint = 0; ipoint < array->GetNPoints(); ipoint++) {
UShort_t volId = array->GetVolumeID()[ipoint];
if (!AliGeomManager::SymName(volId)) {
AliError(Form("The volume id %d has no default volume name !",
volId));
continue;
}
Int_t modId;
Int_t layerId = AliGeomManager::VolUIDToLayer(volId,modId)
- AliGeomManager::kFirstLayer;
if (!fArrayIndex[layerId][modId]) {
fArrayIndex[layerId][modId] = new TArrayI(1000);
}
else {
Int_t size = fArrayIndex[layerId][modId]->GetSize();
if (fLastIndex[layerId][modId] >= size)
fArrayIndex[layerId][modId]->Set(size + 1000);
}
Bool_t fillIndex = kTRUE;
if (fLastIndex[layerId][modId] != 0) {
if ((*fArrayIndex[layerId][modId])[fLastIndex[layerId][modId]-1] == iArray)
fillIndex = kFALSE;
}
if (fillIndex) {
(*fArrayIndex[layerId][modId])[fLastIndex[layerId][modId]] = iArray;
fLastIndex[layerId][modId]++;
}
}
}
}
void AliAlignmentTracks::InitIndex()
{
Int_t nLayers = AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer;
fLastIndex = new Int_t*[nLayers];
fArrayIndex = new TArrayI**[nLayers];
for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
fLastIndex[iLayer] = new Int_t[AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer)];
fArrayIndex[iLayer] = new TArrayI*[AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer)];
for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++) {
fLastIndex[iLayer][iModule] = 0;
fArrayIndex[iLayer][iModule] = 0;
}
}
}
void AliAlignmentTracks::ResetIndex()
{
fIsIndexBuilt = kFALSE;
for (Int_t iLayer = 0; iLayer < AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer; iLayer++) {
for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++) {
fLastIndex[iLayer][iModule] = 0;
}
}
}
void AliAlignmentTracks::DeleteIndex()
{
for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++) {
if (fArrayIndex[iLayer][iModule]) {
delete fArrayIndex[iLayer][iModule];
fArrayIndex[iLayer][iModule] = 0;
}
}
delete [] fLastIndex[iLayer];
delete [] fArrayIndex[iLayer];
}
delete [] fLastIndex;
delete [] fArrayIndex;
}
Bool_t AliAlignmentTracks::ReadAlignObjs(const char *alignObjFileName, const char* arrayName)
{
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;
}
void AliAlignmentTracks::InitAlignObjs()
{
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);
}
}
}
void AliAlignmentTracks::ResetAlignObjs()
{
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);
}
}
void AliAlignmentTracks::DeleteAlignObjs()
{
for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++)
if (fAlignObjs[iLayer][iModule])
delete fAlignObjs[iLayer][iModule];
delete [] fAlignObjs[iLayer];
}
delete [] fAlignObjs;
fAlignObjs = 0;
}
Bool_t AliAlignmentTracks::AlignDetector(AliGeomManager::ELayerID firstLayer,
AliGeomManager::ELayerID lastLayer,
AliGeomManager::ELayerID layerRangeMin,
AliGeomManager::ELayerID layerRangeMax,
Int_t iterations)
{
Int_t nModules = 0;
for (Int_t iLayer = firstLayer; iLayer <= lastLayer; iLayer++)
nModules += AliGeomManager::LayerSize(iLayer);
TArrayI volIds(nModules);
Int_t modnum = 0;
for (Int_t iLayer = firstLayer; iLayer <= lastLayer; iLayer++) {
for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer); iModule++) {
UShort_t volId = AliGeomManager::LayerToVolUID(iLayer,iModule);
volIds.AddAt(volId,modnum);
modnum++;
}
}
Bool_t result = kFALSE;
while (iterations > 0) {
if (!(result = AlignVolumes(&volIds,0x0,layerRangeMin,layerRangeMax))) break;
iterations--;
}
return result;
}
Bool_t AliAlignmentTracks::AlignLayer(AliGeomManager::ELayerID layer,
AliGeomManager::ELayerID layerRangeMin,
AliGeomManager::ELayerID layerRangeMax,
Int_t iterations)
{
Int_t nModules = AliGeomManager::LayerSize(layer);
TArrayI volIds(nModules);
for (Int_t iModule = 0; iModule < nModules; iModule++) {
UShort_t volId = AliGeomManager::LayerToVolUID(layer,iModule);
volIds.AddAt(volId,iModule);
}
Bool_t result = kFALSE;
while (iterations > 0) {
if (!(result = AlignVolumes(&volIds,0x0,layerRangeMin,layerRangeMax))) break;
iterations--;
}
return result;
}
Bool_t AliAlignmentTracks::AlignVolume(UShort_t volId, UShort_t volIdFit,
Int_t iterations)
{
TArrayI volIds(1);
volIds.AddAt(volId,0);
TArrayI volIdsFit(1);
volIdsFit.AddAt(volIdFit,0);
Bool_t result = kFALSE;
while (iterations > 0) {
if (!(result = AlignVolumes(&volIds,&volIdsFit))) break;
iterations--;
}
return result;
}
Bool_t AliAlignmentTracks::AlignVolumes(const TArrayI *volids, const TArrayI *volidsfit,
AliGeomManager::ELayerID layerRangeMin,
AliGeomManager::ELayerID layerRangeMax,
Int_t iterations)
{
Int_t nVolIds = volids->GetSize();
if (nVolIds == 0) {
AliError("Volume IDs array is empty!");
return kFALSE;
}
BuildIndex();
AliTrackPointArray **points;
Int_t pointsdim;
Bool_t result = kFALSE;
while (iterations > 0) {
Int_t nArrays = LoadPoints(volids, points,pointsdim);
if (nArrays == 0) {
UnloadPoints(pointsdim, points);
return kFALSE;
}
AliTrackResiduals *minimizer = CreateMinimizer();
minimizer->SetNTracks(nArrays);
minimizer->InitAlignObj();
AliTrackFitter *fitter = CreateFitter();
for (Int_t iArray = 0; iArray < nArrays; iArray++) {
if (!points[iArray]) continue;
fitter->SetTrackPointArray(points[iArray], kFALSE);
if (fitter->Fit(volids,volidsfit,layerRangeMin,layerRangeMax) == kFALSE) continue;
AliTrackPointArray *pVolId,*pTrack;
fitter->GetTrackResiduals(pVolId,pTrack);
minimizer->AddTrackPointArrays(pVolId,pTrack);
}
if (!(result = minimizer->Minimize())) {
UnloadPoints(pointsdim, points);
break;
}
if (fDoUpdate) for (Int_t iVolId = 0; iVolId < nVolIds; iVolId++) {
UShort_t volid = (*volids)[iVolId];
Int_t iModule;
AliGeomManager::ELayerID iLayer = AliGeomManager::VolUIDToLayer(volid,iModule);
AliAlignObj *alignObj = fAlignObjs[iLayer-AliGeomManager::kFirstLayer][iModule];
*alignObj *= *minimizer->GetAlignObj();
if(iterations==1)alignObj->Print("");
}
UnloadPoints(pointsdim, points);
iterations--;
}
return result;
}
Int_t AliAlignmentTracks::LoadPoints(const TArrayI *volids, AliTrackPointArray** &points,Int_t &pointsdim)
{
if (!fPointsTree) {
AliError("Tree with the space point arrays not initialized!");
points = 0;
return 0;
}
Int_t nVolIds = volids->GetSize();
if (nVolIds == 0) {
AliError("Volume IDs array is empty!");
points = 0;
return 0;
}
Int_t nArrays = 0;
for (Int_t iVolId = 0; iVolId < nVolIds; iVolId++) {
UShort_t volid = (*volids)[iVolId];
Int_t iModule;
AliGeomManager::ELayerID iLayer = AliGeomManager::VolUIDToLayer(volid,iModule);
if (fLastIndex[iLayer-AliGeomManager::kFirstLayer][iModule] == 0) {
AliWarning(Form("There are no space-points belonging to the volume which is to be aligned (Volume ID =%d)!",volid));
continue;
}
nArrays += fLastIndex[iLayer-AliGeomManager::kFirstLayer][iModule];
}
if (nArrays == 0) {
AliError("There are no space-points belonging to all of the volumes which are to be aligned!");
points = 0x0;
return 0;
}
AliTrackPointArray* array = 0;
fPointsTree->SetBranchAddress("SP", &array);
pointsdim=nArrays;
points = new AliTrackPointArray*[nArrays];
for (Int_t i = 0; i < nArrays; i++) points[i] = 0x0;
Bool_t *indexUsed = new Bool_t[(UInt_t)fPointsTree->GetEntries()];
for (Int_t i = 0; i < fPointsTree->GetEntries(); i++)
indexUsed[i] = kFALSE;
Int_t iArray = 0;
for (Int_t iVolId = 0; iVolId < nVolIds; iVolId++) {
UShort_t volid = (*volids)[iVolId];
Int_t iModule;
AliGeomManager::ELayerID iLayer = AliGeomManager::VolUIDToLayer(volid,iModule);
Int_t nArraysId = fLastIndex[iLayer-AliGeomManager::kFirstLayer][iModule];
TArrayI *index = fArrayIndex[iLayer-AliGeomManager::kFirstLayer][iModule];
AliTrackPoint p;
for (Int_t iArrayId = 0; iArrayId < nArraysId; iArrayId++) {
Int_t entry = (*index)[iArrayId];
if (indexUsed[entry] == kTRUE) {
nArrays--;
continue;
}
fPointsTree->GetEvent(entry);
if (!array) {
AliWarning("Wrong space point array index!");
continue;
}
indexUsed[entry] = kTRUE;
Int_t nPoints = array->GetNPoints();
points[iArray] = new AliTrackPointArray(nPoints);
for (Int_t iPoint = 0; iPoint < nPoints; iPoint++) {
array->GetPoint(p,iPoint);
Int_t modnum;
AliGeomManager::ELayerID layer = AliGeomManager::VolUIDToLayer(p.GetVolumeID(),modnum);
if ((layer < AliGeomManager::kFirstLayer) ||
(layer >= AliGeomManager::kLastLayer)) {
AliError(Form("Layer index is invalid: %d (%d -> %d) !",
layer,AliGeomManager::kFirstLayer,AliGeomManager::kLastLayer-1));
continue;
}
if ((modnum >= AliGeomManager::LayerSize(layer)) ||
(modnum < 0)) {
AliError(Form("Module number inside layer %d is invalid: %d (0 -> %d)",
layer,modnum,AliGeomManager::LayerSize(layer)));
continue;
}
if (fMisalignObjs) {
AliAlignObj *misalignObj = fMisalignObjs[layer-AliGeomManager::kFirstLayer][modnum];
if (misalignObj)
misalignObj->Transform(p);
}
AliAlignObj *alignObj = fAlignObjs[layer-AliGeomManager::kFirstLayer][modnum];
UShort_t volp=p.GetVolumeID();
Bool_t found=kFALSE;
if(fCovIsUsed){
for (Int_t iVol = 0; iVol < nVolIds; iVol++) {
UShort_t vol = (*volids)[iVol];
if(volp==vol){
alignObj->Transform(p,kFALSE);
found=kTRUE;
break;
}
}
}
if(!found)alignObj->Transform(p,fCovIsUsed);
points[iArray]->AddPoint(iPoint,&p);
}
iArray++;
}
}
delete [] indexUsed;
return nArrays;
}
void AliAlignmentTracks::UnloadPoints(Int_t n, AliTrackPointArray **points)
{
for (Int_t iArray = 0; iArray < n; iArray++)
delete points[iArray];
delete [] points;
}
AliTrackFitter *AliAlignmentTracks::CreateFitter()
{
if (!fTrackFitter)
fTrackFitter = new AliTrackFitterRieman;
return fTrackFitter;
}
AliTrackResiduals *AliAlignmentTracks::CreateMinimizer()
{
if (!fMinimizer)
fMinimizer = new AliTrackResidualsChi2;
return fMinimizer;
}
Bool_t AliAlignmentTracks::Misalign(const char *misalignObjFileName, const char* arrayName)
{
Int_t nLayers = AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer;
fMisalignObjs = new AliAlignObj**[nLayers];
for (Int_t iLayer = 0; iLayer < (AliGeomManager::kLastLayer - AliGeomManager::kFirstLayer); iLayer++) {
fMisalignObjs[iLayer] = new AliAlignObj*[AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer)];
for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++)
fMisalignObjs[iLayer][iModule] = 0x0;
}
TFile* inFile = TFile::Open(misalignObjFileName,"READ");
if (!inFile || !inFile->IsOpen()) {
AliError(Form("Could not open misalignment file %s !",misalignObjFileName));
return kFALSE;
}
TClonesArray* array = ((TClonesArray*) inFile->Get(arrayName));
if (!array) {
AliError(Form("Could not find misalignment array %s in the file %s !",arrayName,misalignObjFileName));
inFile->Close();
return kFALSE;
}
inFile->Close();
Int_t nObjs = array->GetEntriesFast();
AliGeomManager::ELayerID layerId;
Int_t modId;
for(Int_t i=0; i<nObjs; i++)
{
AliAlignObj* alObj = (AliAlignObj*)array->UncheckedAt(i);
alObj->GetVolUID(layerId,modId);
if(layerId<AliGeomManager::kFirstLayer) {
AliWarning(Form("Alignment object is ignored: %s",alObj->GetSymName()));
continue;
}
fMisalignObjs[layerId-AliGeomManager::kFirstLayer][modId] = alObj;
}
return kTRUE;
}
void AliAlignmentTracks::WriteRealignObjArray(TString outfilename,AliGeomManager::ELayerID layerRangeMin,AliGeomManager::ELayerID layerRangeMax){
Int_t last=0;
TClonesArray *clonesArray=new TClonesArray("AliAlignObjParams",2200);
TClonesArray &alo=*clonesArray;
for (Int_t iLayer = layerRangeMin-AliGeomManager::kFirstLayer; iLayer <= (layerRangeMax - AliGeomManager::kFirstLayer);iLayer++) {
for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer + AliGeomManager::kFirstLayer); iModule++) {
AliAlignObj *alignObj = fAlignObjs[iLayer][iModule];
new(alo[last])AliAlignObjParams(*alignObj);
last++;
}
}
TFile *file=new TFile(outfilename.Data(),"RECREATE");
file->cd();
alo.Write("ITSAlignObjs",TObject::kSingleKey);
file->Close();
delete clonesArray;
return;
}
AliAlignmentTracks.cxx:10 AliAlignmentTracks.cxx:11 AliAlignmentTracks.cxx:12 AliAlignmentTracks.cxx:13 AliAlignmentTracks.cxx:14 AliAlignmentTracks.cxx:15 AliAlignmentTracks.cxx:16 AliAlignmentTracks.cxx:17 AliAlignmentTracks.cxx:18 AliAlignmentTracks.cxx:19 AliAlignmentTracks.cxx:20 AliAlignmentTracks.cxx:21 AliAlignmentTracks.cxx:22 AliAlignmentTracks.cxx:23 AliAlignmentTracks.cxx:24 AliAlignmentTracks.cxx:25 AliAlignmentTracks.cxx:26 AliAlignmentTracks.cxx:27 AliAlignmentTracks.cxx:28 AliAlignmentTracks.cxx:29 AliAlignmentTracks.cxx:30 AliAlignmentTracks.cxx:31 AliAlignmentTracks.cxx:32 AliAlignmentTracks.cxx:33 AliAlignmentTracks.cxx:34 AliAlignmentTracks.cxx:35 AliAlignmentTracks.cxx:36 AliAlignmentTracks.cxx:37 AliAlignmentTracks.cxx:38 AliAlignmentTracks.cxx:39 AliAlignmentTracks.cxx:40 AliAlignmentTracks.cxx:41 AliAlignmentTracks.cxx:42 AliAlignmentTracks.cxx:43 AliAlignmentTracks.cxx:44 AliAlignmentTracks.cxx:45 AliAlignmentTracks.cxx:46 AliAlignmentTracks.cxx:47 AliAlignmentTracks.cxx:48 AliAlignmentTracks.cxx:49 AliAlignmentTracks.cxx:50 AliAlignmentTracks.cxx:51 AliAlignmentTracks.cxx:52 AliAlignmentTracks.cxx:53 AliAlignmentTracks.cxx:54 AliAlignmentTracks.cxx:55 AliAlignmentTracks.cxx:56 AliAlignmentTracks.cxx:57 AliAlignmentTracks.cxx:58 AliAlignmentTracks.cxx:59 AliAlignmentTracks.cxx:60 AliAlignmentTracks.cxx:61 AliAlignmentTracks.cxx:62 AliAlignmentTracks.cxx:63 AliAlignmentTracks.cxx:64 AliAlignmentTracks.cxx:65 AliAlignmentTracks.cxx:66 AliAlignmentTracks.cxx:67 AliAlignmentTracks.cxx:68 AliAlignmentTracks.cxx:69 AliAlignmentTracks.cxx:70 AliAlignmentTracks.cxx:71 AliAlignmentTracks.cxx:72 AliAlignmentTracks.cxx:73 AliAlignmentTracks.cxx:74 AliAlignmentTracks.cxx:75 AliAlignmentTracks.cxx:76 AliAlignmentTracks.cxx:77 AliAlignmentTracks.cxx:78 AliAlignmentTracks.cxx:79 AliAlignmentTracks.cxx:80 AliAlignmentTracks.cxx:81 AliAlignmentTracks.cxx:82 AliAlignmentTracks.cxx:83 AliAlignmentTracks.cxx:84 AliAlignmentTracks.cxx:85 AliAlignmentTracks.cxx:86 AliAlignmentTracks.cxx:87 AliAlignmentTracks.cxx:88 AliAlignmentTracks.cxx:89 AliAlignmentTracks.cxx:90 AliAlignmentTracks.cxx:91 AliAlignmentTracks.cxx:92 AliAlignmentTracks.cxx:93 AliAlignmentTracks.cxx:94 AliAlignmentTracks.cxx:95 AliAlignmentTracks.cxx:96 AliAlignmentTracks.cxx:97 AliAlignmentTracks.cxx:98 AliAlignmentTracks.cxx:99 AliAlignmentTracks.cxx:100 AliAlignmentTracks.cxx:101 AliAlignmentTracks.cxx:102 AliAlignmentTracks.cxx:103 AliAlignmentTracks.cxx:104 AliAlignmentTracks.cxx:105 AliAlignmentTracks.cxx:106 AliAlignmentTracks.cxx:107 AliAlignmentTracks.cxx:108 AliAlignmentTracks.cxx:109 AliAlignmentTracks.cxx:110 AliAlignmentTracks.cxx:111 AliAlignmentTracks.cxx:112 AliAlignmentTracks.cxx:113 AliAlignmentTracks.cxx:114 AliAlignmentTracks.cxx:115 AliAlignmentTracks.cxx:116 AliAlignmentTracks.cxx:117 AliAlignmentTracks.cxx:118 AliAlignmentTracks.cxx:119 AliAlignmentTracks.cxx:120 AliAlignmentTracks.cxx:121 AliAlignmentTracks.cxx:122 AliAlignmentTracks.cxx:123 AliAlignmentTracks.cxx:124 AliAlignmentTracks.cxx:125 AliAlignmentTracks.cxx:126 AliAlignmentTracks.cxx:127 AliAlignmentTracks.cxx:128 AliAlignmentTracks.cxx:129 AliAlignmentTracks.cxx:130 AliAlignmentTracks.cxx:131 AliAlignmentTracks.cxx:132 AliAlignmentTracks.cxx:133 AliAlignmentTracks.cxx:134 AliAlignmentTracks.cxx:135 AliAlignmentTracks.cxx:136 AliAlignmentTracks.cxx:137 AliAlignmentTracks.cxx:138 AliAlignmentTracks.cxx:139 AliAlignmentTracks.cxx:140 AliAlignmentTracks.cxx:141 AliAlignmentTracks.cxx:142 AliAlignmentTracks.cxx:143 AliAlignmentTracks.cxx:144 AliAlignmentTracks.cxx:145 AliAlignmentTracks.cxx:146 AliAlignmentTracks.cxx:147 AliAlignmentTracks.cxx:148 AliAlignmentTracks.cxx:149 AliAlignmentTracks.cxx:150 AliAlignmentTracks.cxx:151 AliAlignmentTracks.cxx:152 AliAlignmentTracks.cxx:153 AliAlignmentTracks.cxx:154 AliAlignmentTracks.cxx:155 AliAlignmentTracks.cxx:156 AliAlignmentTracks.cxx:157 AliAlignmentTracks.cxx:158 AliAlignmentTracks.cxx:159 AliAlignmentTracks.cxx:160 AliAlignmentTracks.cxx:161 AliAlignmentTracks.cxx:162 AliAlignmentTracks.cxx:163 AliAlignmentTracks.cxx:164 AliAlignmentTracks.cxx:165 AliAlignmentTracks.cxx:166 AliAlignmentTracks.cxx:167 AliAlignmentTracks.cxx:168 AliAlignmentTracks.cxx:169 AliAlignmentTracks.cxx:170 AliAlignmentTracks.cxx:171 AliAlignmentTracks.cxx:172 AliAlignmentTracks.cxx:173 AliAlignmentTracks.cxx:174 AliAlignmentTracks.cxx:175 AliAlignmentTracks.cxx:176 AliAlignmentTracks.cxx:177 AliAlignmentTracks.cxx:178 AliAlignmentTracks.cxx:179 AliAlignmentTracks.cxx:180 AliAlignmentTracks.cxx:181 AliAlignmentTracks.cxx:182 AliAlignmentTracks.cxx:183 AliAlignmentTracks.cxx:184 AliAlignmentTracks.cxx:185 AliAlignmentTracks.cxx:186 AliAlignmentTracks.cxx:187 AliAlignmentTracks.cxx:188 AliAlignmentTracks.cxx:189 AliAlignmentTracks.cxx:190 AliAlignmentTracks.cxx:191 AliAlignmentTracks.cxx:192 AliAlignmentTracks.cxx:193 AliAlignmentTracks.cxx:194 AliAlignmentTracks.cxx:195 AliAlignmentTracks.cxx:196 AliAlignmentTracks.cxx:197 AliAlignmentTracks.cxx:198 AliAlignmentTracks.cxx:199 AliAlignmentTracks.cxx:200 AliAlignmentTracks.cxx:201 AliAlignmentTracks.cxx:202 AliAlignmentTracks.cxx:203 AliAlignmentTracks.cxx:204 AliAlignmentTracks.cxx:205 AliAlignmentTracks.cxx:206 AliAlignmentTracks.cxx:207 AliAlignmentTracks.cxx:208 AliAlignmentTracks.cxx:209 AliAlignmentTracks.cxx:210 AliAlignmentTracks.cxx:211 AliAlignmentTracks.cxx:212 AliAlignmentTracks.cxx:213 AliAlignmentTracks.cxx:214 AliAlignmentTracks.cxx:215 AliAlignmentTracks.cxx:216 AliAlignmentTracks.cxx:217 AliAlignmentTracks.cxx:218 AliAlignmentTracks.cxx:219 AliAlignmentTracks.cxx:220 AliAlignmentTracks.cxx:221 AliAlignmentTracks.cxx:222 AliAlignmentTracks.cxx:223 AliAlignmentTracks.cxx:224 AliAlignmentTracks.cxx:225 AliAlignmentTracks.cxx:226 AliAlignmentTracks.cxx:227 AliAlignmentTracks.cxx:228 AliAlignmentTracks.cxx:229 AliAlignmentTracks.cxx:230 AliAlignmentTracks.cxx:231 AliAlignmentTracks.cxx:232 AliAlignmentTracks.cxx:233 AliAlignmentTracks.cxx:234 AliAlignmentTracks.cxx:235 AliAlignmentTracks.cxx:236 AliAlignmentTracks.cxx:237 AliAlignmentTracks.cxx:238 AliAlignmentTracks.cxx:239 AliAlignmentTracks.cxx:240 AliAlignmentTracks.cxx:241 AliAlignmentTracks.cxx:242 AliAlignmentTracks.cxx:243 AliAlignmentTracks.cxx:244 AliAlignmentTracks.cxx:245 AliAlignmentTracks.cxx:246 AliAlignmentTracks.cxx:247 AliAlignmentTracks.cxx:248 AliAlignmentTracks.cxx:249 AliAlignmentTracks.cxx:250 AliAlignmentTracks.cxx:251 AliAlignmentTracks.cxx:252 AliAlignmentTracks.cxx:253 AliAlignmentTracks.cxx:254 AliAlignmentTracks.cxx:255 AliAlignmentTracks.cxx:256 AliAlignmentTracks.cxx:257 AliAlignmentTracks.cxx:258 AliAlignmentTracks.cxx:259 AliAlignmentTracks.cxx:260 AliAlignmentTracks.cxx:261 AliAlignmentTracks.cxx:262 AliAlignmentTracks.cxx:263 AliAlignmentTracks.cxx:264 AliAlignmentTracks.cxx:265 AliAlignmentTracks.cxx:266 AliAlignmentTracks.cxx:267 AliAlignmentTracks.cxx:268 AliAlignmentTracks.cxx:269 AliAlignmentTracks.cxx:270 AliAlignmentTracks.cxx:271 AliAlignmentTracks.cxx:272 AliAlignmentTracks.cxx:273 AliAlignmentTracks.cxx:274 AliAlignmentTracks.cxx:275 AliAlignmentTracks.cxx:276 AliAlignmentTracks.cxx:277 AliAlignmentTracks.cxx:278 AliAlignmentTracks.cxx:279 AliAlignmentTracks.cxx:280 AliAlignmentTracks.cxx:281 AliAlignmentTracks.cxx:282 AliAlignmentTracks.cxx:283 AliAlignmentTracks.cxx:284 AliAlignmentTracks.cxx:285 AliAlignmentTracks.cxx:286 AliAlignmentTracks.cxx:287 AliAlignmentTracks.cxx:288 AliAlignmentTracks.cxx:289 AliAlignmentTracks.cxx:290 AliAlignmentTracks.cxx:291 AliAlignmentTracks.cxx:292 AliAlignmentTracks.cxx:293 AliAlignmentTracks.cxx:294 AliAlignmentTracks.cxx:295 AliAlignmentTracks.cxx:296 AliAlignmentTracks.cxx:297 AliAlignmentTracks.cxx:298 AliAlignmentTracks.cxx:299 AliAlignmentTracks.cxx:300 AliAlignmentTracks.cxx:301 AliAlignmentTracks.cxx:302 AliAlignmentTracks.cxx:303 AliAlignmentTracks.cxx:304 AliAlignmentTracks.cxx:305 AliAlignmentTracks.cxx:306 AliAlignmentTracks.cxx:307 AliAlignmentTracks.cxx:308 AliAlignmentTracks.cxx:309 AliAlignmentTracks.cxx:310 AliAlignmentTracks.cxx:311 AliAlignmentTracks.cxx:312 AliAlignmentTracks.cxx:313 AliAlignmentTracks.cxx:314 AliAlignmentTracks.cxx:315 AliAlignmentTracks.cxx:316 AliAlignmentTracks.cxx:317 AliAlignmentTracks.cxx:318 AliAlignmentTracks.cxx:319 AliAlignmentTracks.cxx:320 AliAlignmentTracks.cxx:321 AliAlignmentTracks.cxx:322 AliAlignmentTracks.cxx:323 AliAlignmentTracks.cxx:324 AliAlignmentTracks.cxx:325 AliAlignmentTracks.cxx:326 AliAlignmentTracks.cxx:327 AliAlignmentTracks.cxx:328 AliAlignmentTracks.cxx:329 AliAlignmentTracks.cxx:330 AliAlignmentTracks.cxx:331 AliAlignmentTracks.cxx:332 AliAlignmentTracks.cxx:333 AliAlignmentTracks.cxx:334 AliAlignmentTracks.cxx:335 AliAlignmentTracks.cxx:336 AliAlignmentTracks.cxx:337 AliAlignmentTracks.cxx:338 AliAlignmentTracks.cxx:339 AliAlignmentTracks.cxx:340 AliAlignmentTracks.cxx:341 AliAlignmentTracks.cxx:342 AliAlignmentTracks.cxx:343 AliAlignmentTracks.cxx:344 AliAlignmentTracks.cxx:345 AliAlignmentTracks.cxx:346 AliAlignmentTracks.cxx:347 AliAlignmentTracks.cxx:348 AliAlignmentTracks.cxx:349 AliAlignmentTracks.cxx:350 AliAlignmentTracks.cxx:351 AliAlignmentTracks.cxx:352 AliAlignmentTracks.cxx:353 AliAlignmentTracks.cxx:354 AliAlignmentTracks.cxx:355 AliAlignmentTracks.cxx:356 AliAlignmentTracks.cxx:357 AliAlignmentTracks.cxx:358 AliAlignmentTracks.cxx:359 AliAlignmentTracks.cxx:360 AliAlignmentTracks.cxx:361 AliAlignmentTracks.cxx:362 AliAlignmentTracks.cxx:363 AliAlignmentTracks.cxx:364 AliAlignmentTracks.cxx:365 AliAlignmentTracks.cxx:366 AliAlignmentTracks.cxx:367 AliAlignmentTracks.cxx:368 AliAlignmentTracks.cxx:369 AliAlignmentTracks.cxx:370 AliAlignmentTracks.cxx:371 AliAlignmentTracks.cxx:372 AliAlignmentTracks.cxx:373 AliAlignmentTracks.cxx:374 AliAlignmentTracks.cxx:375 AliAlignmentTracks.cxx:376 AliAlignmentTracks.cxx:377 AliAlignmentTracks.cxx:378 AliAlignmentTracks.cxx:379 AliAlignmentTracks.cxx:380 AliAlignmentTracks.cxx:381 AliAlignmentTracks.cxx:382 AliAlignmentTracks.cxx:383 AliAlignmentTracks.cxx:384 AliAlignmentTracks.cxx:385 AliAlignmentTracks.cxx:386 AliAlignmentTracks.cxx:387 AliAlignmentTracks.cxx:388 AliAlignmentTracks.cxx:389 AliAlignmentTracks.cxx:390 AliAlignmentTracks.cxx:391 AliAlignmentTracks.cxx:392 AliAlignmentTracks.cxx:393 AliAlignmentTracks.cxx:394 AliAlignmentTracks.cxx:395 AliAlignmentTracks.cxx:396 AliAlignmentTracks.cxx:397 AliAlignmentTracks.cxx:398 AliAlignmentTracks.cxx:399 AliAlignmentTracks.cxx:400 AliAlignmentTracks.cxx:401 AliAlignmentTracks.cxx:402 AliAlignmentTracks.cxx:403 AliAlignmentTracks.cxx:404 AliAlignmentTracks.cxx:405 AliAlignmentTracks.cxx:406 AliAlignmentTracks.cxx:407 AliAlignmentTracks.cxx:408 AliAlignmentTracks.cxx:409 AliAlignmentTracks.cxx:410 AliAlignmentTracks.cxx:411 AliAlignmentTracks.cxx:412 AliAlignmentTracks.cxx:413 AliAlignmentTracks.cxx:414 AliAlignmentTracks.cxx:415 AliAlignmentTracks.cxx:416 AliAlignmentTracks.cxx:417 AliAlignmentTracks.cxx:418 AliAlignmentTracks.cxx:419 AliAlignmentTracks.cxx:420 AliAlignmentTracks.cxx:421 AliAlignmentTracks.cxx:422 AliAlignmentTracks.cxx:423 AliAlignmentTracks.cxx:424 AliAlignmentTracks.cxx:425 AliAlignmentTracks.cxx:426 AliAlignmentTracks.cxx:427 AliAlignmentTracks.cxx:428 AliAlignmentTracks.cxx:429 AliAlignmentTracks.cxx:430 AliAlignmentTracks.cxx:431 AliAlignmentTracks.cxx:432 AliAlignmentTracks.cxx:433 AliAlignmentTracks.cxx:434 AliAlignmentTracks.cxx:435 AliAlignmentTracks.cxx:436 AliAlignmentTracks.cxx:437 AliAlignmentTracks.cxx:438 AliAlignmentTracks.cxx:439 AliAlignmentTracks.cxx:440 AliAlignmentTracks.cxx:441 AliAlignmentTracks.cxx:442 AliAlignmentTracks.cxx:443 AliAlignmentTracks.cxx:444 AliAlignmentTracks.cxx:445 AliAlignmentTracks.cxx:446 AliAlignmentTracks.cxx:447 AliAlignmentTracks.cxx:448 AliAlignmentTracks.cxx:449 AliAlignmentTracks.cxx:450 AliAlignmentTracks.cxx:451 AliAlignmentTracks.cxx:452 AliAlignmentTracks.cxx:453 AliAlignmentTracks.cxx:454 AliAlignmentTracks.cxx:455 AliAlignmentTracks.cxx:456 AliAlignmentTracks.cxx:457 AliAlignmentTracks.cxx:458 AliAlignmentTracks.cxx:459 AliAlignmentTracks.cxx:460 AliAlignmentTracks.cxx:461 AliAlignmentTracks.cxx:462 AliAlignmentTracks.cxx:463 AliAlignmentTracks.cxx:464 AliAlignmentTracks.cxx:465 AliAlignmentTracks.cxx:466 AliAlignmentTracks.cxx:467 AliAlignmentTracks.cxx:468 AliAlignmentTracks.cxx:469 AliAlignmentTracks.cxx:470 AliAlignmentTracks.cxx:471 AliAlignmentTracks.cxx:472 AliAlignmentTracks.cxx:473 AliAlignmentTracks.cxx:474 AliAlignmentTracks.cxx:475 AliAlignmentTracks.cxx:476 AliAlignmentTracks.cxx:477 AliAlignmentTracks.cxx:478 AliAlignmentTracks.cxx:479 AliAlignmentTracks.cxx:480 AliAlignmentTracks.cxx:481 AliAlignmentTracks.cxx:482 AliAlignmentTracks.cxx:483 AliAlignmentTracks.cxx:484 AliAlignmentTracks.cxx:485 AliAlignmentTracks.cxx:486 AliAlignmentTracks.cxx:487 AliAlignmentTracks.cxx:488 AliAlignmentTracks.cxx:489 AliAlignmentTracks.cxx:490 AliAlignmentTracks.cxx:491 AliAlignmentTracks.cxx:492 AliAlignmentTracks.cxx:493 AliAlignmentTracks.cxx:494 AliAlignmentTracks.cxx:495 AliAlignmentTracks.cxx:496 AliAlignmentTracks.cxx:497 AliAlignmentTracks.cxx:498 AliAlignmentTracks.cxx:499 AliAlignmentTracks.cxx:500 AliAlignmentTracks.cxx:501 AliAlignmentTracks.cxx:502 AliAlignmentTracks.cxx:503 AliAlignmentTracks.cxx:504 AliAlignmentTracks.cxx:505 AliAlignmentTracks.cxx:506 AliAlignmentTracks.cxx:507 AliAlignmentTracks.cxx:508 AliAlignmentTracks.cxx:509 AliAlignmentTracks.cxx:510 AliAlignmentTracks.cxx:511 AliAlignmentTracks.cxx:512 AliAlignmentTracks.cxx:513 AliAlignmentTracks.cxx:514 AliAlignmentTracks.cxx:515 AliAlignmentTracks.cxx:516 AliAlignmentTracks.cxx:517 AliAlignmentTracks.cxx:518 AliAlignmentTracks.cxx:519 AliAlignmentTracks.cxx:520 AliAlignmentTracks.cxx:521 AliAlignmentTracks.cxx:522 AliAlignmentTracks.cxx:523 AliAlignmentTracks.cxx:524 AliAlignmentTracks.cxx:525 AliAlignmentTracks.cxx:526 AliAlignmentTracks.cxx:527 AliAlignmentTracks.cxx:528 AliAlignmentTracks.cxx:529 AliAlignmentTracks.cxx:530 AliAlignmentTracks.cxx:531 AliAlignmentTracks.cxx:532 AliAlignmentTracks.cxx:533 AliAlignmentTracks.cxx:534 AliAlignmentTracks.cxx:535 AliAlignmentTracks.cxx:536 AliAlignmentTracks.cxx:537 AliAlignmentTracks.cxx:538 AliAlignmentTracks.cxx:539 AliAlignmentTracks.cxx:540 AliAlignmentTracks.cxx:541 AliAlignmentTracks.cxx:542 AliAlignmentTracks.cxx:543 AliAlignmentTracks.cxx:544 AliAlignmentTracks.cxx:545 AliAlignmentTracks.cxx:546 AliAlignmentTracks.cxx:547 AliAlignmentTracks.cxx:548 AliAlignmentTracks.cxx:549 AliAlignmentTracks.cxx:550 AliAlignmentTracks.cxx:551 AliAlignmentTracks.cxx:552 AliAlignmentTracks.cxx:553 AliAlignmentTracks.cxx:554 AliAlignmentTracks.cxx:555 AliAlignmentTracks.cxx:556 AliAlignmentTracks.cxx:557 AliAlignmentTracks.cxx:558 AliAlignmentTracks.cxx:559 AliAlignmentTracks.cxx:560 AliAlignmentTracks.cxx:561 AliAlignmentTracks.cxx:562 AliAlignmentTracks.cxx:563 AliAlignmentTracks.cxx:564 AliAlignmentTracks.cxx:565 AliAlignmentTracks.cxx:566 AliAlignmentTracks.cxx:567 AliAlignmentTracks.cxx:568 AliAlignmentTracks.cxx:569 AliAlignmentTracks.cxx:570 AliAlignmentTracks.cxx:571 AliAlignmentTracks.cxx:572 AliAlignmentTracks.cxx:573 AliAlignmentTracks.cxx:574 AliAlignmentTracks.cxx:575 AliAlignmentTracks.cxx:576 AliAlignmentTracks.cxx:577 AliAlignmentTracks.cxx:578 AliAlignmentTracks.cxx:579 AliAlignmentTracks.cxx:580 AliAlignmentTracks.cxx:581 AliAlignmentTracks.cxx:582 AliAlignmentTracks.cxx:583 AliAlignmentTracks.cxx:584 AliAlignmentTracks.cxx:585 AliAlignmentTracks.cxx:586 AliAlignmentTracks.cxx:587 AliAlignmentTracks.cxx:588 AliAlignmentTracks.cxx:589 AliAlignmentTracks.cxx:590 AliAlignmentTracks.cxx:591 AliAlignmentTracks.cxx:592 AliAlignmentTracks.cxx:593 AliAlignmentTracks.cxx:594 AliAlignmentTracks.cxx:595 AliAlignmentTracks.cxx:596 AliAlignmentTracks.cxx:597 AliAlignmentTracks.cxx:598 AliAlignmentTracks.cxx:599 AliAlignmentTracks.cxx:600 AliAlignmentTracks.cxx:601 AliAlignmentTracks.cxx:602 AliAlignmentTracks.cxx:603 AliAlignmentTracks.cxx:604 AliAlignmentTracks.cxx:605 AliAlignmentTracks.cxx:606 AliAlignmentTracks.cxx:607 AliAlignmentTracks.cxx:608 AliAlignmentTracks.cxx:609 AliAlignmentTracks.cxx:610 AliAlignmentTracks.cxx:611 AliAlignmentTracks.cxx:612 AliAlignmentTracks.cxx:613 AliAlignmentTracks.cxx:614 AliAlignmentTracks.cxx:615 AliAlignmentTracks.cxx:616 AliAlignmentTracks.cxx:617 AliAlignmentTracks.cxx:618 AliAlignmentTracks.cxx:619 AliAlignmentTracks.cxx:620 AliAlignmentTracks.cxx:621 AliAlignmentTracks.cxx:622 AliAlignmentTracks.cxx:623 AliAlignmentTracks.cxx:624 AliAlignmentTracks.cxx:625 AliAlignmentTracks.cxx:626 AliAlignmentTracks.cxx:627 AliAlignmentTracks.cxx:628 AliAlignmentTracks.cxx:629 AliAlignmentTracks.cxx:630 AliAlignmentTracks.cxx:631 AliAlignmentTracks.cxx:632 AliAlignmentTracks.cxx:633 AliAlignmentTracks.cxx:634 AliAlignmentTracks.cxx:635 AliAlignmentTracks.cxx:636 AliAlignmentTracks.cxx:637 AliAlignmentTracks.cxx:638 AliAlignmentTracks.cxx:639 AliAlignmentTracks.cxx:640 AliAlignmentTracks.cxx:641 AliAlignmentTracks.cxx:642 AliAlignmentTracks.cxx:643 AliAlignmentTracks.cxx:644 AliAlignmentTracks.cxx:645 AliAlignmentTracks.cxx:646 AliAlignmentTracks.cxx:647 AliAlignmentTracks.cxx:648 AliAlignmentTracks.cxx:649 AliAlignmentTracks.cxx:650 AliAlignmentTracks.cxx:651 AliAlignmentTracks.cxx:652 AliAlignmentTracks.cxx:653 AliAlignmentTracks.cxx:654 AliAlignmentTracks.cxx:655 AliAlignmentTracks.cxx:656 AliAlignmentTracks.cxx:657 AliAlignmentTracks.cxx:658 AliAlignmentTracks.cxx:659 AliAlignmentTracks.cxx:660 AliAlignmentTracks.cxx:661 AliAlignmentTracks.cxx:662 AliAlignmentTracks.cxx:663 AliAlignmentTracks.cxx:664 AliAlignmentTracks.cxx:665 AliAlignmentTracks.cxx:666 AliAlignmentTracks.cxx:667 AliAlignmentTracks.cxx:668 AliAlignmentTracks.cxx:669 AliAlignmentTracks.cxx:670 AliAlignmentTracks.cxx:671 AliAlignmentTracks.cxx:672 AliAlignmentTracks.cxx:673 AliAlignmentTracks.cxx:674 AliAlignmentTracks.cxx:675 AliAlignmentTracks.cxx:676 AliAlignmentTracks.cxx:677 AliAlignmentTracks.cxx:678 AliAlignmentTracks.cxx:679 AliAlignmentTracks.cxx:680 AliAlignmentTracks.cxx:681 AliAlignmentTracks.cxx:682 AliAlignmentTracks.cxx:683 AliAlignmentTracks.cxx:684 AliAlignmentTracks.cxx:685 AliAlignmentTracks.cxx:686 AliAlignmentTracks.cxx:687 AliAlignmentTracks.cxx:688 AliAlignmentTracks.cxx:689 AliAlignmentTracks.cxx:690 AliAlignmentTracks.cxx:691 AliAlignmentTracks.cxx:692 AliAlignmentTracks.cxx:693 AliAlignmentTracks.cxx:694 AliAlignmentTracks.cxx:695 AliAlignmentTracks.cxx:696 AliAlignmentTracks.cxx:697 AliAlignmentTracks.cxx:698 AliAlignmentTracks.cxx:699 AliAlignmentTracks.cxx:700 AliAlignmentTracks.cxx:701 AliAlignmentTracks.cxx:702 AliAlignmentTracks.cxx:703 AliAlignmentTracks.cxx:704 AliAlignmentTracks.cxx:705 AliAlignmentTracks.cxx:706 AliAlignmentTracks.cxx:707 AliAlignmentTracks.cxx:708 AliAlignmentTracks.cxx:709 AliAlignmentTracks.cxx:710 AliAlignmentTracks.cxx:711 AliAlignmentTracks.cxx:712 AliAlignmentTracks.cxx:713 AliAlignmentTracks.cxx:714 AliAlignmentTracks.cxx:715 AliAlignmentTracks.cxx:716 AliAlignmentTracks.cxx:717 AliAlignmentTracks.cxx:718 AliAlignmentTracks.cxx:719 AliAlignmentTracks.cxx:720 AliAlignmentTracks.cxx:721 AliAlignmentTracks.cxx:722 AliAlignmentTracks.cxx:723 AliAlignmentTracks.cxx:724 AliAlignmentTracks.cxx:725 AliAlignmentTracks.cxx:726 AliAlignmentTracks.cxx:727 AliAlignmentTracks.cxx:728 AliAlignmentTracks.cxx:729 AliAlignmentTracks.cxx:730 AliAlignmentTracks.cxx:731 AliAlignmentTracks.cxx:732 AliAlignmentTracks.cxx:733 AliAlignmentTracks.cxx:734 AliAlignmentTracks.cxx:735 AliAlignmentTracks.cxx:736 AliAlignmentTracks.cxx:737 AliAlignmentTracks.cxx:738 AliAlignmentTracks.cxx:739 AliAlignmentTracks.cxx:740 AliAlignmentTracks.cxx:741 AliAlignmentTracks.cxx:742 AliAlignmentTracks.cxx:743 AliAlignmentTracks.cxx:744 AliAlignmentTracks.cxx:745 AliAlignmentTracks.cxx:746 AliAlignmentTracks.cxx:747 AliAlignmentTracks.cxx:748 AliAlignmentTracks.cxx:749 AliAlignmentTracks.cxx:750 AliAlignmentTracks.cxx:751 AliAlignmentTracks.cxx:752 AliAlignmentTracks.cxx:753 AliAlignmentTracks.cxx:754 AliAlignmentTracks.cxx:755 AliAlignmentTracks.cxx:756 AliAlignmentTracks.cxx:757 AliAlignmentTracks.cxx:758 AliAlignmentTracks.cxx:759 AliAlignmentTracks.cxx:760 AliAlignmentTracks.cxx:761 AliAlignmentTracks.cxx:762 AliAlignmentTracks.cxx:763 AliAlignmentTracks.cxx:764 AliAlignmentTracks.cxx:765 AliAlignmentTracks.cxx:766 AliAlignmentTracks.cxx:767 AliAlignmentTracks.cxx:768 AliAlignmentTracks.cxx:769 AliAlignmentTracks.cxx:770 AliAlignmentTracks.cxx:771 AliAlignmentTracks.cxx:772 AliAlignmentTracks.cxx:773 AliAlignmentTracks.cxx:774 AliAlignmentTracks.cxx:775 AliAlignmentTracks.cxx:776 AliAlignmentTracks.cxx:777 AliAlignmentTracks.cxx:778 AliAlignmentTracks.cxx:779 AliAlignmentTracks.cxx:780 AliAlignmentTracks.cxx:781 AliAlignmentTracks.cxx:782 AliAlignmentTracks.cxx:783 AliAlignmentTracks.cxx:784 AliAlignmentTracks.cxx:785 AliAlignmentTracks.cxx:786 AliAlignmentTracks.cxx:787 AliAlignmentTracks.cxx:788 AliAlignmentTracks.cxx:789 AliAlignmentTracks.cxx:790 AliAlignmentTracks.cxx:791 AliAlignmentTracks.cxx:792 AliAlignmentTracks.cxx:793 AliAlignmentTracks.cxx:794 AliAlignmentTracks.cxx:795 AliAlignmentTracks.cxx:796 AliAlignmentTracks.cxx:797 AliAlignmentTracks.cxx:798 AliAlignmentTracks.cxx:799 AliAlignmentTracks.cxx:800 AliAlignmentTracks.cxx:801 AliAlignmentTracks.cxx:802 AliAlignmentTracks.cxx:803 AliAlignmentTracks.cxx:804 AliAlignmentTracks.cxx:805 AliAlignmentTracks.cxx:806 AliAlignmentTracks.cxx:807 AliAlignmentTracks.cxx:808 AliAlignmentTracks.cxx:809 AliAlignmentTracks.cxx:810 AliAlignmentTracks.cxx:811 AliAlignmentTracks.cxx:812 AliAlignmentTracks.cxx:813 AliAlignmentTracks.cxx:814 AliAlignmentTracks.cxx:815 AliAlignmentTracks.cxx:816 AliAlignmentTracks.cxx:817 AliAlignmentTracks.cxx:818 AliAlignmentTracks.cxx:819 AliAlignmentTracks.cxx:820 AliAlignmentTracks.cxx:821 AliAlignmentTracks.cxx:822 AliAlignmentTracks.cxx:823 AliAlignmentTracks.cxx:824 AliAlignmentTracks.cxx:825 AliAlignmentTracks.cxx:826 AliAlignmentTracks.cxx:827 AliAlignmentTracks.cxx:828 AliAlignmentTracks.cxx:829 AliAlignmentTracks.cxx:830 AliAlignmentTracks.cxx:831 AliAlignmentTracks.cxx:832 AliAlignmentTracks.cxx:833 AliAlignmentTracks.cxx:834 AliAlignmentTracks.cxx:835 AliAlignmentTracks.cxx:836 AliAlignmentTracks.cxx:837 AliAlignmentTracks.cxx:838 AliAlignmentTracks.cxx:839 AliAlignmentTracks.cxx:840 AliAlignmentTracks.cxx:841 AliAlignmentTracks.cxx:842 AliAlignmentTracks.cxx:843 AliAlignmentTracks.cxx:844 AliAlignmentTracks.cxx:845 AliAlignmentTracks.cxx:846 AliAlignmentTracks.cxx:847 AliAlignmentTracks.cxx:848 AliAlignmentTracks.cxx:849 AliAlignmentTracks.cxx:850 AliAlignmentTracks.cxx:851 AliAlignmentTracks.cxx:852 AliAlignmentTracks.cxx:853 AliAlignmentTracks.cxx:854 AliAlignmentTracks.cxx:855 AliAlignmentTracks.cxx:856 AliAlignmentTracks.cxx:857 AliAlignmentTracks.cxx:858 AliAlignmentTracks.cxx:859 AliAlignmentTracks.cxx:860 AliAlignmentTracks.cxx:861 AliAlignmentTracks.cxx:862 AliAlignmentTracks.cxx:863 AliAlignmentTracks.cxx:864 AliAlignmentTracks.cxx:865 AliAlignmentTracks.cxx:866 AliAlignmentTracks.cxx:867 AliAlignmentTracks.cxx:868 AliAlignmentTracks.cxx:869 AliAlignmentTracks.cxx:870 AliAlignmentTracks.cxx:871 AliAlignmentTracks.cxx:872 AliAlignmentTracks.cxx:873 AliAlignmentTracks.cxx:874 AliAlignmentTracks.cxx:875 AliAlignmentTracks.cxx:876 AliAlignmentTracks.cxx:877 AliAlignmentTracks.cxx:878 AliAlignmentTracks.cxx:879 AliAlignmentTracks.cxx:880 AliAlignmentTracks.cxx:881 AliAlignmentTracks.cxx:882 AliAlignmentTracks.cxx:883 AliAlignmentTracks.cxx:884 AliAlignmentTracks.cxx:885 AliAlignmentTracks.cxx:886 AliAlignmentTracks.cxx:887 AliAlignmentTracks.cxx:888 AliAlignmentTracks.cxx:889 AliAlignmentTracks.cxx:890 AliAlignmentTracks.cxx:891 AliAlignmentTracks.cxx:892 AliAlignmentTracks.cxx:893 AliAlignmentTracks.cxx:894 AliAlignmentTracks.cxx:895 AliAlignmentTracks.cxx:896 AliAlignmentTracks.cxx:897 AliAlignmentTracks.cxx:898 AliAlignmentTracks.cxx:899 AliAlignmentTracks.cxx:900 AliAlignmentTracks.cxx:901 AliAlignmentTracks.cxx:902 AliAlignmentTracks.cxx:903 AliAlignmentTracks.cxx:904 AliAlignmentTracks.cxx:905 AliAlignmentTracks.cxx:906 AliAlignmentTracks.cxx:907 AliAlignmentTracks.cxx:908 AliAlignmentTracks.cxx:909 AliAlignmentTracks.cxx:910 AliAlignmentTracks.cxx:911 AliAlignmentTracks.cxx:912 AliAlignmentTracks.cxx:913 AliAlignmentTracks.cxx:914 AliAlignmentTracks.cxx:915 AliAlignmentTracks.cxx:916 AliAlignmentTracks.cxx:917 AliAlignmentTracks.cxx:918 AliAlignmentTracks.cxx:919 AliAlignmentTracks.cxx:920 AliAlignmentTracks.cxx:921 AliAlignmentTracks.cxx:922 AliAlignmentTracks.cxx:923 AliAlignmentTracks.cxx:924 AliAlignmentTracks.cxx:925 AliAlignmentTracks.cxx:926 AliAlignmentTracks.cxx:927 AliAlignmentTracks.cxx:928 AliAlignmentTracks.cxx:929 AliAlignmentTracks.cxx:930 AliAlignmentTracks.cxx:931 AliAlignmentTracks.cxx:932 AliAlignmentTracks.cxx:933 AliAlignmentTracks.cxx:934 AliAlignmentTracks.cxx:935 AliAlignmentTracks.cxx:936 AliAlignmentTracks.cxx:937 AliAlignmentTracks.cxx:938 AliAlignmentTracks.cxx:939 AliAlignmentTracks.cxx:940 AliAlignmentTracks.cxx:941 AliAlignmentTracks.cxx:942 AliAlignmentTracks.cxx:943 AliAlignmentTracks.cxx:944 AliAlignmentTracks.cxx:945 AliAlignmentTracks.cxx:946 AliAlignmentTracks.cxx:947 AliAlignmentTracks.cxx:948 AliAlignmentTracks.cxx:949 AliAlignmentTracks.cxx:950 AliAlignmentTracks.cxx:951 AliAlignmentTracks.cxx:952 AliAlignmentTracks.cxx:953 AliAlignmentTracks.cxx:954 AliAlignmentTracks.cxx:955 AliAlignmentTracks.cxx:956 AliAlignmentTracks.cxx:957 AliAlignmentTracks.cxx:958 AliAlignmentTracks.cxx:959 AliAlignmentTracks.cxx:960 AliAlignmentTracks.cxx:961 AliAlignmentTracks.cxx:962 AliAlignmentTracks.cxx:963 AliAlignmentTracks.cxx:964 AliAlignmentTracks.cxx:965 AliAlignmentTracks.cxx:966 AliAlignmentTracks.cxx:967 AliAlignmentTracks.cxx:968 AliAlignmentTracks.cxx:969 AliAlignmentTracks.cxx:970 AliAlignmentTracks.cxx:971 AliAlignmentTracks.cxx:972 AliAlignmentTracks.cxx:973 AliAlignmentTracks.cxx:974 AliAlignmentTracks.cxx:975 AliAlignmentTracks.cxx:976 AliAlignmentTracks.cxx:977 AliAlignmentTracks.cxx:978 AliAlignmentTracks.cxx:979 AliAlignmentTracks.cxx:980 AliAlignmentTracks.cxx:981 AliAlignmentTracks.cxx:982 AliAlignmentTracks.cxx:983 AliAlignmentTracks.cxx:984 AliAlignmentTracks.cxx:985 AliAlignmentTracks.cxx:986 AliAlignmentTracks.cxx:987 AliAlignmentTracks.cxx:988 AliAlignmentTracks.cxx:989 AliAlignmentTracks.cxx:990 AliAlignmentTracks.cxx:991 AliAlignmentTracks.cxx:992 AliAlignmentTracks.cxx:993 AliAlignmentTracks.cxx:994 AliAlignmentTracks.cxx:995 AliAlignmentTracks.cxx:996 AliAlignmentTracks.cxx:997 AliAlignmentTracks.cxx:998 AliAlignmentTracks.cxx:999 AliAlignmentTracks.cxx:1000 AliAlignmentTracks.cxx:1001 AliAlignmentTracks.cxx:1002 AliAlignmentTracks.cxx:1003 AliAlignmentTracks.cxx:1004 AliAlignmentTracks.cxx:1005 AliAlignmentTracks.cxx:1006 AliAlignmentTracks.cxx:1007 AliAlignmentTracks.cxx:1008 AliAlignmentTracks.cxx:1009 AliAlignmentTracks.cxx:1010 AliAlignmentTracks.cxx:1011 AliAlignmentTracks.cxx:1012 AliAlignmentTracks.cxx:1013 AliAlignmentTracks.cxx:1014 AliAlignmentTracks.cxx:1015 AliAlignmentTracks.cxx:1016 AliAlignmentTracks.cxx:1017 AliAlignmentTracks.cxx:1018 AliAlignmentTracks.cxx:1019 AliAlignmentTracks.cxx:1020 AliAlignmentTracks.cxx:1021 AliAlignmentTracks.cxx:1022 AliAlignmentTracks.cxx:1023 AliAlignmentTracks.cxx:1024 AliAlignmentTracks.cxx:1025 AliAlignmentTracks.cxx:1026 AliAlignmentTracks.cxx:1027 AliAlignmentTracks.cxx:1028 AliAlignmentTracks.cxx:1029 AliAlignmentTracks.cxx:1030 AliAlignmentTracks.cxx:1031 AliAlignmentTracks.cxx:1032 AliAlignmentTracks.cxx:1033 AliAlignmentTracks.cxx:1034 AliAlignmentTracks.cxx:1035 AliAlignmentTracks.cxx:1036 AliAlignmentTracks.cxx:1037 AliAlignmentTracks.cxx:1038 AliAlignmentTracks.cxx:1039 AliAlignmentTracks.cxx:1040 AliAlignmentTracks.cxx:1041 AliAlignmentTracks.cxx:1042 AliAlignmentTracks.cxx:1043 AliAlignmentTracks.cxx:1044 AliAlignmentTracks.cxx:1045 AliAlignmentTracks.cxx:1046 AliAlignmentTracks.cxx:1047 AliAlignmentTracks.cxx:1048 AliAlignmentTracks.cxx:1049 AliAlignmentTracks.cxx:1050 AliAlignmentTracks.cxx:1051 AliAlignmentTracks.cxx:1052 AliAlignmentTracks.cxx:1053 AliAlignmentTracks.cxx:1054 AliAlignmentTracks.cxx:1055 AliAlignmentTracks.cxx:1056 AliAlignmentTracks.cxx:1057 AliAlignmentTracks.cxx:1058 AliAlignmentTracks.cxx:1059 AliAlignmentTracks.cxx:1060 AliAlignmentTracks.cxx:1061 AliAlignmentTracks.cxx:1062 AliAlignmentTracks.cxx:1063 AliAlignmentTracks.cxx:1064 AliAlignmentTracks.cxx:1065