#include "AliTPCCalibGlobalMisalignment.h"
#include "TMath.h"
#include "TGeoMatrix.h"
#include "AliTPCROC.h"
#include "AliTPCcalibDB.h"
#include "AliTPCParam.h"
#include <TGeoPhysicalNode.h>
#include "AliAlignObjParams.h"
#include "AliGeomManager.h"
#include "AliCDBManager.h"
#include "AliCDBEntry.h"
AliTPCCalibGlobalMisalignment::AliTPCCalibGlobalMisalignment()
: AliTPCCorrection("mialign","Misalignment"),
fXShift(0.),fYShift(0.),fZShift(0.),
fRotPhiA(0.),fRotPhiC(0.),
fdRPhiOffsetA(0.),
fdRPhiOffsetC(0.),
fQuadrantQ0(0),
fQuadrantRQ0(0),
fQuadrantQ1(0),
fQuadrantQ2(0),
fQuadrantRQ1(0),
fQuadrantRQ2(0),
fMatrixGlobal(0),
fMatrixGlobalDelta(0),
fArraySector(0)
{
}
AliTPCCalibGlobalMisalignment::~AliTPCCalibGlobalMisalignment() {
delete fQuadrantQ0;
delete fQuadrantRQ0;
delete fQuadrantQ1;
delete fQuadrantQ2;
delete fQuadrantRQ1;
delete fQuadrantRQ2;
delete fMatrixGlobal;
delete fMatrixGlobal;
delete fArraySector;
}
void AliTPCCalibGlobalMisalignment::SetQuadranAlign(const TVectorD *quadrantQ0, const TVectorD *quadrantRQ0, const TVectorD *quadrantQ1,const TVectorD *quadrantRQ1, const TVectorD *quadrantQ2, const TVectorD *quadrantRQ2){
if (quadrantQ0) fQuadrantQ0 = new TVectorD(*quadrantQ0);
if (quadrantRQ0) fQuadrantRQ0 = new TVectorD(*quadrantRQ0);
if (quadrantQ1) fQuadrantQ1 = new TVectorD(*quadrantQ1);
if (quadrantQ1) fQuadrantRQ1 = new TVectorD(*quadrantRQ1);
if (quadrantQ2) fQuadrantQ2 = new TVectorD(*quadrantQ2);
if (quadrantQ2) fQuadrantRQ2 = new TVectorD(*quadrantRQ2);
}
void AliTPCCalibGlobalMisalignment::SetAlignGlobal(const TGeoMatrix * matrixGlobal){
if (fMatrixGlobal) delete fMatrixGlobal;
fMatrixGlobal=0;
if (matrixGlobal) fMatrixGlobal = new TGeoHMatrix(*matrixGlobal);
}
void AliTPCCalibGlobalMisalignment::SetAlignGlobalDelta(const TGeoMatrix * matrixGlobalDelta){
if (fMatrixGlobalDelta) delete fMatrixGlobalDelta;
fMatrixGlobalDelta=0;
if (matrixGlobalDelta) fMatrixGlobalDelta = new TGeoHMatrix(*matrixGlobalDelta);
}
void AliTPCCalibGlobalMisalignment::SetAlignSectors(const TObjArray *arraySector){
if (fArraySector) delete fArraySector;
fArraySector=0;
if (arraySector) fArraySector = (TObjArray*)arraySector->Clone();
}
void AliTPCCalibGlobalMisalignment::GetCorrection(const Float_t x[],const Short_t roc,Float_t dx[]) {
static AliTPCROC *tpcRoc =AliTPCROC::Instance();
Double_t xref = ( tpcRoc->GetPadRowRadii(0,0)+tpcRoc->GetPadRowRadii(36,tpcRoc->GetNRows(36)-1))*0.5;
Double_t xquadrant = tpcRoc->GetPadRowRadii(36,53);
Double_t xIO = ( tpcRoc->GetPadRowRadii(0,tpcRoc->GetNRows(0)-1)+tpcRoc->GetPadRowRadii(36,0))*0.5;
Double_t r=0, phi=0;
r = TMath::Sqrt( x[0]*x[0] + x[1]*x[1] );
phi = TMath::ATan2(x[1],x[0]);
Double_t sec=TMath::Nint(-0.5+(phi*9./TMath::Pi()));
if (sec<0) sec+=18;
Int_t isec = TMath::Nint(sec);
if (roc%36>=18) isec+=18;
Double_t alpha=(sec+0.5)*TMath::Pi()/9;
Double_t pos[3]={0,0,x[2]};
pos[0]= TMath::Cos(alpha)*x[0]+TMath::Sin(alpha)*x[1];
pos[1]= -TMath::Sin(alpha)*x[0]+TMath::Cos(alpha)*x[1];
if (pos[0]>tpcRoc->GetPadRowRadiiUp(0)) isec+=36;
Double_t posQG[3]={x[0],x[1],x[2]};
{
Double_t dly=0;
Bool_t isQ0 = (pos[0]<xquadrant)&&(pos[0]>xIO);
Bool_t isQ1 = (pos[0]>xquadrant);
Double_t sign = (pos[1]>0)? 1.: -1.;
if (isQ0){
if (fQuadrantQ0) dly+=sign*(*fQuadrantQ0)[isec%36];
if (fQuadrantRQ0) dly+=sign*(*fQuadrantRQ0)[isec%36]*(pos[0]-xref);
}
if (isQ1){
if (fQuadrantQ1) dly+=sign*(*fQuadrantQ1)[isec%36];
if (fQuadrantRQ1) dly+=sign*(*fQuadrantRQ1)[isec%36]*(pos[0]-xref);
if (fQuadrantQ2) dly+=(*fQuadrantQ2)[isec%36];
if (fQuadrantRQ2) dly+=(*fQuadrantRQ2)[isec%36]*(pos[0]-xref);
}
posQG[0]= TMath::Cos(alpha)*pos[0]-TMath::Sin(alpha)*(pos[1]+dly);
posQG[1]= TMath::Sin(alpha)*pos[0]+TMath::Cos(alpha)*(pos[1]+dly);
}
if (roc%36<18)
phi += fRotPhiA;
else
phi += fRotPhiC;
if (roc%36<18)
phi += fdRPhiOffsetA/r;
else
phi += fdRPhiOffsetC/r;
dx[0] = r * TMath::Cos(phi) - x[0];
dx[1] = r * TMath::Sin(phi) - x[1];
dx[2] = 0.;
dx[0] -= fXShift;
dx[1] -= fYShift;
dx[2] -= fZShift;
dx[0] += (posQG[0]-x[0]);
dx[1] += (posQG[1]-x[1]);
if (fMatrixGlobal){
Double_t ppos[3]={x[0],x[1],x[2]};
Double_t pposC[3]={x[0],x[1],x[2]};
fMatrixGlobal->LocalToMaster(ppos,pposC);
dx[0]+=pposC[0]-ppos[0];
dx[1]+=pposC[1]-ppos[1];
dx[2]+=pposC[2]-ppos[2];
}
if (fMatrixGlobalDelta){
Double_t ppos[3]={x[0],x[1],x[2]};
Double_t pposC[3]={x[0],x[1],x[2]};
fMatrixGlobalDelta->LocalToMaster(ppos,pposC);
Double_t ssign=(roc%36<18) ? 1.:-1.;
dx[0]+=ssign*(pposC[0]-ppos[0]);
dx[1]+=ssign*(pposC[1]-ppos[1]);
dx[2]+=ssign*(pposC[2]-ppos[2]);
}
if (fArraySector){
TGeoMatrix *mat = (TGeoMatrix*)fArraySector->At(isec);
if (mat){
Double_t ppos[3]={x[0],x[1],x[2]};
Double_t pposC[3]={x[0],x[1],x[2]};
mat->LocalToMaster(ppos,pposC);
dx[0]+=pposC[0]-ppos[0];
dx[1]+=pposC[1]-ppos[1];
dx[2]+=pposC[2]-ppos[2];
}
}
}
void AliTPCCalibGlobalMisalignment::Print(Option_t* ) const {
printf("%s",GetTitle());
printf(" - Trivial Misalignments for calibration purposes: \n");
printf(" - X-Shift: %1.3f cm, Y-Shift: %1.3f cm, Z-Shift: %1.3f cm \n",fXShift,fYShift,fZShift);
printf(" - Phi-Rotations: A side: %1.5f rad, C side: %1.5f rad\n",fRotPhiA,fRotPhiC);
printf(" - dRPhi offsets: A side: %1.5f cm, C side: %1.5f cm\n",fdRPhiOffsetA,fdRPhiOffsetC);
}
void AliTPCCalibGlobalMisalignment::AddAlign(const AliTPCCalibGlobalMisalignment & add){
fXShift+=add.fXShift;
fYShift+=add.fYShift;
fZShift+=add.fZShift;
fRotPhiA+=add.fRotPhiA;
fRotPhiC+=add.fRotPhiC;
fdRPhiOffsetA+=add.fdRPhiOffsetA;
fdRPhiOffsetC+=add.fdRPhiOffsetC;
if (add.fQuadrantQ0) {
if (fQuadrantQ0) fQuadrantQ0->Add(*(add.fQuadrantQ0));
if (!fQuadrantQ0) fQuadrantQ0 = (TVectorD*)(add.fQuadrantQ0->Clone());
}
if (add.fQuadrantRQ0) {
if (fQuadrantRQ0) fQuadrantRQ0->Add(*(add.fQuadrantRQ0));
if (!fQuadrantRQ0) fQuadrantRQ0 = (TVectorD*)(add.fQuadrantRQ0->Clone());
}
if (add.fQuadrantQ1) {
if (fQuadrantQ1) fQuadrantQ1->Add(*(add.fQuadrantQ1));
if (!fQuadrantQ1) fQuadrantQ1 = (TVectorD*)(add.fQuadrantQ1->Clone());
}
if (add.fQuadrantRQ1) {
if (fQuadrantRQ1) fQuadrantRQ1->Add(*(add.fQuadrantRQ1));
if (!fQuadrantRQ1) fQuadrantRQ1 = (TVectorD*)(add.fQuadrantRQ1->Clone());
}
if (add.fQuadrantQ2) {
if (fQuadrantQ2) fQuadrantQ2->Add(*(add.fQuadrantQ2));
if (!fQuadrantQ2) fQuadrantQ2 = (TVectorD*)(add.fQuadrantQ2->Clone());
}
if (add.fQuadrantRQ2) {
if (fQuadrantRQ2) fQuadrantRQ2->Add(*(add.fQuadrantRQ2));
if (!fQuadrantRQ2) fQuadrantRQ2 = (TVectorD*)(add.fQuadrantRQ2->Clone());
}
if (add.fMatrixGlobal){
if (!fMatrixGlobal) fMatrixGlobal = new TGeoHMatrix(*(add.fMatrixGlobal));
if (fMatrixGlobal) ((TGeoHMatrix*)fMatrixGlobal)->Multiply(add.fMatrixGlobal);
}
if (add.fArraySector){
if (!fArraySector) {SetAlignSectors(add.fArraySector);
}else{
for (Int_t isec=0; isec<72; isec++){
TGeoHMatrix *mat0= (TGeoHMatrix*)fArraySector->At(isec);
TGeoHMatrix *mat1= (TGeoHMatrix*)add.fArraySector->At(isec);
if (mat0&&mat1) mat0->Multiply(mat1);
}
}
}
}
AliTPCCalibGlobalMisalignment * AliTPCCalibGlobalMisalignment::CreateOCDBAlign(){
AliCDBEntry * entry = AliCDBManager::Instance()->Get("TPC/Align/Data");
if (!entry){
printf("Missing alignmnet entry. OCDB not initialized?\n");
return 0;
}
TClonesArray * array = (TClonesArray*)entry->GetObject();
Int_t entries = array->GetEntries();
TGeoHMatrix matrixGlobal;
TObjArray *alignArrayOCDB= new TObjArray(73);
{ for (Int_t i=0;i<entries; i++){
TGeoHMatrix matrix;
AliAlignObjParams *alignP = (AliAlignObjParams*)array->UncheckedAt(i);
alignP->GetMatrix(matrix);
Int_t imod;
AliGeomManager::ELayerID ilayer;
alignP->GetVolUID(ilayer, imod);
if (ilayer==AliGeomManager::kInvalidLayer) {
alignArrayOCDB->AddAt(matrix.Clone(),72);
alignP->GetMatrix(matrixGlobal);
}else{
Int_t sector=imod;
if (ilayer==AliGeomManager::kTPC2) sector+=36;
alignArrayOCDB->AddAt(matrix.Clone(),sector);
}
}
}
AliTPCCalibGlobalMisalignment *align = new AliTPCCalibGlobalMisalignment;
align->SetAlignGlobal(&matrixGlobal);
align->SetAlignSectors(alignArrayOCDB);
return align;
}
AliTPCCalibGlobalMisalignment * AliTPCCalibGlobalMisalignment::CreateMeanAlign(const AliTPCCalibGlobalMisalignment *alignIn){
TObjArray * array = alignIn->GetAlignSectors();
TObjArray * arrayNew = new TObjArray(72);
TGeoHMatrix matrix;
{for (Int_t isec=0; isec<72; isec++){
const TGeoMatrix* cmatrix=(TGeoMatrix*)array->At(isec);
if (!cmatrix) continue;
matrix.Multiply(cmatrix);
}}
TGeoHMatrix matrixMean(matrix);
matrixMean.SetDx(matrix.GetTranslation()[0]/72.);
matrixMean.SetDy(matrix.GetTranslation()[1]/72.);
matrixMean.SetDz(matrix.GetTranslation()[2]/72.);
Double_t rotation[12];
{for (Int_t i=0; i<12; i++) {
rotation[i]=1.0;
if (TMath::Abs(matrix.GetRotationMatrix()[i]-1.)>0.1){
rotation[i]=matrix.GetRotationMatrix()[i]/72.;
}
}}
matrixMean.SetRotation(rotation);
TGeoHMatrix matrixInv = matrixMean.Inverse();
{for (Int_t isec=0; isec<72; isec++){
TGeoHMatrix* amatrix=(TGeoHMatrix*)(array->At(isec)->Clone());
if (!amatrix) continue;
amatrix->Multiply(&matrixInv);
arrayNew->AddAt(amatrix,isec);
}}
if (alignIn->GetAlignGlobal()) matrixMean.Multiply((alignIn->GetAlignGlobal()));
AliTPCCalibGlobalMisalignment *alignOut = new AliTPCCalibGlobalMisalignment;
alignOut->SetAlignGlobal(&matrixMean);
alignOut->SetAlignSectors(arrayNew);
return alignOut;
}
void AliTPCCalibGlobalMisalignment::DumpAlignment( AliTPCCalibGlobalMisalignment* align, TTreeSRedirector *pcstream, const char *name){
TObjArray * array = align->GetAlignSectors();
if (!array) return;
TGeoHMatrix matrix;
{for (Int_t isec=0; isec<72; isec++){
TGeoHMatrix* cmatrix=(TGeoHMatrix*)array->At(isec);
TGeoHMatrix* cmatrixDown=(TGeoHMatrix*)array->At(isec%36);
TGeoHMatrix* cmatrixUp=(TGeoHMatrix*)array->At(isec%36+36);
TGeoHMatrix diff(*cmatrixDown);
diff.Multiply(&(cmatrixUp->Inverse()));
(*pcstream)<<name<<
"isec="<<isec<<
"m0.="<<cmatrix<<
"diff.="<<&diff<<
"\n";
}
}
}
AliTPCCalibGlobalMisalignment.cxx:1 AliTPCCalibGlobalMisalignment.cxx:2 AliTPCCalibGlobalMisalignment.cxx:3 AliTPCCalibGlobalMisalignment.cxx:4 AliTPCCalibGlobalMisalignment.cxx:5 AliTPCCalibGlobalMisalignment.cxx:6 AliTPCCalibGlobalMisalignment.cxx:7 AliTPCCalibGlobalMisalignment.cxx:8 AliTPCCalibGlobalMisalignment.cxx:9 AliTPCCalibGlobalMisalignment.cxx:10 AliTPCCalibGlobalMisalignment.cxx:11 AliTPCCalibGlobalMisalignment.cxx:12 AliTPCCalibGlobalMisalignment.cxx:13 AliTPCCalibGlobalMisalignment.cxx:14 AliTPCCalibGlobalMisalignment.cxx:15 AliTPCCalibGlobalMisalignment.cxx:16 AliTPCCalibGlobalMisalignment.cxx:17 AliTPCCalibGlobalMisalignment.cxx:18 AliTPCCalibGlobalMisalignment.cxx:19 AliTPCCalibGlobalMisalignment.cxx:20 AliTPCCalibGlobalMisalignment.cxx:21 AliTPCCalibGlobalMisalignment.cxx:22 AliTPCCalibGlobalMisalignment.cxx:23 AliTPCCalibGlobalMisalignment.cxx:24 AliTPCCalibGlobalMisalignment.cxx:25 AliTPCCalibGlobalMisalignment.cxx:26 AliTPCCalibGlobalMisalignment.cxx:27 AliTPCCalibGlobalMisalignment.cxx:28 AliTPCCalibGlobalMisalignment.cxx:29 AliTPCCalibGlobalMisalignment.cxx:30 AliTPCCalibGlobalMisalignment.cxx:31 AliTPCCalibGlobalMisalignment.cxx:32 AliTPCCalibGlobalMisalignment.cxx:33 AliTPCCalibGlobalMisalignment.cxx:34 AliTPCCalibGlobalMisalignment.cxx:35 AliTPCCalibGlobalMisalignment.cxx:36 AliTPCCalibGlobalMisalignment.cxx:37 AliTPCCalibGlobalMisalignment.cxx:38 AliTPCCalibGlobalMisalignment.cxx:39 AliTPCCalibGlobalMisalignment.cxx:40 AliTPCCalibGlobalMisalignment.cxx:41 AliTPCCalibGlobalMisalignment.cxx:42 AliTPCCalibGlobalMisalignment.cxx:43 AliTPCCalibGlobalMisalignment.cxx:44 AliTPCCalibGlobalMisalignment.cxx:45 AliTPCCalibGlobalMisalignment.cxx:46 AliTPCCalibGlobalMisalignment.cxx:47 AliTPCCalibGlobalMisalignment.cxx:48 AliTPCCalibGlobalMisalignment.cxx:49 AliTPCCalibGlobalMisalignment.cxx:50 AliTPCCalibGlobalMisalignment.cxx:51 AliTPCCalibGlobalMisalignment.cxx:52 AliTPCCalibGlobalMisalignment.cxx:53 AliTPCCalibGlobalMisalignment.cxx:54 AliTPCCalibGlobalMisalignment.cxx:55 AliTPCCalibGlobalMisalignment.cxx:56 AliTPCCalibGlobalMisalignment.cxx:57 AliTPCCalibGlobalMisalignment.cxx:58 AliTPCCalibGlobalMisalignment.cxx:59 AliTPCCalibGlobalMisalignment.cxx:60 AliTPCCalibGlobalMisalignment.cxx:61 AliTPCCalibGlobalMisalignment.cxx:62 AliTPCCalibGlobalMisalignment.cxx:63 AliTPCCalibGlobalMisalignment.cxx:64 AliTPCCalibGlobalMisalignment.cxx:65 AliTPCCalibGlobalMisalignment.cxx:66 AliTPCCalibGlobalMisalignment.cxx:67 AliTPCCalibGlobalMisalignment.cxx:68 AliTPCCalibGlobalMisalignment.cxx:69 AliTPCCalibGlobalMisalignment.cxx:70 AliTPCCalibGlobalMisalignment.cxx:71 AliTPCCalibGlobalMisalignment.cxx:72 AliTPCCalibGlobalMisalignment.cxx:73 AliTPCCalibGlobalMisalignment.cxx:74 AliTPCCalibGlobalMisalignment.cxx:75 AliTPCCalibGlobalMisalignment.cxx:76 AliTPCCalibGlobalMisalignment.cxx:77 AliTPCCalibGlobalMisalignment.cxx:78 AliTPCCalibGlobalMisalignment.cxx:79 AliTPCCalibGlobalMisalignment.cxx:80 AliTPCCalibGlobalMisalignment.cxx:81 AliTPCCalibGlobalMisalignment.cxx:82 AliTPCCalibGlobalMisalignment.cxx:83 AliTPCCalibGlobalMisalignment.cxx:84 AliTPCCalibGlobalMisalignment.cxx:85 AliTPCCalibGlobalMisalignment.cxx:86 AliTPCCalibGlobalMisalignment.cxx:87 AliTPCCalibGlobalMisalignment.cxx:88 AliTPCCalibGlobalMisalignment.cxx:89 AliTPCCalibGlobalMisalignment.cxx:90 AliTPCCalibGlobalMisalignment.cxx:91 AliTPCCalibGlobalMisalignment.cxx:92 AliTPCCalibGlobalMisalignment.cxx:93 AliTPCCalibGlobalMisalignment.cxx:94 AliTPCCalibGlobalMisalignment.cxx:95 AliTPCCalibGlobalMisalignment.cxx:96 AliTPCCalibGlobalMisalignment.cxx:97 AliTPCCalibGlobalMisalignment.cxx:98 AliTPCCalibGlobalMisalignment.cxx:99 AliTPCCalibGlobalMisalignment.cxx:100 AliTPCCalibGlobalMisalignment.cxx:101 AliTPCCalibGlobalMisalignment.cxx:102 AliTPCCalibGlobalMisalignment.cxx:103 AliTPCCalibGlobalMisalignment.cxx:104 AliTPCCalibGlobalMisalignment.cxx:105 AliTPCCalibGlobalMisalignment.cxx:106 AliTPCCalibGlobalMisalignment.cxx:107 AliTPCCalibGlobalMisalignment.cxx:108 AliTPCCalibGlobalMisalignment.cxx:109 AliTPCCalibGlobalMisalignment.cxx:110 AliTPCCalibGlobalMisalignment.cxx:111 AliTPCCalibGlobalMisalignment.cxx:112 AliTPCCalibGlobalMisalignment.cxx:113 AliTPCCalibGlobalMisalignment.cxx:114 AliTPCCalibGlobalMisalignment.cxx:115 AliTPCCalibGlobalMisalignment.cxx:116 AliTPCCalibGlobalMisalignment.cxx:117 AliTPCCalibGlobalMisalignment.cxx:118 AliTPCCalibGlobalMisalignment.cxx:119 AliTPCCalibGlobalMisalignment.cxx:120 AliTPCCalibGlobalMisalignment.cxx:121 AliTPCCalibGlobalMisalignment.cxx:122 AliTPCCalibGlobalMisalignment.cxx:123 AliTPCCalibGlobalMisalignment.cxx:124 AliTPCCalibGlobalMisalignment.cxx:125 AliTPCCalibGlobalMisalignment.cxx:126 AliTPCCalibGlobalMisalignment.cxx:127 AliTPCCalibGlobalMisalignment.cxx:128 AliTPCCalibGlobalMisalignment.cxx:129 AliTPCCalibGlobalMisalignment.cxx:130 AliTPCCalibGlobalMisalignment.cxx:131 AliTPCCalibGlobalMisalignment.cxx:132 AliTPCCalibGlobalMisalignment.cxx:133 AliTPCCalibGlobalMisalignment.cxx:134 AliTPCCalibGlobalMisalignment.cxx:135 AliTPCCalibGlobalMisalignment.cxx:136 AliTPCCalibGlobalMisalignment.cxx:137 AliTPCCalibGlobalMisalignment.cxx:138 AliTPCCalibGlobalMisalignment.cxx:139 AliTPCCalibGlobalMisalignment.cxx:140 AliTPCCalibGlobalMisalignment.cxx:141 AliTPCCalibGlobalMisalignment.cxx:142 AliTPCCalibGlobalMisalignment.cxx:143 AliTPCCalibGlobalMisalignment.cxx:144 AliTPCCalibGlobalMisalignment.cxx:145 AliTPCCalibGlobalMisalignment.cxx:146 AliTPCCalibGlobalMisalignment.cxx:147 AliTPCCalibGlobalMisalignment.cxx:148 AliTPCCalibGlobalMisalignment.cxx:149 AliTPCCalibGlobalMisalignment.cxx:150 AliTPCCalibGlobalMisalignment.cxx:151 AliTPCCalibGlobalMisalignment.cxx:152 AliTPCCalibGlobalMisalignment.cxx:153 AliTPCCalibGlobalMisalignment.cxx:154 AliTPCCalibGlobalMisalignment.cxx:155 AliTPCCalibGlobalMisalignment.cxx:156 AliTPCCalibGlobalMisalignment.cxx:157 AliTPCCalibGlobalMisalignment.cxx:158 AliTPCCalibGlobalMisalignment.cxx:159 AliTPCCalibGlobalMisalignment.cxx:160 AliTPCCalibGlobalMisalignment.cxx:161 AliTPCCalibGlobalMisalignment.cxx:162 AliTPCCalibGlobalMisalignment.cxx:163 AliTPCCalibGlobalMisalignment.cxx:164 AliTPCCalibGlobalMisalignment.cxx:165 AliTPCCalibGlobalMisalignment.cxx:166 AliTPCCalibGlobalMisalignment.cxx:167 AliTPCCalibGlobalMisalignment.cxx:168 AliTPCCalibGlobalMisalignment.cxx:169 AliTPCCalibGlobalMisalignment.cxx:170 AliTPCCalibGlobalMisalignment.cxx:171 AliTPCCalibGlobalMisalignment.cxx:172 AliTPCCalibGlobalMisalignment.cxx:173 AliTPCCalibGlobalMisalignment.cxx:174 AliTPCCalibGlobalMisalignment.cxx:175 AliTPCCalibGlobalMisalignment.cxx:176 AliTPCCalibGlobalMisalignment.cxx:177 AliTPCCalibGlobalMisalignment.cxx:178 AliTPCCalibGlobalMisalignment.cxx:179 AliTPCCalibGlobalMisalignment.cxx:180 AliTPCCalibGlobalMisalignment.cxx:181 AliTPCCalibGlobalMisalignment.cxx:182 AliTPCCalibGlobalMisalignment.cxx:183 AliTPCCalibGlobalMisalignment.cxx:184 AliTPCCalibGlobalMisalignment.cxx:185 AliTPCCalibGlobalMisalignment.cxx:186 AliTPCCalibGlobalMisalignment.cxx:187 AliTPCCalibGlobalMisalignment.cxx:188 AliTPCCalibGlobalMisalignment.cxx:189 AliTPCCalibGlobalMisalignment.cxx:190 AliTPCCalibGlobalMisalignment.cxx:191 AliTPCCalibGlobalMisalignment.cxx:192 AliTPCCalibGlobalMisalignment.cxx:193 AliTPCCalibGlobalMisalignment.cxx:194 AliTPCCalibGlobalMisalignment.cxx:195 AliTPCCalibGlobalMisalignment.cxx:196 AliTPCCalibGlobalMisalignment.cxx:197 AliTPCCalibGlobalMisalignment.cxx:198 AliTPCCalibGlobalMisalignment.cxx:199 AliTPCCalibGlobalMisalignment.cxx:200 AliTPCCalibGlobalMisalignment.cxx:201 AliTPCCalibGlobalMisalignment.cxx:202 AliTPCCalibGlobalMisalignment.cxx:203 AliTPCCalibGlobalMisalignment.cxx:204 AliTPCCalibGlobalMisalignment.cxx:205 AliTPCCalibGlobalMisalignment.cxx:206 AliTPCCalibGlobalMisalignment.cxx:207 AliTPCCalibGlobalMisalignment.cxx:208 AliTPCCalibGlobalMisalignment.cxx:209 AliTPCCalibGlobalMisalignment.cxx:210 AliTPCCalibGlobalMisalignment.cxx:211 AliTPCCalibGlobalMisalignment.cxx:212 AliTPCCalibGlobalMisalignment.cxx:213 AliTPCCalibGlobalMisalignment.cxx:214 AliTPCCalibGlobalMisalignment.cxx:215 AliTPCCalibGlobalMisalignment.cxx:216 AliTPCCalibGlobalMisalignment.cxx:217 AliTPCCalibGlobalMisalignment.cxx:218 AliTPCCalibGlobalMisalignment.cxx:219 AliTPCCalibGlobalMisalignment.cxx:220 AliTPCCalibGlobalMisalignment.cxx:221 AliTPCCalibGlobalMisalignment.cxx:222 AliTPCCalibGlobalMisalignment.cxx:223 AliTPCCalibGlobalMisalignment.cxx:224 AliTPCCalibGlobalMisalignment.cxx:225 AliTPCCalibGlobalMisalignment.cxx:226 AliTPCCalibGlobalMisalignment.cxx:227 AliTPCCalibGlobalMisalignment.cxx:228 AliTPCCalibGlobalMisalignment.cxx:229 AliTPCCalibGlobalMisalignment.cxx:230 AliTPCCalibGlobalMisalignment.cxx:231 AliTPCCalibGlobalMisalignment.cxx:232 AliTPCCalibGlobalMisalignment.cxx:233 AliTPCCalibGlobalMisalignment.cxx:234 AliTPCCalibGlobalMisalignment.cxx:235 AliTPCCalibGlobalMisalignment.cxx:236 AliTPCCalibGlobalMisalignment.cxx:237 AliTPCCalibGlobalMisalignment.cxx:238 AliTPCCalibGlobalMisalignment.cxx:239 AliTPCCalibGlobalMisalignment.cxx:240 AliTPCCalibGlobalMisalignment.cxx:241 AliTPCCalibGlobalMisalignment.cxx:242 AliTPCCalibGlobalMisalignment.cxx:243 AliTPCCalibGlobalMisalignment.cxx:244 AliTPCCalibGlobalMisalignment.cxx:245 AliTPCCalibGlobalMisalignment.cxx:246 AliTPCCalibGlobalMisalignment.cxx:247 AliTPCCalibGlobalMisalignment.cxx:248 AliTPCCalibGlobalMisalignment.cxx:249 AliTPCCalibGlobalMisalignment.cxx:250 AliTPCCalibGlobalMisalignment.cxx:251 AliTPCCalibGlobalMisalignment.cxx:252 AliTPCCalibGlobalMisalignment.cxx:253 AliTPCCalibGlobalMisalignment.cxx:254 AliTPCCalibGlobalMisalignment.cxx:255 AliTPCCalibGlobalMisalignment.cxx:256 AliTPCCalibGlobalMisalignment.cxx:257 AliTPCCalibGlobalMisalignment.cxx:258 AliTPCCalibGlobalMisalignment.cxx:259 AliTPCCalibGlobalMisalignment.cxx:260 AliTPCCalibGlobalMisalignment.cxx:261 AliTPCCalibGlobalMisalignment.cxx:262 AliTPCCalibGlobalMisalignment.cxx:263 AliTPCCalibGlobalMisalignment.cxx:264 AliTPCCalibGlobalMisalignment.cxx:265 AliTPCCalibGlobalMisalignment.cxx:266 AliTPCCalibGlobalMisalignment.cxx:267 AliTPCCalibGlobalMisalignment.cxx:268 AliTPCCalibGlobalMisalignment.cxx:269 AliTPCCalibGlobalMisalignment.cxx:270 AliTPCCalibGlobalMisalignment.cxx:271 AliTPCCalibGlobalMisalignment.cxx:272 AliTPCCalibGlobalMisalignment.cxx:273 AliTPCCalibGlobalMisalignment.cxx:274 AliTPCCalibGlobalMisalignment.cxx:275 AliTPCCalibGlobalMisalignment.cxx:276 AliTPCCalibGlobalMisalignment.cxx:277 AliTPCCalibGlobalMisalignment.cxx:278 AliTPCCalibGlobalMisalignment.cxx:279 AliTPCCalibGlobalMisalignment.cxx:280 AliTPCCalibGlobalMisalignment.cxx:281 AliTPCCalibGlobalMisalignment.cxx:282 AliTPCCalibGlobalMisalignment.cxx:283 AliTPCCalibGlobalMisalignment.cxx:284 AliTPCCalibGlobalMisalignment.cxx:285 AliTPCCalibGlobalMisalignment.cxx:286 AliTPCCalibGlobalMisalignment.cxx:287 AliTPCCalibGlobalMisalignment.cxx:288 AliTPCCalibGlobalMisalignment.cxx:289 AliTPCCalibGlobalMisalignment.cxx:290 AliTPCCalibGlobalMisalignment.cxx:291 AliTPCCalibGlobalMisalignment.cxx:292 AliTPCCalibGlobalMisalignment.cxx:293 AliTPCCalibGlobalMisalignment.cxx:294 AliTPCCalibGlobalMisalignment.cxx:295 AliTPCCalibGlobalMisalignment.cxx:296 AliTPCCalibGlobalMisalignment.cxx:297 AliTPCCalibGlobalMisalignment.cxx:298 AliTPCCalibGlobalMisalignment.cxx:299 AliTPCCalibGlobalMisalignment.cxx:300 AliTPCCalibGlobalMisalignment.cxx:301 AliTPCCalibGlobalMisalignment.cxx:302 AliTPCCalibGlobalMisalignment.cxx:303 AliTPCCalibGlobalMisalignment.cxx:304 AliTPCCalibGlobalMisalignment.cxx:305 AliTPCCalibGlobalMisalignment.cxx:306 AliTPCCalibGlobalMisalignment.cxx:307 AliTPCCalibGlobalMisalignment.cxx:308 AliTPCCalibGlobalMisalignment.cxx:309 AliTPCCalibGlobalMisalignment.cxx:310 AliTPCCalibGlobalMisalignment.cxx:311 AliTPCCalibGlobalMisalignment.cxx:312 AliTPCCalibGlobalMisalignment.cxx:313 AliTPCCalibGlobalMisalignment.cxx:314 AliTPCCalibGlobalMisalignment.cxx:315 AliTPCCalibGlobalMisalignment.cxx:316 AliTPCCalibGlobalMisalignment.cxx:317 AliTPCCalibGlobalMisalignment.cxx:318 AliTPCCalibGlobalMisalignment.cxx:319 AliTPCCalibGlobalMisalignment.cxx:320 AliTPCCalibGlobalMisalignment.cxx:321 AliTPCCalibGlobalMisalignment.cxx:322 AliTPCCalibGlobalMisalignment.cxx:323 AliTPCCalibGlobalMisalignment.cxx:324 AliTPCCalibGlobalMisalignment.cxx:325 AliTPCCalibGlobalMisalignment.cxx:326 AliTPCCalibGlobalMisalignment.cxx:327 AliTPCCalibGlobalMisalignment.cxx:328 AliTPCCalibGlobalMisalignment.cxx:329 AliTPCCalibGlobalMisalignment.cxx:330 AliTPCCalibGlobalMisalignment.cxx:331 AliTPCCalibGlobalMisalignment.cxx:332 AliTPCCalibGlobalMisalignment.cxx:333 AliTPCCalibGlobalMisalignment.cxx:334 AliTPCCalibGlobalMisalignment.cxx:335 AliTPCCalibGlobalMisalignment.cxx:336 AliTPCCalibGlobalMisalignment.cxx:337 AliTPCCalibGlobalMisalignment.cxx:338 AliTPCCalibGlobalMisalignment.cxx:339 AliTPCCalibGlobalMisalignment.cxx:340 AliTPCCalibGlobalMisalignment.cxx:341 AliTPCCalibGlobalMisalignment.cxx:342 AliTPCCalibGlobalMisalignment.cxx:343 AliTPCCalibGlobalMisalignment.cxx:344 AliTPCCalibGlobalMisalignment.cxx:345 AliTPCCalibGlobalMisalignment.cxx:346 AliTPCCalibGlobalMisalignment.cxx:347 AliTPCCalibGlobalMisalignment.cxx:348 AliTPCCalibGlobalMisalignment.cxx:349 AliTPCCalibGlobalMisalignment.cxx:350 AliTPCCalibGlobalMisalignment.cxx:351 AliTPCCalibGlobalMisalignment.cxx:352 AliTPCCalibGlobalMisalignment.cxx:353 AliTPCCalibGlobalMisalignment.cxx:354 AliTPCCalibGlobalMisalignment.cxx:355 AliTPCCalibGlobalMisalignment.cxx:356 AliTPCCalibGlobalMisalignment.cxx:357 AliTPCCalibGlobalMisalignment.cxx:358 AliTPCCalibGlobalMisalignment.cxx:359 AliTPCCalibGlobalMisalignment.cxx:360 AliTPCCalibGlobalMisalignment.cxx:361 AliTPCCalibGlobalMisalignment.cxx:362 AliTPCCalibGlobalMisalignment.cxx:363 AliTPCCalibGlobalMisalignment.cxx:364 AliTPCCalibGlobalMisalignment.cxx:365 AliTPCCalibGlobalMisalignment.cxx:366 AliTPCCalibGlobalMisalignment.cxx:367 AliTPCCalibGlobalMisalignment.cxx:368 AliTPCCalibGlobalMisalignment.cxx:369 AliTPCCalibGlobalMisalignment.cxx:370 AliTPCCalibGlobalMisalignment.cxx:371 AliTPCCalibGlobalMisalignment.cxx:372 AliTPCCalibGlobalMisalignment.cxx:373 AliTPCCalibGlobalMisalignment.cxx:374 AliTPCCalibGlobalMisalignment.cxx:375 AliTPCCalibGlobalMisalignment.cxx:376 AliTPCCalibGlobalMisalignment.cxx:377 AliTPCCalibGlobalMisalignment.cxx:378 AliTPCCalibGlobalMisalignment.cxx:379 AliTPCCalibGlobalMisalignment.cxx:380 AliTPCCalibGlobalMisalignment.cxx:381 AliTPCCalibGlobalMisalignment.cxx:382 AliTPCCalibGlobalMisalignment.cxx:383 AliTPCCalibGlobalMisalignment.cxx:384 AliTPCCalibGlobalMisalignment.cxx:385 AliTPCCalibGlobalMisalignment.cxx:386 AliTPCCalibGlobalMisalignment.cxx:387 AliTPCCalibGlobalMisalignment.cxx:388 AliTPCCalibGlobalMisalignment.cxx:389 AliTPCCalibGlobalMisalignment.cxx:390 AliTPCCalibGlobalMisalignment.cxx:391 AliTPCCalibGlobalMisalignment.cxx:392 AliTPCCalibGlobalMisalignment.cxx:393 AliTPCCalibGlobalMisalignment.cxx:394 AliTPCCalibGlobalMisalignment.cxx:395 AliTPCCalibGlobalMisalignment.cxx:396 AliTPCCalibGlobalMisalignment.cxx:397 AliTPCCalibGlobalMisalignment.cxx:398 AliTPCCalibGlobalMisalignment.cxx:399 AliTPCCalibGlobalMisalignment.cxx:400 AliTPCCalibGlobalMisalignment.cxx:401 AliTPCCalibGlobalMisalignment.cxx:402 AliTPCCalibGlobalMisalignment.cxx:403 AliTPCCalibGlobalMisalignment.cxx:404 AliTPCCalibGlobalMisalignment.cxx:405 AliTPCCalibGlobalMisalignment.cxx:406 AliTPCCalibGlobalMisalignment.cxx:407 AliTPCCalibGlobalMisalignment.cxx:408 AliTPCCalibGlobalMisalignment.cxx:409 AliTPCCalibGlobalMisalignment.cxx:410 AliTPCCalibGlobalMisalignment.cxx:411 AliTPCCalibGlobalMisalignment.cxx:412 AliTPCCalibGlobalMisalignment.cxx:413 AliTPCCalibGlobalMisalignment.cxx:414 AliTPCCalibGlobalMisalignment.cxx:415 AliTPCCalibGlobalMisalignment.cxx:416 AliTPCCalibGlobalMisalignment.cxx:417 AliTPCCalibGlobalMisalignment.cxx:418 AliTPCCalibGlobalMisalignment.cxx:419 AliTPCCalibGlobalMisalignment.cxx:420 AliTPCCalibGlobalMisalignment.cxx:421 AliTPCCalibGlobalMisalignment.cxx:422 AliTPCCalibGlobalMisalignment.cxx:423 AliTPCCalibGlobalMisalignment.cxx:424 AliTPCCalibGlobalMisalignment.cxx:425 AliTPCCalibGlobalMisalignment.cxx:426 AliTPCCalibGlobalMisalignment.cxx:427 AliTPCCalibGlobalMisalignment.cxx:428 AliTPCCalibGlobalMisalignment.cxx:429 AliTPCCalibGlobalMisalignment.cxx:430 AliTPCCalibGlobalMisalignment.cxx:431 AliTPCCalibGlobalMisalignment.cxx:432 AliTPCCalibGlobalMisalignment.cxx:433 AliTPCCalibGlobalMisalignment.cxx:434 AliTPCCalibGlobalMisalignment.cxx:435 AliTPCCalibGlobalMisalignment.cxx:436 AliTPCCalibGlobalMisalignment.cxx:437 AliTPCCalibGlobalMisalignment.cxx:438 AliTPCCalibGlobalMisalignment.cxx:439 AliTPCCalibGlobalMisalignment.cxx:440 AliTPCCalibGlobalMisalignment.cxx:441 AliTPCCalibGlobalMisalignment.cxx:442 AliTPCCalibGlobalMisalignment.cxx:443 AliTPCCalibGlobalMisalignment.cxx:444 AliTPCCalibGlobalMisalignment.cxx:445 AliTPCCalibGlobalMisalignment.cxx:446 AliTPCCalibGlobalMisalignment.cxx:447 AliTPCCalibGlobalMisalignment.cxx:448 AliTPCCalibGlobalMisalignment.cxx:449 AliTPCCalibGlobalMisalignment.cxx:450 AliTPCCalibGlobalMisalignment.cxx:451 AliTPCCalibGlobalMisalignment.cxx:452 AliTPCCalibGlobalMisalignment.cxx:453 AliTPCCalibGlobalMisalignment.cxx:454 AliTPCCalibGlobalMisalignment.cxx:455 AliTPCCalibGlobalMisalignment.cxx:456 AliTPCCalibGlobalMisalignment.cxx:457 AliTPCCalibGlobalMisalignment.cxx:458 AliTPCCalibGlobalMisalignment.cxx:459 AliTPCCalibGlobalMisalignment.cxx:460 AliTPCCalibGlobalMisalignment.cxx:461 AliTPCCalibGlobalMisalignment.cxx:462 AliTPCCalibGlobalMisalignment.cxx:463 AliTPCCalibGlobalMisalignment.cxx:464 AliTPCCalibGlobalMisalignment.cxx:465 AliTPCCalibGlobalMisalignment.cxx:466 AliTPCCalibGlobalMisalignment.cxx:467 AliTPCCalibGlobalMisalignment.cxx:468 AliTPCCalibGlobalMisalignment.cxx:469 AliTPCCalibGlobalMisalignment.cxx:470