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

//////////////////////////////////////////////////////////////////////////////
//                          Class AliTrackPointArray                        //
//   This class contains the ESD track space-points which are used during   //
//   the alignment procedures. Each space-point consist of 3 coordinates    //
//   (and their errors) and the index of the sub-detector which contains    //
//   the space-point.                                                       //
//   cvetan.cheshkov@cern.ch 3/11/2005                                      //
//////////////////////////////////////////////////////////////////////////////

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

#include "AliTrackPointArray.h"

ClassImp(AliTrackPointArray)

//______________________________________________________________________________
AliTrackPointArray::AliTrackPointArray() :
  TObject(),
  fSorted(kFALSE),
  fNPoints(0),
  fX(0),
  fY(0),
  fZ(0),
  fCharge(0),
  fDriftTime(0),
  fChargeRatio(0),
  fClusterType(0),
  fIsExtra(0),
  fSize(0),
  fCov(0),
  fVolumeID(0)
{
}

//______________________________________________________________________________
AliTrackPointArray::AliTrackPointArray(Int_t npoints):
  TObject(),
  fSorted(kFALSE),
  fNPoints(npoints),
  fX(new Float_t[npoints]),
  fY(new Float_t[npoints]),
  fZ(new Float_t[npoints]),
  fCharge(new Float_t[npoints]),
  fDriftTime(new Float_t[npoints]),
  fChargeRatio(new Float_t[npoints]),
  fClusterType(new Int_t[npoints]),
  fIsExtra(new Bool_t[npoints]),
  fSize(6*npoints),
  fCov(new Float_t[fSize]),
  fVolumeID(new UShort_t[npoints])
{
  // Constructor
  //
  for (Int_t ip=0; ip<npoints;ip++){
    fX[ip]=0;
    fY[ip]=0;
    fZ[ip]=0;
    fCharge[ip]=0;
    fDriftTime[ip]=0;
    fChargeRatio[ip]=0;
    fClusterType[ip]=0;
    fIsExtra[ip]=kFALSE;
    fVolumeID[ip]=0;
    for (Int_t icov=0;icov<6; icov++)
      fCov[6*ip+icov]=0;
  }
}

//______________________________________________________________________________
AliTrackPointArray::AliTrackPointArray(const AliTrackPointArray &array):
  TObject(array),
  fSorted(array.fSorted),
  fNPoints(array.fNPoints),
  fX(new Float_t[fNPoints]),
  fY(new Float_t[fNPoints]),
  fZ(new Float_t[fNPoints]),
  fCharge(new Float_t[fNPoints]),
  fDriftTime(new Float_t[fNPoints]),
  fChargeRatio(new Float_t[fNPoints]),
  fClusterType(new Int_t[fNPoints]),
  fIsExtra(new Bool_t[fNPoints]),
  fSize(array.fSize),
  fCov(new Float_t[fSize]),
  fVolumeID(new UShort_t[fNPoints])
{
  // Copy constructor
  //
  memcpy(fX,array.fX,fNPoints*sizeof(Float_t));
  memcpy(fY,array.fY,fNPoints*sizeof(Float_t));
  memcpy(fZ,array.fZ,fNPoints*sizeof(Float_t));
  if (array.fCharge) {
    memcpy(fCharge,array.fCharge,fNPoints*sizeof(Float_t));
  } else {
    memset(fCharge, 0, fNPoints*sizeof(Float_t));
  }
  if (array.fDriftTime) {
    memcpy(fDriftTime,array.fDriftTime,fNPoints*sizeof(Float_t));
  } else {
    memset(fDriftTime, 0, fNPoints*sizeof(Float_t));
  }
  if (array.fChargeRatio) {
    memcpy(fChargeRatio,array.fChargeRatio,fNPoints*sizeof(Float_t));
  } else {
    memset(fChargeRatio, 0, fNPoints*sizeof(Float_t));
  }
  if (array.fClusterType) {
    memcpy(fClusterType,array.fClusterType,fNPoints*sizeof(Int_t));
  } else {
    memset(fClusterType, 0, fNPoints*sizeof(Int_t));
  }
  if (array.fIsExtra) {
    memcpy(fIsExtra,array.fIsExtra,fNPoints*sizeof(Bool_t));
  } else {
    memset(fIsExtra, 0, fNPoints*sizeof(Bool_t));
  }
  memcpy(fVolumeID,array.fVolumeID,fNPoints*sizeof(UShort_t));
  memcpy(fCov,array.fCov,fSize*sizeof(Float_t));
}

//_____________________________________________________________________________
AliTrackPointArray &AliTrackPointArray::operator =(const AliTrackPointArray& array)
{
  // assignment operator
  //
  if(this==&array) return *this;
  ((TObject *)this)->operator=(array);

  fSorted = array.fSorted;
  fNPoints = array.fNPoints;
  fSize = array.fSize;
  delete [] fX;
  fX = new Float_t[fNPoints];
  delete [] fY;
  fY = new Float_t[fNPoints];
  delete [] fZ;
  fZ = new Float_t[fNPoints];
  delete [] fCharge;
  fCharge = new Float_t[fNPoints];
  delete [] fDriftTime;
  fDriftTime = new Float_t[fNPoints];
  delete [] fChargeRatio;
  fChargeRatio = new Float_t[fNPoints];
  delete [] fClusterType;
  fClusterType = new Int_t[fNPoints];
  delete [] fIsExtra;
  fIsExtra = new Bool_t[fNPoints];
  delete [] fVolumeID;
  fVolumeID = new UShort_t[fNPoints];
  delete [] fCov;
  fCov = new Float_t[fSize];
  memcpy(fX,array.fX,fNPoints*sizeof(Float_t));
  memcpy(fY,array.fY,fNPoints*sizeof(Float_t));
  memcpy(fZ,array.fZ,fNPoints*sizeof(Float_t));
  memcpy(fCharge,array.fCharge,fNPoints*sizeof(Float_t));
  memcpy(fDriftTime,array.fDriftTime,fNPoints*sizeof(Float_t));
  memcpy(fChargeRatio,array.fChargeRatio,fNPoints*sizeof(Float_t));
  memcpy(fClusterType,array.fClusterType,fNPoints*sizeof(Int_t));
  memcpy(fIsExtra,array.fIsExtra,fNPoints*sizeof(Bool_t));
  memcpy(fVolumeID,array.fVolumeID,fNPoints*sizeof(UShort_t));
  memcpy(fCov,array.fCov,fSize*sizeof(Float_t));

  return *this;
}

//______________________________________________________________________________
AliTrackPointArray::~AliTrackPointArray()
{
  // Destructor
  //
  delete [] fX;
  delete [] fY;
  delete [] fZ;
  delete [] fCharge;
  delete [] fDriftTime;
  delete [] fChargeRatio;
  delete [] fClusterType;
  delete [] fIsExtra;
  delete [] fVolumeID;
  delete [] fCov;
}


//______________________________________________________________________________
Bool_t AliTrackPointArray::AddPoint(Int_t i, const AliTrackPoint *p)
{
  // Add a point to the array at position i
  //
  if (i >= fNPoints) return kFALSE;
  fX[i] = p->GetX();
  fY[i] = p->GetY();
  fZ[i] = p->GetZ();
  fCharge[i] = p->GetCharge();
  fDriftTime[i] = p->GetDriftTime();
  fChargeRatio[i]=p->GetChargeRatio();
  fClusterType[i]=p->GetClusterType();
  fIsExtra[i] = p->IsExtra();
  fVolumeID[i] = p->GetVolumeID();
  memcpy(&fCov[6*i],p->GetCov(),6*sizeof(Float_t));
  return kTRUE;
}


//______________________________________________________________________________
Bool_t AliTrackPointArray::GetPoint(AliTrackPoint &p, Int_t i) const
{
  // Get the point at position i
  //
  if (i >= fNPoints) return kFALSE;
  p.SetXYZ(fX[i],fY[i],fZ[i],&fCov[6*i]);
  p.SetVolumeID(fVolumeID[i]);
  p.SetCharge(fCharge ? fCharge[i] : 0);
  p.SetDriftTime(fDriftTime ? fDriftTime[i] : 0);
  p.SetChargeRatio(fChargeRatio ? fChargeRatio[i] : 0);
  p.SetClusterType(fClusterType ? fClusterType[i] : 0);
  p.SetExtra(fIsExtra ? fIsExtra[i] : kFALSE);
  return kTRUE;
}

//______________________________________________________________________________
Bool_t AliTrackPointArray::HasVolumeID(UShort_t volid) const
{
  // This method checks if the array
  // has at least one hit in the detector
  // volume defined by volid
  Bool_t check = kFALSE;
  for (Int_t ipoint = 0; ipoint < fNPoints; ipoint++)
    if (fVolumeID[ipoint] == volid) check = kTRUE;

  return check;
}

//______________________________________________________________________________
void AliTrackPointArray::Sort(Bool_t down)
{
  // Sort the array by the values of Y-coordinate of the track points.
  // The order is given by "down".
  // Optimized more for maintenance rather than for speed.
 
  if (fSorted) return;

  Int_t *index=new Int_t[fNPoints];
  AliTrackPointArray a(*this);
  TMath::Sort(fNPoints,a.GetY(),index,down);
 
  AliTrackPoint p;
  for (Int_t i = 0; i < fNPoints; i++) {
    a.GetPoint(p,index[i]);
    AddPoint(i,&p);
  }

  delete[] index;
  fSorted=kTRUE;
}

//_____________________________________________________________________________
void AliTrackPointArray::Print(Option_t *) const
{
  // Print the space-point coordinates and modules info
  for (int i=0;i<fNPoints;i++) {
    printf("#%3d VID %5d XYZ:%+9.3f/%+9.3f/%+9.3f |q: %+7.2f |DT: %+8.1f| ChR: %+.2e |Cl: %d %s\n",
	   i,fVolumeID[i],fX[i],fY[i],fZ[i],fCharge[i],fDriftTime[i],
	   fChargeRatio[i],fClusterType[i],fIsExtra[i] ? "|E":"");
  }
}


ClassImp(AliTrackPoint)

//______________________________________________________________________________
AliTrackPoint::AliTrackPoint() :
  TObject(),
  fX(0),
  fY(0),
  fZ(0),
  fCharge(0),
  fDriftTime(0),
  fChargeRatio(0),
  fClusterType(0),
  fIsExtra(kFALSE),
  fVolumeID(0)
{
  // Default constructor
  //
  memset(fCov,0,6*sizeof(Float_t));
}


//______________________________________________________________________________
AliTrackPoint::AliTrackPoint(Float_t x, Float_t y, Float_t z, const Float_t *cov, UShort_t volid, Float_t charge, Float_t drifttime,Float_t chargeratio, Int_t clutyp) :
  TObject(),
  fX(0),
  fY(0),
  fZ(0),
  fCharge(0),
  fDriftTime(0),
  fChargeRatio(0),
  fClusterType(0),
  fIsExtra(kFALSE),
  fVolumeID(0)
{
  // Constructor
  //
  SetXYZ(x,y,z,cov);
  SetCharge(charge);
  SetDriftTime(drifttime);
  SetChargeRatio(chargeratio);
  SetClusterType(clutyp);
  SetVolumeID(volid);
}

//______________________________________________________________________________
AliTrackPoint::AliTrackPoint(const Float_t *xyz, const Float_t *cov, UShort_t volid, Float_t charge, Float_t drifttime,Float_t chargeratio, Int_t clutyp) :
  TObject(),
  fX(0),
  fY(0),
  fZ(0),
  fCharge(0),
  fDriftTime(0),
  fChargeRatio(0),
  fClusterType(0),
  fIsExtra(kFALSE),
  fVolumeID(0)
{
  // Constructor
  //
  SetXYZ(xyz[0],xyz[1],xyz[2],cov);
  SetCharge(charge);
  SetDriftTime(drifttime);
  SetChargeRatio(chargeratio);
  SetVolumeID(volid);
  SetClusterType(clutyp);
}

//______________________________________________________________________________
AliTrackPoint::AliTrackPoint(const AliTrackPoint &p):
  TObject(p),
  fX(0),
  fY(0),
  fZ(0),
  fCharge(0),
  fDriftTime(0),
  fChargeRatio(0),
  fClusterType(0),
  fIsExtra(kFALSE),
  fVolumeID(0)
{
  // Copy constructor
  //
  SetXYZ(p.fX,p.fY,p.fZ,&(p.fCov[0]));
  SetCharge(p.fCharge);
  SetDriftTime(p.fDriftTime);
  SetChargeRatio(p.fChargeRatio);
  SetClusterType(p.fClusterType);
  SetExtra(p.fIsExtra);
  SetVolumeID(p.fVolumeID);
}

//_____________________________________________________________________________
AliTrackPoint &AliTrackPoint::operator =(const AliTrackPoint& p)
{
  // assignment operator
  //
  if(this==&p) return *this;
  ((TObject *)this)->operator=(p);

  SetXYZ(p.fX,p.fY,p.fZ,&(p.fCov[0]));
  SetCharge(p.fCharge);
  SetDriftTime(p.fDriftTime);
  SetChargeRatio(p.fChargeRatio);
  SetClusterType(p.fClusterType);
  SetExtra(p.fIsExtra);
  SetVolumeID(p.fVolumeID);

  return *this;
}

//______________________________________________________________________________
void AliTrackPoint::SetXYZ(Float_t x, Float_t y, Float_t z, const Float_t *cov)
{
  // Set XYZ coordinates and their cov matrix
  //
  fX = x;
  fY = y;
  fZ = z;
  if (cov)
    memcpy(fCov,cov,6*sizeof(Float_t));
}

//______________________________________________________________________________
void AliTrackPoint::SetXYZ(const Float_t *xyz, const Float_t *cov)
{
  // Set XYZ coordinates and their cov matrix
  //
  SetXYZ(xyz[0],xyz[1],xyz[2],cov);
}

//______________________________________________________________________________
void AliTrackPoint::SetCov(const Float_t *cov)
{
  // Set XYZ cov matrix
  //
  if (cov)
    memcpy(fCov,cov,6*sizeof(Float_t));
}

//______________________________________________________________________________
void AliTrackPoint::GetXYZ(Float_t *xyz, Float_t *cov) const
{
  xyz[0] = fX;
  xyz[1] = fY;
  xyz[2] = fZ;
  if (cov)
    memcpy(cov,fCov,6*sizeof(Float_t));
}

//______________________________________________________________________________
Float_t AliTrackPoint::GetResidual(const AliTrackPoint &p, Bool_t weighted) const
{
  // This method calculates the track to space-point residuals. The track
  // interpolation is also stored as AliTrackPoint. Using the option
  // 'weighted' one can calculate the residual either with or without
  // taking into account the covariance matrix of the space-point and
  // track interpolation. The second case the residual becomes a pull.

  Float_t res = 0;

  if (!weighted) {
    Float_t xyz[3],xyzp[3];
    GetXYZ(xyz);
    p.GetXYZ(xyzp);
    res = (xyz[0]-xyzp[0])*(xyz[0]-xyzp[0])+
          (xyz[1]-xyzp[1])*(xyz[1]-xyzp[1])+
          (xyz[2]-xyzp[2])*(xyz[2]-xyzp[2]);
  }
  else {
    Float_t xyz[3],xyzp[3];
    Float_t cov[6],covp[6];
    GetXYZ(xyz,cov);
    TMatrixDSym mcov(3);
    mcov(0,0) = cov[0]; mcov(0,1) = cov[1]; mcov(0,2) = cov[2];
    mcov(1,0) = cov[1]; mcov(1,1) = cov[3]; mcov(1,2) = cov[4];
    mcov(2,0) = cov[2]; mcov(2,1) = cov[4]; mcov(2,2) = cov[5];
    p.GetXYZ(xyzp,covp);
    TMatrixDSym mcovp(3);
    mcovp(0,0) = covp[0]; mcovp(0,1) = covp[1]; mcovp(0,2) = covp[2];
    mcovp(1,0) = covp[1]; mcovp(1,1) = covp[3]; mcovp(1,2) = covp[4];
    mcovp(2,0) = covp[2]; mcovp(2,1) = covp[4]; mcovp(2,2) = covp[5];
    TMatrixDSym msum = mcov + mcovp;
    msum.Invert();
    //    mcov.Print(); mcovp.Print(); msum.Print();
    if (msum.IsValid()) {
      for (Int_t i = 0; i < 3; i++)
	for (Int_t j = 0; j < 3; j++)
	  res += (xyz[i]-xyzp[i])*(xyz[j]-xyzp[j])*msum(i,j);
    }
  }

  return res;
}

//_____________________________________________________________________________
Bool_t AliTrackPoint::GetPCA(const AliTrackPoint &p, AliTrackPoint &out) const
{
  //
  // Get the intersection point between this point and
  // the point "p" belongs to.
  // The result is stored as a point 'out'
  // return kFALSE in case of failure.
  out.SetXYZ(0,0,0);

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

  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;
  tmW.Invert();
  if (!tmW.IsValid()) return kFALSE; 

  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;

  out.SetXYZ(ti(0,0),ti(1,0),ti(2,0));
  UShort_t id=p.GetVolumeID();
  out.SetVolumeID(id);

  return kTRUE;
}

//______________________________________________________________________________
Float_t AliTrackPoint::GetAngle() const
{
  // The method uses the covariance matrix of
  // the space-point in order to extract the
  // orientation of the detector plane.
  // The rotation in XY plane only is calculated.

  Float_t phi= TMath::ATan2(TMath::Sqrt(fCov[0]),TMath::Sqrt(fCov[3]));
  if (fCov[1] > 0) {
    phi = TMath::Pi() - phi;
    if ((fY-fX) < 0) phi += TMath::Pi();
  }
  else {
    if ((fX+fY) < 0) phi += TMath::Pi();
  }

  return phi;

}

//______________________________________________________________________________
Bool_t AliTrackPoint::GetRotMatrix(TGeoRotation& rot) const
{
  // Returns the orientation of the
  // sensitive layer (using cluster
  // covariance matrix).
  // Assumes that cluster has errors only in the layer's plane.
  // Return value is kTRUE in case of success.

  TMatrixDSym mcov(3);
  {
    const Float_t *cov=GetCov();
    mcov(0,0)=cov[0]; mcov(0,1)=cov[1]; mcov(0,2)=cov[2];
    mcov(1,0)=cov[1]; mcov(1,1)=cov[3]; mcov(1,2)=cov[4];
    mcov(2,0)=cov[2]; mcov(2,1)=cov[4]; mcov(2,2)=cov[5];
  }

  TMatrixDSymEigen eigen(mcov);
  TMatrixD eigenMatrix = eigen.GetEigenVectors();

  rot.SetMatrix(eigenMatrix.GetMatrixArray());

  return kTRUE;
}


//_____________________________________________________________________________
AliTrackPoint& AliTrackPoint::Rotate(Float_t alpha) const
{
  // Transform the space-point coordinates
  // and covariance matrix from global to
  // local (detector plane) coordinate system
  // XY plane rotation only

  static AliTrackPoint p;
  p = *this;

  Float_t xyz[3],cov[6];
  GetXYZ(xyz,cov);

  Float_t sin = TMath::Sin(alpha), cos = TMath::Cos(alpha);

  Float_t newxyz[3],newcov[6];
  newxyz[0] = cos*xyz[0] + sin*xyz[1];
  newxyz[1] = cos*xyz[1] - sin*xyz[0];
  newxyz[2] = xyz[2];

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

  p.SetXYZ(newxyz,newcov);
  p.SetVolumeID(GetVolumeID());

  return p;
}

//_____________________________________________________________________________
AliTrackPoint& AliTrackPoint::MasterToLocal() const
{
  // Transform the space-point coordinates
  // and the covariance matrix from the
  // (master) to the local (tracking)
  // coordinate system

  Float_t alpha = GetAngle();
  return Rotate(alpha);
}

//_____________________________________________________________________________
void AliTrackPoint::Print(Option_t *) const
{
  // Print the space-point coordinates and
  // covariance matrix

  printf("VolumeID=%d\n", GetVolumeID());
  printf("X = %12.6f    Tx = %12.6f%12.6f%12.6f\n", fX, fCov[0], fCov[1], fCov[2]);
  printf("Y = %12.6f    Ty = %12.6f%12.6f%12.6f\n", fY, fCov[1], fCov[3], fCov[4]);
  printf("Z = %12.6f    Tz = %12.6f%12.6f%12.6f\n", fZ, fCov[2], fCov[4], fCov[5]);
  printf("Charge = %f\n", fCharge);
  printf("Drift Time = %f\n", fDriftTime);
  printf("Charge Ratio  = %f\n", fChargeRatio);
  printf("Cluster Type  = %d\n", fClusterType);
  if(fIsExtra) printf("This is an extra point\n");

}


//________________________________
void AliTrackPoint::SetAlignCovMatrix(const TMatrixDSym& alignparmtrx){
  // Add the uncertainty on the cluster position due to alignment
  // (using the 6x6 AliAlignObj Cov. Matrix alignparmtrx) to the already
  // present Cov. Matrix 

  TMatrixDSym cov(3);
  TMatrixD coval(3,3);
  TMatrixD jacob(3,6);
  Float_t newcov[6];

  cov(0,0)=fCov[0];
  cov(1,0)=cov(0,1)=fCov[1];
  cov(2,0)=cov(0,2)=fCov[2];
  cov(1,1)=fCov[3];
  cov(2,1)=cov(1,2)=fCov[4];
  cov(2,2)=fCov[5];
  
  jacob(0,0) = 1;      jacob(1,0) = 0;       jacob(2,0) = 0;
  jacob(0,1) = 0;      jacob(1,1) = 1;       jacob(2,1) = 0;
  jacob(0,2) = 0;      jacob(1,2) = 0;       jacob(2,2) = 1;
  jacob(0,3) = 0;      jacob(1,3) =-fZ;      jacob(2,3) = fY;
  jacob(0,4) = fZ;     jacob(1,4) = 0;       jacob(2,4) =-fX;
  jacob(0,5) = -fY;    jacob(1,5) = fX;      jacob(2,5) = 0;
  
  TMatrixD jacobT=jacob.T();jacob.T();
  
  coval=jacob*alignparmtrx*jacobT+cov;


  newcov[0]=coval(0,0);
  newcov[1]=coval(1,0);
  newcov[2]=coval(2,0);
  newcov[3]=coval(1,1);
  newcov[4]=coval(2,1);
  newcov[5]=coval(2,2);
 
  SetXYZ(fX,fY,fZ,newcov);

}


 AliTrackPointArray.cxx:1
 AliTrackPointArray.cxx:2
 AliTrackPointArray.cxx:3
 AliTrackPointArray.cxx:4
 AliTrackPointArray.cxx:5
 AliTrackPointArray.cxx:6
 AliTrackPointArray.cxx:7
 AliTrackPointArray.cxx:8
 AliTrackPointArray.cxx:9
 AliTrackPointArray.cxx:10
 AliTrackPointArray.cxx:11
 AliTrackPointArray.cxx:12
 AliTrackPointArray.cxx:13
 AliTrackPointArray.cxx:14
 AliTrackPointArray.cxx:15
 AliTrackPointArray.cxx:16
 AliTrackPointArray.cxx:17
 AliTrackPointArray.cxx:18
 AliTrackPointArray.cxx:19
 AliTrackPointArray.cxx:20
 AliTrackPointArray.cxx:21
 AliTrackPointArray.cxx:22
 AliTrackPointArray.cxx:23
 AliTrackPointArray.cxx:24
 AliTrackPointArray.cxx:25
 AliTrackPointArray.cxx:26
 AliTrackPointArray.cxx:27
 AliTrackPointArray.cxx:28
 AliTrackPointArray.cxx:29
 AliTrackPointArray.cxx:30
 AliTrackPointArray.cxx:31
 AliTrackPointArray.cxx:32
 AliTrackPointArray.cxx:33
 AliTrackPointArray.cxx:34
 AliTrackPointArray.cxx:35
 AliTrackPointArray.cxx:36
 AliTrackPointArray.cxx:37
 AliTrackPointArray.cxx:38
 AliTrackPointArray.cxx:39
 AliTrackPointArray.cxx:40
 AliTrackPointArray.cxx:41
 AliTrackPointArray.cxx:42
 AliTrackPointArray.cxx:43
 AliTrackPointArray.cxx:44
 AliTrackPointArray.cxx:45
 AliTrackPointArray.cxx:46
 AliTrackPointArray.cxx:47
 AliTrackPointArray.cxx:48
 AliTrackPointArray.cxx:49
 AliTrackPointArray.cxx:50
 AliTrackPointArray.cxx:51
 AliTrackPointArray.cxx:52
 AliTrackPointArray.cxx:53
 AliTrackPointArray.cxx:54
 AliTrackPointArray.cxx:55
 AliTrackPointArray.cxx:56
 AliTrackPointArray.cxx:57
 AliTrackPointArray.cxx:58
 AliTrackPointArray.cxx:59
 AliTrackPointArray.cxx:60
 AliTrackPointArray.cxx:61
 AliTrackPointArray.cxx:62
 AliTrackPointArray.cxx:63
 AliTrackPointArray.cxx:64
 AliTrackPointArray.cxx:65
 AliTrackPointArray.cxx:66
 AliTrackPointArray.cxx:67
 AliTrackPointArray.cxx:68
 AliTrackPointArray.cxx:69
 AliTrackPointArray.cxx:70
 AliTrackPointArray.cxx:71
 AliTrackPointArray.cxx:72
 AliTrackPointArray.cxx:73
 AliTrackPointArray.cxx:74
 AliTrackPointArray.cxx:75
 AliTrackPointArray.cxx:76
 AliTrackPointArray.cxx:77
 AliTrackPointArray.cxx:78
 AliTrackPointArray.cxx:79
 AliTrackPointArray.cxx:80
 AliTrackPointArray.cxx:81
 AliTrackPointArray.cxx:82
 AliTrackPointArray.cxx:83
 AliTrackPointArray.cxx:84
 AliTrackPointArray.cxx:85
 AliTrackPointArray.cxx:86
 AliTrackPointArray.cxx:87
 AliTrackPointArray.cxx:88
 AliTrackPointArray.cxx:89
 AliTrackPointArray.cxx:90
 AliTrackPointArray.cxx:91
 AliTrackPointArray.cxx:92
 AliTrackPointArray.cxx:93
 AliTrackPointArray.cxx:94
 AliTrackPointArray.cxx:95
 AliTrackPointArray.cxx:96
 AliTrackPointArray.cxx:97
 AliTrackPointArray.cxx:98
 AliTrackPointArray.cxx:99
 AliTrackPointArray.cxx:100
 AliTrackPointArray.cxx:101
 AliTrackPointArray.cxx:102
 AliTrackPointArray.cxx:103
 AliTrackPointArray.cxx:104
 AliTrackPointArray.cxx:105
 AliTrackPointArray.cxx:106
 AliTrackPointArray.cxx:107
 AliTrackPointArray.cxx:108
 AliTrackPointArray.cxx:109
 AliTrackPointArray.cxx:110
 AliTrackPointArray.cxx:111
 AliTrackPointArray.cxx:112
 AliTrackPointArray.cxx:113
 AliTrackPointArray.cxx:114
 AliTrackPointArray.cxx:115
 AliTrackPointArray.cxx:116
 AliTrackPointArray.cxx:117
 AliTrackPointArray.cxx:118
 AliTrackPointArray.cxx:119
 AliTrackPointArray.cxx:120
 AliTrackPointArray.cxx:121
 AliTrackPointArray.cxx:122
 AliTrackPointArray.cxx:123
 AliTrackPointArray.cxx:124
 AliTrackPointArray.cxx:125
 AliTrackPointArray.cxx:126
 AliTrackPointArray.cxx:127
 AliTrackPointArray.cxx:128
 AliTrackPointArray.cxx:129
 AliTrackPointArray.cxx:130
 AliTrackPointArray.cxx:131
 AliTrackPointArray.cxx:132
 AliTrackPointArray.cxx:133
 AliTrackPointArray.cxx:134
 AliTrackPointArray.cxx:135
 AliTrackPointArray.cxx:136
 AliTrackPointArray.cxx:137
 AliTrackPointArray.cxx:138
 AliTrackPointArray.cxx:139
 AliTrackPointArray.cxx:140
 AliTrackPointArray.cxx:141
 AliTrackPointArray.cxx:142
 AliTrackPointArray.cxx:143
 AliTrackPointArray.cxx:144
 AliTrackPointArray.cxx:145
 AliTrackPointArray.cxx:146
 AliTrackPointArray.cxx:147
 AliTrackPointArray.cxx:148
 AliTrackPointArray.cxx:149
 AliTrackPointArray.cxx:150
 AliTrackPointArray.cxx:151
 AliTrackPointArray.cxx:152
 AliTrackPointArray.cxx:153
 AliTrackPointArray.cxx:154
 AliTrackPointArray.cxx:155
 AliTrackPointArray.cxx:156
 AliTrackPointArray.cxx:157
 AliTrackPointArray.cxx:158
 AliTrackPointArray.cxx:159
 AliTrackPointArray.cxx:160
 AliTrackPointArray.cxx:161
 AliTrackPointArray.cxx:162
 AliTrackPointArray.cxx:163
 AliTrackPointArray.cxx:164
 AliTrackPointArray.cxx:165
 AliTrackPointArray.cxx:166
 AliTrackPointArray.cxx:167
 AliTrackPointArray.cxx:168
 AliTrackPointArray.cxx:169
 AliTrackPointArray.cxx:170
 AliTrackPointArray.cxx:171
 AliTrackPointArray.cxx:172
 AliTrackPointArray.cxx:173
 AliTrackPointArray.cxx:174
 AliTrackPointArray.cxx:175
 AliTrackPointArray.cxx:176
 AliTrackPointArray.cxx:177
 AliTrackPointArray.cxx:178
 AliTrackPointArray.cxx:179
 AliTrackPointArray.cxx:180
 AliTrackPointArray.cxx:181
 AliTrackPointArray.cxx:182
 AliTrackPointArray.cxx:183
 AliTrackPointArray.cxx:184
 AliTrackPointArray.cxx:185
 AliTrackPointArray.cxx:186
 AliTrackPointArray.cxx:187
 AliTrackPointArray.cxx:188
 AliTrackPointArray.cxx:189
 AliTrackPointArray.cxx:190
 AliTrackPointArray.cxx:191
 AliTrackPointArray.cxx:192
 AliTrackPointArray.cxx:193
 AliTrackPointArray.cxx:194
 AliTrackPointArray.cxx:195
 AliTrackPointArray.cxx:196
 AliTrackPointArray.cxx:197
 AliTrackPointArray.cxx:198
 AliTrackPointArray.cxx:199
 AliTrackPointArray.cxx:200
 AliTrackPointArray.cxx:201
 AliTrackPointArray.cxx:202
 AliTrackPointArray.cxx:203
 AliTrackPointArray.cxx:204
 AliTrackPointArray.cxx:205
 AliTrackPointArray.cxx:206
 AliTrackPointArray.cxx:207
 AliTrackPointArray.cxx:208
 AliTrackPointArray.cxx:209
 AliTrackPointArray.cxx:210
 AliTrackPointArray.cxx:211
 AliTrackPointArray.cxx:212
 AliTrackPointArray.cxx:213
 AliTrackPointArray.cxx:214
 AliTrackPointArray.cxx:215
 AliTrackPointArray.cxx:216
 AliTrackPointArray.cxx:217
 AliTrackPointArray.cxx:218
 AliTrackPointArray.cxx:219
 AliTrackPointArray.cxx:220
 AliTrackPointArray.cxx:221
 AliTrackPointArray.cxx:222
 AliTrackPointArray.cxx:223
 AliTrackPointArray.cxx:224
 AliTrackPointArray.cxx:225
 AliTrackPointArray.cxx:226
 AliTrackPointArray.cxx:227
 AliTrackPointArray.cxx:228
 AliTrackPointArray.cxx:229
 AliTrackPointArray.cxx:230
 AliTrackPointArray.cxx:231
 AliTrackPointArray.cxx:232
 AliTrackPointArray.cxx:233
 AliTrackPointArray.cxx:234
 AliTrackPointArray.cxx:235
 AliTrackPointArray.cxx:236
 AliTrackPointArray.cxx:237
 AliTrackPointArray.cxx:238
 AliTrackPointArray.cxx:239
 AliTrackPointArray.cxx:240
 AliTrackPointArray.cxx:241
 AliTrackPointArray.cxx:242
 AliTrackPointArray.cxx:243
 AliTrackPointArray.cxx:244
 AliTrackPointArray.cxx:245
 AliTrackPointArray.cxx:246
 AliTrackPointArray.cxx:247
 AliTrackPointArray.cxx:248
 AliTrackPointArray.cxx:249
 AliTrackPointArray.cxx:250
 AliTrackPointArray.cxx:251
 AliTrackPointArray.cxx:252
 AliTrackPointArray.cxx:253
 AliTrackPointArray.cxx:254
 AliTrackPointArray.cxx:255
 AliTrackPointArray.cxx:256
 AliTrackPointArray.cxx:257
 AliTrackPointArray.cxx:258
 AliTrackPointArray.cxx:259
 AliTrackPointArray.cxx:260
 AliTrackPointArray.cxx:261
 AliTrackPointArray.cxx:262
 AliTrackPointArray.cxx:263
 AliTrackPointArray.cxx:264
 AliTrackPointArray.cxx:265
 AliTrackPointArray.cxx:266
 AliTrackPointArray.cxx:267
 AliTrackPointArray.cxx:268
 AliTrackPointArray.cxx:269
 AliTrackPointArray.cxx:270
 AliTrackPointArray.cxx:271
 AliTrackPointArray.cxx:272
 AliTrackPointArray.cxx:273
 AliTrackPointArray.cxx:274
 AliTrackPointArray.cxx:275
 AliTrackPointArray.cxx:276
 AliTrackPointArray.cxx:277
 AliTrackPointArray.cxx:278
 AliTrackPointArray.cxx:279
 AliTrackPointArray.cxx:280
 AliTrackPointArray.cxx:281
 AliTrackPointArray.cxx:282
 AliTrackPointArray.cxx:283
 AliTrackPointArray.cxx:284
 AliTrackPointArray.cxx:285
 AliTrackPointArray.cxx:286
 AliTrackPointArray.cxx:287
 AliTrackPointArray.cxx:288
 AliTrackPointArray.cxx:289
 AliTrackPointArray.cxx:290
 AliTrackPointArray.cxx:291
 AliTrackPointArray.cxx:292
 AliTrackPointArray.cxx:293
 AliTrackPointArray.cxx:294
 AliTrackPointArray.cxx:295
 AliTrackPointArray.cxx:296
 AliTrackPointArray.cxx:297
 AliTrackPointArray.cxx:298
 AliTrackPointArray.cxx:299
 AliTrackPointArray.cxx:300
 AliTrackPointArray.cxx:301
 AliTrackPointArray.cxx:302
 AliTrackPointArray.cxx:303
 AliTrackPointArray.cxx:304
 AliTrackPointArray.cxx:305
 AliTrackPointArray.cxx:306
 AliTrackPointArray.cxx:307
 AliTrackPointArray.cxx:308
 AliTrackPointArray.cxx:309
 AliTrackPointArray.cxx:310
 AliTrackPointArray.cxx:311
 AliTrackPointArray.cxx:312
 AliTrackPointArray.cxx:313
 AliTrackPointArray.cxx:314
 AliTrackPointArray.cxx:315
 AliTrackPointArray.cxx:316
 AliTrackPointArray.cxx:317
 AliTrackPointArray.cxx:318
 AliTrackPointArray.cxx:319
 AliTrackPointArray.cxx:320
 AliTrackPointArray.cxx:321
 AliTrackPointArray.cxx:322
 AliTrackPointArray.cxx:323
 AliTrackPointArray.cxx:324
 AliTrackPointArray.cxx:325
 AliTrackPointArray.cxx:326
 AliTrackPointArray.cxx:327
 AliTrackPointArray.cxx:328
 AliTrackPointArray.cxx:329
 AliTrackPointArray.cxx:330
 AliTrackPointArray.cxx:331
 AliTrackPointArray.cxx:332
 AliTrackPointArray.cxx:333
 AliTrackPointArray.cxx:334
 AliTrackPointArray.cxx:335
 AliTrackPointArray.cxx:336
 AliTrackPointArray.cxx:337
 AliTrackPointArray.cxx:338
 AliTrackPointArray.cxx:339
 AliTrackPointArray.cxx:340
 AliTrackPointArray.cxx:341
 AliTrackPointArray.cxx:342
 AliTrackPointArray.cxx:343
 AliTrackPointArray.cxx:344
 AliTrackPointArray.cxx:345
 AliTrackPointArray.cxx:346
 AliTrackPointArray.cxx:347
 AliTrackPointArray.cxx:348
 AliTrackPointArray.cxx:349
 AliTrackPointArray.cxx:350
 AliTrackPointArray.cxx:351
 AliTrackPointArray.cxx:352
 AliTrackPointArray.cxx:353
 AliTrackPointArray.cxx:354
 AliTrackPointArray.cxx:355
 AliTrackPointArray.cxx:356
 AliTrackPointArray.cxx:357
 AliTrackPointArray.cxx:358
 AliTrackPointArray.cxx:359
 AliTrackPointArray.cxx:360
 AliTrackPointArray.cxx:361
 AliTrackPointArray.cxx:362
 AliTrackPointArray.cxx:363
 AliTrackPointArray.cxx:364
 AliTrackPointArray.cxx:365
 AliTrackPointArray.cxx:366
 AliTrackPointArray.cxx:367
 AliTrackPointArray.cxx:368
 AliTrackPointArray.cxx:369
 AliTrackPointArray.cxx:370
 AliTrackPointArray.cxx:371
 AliTrackPointArray.cxx:372
 AliTrackPointArray.cxx:373
 AliTrackPointArray.cxx:374
 AliTrackPointArray.cxx:375
 AliTrackPointArray.cxx:376
 AliTrackPointArray.cxx:377
 AliTrackPointArray.cxx:378
 AliTrackPointArray.cxx:379
 AliTrackPointArray.cxx:380
 AliTrackPointArray.cxx:381
 AliTrackPointArray.cxx:382
 AliTrackPointArray.cxx:383
 AliTrackPointArray.cxx:384
 AliTrackPointArray.cxx:385
 AliTrackPointArray.cxx:386
 AliTrackPointArray.cxx:387
 AliTrackPointArray.cxx:388
 AliTrackPointArray.cxx:389
 AliTrackPointArray.cxx:390
 AliTrackPointArray.cxx:391
 AliTrackPointArray.cxx:392
 AliTrackPointArray.cxx:393
 AliTrackPointArray.cxx:394
 AliTrackPointArray.cxx:395
 AliTrackPointArray.cxx:396
 AliTrackPointArray.cxx:397
 AliTrackPointArray.cxx:398
 AliTrackPointArray.cxx:399
 AliTrackPointArray.cxx:400
 AliTrackPointArray.cxx:401
 AliTrackPointArray.cxx:402
 AliTrackPointArray.cxx:403
 AliTrackPointArray.cxx:404
 AliTrackPointArray.cxx:405
 AliTrackPointArray.cxx:406
 AliTrackPointArray.cxx:407
 AliTrackPointArray.cxx:408
 AliTrackPointArray.cxx:409
 AliTrackPointArray.cxx:410
 AliTrackPointArray.cxx:411
 AliTrackPointArray.cxx:412
 AliTrackPointArray.cxx:413
 AliTrackPointArray.cxx:414
 AliTrackPointArray.cxx:415
 AliTrackPointArray.cxx:416
 AliTrackPointArray.cxx:417
 AliTrackPointArray.cxx:418
 AliTrackPointArray.cxx:419
 AliTrackPointArray.cxx:420
 AliTrackPointArray.cxx:421
 AliTrackPointArray.cxx:422
 AliTrackPointArray.cxx:423
 AliTrackPointArray.cxx:424
 AliTrackPointArray.cxx:425
 AliTrackPointArray.cxx:426
 AliTrackPointArray.cxx:427
 AliTrackPointArray.cxx:428
 AliTrackPointArray.cxx:429
 AliTrackPointArray.cxx:430
 AliTrackPointArray.cxx:431
 AliTrackPointArray.cxx:432
 AliTrackPointArray.cxx:433
 AliTrackPointArray.cxx:434
 AliTrackPointArray.cxx:435
 AliTrackPointArray.cxx:436
 AliTrackPointArray.cxx:437
 AliTrackPointArray.cxx:438
 AliTrackPointArray.cxx:439
 AliTrackPointArray.cxx:440
 AliTrackPointArray.cxx:441
 AliTrackPointArray.cxx:442
 AliTrackPointArray.cxx:443
 AliTrackPointArray.cxx:444
 AliTrackPointArray.cxx:445
 AliTrackPointArray.cxx:446
 AliTrackPointArray.cxx:447
 AliTrackPointArray.cxx:448
 AliTrackPointArray.cxx:449
 AliTrackPointArray.cxx:450
 AliTrackPointArray.cxx:451
 AliTrackPointArray.cxx:452
 AliTrackPointArray.cxx:453
 AliTrackPointArray.cxx:454
 AliTrackPointArray.cxx:455
 AliTrackPointArray.cxx:456
 AliTrackPointArray.cxx:457
 AliTrackPointArray.cxx:458
 AliTrackPointArray.cxx:459
 AliTrackPointArray.cxx:460
 AliTrackPointArray.cxx:461
 AliTrackPointArray.cxx:462
 AliTrackPointArray.cxx:463
 AliTrackPointArray.cxx:464
 AliTrackPointArray.cxx:465
 AliTrackPointArray.cxx:466
 AliTrackPointArray.cxx:467
 AliTrackPointArray.cxx:468
 AliTrackPointArray.cxx:469
 AliTrackPointArray.cxx:470
 AliTrackPointArray.cxx:471
 AliTrackPointArray.cxx:472
 AliTrackPointArray.cxx:473
 AliTrackPointArray.cxx:474
 AliTrackPointArray.cxx:475
 AliTrackPointArray.cxx:476
 AliTrackPointArray.cxx:477
 AliTrackPointArray.cxx:478
 AliTrackPointArray.cxx:479
 AliTrackPointArray.cxx:480
 AliTrackPointArray.cxx:481
 AliTrackPointArray.cxx:482
 AliTrackPointArray.cxx:483
 AliTrackPointArray.cxx:484
 AliTrackPointArray.cxx:485
 AliTrackPointArray.cxx:486
 AliTrackPointArray.cxx:487
 AliTrackPointArray.cxx:488
 AliTrackPointArray.cxx:489
 AliTrackPointArray.cxx:490
 AliTrackPointArray.cxx:491
 AliTrackPointArray.cxx:492
 AliTrackPointArray.cxx:493
 AliTrackPointArray.cxx:494
 AliTrackPointArray.cxx:495
 AliTrackPointArray.cxx:496
 AliTrackPointArray.cxx:497
 AliTrackPointArray.cxx:498
 AliTrackPointArray.cxx:499
 AliTrackPointArray.cxx:500
 AliTrackPointArray.cxx:501
 AliTrackPointArray.cxx:502
 AliTrackPointArray.cxx:503
 AliTrackPointArray.cxx:504
 AliTrackPointArray.cxx:505
 AliTrackPointArray.cxx:506
 AliTrackPointArray.cxx:507
 AliTrackPointArray.cxx:508
 AliTrackPointArray.cxx:509
 AliTrackPointArray.cxx:510
 AliTrackPointArray.cxx:511
 AliTrackPointArray.cxx:512
 AliTrackPointArray.cxx:513
 AliTrackPointArray.cxx:514
 AliTrackPointArray.cxx:515
 AliTrackPointArray.cxx:516
 AliTrackPointArray.cxx:517
 AliTrackPointArray.cxx:518
 AliTrackPointArray.cxx:519
 AliTrackPointArray.cxx:520
 AliTrackPointArray.cxx:521
 AliTrackPointArray.cxx:522
 AliTrackPointArray.cxx:523
 AliTrackPointArray.cxx:524
 AliTrackPointArray.cxx:525
 AliTrackPointArray.cxx:526
 AliTrackPointArray.cxx:527
 AliTrackPointArray.cxx:528
 AliTrackPointArray.cxx:529
 AliTrackPointArray.cxx:530
 AliTrackPointArray.cxx:531
 AliTrackPointArray.cxx:532
 AliTrackPointArray.cxx:533
 AliTrackPointArray.cxx:534
 AliTrackPointArray.cxx:535
 AliTrackPointArray.cxx:536
 AliTrackPointArray.cxx:537
 AliTrackPointArray.cxx:538
 AliTrackPointArray.cxx:539
 AliTrackPointArray.cxx:540
 AliTrackPointArray.cxx:541
 AliTrackPointArray.cxx:542
 AliTrackPointArray.cxx:543
 AliTrackPointArray.cxx:544
 AliTrackPointArray.cxx:545
 AliTrackPointArray.cxx:546
 AliTrackPointArray.cxx:547
 AliTrackPointArray.cxx:548
 AliTrackPointArray.cxx:549
 AliTrackPointArray.cxx:550
 AliTrackPointArray.cxx:551
 AliTrackPointArray.cxx:552
 AliTrackPointArray.cxx:553
 AliTrackPointArray.cxx:554
 AliTrackPointArray.cxx:555
 AliTrackPointArray.cxx:556
 AliTrackPointArray.cxx:557
 AliTrackPointArray.cxx:558
 AliTrackPointArray.cxx:559
 AliTrackPointArray.cxx:560
 AliTrackPointArray.cxx:561
 AliTrackPointArray.cxx:562
 AliTrackPointArray.cxx:563
 AliTrackPointArray.cxx:564
 AliTrackPointArray.cxx:565
 AliTrackPointArray.cxx:566
 AliTrackPointArray.cxx:567
 AliTrackPointArray.cxx:568
 AliTrackPointArray.cxx:569
 AliTrackPointArray.cxx:570
 AliTrackPointArray.cxx:571
 AliTrackPointArray.cxx:572
 AliTrackPointArray.cxx:573
 AliTrackPointArray.cxx:574
 AliTrackPointArray.cxx:575
 AliTrackPointArray.cxx:576
 AliTrackPointArray.cxx:577
 AliTrackPointArray.cxx:578
 AliTrackPointArray.cxx:579
 AliTrackPointArray.cxx:580
 AliTrackPointArray.cxx:581
 AliTrackPointArray.cxx:582
 AliTrackPointArray.cxx:583
 AliTrackPointArray.cxx:584
 AliTrackPointArray.cxx:585
 AliTrackPointArray.cxx:586
 AliTrackPointArray.cxx:587
 AliTrackPointArray.cxx:588
 AliTrackPointArray.cxx:589
 AliTrackPointArray.cxx:590
 AliTrackPointArray.cxx:591
 AliTrackPointArray.cxx:592
 AliTrackPointArray.cxx:593
 AliTrackPointArray.cxx:594
 AliTrackPointArray.cxx:595
 AliTrackPointArray.cxx:596
 AliTrackPointArray.cxx:597
 AliTrackPointArray.cxx:598
 AliTrackPointArray.cxx:599
 AliTrackPointArray.cxx:600
 AliTrackPointArray.cxx:601
 AliTrackPointArray.cxx:602
 AliTrackPointArray.cxx:603
 AliTrackPointArray.cxx:604
 AliTrackPointArray.cxx:605
 AliTrackPointArray.cxx:606
 AliTrackPointArray.cxx:607
 AliTrackPointArray.cxx:608
 AliTrackPointArray.cxx:609
 AliTrackPointArray.cxx:610
 AliTrackPointArray.cxx:611
 AliTrackPointArray.cxx:612
 AliTrackPointArray.cxx:613
 AliTrackPointArray.cxx:614
 AliTrackPointArray.cxx:615
 AliTrackPointArray.cxx:616
 AliTrackPointArray.cxx:617
 AliTrackPointArray.cxx:618
 AliTrackPointArray.cxx:619
 AliTrackPointArray.cxx:620
 AliTrackPointArray.cxx:621
 AliTrackPointArray.cxx:622
 AliTrackPointArray.cxx:623
 AliTrackPointArray.cxx:624
 AliTrackPointArray.cxx:625
 AliTrackPointArray.cxx:626
 AliTrackPointArray.cxx:627
 AliTrackPointArray.cxx:628
 AliTrackPointArray.cxx:629
 AliTrackPointArray.cxx:630
 AliTrackPointArray.cxx:631
 AliTrackPointArray.cxx:632
 AliTrackPointArray.cxx:633
 AliTrackPointArray.cxx:634
 AliTrackPointArray.cxx:635
 AliTrackPointArray.cxx:636
 AliTrackPointArray.cxx:637
 AliTrackPointArray.cxx:638
 AliTrackPointArray.cxx:639
 AliTrackPointArray.cxx:640
 AliTrackPointArray.cxx:641
 AliTrackPointArray.cxx:642
 AliTrackPointArray.cxx:643
 AliTrackPointArray.cxx:644
 AliTrackPointArray.cxx:645
 AliTrackPointArray.cxx:646
 AliTrackPointArray.cxx:647
 AliTrackPointArray.cxx:648
 AliTrackPointArray.cxx:649
 AliTrackPointArray.cxx:650
 AliTrackPointArray.cxx:651
 AliTrackPointArray.cxx:652
 AliTrackPointArray.cxx:653
 AliTrackPointArray.cxx:654
 AliTrackPointArray.cxx:655
 AliTrackPointArray.cxx:656
 AliTrackPointArray.cxx:657
 AliTrackPointArray.cxx:658
 AliTrackPointArray.cxx:659
 AliTrackPointArray.cxx:660
 AliTrackPointArray.cxx:661
 AliTrackPointArray.cxx:662
 AliTrackPointArray.cxx:663
 AliTrackPointArray.cxx:664
 AliTrackPointArray.cxx:665
 AliTrackPointArray.cxx:666
 AliTrackPointArray.cxx:667
 AliTrackPointArray.cxx:668
 AliTrackPointArray.cxx:669
 AliTrackPointArray.cxx:670
 AliTrackPointArray.cxx:671
 AliTrackPointArray.cxx:672
 AliTrackPointArray.cxx:673
 AliTrackPointArray.cxx:674
 AliTrackPointArray.cxx:675
 AliTrackPointArray.cxx:676
 AliTrackPointArray.cxx:677
 AliTrackPointArray.cxx:678
 AliTrackPointArray.cxx:679
 AliTrackPointArray.cxx:680
 AliTrackPointArray.cxx:681
 AliTrackPointArray.cxx:682
 AliTrackPointArray.cxx:683
 AliTrackPointArray.cxx:684
 AliTrackPointArray.cxx:685
 AliTrackPointArray.cxx:686
 AliTrackPointArray.cxx:687
 AliTrackPointArray.cxx:688
 AliTrackPointArray.cxx:689
 AliTrackPointArray.cxx:690
 AliTrackPointArray.cxx:691
 AliTrackPointArray.cxx:692
 AliTrackPointArray.cxx:693
 AliTrackPointArray.cxx:694
 AliTrackPointArray.cxx:695
 AliTrackPointArray.cxx:696
 AliTrackPointArray.cxx:697
 AliTrackPointArray.cxx:698