]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCtracker.cxx
Reverting back the TPC set branch (Marian)
[u/mrichter/AliRoot.git] / TPC / AliTPCtracker.cxx
index e5891f865a08adee2f143d23695b3df34068aa02..5ab1fd4924b14133891e077c2abab0fcbafd65b4 100644 (file)
@@ -25,7 +25,8 @@
 #include <TFile.h>
 #include <TTree.h>
 
-#include "AliESD.h"
+#include "AliESDEvent.h"
+#include "AliESDtrack.h"
 
 #include "AliTPCtracker.h"
 #include "AliTPCcluster.h"
 
 ClassImp(AliTPCtracker)
 
+//_____________________________________________________________________________
+AliTPCtracker::AliTPCtracker(): 
+  AliTracker(), 
+  fkNIS(0), 
+  fInnerSec(0),         
+  fkNOS(0),
+  fOuterSec(0),
+  fN(0),
+  fSectors(0),
+  fParam(0),
+  fSeeds(0)
+{
+  //
+  // The default TPC tracker constructor
+  //
+}
+
 //_____________________________________________________________________________
 AliTPCtracker::AliTPCtracker(const AliTPCParam *par): 
-AliTracker(), fkNIS(par->GetNInnerSector()/2), fkNOS(par->GetNOuterSector()/2)
+  AliTracker(), 
+  fkNIS(par->GetNInnerSector()/2), 
+  fInnerSec(new AliTPCSector[fkNIS]),         
+  fkNOS(par->GetNOuterSector()/2),
+  fOuterSec(new AliTPCSector[fkNOS]),
+  fN(0),
+  fSectors(0),
+  fParam((AliTPCParam*) par),
+  fSeeds(0)
 {
   //---------------------------------------------------------------------
   // The main TPC tracker constructor
   //---------------------------------------------------------------------
-  fInnerSec=new AliTPCSector[fkNIS];         
-  fOuterSec=new AliTPCSector[fkNOS];
 
   Int_t i;
   for (i=0; i<fkNIS; i++) fInnerSec[i].Setup(par,0);
   for (i=0; i<fkNOS; i++) fOuterSec[i].Setup(par,1);
 
-  fParam = (AliTPCParam*) par;
-  fSeeds=0;
-
 }
 
 //_____________________________________________________________________________
@@ -211,7 +232,7 @@ Int_t AliTPCtracker::FollowProlongation(AliTPCseed& t, Int_t rf) {
     UInt_t index=0;
     Double_t maxchi2=kMaxCHI2;
     const AliTPCRow &krow=fSectors[s][nr];
-    Double_t pt=t.GetConvConst()/(100/0.299792458/0.2)/t.Get1Pt();
+    Double_t pt=t.GetSignedPt();
     Double_t sy2=AliTPCcluster::SigmaY2(t.GetX(),t.GetTgl(),pt);
     Double_t sz2=AliTPCcluster::SigmaZ2(t.GetX(),t.GetTgl());
     Double_t road=4.*sqrt(t.GetSigmaY2() + sy2), y=t.GetY(), z=t.GetZ();
@@ -321,7 +342,7 @@ Int_t AliTPCtracker::FollowBackProlongation
   Int_t s=Int_t(alpha/fSectors->GetAlpha())%fN;
 
   Int_t idx=-1, sec=-1, row=-1;
-  Int_t nc=seed.GetNumber();
+  Int_t nc=track.GetNumberOfClusters();
 
   if (nc--) {
      idx=track.GetClusterIndex(nc);
@@ -333,7 +354,8 @@ Int_t AliTPCtracker::FollowBackProlongation
   Int_t nr=fSectors->GetNRows();
   for (Int_t i=0; i<nr; i++) {
     Double_t x=fSectors->GetX(i), ymax=fSectors->GetMaxY(i);
-    Double_t y=seed.GetYat(x);
+    Double_t y;
+    if (!seed.GetYAt(x,GetBz(),y)) return 0;
  
     if (y > ymax) {
        s = (s+1) % fN;
@@ -348,7 +370,7 @@ Int_t AliTPCtracker::FollowBackProlongation
     AliTPCcluster *cl=0;
     Int_t index=0;
     Double_t maxchi2=kMaxCHI2;
-    Double_t pt=seed.GetConvConst()/(100/0.299792458/0.2)/seed.Get1Pt();
+    Double_t pt=seed.GetSignedPt();
     Double_t sy2=AliTPCcluster::SigmaY2(seed.GetX(),seed.GetTgl(),pt);
     Double_t sz2=AliTPCcluster::SigmaZ2(seed.GetX(),seed.GetTgl());
     Double_t road=4.*sqrt(seed.GetSigmaY2() + sy2), z=seed.GetZ();
@@ -379,8 +401,8 @@ Int_t AliTPCtracker::FollowBackProlongation
        const AliTPCRow &krow=fSectors[s][i];
        if (accepted>27)
        if (krow) {
-          for (Int_t i=krow.Find(y-road); i<krow; i++) {
-           AliTPCcluster *c=(AliTPCcluster*)(krow[i]);
+          for (Int_t icl=krow.Find(y-road); icl<krow; icl++) {
+           AliTPCcluster *c=(AliTPCcluster*)(krow[icl]);
            if (c->GetY() > y+road) break;
            if (c->IsUsed()) continue;
         if ((c->GetZ()-z)*(c->GetZ()-z)>16.*(seed.GetSigmaZ2()+sz2)) continue;
@@ -388,7 +410,7 @@ Int_t AliTPCtracker::FollowBackProlongation
            if (chi2 > maxchi2) continue;
            maxchi2=chi2;
            cl=c;
-            index=krow.GetIndex(i);
+            index=krow.GetIndex(icl);
           }
        }
     }
@@ -402,8 +424,6 @@ Int_t AliTPCtracker::FollowBackProlongation
 
   }
 
-  seed.SetNumber(nc);
-
   return 1;
 }
 
@@ -496,8 +516,8 @@ void AliTPCtracker::MakeSeeds(Int_t i1, Int_t i2) {
         c[13]=f30*sy1*f40+f32*sy2*f42;
         c[14]=f40*sy1*f40+f42*sy2*f42+f43*sy3*f43;
 
-        UInt_t index=kr1.GetIndex(is);
-       AliTPCseed *track=new AliTPCseed(index, x, c, x1, ns*alpha+shift);
+        Int_t index=kr1.GetIndex(is);
+       AliTPCseed *track=new AliTPCseed(x1, ns*alpha+shift, x, c, index);
         Float_t l=fSectors->GetPadPitchWidth();
         track->SetSampledEdx(kr1[is]->GetQ()/l,0);
 
@@ -550,7 +570,7 @@ Int_t AliTPCtracker::ReadSeeds(const TFile *inp) {
 }
 
 //_____________________________________________________________________________
-Int_t AliTPCtracker::Clusters2Tracks(AliESD *event) {
+Int_t AliTPCtracker::Clusters2Tracks(AliESDEvent *event) {
   //-----------------------------------------------------------------
   // This is a track finder.
   // The clusters must be already loaded ! 
@@ -616,7 +636,7 @@ Int_t AliTPCtracker::Clusters2Tracks(AliESD *event) {
 }
 
 //_____________________________________________________________________________
-Int_t AliTPCtracker::RefitInward(AliESD* event) {
+Int_t AliTPCtracker::RefitInward(AliESDEvent* event) {
   //
   // The function propagates tracks throught TPC inward
   // using already associated clusters.
@@ -639,7 +659,7 @@ Int_t AliTPCtracker::RefitInward(AliESD* event) {
     AliTPCtrack* tpcTrack = new AliTPCtrack(*track);
     AliTPCseed* seed=new AliTPCseed(*tpcTrack); seed->ResetClusters(); 
 
-    if ( (status & AliESDtrack::kTRDrefit) == 0 ) seed->ResetCovariance();
+    if ( (status & AliESDtrack::kTRDrefit) == 0 ) seed->ResetCovariance(10.);
 
     fSectors = fOuterSec;
 
@@ -669,7 +689,7 @@ Int_t AliTPCtracker::RefitInward(AliESD* event) {
   return 0;
 }
 
-Int_t AliTPCtracker::PropagateBack(AliESD *event) {
+Int_t AliTPCtracker::PropagateBack(AliESDEvent *event) {
   //-----------------------------------------------------------------
   // This function propagates tracks back through the TPC.
   // The clusters must be already loaded !
@@ -690,10 +710,7 @@ Int_t AliTPCtracker::PropagateBack(AliESD *event) {
     const AliTPCtrack t(*esd);
     AliTPCseed s(t); s.ResetClusters();
 
-    if ( (status & AliESDtrack::kITSout) == 0 ) s.ResetCovariance();
-
-    Int_t nc=t.GetNumberOfClusters();
-    s.SetNumber(nc); //set number of the cluster to start with
+    if ( (status & AliESDtrack::kITSout) == 0 ) s.ResetCovariance(10.);
 
     //inner sectors
     fSectors=fInnerSec; fN=fkNIS;
@@ -713,7 +730,7 @@ Int_t AliTPCtracker::PropagateBack(AliESD *event) {
     //outer sectors
     fSectors=fOuterSec; fN=fkNOS;
 
-    nc=s.GetNumberOfClusters();
+    Int_t nc=s.GetNumberOfClusters();
 
     alpha=s.GetAlpha() - fSectors->GetAlphaShift();
     if (alpha > 2.*TMath::Pi()) alpha -= 2.*TMath::Pi();