#include <TArrayI.h>
#include <TLinearFitter.h>
#include <TMath.h>
#include <TMatrixD.h>
#include <TMatrixDSym.h>
#include <TRandom.h>
#include <TTreeStream.h>
#include "AliLog.h"
#include "AliLog.h"
#include "AliRieman.h"
#include "AliTrackFitterRieman.h"
ClassImp(AliTrackFitterRieman)
AliTrackFitterRieman::AliTrackFitterRieman():
AliTrackFitter(),
fBCorrection(kFALSE),
fAlpha(0.),
fNUsed(0),
fConv(kFALSE),
fMaxDelta(3),
fRieman(new AliRieman(10000)),
fMinPointRadius(2.),
fMaxPointRadius(500.),
fDebugStream(new TTreeSRedirector("RiemanAlignDebug.root"))
{
fCorrY[0] = fCorrY[1] = fCorrY[2] = fCorrY[3] = 0;
fCorrZ[0] = fCorrZ[1] = fCorrZ[2] = fCorrZ[3] = 0;
}
AliTrackFitterRieman::AliTrackFitterRieman(AliTrackPointArray *array, Bool_t owner):
AliTrackFitter(array,owner),
fBCorrection(kFALSE),
fAlpha(0.),
fNUsed(0),
fConv(kFALSE),
fMaxDelta(3),
fRieman(new AliRieman(10000)),
fMinPointRadius(2.),
fMaxPointRadius(500.),
fDebugStream(0)
{
fCorrY[0] = fCorrY[1] = fCorrY[2] = fCorrY[3] = 0;
fCorrZ[0] = fCorrZ[1] = fCorrZ[2] = fCorrZ[3] = 0;
if (AliLog::GetDebugLevel("","AliTrackFitterRieman")) fDebugStream = new TTreeSRedirector("RiemanAlignDebug.root");
}
AliTrackFitterRieman::AliTrackFitterRieman(const AliTrackFitterRieman &rieman):
AliTrackFitter(rieman),
fBCorrection(rieman.fBCorrection),
fAlpha(rieman.fAlpha),
fNUsed(rieman.fNUsed),
fConv(rieman.fConv),
fMaxDelta(rieman.fMaxDelta),
fRieman(new AliRieman(*(rieman.fRieman))),
fMinPointRadius(rieman.fMinPointRadius),
fMaxPointRadius(rieman.fMaxPointRadius),
fDebugStream(0)
{
fCorrY[0] = fCorrY[1] = fCorrY[2] = fCorrY[3] = 0;
fCorrZ[0] = fCorrZ[1] = fCorrZ[2] = fCorrZ[3] = 0;
if (AliLog::GetDebugLevel("","AliTrackFitterRieman")) fDebugStream = new TTreeSRedirector("RiemanAlignDebug.root");
}
AliTrackFitterRieman &AliTrackFitterRieman::operator =(const AliTrackFitterRieman& rieman)
{
if(this==&rieman) return *this;
((AliTrackFitter *)this)->operator=(rieman);
fBCorrection = rieman.fBCorrection;
fAlpha = rieman.fAlpha;
fNUsed = rieman.fNUsed;
fConv = rieman.fConv;
fMaxDelta = rieman.fMaxDelta;
fRieman = new AliRieman(*(rieman.fRieman));
fMinPointRadius = rieman.fMinPointRadius;
fMaxPointRadius = rieman.fMaxPointRadius;
fDebugStream = 0;
if (AliLog::GetDebugLevel("","AliTrackFitterRieman")) fDebugStream = new TTreeSRedirector("RiemanAlignDebug.root");
return *this;
}
AliTrackFitterRieman::~AliTrackFitterRieman(){
delete fRieman;
delete fDebugStream;
}
void AliTrackFitterRieman::Reset()
{
AliTrackFitter::Reset();
fRieman->Reset();
fAlpha = 0.;
fNUsed = 0;
fConv =kFALSE;
}
Bool_t AliTrackFitterRieman::Fit(const TArrayI *volIds,const TArrayI *volIdsFit,
AliGeomManager::ELayerID layerRangeMin,
AliGeomManager::ELayerID layerRangeMax)
{
Int_t debugLevel = AliLog::GetDebugLevel("","AliTrackFitterRieman");
Float_t debugRatio = debugLevel? 1.0/debugLevel : 1.0;
if (!fPoints) {
AliError("Track points array not available! Exiting...");
return kFALSE;
}
Int_t npoints = fPoints->GetNPoints();
if ( npoints<fMinNPoints) return kFALSE;
if (volIdsFit != 0x0) {
Int_t countFit = 0;
Int_t countPoint = 0;
for (Int_t ipoint = 0; ipoint < npoints; ipoint++) {
if (FindVolId(volIds,fPoints->GetVolumeID()[ipoint]))
countPoint++;
if (volIdsFit != 0x0) {
if (FindVolId(volIdsFit,fPoints->GetVolumeID()[ipoint]))
countFit++;
}
}
if (countPoint==0) return kFALSE;
if ((countFit<fMinNPoints) && (volIdsFit != 0x0)) return kFALSE;
}
Reset();
if (fPoints && volIdsFit && AliLog::GetDebugLevel("","AliTrackFitterRieman")>1&& gRandom->Rndm()<debugRatio){
Int_t nVol = volIds->GetSize();
Int_t nVolFit = volIdsFit->GetSize();
Int_t volId = volIds->At(0);
(*fDebugStream)<<"PInput"<<
"NPoints="<<npoints<<
"VolId="<<volId<<
"NVol="<<nVol<<
"NvolFit="<<nVolFit<<
"fPoints.="<<fPoints<<
"\n";
}
Bool_t isAlphaCalc = kFALSE;
AliTrackPoint p,plocal;
Int_t npVolId = 0;
fNUsed = 0;
Int_t *pindex = new Int_t[npoints];
for (Int_t ipoint = 0; ipoint < npoints; ipoint++)
{
fPoints->GetPoint(p,ipoint);
UShort_t iVolId = p.GetVolumeID();
if (FindVolId(volIds,iVolId)) {
pindex[npVolId] = ipoint;
npVolId++;
}
if (volIdsFit != 0x0) {
if (!FindVolId(volIdsFit,iVolId)) continue;
}
else {
if (iVolId < AliGeomManager::LayerToVolUID(layerRangeMin,0) ||
iVolId > AliGeomManager::LayerToVolUID(layerRangeMax,
AliGeomManager::LayerSize(layerRangeMax))) continue;
}
if (!isAlphaCalc) {
fAlpha = p.GetAngle();
isAlphaCalc = kTRUE;
}
plocal = p.Rotate(fAlpha);
if (TMath::Abs(plocal.GetX())>fMaxPointRadius || TMath::Abs(plocal.GetX())<fMinPointRadius || plocal.GetCov()[3]<=0 ||plocal.GetCov()[5]<=0 ){
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<</n");
p.Dump();
plocal.Dump();
printf("Problematic point\n");
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<</n");
}else{
AddPoint(plocal.GetX(),plocal.GetY(),plocal.GetZ(),
TMath::Sqrt(plocal.GetCov()[3]),TMath::Sqrt(plocal.GetCov()[5]));
}
}
if (npVolId == 0 || fNUsed < fMinNPoints) {
delete [] pindex;
return kFALSE;
}
Update();
if (!fConv) {
delete [] pindex;
return kFALSE;
}
if ((fParams[0] == 0) ||
((-fParams[2]*fParams[0]+fParams[1]*fParams[1]+1) <= 0)) {
delete [] pindex;
return kFALSE;
}
if (fNUsed < fMinNPoints) {
delete [] pindex;
return kFALSE;
}
fPVolId = new AliTrackPointArray(npVolId);
fPTrack = new AliTrackPointArray(npVolId);
AliTrackPoint p2;
for (Int_t ipoint = 0; ipoint < npVolId; ipoint++)
{
Int_t index = pindex[ipoint];
fPoints->GetPoint(p,index);
if (GetPCA(p,p2) && (
TMath::Abs(p.GetX()-p2.GetX())<fMaxDelta &&
TMath::Abs(p.GetY()-p2.GetY())<fMaxDelta &&
TMath::Abs(p.GetZ()-p2.GetZ())<fMaxDelta
)) {
Float_t xyz[3],xyz2[3];
p.GetXYZ(xyz); p2.GetXYZ(xyz2);
fPVolId->AddPoint(ipoint,&p);
fPTrack->AddPoint(ipoint,&p2);
}else{
delete [] pindex;
delete fPVolId;
delete fPTrack;
fPVolId =0;
fPTrack =0;
return kFALSE;
}
}
if (AliLog::GetDebugLevel("","AliTrackFitterRieman")>0 && gRandom->Rndm()<debugRatio){
AliTrackPointArray *lPVolId = new AliTrackPointArray(npVolId);
AliTrackPointArray *lPTrack = new AliTrackPointArray(npVolId);
AliTrackPointArray *lPTrackE = new AliTrackPointArray(npVolId);
AliRieman * residual = fRieman->MakeResiduals();
for (Int_t ipoint = 0; ipoint < npVolId; ipoint++){
AliTrackPoint p0, p0local;
AliTrackPoint pFit, pFitlocal, pFitLocalE;
fPVolId->GetPoint(p0,ipoint);
Float_t lAngle = p0.GetAngle();
p0local= p0.MasterToLocal();
fPTrack->GetPoint(pFit,ipoint);
pFitlocal= pFit.Rotate(lAngle);
Float_t xyz[3], cov[6];
xyz[0] = pFitlocal.GetX();
xyz[1] = pFitlocal.GetY();
xyz[2] = pFitlocal.GetZ();
for (Int_t icov=0; icov<6; icov++) cov[icov]=0;
cov[3] = GetErrY2at(xyz[0]);
cov[5] = GetErrZ2at(xyz[0]);
pFitLocalE.SetXYZ(xyz,cov);
lPVolId->AddPoint(ipoint,&p0local);
lPTrack->AddPoint(ipoint,&pFitlocal);
lPTrackE->AddPoint(ipoint,&pFitLocalE);
}
Int_t nVol = volIds->GetSize();
Int_t nVolFit = volIdsFit->GetSize();
Int_t volId = volIds->At(0);
Int_t modId =0;
Int_t layer = AliGeomManager::VolUIDToLayer(volId,modId);
Int_t volIdFit = volIdsFit->At(0);
Int_t modIdFit =0;
Int_t layerFit = AliGeomManager::VolUIDToLayer(volIdFit,modIdFit);
(*fDebugStream)<<"Fit"<<
"VolId="<<volId<<
"Layer="<<layer<<
"Module="<<modId<<
"LayerFit="<<layerFit<<
"ModuleFit="<<modIdFit<<
"NVol="<<nVol<<
"NvolFit="<<nVolFit<<
"Points0.="<<fPVolId<<
"Points1.="<<fPTrack<<
"LPoints0.="<<lPVolId<<
"LPoints1.="<<lPTrack<<
"LPointsE.="<<lPTrackE<<
"Rieman.="<<this<<
"Res.="<<residual<<
"\n";
delete lPVolId;
delete lPTrack;
delete residual;
}
delete [] pindex;
return kTRUE;
}
void AliTrackFitterRieman::AddPoint(Float_t x, Float_t y, Float_t z, Float_t sy, Float_t sz)
{
fRieman->AddPoint(x,y,z,sy,sz);
fNUsed = fRieman->GetN();
}
Bool_t AliTrackFitterRieman::Update(){
fRieman->Update();
fConv = kFALSE;
if (fRieman->IsValid()){
for (Int_t ipar=0; ipar<6; ipar++){
fParams[ipar] = fRieman->GetParam()[ipar];
}
fChi2 = fRieman->GetChi2();
fNdf = fRieman->GetN()- 2;
fNUsed = fRieman->GetN();
fConv = kTRUE;
}
TLinearFitter fitY(3,"pol2");
TLinearFitter fitZ(3,"pol2");
for (Int_t ip=0; ip<fRieman->GetN();ip++){
Double_t x = fRieman->GetX()[ip];
fitY.AddPoint(&x,fRieman->GetY()[ip]-fRieman->GetYat(x),1);
fitZ.AddPoint(&x,fRieman->GetZ()[ip]-fRieman->GetZat(x),1);
}
fitY.Eval();
fitZ.Eval();
for (Int_t iparam=0; iparam<3; iparam++){
fCorrY[iparam]=fitY.GetParameter(iparam);
fCorrZ[iparam]=fitZ.GetParameter(iparam);
}
fCorrY[3]=fitY.GetChisquare()/Float_t(fRieman->GetN()-3);
fCorrZ[3]=fitZ.GetChisquare()/Float_t(fRieman->GetN()-3);
return kTRUE;
}
Bool_t AliTrackFitterRieman::GetPCA(const AliTrackPoint &p, AliTrackPoint &p2) const
{
if (!fConv) return kFALSE;
Double_t sin = TMath::Sin(fAlpha);
Double_t cos = TMath::Cos(fAlpha);
if (fParams[0] == 0) return kFALSE;
Double_t x0 = -fParams[1]/fParams[0]*cos - 1./fParams[0]*sin;
Double_t y0 = 1./fParams[0]*cos - fParams[1]/fParams[0]*sin;
if ((-fParams[2]*fParams[0]+fParams[1]*fParams[1]+1) <= 0) return kFALSE;
Double_t r = TMath::Sqrt(-fParams[2]*fParams[0]+fParams[1]*fParams[1]+1)/
fParams[0];
Double_t alphap = p.GetAngle();
Double_t sinp = TMath::Sin(alphap);
Double_t cosp = TMath::Cos(alphap);
Double_t x = p.GetX()*cosp + p.GetY()*sinp;
Double_t y = p.GetY()*cosp - p.GetX()*sinp;
Double_t x0p= x0*cosp + y0*sinp;
Double_t y0p= y0*cosp - x0*sinp;
if ((r*r - (x-x0p)*(x-x0p))<0) {
AliWarning(Form("Track extrapolation failed ! (Track radius = %f, track circle x = %f, space-point x = %f, reference plane angle = %f\n",r,x0p,x,alphap));
return kFALSE;
}
Double_t temp = TMath::Sqrt(r*r - (x-x0p)*(x-x0p));
Double_t y1 = y0p + temp;
Double_t y2 = y0p - temp;
Double_t yprime = y1;
if(TMath::Abs(y2-y) < TMath::Abs(y1-y)) yprime = y2;
Double_t xsecond = x*cosp - yprime*sinp;
Double_t ysecond = yprime*cosp + x*sinp;
Double_t x2 = xsecond*cos + ysecond*sin;
Double_t zsecond = GetZat(x2);
Double_t dydx = GetDYat(x2);
Double_t dzdx = GetDZat(x2);
Double_t cov[6] = {0,0,0,0,0,0};
Double_t sigmax = 100*100.;
cov[0] = sigmax; cov[1] = sigmax*dydx; cov[2] = sigmax*dzdx;
cov[3] = sigmax*dydx*dydx; cov[4] = sigmax*dydx*dzdx;
cov[5] = sigmax*dzdx*dzdx;
Double_t sigmay2 = GetErrY2at(x2);
Double_t sigmaz2 = GetErrZ2at(x2);
cov[3] += sigmay2;
cov[5] += sigmaz2;
Float_t newcov[6];
newcov[0] = cov[0]*cos*cos-
2*cov[1]*sin*cos+
cov[3]*sin*sin;
newcov[1] = cov[1]*(cos*cos-sin*sin)-
(cov[3]-cov[0])*sin*cos;
newcov[2] = cov[2]*cos-
cov[4]*sin;
newcov[3] = cov[0]*sin*sin+
2*cov[1]*sin*cos+
cov[3]*cos*cos;
newcov[4] = cov[4]*cos+
cov[2]*sin;
newcov[5] = cov[5];
p2.SetXYZ(xsecond,ysecond,zsecond,newcov);
Int_t debugLevel = AliLog::GetDebugLevel("","AliTrackFitterRieman");
Float_t debugRatio = 1./(1.+debugLevel);
if (AliLog::GetDebugLevel("","AliTrackFitterRieman")>0 && gRandom->Rndm()<debugRatio){
AliTrackPoint lp0(p);
AliTrackPoint lp2(p2);
AliTrackPoint localp0(p);
AliTrackPoint localp2(p2);
Float_t lAngle = lp0.GetAngle();
localp0 = localp0.Rotate(lAngle);
localp2 = localp2.Rotate(lAngle);
(*fDebugStream)<<"PCA"<<
"P0.="<<&lp0<<
"P2.="<<&lp2<<
"LP0.="<<&localp0<<
"LP2.="<<&localp2<<
"\n";
}
return kTRUE;
}
Double_t AliTrackFitterRieman::GetYat(Double_t x) const {
Double_t correction=0;
if (fBCorrection){
correction = fCorrY[0]+fCorrY[1]*x +fCorrY[2]*x*x;
}
return fRieman->GetYat(x)+correction;
}
Double_t AliTrackFitterRieman::GetZat(Double_t x) const {
Double_t correction=0;
if (fBCorrection){
correction = fCorrZ[0]+fCorrZ[1]*x +fCorrZ[2]*x*x;
}
return fRieman->GetZat(x)+correction;
}
Double_t AliTrackFitterRieman::GetErrY2at(Double_t x) const {
Double_t error = fRieman->GetErrY(x);
Double_t correction=0;
if (fBCorrection){
error *=fCorrY[3];
correction = fCorrY[0]+fCorrY[1]*x +fCorrY[2]*x*x;
correction *=correction;
}
return TMath::Sqrt(error+correction);
}
Double_t AliTrackFitterRieman::GetErrZ2at(Double_t x) const {
Double_t error = fRieman->GetErrZ(x)*fCorrZ[3];
Double_t correction=0;
if (fBCorrection){
error *= fCorrZ[3];
correction = fCorrZ[0]+fCorrZ[1]*x +fCorrZ[2]*x*x;
correction*= correction;
}
return TMath::Sqrt(error+correction);
}
void AliTrackFitterRieman::SetParam(Int_t i, Double_t par) {
if (i<0 || i>5) return;
fParams[i]=par;
fRieman->GetParam()[i]=par;
}
AliTrackFitterRieman.cxx:1 AliTrackFitterRieman.cxx:2 AliTrackFitterRieman.cxx:3 AliTrackFitterRieman.cxx:4 AliTrackFitterRieman.cxx:5 AliTrackFitterRieman.cxx:6 AliTrackFitterRieman.cxx:7 AliTrackFitterRieman.cxx:8 AliTrackFitterRieman.cxx:9 AliTrackFitterRieman.cxx:10 AliTrackFitterRieman.cxx:11 AliTrackFitterRieman.cxx:12 AliTrackFitterRieman.cxx:13 AliTrackFitterRieman.cxx:14 AliTrackFitterRieman.cxx:15 AliTrackFitterRieman.cxx:16 AliTrackFitterRieman.cxx:17 AliTrackFitterRieman.cxx:18 AliTrackFitterRieman.cxx:19 AliTrackFitterRieman.cxx:20 AliTrackFitterRieman.cxx:21 AliTrackFitterRieman.cxx:22 AliTrackFitterRieman.cxx:23 AliTrackFitterRieman.cxx:24 AliTrackFitterRieman.cxx:25 AliTrackFitterRieman.cxx:26 AliTrackFitterRieman.cxx:27 AliTrackFitterRieman.cxx:28 AliTrackFitterRieman.cxx:29 AliTrackFitterRieman.cxx:30 AliTrackFitterRieman.cxx:31 AliTrackFitterRieman.cxx:32 AliTrackFitterRieman.cxx:33 AliTrackFitterRieman.cxx:34 AliTrackFitterRieman.cxx:35 AliTrackFitterRieman.cxx:36 AliTrackFitterRieman.cxx:37 AliTrackFitterRieman.cxx:38 AliTrackFitterRieman.cxx:39 AliTrackFitterRieman.cxx:40 AliTrackFitterRieman.cxx:41 AliTrackFitterRieman.cxx:42 AliTrackFitterRieman.cxx:43 AliTrackFitterRieman.cxx:44 AliTrackFitterRieman.cxx:45 AliTrackFitterRieman.cxx:46 AliTrackFitterRieman.cxx:47 AliTrackFitterRieman.cxx:48 AliTrackFitterRieman.cxx:49 AliTrackFitterRieman.cxx:50 AliTrackFitterRieman.cxx:51 AliTrackFitterRieman.cxx:52 AliTrackFitterRieman.cxx:53 AliTrackFitterRieman.cxx:54 AliTrackFitterRieman.cxx:55 AliTrackFitterRieman.cxx:56 AliTrackFitterRieman.cxx:57 AliTrackFitterRieman.cxx:58 AliTrackFitterRieman.cxx:59 AliTrackFitterRieman.cxx:60 AliTrackFitterRieman.cxx:61 AliTrackFitterRieman.cxx:62 AliTrackFitterRieman.cxx:63 AliTrackFitterRieman.cxx:64 AliTrackFitterRieman.cxx:65 AliTrackFitterRieman.cxx:66 AliTrackFitterRieman.cxx:67 AliTrackFitterRieman.cxx:68 AliTrackFitterRieman.cxx:69 AliTrackFitterRieman.cxx:70 AliTrackFitterRieman.cxx:71 AliTrackFitterRieman.cxx:72 AliTrackFitterRieman.cxx:73 AliTrackFitterRieman.cxx:74 AliTrackFitterRieman.cxx:75 AliTrackFitterRieman.cxx:76 AliTrackFitterRieman.cxx:77 AliTrackFitterRieman.cxx:78 AliTrackFitterRieman.cxx:79 AliTrackFitterRieman.cxx:80 AliTrackFitterRieman.cxx:81 AliTrackFitterRieman.cxx:82 AliTrackFitterRieman.cxx:83 AliTrackFitterRieman.cxx:84 AliTrackFitterRieman.cxx:85 AliTrackFitterRieman.cxx:86 AliTrackFitterRieman.cxx:87 AliTrackFitterRieman.cxx:88 AliTrackFitterRieman.cxx:89 AliTrackFitterRieman.cxx:90 AliTrackFitterRieman.cxx:91 AliTrackFitterRieman.cxx:92 AliTrackFitterRieman.cxx:93 AliTrackFitterRieman.cxx:94 AliTrackFitterRieman.cxx:95 AliTrackFitterRieman.cxx:96 AliTrackFitterRieman.cxx:97 AliTrackFitterRieman.cxx:98 AliTrackFitterRieman.cxx:99 AliTrackFitterRieman.cxx:100 AliTrackFitterRieman.cxx:101 AliTrackFitterRieman.cxx:102 AliTrackFitterRieman.cxx:103 AliTrackFitterRieman.cxx:104 AliTrackFitterRieman.cxx:105 AliTrackFitterRieman.cxx:106 AliTrackFitterRieman.cxx:107 AliTrackFitterRieman.cxx:108 AliTrackFitterRieman.cxx:109 AliTrackFitterRieman.cxx:110 AliTrackFitterRieman.cxx:111 AliTrackFitterRieman.cxx:112 AliTrackFitterRieman.cxx:113 AliTrackFitterRieman.cxx:114 AliTrackFitterRieman.cxx:115 AliTrackFitterRieman.cxx:116 AliTrackFitterRieman.cxx:117 AliTrackFitterRieman.cxx:118 AliTrackFitterRieman.cxx:119 AliTrackFitterRieman.cxx:120 AliTrackFitterRieman.cxx:121 AliTrackFitterRieman.cxx:122 AliTrackFitterRieman.cxx:123 AliTrackFitterRieman.cxx:124 AliTrackFitterRieman.cxx:125 AliTrackFitterRieman.cxx:126 AliTrackFitterRieman.cxx:127 AliTrackFitterRieman.cxx:128 AliTrackFitterRieman.cxx:129 AliTrackFitterRieman.cxx:130 AliTrackFitterRieman.cxx:131 AliTrackFitterRieman.cxx:132 AliTrackFitterRieman.cxx:133 AliTrackFitterRieman.cxx:134 AliTrackFitterRieman.cxx:135 AliTrackFitterRieman.cxx:136 AliTrackFitterRieman.cxx:137 AliTrackFitterRieman.cxx:138 AliTrackFitterRieman.cxx:139 AliTrackFitterRieman.cxx:140 AliTrackFitterRieman.cxx:141 AliTrackFitterRieman.cxx:142 AliTrackFitterRieman.cxx:143 AliTrackFitterRieman.cxx:144 AliTrackFitterRieman.cxx:145 AliTrackFitterRieman.cxx:146 AliTrackFitterRieman.cxx:147 AliTrackFitterRieman.cxx:148 AliTrackFitterRieman.cxx:149 AliTrackFitterRieman.cxx:150 AliTrackFitterRieman.cxx:151 AliTrackFitterRieman.cxx:152 AliTrackFitterRieman.cxx:153 AliTrackFitterRieman.cxx:154 AliTrackFitterRieman.cxx:155 AliTrackFitterRieman.cxx:156 AliTrackFitterRieman.cxx:157 AliTrackFitterRieman.cxx:158 AliTrackFitterRieman.cxx:159 AliTrackFitterRieman.cxx:160 AliTrackFitterRieman.cxx:161 AliTrackFitterRieman.cxx:162 AliTrackFitterRieman.cxx:163 AliTrackFitterRieman.cxx:164 AliTrackFitterRieman.cxx:165 AliTrackFitterRieman.cxx:166 AliTrackFitterRieman.cxx:167 AliTrackFitterRieman.cxx:168 AliTrackFitterRieman.cxx:169 AliTrackFitterRieman.cxx:170 AliTrackFitterRieman.cxx:171 AliTrackFitterRieman.cxx:172 AliTrackFitterRieman.cxx:173 AliTrackFitterRieman.cxx:174 AliTrackFitterRieman.cxx:175 AliTrackFitterRieman.cxx:176 AliTrackFitterRieman.cxx:177 AliTrackFitterRieman.cxx:178 AliTrackFitterRieman.cxx:179 AliTrackFitterRieman.cxx:180 AliTrackFitterRieman.cxx:181 AliTrackFitterRieman.cxx:182 AliTrackFitterRieman.cxx:183 AliTrackFitterRieman.cxx:184 AliTrackFitterRieman.cxx:185 AliTrackFitterRieman.cxx:186 AliTrackFitterRieman.cxx:187 AliTrackFitterRieman.cxx:188 AliTrackFitterRieman.cxx:189 AliTrackFitterRieman.cxx:190 AliTrackFitterRieman.cxx:191 AliTrackFitterRieman.cxx:192 AliTrackFitterRieman.cxx:193 AliTrackFitterRieman.cxx:194 AliTrackFitterRieman.cxx:195 AliTrackFitterRieman.cxx:196 AliTrackFitterRieman.cxx:197 AliTrackFitterRieman.cxx:198 AliTrackFitterRieman.cxx:199 AliTrackFitterRieman.cxx:200 AliTrackFitterRieman.cxx:201 AliTrackFitterRieman.cxx:202 AliTrackFitterRieman.cxx:203 AliTrackFitterRieman.cxx:204 AliTrackFitterRieman.cxx:205 AliTrackFitterRieman.cxx:206 AliTrackFitterRieman.cxx:207 AliTrackFitterRieman.cxx:208 AliTrackFitterRieman.cxx:209 AliTrackFitterRieman.cxx:210 AliTrackFitterRieman.cxx:211 AliTrackFitterRieman.cxx:212 AliTrackFitterRieman.cxx:213 AliTrackFitterRieman.cxx:214 AliTrackFitterRieman.cxx:215 AliTrackFitterRieman.cxx:216 AliTrackFitterRieman.cxx:217 AliTrackFitterRieman.cxx:218 AliTrackFitterRieman.cxx:219 AliTrackFitterRieman.cxx:220 AliTrackFitterRieman.cxx:221 AliTrackFitterRieman.cxx:222 AliTrackFitterRieman.cxx:223 AliTrackFitterRieman.cxx:224 AliTrackFitterRieman.cxx:225 AliTrackFitterRieman.cxx:226 AliTrackFitterRieman.cxx:227 AliTrackFitterRieman.cxx:228 AliTrackFitterRieman.cxx:229 AliTrackFitterRieman.cxx:230 AliTrackFitterRieman.cxx:231 AliTrackFitterRieman.cxx:232 AliTrackFitterRieman.cxx:233 AliTrackFitterRieman.cxx:234 AliTrackFitterRieman.cxx:235 AliTrackFitterRieman.cxx:236 AliTrackFitterRieman.cxx:237 AliTrackFitterRieman.cxx:238 AliTrackFitterRieman.cxx:239 AliTrackFitterRieman.cxx:240 AliTrackFitterRieman.cxx:241 AliTrackFitterRieman.cxx:242 AliTrackFitterRieman.cxx:243 AliTrackFitterRieman.cxx:244 AliTrackFitterRieman.cxx:245 AliTrackFitterRieman.cxx:246 AliTrackFitterRieman.cxx:247 AliTrackFitterRieman.cxx:248 AliTrackFitterRieman.cxx:249 AliTrackFitterRieman.cxx:250 AliTrackFitterRieman.cxx:251 AliTrackFitterRieman.cxx:252 AliTrackFitterRieman.cxx:253 AliTrackFitterRieman.cxx:254 AliTrackFitterRieman.cxx:255 AliTrackFitterRieman.cxx:256 AliTrackFitterRieman.cxx:257 AliTrackFitterRieman.cxx:258 AliTrackFitterRieman.cxx:259 AliTrackFitterRieman.cxx:260 AliTrackFitterRieman.cxx:261 AliTrackFitterRieman.cxx:262 AliTrackFitterRieman.cxx:263 AliTrackFitterRieman.cxx:264 AliTrackFitterRieman.cxx:265 AliTrackFitterRieman.cxx:266 AliTrackFitterRieman.cxx:267 AliTrackFitterRieman.cxx:268 AliTrackFitterRieman.cxx:269 AliTrackFitterRieman.cxx:270 AliTrackFitterRieman.cxx:271 AliTrackFitterRieman.cxx:272 AliTrackFitterRieman.cxx:273 AliTrackFitterRieman.cxx:274 AliTrackFitterRieman.cxx:275 AliTrackFitterRieman.cxx:276 AliTrackFitterRieman.cxx:277 AliTrackFitterRieman.cxx:278 AliTrackFitterRieman.cxx:279 AliTrackFitterRieman.cxx:280 AliTrackFitterRieman.cxx:281 AliTrackFitterRieman.cxx:282 AliTrackFitterRieman.cxx:283 AliTrackFitterRieman.cxx:284 AliTrackFitterRieman.cxx:285 AliTrackFitterRieman.cxx:286 AliTrackFitterRieman.cxx:287 AliTrackFitterRieman.cxx:288 AliTrackFitterRieman.cxx:289 AliTrackFitterRieman.cxx:290 AliTrackFitterRieman.cxx:291 AliTrackFitterRieman.cxx:292 AliTrackFitterRieman.cxx:293 AliTrackFitterRieman.cxx:294 AliTrackFitterRieman.cxx:295 AliTrackFitterRieman.cxx:296 AliTrackFitterRieman.cxx:297 AliTrackFitterRieman.cxx:298 AliTrackFitterRieman.cxx:299 AliTrackFitterRieman.cxx:300 AliTrackFitterRieman.cxx:301 AliTrackFitterRieman.cxx:302 AliTrackFitterRieman.cxx:303 AliTrackFitterRieman.cxx:304 AliTrackFitterRieman.cxx:305 AliTrackFitterRieman.cxx:306 AliTrackFitterRieman.cxx:307 AliTrackFitterRieman.cxx:308 AliTrackFitterRieman.cxx:309 AliTrackFitterRieman.cxx:310 AliTrackFitterRieman.cxx:311 AliTrackFitterRieman.cxx:312 AliTrackFitterRieman.cxx:313 AliTrackFitterRieman.cxx:314 AliTrackFitterRieman.cxx:315 AliTrackFitterRieman.cxx:316 AliTrackFitterRieman.cxx:317 AliTrackFitterRieman.cxx:318 AliTrackFitterRieman.cxx:319 AliTrackFitterRieman.cxx:320 AliTrackFitterRieman.cxx:321 AliTrackFitterRieman.cxx:322 AliTrackFitterRieman.cxx:323 AliTrackFitterRieman.cxx:324 AliTrackFitterRieman.cxx:325 AliTrackFitterRieman.cxx:326 AliTrackFitterRieman.cxx:327 AliTrackFitterRieman.cxx:328 AliTrackFitterRieman.cxx:329 AliTrackFitterRieman.cxx:330 AliTrackFitterRieman.cxx:331 AliTrackFitterRieman.cxx:332 AliTrackFitterRieman.cxx:333 AliTrackFitterRieman.cxx:334 AliTrackFitterRieman.cxx:335 AliTrackFitterRieman.cxx:336 AliTrackFitterRieman.cxx:337 AliTrackFitterRieman.cxx:338 AliTrackFitterRieman.cxx:339 AliTrackFitterRieman.cxx:340 AliTrackFitterRieman.cxx:341 AliTrackFitterRieman.cxx:342 AliTrackFitterRieman.cxx:343 AliTrackFitterRieman.cxx:344 AliTrackFitterRieman.cxx:345 AliTrackFitterRieman.cxx:346 AliTrackFitterRieman.cxx:347 AliTrackFitterRieman.cxx:348 AliTrackFitterRieman.cxx:349 AliTrackFitterRieman.cxx:350 AliTrackFitterRieman.cxx:351 AliTrackFitterRieman.cxx:352 AliTrackFitterRieman.cxx:353 AliTrackFitterRieman.cxx:354 AliTrackFitterRieman.cxx:355 AliTrackFitterRieman.cxx:356 AliTrackFitterRieman.cxx:357 AliTrackFitterRieman.cxx:358 AliTrackFitterRieman.cxx:359 AliTrackFitterRieman.cxx:360 AliTrackFitterRieman.cxx:361 AliTrackFitterRieman.cxx:362 AliTrackFitterRieman.cxx:363 AliTrackFitterRieman.cxx:364 AliTrackFitterRieman.cxx:365 AliTrackFitterRieman.cxx:366 AliTrackFitterRieman.cxx:367 AliTrackFitterRieman.cxx:368 AliTrackFitterRieman.cxx:369 AliTrackFitterRieman.cxx:370 AliTrackFitterRieman.cxx:371 AliTrackFitterRieman.cxx:372 AliTrackFitterRieman.cxx:373 AliTrackFitterRieman.cxx:374 AliTrackFitterRieman.cxx:375 AliTrackFitterRieman.cxx:376 AliTrackFitterRieman.cxx:377 AliTrackFitterRieman.cxx:378 AliTrackFitterRieman.cxx:379 AliTrackFitterRieman.cxx:380 AliTrackFitterRieman.cxx:381 AliTrackFitterRieman.cxx:382 AliTrackFitterRieman.cxx:383 AliTrackFitterRieman.cxx:384 AliTrackFitterRieman.cxx:385 AliTrackFitterRieman.cxx:386 AliTrackFitterRieman.cxx:387 AliTrackFitterRieman.cxx:388 AliTrackFitterRieman.cxx:389 AliTrackFitterRieman.cxx:390 AliTrackFitterRieman.cxx:391 AliTrackFitterRieman.cxx:392 AliTrackFitterRieman.cxx:393 AliTrackFitterRieman.cxx:394 AliTrackFitterRieman.cxx:395 AliTrackFitterRieman.cxx:396 AliTrackFitterRieman.cxx:397 AliTrackFitterRieman.cxx:398 AliTrackFitterRieman.cxx:399 AliTrackFitterRieman.cxx:400 AliTrackFitterRieman.cxx:401 AliTrackFitterRieman.cxx:402 AliTrackFitterRieman.cxx:403 AliTrackFitterRieman.cxx:404 AliTrackFitterRieman.cxx:405 AliTrackFitterRieman.cxx:406 AliTrackFitterRieman.cxx:407 AliTrackFitterRieman.cxx:408 AliTrackFitterRieman.cxx:409 AliTrackFitterRieman.cxx:410 AliTrackFitterRieman.cxx:411 AliTrackFitterRieman.cxx:412 AliTrackFitterRieman.cxx:413 AliTrackFitterRieman.cxx:414 AliTrackFitterRieman.cxx:415 AliTrackFitterRieman.cxx:416 AliTrackFitterRieman.cxx:417 AliTrackFitterRieman.cxx:418 AliTrackFitterRieman.cxx:419 AliTrackFitterRieman.cxx:420 AliTrackFitterRieman.cxx:421 AliTrackFitterRieman.cxx:422 AliTrackFitterRieman.cxx:423 AliTrackFitterRieman.cxx:424 AliTrackFitterRieman.cxx:425 AliTrackFitterRieman.cxx:426 AliTrackFitterRieman.cxx:427 AliTrackFitterRieman.cxx:428 AliTrackFitterRieman.cxx:429 AliTrackFitterRieman.cxx:430 AliTrackFitterRieman.cxx:431 AliTrackFitterRieman.cxx:432 AliTrackFitterRieman.cxx:433 AliTrackFitterRieman.cxx:434 AliTrackFitterRieman.cxx:435 AliTrackFitterRieman.cxx:436 AliTrackFitterRieman.cxx:437 AliTrackFitterRieman.cxx:438 AliTrackFitterRieman.cxx:439 AliTrackFitterRieman.cxx:440 AliTrackFitterRieman.cxx:441 AliTrackFitterRieman.cxx:442 AliTrackFitterRieman.cxx:443 AliTrackFitterRieman.cxx:444 AliTrackFitterRieman.cxx:445 AliTrackFitterRieman.cxx:446 AliTrackFitterRieman.cxx:447 AliTrackFitterRieman.cxx:448 AliTrackFitterRieman.cxx:449 AliTrackFitterRieman.cxx:450 AliTrackFitterRieman.cxx:451 AliTrackFitterRieman.cxx:452 AliTrackFitterRieman.cxx:453 AliTrackFitterRieman.cxx:454 AliTrackFitterRieman.cxx:455 AliTrackFitterRieman.cxx:456 AliTrackFitterRieman.cxx:457 AliTrackFitterRieman.cxx:458 AliTrackFitterRieman.cxx:459 AliTrackFitterRieman.cxx:460 AliTrackFitterRieman.cxx:461 AliTrackFitterRieman.cxx:462 AliTrackFitterRieman.cxx:463 AliTrackFitterRieman.cxx:464 AliTrackFitterRieman.cxx:465 AliTrackFitterRieman.cxx:466 AliTrackFitterRieman.cxx:467 AliTrackFitterRieman.cxx:468 AliTrackFitterRieman.cxx:469 AliTrackFitterRieman.cxx:470 AliTrackFitterRieman.cxx:471 AliTrackFitterRieman.cxx:472 AliTrackFitterRieman.cxx:473 AliTrackFitterRieman.cxx:474 AliTrackFitterRieman.cxx:475 AliTrackFitterRieman.cxx:476 AliTrackFitterRieman.cxx:477 AliTrackFitterRieman.cxx:478 AliTrackFitterRieman.cxx:479 AliTrackFitterRieman.cxx:480 AliTrackFitterRieman.cxx:481 AliTrackFitterRieman.cxx:482 AliTrackFitterRieman.cxx:483 AliTrackFitterRieman.cxx:484 AliTrackFitterRieman.cxx:485 AliTrackFitterRieman.cxx:486 AliTrackFitterRieman.cxx:487 AliTrackFitterRieman.cxx:488 AliTrackFitterRieman.cxx:489 AliTrackFitterRieman.cxx:490 AliTrackFitterRieman.cxx:491 AliTrackFitterRieman.cxx:492 AliTrackFitterRieman.cxx:493 AliTrackFitterRieman.cxx:494 AliTrackFitterRieman.cxx:495 AliTrackFitterRieman.cxx:496 AliTrackFitterRieman.cxx:497 AliTrackFitterRieman.cxx:498 AliTrackFitterRieman.cxx:499 AliTrackFitterRieman.cxx:500 AliTrackFitterRieman.cxx:501 AliTrackFitterRieman.cxx:502 AliTrackFitterRieman.cxx:503 AliTrackFitterRieman.cxx:504 AliTrackFitterRieman.cxx:505 AliTrackFitterRieman.cxx:506 AliTrackFitterRieman.cxx:507 AliTrackFitterRieman.cxx:508 AliTrackFitterRieman.cxx:509 AliTrackFitterRieman.cxx:510 AliTrackFitterRieman.cxx:511 AliTrackFitterRieman.cxx:512 AliTrackFitterRieman.cxx:513 AliTrackFitterRieman.cxx:514 AliTrackFitterRieman.cxx:515 AliTrackFitterRieman.cxx:516 AliTrackFitterRieman.cxx:517 AliTrackFitterRieman.cxx:518 AliTrackFitterRieman.cxx:519 AliTrackFitterRieman.cxx:520 AliTrackFitterRieman.cxx:521 AliTrackFitterRieman.cxx:522 AliTrackFitterRieman.cxx:523 AliTrackFitterRieman.cxx:524 AliTrackFitterRieman.cxx:525 AliTrackFitterRieman.cxx:526 AliTrackFitterRieman.cxx:527 AliTrackFitterRieman.cxx:528 AliTrackFitterRieman.cxx:529 AliTrackFitterRieman.cxx:530 AliTrackFitterRieman.cxx:531 AliTrackFitterRieman.cxx:532 AliTrackFitterRieman.cxx:533 AliTrackFitterRieman.cxx:534 AliTrackFitterRieman.cxx:535 AliTrackFitterRieman.cxx:536 AliTrackFitterRieman.cxx:537 AliTrackFitterRieman.cxx:538 AliTrackFitterRieman.cxx:539 AliTrackFitterRieman.cxx:540 AliTrackFitterRieman.cxx:541 AliTrackFitterRieman.cxx:542 AliTrackFitterRieman.cxx:543 AliTrackFitterRieman.cxx:544 AliTrackFitterRieman.cxx:545 AliTrackFitterRieman.cxx:546 AliTrackFitterRieman.cxx:547 AliTrackFitterRieman.cxx:548 AliTrackFitterRieman.cxx:549 AliTrackFitterRieman.cxx:550 AliTrackFitterRieman.cxx:551 AliTrackFitterRieman.cxx:552 AliTrackFitterRieman.cxx:553 AliTrackFitterRieman.cxx:554 AliTrackFitterRieman.cxx:555 AliTrackFitterRieman.cxx:556 AliTrackFitterRieman.cxx:557 AliTrackFitterRieman.cxx:558 AliTrackFitterRieman.cxx:559 AliTrackFitterRieman.cxx:560 AliTrackFitterRieman.cxx:561 AliTrackFitterRieman.cxx:562 AliTrackFitterRieman.cxx:563 AliTrackFitterRieman.cxx:564 AliTrackFitterRieman.cxx:565 AliTrackFitterRieman.cxx:566 AliTrackFitterRieman.cxx:567 AliTrackFitterRieman.cxx:568 AliTrackFitterRieman.cxx:569 AliTrackFitterRieman.cxx:570 AliTrackFitterRieman.cxx:571 AliTrackFitterRieman.cxx:572 AliTrackFitterRieman.cxx:573 AliTrackFitterRieman.cxx:574 AliTrackFitterRieman.cxx:575 AliTrackFitterRieman.cxx:576 AliTrackFitterRieman.cxx:577 AliTrackFitterRieman.cxx:578 AliTrackFitterRieman.cxx:579 AliTrackFitterRieman.cxx:580 AliTrackFitterRieman.cxx:581 AliTrackFitterRieman.cxx:582