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

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//  Time Projection Chamber  track hits object                                //
//
//  Origin: Marian Ivanov , GSI Darmstadt
//
// AliTPCTrackHitsV2
//   Container for Track Hits - based on standard TClonesArray -
//   fArray of AliTPCTrackHitsParamV2 
//   In AliTPCTrackHitsParamV2 - parameterization of the track segment  is stored 
//   for each of the track segment - relative position ( distance between  hits) and
//   charge of the hits is stored - comparing to classical TClonesArray of AliTPChit -
//   comperssion factor of 5-7 (depending on the required precision) -
//   In future release AliTPCTrackHitsV2 - will replace old AliTPCTrackHits - which were not
//   based on standard ROOT containers
//   Basic function:
//      // during building Container
//   AddHitKartez(Int_t volumeID, Int_t trackID, Double_t x, Double_t y, Double_t z,Int_t q)
//   void SetHitPrecision(Double_t prec) {fPrecision=prec;}
//   void SetStepPrecision(Double_t prec) {fStep=prec;}   
//   Bool_t  FlushHitStack(Bool_t force=kTRUE);    
//      //at the end necessary to have Container in consistent state
//    
//     // looping over Container
//   Bool_t  First(), Bool_t Next() - iterators - return status of the operation
//   AliTPChit * GetHit(); - return current hit   


//Begin_Html
/*
<img src="gif/AliTPCTrackHitsV2.gif">
*/
//End_Html
//                                                                           //
//                                                                          //
///////////////////////////////////////////////////////////////////////////////
//

#include <TClonesArray.h>
#include <TMath.h>

#include "AliTPCTrackHitsV2.h"
#include "AliTPC.h"



ClassImp(AliTPCTrackHitsV2) 
ClassImp(AliTrackHitsParamV2)  

  //
Int_t AliTrackHitsParamV2::fgCounter1 =0;
Int_t AliTrackHitsParamV2::fgCounter2 =0;
//
Int_t AliTPCTrackHitsV2::fgCounter1 =0;
Int_t AliTPCTrackHitsV2::fgCounter2 =0;
//
const Double_t AliTPCTrackHitsV2::fgkPrecision=1e-6;  //precision 
const Double_t AliTPCTrackHitsV2::fgkPrecision2=1e-20;  //precision
const Double_t AliTPCTrackHitsV2::fgkTimePrecision=20.e-9;  //hit time precision 




class AliTPCTempHitInfoV2 {
public:
  AliTPCTempHitInfoV2();   
  void     SetHit(Double_t r, Double_t z, Double_t fi, Int_t q, Float_t time);
  UInt_t   GetStackIndex() const {return fStackIndex;}
  void     SetStackIndex(UInt_t i) {fStackIndex=i;}
  UInt_t   GetParamIndex() const {return fParamIndex;}
  void     SetParamIndex(UInt_t i) {fParamIndex=i;}
  Float_t  GetTimeStack(Int_t i) const {return fTimeStack[i];}
  const Float_t* GetTimeStackP(Int_t i) const {return &fTimeStack[i];}
  UInt_t   GetQStack(Int_t i) const {return fQStack[i];}
  const UInt_t*  GetQStackP(Int_t i) const {return &fQStack[i];}
  Double_t * GetPosition(Int_t index){return &fPositionStack[index*3];}
  Double_t GetOldR() const {return fOldR;}
  void     SetOldR(Double_t r) {fOldR=r;}


  AliTrackHitsParamV2 * GetParam() const {return fParam;}
  void  SetParam(AliTrackHitsParamV2 * p) {fParam=p;}
  void  UpdateParam(Double_t maxdelta); //recal
  void  NewParam(Double_t r, Double_t z, Double_t fi, Int_t q, Float_t time);
  enum    {kStackSize = 10000};

protected:
  AliTPCTempHitInfoV2(const AliTPCTempHitInfoV2 &hit);
  AliTPCTempHitInfoV2& operator = (const AliTPCTempHitInfoV2 &hit);
  void   Fit2(Double_t fSumY, Double_t fSumYX, Double_t fSumYX2,
	    Double_t fSumX,  Double_t fSumX2, Double_t fSumX3, 
	    Double_t fSumX4, Int_t n,
	      Double_t &a, Double_t &b, Double_t &c);
  void  Fit(AliTrackHitsParamV2 * param);
  Double_t fSumDr;    // Sum of Dr
  Double_t fSumDr2;   // Square of sum of Dr
  Double_t fSumDr3;   // Cube of sum of Dr
  Double_t fSumDr4;   // Fourth power of sum of Dr
  Double_t fSumDFi;  //  Sum of DFi
  Double_t fSumDFiDr; //  Sum of DFiDr
  Double_t fSumDFiDr2;//  Sum of square of DFiDr
  Double_t fSumDZ;     // Sum of DZ
  Double_t fSumDZDr;  //  Sum of DZDr
  Double_t fSumDZDr2;  // Sum of square of DZDr
  Double_t fOldR;     //previos r
  Double_t fPositionStack[3*kStackSize];  //position stack 
  UInt_t   fQStack[kStackSize];           //Q stack
  Float_t  fTimeStack[kStackSize];        //time stack
  UInt_t fStackIndex;   //current stack index 
  //  UInt_t fInfoIndex;    //current track info index
  UInt_t fParamIndex;   //current track parameters index
  //  AliTrackHitsInfo  * fInfo; //current track info
  AliTrackHitsParamV2 * fParam; //current track param
};


AliTPCTempHitInfoV2::AliTPCTempHitInfoV2()
  :fSumDr(0.),
   fSumDr2(0.),
   fSumDr3(0.),
   fSumDr4(0.),
   fSumDFi(0.),
   fSumDFiDr(0.),
   fSumDFiDr2(0.),
   fSumDZ(0.),
   fSumDZDr(0.),
   fSumDZDr2(0.),
   fOldR(0.),
   fStackIndex(0),
   fParamIndex(0),
   fParam(0)
{
  //
  // Standard constructor
  // set to default value
  //
  fSumDr=fSumDr2=fSumDr3=fSumDr4=
    fSumDFi=fSumDFiDr=fSumDFiDr2=
    fSumDZ=fSumDZDr=fSumDZDr2=0;  
  fStackIndex = 0;
  //  fInfoIndex  = 0;
  fParamIndex = 0;
  for(Int_t i=0;i<3*kStackSize;i++) fPositionStack[i]=0.;
  for(Int_t i=0;i<kStackSize;i++){
    fQStack[i]=0;
    fTimeStack[i]=0.;
  }
}


void AliTPCTempHitInfoV2::NewParam(Double_t r, Double_t z, Double_t fi, Int_t q, Float_t time)
{
  //
  //reset stack and sum parameters
  //store line initial point
  //
  fSumDr=fSumDr2=fSumDr3=fSumDr4=
    fSumDFi=fSumDFiDr=fSumDFiDr2=
    fSumDZ=fSumDZDr=fSumDZDr2=0;  
  fStackIndex=0;
  fParam->SetR(r);
  fOldR = r;
  fParam->SetZ(z);
  fParam->SetFi(fi);
  fParam->SetAn(0.);
  fParam->SetAd(0.);
  fParam->SetTheta(0.);
  fParam->SetThetaD(0.);
  SetHit(r,z,fi,q,time);
}

void AliTPCTempHitInfoV2::SetHit(Double_t r, Double_t z, Double_t fi, Int_t q, Float_t time)
{
  //
  //add hit to the stack
  //recalculate new estimete of line parameters
  Double_t *f = GetPosition(fStackIndex);  
  f[0] = r;
  f[1] = z;
  f[2] = fi;
  fQStack[fStackIndex]=q;
  fTimeStack[fStackIndex]=time;
  if (fStackIndex==0) return;
  Double_t dr  = (r-fParam->GetR());
  if (TMath::Abs(dr)<AliTPCTrackHitsV2::GetKPrecision()) dr =AliTPCTrackHitsV2::GetKPrecision();
  Double_t dfi = fi-fParam->GetFi();
  Double_t dz  = z -fParam->GetZ(); 
  Double_t dr2 =dr*dr;
  Double_t dr3 =dr2*dr;
  Double_t dr4 =dr3*dr;
  fSumDr +=dr;
  fSumDr2+=dr2;
  fSumDr3+=dr3;
  fSumDr4+=dr4;
  fSumDFi +=dfi;
  fSumDFiDr+=dfi*dr;
  fSumDFiDr2+=dfi*dr2;
  fSumDZ +=dz;
  fSumDZDr+=dz*dr;
  fSumDZDr2+=dz*dr2;
  
  //update fit parameters
  //
  Double_t det = fSumDr2*fSumDr4-fSumDr3*fSumDr3;
  if (TMath::Abs(det)<AliTPCTrackHitsV2::GetKPrecision2()) return;
  if ( ( fStackIndex>1 )  ){
    fParam->SetAn((fSumDr4*fSumDFiDr-fSumDr3*fSumDFiDr2)/det);
    fParam->SetAd((fSumDr2*fSumDFiDr2-fSumDr3*fSumDFiDr)/det);
  }
  else
    fParam->SetAn(fSumDFiDr/fSumDr2);
  if ( ( fStackIndex>1 )  ){
    fParam->SetTheta((fSumDr4*fSumDZDr-fSumDr3*fSumDZDr2)/det);
    fParam->SetThetaD((fSumDr2*fSumDZDr2-fSumDr3*fSumDZDr)/det);
  }
  else
    fParam->SetTheta(fSumDZDr/fSumDr2); 
}


void   AliTPCTempHitInfoV2::UpdateParam(Double_t maxdelta)
{
  //
  // recalc parameters not fixing origin point
  //
  if (fStackIndex>5){ 
    Double_t a,b,c;
    a=b=c=0;
    Fit2(fSumDFi, fSumDFiDr, fSumDFiDr2, fSumDr,fSumDr2,fSumDr3,fSumDr4,
	 fStackIndex, a,b,c);
    if (TMath::Abs(a)<maxdelta){
      fParam->SetFi(fParam->GetFi()+a/fParam->GetR());    
      fParam->SetAn(b);    
      fParam->SetAd(c);                  
    }
    Fit2(fSumDZ, fSumDZDr, fSumDZDr2, fSumDr,fSumDr2,fSumDr3,fSumDr4,
	 fStackIndex, a,b,c) ;   
    if (TMath::Abs(a)<maxdelta){
      fParam->SetZ(fParam->GetZ()+a);    
      fParam->SetTheta(b);    
      fParam->SetThetaD(c);   
    }                         
  }
      
}

void   AliTPCTempHitInfoV2::Fit2(Double_t fSumY, Double_t fSumYX, Double_t fSumYX2,
	    Double_t fSumX,  Double_t fSumX2, Double_t fSumX3, 
	    Double_t fSumX4, Int_t n,
	    Double_t &a, Double_t &b, Double_t &c)
{
  //
  // fit of second order
  //
  Double_t det = 
    n* (fSumX2*fSumX4-fSumX3*fSumX3) -
    fSumX*      (fSumX*fSumX4-fSumX3*fSumX2)+
    fSumX2*     (fSumX*fSumX3-fSumX2*fSumX2);
    
  if (TMath::Abs(det)> AliTPCTrackHitsV2::GetKPrecision()) {    
    a = 
      (fSumY * (fSumX2*fSumX4-fSumX3*fSumX3)-
       fSumX *(fSumYX*fSumX4-fSumYX2*fSumX3)+
       fSumX2*(fSumYX*fSumX3-fSumYX2*fSumX2))/det; 
    b=
      (n*(fSumYX*fSumX4-fSumX3*fSumYX2)-
      fSumY*(fSumX*fSumX4-fSumX3*fSumX2)+
      fSumX2*(fSumX*fSumYX2-fSumYX*fSumX2))/det;
    c=
      (n*(fSumX2*fSumYX2-fSumYX*fSumX3)-
       fSumX*(fSumX*fSumYX2-fSumYX*fSumX2)+
       fSumY*(fSumX*fSumX3-fSumX2*fSumX2))/det;  
  }
}

void   AliTPCTempHitInfoV2::Fit(AliTrackHitsParamV2 * param)
{
  //
  // fit fixing first and the last point 
  // result stored in new param
  //
  Double_t dx2  = (GetPosition(fStackIndex))[0]-fParam->GetR();
  Double_t det = fSumDr4+dx2*fSumDr2-2*dx2*fSumDr3;
  if ( (TMath::Abs(det)> AliTPCTrackHitsV2::GetKPrecision()) &&
       ((TMath::Abs(dx2)> AliTPCTrackHitsV2::GetKPrecision()))){
    Double_t dfi2 = (GetPosition(fStackIndex))[1]-fParam->GetFi();
    param->SetAd((fSumDFiDr2+dfi2*fSumDr-dx2*fSumDFiDr-dfi2*fSumDr3/dx2)/det);
    param->SetAn((dfi2-param->GetAd()*dx2*dx2)/dx2);
    
    Double_t dz2 = (GetPosition(fStackIndex))[1]-fParam->GetZ();
    param->SetTheta((fSumDZDr2+dz2*fSumDr-dx2*fSumDZDr-dz2*fSumDr3/dx2)/det);
    param->SetTheta((dz2-param->GetAd()*dx2*dx2)/dx2);
  }
  
}

AliTrackHitsParamV2::AliTrackHitsParamV2():TObject(),
   fTrackID(0), 
   fVolumeID(0),
   fR(0.),  
   fZ(0.),  
   fFi(0.), 
   fAn(0.), 
   fAd(0.), 
   fTheta(0.), 
   fThetaD(0.), 
   fNHits(0), 
   fHitDistance(0), 
   fCharge(0),
   fTime(0)
{
  //
  // default constructor
  //
  fgCounter1++;
  fgCounter2++;
}

AliTrackHitsParamV2::~AliTrackHitsParamV2()
{
  //
  // Standard destructor
  //
  fgCounter1--;
  if (fHitDistance) {
    delete[]fHitDistance;  
    fHitDistance=0;
  }
  if (fCharge){
    delete[]fCharge;  
    fCharge =0;
  }
  if (fTime){
    delete[]fTime;  
    fTime =0;
  }
}

Float_t AliTrackHitsParamV2::Eta() const
{
  Float_t ctg = fZ / fR;
  Float_t eta = -TMath::Log(TMath::Hypot(1,ctg)-TMath::Abs(ctg));
  if(ctg < 0) eta = -eta;
  return eta;
}


AliTPCTrackHitsV2::AliTPCTrackHitsV2():TObject(),
  fArray(0),  
  fSize(0),           
  fPrecision(0.),  
  fStep(0.),       
  fMaxDistance(0),   
  fNVolumes(0),        
  fVolumes(0),   
  fTempInfo(0), 
  fCurrentHit(0),  
  fHit(0)  
{
  //
  //default constructor
  //
  const Float_t kHitPrecision=0.002; //default precision for hit position in cm
  const Float_t kStep =0.003;  //30 mum step 
  const UShort_t kMaxDistance =100;  //maximum distance 100  

  fPrecision=kHitPrecision; //precision in cm
  fStep = kStep; //step size
  fMaxDistance = kMaxDistance; //maximum distance

  //fTrackHitsInfo = new AliObjectArray("AliTrackHitsInfo"); 
  //fTrackHitsParam = new AliObjectArray("AliTrackHitsParamV2");
  //fHitsPosAndQ = new TArrayOfArrayVStack("AliHitInfo");
  fArray  = new TClonesArray("AliTrackHitsParamV2");
  fCurrentHit = new AliTPCCurrentHitV2;
  fgCounter1++;
  fgCounter2++;

} 

AliTPCTrackHitsV2::~AliTPCTrackHitsV2()
{
  //
  //default destructor
  //
  //  if (fTrackHitsInfo) delete fTrackHitsInfo;
  if (fArray) {
    delete fArray;
    fArray =0;
  }
  //if (fHitsPosAndQ) delete fHitsPosAndQ;
  if (fCurrentHit) delete fCurrentHit;
  if (fTempInfo) delete fTempInfo;
  if (fVolumes) {
    delete [] fVolumes;
    fVolumes =0;
    fNVolumes=0;
  }
  if (fHit){
    delete fHit;
    fHit=0;
  }
  fgCounter1--;
}

void AliTPCTrackHitsV2::Clear(Option_t * /*option*/)
{
  //
  // clear object  
  //
  fSize = 0;
  if (fArray){
    for (Int_t i=0;i<fArray->GetEntriesFast();i++){
      AliTrackHitsParamV2 * par = (AliTrackHitsParamV2 *)fArray->UncheckedAt(i);
      par->~AliTrackHitsParamV2();  // delete object
    }
    fArray->Clear();  
  }
  if (fTempInfo){
    delete fTempInfo; 
    delete fHit;
    fHit =0;
    fTempInfo =0;
  } 
  if (fVolumes){
    delete [] fVolumes;
    fVolumes=0;
    fNVolumes=0;
  }
}


void AliTPCTrackHitsV2::AddHitKartez(Int_t volumeID, Int_t trackID, Double_t x, 
	      Double_t y, Double_t z,Int_t q, Float_t time)
{
  //
  // add hit to the container - it add hit at the end - input in global coordinata
  //
  Double_t r = TMath::Sqrt(x*x+y*y);
  Double_t fi = TMath::ACos(x/r);
  if (y<0) fi*=-1.;
    AddHit(volumeID,trackID,r,z,fi,q,time);
}


void AliTPCTrackHitsV2::AddHit(Int_t volumeID, Int_t trackID, 
			     Double_t r, Double_t z, Double_t fi, Int_t q, Float_t time)
{
  //
  // Adding one hit
  //
  fSize++;
  Bool_t diff=kFALSE;
  if (!fTempInfo) { //initialisation of track  - initialisation of parameters
    fTempInfo = new AliTPCTempHitInfoV2;
    fTempInfo->SetParam(new((*fArray)[0]) AliTrackHitsParamV2);
    fTempInfo->GetParam()->SetVolumeID(volumeID);
    fTempInfo->GetParam()->SetTrackID(trackID);
    AddVolume(volumeID);
    //
    fTempInfo->SetParamIndex(0);
    fTempInfo->NewParam(r,z,fi,q,time);
    return;
  }
    
  // if new volume or new trackID  
  if ( (volumeID!=fTempInfo->GetParam()->GetVolumeID()) || 
       (trackID!=fTempInfo->GetParam()->GetTrackID())){
    if (volumeID!=fTempInfo->GetParam()->GetVolumeID()) AddVolume(volumeID);
    diff=kTRUE;
    FlushHitStack(kTRUE);        

    fTempInfo->SetParamIndex(fTempInfo->GetParamIndex()+1);   
    fTempInfo->SetParam(new((*fArray)[fTempInfo->GetParamIndex()]) AliTrackHitsParamV2);   
    fTempInfo->GetParam()->SetVolumeID(volumeID);
    fTempInfo->GetParam()->SetTrackID(trackID);   
    fTempInfo->NewParam(r,z,fi,q,time);
    return;
  }
     
  //calculate current fit precission to next point
  AliTrackHitsParamV2 &param = *(fTempInfo->GetParam());
  Double_t dd=0;
  Double_t dl=0;
  Double_t ratio=0;
  Double_t dr,dz,dfi,ddz,ddfi;
  Double_t drhit,ddl;
  dr=dz=dfi=ddz=ddfi=0;
  drhit = r-fTempInfo->GetOldR();
  { 
    //Double_t dfi2 = param.fAn+2*param.fAd*(r-param.fR); 
    Double_t dfi2 = param.GetAn();
    dfi2*=dfi2*fTempInfo->GetOldR()*fTempInfo->GetOldR();
    //Double_t ddz2 =  param.fTheta+2*param.fThetaD*(r-param.fR);
    Double_t ddz2 =  param.GetTheta();
    ddz2*=ddz2;
    ratio = TMath::Sqrt(1.+ dfi2+ ddz2);  
  }
  //
  //  dl = fStep * Short_t(TMath::Nint(drhit*ratio/fStep));   // MI change - range check
  dl = drhit*ratio/fStep;
  if (TMath::Abs(dl)>32765) dl =0;
  dl = fStep * Short_t(TMath::Nint(dl));
  //
  ddl = dl - drhit*ratio; 
  fTempInfo->SetOldR(fTempInfo->GetOldR()+dl/ratio); 

  if (fTempInfo->GetStackIndex()>2){     
    dr = r-param.GetR();        
    dz =  z-param.GetZ();  
    dfi = fi-param.GetFi();
    ddz = dr*param.GetTheta()+dr*dr*param.GetThetaD()-dz;
    ddfi= dr*param.GetAn()+dr*dr*param.GetAd()-dfi;    
    dd  = TMath::Sqrt(ddz*ddz+r*r*ddfi*ddfi+ddl*ddl); 
    //
  }        
  //safety factor 1.25
  if ( ( (dd*1.25>fPrecision) ) ||  
       (fTempInfo->GetStackIndex()+4>fTempInfo->kStackSize) || 
       (TMath::Abs(dl/fStep)>fMaxDistance)  ) 
    diff=kTRUE;
  else{  // if precision OK
    fTempInfo->SetStackIndex(fTempInfo->GetStackIndex()+1);   
    fTempInfo->SetHit(r,z,fi,q,time);
    return;
  }  


  //if parameter changed 
  if (FlushHitStack(kFALSE)){   //if full buffer flushed
    fTempInfo->SetParamIndex(fTempInfo->GetParamIndex()+1);
    fTempInfo->SetParam(new((*fArray)[fTempInfo->GetParamIndex()]) AliTrackHitsParamV2);   
    fTempInfo->GetParam()->SetVolumeID(volumeID);
    fTempInfo->GetParam()->SetTrackID(trackID);   
    fTempInfo->NewParam(r,z,fi,q,time);
  }
  else{
    fTempInfo->SetStackIndex(fTempInfo->GetStackIndex()+1);
    fTempInfo->SetHit(r,z,fi,q,time);              
  }
}   

Bool_t AliTPCTrackHitsV2::FlushHitStack(Bool_t force)
{
  //
  // write fHitsPosAndQ information from the stack to te arrays
  //
  if (!fTempInfo) return kFALSE; 
 
  AliTrackHitsParamV2 & param = *(fTempInfo->GetParam());
  //recalculate track parameter not fixing first point
  fTempInfo->UpdateParam(fStep/4.);
  //fTempInfo->Fit(fTempInfo->fParam);  //- fixing the first and the last point

  Double_t oldr = param.GetR(); 
  UInt_t i;
  Double_t dd;
  param.SetNHits(fTempInfo->GetStackIndex()+1);
  //  if (param.fHitDistance) delete []param.fHitDistance;
  //  if (param.fCharge) delete []param.fCharge;
  //  if (param.fTime) delete []param.fTime;
  param.SetHitDistance(param.GetNHits());
  param.SetCharge(param.GetNHits());
  param.SetTime(param.GetNHits());

   
  for (i=0; i <= fTempInfo->GetStackIndex(); i++){
    Double_t * position = fTempInfo->GetPosition(i);
    Double_t   dr = position[0]-oldr;
    Double_t   ratio; 
    { 
      //Double_t dfi2 = param.fAn+2*param.fAd*(position[0]-param.fR);
      Double_t dfi2 = param.GetAn();
      dfi2*=dfi2*oldr*oldr;
      //Double_t ddz2 =  param.fTheta+2*param.fThetaD*(position[0]-param.fR);
      Double_t ddz2 =  param.GetTheta();
      ddz2*=ddz2;
      ratio = TMath::Sqrt(1.+ dfi2+ ddz2);  
    }

    //    Double_t dl = fStep*(Short_t)TMath::Nint(dr*ratio/fStep);   //MI change 
    Double_t dl = dr*ratio/fStep;
    if (TMath::Abs(dl)>32765) dl =0;
    dl = fStep * Short_t(TMath::Nint(dl));

    dr = dl/ratio; 
    oldr+=dr;
    //calculate precission
    AliTrackHitsParamV2 &paraml = *(fTempInfo->GetParam());    
    //real deltas
    Double_t dr1=  position[0]-paraml.GetR();
    Double_t dz =  position[1]-paraml.GetZ();
    Double_t dfi = position[2]-paraml.GetFi();
    //extrapolated deltas
    Double_t dr2 = oldr-paraml.GetR(); 
    Double_t ddr = dr2-dr1;
    Double_t ddz = dr2*paraml.GetTheta()+dr2*dr2*paraml.GetThetaD()-dz;
    Double_t ddfi= dr2*paraml.GetAn()+dr2*dr2*paraml.GetAd()-dfi;    
    dd = TMath::Sqrt(ddz*ddz+oldr*oldr*ddfi*ddfi+ddr*ddr); 


    if ( (dd>fPrecision) ){ 
      //if ( (dd<0) ){ 
      if (i==0){
	paraml.SetAn(0);
	paraml.SetAd(0);
	paraml.SetTheta(0);
        paraml.SetThetaD(0);
	Double_t ddz1 = dr2*paraml.GetTheta()+dr2*dr2*paraml.GetThetaD()-dz;
	Double_t ddfi1= dr2*paraml.GetAn()+dr2*dr2*paraml.GetAd()-dfi;    
	dl = 0;
	dd = TMath::Sqrt(ddz1*ddz1+oldr*oldr*ddfi1*ddfi1+ddr*ddr); 
      }
      else
     	break;
    }

    paraml.HitDistance(i)= Short_t(TMath::Nint(dl/fStep));
    paraml.Charge(i)= Short_t(fTempInfo->GetQStack(i));
    paraml.Time(i)= Short_t(fTempInfo->GetTimeStack(i)/AliTPCTrackHitsV2::fgkTimePrecision);
  }    
  
  if (i<=fTempInfo->GetStackIndex()){ //if previous iteration not succesfull 
    //    Short_t * charge = new Short_t[i];
    //    Short_t * time = new Short_t[i];
    //    Short_t * hitDistance= new Short_t[i];
    //    memcpy(charge, param.fCharge,sizeof(Short_t)*i);
    //    memcpy(time, param.fTime,sizeof(Short_t)*i);
    //    memcpy(hitDistance, param.fHitDistance,sizeof(Short_t)*i);
    //    delete [] param.fCharge;
    //    delete [] param.fTime;
    //    delete [] param.fHitDistance;
    param.SetNHits(i);
    param.ResizeCharge(i);
    param.ResizeTime(i);
    param.ResizeHitDistance(i);
    //
    Int_t volumeID = fTempInfo->GetParam()->GetVolumeID();
    Int_t  trackID =fTempInfo->GetParam()->GetTrackID();   
    fTempInfo->SetParamIndex(fTempInfo->GetParamIndex()+1);
    fTempInfo->SetParam(new((*fArray)[fTempInfo->GetParamIndex()]) AliTrackHitsParamV2); 
    Double_t * p = fTempInfo->GetPosition(i);
    UInt_t index2 = fTempInfo->GetStackIndex();
    fTempInfo->NewParam(p[0],p[1],p[2],fTempInfo->GetQStack(i),fTempInfo->GetTimeStack(i));
    fTempInfo->GetParam()->SetVolumeID(volumeID);
    fTempInfo->GetParam()->SetTrackID(trackID);
    if (i+1<=index2) FlushHitStack2(i+1,index2);

    if (force) return      FlushHitStack(kTRUE);      
    return kFALSE;
  }  
  return kTRUE;
} 
 

void AliTPCTrackHitsV2::FlushHitStack2(Int_t index1, Int_t index2)
{
  //
  // second iteration flush stack
  // call only for hits where first iteration were not succesfully interpolated
  //
  Double_t * positionstack = new Double_t[3*(index2-index1+1)];
  UInt_t   * qstack        = new UInt_t[index2-index1+1];
  Float_t  * timestack     = new Float_t[index2-index1+1];
  memcpy(positionstack, fTempInfo->GetPosition(index1),
	 (3*(index2-index1+1))*sizeof(Double_t));
  memcpy(qstack, fTempInfo->GetQStackP(index1),(index2-index1+1)*sizeof(UInt_t));
  memcpy(timestack, fTempInfo->GetTimeStackP(index1),(index2-index1+1)*sizeof(Float_t));
  Double_t *p = positionstack;
  for (Int_t j=0; j<=index2-index1;j++){ 
    fTempInfo->SetStackIndex(fTempInfo->GetStackIndex()+1);
    fTempInfo->SetHit(p[3*j+0],p[3*j+1],p[3*j+2],qstack[j],timestack[j]);
  }  
  delete []positionstack;
  delete []qstack;
  delete []timestack;
}


void AliTPCTrackHitsV2::AddVolume(Int_t volume)
{
  //
  //add volumes to tthe list of volumes
  //
  Int_t * volumes = new Int_t[fNVolumes+1];
  if (fVolumes) memcpy(volumes,fVolumes,(fNVolumes)*sizeof(Int_t));
  volumes[fNVolumes]=volume;
  fNVolumes++;
  if (fVolumes) delete []fVolumes;
  fVolumes = volumes;  
}


Bool_t AliTPCTrackHitsV2::First()
{
  //
  //set Current hit for the first hit
  //

  if (fArray->GetSize()<=0) {
    fCurrentHit->SetStatus(kFALSE);
    return kFALSE;
  }

  AliTrackHitsParamV2 *param = (AliTrackHitsParamV2 *)fArray->At(0);
  if (!fHit) fHit = new AliTPChit;
  if (!(param) ) {
    fCurrentHit->SetStatus(kFALSE);
    return kFALSE;
  }
  //
  fCurrentHit->SetParamIndex(0);
  fCurrentHit->SetStackIndex(0);
  //
  //
  ((AliTPChit*)fHit)->fSector = param->GetVolumeID();
  ((AliTPChit*)fHit)->SetTrack(param->GetTrackID());
  ((AliTPChit*)fHit)->SetX(param->GetR()*TMath::Cos(param->GetFi()));
  ((AliTPChit*)fHit)->SetY(param->GetR()*TMath::Sin(param->GetFi()));
  ((AliTPChit*)fHit)->SetZ(param->GetZ()); 
  ((AliTPChit*)fHit)->fQ = param->Charge(0);     
  ((AliTPChit*)fHit)->fTime = (Float_t)(param->Time(0)*AliTPCTrackHitsV2::fgkTimePrecision);     
  /*
    fCurrentHit->fHit.fSector = param->fVolumeID;
    fCurrentHit->fHit.SetTrack(param->fTrackID);
    fCurrentHit->fHit.SetX(param->fR*TMath::Cos(param->fFi));
    fCurrentHit->fHit.SetY(param->fR*TMath::Sin(param->fFi));
    fCurrentHit->fHit.SetZ(param->fZ); 
    fCurrentHit->fHit.fQ = param->fCharge[0];   
    fCurrentHit->fHit.fTime = (Float_t)(param->fTime[0]*AliTPCTrackHitsV2::fgkTimePrecision);   
  */
  fCurrentHit->SetR(param->GetR());
  
  fCurrentHit->SetStatus(kTRUE);
  return fCurrentHit->GetStatus();
}

Bool_t AliTPCTrackHitsV2::Next()
{
  //
  // Hit iterator  
  //
  if (!(fCurrentHit->GetStatus())) 
    return kFALSE;

  fCurrentHit->SetStackIndex(fCurrentHit->GetStackIndex()+1);

  AliTrackHitsParamV2 *param =  (AliTrackHitsParamV2 *)fArray->At(fCurrentHit->GetParamIndex());
  if (fCurrentHit->GetStackIndex()>=param->GetNHits()){
    fCurrentHit->SetParamIndex(fCurrentHit->GetParamIndex()+1);
    if (fCurrentHit->GetParamIndex()>=fArray->GetEntriesFast()){
      fCurrentHit->SetStatus(kFALSE);
      return kFALSE;
    }
    param =  (AliTrackHitsParamV2 *)fArray->At(fCurrentHit->GetParamIndex());
    fCurrentHit->SetStackIndex(0); 
    fCurrentHit->SetR(param->GetR());
  }



  Double_t ratio;
  { 
    //    Double_t dfi2 = param->fAn+2*param->fAd*(fCurrentHit->fR-param->fR);
    Double_t dfi2 = param->GetAn();
    dfi2*=dfi2*fCurrentHit->GetR()*fCurrentHit->GetR();
    //    Double_t ddz2 = param->fTheta+2*param->fThetaD*(fCurrentHit->fR-param->fR);
    Double_t ddz2 =  param->GetTheta();
    ddz2*=ddz2;
    ratio = TMath::Sqrt(1.+ dfi2+ ddz2);  
  }

  fCurrentHit->SetR(fCurrentHit->GetR()+fStep*param->HitDistance(fCurrentHit->GetStackIndex())/ratio);

  Double_t dR = fCurrentHit->GetR() - param->GetR();
  Double_t fi = param->GetFi() + (param->GetAn()*dR+param->GetAd()*dR*dR);
  Double_t z  = param->GetZ() + (param->GetTheta()*dR+param->GetThetaD()*dR*dR);
  /*
  fCurrentHit->fHit.fQ = param->fCharge[fCurrentHit->fStackIndex];  
  fCurrentHit->fHit.fTime = (Float_t)(param->fTime[fCurrentHit->fStackIndex]*AliTPCTrackHitsV2::fgkTimePrecision);  
  fCurrentHit->fHit.SetX(fCurrentHit->fR*TMath::Cos(fi));
  fCurrentHit->fHit.SetY(fCurrentHit->fR*TMath::Sin(fi));
  fCurrentHit->fHit.SetZ(z);   
  fCurrentHit->fHit.fSector = param->fVolumeID;
  fCurrentHit->fHit.SetTrack(param->fTrackID);
  */
  ((AliTPChit*)fHit)->fQ = param->Charge(fCurrentHit->GetStackIndex());  
  ((AliTPChit*)fHit)->fTime = (Float_t)(param->Time(fCurrentHit->GetStackIndex())*AliTPCTrackHitsV2::fgkTimePrecision);  
  ((AliTPChit*)fHit)->SetX(fCurrentHit->GetR()*TMath::Cos(fi));
  ((AliTPChit*)fHit)->SetY(fCurrentHit->GetR()*TMath::Sin(fi));
  ((AliTPChit*)fHit)->SetZ(z);   
  ((AliTPChit*)fHit)->fSector = param->GetVolumeID();
  ((AliTPChit*)fHit)->SetTrack(param->GetTrackID());

  return kTRUE;
}
  
AliHit * AliTPCTrackHitsV2::GetHit() const
{
  //
  // Return one hit
  //
   return (fCurrentHit->GetStatus())? fHit:0;
  //return &fCurrentHit->fHit;

} 
 
AliTrackHitsParamV2 * AliTPCTrackHitsV2::GetParam()
{
  //
  // Return current parameters
  //
  return (fCurrentHit->GetStatus())? 
    (AliTrackHitsParamV2 *)fArray->At(fCurrentHit->GetParamIndex()):0;
}

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