ROOT logo

#ifndef ALITPCTRACKER_H
#define ALITPCTRACKER_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */


/* $Id$ */

//-------------------------------------------------------
//                       TPC tracker
//   Parallel tracker 
//
//   Origin: 
//-------------------------------------------------------

#include <TArrayI.h>
#include <TMatrixD.h>
#include "AliTracker.h"
#include "AliTPCreco.h"
#include "AliTPCclusterMI.h"
#include "AliTPCtrackerSector.h"
#include "AliESDfriend.h"



class TFile;
class AliTPCParam;
class AliTPCseed;
class AliTPCTrackerPoint;
class AliESDEvent;
class AliESDtrack;
class TTree;
class AliESDkink;
class TTreeSRedirector;
class AliTrackPoint;
class AliDCSSensorArray;
class AliDCSSensor;
class TGraphErrors;


class AliTPCtracker : public AliTracker {
public:
  enum EStreamFlags{ // flags to store addition data/code debugging infomation which is not stored in ESD but in specaial TPCdebug.root file
    kStreamTransform          =0x00001,    // flag:stream cluster transformation 
    kStreamErrParam           =0x00002,    // flag:stream in debug mode cluster and track extrapolation at given row together with error nad shape estimate
    kStreamFilterClusterInfo  =0x00004,    // flag:stream TPC data ouliers filtering information
    kStreamClDump             =0x00008,    // flag:stream clusters at the end of process (signed with useage flags)
    kStreamRemoveUsed         =0x00010,    // flag:stream information about TPC tracks which were descarded (double track removal)
    kStreamRemoveShort        =0x00020,    // flag:stream information about TPC tracks which were discarded (short track removal) 
    kStreamSplitted2          =0x00040,    // flag:stream information about discarded TPC tracks pair algorithm 
    kStreamFillESD            =0x00080,    // flag: stream track information in FillESD function (after track Iteration 0)
    kStreamCPropagateBack     =0x00100,    // flag: stream track information in PropagateBack function (after tracking Iteration 1)
    kStreamRecoverBack        =0x00200,    // flag: stream track information for track  failing PropagateBack function and recovered back
    kStreamRefitInward        =0x00400,    // flag: stream track information in RefitInward function (after tracking Iteration 2)
    kStreamRecoverIn          =0x00800,    // flag: stream track information for track  failing in RefitInward function and recovered back
    kStreamUpdateTrack        =0x01000,    // flag: stream track/cluster infroamtion in track update method
    //
    kStreamCrosstalkMatrix    =0x02000,    // flag: stream crosstalk matrix as used in the reconstruction at given region of TPC
    kStreamXtalk              =0x04000,    // flag: stream crosstalk correction as applied to cluster
    kStreamIonTail            =0x08000,    // flag: stream ion tail correction  as applied to cluster
    kStreamFindMultiMC        =0x10000,    // flag: stream MC infomation about the multiple find track (ONLY for MC data)
    kStreamFindCurling        =0x20000,    // flag: stream track infroamtion in the FindCurling tracks method
    kStreamFindKinks          =0x40000,    // flag: stream track infroamtion in the FindKinks method
  };
  AliTPCtracker();
  AliTPCtracker(const AliTPCParam *par); 
  virtual ~AliTPCtracker();
  //
  void SetIteration(Int_t iteration){fIteration = iteration;}
  virtual Int_t Clusters2TracksHLT(AliESDEvent *const esd, const AliESDEvent *hltEvent);
  virtual Int_t Clusters2Tracks (AliESDEvent *const esd);
  virtual Int_t RefitInward (AliESDEvent *esd);
  virtual Int_t LoadClusters (TTree * const tree);
  virtual Int_t LoadClusters (const TObjArray * arr); // another input
  virtual Int_t LoadClusters (const TClonesArray * arr); // another input
  void    FilterOutlierClusters();   // filter outlier clusters  
  virtual Int_t PostProcess(AliESDEvent *esd); 
  Int_t  LoadClusters();
  void   UnloadClusters();
  Int_t LoadInnerSectors();
  Int_t LoadOuterSectors();
  virtual void FillClusterArray(TObjArray* array) const;
  void   Transform(AliTPCclusterMI * cluster);
  void ApplyTailCancellation();
  void ApplyXtalkCorrection();
  void CalculateXtalkCorrection();
  void GetTailValue(Float_t ampfactor,Double_t &ionTailMax,Double_t &ionTailTotal,TGraphErrors **graphRes,Float_t *indexAmpGraphs,AliTPCclusterMI *cl0,AliTPCclusterMI *cl1);
  //
  void FillESD(const TObjArray* arr);
  void DeleteSeeds();
  void SetDebug(Int_t debug){ fDebug = debug;}
  void FindKinks(TObjArray * array, AliESDEvent * esd);
  //
  void FindCurling(const TObjArray * array, AliESDEvent * esd, Int_t iter);     
  void FindSplitted(TObjArray * array, AliESDEvent * esd, Int_t iter);       
  void FindMultiMC(const TObjArray * array, AliESDEvent * esd, Int_t iter);     
  //
  void UpdateKinkQualityM(AliTPCseed * seed);
  void UpdateKinkQualityD(AliTPCseed * seed);
  Int_t CheckKinkPoint(AliTPCseed*seed, AliTPCseed &mother, AliTPCseed &daughter, const AliESDkink &kink);
  Int_t RefitKink(AliTPCseed &mother, AliTPCseed &daughter, const AliESDkink &kink);
   Int_t ReadSeeds(const TFile *in);
   TObjArray * GetSeeds() const {return fSeeds;}
   void SetSeeds(TObjArray * seeds) { fSeeds = seeds;}
   //   
   AliCluster * GetCluster(Int_t index) const {return (AliCluster*)GetClusterMI(index);}
   AliTPCclusterMI *GetClusterMI(Int_t index) const;
   Int_t Clusters2Tracks();
   virtual void  CookLabel(AliKalmanTrack *tk,Float_t wrong) const; 
   virtual Int_t   CookLabel(AliTPCseed *const t,Float_t wrong, Int_t first,Int_t last ) const; 
   
   void RotateToLocal(AliTPCseed *seed);
   
   Int_t FollowProlongation(AliTPCseed& t, Int_t rf=0, Int_t step=1, Bool_t fromSeeds=0);
   Bool_t GetTrackPoint(Int_t index, AliTrackPoint &p ) const; 

   Int_t FollowBackProlongation(AliTPCseed& t, Int_t rf, Bool_t fromSeeds=0);
   Int_t FollowToNext(AliTPCseed& t, Int_t nr);
   Int_t UpdateClusters(AliTPCseed& t,  Int_t nr);
   Int_t FollowToNextCluster( AliTPCseed& t, Int_t nr);

   Int_t PropagateBack(const TObjArray *const arr);
   Int_t PropagateBack(AliESDEvent * event);
   Int_t PropagateBack(AliTPCseed *const pt, Int_t row0, Int_t row1);   
   Int_t PropagateForward();
   Int_t PropagateForward2(const TObjArray *const arr);

   void SortTracks(TObjArray * arr, Int_t mode) const;
  
   virtual Double_t ErrY2(AliTPCseed* seed, const AliTPCclusterMI * cl = 0);
   virtual Double_t ErrZ2(AliTPCseed* seed, const AliTPCclusterMI * cl = 0);   

   Double_t F1(Double_t x1,Double_t y1, Double_t x2,Double_t y2, Double_t x3,Double_t y3) const; 
   Double_t F1old(Double_t x1,Double_t y1, Double_t x2,Double_t y2, Double_t x3,Double_t y3) const; 
   Double_t F2(Double_t x1,Double_t y1, Double_t x2,Double_t y2, Double_t x3,Double_t y3) const; 
   Double_t F2old(Double_t x1,Double_t y1, Double_t x2,Double_t y2, Double_t x3,Double_t y3) const; 

   Double_t F3(Double_t x1,Double_t y1, Double_t x2,Double_t y2, Double_t z1,Double_t z2) const; 
   Double_t F3n(Double_t x1,Double_t y1, Double_t x2,Double_t y2, Double_t z1,Double_t z2, 
                Double_t c) const; 
   Bool_t GetProlongation(Double_t x1, Double_t x2, Double_t x[5], Double_t &y, Double_t &z) const;
   //
   void ResetSeedsPool();
   void MarkSeedFree( TObject* seed );
   TObject *&NextFreeSeed();
   //
 public:
   void SetUseHLTClusters(Int_t useHLTClusters) {fUseHLTClusters = useHLTClusters;} // set usage from HLT clusters from rec.C options

   inline void SetTPCtrackerSectors(AliTPCtrackerSector *innerSec, AliTPCtrackerSector *outerSec); // set the AliTPCtrackerSector arrays from outside (toy MC)

   Float_t OverlapFactor(AliTPCseed * s1, AliTPCseed * s2, Int_t &sum1, Int_t &sum2);
   void  SignShared(AliTPCseed * s1, AliTPCseed * s2);
   void  SignShared(TObjArray * arr);

   void  RemoveUsed2(TObjArray * arr, Float_t factor1, Float_t factor2, Int_t minimal);

   Int_t AcceptCluster(AliTPCseed * seed, AliTPCclusterMI * cluster);

   Bool_t IsTPCHVDipEvent(AliESDEvent const *esdEvent);

   // public for ToyMC usage
   void MakeSeeds2(TObjArray * arr, Int_t sec, Int_t i1, Int_t i2, Float_t cuts[4], Float_t deltay = -1, Bool_t bconstrain=kTRUE); 
   void MakeSeeds3(TObjArray * arr, Int_t sec, Int_t i1, Int_t i2, Float_t cuts[4], Float_t deltay = -1, Int_t ddsec=0); 
   void SumTracks(TObjArray *arr1,TObjArray *&arr2);
   void SignClusters(const TObjArray * arr, Float_t fnumber=3., Float_t fdensity=2.);  

private:
  Bool_t IsFindable(AliTPCseed & t);
  AliTPCtracker(const AliTPCtracker& r);           //dummy copy constructor
  AliTPCtracker &operator=(const AliTPCtracker& r);//dummy assignment operator
  void AddCovariance(AliTPCseed * seed);               // add covariance
  void AddCovarianceAdd(AliTPCseed * seed);               // add covariance

   inline AliTPCtrackerRow &GetRow(Int_t sec, Int_t row);
   inline Bool_t     IsActive(Int_t sec, Int_t row);
   inline Double_t  GetXrow(Int_t row) const;
   inline Double_t  GetMaxY(Int_t row) const;
   inline Int_t GetRowNumber(Double_t x) const;
   Int_t GetRowNumber(Double_t x[3]) const;
   inline Double_t GetPadPitchLength(Double_t x) const;
   inline Double_t GetPadPitchLength(Int_t row) const;

    void GetShape(AliTPCseed * seed, Int_t row);
 
   void ReadSeeds(const AliESDEvent *const event, Int_t direction);  //read seeds from the event

   void MakeSeeds5(TObjArray * arr, Int_t sec, Int_t i1, Int_t i2, Float_t cuts[4], Float_t deltay = -1);
  

   AliTPCseed *MakeSeed(AliTPCseed *const track, Float_t r0, Float_t r1, Float_t r2); //reseed
   AliTPCseed *ReSeed(const AliTPCseed *t, Float_t r0, Float_t r1, Float_t r2); //reseed
   AliTPCseed *ReSeed(AliTPCseed *t, Int_t r0, Bool_t forward); //reseed


  
   AliTPCseed * ReSeed(AliTPCseed *t);
   //Int_t LoadInnerSectors();
   //Int_t LoadOuterSectors();
   void DumpClusters(Int_t iter, TObjArray *trackArray);
   void UnsignClusters();

   void FillClusterOccupancyInfo();

   void ParallelTracking(TObjArray *const arr, Int_t rfirst, Int_t rlast);
   void Tracking(TObjArray * arr);
   TObjArray * Tracking(Int_t seedtype, Int_t i1, Int_t i2, Float_t cuts[4], Float_t dy=-1, Int_t dsec=0);
   TObjArray * Tracking();
   TObjArray * TrackingSpecial();
   void PrepareForBackProlongation(const TObjArray *const arr, Float_t fac) const;
   void PrepareForProlongation(TObjArray *const arr, Float_t fac) const;

   Int_t UpdateTrack(AliTPCseed *t, Int_t accept); //update trackinfo

   void MakeESDBitmaps(AliTPCseed *t, AliESDtrack *esd);

   Int_t PropagateToRowHLT(AliTPCseed *pt, int nrow);
   void TrackFollowingHLT(TObjArray *const arr);
   TObjArray * MakeSeedsHLT(const AliESDEvent *hltEvent);

   const Int_t fkNIS;        //number of inner sectors
   AliTPCtrackerSector *fInnerSec;  //array of inner sectors;
   const Int_t fkNOS;        //number of outer sectors
   AliTPCtrackerSector *fOuterSec;  //array of outer sectors;

   Int_t fN;               //number of loaded sectors
   AliTPCtrackerSector *fSectors; //pointer to loaded sectors;
   //
   TTree * fInput;       // input tree with clusters
   TTree * fOutput;      // output tree with tracks
   TTree * fSeedTree;    // output tree with seeds - filled in debug mode 1
   TTree * fTreeDebug;   // output with a debug information about track
   AliESDEvent * fEvent;      // output with esd tracks
   const AliESDEvent * fEventHLT;      // input with HLT tracks
   Int_t    fDebug;      // debug option        
   Bool_t   fNewIO;      // indicated if we have data using New IO 
   Int_t fNtracks;                     //current number of tracks
   TObjArray *fSeeds;                  //array of track seeds
   Int_t fIteration;                   // indicate iteration - 0 - froward -1 back - 2forward - back->forward
   //   TObjArray * fTrackPointPool;        // ! pool with track points
   Double_t fXRow[200];                // radius of the pad row
   Double_t fYMax[200];                // max y for given pad row
   Double_t fPadLength[200];                // max y for given pad row
   const AliTPCParam *fkParam;          //pointer to the parameters
   TTreeSRedirector *fDebugStreamer;     //!debug streamer
   Int_t  fUseHLTClusters;              // use HLT clusters instead of offline clusters
   //
  
   TObjArray * fCrossTalkSignalArray;  // for 36 sectors    
   TClonesArray* fSeedsPool;            //! pool of seeds
   TArrayI fFreeSeedsID;                //! array of ID's of freed seeds
   Int_t fNFreeSeeds;                   //! number of seeds freed in the pool
   Int_t fLastSeedID;                   //! id of the pool seed on which is returned by the NextFreeSeed method
   //
   ClassDef(AliTPCtracker,4) 
};


AliTPCtrackerRow & AliTPCtracker::GetRow(Int_t sec, Int_t row)
{
  //
  return (row>=fInnerSec->GetNRows()) ? fOuterSec[sec][row-fInnerSec->GetNRows()]:fInnerSec[sec][row];
}

Bool_t   AliTPCtracker::IsActive(Int_t sec, Int_t row)
{
  //
  // check if the given sector row is active 
  //
  return (row>=fInnerSec->GetNRows()) ? fOuterSec[sec][row-fInnerSec->GetNRows()].GetN()>0:fInnerSec[sec][row].GetN()>0;
}


Double_t  AliTPCtracker::GetXrow(Int_t row) const {
  //  return (row>=fInnerSec->GetNRows()) ? fOuterSec->GetX(row-fInnerSec->GetNRows()):fInnerSec->GetX(row);
  return fXRow[row];
}

Double_t  AliTPCtracker::GetMaxY(Int_t row) const {
  //return (row>=fInnerSec->GetNRows()) ? fOuterSec->GetMaxY(row-fInnerSec->GetNRows()):fInnerSec->GetMaxY(row);
  return fYMax[row];
}

Int_t AliTPCtracker::GetRowNumber(Double_t x) const
{
  //
  return (x>133.) ? fOuterSec->GetRowNumber(x)+fInnerSec->GetNRows():fInnerSec->GetRowNumber(x);
}

Double_t  AliTPCtracker::GetPadPitchLength(Double_t x) const
{
  //
  return (x>133.) ? fOuterSec->GetPadPitchLength(x):fInnerSec->GetPadPitchLength(x);
  //return fPadLength[row];
}

Double_t  AliTPCtracker::GetPadPitchLength(Int_t row) const
{
  //
  return fPadLength[row];
}

void  AliTPCtracker::SetTPCtrackerSectors(AliTPCtrackerSector *innerSec, AliTPCtrackerSector *outerSec)
{
  //
  fInnerSec = innerSec;
  fOuterSec = outerSec;
}

#endif


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