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.                  *
 **************************************************************************/

///////////////////////////////////////////////////////////////////////////////
//
//                      Kalman-Filter-like fit 
//   to a straight-line crossing a set of arbitrarily oriented planes.
//   The resulting line is given by the equation:
//                  (x-x0)/vx = (y-y0)/1 = (z-z0)/vz
//   Parameters of the fit are:
//        x0,y0,z0 (a point on the line) and
//        vx,1,vz  (a vector collinear with the line)
//
//   LIMITATION:  The line must not be perpendicular to the Y axis. 
//
//          Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
//
//////////////////////////////////////////////////////////////////////////////

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

#include "AliLog.h"
#include "AliTrackFitterKalman.h"

ClassImp(AliTrackFitterKalman)

const Double_t AliTrackFitterKalman::fgkMaxChi2=33.;

AliTrackFitterKalman::
AliTrackFitterKalman(AliTrackPointArray *array, Bool_t owner):
  AliTrackFitter(array,owner),
  fMaxChi2(fgkMaxChi2)
{
  //
  // Constructor
  //
}

Bool_t AliTrackFitterKalman::Begin(Int_t first, Int_t last) {
  //
  // Make a seed out of the track points with the indices "first" and "last". 
  // This is the "default" seed.
  //
  fPoints->Sort();
  AliTrackPoint fp,lp;
  fPoints->GetPoint(fp,first); fPoints->GetPoint(lp,last);
  return MakeSeed(&fp,&lp);
}


Bool_t AliTrackFitterKalman::
MakeSeed(const AliTrackPoint *p0, const AliTrackPoint *p1) {
  //
  // Make a seed out of the two track points 
  //
  Double_t x0=p0->GetX(), y0=p0->GetY(), z0=p0->GetZ();
  Double_t dx=p1->GetX()-x0, dy=p1->GetY()-y0, dz=p1->GetZ()-z0;
  if (dy==0.) { 
     AliError("Seeds perpendicular to Y axis are not allowed !"); 
     return kFALSE; 
  }
  Double_t vx=dx/dy;
  Double_t vz=dz/dy;
  Double_t par[5]={x0,y0,z0,vx,vz};

  const Float_t *cv0=p0->GetCov();
  const Float_t *cv1=p1->GetCov();
  Double_t rdy2=(cv0[3]+cv1[3])/dy/dy;
  Double_t svx2=(cv0[0]+cv1[0])/dy/dy + vx*vx*rdy2;     
  Double_t svz2=(cv0[5]+cv1[5])/dy/dy + vz*vz*rdy2;     
  Double_t cov[15]={
     cv0[0],
     cv0[1],cv0[3],
     cv0[2],cv0[4],cv0[5],
     0.,0.,0.,svx2,
     0.,0.,0.,0.,svz2
  };

  SetSeed(par,cov);

  return kTRUE;
}

Bool_t AliTrackFitterKalman::AddPoint(const AliTrackPoint *p)
{
  //
  // Add a point to the fit
  //

  if (!Propagate(p))   return kFALSE;
  Double_t chi2=GetPredictedChi2(p);
  if (chi2>fMaxChi2)   return kFALSE;
  if (!Update(p,chi2)) return kFALSE;
  
  return kTRUE;
}


Double_t AliTrackFitterKalman::GetPredictedChi2(const AliTrackPoint *p) const {
  //
  // Calculate the predicted chi2 increment.
  //

  Float_t txyz[3]={static_cast<Float_t>(GetParam()[0]),static_cast<Float_t>(GetParam()[1]),static_cast<Float_t>(GetParam()[2])};
  TMatrixDSym &cv=*fCov;
  Float_t tcov[6]={
    static_cast<Float_t>(cv(0,0)),static_cast<Float_t>(cv(1,0)),static_cast<Float_t>(cv(2,0)),
            static_cast<Float_t>(cv(1,1)),static_cast<Float_t>(cv(2,1)),
                    static_cast<Float_t>(cv(2,2))
  };
  AliTrackPoint tp(txyz,tcov,p->GetVolumeID());

  Double_t chi2=p->GetResidual(tp,kTRUE);

  return chi2;
}


Bool_t AliTrackFitterKalman::Propagate(const AliTrackPoint *p) {
  //
  // Propagate the track towards the measured point "p"
  //

  TMatrixDSym &cv=*fCov;
  Double_t s=p->GetY() - fParams[1];
  Double_t sig2=s*s/12.; 

  Double_t vx=fParams[3], vz=fParams[4];
  fParams[0] += s*vx;
  fParams[1] += s;
  fParams[2] += s*vz;

  Double_t 
  c00 = cv(0,0) + 2*s*cv(3,0) + s*s*cv(3,3) + vx*vx*sig2,

  c10 = cv(1,0) + s*cv(1,3) + vx*sig2, c11=cv(1,1) + sig2,
  
  c20 = cv(2,0) + s*(cv(4,0) + cv(2,3)) + s*s*cv(4,3) + vx*vz*sig2,
  c21 = cv(2,1) + s*cv(4,1) + vz*sig2,
  c22 = cv(2,2) + 2*s*cv(4,2) + s*s*cv(4,4) + vz*vz*sig2,

  c30 = cv(3,0) + s*cv(3,3), c31 = cv(3,1),
  c32 = cv(3,2) + s*cv(3,4), c33 = cv(3,3),

  c40 = cv(4,0) + s*cv(4,3), c41 = cv(4,1),
  c42 = cv(4,2) + s*cv(4,4), c43 = cv(4,3), c44 = cv(4,4);


  cv(0,0)=c00; cv(0,1)=c10; cv(0,2)=c20; cv(0,3)=c30; cv(0,4)=c40;
  cv(1,0)=c10; cv(1,1)=c11; cv(1,2)=c21; cv(1,3)=c31; cv(1,4)=c41;
  cv(2,0)=c20; cv(2,1)=c21; cv(2,2)=c22; cv(2,3)=c32; cv(2,4)=c42;
  cv(3,0)=c30; cv(3,1)=c31; cv(3,2)=c32; cv(3,3)=c33; cv(3,4)=c43;
  cv(4,0)=c40; cv(4,1)=c41; cv(4,2)=c42; cv(4,3)=c43; cv(4,4)=c44;

  return kTRUE;
}

Bool_t AliTrackFitterKalman::Update(const AliTrackPoint *p, Double_t chi2) {
  //
  // Update the track params using the measured point "p"
  //

  TMatrixDSym &c=*fCov;
  const Float_t *cov=p->GetCov();

  TMatrixDSym v(3);
  v(0,0)=cov[0]+c(0,0); v(0,1)=cov[1]+c(0,1); v(0,2)=cov[2]+c(0,2);
  v(1,0)=cov[1]+c(1,0); v(1,1)=cov[3]+c(1,1); v(1,2)=cov[4]+c(1,2);
  v(2,0)=cov[2]+c(2,0); v(2,1)=cov[4]+c(2,1); v(2,2)=cov[5]+c(2,2);
  if (TMath::Abs(v.Determinant()) < 1.e-33) return kFALSE;
  v.Invert();

  TMatrixD ch(5,3);
  ch(0,0)=c(0,0); ch(0,1)=c(0,1); ch(0,2)=c(0,2);
  ch(1,0)=c(1,0); ch(1,1)=c(1,1); ch(1,2)=c(1,2);
  ch(2,0)=c(2,0); ch(2,1)=c(2,1); ch(2,2)=c(2,2);
  ch(3,0)=c(3,0); ch(3,1)=c(3,1); ch(3,2)=c(3,2);
  ch(4,0)=c(4,0); ch(4,1)=c(4,1); ch(4,2)=c(4,2);

  TMatrixD k(ch,TMatrixD::kMult,v);

  TMatrixD d(3,1);
  d(0,0) = p->GetX() - fParams[0];
  d(1,0) = p->GetY() - fParams[1];
  d(2,0) = p->GetZ() - fParams[2];

  TMatrixD x(k,TMatrixD::kMult,d);

  fParams[0]+=x(0,0);
  fParams[1]+=x(1,0);
  fParams[2]+=x(2,0);
  fParams[3]+=x(3,0);
  fParams[4]+=x(4,0);

  TMatrixD hc(3,5);
  hc(0,0)=c(0,0);hc(0,1)=c(0,1);hc(0,2)=c(0,2);hc(0,3)=c(0,3);hc(0,4)=c(0,4);
  hc(1,0)=c(1,0);hc(1,1)=c(1,1);hc(1,2)=c(1,2);hc(1,3)=c(1,3);hc(1,4)=c(1,4);
  hc(2,0)=c(2,0);hc(2,1)=c(2,1);hc(2,2)=c(2,2);hc(2,3)=c(2,3);hc(2,4)=c(2,4);
  
  TMatrixD s(k,TMatrixD::kMult,hc);

  c(0,0)-=s(0,0);c(0,1)-=s(0,1);c(0,2)-=s(0,2);c(0,3)-=s(0,3);c(0,4)-=s(0,4);
  c(1,0)-=s(1,0);c(1,1)-=s(1,1);c(1,2)-=s(1,2);c(1,3)-=s(1,3);c(1,4)-=s(1,4);
  c(2,0)-=s(2,0);c(2,1)-=s(2,1);c(2,2)-=s(2,2);c(2,3)-=s(2,3);c(2,4)-=s(2,4);
  c(3,0)-=s(3,0);c(3,1)-=s(3,1);c(3,2)-=s(3,2);c(3,3)-=s(3,3);c(3,4)-=s(3,4);
  c(4,0)-=s(4,0);c(4,1)-=s(4,1);c(4,2)-=s(4,2);c(4,3)-=s(4,3);c(4,4)-=s(4,4);

  fChi2 += chi2;
  fNdf  += 2;

  return kTRUE;
}

//_____________________________________________________________________________
Bool_t AliTrackFitterKalman::GetPCA(const AliTrackPoint &p, AliTrackPoint &i) const
{
  //
  // Get the intersection point "i" between the track and the plane
  // the point "p" belongs to.
  //

  TMatrixD t(3,1);
  Double_t s=p.GetY() - fParams[1];
  Double_t vx=fParams[3], vz=fParams[4];
  t(0,0) = fParams[0] + s*vx;
  t(1,0) = fParams[1] + s;
  t(2,0) = fParams[2] + s*vz;
  
  TMatrixDSym tC(3);
  {
  Double_t sig2=s*s/12.;

  tC(0,0) = vx*vx*sig2;
  tC(1,0) = vx*sig2; 
  tC(1,1) = sig2;
  tC(2,0) = vx*vz*sig2;
  tC(2,1) = vz*sig2;
  tC(2,2) = vz*vz*sig2;

  tC(0,1) = tC(1,0); tC(0,2) = tC(2,0);
                     tC(1,2) = tC(2,1);
  }

  TMatrixD m(3,1);
  m(0,0)=p.GetX();
  m(1,0)=p.GetY();
  m(2,0)=p.GetZ();
 
  TMatrixDSym mC(3);
  {
  const Float_t *cv=p.GetCov();
  mC(0,0)=cv[0]; mC(0,1)=cv[1]; mC(0,2)=cv[2];
  mC(1,0)=cv[1]; mC(1,1)=cv[3]; mC(1,2)=cv[4];
  mC(2,0)=cv[2]; mC(2,1)=cv[4]; mC(2,2)=cv[5];
  }

  TMatrixDSym tmW(tC);
  tmW+=mC;
  if (TMath::Abs(tmW.Determinant()) < 1.e-33) return kFALSE;
  tmW.Invert();

  TMatrixD mW(tC,TMatrixD::kMult,tmW);
  TMatrixD tW(mC,TMatrixD::kMult,tmW);

  TMatrixD mi(mW,TMatrixD::kMult,m);
  TMatrixD ti(tW,TMatrixD::kMult,t);
  ti+=mi;

  TMatrixD iC(tC,TMatrixD::kMult,tmW);
  iC*=mC;
  Double_t sig2=1.;  // Releasing the matrix by 1 cm along the track direction 
  iC(0,0) += vx*vx*sig2;
  iC(0,1) += vx*sig2; 
  iC(1,1) += sig2;
  iC(0,2) += vx*vz*sig2;
  iC(1,2) += vz*sig2;
  iC(2,2) += vz*vz*sig2;


  Float_t cov[6]={
    static_cast<Float_t>(iC(0,0)), static_cast<Float_t>(iC(0,1)), static_cast<Float_t>(iC(0,2)),
             static_cast<Float_t>(iC(1,1)), static_cast<Float_t>(iC(1,2)),
                      static_cast<Float_t>(iC(2,2))
  };
  i.SetXYZ(ti(0,0),ti(1,0),ti(2,0),cov);
  UShort_t id=p.GetVolumeID();
  i.SetVolumeID(id);

  return kTRUE;
}


//_____________________________________________________________________________
void 
AliTrackFitterKalman::SetSeed(const Double_t par[5], const Double_t cov[15]) {
  //
  // Set the initial approximation for the track parameters
  //
  for (Int_t i=0; i<5; i++) fParams[i]=par[i];
  fParams[5]=0.;

  delete fCov;
  fCov=new TMatrixDSym(5);
  TMatrixDSym &cv=*fCov;

  cv(0,0)=cov[0 ];
  cv(1,0)=cov[1 ]; cv(1,1)=cov[2 ];
  cv(2,0)=cov[3 ]; cv(2,1)=cov[4 ]; cv(2,2)=cov[5 ];
  cv(3,0)=cov[6 ]; cv(3,1)=cov[7 ]; cv(3,2)=cov[8 ]; cv(3,3)=cov[9 ];
  cv(4,0)=cov[10]; cv(4,1)=cov[11]; cv(4,2)=cov[12]; cv(4,3)=cov[13]; cv(4,4)=cov[14];
 
  cv(0,1)=cv(1,0);
  cv(0,2)=cv(2,0); cv(1,2)=cv(2,1);
  cv(0,3)=cv(3,0); cv(1,3)=cv(3,1); cv(2,3)=cv(3,2);
  cv(0,4)=cv(4,0); cv(1,4)=cv(4,1); cv(2,4)=cv(4,2); cv(3,4)=cv(4,3);

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