+void AliTPCtracker::LoadOuterSectors() {
+ //-----------------------------------------------------------------
+ // This function fills outer TPC sectors with clusters.
+ //-----------------------------------------------------------------
+ UInt_t index;
+ Int_t j=Int_t(fClustersArray.GetTree()->GetEntries());
+ for (Int_t i=0; i<j; i++) {
+ AliSegmentID *s=fClustersArray.LoadEntry(i);
+ Int_t sec,row;
+ AliTPCParam *par=(AliTPCParam*)fClustersArray.GetParam();
+ par->AdjustSectorRow(s->GetID(),sec,row);
+ if (sec<fkNIS*2) continue;
+ AliTPCClustersRow *clrow=fClustersArray.GetRow(sec,row);
+ Int_t ncl=clrow->GetArray()->GetEntriesFast();
+ while (ncl--) {
+ AliTPCcluster *c=(AliTPCcluster*)(*clrow)[ncl];
+ index=(((sec<<8)+row)<<16)+ncl;
+ fOuterSec[(sec-fkNIS*2)%fkNOS][row].InsertCluster(c,index);
+ }
+ }
+
+ fN=fkNOS;
+ fSectors=fOuterSec;
+}
+
+//_____________________________________________________________________________
+void AliTPCtracker::UnloadOuterSectors() {
+ //-----------------------------------------------------------------
+ // This function clears outer TPC sectors.
+ //-----------------------------------------------------------------
+ Int_t nup=fOuterSec->GetNRows();
+ for (Int_t i=0; i<fkNOS; i++) {
+ for (Int_t j=0; j<nup; j++) {
+ if (fClustersArray.GetRow(i+fkNIS*2,j))
+ fClustersArray.ClearRow(i+fkNIS*2,j);
+ if (fClustersArray.GetRow(i+fkNIS*2+fkNOS,j))
+ fClustersArray.ClearRow(i+fkNIS*2+fkNOS,j);
+ }
+ }
+
+ fN=0;
+ fSectors=0;
+}
+
+//_____________________________________________________________________________
+void AliTPCtracker::LoadInnerSectors() {
+ //-----------------------------------------------------------------
+ // This function fills inner TPC sectors with clusters.
+ //-----------------------------------------------------------------
+ UInt_t index;
+ Int_t j=Int_t(fClustersArray.GetTree()->GetEntries());
+ for (Int_t i=0; i<j; i++) {
+ AliSegmentID *s=fClustersArray.LoadEntry(i);
+ Int_t sec,row;
+ AliTPCParam *par=(AliTPCParam*)fClustersArray.GetParam();
+ par->AdjustSectorRow(s->GetID(),sec,row);
+ if (sec>=fkNIS*2) continue;
+ AliTPCClustersRow *clrow=fClustersArray.GetRow(sec,row);
+ Int_t ncl=clrow->GetArray()->GetEntriesFast();
+ while (ncl--) {
+ AliTPCcluster *c=(AliTPCcluster*)(*clrow)[ncl];
+ index=(((sec<<8)+row)<<16)+ncl;
+ fInnerSec[sec%fkNIS][row].InsertCluster(c,index);
+ }
+ }
+
+ fN=fkNIS;
+ fSectors=fInnerSec;
+}
+
+//_____________________________________________________________________________
+void AliTPCtracker::UnloadInnerSectors() {
+ //-----------------------------------------------------------------
+ // This function clears inner TPC sectors.
+ //-----------------------------------------------------------------
+ Int_t nlow=fInnerSec->GetNRows();
+ for (Int_t i=0; i<fkNIS; i++) {
+ for (Int_t j=0; j<nlow; j++) {
+ if (fClustersArray.GetRow(i,j)) fClustersArray.ClearRow(i,j);
+ if (fClustersArray.GetRow(i+fkNIS,j)) fClustersArray.ClearRow(i+fkNIS,j);
+ }
+ }
+
+ fN=0;
+ fSectors=0;
+}
+
+//_____________________________________________________________________________
+Int_t AliTPCtracker::FollowProlongation(AliTPCseed& t, Int_t rf) {