X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TPC%2FAliTPCtracker.cxx;h=5ab1fd4924b14133891e077c2abab0fcbafd65b4;hb=bf1911d56f460b9c1565b6acbe1f34f45f74fa20;hp=e5891f865a08adee2f143d23695b3df34068aa02;hpb=24de2d6d2e84c059fae3e25b5920c6a5871180ec;p=u%2Fmrichter%2FAliRoot.git diff --git a/TPC/AliTPCtracker.cxx b/TPC/AliTPCtracker.cxx index e5891f865a0..5ab1fd4924b 100644 --- a/TPC/AliTPCtracker.cxx +++ b/TPC/AliTPCtracker.cxx @@ -25,7 +25,8 @@ #include #include -#include "AliESD.h" +#include "AliESDEvent.h" +#include "AliESDtrack.h" #include "AliTPCtracker.h" #include "AliTPCcluster.h" @@ -34,23 +35,43 @@ 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; iGetAlpha())%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; iGetX(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); iGetY() > 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();