]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCTracklet.cxx
Removing obsolete macros which used the AliTPCtracker
[u/mrichter/AliRoot.git] / TPC / AliTPCTracklet.cxx
index e8b77d51ff86bc7778b8f74aaf111350d1bc25b8..9c670333ea61aa2782f67b37423702da6b8668de 100755 (executable)
@@ -126,7 +126,6 @@ AliTPCTracklet& AliTPCTracklet::operator=(const AliTPCTracklet &t) {
   ////
   if (this!=&t) {
     fNClusters=t.fNClusters;
-    fNStoredClusters=fNStoredClusters;
     delete fClusters;
     if (t.fClusters) {
       fClusters=new AliTPCclusterMI[t.fNStoredClusters];
@@ -184,99 +183,6 @@ AliTPCTracklet::~AliTPCTracklet() {
 
 
 
-/*
-void AliTPCTracklet::FitKalman(const AliTPCseed *track,Int_t sector) {
-  //
-  // Fit using Kalman filter
-  //
-  AliTPCseed *t=new AliTPCseed(*track);
-  if (!t->Rotate(TMath::DegToRad()*(sector%18*20.+10.)-t->GetAlpha())) {
-    delete t;
-    return;
-  }
-  // fit from inner to outer row
-  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;
-
-  //
-  AliTPCseed *outerSeed=new AliTPCseed(*t);
-  Int_t n=0;
-  for (Int_t i=0;i<160;++i) {
-    
-    AliTPCclusterMI *c=t->GetClusterPointer(i);
-    if (c && RejectCluster(c,outerSeed)) continue;
-    if (c&&c->GetDetector()==sector) {
-      if (n==1)        {
-       outerSeed->ResetCovariance(100.);
-       outerSeed->AddCovariance(covar);
-      }
-      ++n;
-      Double_t r[3]={c->GetX(),c->GetY(),c->GetZ()};
-      Double_t cov[3]={0.01,0.,0.01}; //TODO: correct error parametrisation
-      if (!outerSeed->PropagateTo(r[0]) ||
-         !static_cast<AliExternalTrackParam*>(outerSeed)->Update(&r[1],cov)) {
-       delete outerSeed;
-       outerSeed=0;
-       break;
-      }
-    }
-  }
-  if (outerSeed)
-    fOuter=new AliExternalTrackParam(*outerSeed);
-  // fit from outer to inner rows
-  //  AliTPCseed *innerSeed=new AliTPCseed(*t);
-  AliTPCseed *innerSeed=0;
-  if (fOuter) innerSeed=new AliTPCseed(*outerSeed);
-  if (!innerSeed) innerSeed=new AliTPCseed(*t);
-  delete outerSeed;
-
-  n=0;
-  for (Int_t i=159;i>=0;--i) {
-    AliTPCclusterMI *c=t->GetClusterPointer(i);
-    if (c && RejectCluster(c, innerSeed)) continue;
-    if (c&&c->GetDetector()==sector) {
-      if (n==1)        {
-       innerSeed->ResetCovariance(100.);
-       innerSeed->AddCovariance(covar);
-      }
-      ++n;
-      Double_t r[3]={c->GetX(),c->GetY(),c->GetZ()};
-      Double_t cov[3]={0.01,0.,0.01};
-      if (!innerSeed->PropagateTo(r[0]) ||
-         !static_cast<AliExternalTrackParam*>(innerSeed)->Update(&r[1],cov)) {
-       delete innerSeed;
-       innerSeed=0;
-       break;
-      }
-    }
-  }
-  if (innerSeed)
-    fInner=new AliExternalTrackParam(*innerSeed);
-  // propagate to the primary vertex
-  if (innerSeed) {
-    AliTPCseed *primarySeed=new AliTPCseed(*innerSeed);
-    Double_t pos[]={0.,0.,0.};
-    Double_t sigma[]={.1,.1,.1}; //TODO: is this correct?
-    AliESDVertex vertex(pos,sigma);
-    if (primarySeed->PropagateToVertex(&vertex))
-      fPrimary=new AliExternalTrackParam(*primarySeed);
-    delete primarySeed;
-    // for better comparison one does not want to have alpha changed...
-    if (fPrimary) if (!fPrimary->Rotate(fInner->GetAlpha())) {
-      delete fPrimary;
-      fPrimary=0;
-    }
-  }
-  delete innerSeed;
-
-  delete t;
-}
-*/
 
 
 void AliTPCTracklet::FitKalman(const AliTPCseed *seed,Int_t sector) {
@@ -291,11 +197,11 @@ void AliTPCTracklet::FitKalman(const AliTPCseed *seed,Int_t sector) {
   // fit from inner to outer row
   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;
+  covar[0]=1.*1.;
+  covar[2]=1.*1.;
+  covar[5]=1.*1./(64.*64.);
+  covar[9]=1.*1./(64.*64.);
+  covar[14]=0;  // keep pt
   Float_t xmin=1000, xmax=-10000;
   Int_t imin=158, imax=0;
   for (Int_t i=0;i<160;i++) {
@@ -326,6 +232,9 @@ void AliTPCTracklet::FitKalman(const AliTPCseed *seed,Int_t sector) {
     if (!c) continue;
     Double_t r[3]={c->GetX(),c->GetY(),c->GetZ()};
     Double_t cov[3]={0.01,0.,0.01}; //TODO: correct error parametrisation
+    AliTPCseed::GetError(c, track,cov[0],cov[2]);
+    cov[0]*=cov[0];
+    cov[2]*=cov[2];
     if (!track->PropagateTo(r[0])) {
       isOK=kFALSE;
       break;
@@ -342,7 +251,10 @@ void AliTPCTracklet::FitKalman(const AliTPCseed *seed,Int_t sector) {
     AliTPCclusterMI *c=track->GetClusterPointer(i);
     if (!c) continue;
     Double_t r[3]={c->GetX(),c->GetY(),c->GetZ()};
-    Double_t cov[3]={0.01,0.,0.01}; //TODO: correct error parametrisation
+    Double_t cov[3]={0.01,0.,0.01}; 
+    AliTPCseed::GetError(c, track,cov[0],cov[2]);
+    cov[0]*=cov[0];
+    cov[2]*=cov[2];
     if (!track->PropagateTo(r[0])) {
       isOK=kFALSE;
       break;
@@ -359,7 +271,10 @@ void AliTPCTracklet::FitKalman(const AliTPCseed *seed,Int_t sector) {
     AliTPCclusterMI *c=track->GetClusterPointer(i);
     if (!c) continue;
     Double_t r[3]={c->GetX(),c->GetY(),c->GetZ()};
-    Double_t cov[3]={0.01,0.,0.01}; //TODO: correct error parametrisation
+    Double_t cov[3]={0.01,0.,0.01}; 
+    AliTPCseed::GetError(c, track,cov[0],cov[2]);
+    cov[0]*=cov[0];
+    cov[2]*=cov[2];
     if (!track->PropagateTo(r[0])) {
       isOK=kFALSE;
       break;
@@ -375,24 +290,6 @@ void AliTPCTracklet::FitKalman(const AliTPCseed *seed,Int_t sector) {
   fOuter=new AliExternalTrackParam(paramOut);
   fInner=new AliExternalTrackParam(paramIn);
   //
-
-
- //  // propagate to the primary vertex
-//   if (fInner) {
-//     AliExternalTrackParam  *param= new AliExternalTrackParam(*fInner);
-//     Double_t pos[]={0.,0.,0.};
-//     Double_t sigma[]={.1,.1,.1}; //TODO: is this correct?
-//     AliESDVertex vertex(pos,sigma);
-//     if (param->PropagateToVertex(&vertex))
-//       fPrimary=new AliExternalTrackParam(*param);
-//     delete param;
-//     // for better comparison one does not want to have alpha changed...
-//     if (fPrimary) if (!fPrimary->Rotate(fInner->GetAlpha())) {
-//       delete fPrimary;
-//       fPrimary=0;
-//     }
-//   }
-
   delete track;
 }
 
@@ -608,7 +505,7 @@ Bool_t AliTPCTracklet::Riemann2Helix(Double_t *a,Double_t */*ca*/,
   Double_t R=.5*TMath::Sqrt(4.*a[0]+a[1]*a[1]+a[2]*a[2]);
   Double_t dx=x0-xr0;
   if (dx*dx>=R*R) return kFALSE;
-  Double_t dy=TMath::Sqrt(R*R-dx*dx); //sign!!
+  Double_t dy=TMath::Sqrt((R-dx)*(R+dx)); //sign!!
   if (TMath::Abs(yr0+dy)>TMath::Abs(yr0-dy))
     dy=-dy;
   Double_t y0=yr0+dy; 
@@ -710,19 +607,25 @@ Bool_t AliTPCTracklet::PropagateToMeanX(const AliTPCTracklet &t1,
       t2m=new AliExternalTrackParam(*t2.GetOuter());
     }
     Double_t mx=.5*(t1m->GetX()+t2m->GetX());
-    Double_t b1,b2;
+    //Double_t b1,b2;
     Double_t xyz[3];
     t1m->GetXYZ(xyz);
-    b1=GetBz(xyz);
+    //b1=GetBz(xyz);
+    Double_t b1[3]; AliTracker::GetBxByBz(xyz,b1);
     t2m->GetXYZ(xyz);
-    b2=GetBz(xyz);
+    //b2=GetBz(xyz);
+    Double_t b2[3]; AliTracker::GetBxByBz(xyz,b2);
     if (t1m->Rotate(t2m->GetAlpha()) 
-       && t1m->PropagateTo(mx,b1) 
-       && t2m->PropagateTo(mx,b2));
+       //&& t1m->PropagateTo(mx,b1) 
+       //&& t2m->PropagateTo(mx,b2));
+       && t1m->PropagateToBxByBz(mx,b1) 
+       && t2m->PropagateToBxByBz(mx,b2));
     else
       if (t2m->Rotate(t1m->GetAlpha())
-         && t1m->PropagateTo(mx,b1) 
-         && t2m->PropagateTo(mx,b2));
+         //&& t1m->PropagateTo(mx,b1) 
+         //&& t2m->PropagateTo(mx,b2));
+         && t1m->PropagateToBxByBz(mx,b1) 
+         && t2m->PropagateToBxByBz(mx,b2));
       else {
        delete t1m;
        delete t2m;
@@ -735,11 +638,9 @@ Bool_t AliTPCTracklet::PropagateToMeanX(const AliTPCTracklet &t1,
   return t1m&&t2m;
 }
 
-double AliTPCTracklet::GetBz(Double_t *xyz) {
-  if (AliTracker::UniformField())
-    return AliTracker::GetBz();
-  else
-    return AliTracker::GetBz(xyz);
+double AliTPCTracklet::GetBz(Double_t *xyz) 
+{
+  return AliTracker::GetBz(xyz);
 }
 
 void AliTPCTracklet::RandomND(Int_t ndim,const Double_t *p,const Double_t *c,