#include <TMath.h>
#include <TMatrixF.h>
#include <TStopwatch.h>
#include <TString.h>
#include <TFile.h>
#include <TObjArray.h>
#include <TSystem.h>
#include <THashList.h>
#include <TVector2.h>
#include <TLinearFitter.h>
#include <AliLog.h>
#include <AliTPCROC.h>
#include "AliTPCCorrection.h"
#include "AliTPCCorrectionLookupTable.h"
ClassImp(AliTPCCorrectionLookupTable)
AliTPCCorrectionLookupTable::AliTPCCorrectionLookupTable()
: AliTPCCorrection()
, fNR(0)
, fNPhi(0)
, fNZ(0)
, fCorrScaleFactor(-1)
, fFillCorrection(kTRUE)
, fLimitsR()
, fLimitsPhi()
, fLimitsZ()
, fLookUpDxDist(0x0)
, fLookUpDyDist(0x0)
, fLookUpDzDist(0x0)
, fLookUpDxCorr(0x0)
, fLookUpDyCorr(0x0)
, fLookUpDzCorr(0x0)
{
}
AliTPCCorrectionLookupTable::~AliTPCCorrectionLookupTable()
{
ResetTables();
}
void AliTPCCorrectionLookupTable::GetDistortion(const Float_t x[],const Short_t roc,Float_t dx[]) {
GetInterpolation(x,roc,dx,fLookUpDxDist,fLookUpDyDist,fLookUpDzDist);
}
void AliTPCCorrectionLookupTable::GetCorrection(const Float_t x[],const Short_t roc,Float_t dx[]) {
GetInterpolation(x,roc,dx,fLookUpDxCorr,fLookUpDyCorr,fLookUpDzCorr);
if (fCorrScaleFactor>0) {
dx[0]*=fCorrScaleFactor;
dx[1]*=fCorrScaleFactor;
dx[2]*=fCorrScaleFactor;
}
}
void AliTPCCorrectionLookupTable::GetInterpolation(const Float_t x[],const Short_t roc,Float_t dx[],
TMatrixF **mDx, TMatrixF **mDy, TMatrixF **mDz)
{
Int_t order = 1 ;
Double_t r, phi, z ;
Int_t sign;
r = TMath::Sqrt( x[0]*x[0] + x[1]*x[1] ) ;
phi = TMath::ATan2(x[1],x[0]) ;
if ( phi < 0 ) phi += TMath::TwoPi() ;
z = x[2] ;
if ( (roc%36) < 18 ) {
sign = 1;
} else {
sign = -1;
}
if ( sign==1 && z < fgkZOffSet ) z = fgkZOffSet;
if ( sign==-1 && z > -fgkZOffSet ) z = -fgkZOffSet;
if ( (sign==1 && z<0) || (sign==-1 && z>0) )
AliError("ROC number does not correspond to z coordinate! Calculation of distortions is most likely wrong!");
dx[0] = Interpolate3DTable(order, r, z, phi,
fNR, fNZ, fNPhi,
fLimitsR.GetMatrixArray(),
fLimitsZ.GetMatrixArray(),
fLimitsPhi.GetMatrixArray(),
mDx );
dx[1] = Interpolate3DTable(order, r, z, phi,
fNR, fNZ, fNPhi,
fLimitsR.GetMatrixArray(),
fLimitsZ.GetMatrixArray(),
fLimitsPhi.GetMatrixArray(),
mDy);
dx[2] = Interpolate3DTable(order, r, z, phi,
fNR, fNZ, fNPhi,
fLimitsR.GetMatrixArray(),
fLimitsZ.GetMatrixArray(),
fLimitsPhi.GetMatrixArray(),
mDz );
}
void AliTPCCorrectionLookupTable::CreateLookupTable(AliTPCCorrection &tpcCorr, Float_t stepSize)
{
if (fNR==0) {
AliError("Limits are not set yet. Please use one of the Set..Limits functions first");
return;
}
TStopwatch s;
ResetTables();
InitTables();
for (Int_t iPhi=0; iPhi<fNPhi; ++iPhi){
CreateLookupTablePhiBin(tpcCorr,iPhi,stepSize);
}
s.Stop();
AliInfo(Form("Required time for lookup table creation: %.2f (%.2f) sec. real (cpu)",s.RealTime(),s.CpuTime()));
}
void AliTPCCorrectionLookupTable::CreateLookupTableSinglePhi(AliTPCCorrection &tpcCorr, Int_t iPhi, Float_t stepSize)
{
if (fNR==0) {
AliError("Limits are not set yet. Please use one of the Set..Limits functions first");
return;
}
TStopwatch s;
ResetTables();
InitTableArrays();
InitTablesPhiBin(iPhi);
CreateLookupTablePhiBin(tpcCorr,iPhi,stepSize);
s.Stop();
AliInfo(Form("Required time for lookup table creation: %.2f (%.2f) sec. real (cpu)",s.RealTime(),s.CpuTime()));
}
void AliTPCCorrectionLookupTable::CreateLookupTablePhiBin(AliTPCCorrection &tpcCorr, Int_t iPhi, Float_t stepSize)
{
if (iPhi<0||iPhi>=fNPhi) return;
const Float_t delta=stepSize;
Float_t x[3]={0.,0.,0.};
Float_t dx[3]={0.,0.,0.};
Double_t phi=fLimitsPhi(iPhi);
TMatrixF &mDxDist = *fLookUpDxDist[iPhi];
TMatrixF &mDyDist = *fLookUpDyDist[iPhi];
TMatrixF &mDzDist = *fLookUpDzDist[iPhi];
TMatrixF &mDxCorr = *fLookUpDxCorr[iPhi];
TMatrixF &mDyCorr = *fLookUpDyCorr[iPhi];
TMatrixF &mDzCorr = *fLookUpDzCorr[iPhi];
for (Int_t ir=0; ir<fNR; ++ir){
Double_t r=fLimitsR(ir);
x[0]=r * TMath::Cos(phi);
x[1]=r * TMath::Sin(phi);
for (Int_t iz=0; iz<fNZ; ++iz){
Double_t z=fLimitsZ(iz);
x[2]=z;
Int_t roc=TMath::Nint(phi*TMath::RadToDeg()/20.)%18;
if (r>133.) roc+=36;
if (z<0) roc+=18;
if (delta>0)
tpcCorr.GetDistortionIntegralDz(x,roc,dx,delta);
else
tpcCorr.GetDistortion(x,roc,dx);
mDxDist(ir,iz)=dx[0];
mDyDist(ir,iz)=dx[1];
mDzDist(ir,iz)=dx[2];
if (fFillCorrection) {
if (delta>0)
tpcCorr.GetCorrectionIntegralDz(x,roc,dx,delta);
else
tpcCorr.GetCorrection(x,roc,dx);
mDxCorr(ir,iz)=dx[0];
mDyCorr(ir,iz)=dx[1];
mDzCorr(ir,iz)=dx[2];
}
}
}
}
void AliTPCCorrectionLookupTable::InitTables()
{
InitTableArrays();
for (Int_t iPhi=0; iPhi<fNPhi; ++iPhi){
InitTablesPhiBin(iPhi);
}
}
void AliTPCCorrectionLookupTable::CreateLookupTableFromResidualDistortion(THn &resDist)
{
if (fNR==0) {
AliError("Limits are not set yet. Please use one of the Set..Limits functions first");
return;
}
ResetTables();
InitTables();
Double_t x[3]={0.,0.,0.};
for (Int_t iPhi=0; iPhi<fNPhi; ++iPhi){
const Double_t phi=fLimitsPhi(iPhi);
x[1]=phi;
TMatrixF &mDxDist = *fLookUpDxDist[iPhi];
TMatrixF &mDyDist = *fLookUpDyDist[iPhi];
TMatrixF &mDzDist = *fLookUpDzDist[iPhi];
TMatrixF &mDxCorr = *fLookUpDxCorr[iPhi];
TMatrixF &mDyCorr = *fLookUpDyCorr[iPhi];
TMatrixF &mDzCorr = *fLookUpDzCorr[iPhi];
for (Int_t ir=0; ir<fNR; ++ir){
const Double_t r=fLimitsR(ir);
x[0]=r;
for (Int_t iz=0; iz<fNZ; ++iz){
const Double_t z=fLimitsZ(iz);
x[2]=z;
const Double_t drphi = resDist.GetBinContent(resDist.GetBin(x));
Double_t dx[3]={0.,drphi,0.};
Double_t cs=TMath::Cos(phi), sn=TMath::Sin(phi), lx=dx[0];
dx[0]=lx*cs - dx[1]*sn; dx[1]=lx*sn + dx[1]*cs;
mDxDist(ir,iz)=dx[0];
mDyDist(ir,iz)=dx[1];
mDzDist(ir,iz)=dx[2];
mDxCorr(ir,iz)=-dx[0];
mDyCorr(ir,iz)=-dx[1];
mDzCorr(ir,iz)=-dx[2];
}
}
}
}
void AliTPCCorrectionLookupTable::CreateResidual(AliTPCCorrection *distortion, AliTPCCorrection* correction)
{
ResetTables();
InitTables();
Float_t x[3]={0.,0.,0.};
for (Int_t iPhi=0; iPhi<fNPhi; ++iPhi){
const Double_t phi=fLimitsPhi(iPhi);
TMatrixF &mDxDist = *fLookUpDxDist[iPhi];
TMatrixF &mDyDist = *fLookUpDyDist[iPhi];
TMatrixF &mDzDist = *fLookUpDzDist[iPhi];
TMatrixF &mDxCorr = *fLookUpDxCorr[iPhi];
TMatrixF &mDyCorr = *fLookUpDyCorr[iPhi];
TMatrixF &mDzCorr = *fLookUpDzCorr[iPhi];
for (Int_t ir=0; ir<fNR; ++ir){
const Double_t r=fLimitsR(ir);
x[0]=r * TMath::Cos(phi);
x[1]=r * TMath::Sin(phi);
for (Int_t iz=0; iz<fNZ; ++iz){
const Double_t z=fLimitsZ(iz);
x[2]=z;
Float_t xdc[3]={x[0], x[1], x[2]};
Int_t roc=TMath::Nint(phi*TMath::RadToDeg()/20.)%18;
if (r>133.) roc+=36;
if (z<0) roc+=18;
distortion->DistortPoint(xdc, roc);
correction->CorrectPoint(xdc, roc);
Float_t dx[3]={xdc[0]-x[0], xdc[1]-x[1], xdc[2]-x[2]};
mDxDist(ir,iz)=dx[0];
mDyDist(ir,iz)=dx[1];
mDzDist(ir,iz)=dx[2];
mDxCorr(ir,iz)=-dx[0];
mDyCorr(ir,iz)=-dx[1];
mDzCorr(ir,iz)=-dx[2];
}
}
}
}
void AliTPCCorrectionLookupTable::InitTablesPhiBin(Int_t iPhi)
{
if (iPhi<0||iPhi>=fNPhi) return;
if (fLookUpDxCorr[iPhi]) return;
fLookUpDxCorr[iPhi] = new TMatrixF(fNR,fNZ);
fLookUpDyCorr[iPhi] = new TMatrixF(fNR,fNZ);
fLookUpDzCorr[iPhi] = new TMatrixF(fNR,fNZ);
fLookUpDxDist[iPhi] = new TMatrixF(fNR,fNZ);
fLookUpDyDist[iPhi] = new TMatrixF(fNR,fNZ);
fLookUpDzDist[iPhi] = new TMatrixF(fNR,fNZ);
}
void AliTPCCorrectionLookupTable::InitTableArrays()
{
SetupDefaultLimits();
fLookUpDxCorr = new TMatrixF*[fNPhi];
fLookUpDyCorr = new TMatrixF*[fNPhi];
fLookUpDzCorr = new TMatrixF*[fNPhi];
fLookUpDxDist = new TMatrixF*[fNPhi];
fLookUpDyDist = new TMatrixF*[fNPhi];
fLookUpDzDist = new TMatrixF*[fNPhi];
for (Int_t iPhi=0; iPhi<fNPhi; ++iPhi){
fLookUpDxCorr[iPhi] = 0x0;
fLookUpDyCorr[iPhi] = 0x0;
fLookUpDzCorr[iPhi] = 0x0;
fLookUpDxDist[iPhi] = 0x0;
fLookUpDyDist[iPhi] = 0x0;
fLookUpDzDist[iPhi] = 0x0;
}
}
void AliTPCCorrectionLookupTable::ResetTables()
{
if (!fLookUpDxCorr) return;
for (Int_t iPhi=0; iPhi<fNPhi; ++iPhi){
delete fLookUpDxCorr[iPhi];
delete fLookUpDyCorr[iPhi];
delete fLookUpDzCorr[iPhi];
delete fLookUpDxDist[iPhi];
delete fLookUpDyDist[iPhi];
delete fLookUpDzDist[iPhi];
}
delete [] fLookUpDxCorr;
delete [] fLookUpDyCorr;
delete [] fLookUpDzCorr;
delete [] fLookUpDxDist;
delete [] fLookUpDyDist;
delete [] fLookUpDzDist;
fLookUpDxCorr = 0x0;
fLookUpDyCorr = 0x0;
fLookUpDzCorr = 0x0;
fLookUpDxDist = 0x0;
fLookUpDyDist = 0x0;
fLookUpDzDist = 0x0;
}
void AliTPCCorrectionLookupTable::SetupDefaultLimits()
{
fNR = kNR;
fNPhi = kNPhi;
fNZ = kNZ;
fLimitsR. ResizeTo(fNR);
fLimitsPhi.ResizeTo(fNPhi);
fLimitsZ. ResizeTo(fNZ);
fLimitsR. SetElements(fgkRList);
fLimitsPhi.SetElements(fgkPhiList);
fLimitsZ. SetElements(fgkZList);
}
void AliTPCCorrectionLookupTable::ResetLimits()
{
fNR = 0;
fNPhi = 0;
fNZ = 0;
fLimitsR. ResizeTo(1);
fLimitsPhi.ResizeTo(1);
fLimitsZ. ResizeTo(1);
}
void AliTPCCorrectionLookupTable::MergePhiTables(const char* files)
{
ResetTables();
ResetLimits();
TString sfiles=gSystem->GetFromPipe(Form("ls %s",files));
TObjArray *arrFiles=sfiles.Tokenize("\n");
for (Int_t i=0; i<arrFiles->GetEntriesFast();++i){
TFile f(arrFiles->At(i)->GetName());
if (!f.IsOpen() || f.IsZombie()) continue;
AliTPCCorrectionLookupTable *lt=dynamic_cast<AliTPCCorrectionLookupTable*>(f.Get(f.GetListOfKeys()->First()->GetName()));
if (!lt) {
AliError(Form("first object in file '%s' is not of type AliTPCCorrectionLookupTable!",f.GetName()));
continue;
}
if (!fNR) {
fNR = lt->fNR;
fNPhi = lt->fNPhi;
fNZ = lt->fNZ;
fLimitsR = lt->fLimitsR;
fLimitsZ = lt->fLimitsZ;
fLimitsPhi = lt->fLimitsPhi;
InitTableArrays();
} else {
if (fNR!=lt->fNR || fNPhi!=lt->fNPhi || fNZ!=lt->fNZ ){
AliError(Form("Current limits don't macht the ones in file '%s'",f.GetName()));
continue;
}
}
for (Int_t iPhi=0; iPhi<fNPhi; ++iPhi) {
if (!lt->fLookUpDxCorr[iPhi]) continue;
AliInfo(Form("Adding phi bin '%d' from file '%s'",iPhi,f.GetName()));
InitTablesPhiBin(iPhi);
*fLookUpDxDist[iPhi] = *lt->fLookUpDxDist[iPhi];
*fLookUpDyDist[iPhi] = *lt->fLookUpDyDist[iPhi];
*fLookUpDzDist[iPhi] = *lt->fLookUpDzDist[iPhi];
*fLookUpDxCorr[iPhi] = *lt->fLookUpDxCorr[iPhi];
*fLookUpDyCorr[iPhi] = *lt->fLookUpDyCorr[iPhi];
*fLookUpDzCorr[iPhi] = *lt->fLookUpDzCorr[iPhi];
break;
}
}
for (Int_t iPhi=0; iPhi<fNPhi; ++iPhi) {
if (!fLookUpDxCorr[iPhi]) {
AliFatal(Form("Phi bin '%d' not initialised from files!",iPhi));
}
}
delete arrFiles;
}
void AliTPCCorrectionLookupTable::BuildExactInverse()
{
Float_t x[3] = {0.,0.,0.};
Float_t x2[3] = {0.,0.,0.};
Float_t xref[3] = {0.,0.,0.};
Float_t xd[3] = {0.,0.,0.};
Float_t dx[3] = {0.,0.,0.};
for (Int_t iPhi=0; iPhi<fNPhi; ++iPhi){
TMatrixF &mDxCorr = *fLookUpDxCorr[iPhi];
TMatrixF &mDyCorr = *fLookUpDyCorr[iPhi];
TMatrixF &mDzCorr = *fLookUpDzCorr[iPhi];
for (Int_t ir=0; ir<fNR; ++ir){
for (Int_t iz=0; iz<fNZ; ++iz){
mDxCorr(ir,iz) = -1000.;
mDyCorr(ir,iz) = -1000.;
mDzCorr(ir,iz) = -1000.;
}
}
}
for (Int_t iPhi=0; iPhi<fNPhi; ++iPhi){
Double_t phi=fLimitsPhi(iPhi);
TMatrixF &mDxDist = *fLookUpDxDist[iPhi];
TMatrixF &mDyDist = *fLookUpDyDist[iPhi];
TMatrixF &mDzDist = *fLookUpDzDist[iPhi];
for (Int_t ir=0; ir<fNR; ++ir){
Double_t r=fLimitsR(ir);
x[0]=r * TMath::Cos(phi);
x[1]=r * TMath::Sin(phi);
for (Int_t iz=0; iz<fNZ; ++iz){
Double_t z=fLimitsZ(iz);
x[2]=z;
Int_t roc=TMath::Nint(phi*TMath::RadToDeg()/20.)%18;
if (r>133.) roc+=36;
if (z<0) roc+=18;
dx[0] = mDxDist(ir,iz);
dx[1] = mDyDist(ir,iz);
dx[2] = mDzDist(ir,iz);
xd[0] = x[0]+dx[0];
xd[1] = x[1]+dx[1];
xd[2] = x[2]+dx[2];
const Double_t phid = TVector2::Phi_0_2pi(TMath::ATan2(xd[1],xd[0]));
const Double_t rd = TMath::Sqrt(xd[0]*xd[0] + xd[1]*xd[1]);
const Double_t zd = xd[2];
Int_t ilow = 0, jlow = 0, klow = 0 ;
Search( fLimitsR.GetNrows(), fLimitsR.GetMatrixArray(), rd, ilow ) ;
Search( fLimitsZ.GetNrows(), fLimitsZ.GetMatrixArray(), zd, jlow ) ;
Search( fLimitsPhi.GetNrows(), fLimitsPhi.GetMatrixArray(), phid, klow ) ;
if ( ilow < 0 ) ilow = 0 ;
if ( jlow < 0 ) jlow = 0 ;
if ( klow < 0 ) klow = 0 ;
if ( ilow >= fLimitsR.GetNrows()) ilow = fLimitsR.GetNrows() - 1;
if ( jlow >= fLimitsZ.GetNrows()) jlow = fLimitsZ.GetNrows() - 1;
if ( klow >= fLimitsPhi.GetNrows()) klow = fLimitsPhi.GetNrows() - 1;
const Double_t phiRef = fLimitsPhi[klow];
const Double_t rRef = fLimitsR[ilow];
const Double_t zRef = fLimitsZ[jlow];
TMatrixF &mDxCorr = *fLookUpDxCorr[klow];
if ( mDxCorr(ilow, jlow) > -1000. ) continue;
TMatrixF &mDyCorr = *fLookUpDyCorr[klow];
TMatrixF &mDzCorr = *fLookUpDzCorr[klow];
xref[0]= rRef * TMath::Cos(phiRef);
xref[1]= rRef * TMath::Sin(phiRef);
xref[2]= zRef;
FindClosestPosition(ir,iz,iPhi, xref, x2);
GetDistortion(x2,roc,dx);
mDxCorr(ilow, jlow) = -dx[0];
mDyCorr(ilow, jlow) = -dx[1];
mDzCorr(ilow, jlow) = -dx[2];
}
}
}
{
TMatrixF &mDxCorr = *fLookUpDxCorr[0];
TMatrixF &mDyCorr = *fLookUpDyCorr[0];
TMatrixF &mDzCorr = *fLookUpDzCorr[0];
TMatrixF &mDxCorr2 = *fLookUpDxCorr[fNPhi-1];
TMatrixF &mDyCorr2 = *fLookUpDyCorr[fNPhi-1];
TMatrixF &mDzCorr2 = *fLookUpDzCorr[fNPhi-1];
for (Int_t ir=0; ir<fNR; ++ir){
for (Int_t iz=0; iz<fNZ; ++iz){
mDxCorr2(ir,iz) = mDxCorr(ir,iz);
mDyCorr2(ir,iz) = mDyCorr(ir,iz);
mDzCorr2(ir,iz) = mDzCorr(ir,iz);
}
}
}
for (Int_t iPhi=0; iPhi<fNPhi; ++iPhi){
TMatrixF &mDxCorr = *fLookUpDxCorr[iPhi];
TMatrixF &mDyCorr = *fLookUpDyCorr[iPhi];
TMatrixF &mDzCorr = *fLookUpDzCorr[iPhi];
Double_t phi=fLimitsPhi(iPhi);
for (Int_t ir=0; ir<fNR; ++ir){
Double_t r=fLimitsR(ir);
x[0]=r * TMath::Cos(phi);
x[1]=r * TMath::Sin(phi);
for (Int_t iz=0; iz<fNZ; ++iz){
if (mDxCorr(ir,iz) > -999.) continue;
Double_t z=fLimitsZ(iz);
x[2]=z;
Int_t roc=TMath::Nint(phi*TMath::RadToDeg()/20.)%18;
if (r>133.) roc+=36;
if (z<0) roc+=18;
dx[0] = mDxCorr(ir,iz-1);
dx[1] = mDyCorr(ir,iz-1);
dx[2] = mDzCorr(ir,iz-1);
xd[0] = x[0]+dx[0];
xd[1] = x[1]+dx[1];
xd[2] = x[2]+dx[2];
const Double_t phid = TVector2::Phi_0_2pi(TMath::ATan2(xd[1],xd[0]));
const Double_t rd = TMath::Sqrt(xd[0]*xd[0] + xd[1]*xd[1]);
const Double_t zd = xd[2];
Int_t ilow = 0, jlow = 0, klow = 0 ;
Search( fLimitsR.GetNrows(), fLimitsR.GetMatrixArray(), rd, ilow ) ;
Search( fLimitsZ.GetNrows(), fLimitsZ.GetMatrixArray(), zd, jlow ) ;
Search( fLimitsPhi.GetNrows(), fLimitsPhi.GetMatrixArray(), phid, klow ) ;
if ( ilow < 0 ) ilow = 0 ;
if ( jlow < 0 ) jlow = 0 ;
if ( klow < 0 ) klow = 0 ;
if ( ilow >= fLimitsR.GetNrows()) ilow = fLimitsR.GetNrows() - 1;
if ( jlow >= fLimitsZ.GetNrows()) jlow = fLimitsZ.GetNrows() - 1;
if ( klow >= fLimitsPhi.GetNrows()) klow = fLimitsPhi.GetNrows() - 1;
FindClosestPosition(ilow,jlow,klow, x, x2);
GetDistortion(x2,roc,dx);
mDxCorr(ir, iz) = -dx[0];
mDyCorr(ir, iz) = -dx[1];
mDzCorr(ir, iz) = -dx[2];
}
}
}
}
void AliTPCCorrectionLookupTable::FindClosestPosition(const Int_t binR, const Int_t binZ, const Int_t binPhi,
const Float_t xref[3], Float_t xret[3])
{
static TLinearFitter fitx(4,"hyp3");
static TLinearFitter fity(4,"hyp3");
static TLinearFitter fitz(4,"hyp3");
fitx.ClearPoints();
fity.ClearPoints();
fitz.ClearPoints();
const Int_t nPoints=3;
Int_t counter=0;
Int_t rMin=binR;
Int_t zMin=binZ;
Int_t phiMin=binPhi;
counter=nPoints/2;
while (rMin>0 && counter--) --rMin;
counter=nPoints/2;
while (zMin>0 && counter--) --zMin;
counter=nPoints/2;
while (phiMin>0 && counter--) --phiMin;
Int_t rMax = rMin +nPoints;
Int_t zMax = zMin +nPoints;
Int_t phiMax = phiMin+nPoints;
while (rMax>=fNR) {--rMin; --rMax;}
while (zMax>=fNZ) {--zMin; --zMax;}
while (phiMax>=fNPhi) {--phiMin; --phiMax;}
Float_t x[3] = {0.,0.,0.};
Double_t xd[3] = {0.,0.,0.};
Float_t dx[3] = {0.,0.,0.};
for (Int_t iPhi=phiMin; iPhi<phiMax; ++iPhi) {
TMatrixF &mDxDist = *fLookUpDxDist[iPhi];
TMatrixF &mDyDist = *fLookUpDyDist[iPhi];
TMatrixF &mDzDist = *fLookUpDzDist[iPhi];
Double_t phi=fLimitsPhi(iPhi);
for (Int_t ir=rMin; ir<rMax; ++ir){
Double_t r=fLimitsR(ir);
x[0]=r * TMath::Cos(phi);
x[1]=r * TMath::Sin(phi);
for (Int_t iz=zMin; iz<zMax; ++iz){
Double_t z=fLimitsZ(iz);
x[2]=z;
dx[0] = mDxDist(ir,iz);
dx[1] = mDyDist(ir,iz);
dx[2] = mDzDist(ir,iz);
xd[0] = x[0]+dx[0];
xd[1] = x[1]+dx[1];
xd[2] = x[2]+dx[2];
fitx.AddPoint(xd, x[0]);
fity.AddPoint(xd, x[1]);
fitz.AddPoint(xd, x[2]);
}
}
}
fitx.Eval();
fity.Eval();
fitz.Eval();
xret[0] = fitx.GetParameter(0) + fitx.GetParameter(1)*xref[0]
+ fitx.GetParameter(2)*xref[1]
+ fitx.GetParameter(3)*xref[2];
xret[1] = fity.GetParameter(0) + fity.GetParameter(1)*xref[0]
+ fity.GetParameter(2)*xref[1]
+ fity.GetParameter(3)*xref[2];
xret[2] = fitz.GetParameter(0) + fitz.GetParameter(1)*xref[0]
+ fitz.GetParameter(2)*xref[1]
+ fitz.GetParameter(3)*xref[2];
}
AliTPCCorrectionLookupTable.cxx:1 AliTPCCorrectionLookupTable.cxx:2 AliTPCCorrectionLookupTable.cxx:3 AliTPCCorrectionLookupTable.cxx:4 AliTPCCorrectionLookupTable.cxx:5 AliTPCCorrectionLookupTable.cxx:6 AliTPCCorrectionLookupTable.cxx:7 AliTPCCorrectionLookupTable.cxx:8 AliTPCCorrectionLookupTable.cxx:9 AliTPCCorrectionLookupTable.cxx:10 AliTPCCorrectionLookupTable.cxx:11 AliTPCCorrectionLookupTable.cxx:12 AliTPCCorrectionLookupTable.cxx:13 AliTPCCorrectionLookupTable.cxx:14 AliTPCCorrectionLookupTable.cxx:15 AliTPCCorrectionLookupTable.cxx:16 AliTPCCorrectionLookupTable.cxx:17 AliTPCCorrectionLookupTable.cxx:18 AliTPCCorrectionLookupTable.cxx:19 AliTPCCorrectionLookupTable.cxx:20 AliTPCCorrectionLookupTable.cxx:21 AliTPCCorrectionLookupTable.cxx:22 AliTPCCorrectionLookupTable.cxx:23 AliTPCCorrectionLookupTable.cxx:24 AliTPCCorrectionLookupTable.cxx:25 AliTPCCorrectionLookupTable.cxx:26 AliTPCCorrectionLookupTable.cxx:27 AliTPCCorrectionLookupTable.cxx:28 AliTPCCorrectionLookupTable.cxx:29 AliTPCCorrectionLookupTable.cxx:30 AliTPCCorrectionLookupTable.cxx:31 AliTPCCorrectionLookupTable.cxx:32 AliTPCCorrectionLookupTable.cxx:33 AliTPCCorrectionLookupTable.cxx:34 AliTPCCorrectionLookupTable.cxx:35 AliTPCCorrectionLookupTable.cxx:36 AliTPCCorrectionLookupTable.cxx:37 AliTPCCorrectionLookupTable.cxx:38 AliTPCCorrectionLookupTable.cxx:39 AliTPCCorrectionLookupTable.cxx:40 AliTPCCorrectionLookupTable.cxx:41 AliTPCCorrectionLookupTable.cxx:42 AliTPCCorrectionLookupTable.cxx:43 AliTPCCorrectionLookupTable.cxx:44 AliTPCCorrectionLookupTable.cxx:45 AliTPCCorrectionLookupTable.cxx:46 AliTPCCorrectionLookupTable.cxx:47 AliTPCCorrectionLookupTable.cxx:48 AliTPCCorrectionLookupTable.cxx:49 AliTPCCorrectionLookupTable.cxx:50 AliTPCCorrectionLookupTable.cxx:51 AliTPCCorrectionLookupTable.cxx:52 AliTPCCorrectionLookupTable.cxx:53 AliTPCCorrectionLookupTable.cxx:54 AliTPCCorrectionLookupTable.cxx:55 AliTPCCorrectionLookupTable.cxx:56 AliTPCCorrectionLookupTable.cxx:57 AliTPCCorrectionLookupTable.cxx:58 AliTPCCorrectionLookupTable.cxx:59 AliTPCCorrectionLookupTable.cxx:60 AliTPCCorrectionLookupTable.cxx:61 AliTPCCorrectionLookupTable.cxx:62 AliTPCCorrectionLookupTable.cxx:63 AliTPCCorrectionLookupTable.cxx:64 AliTPCCorrectionLookupTable.cxx:65 AliTPCCorrectionLookupTable.cxx:66 AliTPCCorrectionLookupTable.cxx:67 AliTPCCorrectionLookupTable.cxx:68 AliTPCCorrectionLookupTable.cxx:69 AliTPCCorrectionLookupTable.cxx:70 AliTPCCorrectionLookupTable.cxx:71 AliTPCCorrectionLookupTable.cxx:72 AliTPCCorrectionLookupTable.cxx:73 AliTPCCorrectionLookupTable.cxx:74 AliTPCCorrectionLookupTable.cxx:75 AliTPCCorrectionLookupTable.cxx:76 AliTPCCorrectionLookupTable.cxx:77 AliTPCCorrectionLookupTable.cxx:78 AliTPCCorrectionLookupTable.cxx:79 AliTPCCorrectionLookupTable.cxx:80 AliTPCCorrectionLookupTable.cxx:81 AliTPCCorrectionLookupTable.cxx:82 AliTPCCorrectionLookupTable.cxx:83 AliTPCCorrectionLookupTable.cxx:84 AliTPCCorrectionLookupTable.cxx:85 AliTPCCorrectionLookupTable.cxx:86 AliTPCCorrectionLookupTable.cxx:87 AliTPCCorrectionLookupTable.cxx:88 AliTPCCorrectionLookupTable.cxx:89 AliTPCCorrectionLookupTable.cxx:90 AliTPCCorrectionLookupTable.cxx:91 AliTPCCorrectionLookupTable.cxx:92 AliTPCCorrectionLookupTable.cxx:93 AliTPCCorrectionLookupTable.cxx:94 AliTPCCorrectionLookupTable.cxx:95 AliTPCCorrectionLookupTable.cxx:96 AliTPCCorrectionLookupTable.cxx:97 AliTPCCorrectionLookupTable.cxx:98 AliTPCCorrectionLookupTable.cxx:99 AliTPCCorrectionLookupTable.cxx:100 AliTPCCorrectionLookupTable.cxx:101 AliTPCCorrectionLookupTable.cxx:102 AliTPCCorrectionLookupTable.cxx:103 AliTPCCorrectionLookupTable.cxx:104 AliTPCCorrectionLookupTable.cxx:105 AliTPCCorrectionLookupTable.cxx:106 AliTPCCorrectionLookupTable.cxx:107 AliTPCCorrectionLookupTable.cxx:108 AliTPCCorrectionLookupTable.cxx:109 AliTPCCorrectionLookupTable.cxx:110 AliTPCCorrectionLookupTable.cxx:111 AliTPCCorrectionLookupTable.cxx:112 AliTPCCorrectionLookupTable.cxx:113 AliTPCCorrectionLookupTable.cxx:114 AliTPCCorrectionLookupTable.cxx:115 AliTPCCorrectionLookupTable.cxx:116 AliTPCCorrectionLookupTable.cxx:117 AliTPCCorrectionLookupTable.cxx:118 AliTPCCorrectionLookupTable.cxx:119 AliTPCCorrectionLookupTable.cxx:120 AliTPCCorrectionLookupTable.cxx:121 AliTPCCorrectionLookupTable.cxx:122 AliTPCCorrectionLookupTable.cxx:123 AliTPCCorrectionLookupTable.cxx:124 AliTPCCorrectionLookupTable.cxx:125 AliTPCCorrectionLookupTable.cxx:126 AliTPCCorrectionLookupTable.cxx:127 AliTPCCorrectionLookupTable.cxx:128 AliTPCCorrectionLookupTable.cxx:129 AliTPCCorrectionLookupTable.cxx:130 AliTPCCorrectionLookupTable.cxx:131 AliTPCCorrectionLookupTable.cxx:132 AliTPCCorrectionLookupTable.cxx:133 AliTPCCorrectionLookupTable.cxx:134 AliTPCCorrectionLookupTable.cxx:135 AliTPCCorrectionLookupTable.cxx:136 AliTPCCorrectionLookupTable.cxx:137 AliTPCCorrectionLookupTable.cxx:138 AliTPCCorrectionLookupTable.cxx:139 AliTPCCorrectionLookupTable.cxx:140 AliTPCCorrectionLookupTable.cxx:141 AliTPCCorrectionLookupTable.cxx:142 AliTPCCorrectionLookupTable.cxx:143 AliTPCCorrectionLookupTable.cxx:144 AliTPCCorrectionLookupTable.cxx:145 AliTPCCorrectionLookupTable.cxx:146 AliTPCCorrectionLookupTable.cxx:147 AliTPCCorrectionLookupTable.cxx:148 AliTPCCorrectionLookupTable.cxx:149 AliTPCCorrectionLookupTable.cxx:150 AliTPCCorrectionLookupTable.cxx:151 AliTPCCorrectionLookupTable.cxx:152 AliTPCCorrectionLookupTable.cxx:153 AliTPCCorrectionLookupTable.cxx:154 AliTPCCorrectionLookupTable.cxx:155 AliTPCCorrectionLookupTable.cxx:156 AliTPCCorrectionLookupTable.cxx:157 AliTPCCorrectionLookupTable.cxx:158 AliTPCCorrectionLookupTable.cxx:159 AliTPCCorrectionLookupTable.cxx:160 AliTPCCorrectionLookupTable.cxx:161 AliTPCCorrectionLookupTable.cxx:162 AliTPCCorrectionLookupTable.cxx:163 AliTPCCorrectionLookupTable.cxx:164 AliTPCCorrectionLookupTable.cxx:165 AliTPCCorrectionLookupTable.cxx:166 AliTPCCorrectionLookupTable.cxx:167 AliTPCCorrectionLookupTable.cxx:168 AliTPCCorrectionLookupTable.cxx:169 AliTPCCorrectionLookupTable.cxx:170 AliTPCCorrectionLookupTable.cxx:171 AliTPCCorrectionLookupTable.cxx:172 AliTPCCorrectionLookupTable.cxx:173 AliTPCCorrectionLookupTable.cxx:174 AliTPCCorrectionLookupTable.cxx:175 AliTPCCorrectionLookupTable.cxx:176 AliTPCCorrectionLookupTable.cxx:177 AliTPCCorrectionLookupTable.cxx:178 AliTPCCorrectionLookupTable.cxx:179 AliTPCCorrectionLookupTable.cxx:180 AliTPCCorrectionLookupTable.cxx:181 AliTPCCorrectionLookupTable.cxx:182 AliTPCCorrectionLookupTable.cxx:183 AliTPCCorrectionLookupTable.cxx:184 AliTPCCorrectionLookupTable.cxx:185 AliTPCCorrectionLookupTable.cxx:186 AliTPCCorrectionLookupTable.cxx:187 AliTPCCorrectionLookupTable.cxx:188 AliTPCCorrectionLookupTable.cxx:189 AliTPCCorrectionLookupTable.cxx:190 AliTPCCorrectionLookupTable.cxx:191 AliTPCCorrectionLookupTable.cxx:192 AliTPCCorrectionLookupTable.cxx:193 AliTPCCorrectionLookupTable.cxx:194 AliTPCCorrectionLookupTable.cxx:195 AliTPCCorrectionLookupTable.cxx:196 AliTPCCorrectionLookupTable.cxx:197 AliTPCCorrectionLookupTable.cxx:198 AliTPCCorrectionLookupTable.cxx:199 AliTPCCorrectionLookupTable.cxx:200 AliTPCCorrectionLookupTable.cxx:201 AliTPCCorrectionLookupTable.cxx:202 AliTPCCorrectionLookupTable.cxx:203 AliTPCCorrectionLookupTable.cxx:204 AliTPCCorrectionLookupTable.cxx:205 AliTPCCorrectionLookupTable.cxx:206 AliTPCCorrectionLookupTable.cxx:207 AliTPCCorrectionLookupTable.cxx:208 AliTPCCorrectionLookupTable.cxx:209 AliTPCCorrectionLookupTable.cxx:210 AliTPCCorrectionLookupTable.cxx:211 AliTPCCorrectionLookupTable.cxx:212 AliTPCCorrectionLookupTable.cxx:213 AliTPCCorrectionLookupTable.cxx:214 AliTPCCorrectionLookupTable.cxx:215 AliTPCCorrectionLookupTable.cxx:216 AliTPCCorrectionLookupTable.cxx:217 AliTPCCorrectionLookupTable.cxx:218 AliTPCCorrectionLookupTable.cxx:219 AliTPCCorrectionLookupTable.cxx:220 AliTPCCorrectionLookupTable.cxx:221 AliTPCCorrectionLookupTable.cxx:222 AliTPCCorrectionLookupTable.cxx:223 AliTPCCorrectionLookupTable.cxx:224 AliTPCCorrectionLookupTable.cxx:225 AliTPCCorrectionLookupTable.cxx:226 AliTPCCorrectionLookupTable.cxx:227 AliTPCCorrectionLookupTable.cxx:228 AliTPCCorrectionLookupTable.cxx:229 AliTPCCorrectionLookupTable.cxx:230 AliTPCCorrectionLookupTable.cxx:231 AliTPCCorrectionLookupTable.cxx:232 AliTPCCorrectionLookupTable.cxx:233 AliTPCCorrectionLookupTable.cxx:234 AliTPCCorrectionLookupTable.cxx:235 AliTPCCorrectionLookupTable.cxx:236 AliTPCCorrectionLookupTable.cxx:237 AliTPCCorrectionLookupTable.cxx:238 AliTPCCorrectionLookupTable.cxx:239 AliTPCCorrectionLookupTable.cxx:240 AliTPCCorrectionLookupTable.cxx:241 AliTPCCorrectionLookupTable.cxx:242 AliTPCCorrectionLookupTable.cxx:243 AliTPCCorrectionLookupTable.cxx:244 AliTPCCorrectionLookupTable.cxx:245 AliTPCCorrectionLookupTable.cxx:246 AliTPCCorrectionLookupTable.cxx:247 AliTPCCorrectionLookupTable.cxx:248 AliTPCCorrectionLookupTable.cxx:249 AliTPCCorrectionLookupTable.cxx:250 AliTPCCorrectionLookupTable.cxx:251 AliTPCCorrectionLookupTable.cxx:252 AliTPCCorrectionLookupTable.cxx:253 AliTPCCorrectionLookupTable.cxx:254 AliTPCCorrectionLookupTable.cxx:255 AliTPCCorrectionLookupTable.cxx:256 AliTPCCorrectionLookupTable.cxx:257 AliTPCCorrectionLookupTable.cxx:258 AliTPCCorrectionLookupTable.cxx:259 AliTPCCorrectionLookupTable.cxx:260 AliTPCCorrectionLookupTable.cxx:261 AliTPCCorrectionLookupTable.cxx:262 AliTPCCorrectionLookupTable.cxx:263 AliTPCCorrectionLookupTable.cxx:264 AliTPCCorrectionLookupTable.cxx:265 AliTPCCorrectionLookupTable.cxx:266 AliTPCCorrectionLookupTable.cxx:267 AliTPCCorrectionLookupTable.cxx:268 AliTPCCorrectionLookupTable.cxx:269 AliTPCCorrectionLookupTable.cxx:270 AliTPCCorrectionLookupTable.cxx:271 AliTPCCorrectionLookupTable.cxx:272 AliTPCCorrectionLookupTable.cxx:273 AliTPCCorrectionLookupTable.cxx:274 AliTPCCorrectionLookupTable.cxx:275 AliTPCCorrectionLookupTable.cxx:276 AliTPCCorrectionLookupTable.cxx:277 AliTPCCorrectionLookupTable.cxx:278 AliTPCCorrectionLookupTable.cxx:279 AliTPCCorrectionLookupTable.cxx:280 AliTPCCorrectionLookupTable.cxx:281 AliTPCCorrectionLookupTable.cxx:282 AliTPCCorrectionLookupTable.cxx:283 AliTPCCorrectionLookupTable.cxx:284 AliTPCCorrectionLookupTable.cxx:285 AliTPCCorrectionLookupTable.cxx:286 AliTPCCorrectionLookupTable.cxx:287 AliTPCCorrectionLookupTable.cxx:288 AliTPCCorrectionLookupTable.cxx:289 AliTPCCorrectionLookupTable.cxx:290 AliTPCCorrectionLookupTable.cxx:291 AliTPCCorrectionLookupTable.cxx:292 AliTPCCorrectionLookupTable.cxx:293 AliTPCCorrectionLookupTable.cxx:294 AliTPCCorrectionLookupTable.cxx:295 AliTPCCorrectionLookupTable.cxx:296 AliTPCCorrectionLookupTable.cxx:297 AliTPCCorrectionLookupTable.cxx:298 AliTPCCorrectionLookupTable.cxx:299 AliTPCCorrectionLookupTable.cxx:300 AliTPCCorrectionLookupTable.cxx:301 AliTPCCorrectionLookupTable.cxx:302 AliTPCCorrectionLookupTable.cxx:303 AliTPCCorrectionLookupTable.cxx:304 AliTPCCorrectionLookupTable.cxx:305 AliTPCCorrectionLookupTable.cxx:306 AliTPCCorrectionLookupTable.cxx:307 AliTPCCorrectionLookupTable.cxx:308 AliTPCCorrectionLookupTable.cxx:309 AliTPCCorrectionLookupTable.cxx:310 AliTPCCorrectionLookupTable.cxx:311 AliTPCCorrectionLookupTable.cxx:312 AliTPCCorrectionLookupTable.cxx:313 AliTPCCorrectionLookupTable.cxx:314 AliTPCCorrectionLookupTable.cxx:315 AliTPCCorrectionLookupTable.cxx:316 AliTPCCorrectionLookupTable.cxx:317 AliTPCCorrectionLookupTable.cxx:318 AliTPCCorrectionLookupTable.cxx:319 AliTPCCorrectionLookupTable.cxx:320 AliTPCCorrectionLookupTable.cxx:321 AliTPCCorrectionLookupTable.cxx:322 AliTPCCorrectionLookupTable.cxx:323 AliTPCCorrectionLookupTable.cxx:324 AliTPCCorrectionLookupTable.cxx:325 AliTPCCorrectionLookupTable.cxx:326 AliTPCCorrectionLookupTable.cxx:327 AliTPCCorrectionLookupTable.cxx:328 AliTPCCorrectionLookupTable.cxx:329 AliTPCCorrectionLookupTable.cxx:330 AliTPCCorrectionLookupTable.cxx:331 AliTPCCorrectionLookupTable.cxx:332 AliTPCCorrectionLookupTable.cxx:333 AliTPCCorrectionLookupTable.cxx:334 AliTPCCorrectionLookupTable.cxx:335 AliTPCCorrectionLookupTable.cxx:336 AliTPCCorrectionLookupTable.cxx:337 AliTPCCorrectionLookupTable.cxx:338 AliTPCCorrectionLookupTable.cxx:339 AliTPCCorrectionLookupTable.cxx:340 AliTPCCorrectionLookupTable.cxx:341 AliTPCCorrectionLookupTable.cxx:342 AliTPCCorrectionLookupTable.cxx:343 AliTPCCorrectionLookupTable.cxx:344 AliTPCCorrectionLookupTable.cxx:345 AliTPCCorrectionLookupTable.cxx:346 AliTPCCorrectionLookupTable.cxx:347 AliTPCCorrectionLookupTable.cxx:348 AliTPCCorrectionLookupTable.cxx:349 AliTPCCorrectionLookupTable.cxx:350 AliTPCCorrectionLookupTable.cxx:351 AliTPCCorrectionLookupTable.cxx:352 AliTPCCorrectionLookupTable.cxx:353 AliTPCCorrectionLookupTable.cxx:354 AliTPCCorrectionLookupTable.cxx:355 AliTPCCorrectionLookupTable.cxx:356 AliTPCCorrectionLookupTable.cxx:357 AliTPCCorrectionLookupTable.cxx:358 AliTPCCorrectionLookupTable.cxx:359 AliTPCCorrectionLookupTable.cxx:360 AliTPCCorrectionLookupTable.cxx:361 AliTPCCorrectionLookupTable.cxx:362 AliTPCCorrectionLookupTable.cxx:363 AliTPCCorrectionLookupTable.cxx:364 AliTPCCorrectionLookupTable.cxx:365 AliTPCCorrectionLookupTable.cxx:366 AliTPCCorrectionLookupTable.cxx:367 AliTPCCorrectionLookupTable.cxx:368 AliTPCCorrectionLookupTable.cxx:369 AliTPCCorrectionLookupTable.cxx:370 AliTPCCorrectionLookupTable.cxx:371 AliTPCCorrectionLookupTable.cxx:372 AliTPCCorrectionLookupTable.cxx:373 AliTPCCorrectionLookupTable.cxx:374 AliTPCCorrectionLookupTable.cxx:375 AliTPCCorrectionLookupTable.cxx:376 AliTPCCorrectionLookupTable.cxx:377 AliTPCCorrectionLookupTable.cxx:378 AliTPCCorrectionLookupTable.cxx:379 AliTPCCorrectionLookupTable.cxx:380 AliTPCCorrectionLookupTable.cxx:381 AliTPCCorrectionLookupTable.cxx:382 AliTPCCorrectionLookupTable.cxx:383 AliTPCCorrectionLookupTable.cxx:384 AliTPCCorrectionLookupTable.cxx:385 AliTPCCorrectionLookupTable.cxx:386 AliTPCCorrectionLookupTable.cxx:387 AliTPCCorrectionLookupTable.cxx:388 AliTPCCorrectionLookupTable.cxx:389 AliTPCCorrectionLookupTable.cxx:390 AliTPCCorrectionLookupTable.cxx:391 AliTPCCorrectionLookupTable.cxx:392 AliTPCCorrectionLookupTable.cxx:393 AliTPCCorrectionLookupTable.cxx:394 AliTPCCorrectionLookupTable.cxx:395 AliTPCCorrectionLookupTable.cxx:396 AliTPCCorrectionLookupTable.cxx:397 AliTPCCorrectionLookupTable.cxx:398 AliTPCCorrectionLookupTable.cxx:399 AliTPCCorrectionLookupTable.cxx:400 AliTPCCorrectionLookupTable.cxx:401 AliTPCCorrectionLookupTable.cxx:402 AliTPCCorrectionLookupTable.cxx:403 AliTPCCorrectionLookupTable.cxx:404 AliTPCCorrectionLookupTable.cxx:405 AliTPCCorrectionLookupTable.cxx:406 AliTPCCorrectionLookupTable.cxx:407 AliTPCCorrectionLookupTable.cxx:408 AliTPCCorrectionLookupTable.cxx:409 AliTPCCorrectionLookupTable.cxx:410 AliTPCCorrectionLookupTable.cxx:411 AliTPCCorrectionLookupTable.cxx:412 AliTPCCorrectionLookupTable.cxx:413 AliTPCCorrectionLookupTable.cxx:414 AliTPCCorrectionLookupTable.cxx:415 AliTPCCorrectionLookupTable.cxx:416 AliTPCCorrectionLookupTable.cxx:417 AliTPCCorrectionLookupTable.cxx:418 AliTPCCorrectionLookupTable.cxx:419 AliTPCCorrectionLookupTable.cxx:420 AliTPCCorrectionLookupTable.cxx:421 AliTPCCorrectionLookupTable.cxx:422 AliTPCCorrectionLookupTable.cxx:423 AliTPCCorrectionLookupTable.cxx:424 AliTPCCorrectionLookupTable.cxx:425 AliTPCCorrectionLookupTable.cxx:426 AliTPCCorrectionLookupTable.cxx:427 AliTPCCorrectionLookupTable.cxx:428 AliTPCCorrectionLookupTable.cxx:429 AliTPCCorrectionLookupTable.cxx:430 AliTPCCorrectionLookupTable.cxx:431 AliTPCCorrectionLookupTable.cxx:432 AliTPCCorrectionLookupTable.cxx:433 AliTPCCorrectionLookupTable.cxx:434 AliTPCCorrectionLookupTable.cxx:435 AliTPCCorrectionLookupTable.cxx:436 AliTPCCorrectionLookupTable.cxx:437 AliTPCCorrectionLookupTable.cxx:438 AliTPCCorrectionLookupTable.cxx:439 AliTPCCorrectionLookupTable.cxx:440 AliTPCCorrectionLookupTable.cxx:441 AliTPCCorrectionLookupTable.cxx:442 AliTPCCorrectionLookupTable.cxx:443 AliTPCCorrectionLookupTable.cxx:444 AliTPCCorrectionLookupTable.cxx:445 AliTPCCorrectionLookupTable.cxx:446 AliTPCCorrectionLookupTable.cxx:447 AliTPCCorrectionLookupTable.cxx:448 AliTPCCorrectionLookupTable.cxx:449 AliTPCCorrectionLookupTable.cxx:450 AliTPCCorrectionLookupTable.cxx:451 AliTPCCorrectionLookupTable.cxx:452 AliTPCCorrectionLookupTable.cxx:453 AliTPCCorrectionLookupTable.cxx:454 AliTPCCorrectionLookupTable.cxx:455 AliTPCCorrectionLookupTable.cxx:456 AliTPCCorrectionLookupTable.cxx:457 AliTPCCorrectionLookupTable.cxx:458 AliTPCCorrectionLookupTable.cxx:459 AliTPCCorrectionLookupTable.cxx:460 AliTPCCorrectionLookupTable.cxx:461 AliTPCCorrectionLookupTable.cxx:462 AliTPCCorrectionLookupTable.cxx:463 AliTPCCorrectionLookupTable.cxx:464 AliTPCCorrectionLookupTable.cxx:465 AliTPCCorrectionLookupTable.cxx:466 AliTPCCorrectionLookupTable.cxx:467 AliTPCCorrectionLookupTable.cxx:468 AliTPCCorrectionLookupTable.cxx:469 AliTPCCorrectionLookupTable.cxx:470 AliTPCCorrectionLookupTable.cxx:471 AliTPCCorrectionLookupTable.cxx:472 AliTPCCorrectionLookupTable.cxx:473 AliTPCCorrectionLookupTable.cxx:474 AliTPCCorrectionLookupTable.cxx:475 AliTPCCorrectionLookupTable.cxx:476 AliTPCCorrectionLookupTable.cxx:477 AliTPCCorrectionLookupTable.cxx:478 AliTPCCorrectionLookupTable.cxx:479 AliTPCCorrectionLookupTable.cxx:480 AliTPCCorrectionLookupTable.cxx:481 AliTPCCorrectionLookupTable.cxx:482 AliTPCCorrectionLookupTable.cxx:483 AliTPCCorrectionLookupTable.cxx:484 AliTPCCorrectionLookupTable.cxx:485 AliTPCCorrectionLookupTable.cxx:486 AliTPCCorrectionLookupTable.cxx:487 AliTPCCorrectionLookupTable.cxx:488 AliTPCCorrectionLookupTable.cxx:489 AliTPCCorrectionLookupTable.cxx:490 AliTPCCorrectionLookupTable.cxx:491 AliTPCCorrectionLookupTable.cxx:492 AliTPCCorrectionLookupTable.cxx:493 AliTPCCorrectionLookupTable.cxx:494 AliTPCCorrectionLookupTable.cxx:495 AliTPCCorrectionLookupTable.cxx:496 AliTPCCorrectionLookupTable.cxx:497 AliTPCCorrectionLookupTable.cxx:498 AliTPCCorrectionLookupTable.cxx:499 AliTPCCorrectionLookupTable.cxx:500 AliTPCCorrectionLookupTable.cxx:501 AliTPCCorrectionLookupTable.cxx:502 AliTPCCorrectionLookupTable.cxx:503 AliTPCCorrectionLookupTable.cxx:504 AliTPCCorrectionLookupTable.cxx:505 AliTPCCorrectionLookupTable.cxx:506 AliTPCCorrectionLookupTable.cxx:507 AliTPCCorrectionLookupTable.cxx:508 AliTPCCorrectionLookupTable.cxx:509 AliTPCCorrectionLookupTable.cxx:510 AliTPCCorrectionLookupTable.cxx:511 AliTPCCorrectionLookupTable.cxx:512 AliTPCCorrectionLookupTable.cxx:513 AliTPCCorrectionLookupTable.cxx:514 AliTPCCorrectionLookupTable.cxx:515 AliTPCCorrectionLookupTable.cxx:516 AliTPCCorrectionLookupTable.cxx:517 AliTPCCorrectionLookupTable.cxx:518 AliTPCCorrectionLookupTable.cxx:519 AliTPCCorrectionLookupTable.cxx:520 AliTPCCorrectionLookupTable.cxx:521 AliTPCCorrectionLookupTable.cxx:522 AliTPCCorrectionLookupTable.cxx:523 AliTPCCorrectionLookupTable.cxx:524 AliTPCCorrectionLookupTable.cxx:525 AliTPCCorrectionLookupTable.cxx:526 AliTPCCorrectionLookupTable.cxx:527 AliTPCCorrectionLookupTable.cxx:528 AliTPCCorrectionLookupTable.cxx:529 AliTPCCorrectionLookupTable.cxx:530 AliTPCCorrectionLookupTable.cxx:531 AliTPCCorrectionLookupTable.cxx:532 AliTPCCorrectionLookupTable.cxx:533 AliTPCCorrectionLookupTable.cxx:534 AliTPCCorrectionLookupTable.cxx:535 AliTPCCorrectionLookupTable.cxx:536 AliTPCCorrectionLookupTable.cxx:537 AliTPCCorrectionLookupTable.cxx:538 AliTPCCorrectionLookupTable.cxx:539 AliTPCCorrectionLookupTable.cxx:540 AliTPCCorrectionLookupTable.cxx:541 AliTPCCorrectionLookupTable.cxx:542 AliTPCCorrectionLookupTable.cxx:543 AliTPCCorrectionLookupTable.cxx:544 AliTPCCorrectionLookupTable.cxx:545 AliTPCCorrectionLookupTable.cxx:546 AliTPCCorrectionLookupTable.cxx:547 AliTPCCorrectionLookupTable.cxx:548 AliTPCCorrectionLookupTable.cxx:549 AliTPCCorrectionLookupTable.cxx:550 AliTPCCorrectionLookupTable.cxx:551 AliTPCCorrectionLookupTable.cxx:552 AliTPCCorrectionLookupTable.cxx:553 AliTPCCorrectionLookupTable.cxx:554 AliTPCCorrectionLookupTable.cxx:555 AliTPCCorrectionLookupTable.cxx:556 AliTPCCorrectionLookupTable.cxx:557 AliTPCCorrectionLookupTable.cxx:558 AliTPCCorrectionLookupTable.cxx:559 AliTPCCorrectionLookupTable.cxx:560 AliTPCCorrectionLookupTable.cxx:561 AliTPCCorrectionLookupTable.cxx:562 AliTPCCorrectionLookupTable.cxx:563 AliTPCCorrectionLookupTable.cxx:564 AliTPCCorrectionLookupTable.cxx:565 AliTPCCorrectionLookupTable.cxx:566 AliTPCCorrectionLookupTable.cxx:567 AliTPCCorrectionLookupTable.cxx:568 AliTPCCorrectionLookupTable.cxx:569 AliTPCCorrectionLookupTable.cxx:570 AliTPCCorrectionLookupTable.cxx:571 AliTPCCorrectionLookupTable.cxx:572 AliTPCCorrectionLookupTable.cxx:573 AliTPCCorrectionLookupTable.cxx:574 AliTPCCorrectionLookupTable.cxx:575 AliTPCCorrectionLookupTable.cxx:576 AliTPCCorrectionLookupTable.cxx:577 AliTPCCorrectionLookupTable.cxx:578 AliTPCCorrectionLookupTable.cxx:579 AliTPCCorrectionLookupTable.cxx:580 AliTPCCorrectionLookupTable.cxx:581 AliTPCCorrectionLookupTable.cxx:582 AliTPCCorrectionLookupTable.cxx:583 AliTPCCorrectionLookupTable.cxx:584 AliTPCCorrectionLookupTable.cxx:585 AliTPCCorrectionLookupTable.cxx:586 AliTPCCorrectionLookupTable.cxx:587 AliTPCCorrectionLookupTable.cxx:588 AliTPCCorrectionLookupTable.cxx:589 AliTPCCorrectionLookupTable.cxx:590 AliTPCCorrectionLookupTable.cxx:591 AliTPCCorrectionLookupTable.cxx:592 AliTPCCorrectionLookupTable.cxx:593 AliTPCCorrectionLookupTable.cxx:594 AliTPCCorrectionLookupTable.cxx:595 AliTPCCorrectionLookupTable.cxx:596 AliTPCCorrectionLookupTable.cxx:597 AliTPCCorrectionLookupTable.cxx:598 AliTPCCorrectionLookupTable.cxx:599 AliTPCCorrectionLookupTable.cxx:600 AliTPCCorrectionLookupTable.cxx:601 AliTPCCorrectionLookupTable.cxx:602 AliTPCCorrectionLookupTable.cxx:603 AliTPCCorrectionLookupTable.cxx:604 AliTPCCorrectionLookupTable.cxx:605 AliTPCCorrectionLookupTable.cxx:606 AliTPCCorrectionLookupTable.cxx:607 AliTPCCorrectionLookupTable.cxx:608 AliTPCCorrectionLookupTable.cxx:609 AliTPCCorrectionLookupTable.cxx:610 AliTPCCorrectionLookupTable.cxx:611 AliTPCCorrectionLookupTable.cxx:612 AliTPCCorrectionLookupTable.cxx:613 AliTPCCorrectionLookupTable.cxx:614 AliTPCCorrectionLookupTable.cxx:615 AliTPCCorrectionLookupTable.cxx:616 AliTPCCorrectionLookupTable.cxx:617 AliTPCCorrectionLookupTable.cxx:618 AliTPCCorrectionLookupTable.cxx:619 AliTPCCorrectionLookupTable.cxx:620 AliTPCCorrectionLookupTable.cxx:621 AliTPCCorrectionLookupTable.cxx:622 AliTPCCorrectionLookupTable.cxx:623 AliTPCCorrectionLookupTable.cxx:624 AliTPCCorrectionLookupTable.cxx:625 AliTPCCorrectionLookupTable.cxx:626 AliTPCCorrectionLookupTable.cxx:627 AliTPCCorrectionLookupTable.cxx:628 AliTPCCorrectionLookupTable.cxx:629 AliTPCCorrectionLookupTable.cxx:630 AliTPCCorrectionLookupTable.cxx:631 AliTPCCorrectionLookupTable.cxx:632 AliTPCCorrectionLookupTable.cxx:633 AliTPCCorrectionLookupTable.cxx:634 AliTPCCorrectionLookupTable.cxx:635 AliTPCCorrectionLookupTable.cxx:636 AliTPCCorrectionLookupTable.cxx:637 AliTPCCorrectionLookupTable.cxx:638 AliTPCCorrectionLookupTable.cxx:639 AliTPCCorrectionLookupTable.cxx:640 AliTPCCorrectionLookupTable.cxx:641 AliTPCCorrectionLookupTable.cxx:642 AliTPCCorrectionLookupTable.cxx:643 AliTPCCorrectionLookupTable.cxx:644 AliTPCCorrectionLookupTable.cxx:645 AliTPCCorrectionLookupTable.cxx:646 AliTPCCorrectionLookupTable.cxx:647 AliTPCCorrectionLookupTable.cxx:648 AliTPCCorrectionLookupTable.cxx:649 AliTPCCorrectionLookupTable.cxx:650 AliTPCCorrectionLookupTable.cxx:651 AliTPCCorrectionLookupTable.cxx:652 AliTPCCorrectionLookupTable.cxx:653 AliTPCCorrectionLookupTable.cxx:654 AliTPCCorrectionLookupTable.cxx:655 AliTPCCorrectionLookupTable.cxx:656 AliTPCCorrectionLookupTable.cxx:657 AliTPCCorrectionLookupTable.cxx:658 AliTPCCorrectionLookupTable.cxx:659 AliTPCCorrectionLookupTable.cxx:660 AliTPCCorrectionLookupTable.cxx:661 AliTPCCorrectionLookupTable.cxx:662 AliTPCCorrectionLookupTable.cxx:663 AliTPCCorrectionLookupTable.cxx:664 AliTPCCorrectionLookupTable.cxx:665 AliTPCCorrectionLookupTable.cxx:666 AliTPCCorrectionLookupTable.cxx:667 AliTPCCorrectionLookupTable.cxx:668 AliTPCCorrectionLookupTable.cxx:669 AliTPCCorrectionLookupTable.cxx:670 AliTPCCorrectionLookupTable.cxx:671 AliTPCCorrectionLookupTable.cxx:672 AliTPCCorrectionLookupTable.cxx:673 AliTPCCorrectionLookupTable.cxx:674 AliTPCCorrectionLookupTable.cxx:675 AliTPCCorrectionLookupTable.cxx:676 AliTPCCorrectionLookupTable.cxx:677 AliTPCCorrectionLookupTable.cxx:678 AliTPCCorrectionLookupTable.cxx:679 AliTPCCorrectionLookupTable.cxx:680 AliTPCCorrectionLookupTable.cxx:681 AliTPCCorrectionLookupTable.cxx:682 AliTPCCorrectionLookupTable.cxx:683 AliTPCCorrectionLookupTable.cxx:684 AliTPCCorrectionLookupTable.cxx:685 AliTPCCorrectionLookupTable.cxx:686 AliTPCCorrectionLookupTable.cxx:687 AliTPCCorrectionLookupTable.cxx:688 AliTPCCorrectionLookupTable.cxx:689 AliTPCCorrectionLookupTable.cxx:690 AliTPCCorrectionLookupTable.cxx:691 AliTPCCorrectionLookupTable.cxx:692 AliTPCCorrectionLookupTable.cxx:693 AliTPCCorrectionLookupTable.cxx:694 AliTPCCorrectionLookupTable.cxx:695 AliTPCCorrectionLookupTable.cxx:696 AliTPCCorrectionLookupTable.cxx:697 AliTPCCorrectionLookupTable.cxx:698 AliTPCCorrectionLookupTable.cxx:699 AliTPCCorrectionLookupTable.cxx:700 AliTPCCorrectionLookupTable.cxx:701 AliTPCCorrectionLookupTable.cxx:702 AliTPCCorrectionLookupTable.cxx:703 AliTPCCorrectionLookupTable.cxx:704 AliTPCCorrectionLookupTable.cxx:705 AliTPCCorrectionLookupTable.cxx:706 AliTPCCorrectionLookupTable.cxx:707 AliTPCCorrectionLookupTable.cxx:708 AliTPCCorrectionLookupTable.cxx:709 AliTPCCorrectionLookupTable.cxx:710 AliTPCCorrectionLookupTable.cxx:711 AliTPCCorrectionLookupTable.cxx:712 AliTPCCorrectionLookupTable.cxx:713 AliTPCCorrectionLookupTable.cxx:714 AliTPCCorrectionLookupTable.cxx:715 AliTPCCorrectionLookupTable.cxx:716 AliTPCCorrectionLookupTable.cxx:717 AliTPCCorrectionLookupTable.cxx:718 AliTPCCorrectionLookupTable.cxx:719 AliTPCCorrectionLookupTable.cxx:720 AliTPCCorrectionLookupTable.cxx:721 AliTPCCorrectionLookupTable.cxx:722 AliTPCCorrectionLookupTable.cxx:723 AliTPCCorrectionLookupTable.cxx:724 AliTPCCorrectionLookupTable.cxx:725 AliTPCCorrectionLookupTable.cxx:726 AliTPCCorrectionLookupTable.cxx:727 AliTPCCorrectionLookupTable.cxx:728 AliTPCCorrectionLookupTable.cxx:729 AliTPCCorrectionLookupTable.cxx:730 AliTPCCorrectionLookupTable.cxx:731 AliTPCCorrectionLookupTable.cxx:732 AliTPCCorrectionLookupTable.cxx:733 AliTPCCorrectionLookupTable.cxx:734 AliTPCCorrectionLookupTable.cxx:735 AliTPCCorrectionLookupTable.cxx:736 AliTPCCorrectionLookupTable.cxx:737 AliTPCCorrectionLookupTable.cxx:738 AliTPCCorrectionLookupTable.cxx:739 AliTPCCorrectionLookupTable.cxx:740 AliTPCCorrectionLookupTable.cxx:741 AliTPCCorrectionLookupTable.cxx:742 AliTPCCorrectionLookupTable.cxx:743 AliTPCCorrectionLookupTable.cxx:744 AliTPCCorrectionLookupTable.cxx:745 AliTPCCorrectionLookupTable.cxx:746 AliTPCCorrectionLookupTable.cxx:747 AliTPCCorrectionLookupTable.cxx:748 AliTPCCorrectionLookupTable.cxx:749 AliTPCCorrectionLookupTable.cxx:750 AliTPCCorrectionLookupTable.cxx:751 AliTPCCorrectionLookupTable.cxx:752 AliTPCCorrectionLookupTable.cxx:753 AliTPCCorrectionLookupTable.cxx:754 AliTPCCorrectionLookupTable.cxx:755 AliTPCCorrectionLookupTable.cxx:756 AliTPCCorrectionLookupTable.cxx:757 AliTPCCorrectionLookupTable.cxx:758 AliTPCCorrectionLookupTable.cxx:759 AliTPCCorrectionLookupTable.cxx:760 AliTPCCorrectionLookupTable.cxx:761 AliTPCCorrectionLookupTable.cxx:762 AliTPCCorrectionLookupTable.cxx:763 AliTPCCorrectionLookupTable.cxx:764 AliTPCCorrectionLookupTable.cxx:765 AliTPCCorrectionLookupTable.cxx:766 AliTPCCorrectionLookupTable.cxx:767 AliTPCCorrectionLookupTable.cxx:768 AliTPCCorrectionLookupTable.cxx:769 AliTPCCorrectionLookupTable.cxx:770 AliTPCCorrectionLookupTable.cxx:771 AliTPCCorrectionLookupTable.cxx:772 AliTPCCorrectionLookupTable.cxx:773 AliTPCCorrectionLookupTable.cxx:774 AliTPCCorrectionLookupTable.cxx:775 AliTPCCorrectionLookupTable.cxx:776 AliTPCCorrectionLookupTable.cxx:777 AliTPCCorrectionLookupTable.cxx:778 AliTPCCorrectionLookupTable.cxx:779 AliTPCCorrectionLookupTable.cxx:780 AliTPCCorrectionLookupTable.cxx:781 AliTPCCorrectionLookupTable.cxx:782 AliTPCCorrectionLookupTable.cxx:783 AliTPCCorrectionLookupTable.cxx:784 AliTPCCorrectionLookupTable.cxx:785 AliTPCCorrectionLookupTable.cxx:786 AliTPCCorrectionLookupTable.cxx:787 AliTPCCorrectionLookupTable.cxx:788 AliTPCCorrectionLookupTable.cxx:789 AliTPCCorrectionLookupTable.cxx:790 AliTPCCorrectionLookupTable.cxx:791 AliTPCCorrectionLookupTable.cxx:792 AliTPCCorrectionLookupTable.cxx:793 AliTPCCorrectionLookupTable.cxx:794 AliTPCCorrectionLookupTable.cxx:795 AliTPCCorrectionLookupTable.cxx:796 AliTPCCorrectionLookupTable.cxx:797 AliTPCCorrectionLookupTable.cxx:798 AliTPCCorrectionLookupTable.cxx:799 AliTPCCorrectionLookupTable.cxx:800 AliTPCCorrectionLookupTable.cxx:801 AliTPCCorrectionLookupTable.cxx:802 AliTPCCorrectionLookupTable.cxx:803 AliTPCCorrectionLookupTable.cxx:804 AliTPCCorrectionLookupTable.cxx:805 AliTPCCorrectionLookupTable.cxx:806 AliTPCCorrectionLookupTable.cxx:807 AliTPCCorrectionLookupTable.cxx:808 AliTPCCorrectionLookupTable.cxx:809 AliTPCCorrectionLookupTable.cxx:810 AliTPCCorrectionLookupTable.cxx:811 AliTPCCorrectionLookupTable.cxx:812 AliTPCCorrectionLookupTable.cxx:813 AliTPCCorrectionLookupTable.cxx:814 AliTPCCorrectionLookupTable.cxx:815 AliTPCCorrectionLookupTable.cxx:816 AliTPCCorrectionLookupTable.cxx:817 AliTPCCorrectionLookupTable.cxx:818 AliTPCCorrectionLookupTable.cxx:819 AliTPCCorrectionLookupTable.cxx:820 AliTPCCorrectionLookupTable.cxx:821 AliTPCCorrectionLookupTable.cxx:822 AliTPCCorrectionLookupTable.cxx:823 AliTPCCorrectionLookupTable.cxx:824 AliTPCCorrectionLookupTable.cxx:825 AliTPCCorrectionLookupTable.cxx:826 AliTPCCorrectionLookupTable.cxx:827 AliTPCCorrectionLookupTable.cxx:828 AliTPCCorrectionLookupTable.cxx:829 AliTPCCorrectionLookupTable.cxx:830 AliTPCCorrectionLookupTable.cxx:831 AliTPCCorrectionLookupTable.cxx:832 AliTPCCorrectionLookupTable.cxx:833 AliTPCCorrectionLookupTable.cxx:834 AliTPCCorrectionLookupTable.cxx:835 AliTPCCorrectionLookupTable.cxx:836 AliTPCCorrectionLookupTable.cxx:837 AliTPCCorrectionLookupTable.cxx:838 AliTPCCorrectionLookupTable.cxx:839 AliTPCCorrectionLookupTable.cxx:840 AliTPCCorrectionLookupTable.cxx:841 AliTPCCorrectionLookupTable.cxx:842 AliTPCCorrectionLookupTable.cxx:843