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




//-----------------------------------------------------------------
//
//           Implementation of the TPC seed class
//        This class is used by the AliTPCtracker class
//      Origin: Marian Ivanov, CERN, Marian.Ivanov@cern.ch
//-----------------------------------------------------------------
#include <TVectorF.h>
#include "TClonesArray.h"
#include "TGraphErrors.h"
#include "AliTPCseed.h"
#include "AliTPCReconstructor.h"
#include "AliTPCClusterParam.h"
#include "AliTPCCalPad.h"
#include "AliTPCCalROC.h"
#include "AliTPCcalibDB.h"
#include "AliTPCParam.h"
#include "AliMathBase.h"
#include "AliTPCTransform.h"
#include "AliSplineFit.h"
#include "AliCDBManager.h"
#include "AliTPCcalibDButil.h"
#include <AliCTPTimeParams.h>


ClassImp(AliTPCseed)



AliTPCseed::AliTPCseed():
  AliTPCtrack(),
  fEsd(0x0),
  fClusterOwner(kFALSE),
  fRow(0),
  fSector(-1),
  fRelativeSector(-1),
  fCurrentSigmaY2(1e10),
  fCurrentSigmaZ2(1e10),
  fCMeanSigmaY2p30(-1.),   //! current mean sigma Y2 - mean30%
  fCMeanSigmaZ2p30(-1.),   //! current mean sigma Z2 - mean30%
  fCMeanSigmaY2p30R(-1.),   //! current mean sigma Y2 - mean2%
  fCMeanSigmaZ2p30R(-1.),   //! current mean sigma Z2 - mean2%
  //
  fErrorY2(1e10),
  fErrorZ2(1e10),
  fCurrentCluster(0x0),
  fCurrentClusterIndex1(-1),
  fInDead(kFALSE),
  fIsSeeding(kFALSE),
  fNoCluster(0),
  fSort(0),
  fBSigned(kFALSE),
  fSeedType(0),
  fSeed1(-1),
  fSeed2(-1),
  fMAngular(0),
  fCircular(0),
  fPoolID(-1)
{
  //
  for (Int_t i=0;i<160;i++) SetClusterIndex2(i,-3);
  for (Int_t i=0;i<160;i++) fClusterPointer[i]=0;
  for (Int_t i=0;i<3;i++)   fKinkIndexes[i]=0;
  for (Int_t i=0;i<AliPID::kSPECIES;i++)   fTPCr[i]=0.2;
  for (Int_t i=0;i<4;i++) {
    fDEDX[i] = 0.;
    fSDEDX[i] = 1e10;
    fNCDEDX[i] = 0;
    fNCDEDXInclThres[i] = 0;
  }
  for (Int_t i=0;i<9;i++) fDEDX[i] = 0;
  for (Int_t i=0;i<12;i++) fOverlapLabels[i] = -1;
}

AliTPCseed::AliTPCseed(const AliTPCseed &s, Bool_t clusterOwner):
  AliTPCtrack(s),
  fEsd(0x0),
  fClusterOwner(clusterOwner),
  fRow(0),
  fSector(-1),
  fRelativeSector(-1),
  fCurrentSigmaY2(-1),
  fCurrentSigmaZ2(-1),
  fCMeanSigmaY2p30(-1.),   //! current mean sigma Y2 - mean30%
  fCMeanSigmaZ2p30(-1.),   //! current mean sigma Z2 - mean30%
  fCMeanSigmaY2p30R(-1.),   //! current mean sigma Y2 - mean2%
  fCMeanSigmaZ2p30R(-1.),   //! current mean sigma Z2 - mean2%
  fErrorY2(1e10),
  fErrorZ2(1e10),
  fCurrentCluster(0x0),
  fCurrentClusterIndex1(-1),
  fInDead(kFALSE),
  fIsSeeding(kFALSE),
  fNoCluster(0),
  fSort(0),
  fBSigned(kFALSE),
  fSeedType(0),
  fSeed1(-1),
  fSeed2(-1),
  fMAngular(0),
  fCircular(0),
  fPoolID(-1)
{
  //---------------------
  // dummy copy constructor
  //-------------------------
  for (Int_t i=0;i<160;i++) {
    fClusterPointer[i]=0;
    if (fClusterOwner){
      if (s.fClusterPointer[i])
	fClusterPointer[i] = new AliTPCclusterMI(*(s.fClusterPointer[i]));
    }else{
      fClusterPointer[i] = s.fClusterPointer[i];
    }
    fTrackPoints[i] = s.fTrackPoints[i];
  }
  for (Int_t i=0;i<160;i++) fIndex[i] = s.fIndex[i];
  for (Int_t i=0;i<AliPID::kSPECIES;i++)   fTPCr[i]=s.fTPCr[i];
  for (Int_t i=0;i<4;i++) {
    fDEDX[i] = s.fDEDX[i];
    fSDEDX[i] = s.fSDEDX[i];
    fNCDEDX[i] = s.fNCDEDX[i];
    fNCDEDXInclThres[i] = s.fNCDEDXInclThres[i];
  }
  for (Int_t i=0;i<9;i++) fDEDX[i] = 0;

  for (Int_t i=0;i<12;i++) fOverlapLabels[i] = s.fOverlapLabels[i];

}


AliTPCseed::AliTPCseed(const AliTPCtrack &t):
  AliTPCtrack(t),
  fEsd(0x0),
  fClusterOwner(kFALSE),
  fRow(0),
  fSector(-1),
  fRelativeSector(-1),
  fCurrentSigmaY2(-1),
  fCurrentSigmaZ2(-1),
  fCMeanSigmaY2p30(-1.),   //! current mean sigma Y2 - mean30%
  fCMeanSigmaZ2p30(-1.),   //! current mean sigma Z2 - mean30%
  fCMeanSigmaY2p30R(-1.),   //! current mean sigma Y2 - mean2%
  fCMeanSigmaZ2p30R(-1.),   //! current mean sigma Z2 - mean2%
  fErrorY2(1e10),
  fErrorZ2(1e10),
  fCurrentCluster(0x0),
  fCurrentClusterIndex1(-1),
  fInDead(kFALSE),
  fIsSeeding(kFALSE),
  fNoCluster(0),
  fSort(0),
  fBSigned(kFALSE),
  fSeedType(0),
  fSeed1(-1),
  fSeed2(-1),
  fMAngular(0),
  fCircular(0),
  fPoolID(-1)
{
  //
  // Constructor from AliTPCtrack
  //
  fFirstPoint =0;
  for (Int_t i=0;i<5;i++)   fTPCr[i]=0.2;
  for (Int_t i=0;i<160;i++) {
    fClusterPointer[i] = 0;
    Int_t index = t.GetClusterIndex(i);
    if (index>=-1){ 
      SetClusterIndex2(i,index);
    }
    else{
      SetClusterIndex2(i,-3); 
    }    
  }
  for (Int_t i=0;i<4;i++) {
    fDEDX[i] = 0.;
    fSDEDX[i] = 1e10;
    fNCDEDX[i] = 0;
    fNCDEDXInclThres[i] = 0;
  }
  for (Int_t i=0;i<9;i++) fDEDX[i] = fDEDX[i];

  for (Int_t i=0;i<12;i++) fOverlapLabels[i] = -1;
}

AliTPCseed::AliTPCseed(Double_t xr, Double_t alpha, const Double_t xx[5],
		       const Double_t cc[15], Int_t index):      
  AliTPCtrack(xr, alpha, xx, cc, index),
  fEsd(0x0),
  fClusterOwner(kFALSE),
  fRow(0),
  fSector(-1),
  fRelativeSector(-1),
  fCurrentSigmaY2(-1),
  fCurrentSigmaZ2(-1),
  fCMeanSigmaY2p30(-1.),   //! current mean sigma Y2 - mean30%
  fCMeanSigmaZ2p30(-1.),   //! current mean sigma Z2 - mean30%
  fCMeanSigmaY2p30R(-1.),   //! current mean sigma Y2 - mean2%
  fCMeanSigmaZ2p30R(-1.),   //! current mean sigma Z2 - mean2%
  fErrorY2(1e10),
  fErrorZ2(1e10),
  fCurrentCluster(0x0),
  fCurrentClusterIndex1(-1),
  fInDead(kFALSE),
  fIsSeeding(kFALSE),
  fNoCluster(0),
  fSort(0),
  fBSigned(kFALSE),
  fSeedType(0),
  fSeed1(-1),
  fSeed2(-1),
  fMAngular(0),
  fCircular(0),
  fPoolID(-1)
{
  //
  // Constructor
  //
  fFirstPoint =0;
  for (Int_t i=0;i<160;i++) SetClusterIndex2(i,-3);
  for (Int_t i=0;i<160;i++) fClusterPointer[i]=0;
  for (Int_t i=0;i<5;i++)   fTPCr[i]=0.2;
  for (Int_t i=0;i<4;i++) {
    fDEDX[i] = 0.;
    fSDEDX[i] = 1e10;
    fNCDEDX[i] = 0;
    fNCDEDXInclThres[i] = 0;
  }
  for (Int_t i=0;i<9;i++) fDEDX[i] = 0;

  for (Int_t i=0;i<12;i++) fOverlapLabels[i] = -1;
}

AliTPCseed::~AliTPCseed(){
  //
  // destructor
  fNoCluster =0;
  if (fClusterOwner){
    for (Int_t icluster=0; icluster<160; icluster++){
      delete fClusterPointer[icluster];
    }
  }

}
//_________________________________________________
AliTPCseed & AliTPCseed::operator=(const AliTPCseed &param)
{
  //
  // assignment operator 
  // don't touch pool ID
  //
  if(this!=&param){
    AliTPCtrack::operator=(param);
    fEsd =param.fEsd; 
    fClusterOwner = param.fClusterOwner;
    if (!fClusterOwner) for(Int_t i = 0;i<160;++i)fClusterPointer[i] = param.fClusterPointer[i];
    else                for(Int_t i = 0;i<160;++i) {
	delete fClusterPointer[i];
	if (param.fClusterPointer[i]) { 
	  fClusterPointer[i] = new AliTPCclusterMI(*(param.fClusterPointer[i]));
	}
	else {
	  fClusterPointer[i] = 0x0;
	}
      }
    // leave out fPoint, they are also not copied in the copy ctor...
    // but deleted in the dtor... strange...
    fRow            = param.fRow;
    fSector         = param.fSector;
    fRelativeSector = param.fRelativeSector;
    fCurrentSigmaY2 = param.fCurrentSigmaY2;
    fCurrentSigmaZ2 = param.fCurrentSigmaZ2;
    fErrorY2        = param.fErrorY2;
    fErrorZ2        = param.fErrorZ2;
    fCurrentCluster = param.fCurrentCluster; // this is not allocated by AliTPCSeed
    fCurrentClusterIndex1 = param.fCurrentClusterIndex1; 
    fInDead         = param.fInDead;
    fIsSeeding      = param.fIsSeeding;
    fNoCluster      = param.fNoCluster;
    fSort           = param.fSort;
    fBSigned        = param.fBSigned;
    for(Int_t i = 0;i<4;++i){
      fDEDX[i]   = param.fDEDX[i];
      fSDEDX[i]  = param.fSDEDX[i];
      fNCDEDX[i] = param.fNCDEDX[i];
      fNCDEDXInclThres[i] = param.fNCDEDXInclThres[i];
    }
    for (Int_t i=0;i<9;i++) fDEDX[i] = 0;

    for(Int_t i = 0;i<AliPID::kSPECIES;++i)fTPCr[i] = param.fTPCr[i];
    
    fSeedType = param.fSeedType;
    fSeed1    = param.fSeed1;
    fSeed2    = param.fSeed2;
    for(Int_t i = 0;i<12;++i)fOverlapLabels[i] = param.fOverlapLabels[i];
    fMAngular = param.fMAngular;
    fCircular = param.fCircular;
    for(int i = 0;i<160;++i)fTrackPoints[i] =  param.fTrackPoints[i];
  }
  return (*this);
}
//____________________________________________________
AliTPCTrackerPoint * AliTPCseed::GetTrackPoint(Int_t i)
{
  //
  // 
  return &fTrackPoints[i];
}



Double_t AliTPCseed::GetDensityFirst(Int_t n)
{
  //
  //
  // return cluster for n rows bellow first point
  Int_t nfoundable = 1;
  Int_t nfound      = 1;
  for (Int_t i=fLastPoint-1;i>0&&nfoundable<n; i--){
    Int_t index = GetClusterIndex2(i);
    if (index!=-1) nfoundable++;
    if (index>0) nfound++;
  }
  if (nfoundable<n) return 0;
  return Double_t(nfound)/Double_t(nfoundable);

}


void AliTPCseed::GetClusterStatistic(Int_t first, Int_t last, Int_t &found, Int_t &foundable, Int_t &shared, Bool_t plus2)
{
  // get cluster stat.  on given region
  //
  found       = 0;
  foundable   = 0;
  shared      =0;
  for (Int_t i=first;i<last; i++){
    Int_t index = GetClusterIndex2(i);
    if (index!=-1) foundable++;
    if (index&0x8000) continue;
    if (fClusterPointer[i]) {
      found++;
    }
    else 
      continue;

    if (fClusterPointer[i]->IsUsed(10)) {
      shared++;
      continue;
    }
    if (!plus2) continue; //take also neighborhoud
    //
    if ( (i>0) && fClusterPointer[i-1]){
      if (fClusterPointer[i-1]->IsUsed(10)) {
	shared++;
	continue;
      }
    }
    if ( fClusterPointer[i+1]){
      if (fClusterPointer[i+1]->IsUsed(10)) {
	shared++;
	continue;
      }
    }
    
  }
  //if (shared>found){
    //Error("AliTPCseed::GetClusterStatistic","problem\n");
  //}
}





void AliTPCseed::Reset(Bool_t all)
{
  //
  //
  SetNumberOfClusters(0);
  fNFoundable = 0;
  SetChi2(0);
  ResetCovariance(10.);
  /*
  if (fTrackPoints){
    for (Int_t i=0;i<8;i++){
      delete [] fTrackPoints[i];
    }
    delete fTrackPoints;
    fTrackPoints =0;
  }
  */

  if (all){   
    for (Int_t i=200;i--;) SetClusterIndex2(i,-3);
    if (!fClusterOwner) for (Int_t i=160;i--;) fClusterPointer[i]=0;
    else                for (Int_t i=160;i--;) {delete fClusterPointer[i]; fClusterPointer[i]=0;}
  }

}


void AliTPCseed::Modify(Double_t factor)
{

  //------------------------------------------------------------------
  //This function makes a track forget its history :)  
  //------------------------------------------------------------------
  if (factor<=0) {
    ResetCovariance(10.);
    return;
  }
  ResetCovariance(factor);

  SetNumberOfClusters(0);
  fNFoundable =0;
  SetChi2(0);
  fRemoval = 0;
  fCurrentSigmaY2 = 0.000005;
  fCurrentSigmaZ2 = 0.000005;
  fNoCluster     = 0;
  //fFirstPoint = 160;
  //fLastPoint  = 0;
}




Int_t  AliTPCseed::GetProlongation(Double_t xk, Double_t &y, Double_t & z) const
{
  //-----------------------------------------------------------------
  // This function find proloncation of a track to a reference plane x=xk.
  // doesn't change internal state of the track
  //-----------------------------------------------------------------
  
  Double_t x1=GetX(), x2=x1+(xk-x1), dx=x2-x1;

  if (TMath::Abs(GetSnp()+GetC()*dx) >= AliTPCReconstructor::GetMaxSnpTrack()) {   
    return 0;
  }

  //  Double_t y1=fP0, z1=fP1;
  Double_t c1=GetSnp(), r1=sqrt((1.-c1)*(1.+c1));
  Double_t c2=c1 + GetC()*dx, r2=sqrt((1.-c2)*(1.+c2));
  
  y = GetY();
  z = GetZ();
  //y += dx*(c1+c2)/(r1+r2);
  //z += dx*(c1+c2)/(c1*r2 + c2*r1)*fP3;
  
  Double_t dy = dx*(c1+c2)/(r1+r2);
  Double_t dz = 0;
  //
  Double_t delta = GetC()*dx*(c1+c2)/(c1*r2 + c2*r1);
  /*
  if (TMath::Abs(delta)>0.0001){
    dz = fP3*TMath::ASin(delta)/fP4;
  }else{
    dz = dx*fP3*(c1+c2)/(c1*r2 + c2*r1);
  }
  */
  //  dz =  fP3*AliTPCFastMath::FastAsin(delta)/fP4;
  dz =  GetTgl()*TMath::ASin(delta)/GetC();
  //
  y+=dy;
  z+=dz;
  

  return 1;  
}


//_____________________________________________________________________________
Double_t AliTPCseed::GetPredictedChi2(const AliCluster *c) const 
{
  //-----------------------------------------------------------------
  // This function calculates a predicted chi2 increment.
  //-----------------------------------------------------------------
  Double_t p[2]={c->GetY(), c->GetZ()};
  Double_t cov[3]={fErrorY2, 0., fErrorZ2};

  Float_t dx = ((AliTPCclusterMI*)c)->GetX()-GetX();
  if (TMath::Abs(dx)>0){
    Float_t ty = TMath::Tan(TMath::ASin(GetSnp()));
    Float_t dy = dx*ty;
    Float_t dz = dx*TMath::Sqrt(1.+ty*ty)*GetTgl();
    p[0] = c->GetY()-dy;  
    p[1] = c->GetZ()-dz;  
  }
  return AliExternalTrackParam::GetPredictedChi2(p,cov);
}

//_________________________________________________________________________________________


Int_t AliTPCseed::Compare(const TObject *o) const {
  //-----------------------------------------------------------------
  // This function compares tracks according to the sector - for given sector according z
  //-----------------------------------------------------------------
  AliTPCseed *t=(AliTPCseed*)o;

  if (fSort == 0){
    if (t->fRelativeSector>fRelativeSector) return -1;
    if (t->fRelativeSector<fRelativeSector) return 1;
    Double_t z2 = t->GetZ();
    Double_t z1 = GetZ();
    if (z2>z1) return 1;
    if (z2<z1) return -1;
    return 0;
  }
  else {
    Float_t f2 =1;
    f2 = 1-20*TMath::Sqrt(t->GetSigma1Pt2())/(t->OneOverPt()+0.0066);
    if (t->fBConstrain) f2=1.2;

    Float_t f1 =1;
    f1 = 1-20*TMath::Sqrt(GetSigma1Pt2())/(OneOverPt()+0.0066);

    if (fBConstrain)   f1=1.2;
 
    if (t->GetNumberOfClusters()*f2 <GetNumberOfClusters()*f1) return -1;
    else return +1;
  }
}




//_____________________________________________________________________________
Bool_t AliTPCseed::Update(const AliCluster *c, Double_t chisq, Int_t index)
{
  //-----------------------------------------------------------------
  // This function associates a cluster with this track.
  //-----------------------------------------------------------------
  Int_t n=GetNumberOfClusters();
  Int_t idx=GetClusterIndex(n);    // save the current cluster index

  AliTPCclusterMI cl(*(AliTPCclusterMI*)c);  cl.SetSigmaY2(fErrorY2); cl.SetSigmaZ2(fErrorZ2);

  AliTPCClusterParam * parcl = AliTPCcalibDB::Instance()->GetClusterParam();
  
  Float_t ty = TMath::Tan(TMath::ASin(GetSnp()));
  
  if(  parcl ){
    Int_t padSize = 0;                          // short pads
    if (cl.GetDetector() >= 36) {
      padSize = 1;                              // medium pads 
      if (cl.GetRow() > 63) padSize = 2; // long pads
    }
    Float_t waveCorr = parcl->GetWaveCorrection( padSize, cl.GetZ(), cl.GetMax(),cl.GetPad(), ty );
    cl.SetY( cl.GetY() - waveCorr ); 
  }

  Float_t dx = ((AliTPCclusterMI*)c)->GetX()-GetX();
  if (TMath::Abs(dx)>0){
    Float_t dy = dx*ty;
    Float_t dz = dx*TMath::Sqrt(1.+ty*ty)*GetTgl();
    cl.SetY(cl.GetY()-dy);  
    cl.SetZ(cl.GetZ()-dz);  
  }  
 

  if (!AliTPCtrack::Update(&cl,chisq,index)) return kFALSE;
  
  if (fCMeanSigmaY2p30<0){
    fCMeanSigmaY2p30= c->GetSigmaY2();   //! current mean sigma Y2 - mean30%
    fCMeanSigmaZ2p30= c->GetSigmaZ2();   //! current mean sigma Z2 - mean30%    
    fCMeanSigmaY2p30R = 1;   //! current mean sigma Y2 - mean5%
    fCMeanSigmaZ2p30R = 1;   //! current mean sigma Z2 - mean5%
  }
  //
  fCMeanSigmaY2p30= 0.70*fCMeanSigmaY2p30 +0.30*c->GetSigmaY2();   
  fCMeanSigmaZ2p30= 0.70*fCMeanSigmaZ2p30 +0.30*c->GetSigmaZ2();  
  if (fCurrentSigmaY2>0){
    fCMeanSigmaY2p30R = 0.7*fCMeanSigmaY2p30R  +0.3*c->GetSigmaY2()/fCurrentSigmaY2;  
    fCMeanSigmaZ2p30R = 0.7*fCMeanSigmaZ2p30R  +0.3*c->GetSigmaZ2()/fCurrentSigmaZ2;   
  }


  SetClusterIndex(n,idx);          // restore the current cluster index
  return kTRUE;
}



//_____________________________________________________________________________
Float_t AliTPCseed::CookdEdx(Double_t low, Double_t up,Int_t i1, Int_t i2, Bool_t /* onlyused */) {
  //-----------------------------------------------------------------
  // This funtion calculates dE/dX within the "low" and "up" cuts.
  //-----------------------------------------------------------------
  // CookdEdxAnalytical(Double_t low, Double_t up, Int_t type, Int_t i1, Int_t i2, Int_t returnVal)
  AliTPCParam *param = AliTPCcalibDB::Instance()->GetParameters();
  
  Int_t row0 = param->GetNRowLow();
  Int_t row1 = row0+param->GetNRowUp1();
  Int_t row2 = row1+param->GetNRowUp2();
  const AliTPCRecoParam * recoParam = AliTPCcalibDB::Instance()->GetTransform()->GetCurrentRecoParam();
  Int_t useTot = 0;
  if (recoParam) useTot = (recoParam->GetUseTotCharge())? 0:1;
  //
  //
  TVectorF i1i2;
  TVectorF  irocTot;
  TVectorF oroc1Tot;
  TVectorF oroc2Tot;
  TVectorF forocTot;
  //
  TVectorF  irocMax;
  TVectorF oroc1Max;
  TVectorF oroc2Max;
  TVectorF forocMax;

  CookdEdxAnalytical(low,up,useTot ,i1  ,i2,   0, 2, 0, &i1i2);
  //
  CookdEdxAnalytical(low,up,kTRUE ,0   ,row0, 0, 2, 0, &irocTot);
  CookdEdxAnalytical(low,up,kTRUE ,row0,row1, 0, 2, 0, &oroc1Tot);
  CookdEdxAnalytical(low,up,kTRUE ,row1,row2, 0, 2, 0, &oroc2Tot);
  CookdEdxAnalytical(low,up,kTRUE ,row0,row2, 0, 2, 0, &forocTot); // full OROC truncated mean
  //
  CookdEdxAnalytical(low,up,kFALSE ,0   ,row0, 0, 2, 0, &irocMax);
  CookdEdxAnalytical(low,up,kFALSE ,row0,row1, 0, 2, 0, &oroc1Max);
  CookdEdxAnalytical(low,up,kFALSE ,row1,row2, 0, 2, 0, &oroc2Max);
  CookdEdxAnalytical(low,up,kFALSE ,row0,row2, 0, 2, 0, &forocMax); // full OROC truncated mean

  fDEDX[0]      = i1i2(0);
  //
  fDEDX[1]      =  irocTot(0);
  fDEDX[2]      = oroc1Tot(0);
  fDEDX[3]      = oroc2Tot(0);
  fDEDX[4]      = forocTot(0); // full OROC truncated mean
  fDEDX[5]      =  irocMax(0);
  fDEDX[6]      = oroc1Max(0);
  fDEDX[7]      = oroc2Max(0);
  fDEDX[8]      = forocMax(0); // full OROC truncated mean
  //
  fSDEDX[0]     = i1i2(1);
  fSDEDX[1]     =  irocTot(1);
  fSDEDX[2]     = oroc1Tot(1);
  fSDEDX[3]     = oroc2Tot(1);
  //
  fNCDEDX[0]    = TMath::Nint(i1i2(2));

  fNCDEDX[1]    = TMath::Nint( irocTot(2));
  fNCDEDX[2]    = TMath::Nint(oroc1Tot(2));
  fNCDEDX[3]    = TMath::Nint(oroc2Tot(2));
  //
  fNCDEDXInclThres[0]    = TMath::Nint(i1i2(2)+i1i2(9));
  fNCDEDXInclThres[1]    = TMath::Nint( irocTot(2)+ irocTot(9));
  fNCDEDXInclThres[2]    = TMath::Nint(oroc1Tot(2)+oroc1Tot(9));
  fNCDEDXInclThres[3]    = TMath::Nint(oroc2Tot(2)+oroc2Tot(9));
  //
  SetdEdx(fDEDX[0]);
  return fDEDX[0];

//  return CookdEdxNorm(low,up,0,i1,i2,1,0,2);


//   Float_t amp[200];
//   Float_t angular[200];
//   Float_t weight[200];
//   Int_t index[200];
//   //Int_t nc = 0;
//   Float_t meanlog = 100.;
  
//   Float_t mean[4]  = {0,0,0,0};
//   Float_t sigma[4] = {1000,1000,1000,1000};
//   Int_t nc[4]      = {0,0,0,0};
//   Float_t norm[4]    = {1000,1000,1000,1000};
//   //
//   //
//   fNShared =0;

//   Float_t gainGG = 1;
//   if (AliTPCcalibDB::Instance()->GetParameters()){
//     gainGG= AliTPCcalibDB::Instance()->GetParameters()->GetGasGain()/20000.;  //relative gas gain
//   }


//   for (Int_t of =0; of<4; of++){    
//     for (Int_t i=of+i1;i<i2;i+=4)
//       {
// 	Int_t clindex = fIndex[i];
// 	if (clindex<0||clindex&0x8000) continue;

// 	//AliTPCTrackPoint * point = (AliTPCTrackPoint *) arr.At(i);
// 	AliTPCTrackerPoint * point = GetTrackPoint(i);
// 	//AliTPCTrackerPoint * pointm = GetTrackPoint(i-1);
// 	//AliTPCTrackerPoint * pointp = 0;
// 	//if (i<159) pointp = GetTrackPoint(i+1);

// 	if (point==0) continue;
// 	AliTPCclusterMI * cl = fClusterPointer[i];
// 	if (cl==0) continue;	
// 	if (onlyused && (!cl->IsUsed(10))) continue;
// 	if (cl->IsUsed(11)) {
// 	  fNShared++;
// 	  continue;
// 	}
// 	Int_t   type   = cl->GetType();
// 	//if (point->fIsShared){
// 	//  fNShared++;
// 	//  continue;
// 	//}
// 	//if (pointm) 
// 	//  if (pointm->fIsShared) continue;
// 	//if (pointp) 
// 	//  if (pointp->fIsShared) continue;

// 	if (type<0) continue;
// 	//if (type>10) continue;       
// 	//if (point->GetErrY()==0) continue;
// 	//if (point->GetErrZ()==0) continue;

// 	//Float_t ddy = (point->GetY()-cl->GetY())/point->GetErrY();
// 	//Float_t ddz = (point->GetZ()-cl->GetZ())/point->GetErrZ();
// 	//if ((ddy*ddy+ddz*ddz)>10) continue; 


// 	//	if (point->GetCPoint().GetMax()<5) continue;
// 	if (cl->GetMax()<5) continue;
// 	Float_t angley = point->GetAngleY();
// 	Float_t anglez = point->GetAngleZ();

// 	Float_t rsigmay2 =  point->GetSigmaY();
// 	Float_t rsigmaz2 =  point->GetSigmaZ();
// 	/*
// 	Float_t ns = 1.;
// 	if (pointm){
// 	  rsigmay +=  pointm->GetTPoint().GetSigmaY();
// 	  rsigmaz +=  pointm->GetTPoint().GetSigmaZ();
// 	  ns+=1.;
// 	}
// 	if (pointp){
// 	  rsigmay +=  pointp->GetTPoint().GetSigmaY();
// 	  rsigmaz +=  pointp->GetTPoint().GetSigmaZ();
// 	  ns+=1.;
// 	}
// 	rsigmay/=ns;
// 	rsigmaz/=ns;
// 	*/

// 	Float_t rsigma = TMath::Sqrt(rsigmay2*rsigmaz2);

// 	Float_t ampc   = 0;     // normalization to the number of electrons
// 	if (i>64){
// 	  //	  ampc = 1.*point->GetCPoint().GetMax();
// 	  ampc = 1.*cl->GetMax();
// 	  //ampc = 1.*point->GetCPoint().GetQ();	  
// 	  //	  AliTPCClusterPoint & p = point->GetCPoint();
// 	  //	  Float_t dy = TMath::Abs(Int_t( TMath::Abs(p.GetY()/0.6)) - TMath::Abs(p.GetY()/0.6)+0.5);
// 	  // Float_t iz =  (250.0-TMath::Abs(p.GetZ())+0.11)/0.566;
// 	  //Float_t dz = 
// 	  //  TMath::Abs( Int_t(iz) - iz + 0.5);
// 	  //ampc *= 1.15*(1-0.3*dy);
// 	  //ampc *= 1.15*(1-0.3*dz);
// 	  //	  Float_t zfactor = (AliTPCReconstructor::GetCtgRange()-0.0004*TMath::Abs(point->GetCPoint().GetZ()));
// 	  //ampc               *=zfactor; 
// 	}
// 	else{ 
// 	  //ampc = 1.0*point->GetCPoint().GetMax(); 
// 	  ampc = 1.0*cl->GetMax(); 
// 	  //ampc = 1.0*point->GetCPoint().GetQ(); 
// 	  //AliTPCClusterPoint & p = point->GetCPoint();
// 	  // Float_t dy = TMath::Abs(Int_t( TMath::Abs(p.GetY()/0.4)) - TMath::Abs(p.GetY()/0.4)+0.5);
// 	  //Float_t iz =  (250.0-TMath::Abs(p.GetZ())+0.11)/0.566;
// 	  //Float_t dz = 
// 	  //  TMath::Abs( Int_t(iz) - iz + 0.5);

// 	  //ampc *= 1.15*(1-0.3*dy);
// 	  //ampc *= 1.15*(1-0.3*dz);
// 	  //	Float_t zfactor = (1.02-0.000*TMath::Abs(point->GetCPoint().GetZ()));
// 	  //ampc               *=zfactor; 

// 	}
// 	ampc *= 2.0;     // put mean value to channel 50
// 	//ampc *= 0.58;     // put mean value to channel 50
// 	Float_t w      =  1.;
// 	//	if (type>0)  w =  1./(type/2.-0.5); 
// 	//	Float_t z = TMath::Abs(cl->GetZ());
// 	if (i<64) {
// 	  ampc /= 0.6;
// 	  //ampc /= (1+0.0008*z);
// 	} else
// 	  if (i>128){
// 	    ampc /=1.5;
// 	    //ampc /= (1+0.0008*z);
// 	  }else{
// 	    //ampc /= (1+0.0008*z);
// 	  }
	
// 	if (type<0) {  //amp at the border - lower weight
// 	  // w*= 2.;
	  
// 	  continue;
// 	}
// 	if (rsigma>1.5) ampc/=1.3;  // if big backround
// 	amp[nc[of]]        = ampc;
// 	amp[nc[of]]       /=gainGG;
// 	angular[nc[of]]    = TMath::Sqrt(1.+angley*angley+anglez*anglez);
// 	weight[nc[of]]     = w;
// 	nc[of]++;
//       }
    
//     TMath::Sort(nc[of],amp,index,kFALSE);
//     Float_t sumamp=0;
//     Float_t sumamp2=0;
//     Float_t sumw=0;
//     //meanlog = amp[index[Int_t(nc[of]*0.33)]];
//     meanlog = 50;
//     for (Int_t i=int(nc[of]*low+0.5);i<int(nc[of]*up+0.5);i++){
//       Float_t ampl      = amp[index[i]]/angular[index[i]];
//       ampl              = meanlog*TMath::Log(1.+ampl/meanlog);
//       //
//       sumw    += weight[index[i]]; 
//       sumamp  += weight[index[i]]*ampl;
//       sumamp2 += weight[index[i]]*ampl*ampl;
//       norm[of]    += angular[index[i]]*weight[index[i]];
//     }
//     if (sumw<1){ 
//       SetdEdx(0);  
//     }
//     else {
//       norm[of] /= sumw;
//       mean[of]  = sumamp/sumw;
//       sigma[of] = sumamp2/sumw-mean[of]*mean[of];
//       if (sigma[of]>0.1) 
// 	sigma[of] = TMath::Sqrt(sigma[of]);
//       else
// 	sigma[of] = 1000;
      
//     mean[of] = (TMath::Exp(mean[of]/meanlog)-1)*meanlog;
//     //mean  *=(1-0.02*(sigma/(mean*0.17)-1.));
//     //mean *=(1-0.1*(norm-1.));
//     }
//   }

//   Float_t dedx =0;
//   fSdEdx =0;
//   fMAngular =0;
//   //  mean[0]*= (1-0.05*(sigma[0]/(0.01+mean[1]*0.18)-1));
//   //  mean[1]*= (1-0.05*(sigma[1]/(0.01+mean[0]*0.18)-1));

  
//   //  dedx = (mean[0]* TMath::Sqrt((1.+nc[0]))+ mean[1]* TMath::Sqrt((1.+nc[1])) )/ 
//   //  (  TMath::Sqrt((1.+nc[0]))+TMath::Sqrt((1.+nc[1])));

//   Int_t norm2 = 0;
//   Int_t norm3 = 0;
//   for (Int_t i =0;i<4;i++){
//     if (nc[i]>2&&nc[i]<1000){
//       dedx      += mean[i] *nc[i];
//       fSdEdx    += sigma[i]*(nc[i]-2);
//       fMAngular += norm[i] *nc[i];    
//       norm2     += nc[i];
//       norm3     += nc[i]-2;
//     }
//     fDEDX[i]  = mean[i];             
//     fSDEDX[i] = sigma[i];            
//     fNCDEDX[i]= nc[i]; 
//   }

//   if (norm3>0){
//     dedx   /=norm2;
//     fSdEdx /=norm3;
//     fMAngular/=norm2;
//   }
//   else{
//     SetdEdx(0);
//     return 0;
//   }
//   //  Float_t dedx1 =dedx;
//   /*
//   dedx =0;
//   for (Int_t i =0;i<4;i++){
//     if (nc[i]>2&&nc[i]<1000){
//       mean[i]   = mean[i]*(1-0.12*(sigma[i]/(fSdEdx)-1.));
//       dedx      += mean[i] *nc[i];
//     }
//     fDEDX[i]  = mean[i];                
//   }
//   dedx /= norm2;
//   */

  
//   SetdEdx(dedx);
//   return dedx;
}

void AliTPCseed::CookPID()
{
  //
  // cook PID information according dEdx
  //
  Double_t fRange = 10.;
  Double_t fRes   = 0.1;
  Double_t fMIP   = 47.;
  //
  Int_t ns=AliPID::kSPECIES;
  Double_t sumr =0;
  for (Int_t j=0; j<ns; j++) {
    Double_t mass=AliPID::ParticleMass(j);
    Double_t mom=GetP();
    Double_t dedx=fdEdx/fMIP;
    Double_t bethe=AliMathBase::BetheBlochAleph(mom/mass); 
    Double_t sigma=fRes*bethe;
    if (sigma>0.001){
      if (TMath::Abs(dedx-bethe) > fRange*sigma) {
	fTPCr[j]=TMath::Exp(-0.5*fRange*fRange)/sigma;
	sumr+=fTPCr[j];
	continue;
      }
      fTPCr[j]=TMath::Exp(-0.5*(dedx-bethe)*(dedx-bethe)/(sigma*sigma))/sigma;
      sumr+=fTPCr[j];
    }
    else{
      fTPCr[j]=1.;
      sumr+=fTPCr[j];
    }
  }
  for (Int_t j=0; j<ns; j++) {
    fTPCr[j]/=sumr;           //normalize
  }
}

Double_t AliTPCseed::GetYat(Double_t xk) const {
//-----------------------------------------------------------------
// This function calculates the Y-coordinate of a track at the plane x=xk.
//-----------------------------------------------------------------
  if (TMath::Abs(GetSnp())>AliTPCReconstructor::GetMaxSnpTrack()) return 0.; //patch 01 jan 06
    Double_t c1=GetSnp(), r1=TMath::Sqrt((1.-c1)*(1.+c1));
    Double_t c2=c1+GetC()*(xk-GetX());
    if (TMath::Abs(c2)>AliTPCReconstructor::GetMaxSnpTrack()) return 0;
    Double_t r2=TMath::Sqrt((1.-c2)*(1.+c2));
    return GetY() + (xk-GetX())*(c1+c2)/(r1+r2);
}



Float_t  AliTPCseed::CookdEdxNorm(Double_t low, Double_t up, Int_t type, Int_t i1, Int_t i2, Bool_t shapeNorm,Int_t posNorm, Int_t padNorm, Int_t returnVal){
 
  //
  // calculates dedx using the cluster
  // low    -  up specify trunc mean range  - default form 0-0.7
  // type   -  1 - max charge  or 0- total charge in cluster 
  //           //2- max no corr 3- total+ correction
  // i1-i2  -  the pad-row range used for calculation
  // shapeNorm - kTRUE  -taken from OCDB
  //           
  // posNorm   - usage of pos normalization 
  // padNorm   - pad type normalization
  // returnVal - 0 return mean
  //           - 1 return RMS
  //           - 2 return number of clusters
  //           
  // normalization parametrization taken from AliTPCClusterParam
  //
  AliTPCClusterParam * parcl = AliTPCcalibDB::Instance()->GetClusterParam();
  AliTPCParam * param = AliTPCcalibDB::Instance()->GetParameters();
  if (!parcl)  return 0;
  if (!param) return 0;
  Int_t row0 = param->GetNRowLow();
  Int_t row1 = row0+param->GetNRowUp1();

  Float_t amp[160];
  Int_t   indexes[160];
  Int_t   ncl=0;
  //
  //
  Float_t gainGG      = 1;  // gas gain factor -always enabled
  Float_t gainPad     = 1;  // gain map  - used always
  Float_t corrShape   = 1;  // correction due angular effect, diffusion and electron attachment
  Float_t corrPos     = 1;  // local position correction - if posNorm enabled
  Float_t corrPadType = 1;  // pad type correction - if padNorm enabled
  Float_t corrNorm    = 1;  // normalization factor - set Q to channel 50
  //   
  //
  //
  if (AliTPCcalibDB::Instance()->GetParameters()){
    gainGG= AliTPCcalibDB::Instance()->GetParameters()->GetGasGain()/20000;  //relative gas gain
    gainGG *= AliTPCcalibDB::Instance()->GetParameters()->GetNtot()/36.82;//correction for the ionisation
  }

  const Float_t ktany = TMath::Tan(TMath::DegToRad()*10);
  const Float_t kedgey =3.;
  //
  //
  for (Int_t irow=i1; irow<i2; irow++){
    AliTPCclusterMI* cluster = GetClusterPointer(irow);
    if (!cluster) continue;
    if (TMath::Abs(cluster->GetY())>cluster->GetX()*ktany-kedgey) continue; // edge cluster
    Float_t charge= (type%2)? cluster->GetMax():cluster->GetQ();
    Int_t  ipad= 0;
    if (irow>=row0) ipad=1;
    if (irow>=row1) ipad=2;    
    //
    //
    //
    AliTPCCalPad * gainMap =  AliTPCcalibDB::Instance()->GetDedxGainFactor();
    if (gainMap) {
      //
      // Get gainPad - pad by pad calibration
      //
      Float_t factor = 1;      
      AliTPCCalROC * roc = gainMap->GetCalROC(cluster->GetDetector());
      if (irow < row0) { // IROC
	factor = roc->GetValue(irow, TMath::Nint(cluster->GetPad()));
      } else {         // OROC
	factor = roc->GetValue(irow - row0, TMath::Nint(cluster->GetPad()));
      }
      if (factor>0.5) gainPad=factor;
    }
    //
    //do position and angular normalization
    //
    if (shapeNorm){
      if (type<=1){
	//	
	AliTPCTrackerPoint * point = GetTrackPoint(irow);
	Float_t              ty = TMath::Abs(point->GetAngleY());
	Float_t              tz = TMath::Abs(point->GetAngleZ()*TMath::Sqrt(1+ty*ty));
	
	Float_t dr    = (250.-TMath::Abs(cluster->GetZ()))/250.;
	corrShape  = parcl->Qnorm(ipad,type,dr,ty,tz);
      }
    }
    
    if (posNorm>0){
      //
      // Do position normalization - relative distance to 
      // center of pad- time bin
      // Work in progress
      //      corrPos = parcl->QnormPos(ipad,type, cluster->GetPad(),
      // 				cluster->GetTimeBin(), cluster->GetZ(),
      // 				cluster->GetSigmaY2(),cluster->GetSigmaZ2(),
      // 				cluster->GetMax(),cluster->GetQ());
      // scaled response function
      Float_t yres0 = parcl->GetRMS0(0,ipad,0,0)/param->GetPadPitchWidth(cluster->GetDetector());
      Float_t zres0 = parcl->GetRMS0(1,ipad,0,0)/param->GetZWidth();
      //
      
      AliTPCTrackerPoint * point = GetTrackPoint(irow);
      Float_t              ty = TMath::Abs(point->GetAngleY());
      Float_t              tz = TMath::Abs(point->GetAngleZ()*TMath::Sqrt(1+ty*ty));
      
      if (type==1) corrPos = 
	parcl->QmaxCorrection(cluster->GetDetector(), cluster->GetRow(),cluster->GetPad(), 
			      cluster->GetTimeBin(),ty,tz,yres0,zres0,0.4);
      if (type==0) corrPos = 
	parcl->QtotCorrection(cluster->GetDetector(), cluster->GetRow(),cluster->GetPad(), 
			      cluster->GetTimeBin(),ty,tz,yres0,zres0,cluster->GetQ(),2.5,0.4);
      if (posNorm==3){
	Float_t dr    = (250.-TMath::Abs(cluster->GetZ()))/250.;
	Double_t signtgl = (cluster->GetZ()*point->GetAngleZ()>0)? 1:-1;
	Double_t p2 = TMath::Abs(TMath::Sin(TMath::ATan(ty)));
	Float_t corrHis = parcl->QnormHis(ipad,type,dr,p2,TMath::Abs(point->GetAngleZ())*signtgl);
	if (corrHis>0) corrPos*=corrHis;
      }

    }

    if (padNorm==1){
      //taken from OCDB
      if (type==0 && parcl->QpadTnorm()) corrPadType = (*parcl->QpadTnorm())[ipad];
      if (type==1 && parcl->QpadMnorm()) corrPadType = (*parcl->QpadMnorm())[ipad];

    }
    if (padNorm==2){
      corrPadType  =param->GetPadPitchLength(cluster->GetDetector(),cluster->GetRow());
      //use hardwired - temp fix
      if (type==0) corrNorm=3.;
      if (type==1) corrNorm=1.;
    }
    //
    //
    amp[ncl]=charge;
    amp[ncl]/=gainGG;                 // normalized gas gain
    amp[ncl]/=gainPad;                // 
    amp[ncl]/=corrShape;
    amp[ncl]/=corrPadType;
    amp[ncl]/=corrPos;
    amp[ncl]/=corrNorm; 
    //
    ncl++;
  }

  if (type>3) return ncl; 
  TMath::Sort(ncl,amp, indexes, kFALSE);

  if (ncl<10) return 0;
  
  Float_t suma=0;
  Float_t suma2=0;  
  Float_t sumn=0;
  Int_t icl0=TMath::Nint(ncl*low);
  Int_t icl1=TMath::Nint(ncl*up);
  for (Int_t icl=icl0; icl<icl1;icl++){
    suma+=amp[indexes[icl]];
    suma2+=amp[indexes[icl]]*amp[indexes[icl]];
    sumn++;
  }
  Float_t mean =suma/sumn;
  Float_t rms  =TMath::Sqrt(TMath::Abs(suma2/sumn-mean*mean));
  //
  // do time-dependent correction for pressure and temperature variations
  UInt_t runNumber = 1;
  Float_t corrTimeGain = 1;
  AliTPCTransform * trans = AliTPCcalibDB::Instance()->GetTransform();
  const AliTPCRecoParam * recoParam = AliTPCcalibDB::Instance()->GetTransform()->GetCurrentRecoParam();
  if (trans && recoParam->GetUseGainCorrectionTime()>0) {
    runNumber = trans->GetCurrentRunNumber();
    //AliTPCcalibDB::Instance()->SetRun(runNumber);
    TObjArray * timeGainSplines = AliTPCcalibDB::Instance()->GetTimeGainSplinesRun(runNumber);
    if (timeGainSplines) {
      UInt_t time = trans->GetCurrentTimeStamp();
      AliSplineFit * fitMIP = (AliSplineFit *) timeGainSplines->At(0);
      AliSplineFit * fitFPcosmic = (AliSplineFit *) timeGainSplines->At(1);
      if (fitMIP) {
	corrTimeGain = AliTPCcalibDButil::EvalGraphConst(fitMIP, time);/*fitMIP->Eval(time);*/
      } else {
	if (fitFPcosmic) corrTimeGain = AliTPCcalibDButil::EvalGraphConst(fitFPcosmic, time);/*fitFPcosmic->Eval(time);*/ 
      }
    }
  }
  mean /= corrTimeGain;
  rms /= corrTimeGain;
  //
  if (returnVal==1) return rms;
  if (returnVal==2) return ncl;
  return mean;
}

Float_t  AliTPCseed::CookdEdxAnalytical(Double_t low, Double_t up, Int_t type, Int_t i1, Int_t i2, Int_t returnVal, Int_t rowThres, Int_t mode, TVectorT<float> *returnVec){
 
  //
  // calculates dedx using the cluster
  // low    -  up specify trunc mean range  - default form 0-0.7
  // type   -  1 - max charge  or 0- total charge in cluster 
  //           //2- max no corr 3- total+ correction
  // i1-i2  -  the pad-row range used for calculation
  //           
  // posNorm   - usage of pos normalization 
  // returnVal - 0  return mean
  //           - 1  return RMS
  //           - 2  return number of clusters
  //           - 3  ratio
  //           - 4  mean upper half
  //           - 5  mean  - lower half
  //           - 6  third moment
  // mode      - 0 - linear
  //           - 1 - logatithmic
  // rowThres  - number of rows before and after given pad row to check for clusters below threshold
  //           
  // normalization parametrization taken from AliTPCClusterParam
  //
  if (returnVec) returnVec->ResizeTo(10);

  AliTPCClusterParam * parcl = AliTPCcalibDB::Instance()->GetClusterParam();
  AliTPCParam * param = AliTPCcalibDB::Instance()->GetParameters();
  AliTPCTransform * trans = AliTPCcalibDB::Instance()->GetTransform();
  const AliTPCRecoParam * recoParam = AliTPCcalibDB::Instance()->GetTransform()->GetCurrentRecoParam();
  if (!parcl)  return 0;
  if (!param) return 0;
  Int_t row0 = param->GetNRowLow();
  Int_t row1 = row0+param->GetNRowUp1();

  Float_t amp[160];
  Int_t   indexes[160];
  Int_t   ncl=0;
  Int_t   nclBelowThr = 0; // counts number of clusters below threshold
  //
  //
  Float_t gainGG      = 1;  // gas gain factor -always enabled
  Float_t gainPad     = 1;  // gain map  - used always
  Float_t corrPos     = 1;  // local position correction - if posNorm enabled
  //   
  //
  //
  if (AliTPCcalibDB::Instance()->GetParameters()){
    gainGG= AliTPCcalibDB::Instance()->GetParameters()->GetGasGain()/20000;  //relative gas gain
    gainGG *= AliTPCcalibDB::Instance()->GetParameters()->GetNtot()/36.82;//correction for the ionisation
  }
  Double_t timeCut=0;
  if (AliTPCcalibDB::Instance()->IsTrgL0()){
    // by defualt we assume L1 trigger is used - make a correction in case of  L0
    AliCTPTimeParams* ctp = AliTPCcalibDB::Instance()->GetCTPTimeParams();
    Double_t delay = ctp->GetDelayL1L0()*0.000000025;
    delay/=param->GetTSample();    
    timeCut=delay;
  }
  timeCut += recoParam->GetSkipTimeBins();

  //
  // extract time-dependent correction for pressure and temperature variations
  //
  UInt_t runNumber = 1;
  Float_t corrTimeGain = 1;
  TObjArray * timeGainSplines = 0x0;
  TGraphErrors * grPadEqual = 0x0;
  TGraphErrors*  grChamberGain[4]={0x0,0x0,0x0,0x0};
  TF1*  funDipAngle[4]={0x0,0x0,0x0,0x0};
  //
  //
  if (recoParam->GetNeighborRowsDedx() == 0) rowThres = 0;	
  UInt_t time = 1;//
  //
  if (trans) {
      runNumber = trans->GetCurrentRunNumber();
      time = trans->GetCurrentTimeStamp();
      //AliTPCcalibDB::Instance()->SetRun(runNumber);
      timeGainSplines = AliTPCcalibDB::Instance()->GetTimeGainSplinesRun(runNumber);
      if (timeGainSplines && recoParam->GetUseGainCorrectionTime()>0) {
	AliSplineFit * fitMIP = (AliSplineFit *) timeGainSplines->At(0);
	AliSplineFit * fitFPcosmic = (AliSplineFit *) timeGainSplines->At(1);
	if (fitMIP) {
	  corrTimeGain =  AliTPCcalibDButil::EvalGraphConst(fitMIP, time); /*fitMIP->Eval(time);*/
	} else {
	  if (fitFPcosmic) corrTimeGain = AliTPCcalibDButil::EvalGraphConst(fitFPcosmic, time); /*fitFPcosmic->Eval(time); */
	}
	//
	if (type==1) grPadEqual = (TGraphErrors * ) timeGainSplines->FindObject("TGRAPHERRORS_MEANQMAX_PADREGIONGAIN_BEAM_ALL");
	if (type==0) grPadEqual = (TGraphErrors * ) timeGainSplines->FindObject("TGRAPHERRORS_MEANQTOT_PADREGIONGAIN_BEAM_ALL");
        const char* names[4]={"SHORT","MEDIUM","LONG","ABSOLUTE"};
        for (Int_t iPadRegion=0; iPadRegion<4; ++iPadRegion) {
          grChamberGain[iPadRegion]=(TGraphErrors*)timeGainSplines->FindObject(Form("TGRAPHERRORS_MEAN_CHAMBERGAIN_%s_BEAM_ALL",names[iPadRegion]));
	  if (type==1) funDipAngle[iPadRegion]=(TF1*)timeGainSplines->FindObject(Form("TF1_QMAX_DIPANGLE_%s_BEAM_ALL",names[iPadRegion]));
	  if (type==0) funDipAngle[iPadRegion]=(TF1*)timeGainSplines->FindObject(Form("TF1_QTOT_DIPANGLE_%s_BEAM_ALL",names[iPadRegion]));
	}
      }
  }
  
  const Float_t kClusterShapeCut = 1.5; // IMPPRTANT TO DO: move value to AliTPCRecoParam
  const Float_t ktany = TMath::Tan(TMath::DegToRad()*10);
  const Float_t kedgey =3.;
  //
  //
  for (Int_t irow=i1; irow<i2; irow++){
    AliTPCclusterMI* cluster = GetClusterPointer(irow);
    if (!cluster && irow > 1 && irow < 157) {
      Bool_t isClBefore = kFALSE;
      Bool_t isClAfter  = kFALSE;
      for(Int_t ithres = 1; ithres <= rowThres; ithres++) {
	AliTPCclusterMI * clusterBefore = GetClusterPointer(irow - ithres);
	if (clusterBefore) isClBefore = kTRUE;
	AliTPCclusterMI * clusterAfter  = GetClusterPointer(irow + ithres);
	if (clusterAfter) isClAfter = kTRUE;
      }
      if (isClBefore && isClAfter) nclBelowThr++;
    }
    if (!cluster) continue;
    if (cluster->GetTimeBin()<timeCut) continue; //reject  clusters at the gating grid opening
    //
    //
    if (TMath::Abs(cluster->GetY())>cluster->GetX()*ktany-kedgey) continue; // edge cluster
    //
    AliTPCTrackerPoint * point = GetTrackPoint(irow);
    if (point==0) continue;    
    Float_t rsigmay = TMath::Sqrt(point->GetSigmaY());
    if (rsigmay > kClusterShapeCut) continue;
    //
    if (cluster->IsUsed(11)) continue; // remove shared clusters for PbPb
    //
    Float_t charge= (type%2)? cluster->GetMax():cluster->GetQ();
    Int_t  ipad= 0;
    if (irow>=row0) ipad=1;
    if (irow>=row1) ipad=2;    
    //
    //
    //
    AliTPCCalPad * gainMap =  AliTPCcalibDB::Instance()->GetDedxGainFactor();
    if (gainMap) {
      //
      // Get gainPad - pad by pad calibration
      //
      Float_t factor = 1;      
      AliTPCCalROC * roc = gainMap->GetCalROC(cluster->GetDetector());
      if (irow < row0) { // IROC
	factor = roc->GetValue(irow, TMath::Nint(cluster->GetPad()));
      } else {         // OROC
	factor = roc->GetValue(irow - row0, TMath::Nint(cluster->GetPad()));
      }
      if (factor>0.3) gainPad=factor;
    }
    //
    // Do position normalization - relative distance to 
    // center of pad- time bin
    
    Float_t              ty = TMath::Abs(point->GetAngleY());
    Float_t              tz = TMath::Abs(point->GetAngleZ()*TMath::Sqrt(1+ty*ty));
    Float_t yres0 = parcl->GetRMS0(0,ipad,0,0)/param->GetPadPitchWidth(cluster->GetDetector());
    Float_t zres0 = parcl->GetRMS0(1,ipad,0,0)/param->GetZWidth();

    yres0 *=parcl->GetQnormCorr(ipad, type,0);
    zres0 *=parcl->GetQnormCorr(ipad, type,1);
    Float_t effLength=parcl->GetQnormCorr(ipad, type,4)*0.5;
    Float_t effDiff  =(parcl->GetQnormCorr(ipad, type,2)+parcl->GetQnormCorr(ipad, type,3))*0.5;
    //
    if (type==1) {
      corrPos = parcl->GetQnormCorr(ipad, type,5)*
	parcl->QmaxCorrection(cluster->GetDetector(), cluster->GetRow(),cluster->GetPad(), 
			      cluster->GetTimeBin(),ty,tz,yres0,zres0,effLength,effDiff);
      Float_t drm   = 0.5-TMath::Abs(cluster->GetZ()/250.);
      corrPos*=(1+parcl->GetQnormCorr(ipad, type+2,0)*drm);
      corrPos*=(1+parcl->GetQnormCorr(ipad, type+2,1)*ty*ty);
      corrPos*=(1+parcl->GetQnormCorr(ipad, type+2,2)*tz*tz);
      //
    }
    if (type==0) {
      corrPos = parcl->GetQnormCorr(ipad, type,5)*
	parcl->QtotCorrection(cluster->GetDetector(), cluster->GetRow(),cluster->GetPad(), 
			      cluster->GetTimeBin(),ty,tz,yres0,zres0,cluster->GetQ(),2.5,effLength,effDiff);
      
      Float_t drm   = 0.5-TMath::Abs(cluster->GetZ()/250.);
      corrPos*=(1+parcl->GetQnormCorr(ipad, type+2,0)*drm);
      corrPos*=(1+parcl->GetQnormCorr(ipad, type+2,1)*ty*ty);
      corrPos*=(1+parcl->GetQnormCorr(ipad, type+2,2)*tz*tz);
      //
    }
    //
    // pad region equalization outside of cluster param
    //
    Float_t gainEqualPadRegion = 1;
    if (grPadEqual && recoParam->GetUseGainCorrectionTime()>0) gainEqualPadRegion = grPadEqual->Eval(ipad);
    //
    // chamber-by-chamber equalization outside gain map
    //
    Float_t gainChamber = 1;
    if (grChamberGain[ipad] && recoParam->GetUseGainCorrectionTime()>0) {
      gainChamber = grChamberGain[ipad]->Eval(cluster->GetDetector());
      if (gainChamber==0) gainChamber=1; // in case old calibation was used before use no correction
    }
    //
    // dip angle correction
    //
    Float_t corrDipAngle = 1;
    Float_t corrDipAngleAbs = 1;
    //    if (grDipAngle[ipad]) corrDipAngle = grDipAngle[ipad]->Eval(GetTgl());
    Double_t tgl=GetTgl();
    if (funDipAngle[ipad]) corrDipAngle = funDipAngle[ipad]->Eval(tgl);
    if (funDipAngle[3]) corrDipAngleAbs = funDipAngle[3]->Eval(tgl);
    //
    // pressure temperature and high voltage correction
    //
    Double_t correctionHVandPT = AliTPCcalibDB::Instance()->GetGainCorrectionHVandPT(time, runNumber,cluster->GetDetector(), 5 , recoParam->GetGainCorrectionHVandPTMode());
    //
    amp[ncl]=charge;
    amp[ncl]/=gainGG;               // nominal gas gain
    amp[ncl]/=correctionHVandPT;    // correction for the HV and P/T - time dependent
    amp[ncl]/=gainPad;              // 
    amp[ncl]/=corrPos;
    amp[ncl]/=gainEqualPadRegion;
    amp[ncl]/=gainChamber;
    amp[ncl]/=corrDipAngle;
    amp[ncl]/=corrDipAngleAbs;
    //
    ncl++;
  }

  if (type==2) return ncl; 
  TMath::Sort(ncl,amp, indexes, kFALSE);
  //
  if (ncl<10) return 0;
  //
  Double_t * ampWithBelow = new Double_t[ncl + nclBelowThr];
  for(Int_t iCl = 0; iCl < ncl + nclBelowThr; iCl++) {
    if (iCl < nclBelowThr) {
      ampWithBelow[iCl] = amp[indexes[0]];
    } else {
      ampWithBelow[iCl] = amp[indexes[iCl - nclBelowThr]];
    }
  }
  //printf("DEBUG: %i shit %f", nclBelowThr, amp[indexes[0]]);
  //
  Float_t suma=0;
  Float_t suma2=0;  
  Float_t suma3=0;  
  Float_t sumaS=0;  
  Float_t sumn=0;
  // upper,and lower part statistic
  Float_t sumL=0, sumL2=0, sumLN=0;
  Float_t sumD=0, sumD2=0, sumDN=0;

  Int_t icl0=TMath::Nint((ncl + nclBelowThr)*low);
  Int_t icl1=TMath::Nint((ncl + nclBelowThr)*up);
  Int_t iclm=TMath::Nint((ncl + nclBelowThr)*(low +(up+low)*0.5));
  //
  for (Int_t icl=icl0; icl<icl1;icl++){
    if (ampWithBelow[icl]<0.1) continue;
    Double_t camp=ampWithBelow[icl]/corrTimeGain;
    if (mode==1) camp= TMath::Log(camp);
    if (icl<icl1){
      suma+=camp;
      suma2+=camp*camp;
      suma3+=camp*camp*camp;
      sumaS+=TMath::Power(TMath::Abs(camp),1./3.);
      sumn++;
    }
    if (icl>iclm){
      sumL+=camp;
      sumL2+=camp*camp;
      sumLN++;
      }
    if (icl<=iclm){
      sumD+=camp;
      sumD2+=camp*camp;
      sumDN++;
    }
  }
  //
  Float_t mean = 0;
  Float_t meanL = 0;  
  Float_t meanD = 0;           // lower half mean
  if (sumn > 1e-30)   mean =suma/sumn;
  if (sumLN > 1e-30)  meanL =sumL/sumLN;
  if (sumDN > 1e-30)  meanD =(sumD/sumDN);
  /*
  Float_t mean =suma/sumn;
  Float_t meanL = sumL/sumLN;  
  Float_t meanD =(sumD/sumDN);           // lower half mean
  */

  Float_t rms = 0;
  Float_t mean2=0;
  Float_t mean3=0;
  Float_t meanS=0;

  if(sumn>0){
    rms = TMath::Sqrt(TMath::Abs(suma2/sumn-mean*mean));
    mean2=suma2/sumn;
    mean3=suma3/sumn;
    meanS=sumaS/sumn;
  }

  if (mean2>0) mean2=TMath::Power(TMath::Abs(mean2),1./2.);
  if (mean3>0) mean3=TMath::Power(TMath::Abs(mean3),1./3.);
  if (meanS>0) meanS=TMath::Power(TMath::Abs(meanS),3.);
  //
  if (mode==1) mean=TMath::Exp(mean);
  if (mode==1) meanL=TMath::Exp(meanL);  // upper truncation
  if (mode==1) meanD=TMath::Exp(meanD);  // lower truncation
  //
  delete [] ampWithBelow; //return?
  

  //
  if(returnVec){
      (*returnVec)(0) = mean;
      (*returnVec)(1) = rms;
      (*returnVec)(2) = ncl;
      (*returnVec)(3) = Double_t(nclBelowThr)/Double_t(nclBelowThr+ncl);
      (*returnVec)(4) = meanL;
      (*returnVec)(5) = meanD;
      (*returnVec)(6) = mean2;
      (*returnVec)(7) = mean3;
      (*returnVec)(8) = meanS;
      (*returnVec)(9) = nclBelowThr;
  }

  if (returnVal==1) return rms;
  if (returnVal==2) return ncl;
  if (returnVal==3) return Double_t(nclBelowThr)/Double_t(nclBelowThr+ncl);
  if (returnVal==4) return meanL;
  if (returnVal==5) return meanD;
  if (returnVal==6) return mean2;
  if (returnVal==7) return mean3;
  if (returnVal==8) return meanS;
  if (returnVal==9) return nclBelowThr;
  return mean;
}




Float_t  AliTPCseed::CookShape(Int_t type){
  //
  //
  //
 //-----------------------------------------------------------------
  // This funtion calculates dE/dX within the "low" and "up" cuts.
  //-----------------------------------------------------------------
  Float_t means=0;
  Float_t meanc=0;
  for (Int_t i =0; i<160;i++)    {
    AliTPCTrackerPoint * point = GetTrackPoint(i);
    if (point==0) continue;

    AliTPCclusterMI * cl = fClusterPointer[i];
    if (cl==0) continue;	
    
    Float_t rsigmay =  TMath::Sqrt(point->GetSigmaY());
    Float_t rsigmaz =  TMath::Sqrt(point->GetSigmaZ());
    Float_t rsigma =   (rsigmay+rsigmaz)*0.5;
    if (type==0) means+=rsigma;
    if (type==1) means+=rsigmay;
    if (type==2) means+=rsigmaz;
    meanc++;
  }
  Float_t mean = (meanc>0)? means/meanc:0;
  return mean;
}



Int_t  AliTPCseed::RefitTrack(AliTPCseed *seed, AliExternalTrackParam * parin, AliExternalTrackParam * parout){
  //
  // Refit the track
  // return value - number of used clusters
  // 
  //
  const Int_t kMinNcl =10;
  AliTPCseed *track=new AliTPCseed(*seed);
  Int_t sector=-1;
  // reset covariance
  //
  Double_t covar[15];
  for (Int_t i=0;i<15;i++) covar[i]=0;
  covar[0]=10.*10.;
  covar[2]=10.*10.;
  covar[5]=10.*10./(64.*64.);
  covar[9]=10.*10./(64.*64.);
  covar[14]=1*1;
  //

  Float_t xmin=1000, xmax=-10000;
  Int_t imin=158, imax=0;
  for (Int_t i=0;i<160;i++) {
    AliTPCclusterMI *c=track->GetClusterPointer(i);
    if (!c || (track->GetClusterIndex(i) & 0x8000)) continue; 
    if (sector<0) sector = c->GetDetector();
    if (c->GetX()<xmin) xmin=c->GetX();
    if (c->GetX()>xmax) xmax=c->GetX();
    if (i<imin) imin=i;
    if (i>imax) imax=i;
  }
  if(imax-imin<kMinNcl) {
    delete track;
    return 0 ;
  }
  // Not succes to rotate
  if (!track->Rotate(TMath::DegToRad()*(sector%18*20.+10.)-track->GetAlpha())) {
    delete track;
    return 0;
  }
  //
  //
  // fit from inner to outer row
  //
  AliExternalTrackParam paramIn;
  AliExternalTrackParam paramOut;
  Bool_t isOK=kTRUE;
  Int_t ncl=0;
  //
  //
  //
  for (Int_t i=imin; i<=imax; i++){
    AliTPCclusterMI *c=track->GetClusterPointer(i);
    if (!c || (track->GetClusterIndex(i) & 0x8000)) continue; 
    //    if (RejectCluster(c,track)) continue;
    sector = (c->GetDetector()%18);
    if (!track->Rotate(TMath::DegToRad()*(sector%18*20.+10.)-track->GetAlpha())) {
      //continue;
    }
    Double_t r[3]={c->GetX(),c->GetY(),c->GetZ()};
    Double_t cov[3]={0.01,0.,0.01}; //TODO: correct error parametrisation
    if (!track->PropagateTo(r[0])) {
      isOK=kFALSE;
    }
    if ( !((static_cast<AliExternalTrackParam*>(track)->Update(&r[1],cov)))) isOK=kFALSE;
  }
  if (!isOK) { delete track; return 0;}
  track->AddCovariance(covar);
  //
  //
  //
  for (Int_t i=imax; i>=imin; i--){
    AliTPCclusterMI *c=track->GetClusterPointer(i);
    if (!c || (track->GetClusterIndex(i) & 0x8000)) continue;
    //if (RejectCluster(c,track)) continue;
    sector = (c->GetDetector()%18);
    if (!track->Rotate(TMath::DegToRad()*(sector%18*20.+10.)-track->GetAlpha())) {
      //continue;
    }
    Double_t r[3]={c->GetX(),c->GetY(),c->GetZ()};
    Double_t cov[3]={0.01,0.,0.01}; //TODO: correct error parametrisation
    if (!track->PropagateTo(r[0])) {
      isOK=kFALSE;
    }
    if ( !((static_cast<AliExternalTrackParam*>(track)->Update(&r[1],cov)))) isOK=kFALSE;
  }
  //if (!isOK) { delete track; return 0;}
  paramIn = *track;
  track->AddCovariance(covar);
  //
  //
  for (Int_t i=imin; i<=imax; i++){
    AliTPCclusterMI *c=track->GetClusterPointer(i);
    if (!c || (track->GetClusterIndex(i) & 0x8000)) continue; 
    sector = (c->GetDetector()%18);
    if (!track->Rotate(TMath::DegToRad()*(sector%18*20.+10.)-track->GetAlpha())) {
      //continue;
    }
    ncl++;
    //if (RejectCluster(c,track)) continue;
    Double_t r[3]={c->GetX(),c->GetY(),c->GetZ()};
    Double_t cov[3]={0.01,0.,0.01}; //TODO: correct error parametrisation
    if (!track->PropagateTo(r[0])) {
      isOK=kFALSE;
    }
    if ( !((static_cast<AliExternalTrackParam*>(track)->Update(&r[1],cov)))) isOK=kFALSE;
  }
  //if (!isOK) { delete track; return 0;}
  paramOut=*track;
  //
  //
  //
  if (parin) (*parin)=paramIn;
  if (parout) (*parout)=paramOut;
  delete track;
  return ncl;
}



Bool_t AliTPCseed::RefitTrack(AliTPCseed* /*seed*/, Bool_t /*out*/){
  //
  //
  //
  return kFALSE;
}






void  AliTPCseed::GetError(AliTPCclusterMI* cluster, AliExternalTrackParam * param, 
				  Double_t& erry, Double_t &errz)
{
  //
  // Get cluster error at given position
  //
  AliTPCClusterParam *clusterParam = AliTPCcalibDB::Instance()->GetClusterParam();
  Double_t tany,tanz;  
  Double_t snp1=param->GetSnp();
  tany=snp1/TMath::Sqrt((1.-snp1)*(1.+snp1));
  //
  Double_t tgl1=param->GetTgl();
  tanz=tgl1/TMath::Sqrt((1.-snp1)*(1.+snp1));
  //
  Int_t padSize = 0;                          // short pads
  if (cluster->GetDetector() >= 36) {
    padSize = 1;                              // medium pads 
    if (cluster->GetRow() > 63) padSize = 2; // long pads
  }

  erry  = clusterParam->GetError0Par( 0, padSize, (250.0 - TMath::Abs(cluster->GetZ())), TMath::Abs(tany) );
  errz  = clusterParam->GetError0Par( 1, padSize, (250.0 - TMath::Abs(cluster->GetZ())), TMath::Abs(tanz) );
}


void  AliTPCseed::GetShape(AliTPCclusterMI* cluster, AliExternalTrackParam * param, 
				  Double_t& rmsy, Double_t &rmsz)
{
  //
  // Get cluster error at given position
  //
  AliTPCClusterParam *clusterParam = AliTPCcalibDB::Instance()->GetClusterParam();
  Double_t tany,tanz;  
  Double_t snp1=param->GetSnp();
  tany=snp1/TMath::Sqrt((1.-snp1)*(1.+snp1));
  //
  Double_t tgl1=param->GetTgl();
  tanz=tgl1/TMath::Sqrt((1.-snp1)*(1.+snp1));
  //
  Int_t padSize = 0;                          // short pads
  if (cluster->GetDetector() >= 36) {
    padSize = 1;                              // medium pads 
    if (cluster->GetRow() > 63) padSize = 2; // long pads
  }

  rmsy  = clusterParam->GetRMSQ( 0, padSize, (250.0 - TMath::Abs(cluster->GetZ())), TMath::Abs(tany), TMath::Abs(cluster->GetMax()) );
  rmsz  = clusterParam->GetRMSQ( 1, padSize, (250.0 - TMath::Abs(cluster->GetZ())), TMath::Abs(tanz) ,TMath::Abs(cluster->GetMax()));
}



Double_t AliTPCseed::GetQCorrGeom(Float_t ty, Float_t tz){
  //Geoetrical
  //ty    - tangent in local y direction
  //tz    - tangent 
  //
  Float_t norm=TMath::Sqrt(1+ty*ty+tz*tz);
  return norm;
}

Double_t AliTPCseed::GetQCorrShape(Int_t ipad, Int_t type,Float_t z, Float_t ty, Float_t tz, Float_t /*q*/, Float_t /*thr*/){
  //
  // Q normalization
  //
  // return value =  Q Normalization factor
  // Normalization - 1 - shape factor part for full drift          
  //                 1 - electron attachment for 0 drift

  // Input parameters:
  //
  // ipad - 0 short pad
  //        1 medium pad
  //        2 long pad
  //
  // type - 0 qmax
  //      - 1 qtot
  //
  //z     - z position (-250,250 cm)
  //ty    - tangent in local y direction
  //tz    - tangent 
  //

  AliTPCClusterParam * paramCl = AliTPCcalibDB::Instance()->GetClusterParam();
  AliTPCParam   * paramTPC = AliTPCcalibDB::Instance()->GetParameters();
 
  if (!paramCl) return 1;
  //
  Double_t dr =  250.-TMath::Abs(z); 
  Double_t sy =  paramCl->GetRMS0( 0,ipad, dr, TMath::Abs(ty));
  Double_t sy0=  paramCl->GetRMS0(0,ipad, 250, 0);
  Double_t sz =  paramCl->GetRMS0( 1,ipad, dr, TMath::Abs(tz));
  Double_t sz0=  paramCl->GetRMS0(1,ipad, 250, 0);

  Double_t sfactorMax = TMath::Sqrt(sy0*sz0/(sy*sz));

 
  Double_t dt = 1000000*(dr/paramTPC->GetDriftV());  //time in microsecond
  Double_t attProb = TMath::Exp(-paramTPC->GetAttCoef()*paramTPC->GetOxyCont()*dt);
  //
  //
  if (type==0) return sfactorMax*attProb;

  return attProb;


}


/*
//_______________________________________________________________________
Float_t AliTPCseed::GetTPCClustInfo(Int_t nNeighbours, Int_t type, Int_t row0, Int_t row1, TVectorT<float> *returnVec)
{
  //
  // TPC cluster information
  // type 0: get fraction of found/findable clusters with neighbourhood definition
  //      1: found clusters
  //      2: findable (number of clusters above and below threshold)
  //
  // definition of findable clusters:
  //            a cluster is defined as findable if there is another cluster
  //           within +- nNeighbours pad rows. The idea is to overcome threshold
  //           effects with a very simple algorithm.
  //

  const Float_t kClusterShapeCut = 1.5; // IMPPRTANT TO DO: move value to AliTPCRecoParam
  const Float_t ktany = TMath::Tan(TMath::DegToRad()*10);
  const Float_t kedgey =3.;
  
  Float_t ncl = 0;
  Float_t nclBelowThr = 0; // counts number of clusters below threshold

  for (Int_t irow=row0; irow<row1; irow++){
    AliTPCclusterMI* cluster = GetClusterPointer(irow);

    if (!cluster && irow > 1 && irow < 157) {
      Bool_t isClBefore = kFALSE;
      Bool_t isClAfter  = kFALSE;
      for(Int_t ithres = 1; ithres <= nNeighbours; ithres++) {
	AliTPCclusterMI * clusterBefore = GetClusterPointer(irow - ithres);
	if (clusterBefore) isClBefore = kTRUE;
	AliTPCclusterMI * clusterAfter  = GetClusterPointer(irow + ithres);
	if (clusterAfter) isClAfter = kTRUE;
      }
      if (isClBefore && isClAfter) nclBelowThr++;
    }
    if (!cluster) continue;
    //
    //
    if (TMath::Abs(cluster->GetY())>cluster->GetX()*ktany-kedgey) continue; // edge cluster
    //
    AliTPCTrackerPoint * point = GetTrackPoint(irow);
    if (point==0) continue;    
    Float_t rsigmay = TMath::Sqrt(point->GetSigmaY());
    if (rsigmay > kClusterShapeCut) continue;
    //
    if (cluster->IsUsed(11)) continue; // remove shared clusters for PbPb
    ncl++;
  }
  if(returnVec->GetNoElements != 3){
      returnVec->ResizeTo(3);
  }
  Float_t nclAll = nclBelowThr+ncl;
  returnVec(0) = nclAll>0?ncl/nclAll:0;
  returnVec(1) = ncl;
  returnVec(2) = nclAll;

  if(ncl<10)
    return 0;
  if(type==0) 
    if(nclAll>0)
      return ncl/nclAll;
  if(type==1)
    return ncl;
  if(type==2)
    return nclAll;
  return 0;
}
*/
//_______________________________________________________________________
Int_t AliTPCseed::GetNumberOfClustersIndices() {
  Int_t ncls = 0;
  for (int i=0; i < 160; i++) {
    if ((fIndex[i] & 0x8000) == 0)
      ncls++;
  }
  return ncls;
}

//_______________________________________________________________________
void AliTPCseed::Clear(Option_t*)
{
  // formally seed may allocate memory for clusters (althought this should not happen for 
  // the seeds in the pool). Hence we need this method for fwd. compatibility
  if (fClusterOwner) for (int i=160;i--;) {delete fClusterPointer[i]; fClusterPointer[i] = 0;}
}

TObject* AliTPCseed::Clone(const char* /*newname*/) const
{
  // temporary override TObject::Clone to avoid crashes in reco
  AliTPCseed* src = (AliTPCseed*)this;
  AliTPCseed* dst = new AliTPCseed(*src,fClusterOwner);
  return dst;
}                                                                                                                                                                    
 AliTPCseed.cxx:1
 AliTPCseed.cxx:2
 AliTPCseed.cxx:3
 AliTPCseed.cxx:4
 AliTPCseed.cxx:5
 AliTPCseed.cxx:6
 AliTPCseed.cxx:7
 AliTPCseed.cxx:8
 AliTPCseed.cxx:9
 AliTPCseed.cxx:10
 AliTPCseed.cxx:11
 AliTPCseed.cxx:12
 AliTPCseed.cxx:13
 AliTPCseed.cxx:14
 AliTPCseed.cxx:15
 AliTPCseed.cxx:16
 AliTPCseed.cxx:17
 AliTPCseed.cxx:18
 AliTPCseed.cxx:19
 AliTPCseed.cxx:20
 AliTPCseed.cxx:21
 AliTPCseed.cxx:22
 AliTPCseed.cxx:23
 AliTPCseed.cxx:24
 AliTPCseed.cxx:25
 AliTPCseed.cxx:26
 AliTPCseed.cxx:27
 AliTPCseed.cxx:28
 AliTPCseed.cxx:29
 AliTPCseed.cxx:30
 AliTPCseed.cxx:31
 AliTPCseed.cxx:32
 AliTPCseed.cxx:33
 AliTPCseed.cxx:34
 AliTPCseed.cxx:35
 AliTPCseed.cxx:36
 AliTPCseed.cxx:37
 AliTPCseed.cxx:38
 AliTPCseed.cxx:39
 AliTPCseed.cxx:40
 AliTPCseed.cxx:41
 AliTPCseed.cxx:42
 AliTPCseed.cxx:43
 AliTPCseed.cxx:44
 AliTPCseed.cxx:45
 AliTPCseed.cxx:46
 AliTPCseed.cxx:47
 AliTPCseed.cxx:48
 AliTPCseed.cxx:49
 AliTPCseed.cxx:50
 AliTPCseed.cxx:51
 AliTPCseed.cxx:52
 AliTPCseed.cxx:53
 AliTPCseed.cxx:54
 AliTPCseed.cxx:55
 AliTPCseed.cxx:56
 AliTPCseed.cxx:57
 AliTPCseed.cxx:58
 AliTPCseed.cxx:59
 AliTPCseed.cxx:60
 AliTPCseed.cxx:61
 AliTPCseed.cxx:62
 AliTPCseed.cxx:63
 AliTPCseed.cxx:64
 AliTPCseed.cxx:65
 AliTPCseed.cxx:66
 AliTPCseed.cxx:67
 AliTPCseed.cxx:68
 AliTPCseed.cxx:69
 AliTPCseed.cxx:70
 AliTPCseed.cxx:71
 AliTPCseed.cxx:72
 AliTPCseed.cxx:73
 AliTPCseed.cxx:74
 AliTPCseed.cxx:75
 AliTPCseed.cxx:76
 AliTPCseed.cxx:77
 AliTPCseed.cxx:78
 AliTPCseed.cxx:79
 AliTPCseed.cxx:80
 AliTPCseed.cxx:81
 AliTPCseed.cxx:82
 AliTPCseed.cxx:83
 AliTPCseed.cxx:84
 AliTPCseed.cxx:85
 AliTPCseed.cxx:86
 AliTPCseed.cxx:87
 AliTPCseed.cxx:88
 AliTPCseed.cxx:89
 AliTPCseed.cxx:90
 AliTPCseed.cxx:91
 AliTPCseed.cxx:92
 AliTPCseed.cxx:93
 AliTPCseed.cxx:94
 AliTPCseed.cxx:95
 AliTPCseed.cxx:96
 AliTPCseed.cxx:97
 AliTPCseed.cxx:98
 AliTPCseed.cxx:99
 AliTPCseed.cxx:100
 AliTPCseed.cxx:101
 AliTPCseed.cxx:102
 AliTPCseed.cxx:103
 AliTPCseed.cxx:104
 AliTPCseed.cxx:105
 AliTPCseed.cxx:106
 AliTPCseed.cxx:107
 AliTPCseed.cxx:108
 AliTPCseed.cxx:109
 AliTPCseed.cxx:110
 AliTPCseed.cxx:111
 AliTPCseed.cxx:112
 AliTPCseed.cxx:113
 AliTPCseed.cxx:114
 AliTPCseed.cxx:115
 AliTPCseed.cxx:116
 AliTPCseed.cxx:117
 AliTPCseed.cxx:118
 AliTPCseed.cxx:119
 AliTPCseed.cxx:120
 AliTPCseed.cxx:121
 AliTPCseed.cxx:122
 AliTPCseed.cxx:123
 AliTPCseed.cxx:124
 AliTPCseed.cxx:125
 AliTPCseed.cxx:126
 AliTPCseed.cxx:127
 AliTPCseed.cxx:128
 AliTPCseed.cxx:129
 AliTPCseed.cxx:130
 AliTPCseed.cxx:131
 AliTPCseed.cxx:132
 AliTPCseed.cxx:133
 AliTPCseed.cxx:134
 AliTPCseed.cxx:135
 AliTPCseed.cxx:136
 AliTPCseed.cxx:137
 AliTPCseed.cxx:138
 AliTPCseed.cxx:139
 AliTPCseed.cxx:140
 AliTPCseed.cxx:141
 AliTPCseed.cxx:142
 AliTPCseed.cxx:143
 AliTPCseed.cxx:144
 AliTPCseed.cxx:145
 AliTPCseed.cxx:146
 AliTPCseed.cxx:147
 AliTPCseed.cxx:148
 AliTPCseed.cxx:149
 AliTPCseed.cxx:150
 AliTPCseed.cxx:151
 AliTPCseed.cxx:152
 AliTPCseed.cxx:153
 AliTPCseed.cxx:154
 AliTPCseed.cxx:155
 AliTPCseed.cxx:156
 AliTPCseed.cxx:157
 AliTPCseed.cxx:158
 AliTPCseed.cxx:159
 AliTPCseed.cxx:160
 AliTPCseed.cxx:161
 AliTPCseed.cxx:162
 AliTPCseed.cxx:163
 AliTPCseed.cxx:164
 AliTPCseed.cxx:165
 AliTPCseed.cxx:166
 AliTPCseed.cxx:167
 AliTPCseed.cxx:168
 AliTPCseed.cxx:169
 AliTPCseed.cxx:170
 AliTPCseed.cxx:171
 AliTPCseed.cxx:172
 AliTPCseed.cxx:173
 AliTPCseed.cxx:174
 AliTPCseed.cxx:175
 AliTPCseed.cxx:176
 AliTPCseed.cxx:177
 AliTPCseed.cxx:178
 AliTPCseed.cxx:179
 AliTPCseed.cxx:180
 AliTPCseed.cxx:181
 AliTPCseed.cxx:182
 AliTPCseed.cxx:183
 AliTPCseed.cxx:184
 AliTPCseed.cxx:185
 AliTPCseed.cxx:186
 AliTPCseed.cxx:187
 AliTPCseed.cxx:188
 AliTPCseed.cxx:189
 AliTPCseed.cxx:190
 AliTPCseed.cxx:191
 AliTPCseed.cxx:192
 AliTPCseed.cxx:193
 AliTPCseed.cxx:194
 AliTPCseed.cxx:195
 AliTPCseed.cxx:196
 AliTPCseed.cxx:197
 AliTPCseed.cxx:198
 AliTPCseed.cxx:199
 AliTPCseed.cxx:200
 AliTPCseed.cxx:201
 AliTPCseed.cxx:202
 AliTPCseed.cxx:203
 AliTPCseed.cxx:204
 AliTPCseed.cxx:205
 AliTPCseed.cxx:206
 AliTPCseed.cxx:207
 AliTPCseed.cxx:208
 AliTPCseed.cxx:209
 AliTPCseed.cxx:210
 AliTPCseed.cxx:211
 AliTPCseed.cxx:212
 AliTPCseed.cxx:213
 AliTPCseed.cxx:214
 AliTPCseed.cxx:215
 AliTPCseed.cxx:216
 AliTPCseed.cxx:217
 AliTPCseed.cxx:218
 AliTPCseed.cxx:219
 AliTPCseed.cxx:220
 AliTPCseed.cxx:221
 AliTPCseed.cxx:222
 AliTPCseed.cxx:223
 AliTPCseed.cxx:224
 AliTPCseed.cxx:225
 AliTPCseed.cxx:226
 AliTPCseed.cxx:227
 AliTPCseed.cxx:228
 AliTPCseed.cxx:229
 AliTPCseed.cxx:230
 AliTPCseed.cxx:231
 AliTPCseed.cxx:232
 AliTPCseed.cxx:233
 AliTPCseed.cxx:234
 AliTPCseed.cxx:235
 AliTPCseed.cxx:236
 AliTPCseed.cxx:237
 AliTPCseed.cxx:238
 AliTPCseed.cxx:239
 AliTPCseed.cxx:240
 AliTPCseed.cxx:241
 AliTPCseed.cxx:242
 AliTPCseed.cxx:243
 AliTPCseed.cxx:244
 AliTPCseed.cxx:245
 AliTPCseed.cxx:246
 AliTPCseed.cxx:247
 AliTPCseed.cxx:248
 AliTPCseed.cxx:249
 AliTPCseed.cxx:250
 AliTPCseed.cxx:251
 AliTPCseed.cxx:252
 AliTPCseed.cxx:253
 AliTPCseed.cxx:254
 AliTPCseed.cxx:255
 AliTPCseed.cxx:256
 AliTPCseed.cxx:257
 AliTPCseed.cxx:258
 AliTPCseed.cxx:259
 AliTPCseed.cxx:260
 AliTPCseed.cxx:261
 AliTPCseed.cxx:262
 AliTPCseed.cxx:263
 AliTPCseed.cxx:264
 AliTPCseed.cxx:265
 AliTPCseed.cxx:266
 AliTPCseed.cxx:267
 AliTPCseed.cxx:268
 AliTPCseed.cxx:269
 AliTPCseed.cxx:270
 AliTPCseed.cxx:271
 AliTPCseed.cxx:272
 AliTPCseed.cxx:273
 AliTPCseed.cxx:274
 AliTPCseed.cxx:275
 AliTPCseed.cxx:276
 AliTPCseed.cxx:277
 AliTPCseed.cxx:278
 AliTPCseed.cxx:279
 AliTPCseed.cxx:280
 AliTPCseed.cxx:281
 AliTPCseed.cxx:282
 AliTPCseed.cxx:283
 AliTPCseed.cxx:284
 AliTPCseed.cxx:285
 AliTPCseed.cxx:286
 AliTPCseed.cxx:287
 AliTPCseed.cxx:288
 AliTPCseed.cxx:289
 AliTPCseed.cxx:290
 AliTPCseed.cxx:291
 AliTPCseed.cxx:292
 AliTPCseed.cxx:293
 AliTPCseed.cxx:294
 AliTPCseed.cxx:295
 AliTPCseed.cxx:296
 AliTPCseed.cxx:297
 AliTPCseed.cxx:298
 AliTPCseed.cxx:299
 AliTPCseed.cxx:300
 AliTPCseed.cxx:301
 AliTPCseed.cxx:302
 AliTPCseed.cxx:303
 AliTPCseed.cxx:304
 AliTPCseed.cxx:305
 AliTPCseed.cxx:306
 AliTPCseed.cxx:307
 AliTPCseed.cxx:308
 AliTPCseed.cxx:309
 AliTPCseed.cxx:310
 AliTPCseed.cxx:311
 AliTPCseed.cxx:312
 AliTPCseed.cxx:313
 AliTPCseed.cxx:314
 AliTPCseed.cxx:315
 AliTPCseed.cxx:316
 AliTPCseed.cxx:317
 AliTPCseed.cxx:318
 AliTPCseed.cxx:319
 AliTPCseed.cxx:320
 AliTPCseed.cxx:321
 AliTPCseed.cxx:322
 AliTPCseed.cxx:323
 AliTPCseed.cxx:324
 AliTPCseed.cxx:325
 AliTPCseed.cxx:326
 AliTPCseed.cxx:327
 AliTPCseed.cxx:328
 AliTPCseed.cxx:329
 AliTPCseed.cxx:330
 AliTPCseed.cxx:331
 AliTPCseed.cxx:332
 AliTPCseed.cxx:333
 AliTPCseed.cxx:334
 AliTPCseed.cxx:335
 AliTPCseed.cxx:336
 AliTPCseed.cxx:337
 AliTPCseed.cxx:338
 AliTPCseed.cxx:339
 AliTPCseed.cxx:340
 AliTPCseed.cxx:341
 AliTPCseed.cxx:342
 AliTPCseed.cxx:343
 AliTPCseed.cxx:344
 AliTPCseed.cxx:345
 AliTPCseed.cxx:346
 AliTPCseed.cxx:347
 AliTPCseed.cxx:348
 AliTPCseed.cxx:349
 AliTPCseed.cxx:350
 AliTPCseed.cxx:351
 AliTPCseed.cxx:352
 AliTPCseed.cxx:353
 AliTPCseed.cxx:354
 AliTPCseed.cxx:355
 AliTPCseed.cxx:356
 AliTPCseed.cxx:357
 AliTPCseed.cxx:358
 AliTPCseed.cxx:359
 AliTPCseed.cxx:360
 AliTPCseed.cxx:361
 AliTPCseed.cxx:362
 AliTPCseed.cxx:363
 AliTPCseed.cxx:364
 AliTPCseed.cxx:365
 AliTPCseed.cxx:366
 AliTPCseed.cxx:367
 AliTPCseed.cxx:368
 AliTPCseed.cxx:369
 AliTPCseed.cxx:370
 AliTPCseed.cxx:371
 AliTPCseed.cxx:372
 AliTPCseed.cxx:373
 AliTPCseed.cxx:374
 AliTPCseed.cxx:375
 AliTPCseed.cxx:376
 AliTPCseed.cxx:377
 AliTPCseed.cxx:378
 AliTPCseed.cxx:379
 AliTPCseed.cxx:380
 AliTPCseed.cxx:381
 AliTPCseed.cxx:382
 AliTPCseed.cxx:383
 AliTPCseed.cxx:384
 AliTPCseed.cxx:385
 AliTPCseed.cxx:386
 AliTPCseed.cxx:387
 AliTPCseed.cxx:388
 AliTPCseed.cxx:389
 AliTPCseed.cxx:390
 AliTPCseed.cxx:391
 AliTPCseed.cxx:392
 AliTPCseed.cxx:393
 AliTPCseed.cxx:394
 AliTPCseed.cxx:395
 AliTPCseed.cxx:396
 AliTPCseed.cxx:397
 AliTPCseed.cxx:398
 AliTPCseed.cxx:399
 AliTPCseed.cxx:400
 AliTPCseed.cxx:401
 AliTPCseed.cxx:402
 AliTPCseed.cxx:403
 AliTPCseed.cxx:404
 AliTPCseed.cxx:405
 AliTPCseed.cxx:406
 AliTPCseed.cxx:407
 AliTPCseed.cxx:408
 AliTPCseed.cxx:409
 AliTPCseed.cxx:410
 AliTPCseed.cxx:411
 AliTPCseed.cxx:412
 AliTPCseed.cxx:413
 AliTPCseed.cxx:414
 AliTPCseed.cxx:415
 AliTPCseed.cxx:416
 AliTPCseed.cxx:417
 AliTPCseed.cxx:418
 AliTPCseed.cxx:419
 AliTPCseed.cxx:420
 AliTPCseed.cxx:421
 AliTPCseed.cxx:422
 AliTPCseed.cxx:423
 AliTPCseed.cxx:424
 AliTPCseed.cxx:425
 AliTPCseed.cxx:426
 AliTPCseed.cxx:427
 AliTPCseed.cxx:428
 AliTPCseed.cxx:429
 AliTPCseed.cxx:430
 AliTPCseed.cxx:431
 AliTPCseed.cxx:432
 AliTPCseed.cxx:433
 AliTPCseed.cxx:434
 AliTPCseed.cxx:435
 AliTPCseed.cxx:436
 AliTPCseed.cxx:437
 AliTPCseed.cxx:438
 AliTPCseed.cxx:439
 AliTPCseed.cxx:440
 AliTPCseed.cxx:441
 AliTPCseed.cxx:442
 AliTPCseed.cxx:443
 AliTPCseed.cxx:444
 AliTPCseed.cxx:445
 AliTPCseed.cxx:446
 AliTPCseed.cxx:447
 AliTPCseed.cxx:448
 AliTPCseed.cxx:449
 AliTPCseed.cxx:450
 AliTPCseed.cxx:451
 AliTPCseed.cxx:452
 AliTPCseed.cxx:453
 AliTPCseed.cxx:454
 AliTPCseed.cxx:455
 AliTPCseed.cxx:456
 AliTPCseed.cxx:457
 AliTPCseed.cxx:458
 AliTPCseed.cxx:459
 AliTPCseed.cxx:460
 AliTPCseed.cxx:461
 AliTPCseed.cxx:462
 AliTPCseed.cxx:463
 AliTPCseed.cxx:464
 AliTPCseed.cxx:465
 AliTPCseed.cxx:466
 AliTPCseed.cxx:467
 AliTPCseed.cxx:468
 AliTPCseed.cxx:469
 AliTPCseed.cxx:470
 AliTPCseed.cxx:471
 AliTPCseed.cxx:472
 AliTPCseed.cxx:473
 AliTPCseed.cxx:474
 AliTPCseed.cxx:475
 AliTPCseed.cxx:476
 AliTPCseed.cxx:477
 AliTPCseed.cxx:478
 AliTPCseed.cxx:479
 AliTPCseed.cxx:480
 AliTPCseed.cxx:481
 AliTPCseed.cxx:482
 AliTPCseed.cxx:483
 AliTPCseed.cxx:484
 AliTPCseed.cxx:485
 AliTPCseed.cxx:486
 AliTPCseed.cxx:487
 AliTPCseed.cxx:488
 AliTPCseed.cxx:489
 AliTPCseed.cxx:490
 AliTPCseed.cxx:491
 AliTPCseed.cxx:492
 AliTPCseed.cxx:493
 AliTPCseed.cxx:494
 AliTPCseed.cxx:495
 AliTPCseed.cxx:496
 AliTPCseed.cxx:497
 AliTPCseed.cxx:498
 AliTPCseed.cxx:499
 AliTPCseed.cxx:500
 AliTPCseed.cxx:501
 AliTPCseed.cxx:502
 AliTPCseed.cxx:503
 AliTPCseed.cxx:504
 AliTPCseed.cxx:505
 AliTPCseed.cxx:506
 AliTPCseed.cxx:507
 AliTPCseed.cxx:508
 AliTPCseed.cxx:509
 AliTPCseed.cxx:510
 AliTPCseed.cxx:511
 AliTPCseed.cxx:512
 AliTPCseed.cxx:513
 AliTPCseed.cxx:514
 AliTPCseed.cxx:515
 AliTPCseed.cxx:516
 AliTPCseed.cxx:517
 AliTPCseed.cxx:518
 AliTPCseed.cxx:519
 AliTPCseed.cxx:520
 AliTPCseed.cxx:521
 AliTPCseed.cxx:522
 AliTPCseed.cxx:523
 AliTPCseed.cxx:524
 AliTPCseed.cxx:525
 AliTPCseed.cxx:526
 AliTPCseed.cxx:527
 AliTPCseed.cxx:528
 AliTPCseed.cxx:529
 AliTPCseed.cxx:530
 AliTPCseed.cxx:531
 AliTPCseed.cxx:532
 AliTPCseed.cxx:533
 AliTPCseed.cxx:534
 AliTPCseed.cxx:535
 AliTPCseed.cxx:536
 AliTPCseed.cxx:537
 AliTPCseed.cxx:538
 AliTPCseed.cxx:539
 AliTPCseed.cxx:540
 AliTPCseed.cxx:541
 AliTPCseed.cxx:542
 AliTPCseed.cxx:543
 AliTPCseed.cxx:544
 AliTPCseed.cxx:545
 AliTPCseed.cxx:546
 AliTPCseed.cxx:547
 AliTPCseed.cxx:548
 AliTPCseed.cxx:549
 AliTPCseed.cxx:550
 AliTPCseed.cxx:551
 AliTPCseed.cxx:552
 AliTPCseed.cxx:553
 AliTPCseed.cxx:554
 AliTPCseed.cxx:555
 AliTPCseed.cxx:556
 AliTPCseed.cxx:557
 AliTPCseed.cxx:558
 AliTPCseed.cxx:559
 AliTPCseed.cxx:560
 AliTPCseed.cxx:561
 AliTPCseed.cxx:562
 AliTPCseed.cxx:563
 AliTPCseed.cxx:564
 AliTPCseed.cxx:565
 AliTPCseed.cxx:566
 AliTPCseed.cxx:567
 AliTPCseed.cxx:568
 AliTPCseed.cxx:569
 AliTPCseed.cxx:570
 AliTPCseed.cxx:571
 AliTPCseed.cxx:572
 AliTPCseed.cxx:573
 AliTPCseed.cxx:574
 AliTPCseed.cxx:575
 AliTPCseed.cxx:576
 AliTPCseed.cxx:577
 AliTPCseed.cxx:578
 AliTPCseed.cxx:579
 AliTPCseed.cxx:580
 AliTPCseed.cxx:581
 AliTPCseed.cxx:582
 AliTPCseed.cxx:583
 AliTPCseed.cxx:584
 AliTPCseed.cxx:585
 AliTPCseed.cxx:586
 AliTPCseed.cxx:587
 AliTPCseed.cxx:588
 AliTPCseed.cxx:589
 AliTPCseed.cxx:590
 AliTPCseed.cxx:591
 AliTPCseed.cxx:592
 AliTPCseed.cxx:593
 AliTPCseed.cxx:594
 AliTPCseed.cxx:595
 AliTPCseed.cxx:596
 AliTPCseed.cxx:597
 AliTPCseed.cxx:598
 AliTPCseed.cxx:599
 AliTPCseed.cxx:600
 AliTPCseed.cxx:601
 AliTPCseed.cxx:602
 AliTPCseed.cxx:603
 AliTPCseed.cxx:604
 AliTPCseed.cxx:605
 AliTPCseed.cxx:606
 AliTPCseed.cxx:607
 AliTPCseed.cxx:608
 AliTPCseed.cxx:609
 AliTPCseed.cxx:610
 AliTPCseed.cxx:611
 AliTPCseed.cxx:612
 AliTPCseed.cxx:613
 AliTPCseed.cxx:614
 AliTPCseed.cxx:615
 AliTPCseed.cxx:616
 AliTPCseed.cxx:617
 AliTPCseed.cxx:618
 AliTPCseed.cxx:619
 AliTPCseed.cxx:620
 AliTPCseed.cxx:621
 AliTPCseed.cxx:622
 AliTPCseed.cxx:623
 AliTPCseed.cxx:624
 AliTPCseed.cxx:625
 AliTPCseed.cxx:626
 AliTPCseed.cxx:627
 AliTPCseed.cxx:628
 AliTPCseed.cxx:629
 AliTPCseed.cxx:630
 AliTPCseed.cxx:631
 AliTPCseed.cxx:632
 AliTPCseed.cxx:633
 AliTPCseed.cxx:634
 AliTPCseed.cxx:635
 AliTPCseed.cxx:636
 AliTPCseed.cxx:637
 AliTPCseed.cxx:638
 AliTPCseed.cxx:639
 AliTPCseed.cxx:640
 AliTPCseed.cxx:641
 AliTPCseed.cxx:642
 AliTPCseed.cxx:643
 AliTPCseed.cxx:644
 AliTPCseed.cxx:645
 AliTPCseed.cxx:646
 AliTPCseed.cxx:647
 AliTPCseed.cxx:648
 AliTPCseed.cxx:649
 AliTPCseed.cxx:650
 AliTPCseed.cxx:651
 AliTPCseed.cxx:652
 AliTPCseed.cxx:653
 AliTPCseed.cxx:654
 AliTPCseed.cxx:655
 AliTPCseed.cxx:656
 AliTPCseed.cxx:657
 AliTPCseed.cxx:658
 AliTPCseed.cxx:659
 AliTPCseed.cxx:660
 AliTPCseed.cxx:661
 AliTPCseed.cxx:662
 AliTPCseed.cxx:663
 AliTPCseed.cxx:664
 AliTPCseed.cxx:665
 AliTPCseed.cxx:666
 AliTPCseed.cxx:667
 AliTPCseed.cxx:668
 AliTPCseed.cxx:669
 AliTPCseed.cxx:670
 AliTPCseed.cxx:671
 AliTPCseed.cxx:672
 AliTPCseed.cxx:673
 AliTPCseed.cxx:674
 AliTPCseed.cxx:675
 AliTPCseed.cxx:676
 AliTPCseed.cxx:677
 AliTPCseed.cxx:678
 AliTPCseed.cxx:679
 AliTPCseed.cxx:680
 AliTPCseed.cxx:681
 AliTPCseed.cxx:682
 AliTPCseed.cxx:683
 AliTPCseed.cxx:684
 AliTPCseed.cxx:685
 AliTPCseed.cxx:686
 AliTPCseed.cxx:687
 AliTPCseed.cxx:688
 AliTPCseed.cxx:689
 AliTPCseed.cxx:690
 AliTPCseed.cxx:691
 AliTPCseed.cxx:692
 AliTPCseed.cxx:693
 AliTPCseed.cxx:694
 AliTPCseed.cxx:695
 AliTPCseed.cxx:696
 AliTPCseed.cxx:697
 AliTPCseed.cxx:698
 AliTPCseed.cxx:699
 AliTPCseed.cxx:700
 AliTPCseed.cxx:701
 AliTPCseed.cxx:702
 AliTPCseed.cxx:703
 AliTPCseed.cxx:704
 AliTPCseed.cxx:705
 AliTPCseed.cxx:706
 AliTPCseed.cxx:707
 AliTPCseed.cxx:708
 AliTPCseed.cxx:709
 AliTPCseed.cxx:710
 AliTPCseed.cxx:711
 AliTPCseed.cxx:712
 AliTPCseed.cxx:713
 AliTPCseed.cxx:714
 AliTPCseed.cxx:715
 AliTPCseed.cxx:716
 AliTPCseed.cxx:717
 AliTPCseed.cxx:718
 AliTPCseed.cxx:719
 AliTPCseed.cxx:720
 AliTPCseed.cxx:721
 AliTPCseed.cxx:722
 AliTPCseed.cxx:723
 AliTPCseed.cxx:724
 AliTPCseed.cxx:725
 AliTPCseed.cxx:726
 AliTPCseed.cxx:727
 AliTPCseed.cxx:728
 AliTPCseed.cxx:729
 AliTPCseed.cxx:730
 AliTPCseed.cxx:731
 AliTPCseed.cxx:732
 AliTPCseed.cxx:733
 AliTPCseed.cxx:734
 AliTPCseed.cxx:735
 AliTPCseed.cxx:736
 AliTPCseed.cxx:737
 AliTPCseed.cxx:738
 AliTPCseed.cxx:739
 AliTPCseed.cxx:740
 AliTPCseed.cxx:741
 AliTPCseed.cxx:742
 AliTPCseed.cxx:743
 AliTPCseed.cxx:744
 AliTPCseed.cxx:745
 AliTPCseed.cxx:746
 AliTPCseed.cxx:747
 AliTPCseed.cxx:748
 AliTPCseed.cxx:749
 AliTPCseed.cxx:750
 AliTPCseed.cxx:751
 AliTPCseed.cxx:752
 AliTPCseed.cxx:753
 AliTPCseed.cxx:754
 AliTPCseed.cxx:755
 AliTPCseed.cxx:756
 AliTPCseed.cxx:757
 AliTPCseed.cxx:758
 AliTPCseed.cxx:759
 AliTPCseed.cxx:760
 AliTPCseed.cxx:761
 AliTPCseed.cxx:762
 AliTPCseed.cxx:763
 AliTPCseed.cxx:764
 AliTPCseed.cxx:765
 AliTPCseed.cxx:766
 AliTPCseed.cxx:767
 AliTPCseed.cxx:768
 AliTPCseed.cxx:769
 AliTPCseed.cxx:770
 AliTPCseed.cxx:771
 AliTPCseed.cxx:772
 AliTPCseed.cxx:773
 AliTPCseed.cxx:774
 AliTPCseed.cxx:775
 AliTPCseed.cxx:776
 AliTPCseed.cxx:777
 AliTPCseed.cxx:778
 AliTPCseed.cxx:779
 AliTPCseed.cxx:780
 AliTPCseed.cxx:781
 AliTPCseed.cxx:782
 AliTPCseed.cxx:783
 AliTPCseed.cxx:784
 AliTPCseed.cxx:785
 AliTPCseed.cxx:786
 AliTPCseed.cxx:787
 AliTPCseed.cxx:788
 AliTPCseed.cxx:789
 AliTPCseed.cxx:790
 AliTPCseed.cxx:791
 AliTPCseed.cxx:792
 AliTPCseed.cxx:793
 AliTPCseed.cxx:794
 AliTPCseed.cxx:795
 AliTPCseed.cxx:796
 AliTPCseed.cxx:797
 AliTPCseed.cxx:798
 AliTPCseed.cxx:799
 AliTPCseed.cxx:800
 AliTPCseed.cxx:801
 AliTPCseed.cxx:802
 AliTPCseed.cxx:803
 AliTPCseed.cxx:804
 AliTPCseed.cxx:805
 AliTPCseed.cxx:806
 AliTPCseed.cxx:807
 AliTPCseed.cxx:808
 AliTPCseed.cxx:809
 AliTPCseed.cxx:810
 AliTPCseed.cxx:811
 AliTPCseed.cxx:812
 AliTPCseed.cxx:813
 AliTPCseed.cxx:814
 AliTPCseed.cxx:815
 AliTPCseed.cxx:816
 AliTPCseed.cxx:817
 AliTPCseed.cxx:818
 AliTPCseed.cxx:819
 AliTPCseed.cxx:820
 AliTPCseed.cxx:821
 AliTPCseed.cxx:822
 AliTPCseed.cxx:823
 AliTPCseed.cxx:824
 AliTPCseed.cxx:825
 AliTPCseed.cxx:826
 AliTPCseed.cxx:827
 AliTPCseed.cxx:828
 AliTPCseed.cxx:829
 AliTPCseed.cxx:830
 AliTPCseed.cxx:831
 AliTPCseed.cxx:832
 AliTPCseed.cxx:833
 AliTPCseed.cxx:834
 AliTPCseed.cxx:835
 AliTPCseed.cxx:836
 AliTPCseed.cxx:837
 AliTPCseed.cxx:838
 AliTPCseed.cxx:839
 AliTPCseed.cxx:840
 AliTPCseed.cxx:841
 AliTPCseed.cxx:842
 AliTPCseed.cxx:843
 AliTPCseed.cxx:844
 AliTPCseed.cxx:845
 AliTPCseed.cxx:846
 AliTPCseed.cxx:847
 AliTPCseed.cxx:848
 AliTPCseed.cxx:849
 AliTPCseed.cxx:850
 AliTPCseed.cxx:851
 AliTPCseed.cxx:852
 AliTPCseed.cxx:853
 AliTPCseed.cxx:854
 AliTPCseed.cxx:855
 AliTPCseed.cxx:856
 AliTPCseed.cxx:857
 AliTPCseed.cxx:858
 AliTPCseed.cxx:859
 AliTPCseed.cxx:860
 AliTPCseed.cxx:861
 AliTPCseed.cxx:862
 AliTPCseed.cxx:863
 AliTPCseed.cxx:864
 AliTPCseed.cxx:865
 AliTPCseed.cxx:866
 AliTPCseed.cxx:867
 AliTPCseed.cxx:868
 AliTPCseed.cxx:869
 AliTPCseed.cxx:870
 AliTPCseed.cxx:871
 AliTPCseed.cxx:872
 AliTPCseed.cxx:873
 AliTPCseed.cxx:874
 AliTPCseed.cxx:875
 AliTPCseed.cxx:876
 AliTPCseed.cxx:877
 AliTPCseed.cxx:878
 AliTPCseed.cxx:879
 AliTPCseed.cxx:880
 AliTPCseed.cxx:881
 AliTPCseed.cxx:882
 AliTPCseed.cxx:883
 AliTPCseed.cxx:884
 AliTPCseed.cxx:885
 AliTPCseed.cxx:886
 AliTPCseed.cxx:887
 AliTPCseed.cxx:888
 AliTPCseed.cxx:889
 AliTPCseed.cxx:890
 AliTPCseed.cxx:891
 AliTPCseed.cxx:892
 AliTPCseed.cxx:893
 AliTPCseed.cxx:894
 AliTPCseed.cxx:895
 AliTPCseed.cxx:896
 AliTPCseed.cxx:897
 AliTPCseed.cxx:898
 AliTPCseed.cxx:899
 AliTPCseed.cxx:900
 AliTPCseed.cxx:901
 AliTPCseed.cxx:902
 AliTPCseed.cxx:903
 AliTPCseed.cxx:904
 AliTPCseed.cxx:905
 AliTPCseed.cxx:906
 AliTPCseed.cxx:907
 AliTPCseed.cxx:908
 AliTPCseed.cxx:909
 AliTPCseed.cxx:910
 AliTPCseed.cxx:911
 AliTPCseed.cxx:912
 AliTPCseed.cxx:913
 AliTPCseed.cxx:914
 AliTPCseed.cxx:915
 AliTPCseed.cxx:916
 AliTPCseed.cxx:917
 AliTPCseed.cxx:918
 AliTPCseed.cxx:919
 AliTPCseed.cxx:920
 AliTPCseed.cxx:921
 AliTPCseed.cxx:922
 AliTPCseed.cxx:923
 AliTPCseed.cxx:924
 AliTPCseed.cxx:925
 AliTPCseed.cxx:926
 AliTPCseed.cxx:927
 AliTPCseed.cxx:928
 AliTPCseed.cxx:929
 AliTPCseed.cxx:930
 AliTPCseed.cxx:931
 AliTPCseed.cxx:932
 AliTPCseed.cxx:933
 AliTPCseed.cxx:934
 AliTPCseed.cxx:935
 AliTPCseed.cxx:936
 AliTPCseed.cxx:937
 AliTPCseed.cxx:938
 AliTPCseed.cxx:939
 AliTPCseed.cxx:940
 AliTPCseed.cxx:941
 AliTPCseed.cxx:942
 AliTPCseed.cxx:943
 AliTPCseed.cxx:944
 AliTPCseed.cxx:945
 AliTPCseed.cxx:946
 AliTPCseed.cxx:947
 AliTPCseed.cxx:948
 AliTPCseed.cxx:949
 AliTPCseed.cxx:950
 AliTPCseed.cxx:951
 AliTPCseed.cxx:952
 AliTPCseed.cxx:953
 AliTPCseed.cxx:954
 AliTPCseed.cxx:955
 AliTPCseed.cxx:956
 AliTPCseed.cxx:957
 AliTPCseed.cxx:958
 AliTPCseed.cxx:959
 AliTPCseed.cxx:960
 AliTPCseed.cxx:961
 AliTPCseed.cxx:962
 AliTPCseed.cxx:963
 AliTPCseed.cxx:964
 AliTPCseed.cxx:965
 AliTPCseed.cxx:966
 AliTPCseed.cxx:967
 AliTPCseed.cxx:968
 AliTPCseed.cxx:969
 AliTPCseed.cxx:970
 AliTPCseed.cxx:971
 AliTPCseed.cxx:972
 AliTPCseed.cxx:973
 AliTPCseed.cxx:974
 AliTPCseed.cxx:975
 AliTPCseed.cxx:976
 AliTPCseed.cxx:977
 AliTPCseed.cxx:978
 AliTPCseed.cxx:979
 AliTPCseed.cxx:980
 AliTPCseed.cxx:981
 AliTPCseed.cxx:982
 AliTPCseed.cxx:983
 AliTPCseed.cxx:984
 AliTPCseed.cxx:985
 AliTPCseed.cxx:986
 AliTPCseed.cxx:987
 AliTPCseed.cxx:988
 AliTPCseed.cxx:989
 AliTPCseed.cxx:990
 AliTPCseed.cxx:991
 AliTPCseed.cxx:992
 AliTPCseed.cxx:993
 AliTPCseed.cxx:994
 AliTPCseed.cxx:995
 AliTPCseed.cxx:996
 AliTPCseed.cxx:997
 AliTPCseed.cxx:998
 AliTPCseed.cxx:999
 AliTPCseed.cxx:1000
 AliTPCseed.cxx:1001
 AliTPCseed.cxx:1002
 AliTPCseed.cxx:1003
 AliTPCseed.cxx:1004
 AliTPCseed.cxx:1005
 AliTPCseed.cxx:1006
 AliTPCseed.cxx:1007
 AliTPCseed.cxx:1008
 AliTPCseed.cxx:1009
 AliTPCseed.cxx:1010
 AliTPCseed.cxx:1011
 AliTPCseed.cxx:1012
 AliTPCseed.cxx:1013
 AliTPCseed.cxx:1014
 AliTPCseed.cxx:1015
 AliTPCseed.cxx:1016
 AliTPCseed.cxx:1017
 AliTPCseed.cxx:1018
 AliTPCseed.cxx:1019
 AliTPCseed.cxx:1020
 AliTPCseed.cxx:1021
 AliTPCseed.cxx:1022
 AliTPCseed.cxx:1023
 AliTPCseed.cxx:1024
 AliTPCseed.cxx:1025
 AliTPCseed.cxx:1026
 AliTPCseed.cxx:1027
 AliTPCseed.cxx:1028
 AliTPCseed.cxx:1029
 AliTPCseed.cxx:1030
 AliTPCseed.cxx:1031
 AliTPCseed.cxx:1032
 AliTPCseed.cxx:1033
 AliTPCseed.cxx:1034
 AliTPCseed.cxx:1035
 AliTPCseed.cxx:1036
 AliTPCseed.cxx:1037
 AliTPCseed.cxx:1038
 AliTPCseed.cxx:1039
 AliTPCseed.cxx:1040
 AliTPCseed.cxx:1041
 AliTPCseed.cxx:1042
 AliTPCseed.cxx:1043
 AliTPCseed.cxx:1044
 AliTPCseed.cxx:1045
 AliTPCseed.cxx:1046
 AliTPCseed.cxx:1047
 AliTPCseed.cxx:1048
 AliTPCseed.cxx:1049
 AliTPCseed.cxx:1050
 AliTPCseed.cxx:1051
 AliTPCseed.cxx:1052
 AliTPCseed.cxx:1053
 AliTPCseed.cxx:1054
 AliTPCseed.cxx:1055
 AliTPCseed.cxx:1056
 AliTPCseed.cxx:1057
 AliTPCseed.cxx:1058
 AliTPCseed.cxx:1059
 AliTPCseed.cxx:1060
 AliTPCseed.cxx:1061
 AliTPCseed.cxx:1062
 AliTPCseed.cxx:1063
 AliTPCseed.cxx:1064
 AliTPCseed.cxx:1065
 AliTPCseed.cxx:1066
 AliTPCseed.cxx:1067
 AliTPCseed.cxx:1068
 AliTPCseed.cxx:1069
 AliTPCseed.cxx:1070
 AliTPCseed.cxx:1071
 AliTPCseed.cxx:1072
 AliTPCseed.cxx:1073
 AliTPCseed.cxx:1074
 AliTPCseed.cxx:1075
 AliTPCseed.cxx:1076
 AliTPCseed.cxx:1077
 AliTPCseed.cxx:1078
 AliTPCseed.cxx:1079
 AliTPCseed.cxx:1080
 AliTPCseed.cxx:1081
 AliTPCseed.cxx:1082
 AliTPCseed.cxx:1083
 AliTPCseed.cxx:1084
 AliTPCseed.cxx:1085
 AliTPCseed.cxx:1086
 AliTPCseed.cxx:1087
 AliTPCseed.cxx:1088
 AliTPCseed.cxx:1089
 AliTPCseed.cxx:1090
 AliTPCseed.cxx:1091
 AliTPCseed.cxx:1092
 AliTPCseed.cxx:1093
 AliTPCseed.cxx:1094
 AliTPCseed.cxx:1095
 AliTPCseed.cxx:1096
 AliTPCseed.cxx:1097
 AliTPCseed.cxx:1098
 AliTPCseed.cxx:1099
 AliTPCseed.cxx:1100
 AliTPCseed.cxx:1101
 AliTPCseed.cxx:1102
 AliTPCseed.cxx:1103
 AliTPCseed.cxx:1104
 AliTPCseed.cxx:1105
 AliTPCseed.cxx:1106
 AliTPCseed.cxx:1107
 AliTPCseed.cxx:1108
 AliTPCseed.cxx:1109
 AliTPCseed.cxx:1110
 AliTPCseed.cxx:1111
 AliTPCseed.cxx:1112
 AliTPCseed.cxx:1113
 AliTPCseed.cxx:1114
 AliTPCseed.cxx:1115
 AliTPCseed.cxx:1116
 AliTPCseed.cxx:1117
 AliTPCseed.cxx:1118
 AliTPCseed.cxx:1119
 AliTPCseed.cxx:1120
 AliTPCseed.cxx:1121
 AliTPCseed.cxx:1122
 AliTPCseed.cxx:1123
 AliTPCseed.cxx:1124
 AliTPCseed.cxx:1125
 AliTPCseed.cxx:1126
 AliTPCseed.cxx:1127
 AliTPCseed.cxx:1128
 AliTPCseed.cxx:1129
 AliTPCseed.cxx:1130
 AliTPCseed.cxx:1131
 AliTPCseed.cxx:1132
 AliTPCseed.cxx:1133
 AliTPCseed.cxx:1134
 AliTPCseed.cxx:1135
 AliTPCseed.cxx:1136
 AliTPCseed.cxx:1137
 AliTPCseed.cxx:1138
 AliTPCseed.cxx:1139
 AliTPCseed.cxx:1140
 AliTPCseed.cxx:1141
 AliTPCseed.cxx:1142
 AliTPCseed.cxx:1143
 AliTPCseed.cxx:1144
 AliTPCseed.cxx:1145
 AliTPCseed.cxx:1146
 AliTPCseed.cxx:1147
 AliTPCseed.cxx:1148
 AliTPCseed.cxx:1149
 AliTPCseed.cxx:1150
 AliTPCseed.cxx:1151
 AliTPCseed.cxx:1152
 AliTPCseed.cxx:1153
 AliTPCseed.cxx:1154
 AliTPCseed.cxx:1155
 AliTPCseed.cxx:1156
 AliTPCseed.cxx:1157
 AliTPCseed.cxx:1158
 AliTPCseed.cxx:1159
 AliTPCseed.cxx:1160
 AliTPCseed.cxx:1161
 AliTPCseed.cxx:1162
 AliTPCseed.cxx:1163
 AliTPCseed.cxx:1164
 AliTPCseed.cxx:1165
 AliTPCseed.cxx:1166
 AliTPCseed.cxx:1167
 AliTPCseed.cxx:1168
 AliTPCseed.cxx:1169
 AliTPCseed.cxx:1170
 AliTPCseed.cxx:1171
 AliTPCseed.cxx:1172
 AliTPCseed.cxx:1173
 AliTPCseed.cxx:1174
 AliTPCseed.cxx:1175
 AliTPCseed.cxx:1176
 AliTPCseed.cxx:1177
 AliTPCseed.cxx:1178
 AliTPCseed.cxx:1179
 AliTPCseed.cxx:1180
 AliTPCseed.cxx:1181
 AliTPCseed.cxx:1182
 AliTPCseed.cxx:1183
 AliTPCseed.cxx:1184
 AliTPCseed.cxx:1185
 AliTPCseed.cxx:1186
 AliTPCseed.cxx:1187
 AliTPCseed.cxx:1188
 AliTPCseed.cxx:1189
 AliTPCseed.cxx:1190
 AliTPCseed.cxx:1191
 AliTPCseed.cxx:1192
 AliTPCseed.cxx:1193
 AliTPCseed.cxx:1194
 AliTPCseed.cxx:1195
 AliTPCseed.cxx:1196
 AliTPCseed.cxx:1197
 AliTPCseed.cxx:1198
 AliTPCseed.cxx:1199
 AliTPCseed.cxx:1200
 AliTPCseed.cxx:1201
 AliTPCseed.cxx:1202
 AliTPCseed.cxx:1203
 AliTPCseed.cxx:1204
 AliTPCseed.cxx:1205
 AliTPCseed.cxx:1206
 AliTPCseed.cxx:1207
 AliTPCseed.cxx:1208
 AliTPCseed.cxx:1209
 AliTPCseed.cxx:1210
 AliTPCseed.cxx:1211
 AliTPCseed.cxx:1212
 AliTPCseed.cxx:1213
 AliTPCseed.cxx:1214
 AliTPCseed.cxx:1215
 AliTPCseed.cxx:1216
 AliTPCseed.cxx:1217
 AliTPCseed.cxx:1218
 AliTPCseed.cxx:1219
 AliTPCseed.cxx:1220
 AliTPCseed.cxx:1221
 AliTPCseed.cxx:1222
 AliTPCseed.cxx:1223
 AliTPCseed.cxx:1224
 AliTPCseed.cxx:1225
 AliTPCseed.cxx:1226
 AliTPCseed.cxx:1227
 AliTPCseed.cxx:1228
 AliTPCseed.cxx:1229
 AliTPCseed.cxx:1230
 AliTPCseed.cxx:1231
 AliTPCseed.cxx:1232
 AliTPCseed.cxx:1233
 AliTPCseed.cxx:1234
 AliTPCseed.cxx:1235
 AliTPCseed.cxx:1236
 AliTPCseed.cxx:1237
 AliTPCseed.cxx:1238
 AliTPCseed.cxx:1239
 AliTPCseed.cxx:1240
 AliTPCseed.cxx:1241
 AliTPCseed.cxx:1242
 AliTPCseed.cxx:1243
 AliTPCseed.cxx:1244
 AliTPCseed.cxx:1245
 AliTPCseed.cxx:1246
 AliTPCseed.cxx:1247
 AliTPCseed.cxx:1248
 AliTPCseed.cxx:1249
 AliTPCseed.cxx:1250
 AliTPCseed.cxx:1251
 AliTPCseed.cxx:1252
 AliTPCseed.cxx:1253
 AliTPCseed.cxx:1254
 AliTPCseed.cxx:1255
 AliTPCseed.cxx:1256
 AliTPCseed.cxx:1257
 AliTPCseed.cxx:1258
 AliTPCseed.cxx:1259
 AliTPCseed.cxx:1260
 AliTPCseed.cxx:1261
 AliTPCseed.cxx:1262
 AliTPCseed.cxx:1263
 AliTPCseed.cxx:1264
 AliTPCseed.cxx:1265
 AliTPCseed.cxx:1266
 AliTPCseed.cxx:1267
 AliTPCseed.cxx:1268
 AliTPCseed.cxx:1269
 AliTPCseed.cxx:1270
 AliTPCseed.cxx:1271
 AliTPCseed.cxx:1272
 AliTPCseed.cxx:1273
 AliTPCseed.cxx:1274
 AliTPCseed.cxx:1275
 AliTPCseed.cxx:1276
 AliTPCseed.cxx:1277
 AliTPCseed.cxx:1278
 AliTPCseed.cxx:1279
 AliTPCseed.cxx:1280
 AliTPCseed.cxx:1281
 AliTPCseed.cxx:1282
 AliTPCseed.cxx:1283
 AliTPCseed.cxx:1284
 AliTPCseed.cxx:1285
 AliTPCseed.cxx:1286
 AliTPCseed.cxx:1287
 AliTPCseed.cxx:1288
 AliTPCseed.cxx:1289
 AliTPCseed.cxx:1290
 AliTPCseed.cxx:1291
 AliTPCseed.cxx:1292
 AliTPCseed.cxx:1293
 AliTPCseed.cxx:1294
 AliTPCseed.cxx:1295
 AliTPCseed.cxx:1296
 AliTPCseed.cxx:1297
 AliTPCseed.cxx:1298
 AliTPCseed.cxx:1299
 AliTPCseed.cxx:1300
 AliTPCseed.cxx:1301
 AliTPCseed.cxx:1302
 AliTPCseed.cxx:1303
 AliTPCseed.cxx:1304
 AliTPCseed.cxx:1305
 AliTPCseed.cxx:1306
 AliTPCseed.cxx:1307
 AliTPCseed.cxx:1308
 AliTPCseed.cxx:1309
 AliTPCseed.cxx:1310
 AliTPCseed.cxx:1311
 AliTPCseed.cxx:1312
 AliTPCseed.cxx:1313
 AliTPCseed.cxx:1314
 AliTPCseed.cxx:1315
 AliTPCseed.cxx:1316
 AliTPCseed.cxx:1317
 AliTPCseed.cxx:1318
 AliTPCseed.cxx:1319
 AliTPCseed.cxx:1320
 AliTPCseed.cxx:1321
 AliTPCseed.cxx:1322
 AliTPCseed.cxx:1323
 AliTPCseed.cxx:1324
 AliTPCseed.cxx:1325
 AliTPCseed.cxx:1326
 AliTPCseed.cxx:1327
 AliTPCseed.cxx:1328
 AliTPCseed.cxx:1329
 AliTPCseed.cxx:1330
 AliTPCseed.cxx:1331
 AliTPCseed.cxx:1332
 AliTPCseed.cxx:1333
 AliTPCseed.cxx:1334
 AliTPCseed.cxx:1335
 AliTPCseed.cxx:1336
 AliTPCseed.cxx:1337
 AliTPCseed.cxx:1338
 AliTPCseed.cxx:1339
 AliTPCseed.cxx:1340
 AliTPCseed.cxx:1341
 AliTPCseed.cxx:1342
 AliTPCseed.cxx:1343
 AliTPCseed.cxx:1344
 AliTPCseed.cxx:1345
 AliTPCseed.cxx:1346
 AliTPCseed.cxx:1347
 AliTPCseed.cxx:1348
 AliTPCseed.cxx:1349
 AliTPCseed.cxx:1350
 AliTPCseed.cxx:1351
 AliTPCseed.cxx:1352
 AliTPCseed.cxx:1353
 AliTPCseed.cxx:1354
 AliTPCseed.cxx:1355
 AliTPCseed.cxx:1356
 AliTPCseed.cxx:1357
 AliTPCseed.cxx:1358
 AliTPCseed.cxx:1359
 AliTPCseed.cxx:1360
 AliTPCseed.cxx:1361
 AliTPCseed.cxx:1362
 AliTPCseed.cxx:1363
 AliTPCseed.cxx:1364
 AliTPCseed.cxx:1365
 AliTPCseed.cxx:1366
 AliTPCseed.cxx:1367
 AliTPCseed.cxx:1368
 AliTPCseed.cxx:1369
 AliTPCseed.cxx:1370
 AliTPCseed.cxx:1371
 AliTPCseed.cxx:1372
 AliTPCseed.cxx:1373
 AliTPCseed.cxx:1374
 AliTPCseed.cxx:1375
 AliTPCseed.cxx:1376
 AliTPCseed.cxx:1377
 AliTPCseed.cxx:1378
 AliTPCseed.cxx:1379
 AliTPCseed.cxx:1380
 AliTPCseed.cxx:1381
 AliTPCseed.cxx:1382
 AliTPCseed.cxx:1383
 AliTPCseed.cxx:1384
 AliTPCseed.cxx:1385
 AliTPCseed.cxx:1386
 AliTPCseed.cxx:1387
 AliTPCseed.cxx:1388
 AliTPCseed.cxx:1389
 AliTPCseed.cxx:1390
 AliTPCseed.cxx:1391
 AliTPCseed.cxx:1392
 AliTPCseed.cxx:1393
 AliTPCseed.cxx:1394
 AliTPCseed.cxx:1395
 AliTPCseed.cxx:1396
 AliTPCseed.cxx:1397
 AliTPCseed.cxx:1398
 AliTPCseed.cxx:1399
 AliTPCseed.cxx:1400
 AliTPCseed.cxx:1401
 AliTPCseed.cxx:1402
 AliTPCseed.cxx:1403
 AliTPCseed.cxx:1404
 AliTPCseed.cxx:1405
 AliTPCseed.cxx:1406
 AliTPCseed.cxx:1407
 AliTPCseed.cxx:1408
 AliTPCseed.cxx:1409
 AliTPCseed.cxx:1410
 AliTPCseed.cxx:1411
 AliTPCseed.cxx:1412
 AliTPCseed.cxx:1413
 AliTPCseed.cxx:1414
 AliTPCseed.cxx:1415
 AliTPCseed.cxx:1416
 AliTPCseed.cxx:1417
 AliTPCseed.cxx:1418
 AliTPCseed.cxx:1419
 AliTPCseed.cxx:1420
 AliTPCseed.cxx:1421
 AliTPCseed.cxx:1422
 AliTPCseed.cxx:1423
 AliTPCseed.cxx:1424
 AliTPCseed.cxx:1425
 AliTPCseed.cxx:1426
 AliTPCseed.cxx:1427
 AliTPCseed.cxx:1428
 AliTPCseed.cxx:1429
 AliTPCseed.cxx:1430
 AliTPCseed.cxx:1431
 AliTPCseed.cxx:1432
 AliTPCseed.cxx:1433
 AliTPCseed.cxx:1434
 AliTPCseed.cxx:1435
 AliTPCseed.cxx:1436
 AliTPCseed.cxx:1437
 AliTPCseed.cxx:1438
 AliTPCseed.cxx:1439
 AliTPCseed.cxx:1440
 AliTPCseed.cxx:1441
 AliTPCseed.cxx:1442
 AliTPCseed.cxx:1443
 AliTPCseed.cxx:1444
 AliTPCseed.cxx:1445
 AliTPCseed.cxx:1446
 AliTPCseed.cxx:1447
 AliTPCseed.cxx:1448
 AliTPCseed.cxx:1449
 AliTPCseed.cxx:1450
 AliTPCseed.cxx:1451
 AliTPCseed.cxx:1452
 AliTPCseed.cxx:1453
 AliTPCseed.cxx:1454
 AliTPCseed.cxx:1455
 AliTPCseed.cxx:1456
 AliTPCseed.cxx:1457
 AliTPCseed.cxx:1458
 AliTPCseed.cxx:1459
 AliTPCseed.cxx:1460
 AliTPCseed.cxx:1461
 AliTPCseed.cxx:1462
 AliTPCseed.cxx:1463
 AliTPCseed.cxx:1464
 AliTPCseed.cxx:1465
 AliTPCseed.cxx:1466
 AliTPCseed.cxx:1467
 AliTPCseed.cxx:1468
 AliTPCseed.cxx:1469
 AliTPCseed.cxx:1470
 AliTPCseed.cxx:1471
 AliTPCseed.cxx:1472
 AliTPCseed.cxx:1473
 AliTPCseed.cxx:1474
 AliTPCseed.cxx:1475
 AliTPCseed.cxx:1476
 AliTPCseed.cxx:1477
 AliTPCseed.cxx:1478
 AliTPCseed.cxx:1479
 AliTPCseed.cxx:1480
 AliTPCseed.cxx:1481
 AliTPCseed.cxx:1482
 AliTPCseed.cxx:1483
 AliTPCseed.cxx:1484
 AliTPCseed.cxx:1485
 AliTPCseed.cxx:1486
 AliTPCseed.cxx:1487
 AliTPCseed.cxx:1488
 AliTPCseed.cxx:1489
 AliTPCseed.cxx:1490
 AliTPCseed.cxx:1491
 AliTPCseed.cxx:1492
 AliTPCseed.cxx:1493
 AliTPCseed.cxx:1494
 AliTPCseed.cxx:1495
 AliTPCseed.cxx:1496
 AliTPCseed.cxx:1497
 AliTPCseed.cxx:1498
 AliTPCseed.cxx:1499
 AliTPCseed.cxx:1500
 AliTPCseed.cxx:1501
 AliTPCseed.cxx:1502
 AliTPCseed.cxx:1503
 AliTPCseed.cxx:1504
 AliTPCseed.cxx:1505
 AliTPCseed.cxx:1506
 AliTPCseed.cxx:1507
 AliTPCseed.cxx:1508
 AliTPCseed.cxx:1509
 AliTPCseed.cxx:1510
 AliTPCseed.cxx:1511
 AliTPCseed.cxx:1512
 AliTPCseed.cxx:1513
 AliTPCseed.cxx:1514
 AliTPCseed.cxx:1515
 AliTPCseed.cxx:1516
 AliTPCseed.cxx:1517
 AliTPCseed.cxx:1518
 AliTPCseed.cxx:1519
 AliTPCseed.cxx:1520
 AliTPCseed.cxx:1521
 AliTPCseed.cxx:1522
 AliTPCseed.cxx:1523
 AliTPCseed.cxx:1524
 AliTPCseed.cxx:1525
 AliTPCseed.cxx:1526
 AliTPCseed.cxx:1527
 AliTPCseed.cxx:1528
 AliTPCseed.cxx:1529
 AliTPCseed.cxx:1530
 AliTPCseed.cxx:1531
 AliTPCseed.cxx:1532
 AliTPCseed.cxx:1533
 AliTPCseed.cxx:1534
 AliTPCseed.cxx:1535
 AliTPCseed.cxx:1536
 AliTPCseed.cxx:1537
 AliTPCseed.cxx:1538
 AliTPCseed.cxx:1539
 AliTPCseed.cxx:1540
 AliTPCseed.cxx:1541
 AliTPCseed.cxx:1542
 AliTPCseed.cxx:1543
 AliTPCseed.cxx:1544
 AliTPCseed.cxx:1545
 AliTPCseed.cxx:1546
 AliTPCseed.cxx:1547
 AliTPCseed.cxx:1548
 AliTPCseed.cxx:1549
 AliTPCseed.cxx:1550
 AliTPCseed.cxx:1551
 AliTPCseed.cxx:1552
 AliTPCseed.cxx:1553
 AliTPCseed.cxx:1554
 AliTPCseed.cxx:1555
 AliTPCseed.cxx:1556
 AliTPCseed.cxx:1557
 AliTPCseed.cxx:1558
 AliTPCseed.cxx:1559
 AliTPCseed.cxx:1560
 AliTPCseed.cxx:1561
 AliTPCseed.cxx:1562
 AliTPCseed.cxx:1563
 AliTPCseed.cxx:1564
 AliTPCseed.cxx:1565
 AliTPCseed.cxx:1566
 AliTPCseed.cxx:1567
 AliTPCseed.cxx:1568
 AliTPCseed.cxx:1569
 AliTPCseed.cxx:1570
 AliTPCseed.cxx:1571
 AliTPCseed.cxx:1572
 AliTPCseed.cxx:1573
 AliTPCseed.cxx:1574
 AliTPCseed.cxx:1575
 AliTPCseed.cxx:1576
 AliTPCseed.cxx:1577
 AliTPCseed.cxx:1578
 AliTPCseed.cxx:1579
 AliTPCseed.cxx:1580
 AliTPCseed.cxx:1581
 AliTPCseed.cxx:1582
 AliTPCseed.cxx:1583
 AliTPCseed.cxx:1584
 AliTPCseed.cxx:1585
 AliTPCseed.cxx:1586
 AliTPCseed.cxx:1587
 AliTPCseed.cxx:1588
 AliTPCseed.cxx:1589
 AliTPCseed.cxx:1590
 AliTPCseed.cxx:1591
 AliTPCseed.cxx:1592
 AliTPCseed.cxx:1593
 AliTPCseed.cxx:1594
 AliTPCseed.cxx:1595
 AliTPCseed.cxx:1596
 AliTPCseed.cxx:1597
 AliTPCseed.cxx:1598
 AliTPCseed.cxx:1599
 AliTPCseed.cxx:1600
 AliTPCseed.cxx:1601
 AliTPCseed.cxx:1602
 AliTPCseed.cxx:1603
 AliTPCseed.cxx:1604
 AliTPCseed.cxx:1605
 AliTPCseed.cxx:1606
 AliTPCseed.cxx:1607
 AliTPCseed.cxx:1608
 AliTPCseed.cxx:1609
 AliTPCseed.cxx:1610
 AliTPCseed.cxx:1611
 AliTPCseed.cxx:1612
 AliTPCseed.cxx:1613
 AliTPCseed.cxx:1614
 AliTPCseed.cxx:1615
 AliTPCseed.cxx:1616
 AliTPCseed.cxx:1617
 AliTPCseed.cxx:1618
 AliTPCseed.cxx:1619
 AliTPCseed.cxx:1620
 AliTPCseed.cxx:1621
 AliTPCseed.cxx:1622
 AliTPCseed.cxx:1623
 AliTPCseed.cxx:1624
 AliTPCseed.cxx:1625
 AliTPCseed.cxx:1626
 AliTPCseed.cxx:1627
 AliTPCseed.cxx:1628
 AliTPCseed.cxx:1629
 AliTPCseed.cxx:1630
 AliTPCseed.cxx:1631
 AliTPCseed.cxx:1632
 AliTPCseed.cxx:1633
 AliTPCseed.cxx:1634
 AliTPCseed.cxx:1635
 AliTPCseed.cxx:1636
 AliTPCseed.cxx:1637
 AliTPCseed.cxx:1638
 AliTPCseed.cxx:1639
 AliTPCseed.cxx:1640
 AliTPCseed.cxx:1641
 AliTPCseed.cxx:1642
 AliTPCseed.cxx:1643
 AliTPCseed.cxx:1644
 AliTPCseed.cxx:1645
 AliTPCseed.cxx:1646
 AliTPCseed.cxx:1647
 AliTPCseed.cxx:1648
 AliTPCseed.cxx:1649
 AliTPCseed.cxx:1650
 AliTPCseed.cxx:1651
 AliTPCseed.cxx:1652
 AliTPCseed.cxx:1653
 AliTPCseed.cxx:1654
 AliTPCseed.cxx:1655
 AliTPCseed.cxx:1656
 AliTPCseed.cxx:1657
 AliTPCseed.cxx:1658
 AliTPCseed.cxx:1659
 AliTPCseed.cxx:1660
 AliTPCseed.cxx:1661
 AliTPCseed.cxx:1662
 AliTPCseed.cxx:1663
 AliTPCseed.cxx:1664
 AliTPCseed.cxx:1665
 AliTPCseed.cxx:1666
 AliTPCseed.cxx:1667
 AliTPCseed.cxx:1668
 AliTPCseed.cxx:1669
 AliTPCseed.cxx:1670
 AliTPCseed.cxx:1671
 AliTPCseed.cxx:1672
 AliTPCseed.cxx:1673
 AliTPCseed.cxx:1674
 AliTPCseed.cxx:1675
 AliTPCseed.cxx:1676
 AliTPCseed.cxx:1677
 AliTPCseed.cxx:1678
 AliTPCseed.cxx:1679
 AliTPCseed.cxx:1680
 AliTPCseed.cxx:1681
 AliTPCseed.cxx:1682
 AliTPCseed.cxx:1683
 AliTPCseed.cxx:1684
 AliTPCseed.cxx:1685
 AliTPCseed.cxx:1686
 AliTPCseed.cxx:1687
 AliTPCseed.cxx:1688
 AliTPCseed.cxx:1689
 AliTPCseed.cxx:1690
 AliTPCseed.cxx:1691
 AliTPCseed.cxx:1692
 AliTPCseed.cxx:1693
 AliTPCseed.cxx:1694
 AliTPCseed.cxx:1695
 AliTPCseed.cxx:1696
 AliTPCseed.cxx:1697
 AliTPCseed.cxx:1698
 AliTPCseed.cxx:1699
 AliTPCseed.cxx:1700
 AliTPCseed.cxx:1701
 AliTPCseed.cxx:1702
 AliTPCseed.cxx:1703
 AliTPCseed.cxx:1704
 AliTPCseed.cxx:1705
 AliTPCseed.cxx:1706
 AliTPCseed.cxx:1707
 AliTPCseed.cxx:1708
 AliTPCseed.cxx:1709
 AliTPCseed.cxx:1710
 AliTPCseed.cxx:1711
 AliTPCseed.cxx:1712
 AliTPCseed.cxx:1713
 AliTPCseed.cxx:1714
 AliTPCseed.cxx:1715
 AliTPCseed.cxx:1716
 AliTPCseed.cxx:1717
 AliTPCseed.cxx:1718
 AliTPCseed.cxx:1719
 AliTPCseed.cxx:1720
 AliTPCseed.cxx:1721
 AliTPCseed.cxx:1722
 AliTPCseed.cxx:1723
 AliTPCseed.cxx:1724
 AliTPCseed.cxx:1725
 AliTPCseed.cxx:1726
 AliTPCseed.cxx:1727
 AliTPCseed.cxx:1728
 AliTPCseed.cxx:1729
 AliTPCseed.cxx:1730
 AliTPCseed.cxx:1731
 AliTPCseed.cxx:1732
 AliTPCseed.cxx:1733
 AliTPCseed.cxx:1734
 AliTPCseed.cxx:1735
 AliTPCseed.cxx:1736
 AliTPCseed.cxx:1737
 AliTPCseed.cxx:1738
 AliTPCseed.cxx:1739
 AliTPCseed.cxx:1740
 AliTPCseed.cxx:1741
 AliTPCseed.cxx:1742
 AliTPCseed.cxx:1743
 AliTPCseed.cxx:1744
 AliTPCseed.cxx:1745
 AliTPCseed.cxx:1746
 AliTPCseed.cxx:1747
 AliTPCseed.cxx:1748
 AliTPCseed.cxx:1749
 AliTPCseed.cxx:1750
 AliTPCseed.cxx:1751
 AliTPCseed.cxx:1752
 AliTPCseed.cxx:1753
 AliTPCseed.cxx:1754
 AliTPCseed.cxx:1755
 AliTPCseed.cxx:1756
 AliTPCseed.cxx:1757
 AliTPCseed.cxx:1758
 AliTPCseed.cxx:1759
 AliTPCseed.cxx:1760
 AliTPCseed.cxx:1761
 AliTPCseed.cxx:1762
 AliTPCseed.cxx:1763
 AliTPCseed.cxx:1764
 AliTPCseed.cxx:1765
 AliTPCseed.cxx:1766
 AliTPCseed.cxx:1767
 AliTPCseed.cxx:1768
 AliTPCseed.cxx:1769
 AliTPCseed.cxx:1770
 AliTPCseed.cxx:1771
 AliTPCseed.cxx:1772
 AliTPCseed.cxx:1773
 AliTPCseed.cxx:1774
 AliTPCseed.cxx:1775
 AliTPCseed.cxx:1776
 AliTPCseed.cxx:1777
 AliTPCseed.cxx:1778
 AliTPCseed.cxx:1779
 AliTPCseed.cxx:1780
 AliTPCseed.cxx:1781
 AliTPCseed.cxx:1782
 AliTPCseed.cxx:1783
 AliTPCseed.cxx:1784
 AliTPCseed.cxx:1785
 AliTPCseed.cxx:1786
 AliTPCseed.cxx:1787
 AliTPCseed.cxx:1788
 AliTPCseed.cxx:1789
 AliTPCseed.cxx:1790
 AliTPCseed.cxx:1791
 AliTPCseed.cxx:1792
 AliTPCseed.cxx:1793
 AliTPCseed.cxx:1794
 AliTPCseed.cxx:1795
 AliTPCseed.cxx:1796
 AliTPCseed.cxx:1797
 AliTPCseed.cxx:1798
 AliTPCseed.cxx:1799
 AliTPCseed.cxx:1800
 AliTPCseed.cxx:1801
 AliTPCseed.cxx:1802
 AliTPCseed.cxx:1803
 AliTPCseed.cxx:1804
 AliTPCseed.cxx:1805
 AliTPCseed.cxx:1806
 AliTPCseed.cxx:1807
 AliTPCseed.cxx:1808
 AliTPCseed.cxx:1809
 AliTPCseed.cxx:1810
 AliTPCseed.cxx:1811
 AliTPCseed.cxx:1812
 AliTPCseed.cxx:1813
 AliTPCseed.cxx:1814
 AliTPCseed.cxx:1815
 AliTPCseed.cxx:1816
 AliTPCseed.cxx:1817
 AliTPCseed.cxx:1818
 AliTPCseed.cxx:1819
 AliTPCseed.cxx:1820
 AliTPCseed.cxx:1821
 AliTPCseed.cxx:1822
 AliTPCseed.cxx:1823
 AliTPCseed.cxx:1824
 AliTPCseed.cxx:1825
 AliTPCseed.cxx:1826
 AliTPCseed.cxx:1827
 AliTPCseed.cxx:1828
 AliTPCseed.cxx:1829
 AliTPCseed.cxx:1830
 AliTPCseed.cxx:1831
 AliTPCseed.cxx:1832
 AliTPCseed.cxx:1833
 AliTPCseed.cxx:1834
 AliTPCseed.cxx:1835
 AliTPCseed.cxx:1836
 AliTPCseed.cxx:1837
 AliTPCseed.cxx:1838
 AliTPCseed.cxx:1839
 AliTPCseed.cxx:1840
 AliTPCseed.cxx:1841
 AliTPCseed.cxx:1842
 AliTPCseed.cxx:1843
 AliTPCseed.cxx:1844
 AliTPCseed.cxx:1845
 AliTPCseed.cxx:1846
 AliTPCseed.cxx:1847
 AliTPCseed.cxx:1848
 AliTPCseed.cxx:1849
 AliTPCseed.cxx:1850
 AliTPCseed.cxx:1851
 AliTPCseed.cxx:1852
 AliTPCseed.cxx:1853
 AliTPCseed.cxx:1854
 AliTPCseed.cxx:1855