ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

#include <TMath.h>
#include <TMatrixDSym.h>
#include <TMatrixD.h>

#include "AliTrackFitterStraight.h"

ClassImp(AliTrackFitterStraight)

AliTrackFitterStraight::AliTrackFitterStraight():
  AliTrackFitter(),
  fAlpha(0.),
  fSumYY(0),
  fSumZZ(0),
  fNUsed(0),
  fConv(kFALSE)
{
  //
  // default constructor
  //
  for (Int_t i=0;i<5;i++) fSumXY[i] = 0;
  for (Int_t i=0;i<5;i++) fSumXZ[i] = 0;
}


AliTrackFitterStraight::AliTrackFitterStraight(AliTrackPointArray *array, Bool_t owner):
  AliTrackFitter(array,owner),
  fAlpha(0.),
  fSumYY(0),
  fSumZZ(0),
  fNUsed(0),
  fConv(kFALSE)
{
  //
  // Constructor
  //
  for (Int_t i=0;i<5;i++) fSumXY[i] = 0;
  for (Int_t i=0;i<5;i++) fSumXZ[i] = 0;
}

AliTrackFitterStraight::AliTrackFitterStraight(const AliTrackFitterStraight &fitter):
  AliTrackFitter(fitter),
  fAlpha(fitter.fAlpha),
  fSumYY(fitter.fSumYY),
  fSumZZ(fitter.fSumZZ),
  fNUsed(fitter.fNUsed),
  fConv(fitter.fConv)
{
  //
  // copy constructor
  //
  for (Int_t i=0;i<5;i++) fSumXY[i]  = fitter.fSumXY[i];
  for (Int_t i=0;i<5;i++) fSumXZ[i]  = fitter.fSumXZ[i];
}

//_____________________________________________________________________________
AliTrackFitterStraight &AliTrackFitterStraight::operator =(const AliTrackFitterStraight& fitter)
{
  // assignment operator
  //
  if(this==&fitter) return *this;
  ((AliTrackFitter *)this)->operator=(fitter);

  fAlpha = fitter.fAlpha;
  for (Int_t i=0;i<5;i++) fSumXY[i]  = fitter.fSumXY[i];
  fSumYY = fitter.fSumYY;
  for (Int_t i=0;i<5;i++) fSumXZ[i]  = fitter.fSumXZ[i];
  fSumZZ = fitter.fSumZZ;
  fNUsed = fitter.fNUsed;
  fConv = fitter.fConv;

  return *this;
}

AliTrackFitterStraight::~AliTrackFitterStraight()
{
  // destructor
  //
}

void AliTrackFitterStraight::Reset()
{
  // Reset the track parameters and
  // sums
  AliTrackFitter::Reset();
  fAlpha = 0.;
  for (Int_t i=0;i<5;i++) fSumXY[i] = 0;
  fSumYY = 0;
  for (Int_t i=0;i<5;i++) fSumXZ[i] = 0;
  fSumZZ = 0;
  fNUsed = 0;
  fConv =kFALSE;
}

Bool_t AliTrackFitterStraight::Fit(const TArrayI *volIds,const TArrayI *volIdsFit,
				 AliGeomManager::ELayerID layerRangeMin,
				 AliGeomManager::ELayerID layerRangeMax)
{
  // Fit the track points. The method takes as an input
  // the set of id's (volids) of the volumes in which
  // one wants to calculate the residuals.
  // The following parameters are used to define the
  // range of volumes to be used in the fitting
  // As a result two AliTrackPointArray's obects are filled.
  // The first one contains the space points with
  // volume id's from volids list. The second array of points represents
  // the track extrapolations corresponding to the space points
  // in the first array. The two arrays can be used to find
  // the residuals in the volids and consequently construct a
  // chi2 function to be minimized during the alignment
  // procedures. For the moment the track extrapolation is taken
  // at the space-point reference plane. The reference plane is
  // found using the covariance matrix of the point
  // (assuming sigma(x)=0 at the reference coordinate system.

  Reset();

  Int_t npoints = fPoints->GetNPoints();
  if (npoints < 2) return kFALSE;

  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);
      AddPoint(plocal.GetX(),plocal.GetY(),plocal.GetZ(),
	       TMath::Sqrt(plocal.GetCov()[3]),TMath::Sqrt(plocal.GetCov()[5]));
      fNUsed++;
    }

  if (fNUsed < 2) {
    delete [] pindex;
    return kFALSE;
  }

  Update();

  if (!fConv) {
    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)) {
	Float_t xyz[3],xyz2[3];
	p.GetXYZ(xyz); p2.GetXYZ(xyz2);
	//	printf("residuals %f %d %d %f %f %f %f %f %f\n",fChi2,fNUsed,fConv,xyz[0],xyz[1],xyz[2],xyz2[0]-xyz[0],xyz2[1]-xyz[1],xyz2[2]-xyz[2]);
	fPVolId->AddPoint(ipoint,&p);
	fPTrack->AddPoint(ipoint,&p2);
      }
    }  

  delete [] pindex;

  return kTRUE;
}

void AliTrackFitterStraight::AddPoint(Float_t x, Float_t y, Float_t z, Float_t sy, Float_t sz)
{
  // Straight track fitter
  // The method add a point to the sums
  // used to extract track parameters

  //
  // XY part
  //
  Double_t weight = 1./(sy*sy);
  fSumXY[0] +=weight;
  fSumXY[1] +=x*weight;      fSumXY[2] +=x*x*weight;
  fSumXY[3] +=y*weight;      fSumXY[4] +=x*y*weight;
  fSumYY += y*y*weight;
  //
  // XZ part
  //
  weight = 1./(sz*sz);
  fSumXZ[0] +=weight;
  fSumXZ[1] +=x*weight;      fSumXZ[2] +=x*x*weight;
  fSumXZ[3] +=z*weight;      fSumXZ[4] +=x*z*weight;
  fSumZZ += z*z*weight;
}

Bool_t AliTrackFitterStraight::Update(){
  //
  //  Track fitter update
  //
  //
  for (Int_t i=0;i<6;i++)fParams[i]=0;
  fChi2 = 0;
  fNdf = 0;
  Int_t conv=0;
  //
  // XY part
  //
  TMatrixDSym     smatrix(2);
  TMatrixD        sums(1,2);
  smatrix(0,0) = fSumXY[0]; smatrix(1,1)=fSumXY[2];
  smatrix(0,1) = fSumXY[1]; smatrix(1,0)=fSumXY[1];
  sums(0,0)    = fSumXY[3]; sums(0,1)   =fSumXY[4];
  smatrix.Invert();
  if (smatrix.IsValid()){
    for (Int_t i=0;i<2;i++)
      for (Int_t j=0;j<=i;j++){
	(*fCov)(i,j)=smatrix(i,j);
      }
    TMatrixD  res = sums*smatrix;
    fParams[0] = res(0,0);
    fParams[1] = res(0,1);
    TMatrixD  tmp = res*sums.T();
    fChi2 += fSumYY - tmp(0,0);
    fNdf  += fNUsed - 2;
    conv++;
  }
  //
  // XZ part
  //
  TMatrixDSym     smatrixz(2);
  TMatrixD        sumsxz(1,2);
  smatrixz(0,0) = fSumXZ[0]; smatrixz(1,1) = fSumXZ[2];
  smatrixz(0,1) = fSumXZ[1]; smatrixz(1,0) = fSumXZ[1];
  sumsxz(0,0)   = fSumXZ[3]; sumsxz(0,1)   = fSumXZ[4];
  smatrixz.Invert();
  if (smatrixz.IsValid()){
    TMatrixD res = sumsxz*smatrixz;
    fParams[2] = res(0,0);
    fParams[3] = res(0,1);
    fParams[4] = fParams[5] = 0;
    for (Int_t i=0;i<2;i++)
      for (Int_t j=0;j<=i;j++){
	(*fCov)(i+2,j+2)=smatrixz(i,j);
      }
    TMatrixD  tmp = res*sumsxz.T();
    fChi2 += fSumZZ - tmp(0,0);
    fNdf  += fNUsed - 2;
    conv++;
  }

  if (conv>1)
    fConv =kTRUE;
  else
    fConv=kFALSE;

  return kTRUE;
}

Double_t AliTrackFitterStraight::GetYat(Double_t x) const {
  if (!fConv) return 0.;
  return (fParams[0]+x*fParams[1]);
}

Double_t AliTrackFitterStraight::GetDYat(Double_t x) const {
  if (!fConv) return 0.;
  return fParams[1]+0.*x;
}



Double_t AliTrackFitterStraight::GetZat(Double_t x) const {
  if (!fConv) return 0.;
  return (fParams[2]+x*fParams[3]);
}

Double_t AliTrackFitterStraight::GetDZat(Double_t x) const {
  if (!fConv) return 0.;
  return fParams[3]+0.*x;
}

Bool_t AliTrackFitterStraight::GetXYZat(Double_t r, Float_t *xyz) const {
  if (!fConv) return kFALSE;
  Double_t y = (fParams[0]+r*fParams[1]);
  Double_t z = (fParams[2]+r*fParams[3]);

  Double_t sin = TMath::Sin(fAlpha);
  Double_t cos = TMath::Cos(fAlpha);
  xyz[0] = r*cos - y*sin;
  xyz[1] = y*cos + r*sin;
  xyz[2] = z;

  return kTRUE;
}

Bool_t AliTrackFitterStraight::GetPCA(const AliTrackPoint &p, AliTrackPoint &p2) const
{
  // Get the closest to a given spacepoint track trajectory point
  // Look for details in the description of the Fit() method

  if (!fConv) return kFALSE;

  // First X and Y coordinates
  Double_t sin = TMath::Sin(fAlpha);
  Double_t cos = TMath::Cos(fAlpha);
  // Track parameters in the global coordinate system
  Double_t x0 = -fParams[0]*sin;
  Double_t y0 =  fParams[0]*cos;
  if ((cos - fParams[1]*sin) == 0) return kFALSE;
  Double_t dydx = (fParams[1]*cos + sin)/(cos - fParams[1]*sin);

  // Define space-point refence plane
  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 ((cos + dydx*sin) == 0) return kFALSE;
  Double_t dydxp = (dydx*cos - sin)/(cos + dydx*sin);
  Double_t yprime = y0p + dydxp*(x-x0p);

  // Back to the global coordinate system
  Double_t xsecond = x*cosp - yprime*sinp;
  Double_t ysecond = yprime*cosp + x*sinp;

  // Now Z coordinate and track angles
  Double_t x2 = xsecond*cos + ysecond*sin;
  Double_t zsecond = GetZat(x2);
  Double_t dydx2 = fParams[1];
  Double_t dzdx = fParams[3];

  // Fill the cov matrix of the track extrapolation point
  Double_t cov[6] = {0,0,0,0,0,0};
  Double_t sigmax = 100*100.;
  cov[0] = sigmax;             cov[1] = sigmax*dydx2;      cov[2] = sigmax*dzdx;
  cov[3] = sigmax*dydx2*dydx2; cov[4] = sigmax*dydx2*dzdx;
  cov[5] = sigmax*dzdx*dzdx;

  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);

  return kTRUE;
}
 AliTrackFitterStraight.cxx:1
 AliTrackFitterStraight.cxx:2
 AliTrackFitterStraight.cxx:3
 AliTrackFitterStraight.cxx:4
 AliTrackFitterStraight.cxx:5
 AliTrackFitterStraight.cxx:6
 AliTrackFitterStraight.cxx:7
 AliTrackFitterStraight.cxx:8
 AliTrackFitterStraight.cxx:9
 AliTrackFitterStraight.cxx:10
 AliTrackFitterStraight.cxx:11
 AliTrackFitterStraight.cxx:12
 AliTrackFitterStraight.cxx:13
 AliTrackFitterStraight.cxx:14
 AliTrackFitterStraight.cxx:15
 AliTrackFitterStraight.cxx:16
 AliTrackFitterStraight.cxx:17
 AliTrackFitterStraight.cxx:18
 AliTrackFitterStraight.cxx:19
 AliTrackFitterStraight.cxx:20
 AliTrackFitterStraight.cxx:21
 AliTrackFitterStraight.cxx:22
 AliTrackFitterStraight.cxx:23
 AliTrackFitterStraight.cxx:24
 AliTrackFitterStraight.cxx:25
 AliTrackFitterStraight.cxx:26
 AliTrackFitterStraight.cxx:27
 AliTrackFitterStraight.cxx:28
 AliTrackFitterStraight.cxx:29
 AliTrackFitterStraight.cxx:30
 AliTrackFitterStraight.cxx:31
 AliTrackFitterStraight.cxx:32
 AliTrackFitterStraight.cxx:33
 AliTrackFitterStraight.cxx:34
 AliTrackFitterStraight.cxx:35
 AliTrackFitterStraight.cxx:36
 AliTrackFitterStraight.cxx:37
 AliTrackFitterStraight.cxx:38
 AliTrackFitterStraight.cxx:39
 AliTrackFitterStraight.cxx:40
 AliTrackFitterStraight.cxx:41
 AliTrackFitterStraight.cxx:42
 AliTrackFitterStraight.cxx:43
 AliTrackFitterStraight.cxx:44
 AliTrackFitterStraight.cxx:45
 AliTrackFitterStraight.cxx:46
 AliTrackFitterStraight.cxx:47
 AliTrackFitterStraight.cxx:48
 AliTrackFitterStraight.cxx:49
 AliTrackFitterStraight.cxx:50
 AliTrackFitterStraight.cxx:51
 AliTrackFitterStraight.cxx:52
 AliTrackFitterStraight.cxx:53
 AliTrackFitterStraight.cxx:54
 AliTrackFitterStraight.cxx:55
 AliTrackFitterStraight.cxx:56
 AliTrackFitterStraight.cxx:57
 AliTrackFitterStraight.cxx:58
 AliTrackFitterStraight.cxx:59
 AliTrackFitterStraight.cxx:60
 AliTrackFitterStraight.cxx:61
 AliTrackFitterStraight.cxx:62
 AliTrackFitterStraight.cxx:63
 AliTrackFitterStraight.cxx:64
 AliTrackFitterStraight.cxx:65
 AliTrackFitterStraight.cxx:66
 AliTrackFitterStraight.cxx:67
 AliTrackFitterStraight.cxx:68
 AliTrackFitterStraight.cxx:69
 AliTrackFitterStraight.cxx:70
 AliTrackFitterStraight.cxx:71
 AliTrackFitterStraight.cxx:72
 AliTrackFitterStraight.cxx:73
 AliTrackFitterStraight.cxx:74
 AliTrackFitterStraight.cxx:75
 AliTrackFitterStraight.cxx:76
 AliTrackFitterStraight.cxx:77
 AliTrackFitterStraight.cxx:78
 AliTrackFitterStraight.cxx:79
 AliTrackFitterStraight.cxx:80
 AliTrackFitterStraight.cxx:81
 AliTrackFitterStraight.cxx:82
 AliTrackFitterStraight.cxx:83
 AliTrackFitterStraight.cxx:84
 AliTrackFitterStraight.cxx:85
 AliTrackFitterStraight.cxx:86
 AliTrackFitterStraight.cxx:87
 AliTrackFitterStraight.cxx:88
 AliTrackFitterStraight.cxx:89
 AliTrackFitterStraight.cxx:90
 AliTrackFitterStraight.cxx:91
 AliTrackFitterStraight.cxx:92
 AliTrackFitterStraight.cxx:93
 AliTrackFitterStraight.cxx:94
 AliTrackFitterStraight.cxx:95
 AliTrackFitterStraight.cxx:96
 AliTrackFitterStraight.cxx:97
 AliTrackFitterStraight.cxx:98
 AliTrackFitterStraight.cxx:99
 AliTrackFitterStraight.cxx:100
 AliTrackFitterStraight.cxx:101
 AliTrackFitterStraight.cxx:102
 AliTrackFitterStraight.cxx:103
 AliTrackFitterStraight.cxx:104
 AliTrackFitterStraight.cxx:105
 AliTrackFitterStraight.cxx:106
 AliTrackFitterStraight.cxx:107
 AliTrackFitterStraight.cxx:108
 AliTrackFitterStraight.cxx:109
 AliTrackFitterStraight.cxx:110
 AliTrackFitterStraight.cxx:111
 AliTrackFitterStraight.cxx:112
 AliTrackFitterStraight.cxx:113
 AliTrackFitterStraight.cxx:114
 AliTrackFitterStraight.cxx:115
 AliTrackFitterStraight.cxx:116
 AliTrackFitterStraight.cxx:117
 AliTrackFitterStraight.cxx:118
 AliTrackFitterStraight.cxx:119
 AliTrackFitterStraight.cxx:120
 AliTrackFitterStraight.cxx:121
 AliTrackFitterStraight.cxx:122
 AliTrackFitterStraight.cxx:123
 AliTrackFitterStraight.cxx:124
 AliTrackFitterStraight.cxx:125
 AliTrackFitterStraight.cxx:126
 AliTrackFitterStraight.cxx:127
 AliTrackFitterStraight.cxx:128
 AliTrackFitterStraight.cxx:129
 AliTrackFitterStraight.cxx:130
 AliTrackFitterStraight.cxx:131
 AliTrackFitterStraight.cxx:132
 AliTrackFitterStraight.cxx:133
 AliTrackFitterStraight.cxx:134
 AliTrackFitterStraight.cxx:135
 AliTrackFitterStraight.cxx:136
 AliTrackFitterStraight.cxx:137
 AliTrackFitterStraight.cxx:138
 AliTrackFitterStraight.cxx:139
 AliTrackFitterStraight.cxx:140
 AliTrackFitterStraight.cxx:141
 AliTrackFitterStraight.cxx:142
 AliTrackFitterStraight.cxx:143
 AliTrackFitterStraight.cxx:144
 AliTrackFitterStraight.cxx:145
 AliTrackFitterStraight.cxx:146
 AliTrackFitterStraight.cxx:147
 AliTrackFitterStraight.cxx:148
 AliTrackFitterStraight.cxx:149
 AliTrackFitterStraight.cxx:150
 AliTrackFitterStraight.cxx:151
 AliTrackFitterStraight.cxx:152
 AliTrackFitterStraight.cxx:153
 AliTrackFitterStraight.cxx:154
 AliTrackFitterStraight.cxx:155
 AliTrackFitterStraight.cxx:156
 AliTrackFitterStraight.cxx:157
 AliTrackFitterStraight.cxx:158
 AliTrackFitterStraight.cxx:159
 AliTrackFitterStraight.cxx:160
 AliTrackFitterStraight.cxx:161
 AliTrackFitterStraight.cxx:162
 AliTrackFitterStraight.cxx:163
 AliTrackFitterStraight.cxx:164
 AliTrackFitterStraight.cxx:165
 AliTrackFitterStraight.cxx:166
 AliTrackFitterStraight.cxx:167
 AliTrackFitterStraight.cxx:168
 AliTrackFitterStraight.cxx:169
 AliTrackFitterStraight.cxx:170
 AliTrackFitterStraight.cxx:171
 AliTrackFitterStraight.cxx:172
 AliTrackFitterStraight.cxx:173
 AliTrackFitterStraight.cxx:174
 AliTrackFitterStraight.cxx:175
 AliTrackFitterStraight.cxx:176
 AliTrackFitterStraight.cxx:177
 AliTrackFitterStraight.cxx:178
 AliTrackFitterStraight.cxx:179
 AliTrackFitterStraight.cxx:180
 AliTrackFitterStraight.cxx:181
 AliTrackFitterStraight.cxx:182
 AliTrackFitterStraight.cxx:183
 AliTrackFitterStraight.cxx:184
 AliTrackFitterStraight.cxx:185
 AliTrackFitterStraight.cxx:186
 AliTrackFitterStraight.cxx:187
 AliTrackFitterStraight.cxx:188
 AliTrackFitterStraight.cxx:189
 AliTrackFitterStraight.cxx:190
 AliTrackFitterStraight.cxx:191
 AliTrackFitterStraight.cxx:192
 AliTrackFitterStraight.cxx:193
 AliTrackFitterStraight.cxx:194
 AliTrackFitterStraight.cxx:195
 AliTrackFitterStraight.cxx:196
 AliTrackFitterStraight.cxx:197
 AliTrackFitterStraight.cxx:198
 AliTrackFitterStraight.cxx:199
 AliTrackFitterStraight.cxx:200
 AliTrackFitterStraight.cxx:201
 AliTrackFitterStraight.cxx:202
 AliTrackFitterStraight.cxx:203
 AliTrackFitterStraight.cxx:204
 AliTrackFitterStraight.cxx:205
 AliTrackFitterStraight.cxx:206
 AliTrackFitterStraight.cxx:207
 AliTrackFitterStraight.cxx:208
 AliTrackFitterStraight.cxx:209
 AliTrackFitterStraight.cxx:210
 AliTrackFitterStraight.cxx:211
 AliTrackFitterStraight.cxx:212
 AliTrackFitterStraight.cxx:213
 AliTrackFitterStraight.cxx:214
 AliTrackFitterStraight.cxx:215
 AliTrackFitterStraight.cxx:216
 AliTrackFitterStraight.cxx:217
 AliTrackFitterStraight.cxx:218
 AliTrackFitterStraight.cxx:219
 AliTrackFitterStraight.cxx:220
 AliTrackFitterStraight.cxx:221
 AliTrackFitterStraight.cxx:222
 AliTrackFitterStraight.cxx:223
 AliTrackFitterStraight.cxx:224
 AliTrackFitterStraight.cxx:225
 AliTrackFitterStraight.cxx:226
 AliTrackFitterStraight.cxx:227
 AliTrackFitterStraight.cxx:228
 AliTrackFitterStraight.cxx:229
 AliTrackFitterStraight.cxx:230
 AliTrackFitterStraight.cxx:231
 AliTrackFitterStraight.cxx:232
 AliTrackFitterStraight.cxx:233
 AliTrackFitterStraight.cxx:234
 AliTrackFitterStraight.cxx:235
 AliTrackFitterStraight.cxx:236
 AliTrackFitterStraight.cxx:237
 AliTrackFitterStraight.cxx:238
 AliTrackFitterStraight.cxx:239
 AliTrackFitterStraight.cxx:240
 AliTrackFitterStraight.cxx:241
 AliTrackFitterStraight.cxx:242
 AliTrackFitterStraight.cxx:243
 AliTrackFitterStraight.cxx:244
 AliTrackFitterStraight.cxx:245
 AliTrackFitterStraight.cxx:246
 AliTrackFitterStraight.cxx:247
 AliTrackFitterStraight.cxx:248
 AliTrackFitterStraight.cxx:249
 AliTrackFitterStraight.cxx:250
 AliTrackFitterStraight.cxx:251
 AliTrackFitterStraight.cxx:252
 AliTrackFitterStraight.cxx:253
 AliTrackFitterStraight.cxx:254
 AliTrackFitterStraight.cxx:255
 AliTrackFitterStraight.cxx:256
 AliTrackFitterStraight.cxx:257
 AliTrackFitterStraight.cxx:258
 AliTrackFitterStraight.cxx:259
 AliTrackFitterStraight.cxx:260
 AliTrackFitterStraight.cxx:261
 AliTrackFitterStraight.cxx:262
 AliTrackFitterStraight.cxx:263
 AliTrackFitterStraight.cxx:264
 AliTrackFitterStraight.cxx:265
 AliTrackFitterStraight.cxx:266
 AliTrackFitterStraight.cxx:267
 AliTrackFitterStraight.cxx:268
 AliTrackFitterStraight.cxx:269
 AliTrackFitterStraight.cxx:270
 AliTrackFitterStraight.cxx:271
 AliTrackFitterStraight.cxx:272
 AliTrackFitterStraight.cxx:273
 AliTrackFitterStraight.cxx:274
 AliTrackFitterStraight.cxx:275
 AliTrackFitterStraight.cxx:276
 AliTrackFitterStraight.cxx:277
 AliTrackFitterStraight.cxx:278
 AliTrackFitterStraight.cxx:279
 AliTrackFitterStraight.cxx:280
 AliTrackFitterStraight.cxx:281
 AliTrackFitterStraight.cxx:282
 AliTrackFitterStraight.cxx:283
 AliTrackFitterStraight.cxx:284
 AliTrackFitterStraight.cxx:285
 AliTrackFitterStraight.cxx:286
 AliTrackFitterStraight.cxx:287
 AliTrackFitterStraight.cxx:288
 AliTrackFitterStraight.cxx:289
 AliTrackFitterStraight.cxx:290
 AliTrackFitterStraight.cxx:291
 AliTrackFitterStraight.cxx:292
 AliTrackFitterStraight.cxx:293
 AliTrackFitterStraight.cxx:294
 AliTrackFitterStraight.cxx:295
 AliTrackFitterStraight.cxx:296
 AliTrackFitterStraight.cxx:297
 AliTrackFitterStraight.cxx:298
 AliTrackFitterStraight.cxx:299
 AliTrackFitterStraight.cxx:300
 AliTrackFitterStraight.cxx:301
 AliTrackFitterStraight.cxx:302
 AliTrackFitterStraight.cxx:303
 AliTrackFitterStraight.cxx:304
 AliTrackFitterStraight.cxx:305
 AliTrackFitterStraight.cxx:306
 AliTrackFitterStraight.cxx:307
 AliTrackFitterStraight.cxx:308
 AliTrackFitterStraight.cxx:309
 AliTrackFitterStraight.cxx:310
 AliTrackFitterStraight.cxx:311
 AliTrackFitterStraight.cxx:312
 AliTrackFitterStraight.cxx:313
 AliTrackFitterStraight.cxx:314
 AliTrackFitterStraight.cxx:315
 AliTrackFitterStraight.cxx:316
 AliTrackFitterStraight.cxx:317
 AliTrackFitterStraight.cxx:318
 AliTrackFitterStraight.cxx:319
 AliTrackFitterStraight.cxx:320
 AliTrackFitterStraight.cxx:321
 AliTrackFitterStraight.cxx:322
 AliTrackFitterStraight.cxx:323
 AliTrackFitterStraight.cxx:324
 AliTrackFitterStraight.cxx:325
 AliTrackFitterStraight.cxx:326
 AliTrackFitterStraight.cxx:327
 AliTrackFitterStraight.cxx:328
 AliTrackFitterStraight.cxx:329
 AliTrackFitterStraight.cxx:330
 AliTrackFitterStraight.cxx:331
 AliTrackFitterStraight.cxx:332
 AliTrackFitterStraight.cxx:333
 AliTrackFitterStraight.cxx:334
 AliTrackFitterStraight.cxx:335
 AliTrackFitterStraight.cxx:336
 AliTrackFitterStraight.cxx:337
 AliTrackFitterStraight.cxx:338
 AliTrackFitterStraight.cxx:339
 AliTrackFitterStraight.cxx:340
 AliTrackFitterStraight.cxx:341
 AliTrackFitterStraight.cxx:342
 AliTrackFitterStraight.cxx:343
 AliTrackFitterStraight.cxx:344
 AliTrackFitterStraight.cxx:345
 AliTrackFitterStraight.cxx:346
 AliTrackFitterStraight.cxx:347
 AliTrackFitterStraight.cxx:348
 AliTrackFitterStraight.cxx:349
 AliTrackFitterStraight.cxx:350
 AliTrackFitterStraight.cxx:351
 AliTrackFitterStraight.cxx:352
 AliTrackFitterStraight.cxx:353
 AliTrackFitterStraight.cxx:354
 AliTrackFitterStraight.cxx:355
 AliTrackFitterStraight.cxx:356
 AliTrackFitterStraight.cxx:357
 AliTrackFitterStraight.cxx:358
 AliTrackFitterStraight.cxx:359
 AliTrackFitterStraight.cxx:360
 AliTrackFitterStraight.cxx:361
 AliTrackFitterStraight.cxx:362
 AliTrackFitterStraight.cxx:363
 AliTrackFitterStraight.cxx:364
 AliTrackFitterStraight.cxx:365
 AliTrackFitterStraight.cxx:366
 AliTrackFitterStraight.cxx:367
 AliTrackFitterStraight.cxx:368
 AliTrackFitterStraight.cxx:369
 AliTrackFitterStraight.cxx:370
 AliTrackFitterStraight.cxx:371
 AliTrackFitterStraight.cxx:372
 AliTrackFitterStraight.cxx:373
 AliTrackFitterStraight.cxx:374
 AliTrackFitterStraight.cxx:375
 AliTrackFitterStraight.cxx:376
 AliTrackFitterStraight.cxx:377
 AliTrackFitterStraight.cxx:378
 AliTrackFitterStraight.cxx:379
 AliTrackFitterStraight.cxx:380
 AliTrackFitterStraight.cxx:381
 AliTrackFitterStraight.cxx:382
 AliTrackFitterStraight.cxx:383
 AliTrackFitterStraight.cxx:384
 AliTrackFitterStraight.cxx:385
 AliTrackFitterStraight.cxx:386
 AliTrackFitterStraight.cxx:387
 AliTrackFitterStraight.cxx:388
 AliTrackFitterStraight.cxx:389
 AliTrackFitterStraight.cxx:390
 AliTrackFitterStraight.cxx:391
 AliTrackFitterStraight.cxx:392
 AliTrackFitterStraight.cxx:393