]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCtrack.cxx
Adding the marker size as additional parameters
[u/mrichter/AliRoot.git] / TPC / AliTPCtrack.cxx
index d5f388e86dbe860e849e440847e2565947edabd1..1291a84b3d45951e461aef3b02d54afcb5059bd2 100644 (file)
@@ -17,7 +17,7 @@
 
 //-----------------------------------------------------------------
 //           Implementation of the TPC track class
-//        This class is used by the AliTPCtracker class
+//        This class is used by the AliTPCtrackerMI class
 //      Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
 //-----------------------------------------------------------------
 
@@ -29,7 +29,8 @@
 #include "AliESDtrack.h"
 #include "AliESDVertex.h"
 #include "TTreeStream.h"
-
+#include  "AliTPCRecoParam.h"
+#include  "AliTPCReconstructor.h"
 ClassImp(AliTPCtrack)
 
 //_________________________________________________________________________
@@ -149,23 +150,26 @@ AliTPCtrack::AliTPCtrack(const AliESDtrack& t, TTreeSRedirector *pcstream) :
   //
   // choose parameters to start
   //
+  const AliTPCRecoParam * recoParam = AliTPCReconstructor::GetRecoParam();
   Int_t reject=0;
   AliExternalTrackParam param(t);
+
   const AliExternalTrackParam  *tpcout=(t.GetFriendTrack())? ((AliESDfriendTrack*)(t.GetFriendTrack()))->GetTPCOut():0;
   const AliExternalTrackParam  *tpcin = t.GetInnerParam();
   const AliExternalTrackParam  *tpc=(tpcout)?tpcout:tpcin;
   if (!tpc) tpc=&param;
-  Bool_t isOK=kTRUE;
+  Bool_t isOK=recoParam->GetUseOuterDetectors();
   if (param.GetCovariance()[0]>kmaxC[0]*kmaxC[0]) isOK=kFALSE;
   if (param.GetCovariance()[2]>kmaxC[1]*kmaxC[1]) isOK=kFALSE;
   if (param.GetCovariance()[5]>kmaxC[2]*kmaxC[2]) isOK=kFALSE;
   if (param.GetCovariance()[9]>kmaxC[3]*kmaxC[3]) isOK=kFALSE;
-  if (!isOK){
+  param.Rotate(tpc->GetAlpha());
+  Double_t oldX=param.GetX(),  oldY=param.GetY(),  oldZ=param.GetZ();
+  if (!isOK ){
     param=*tpc;
     isOK=kTRUE;
     reject=1;
   }
-  param.Rotate(tpc->GetAlpha());
   isOK=AliTracker::PropagateTrackToBxByBz(&param,tpc->GetX(),t.GetMass(),2.,kFALSE);
   if (param.GetCovariance()[0]>kmaxC[0]*kmaxC[0]) isOK=kFALSE;
   if (param.GetCovariance()[2]>kmaxC[1]*kmaxC[1]) isOK=kFALSE;
@@ -184,7 +188,7 @@ AliTPCtrack::AliTPCtrack(const AliESDtrack& t, TTreeSRedirector *pcstream) :
   if (pcstream){
     AliExternalTrackParam dummy;
     AliExternalTrackParam *ptpc=(AliExternalTrackParam *)tpc;
-    if (!ptpc) ptpc=&dummy;
+    //    if (!ptpc) ptpc=&dummy;
     AliESDtrack *esd= (AliESDtrack *)&t;
     (*pcstream)<<"trackP"<<
       "reject="<<reject<<   // flag - rejection of current esd track parameters
@@ -200,6 +204,12 @@ AliTPCtrack::AliTPCtrack(const AliESDtrack& t, TTreeSRedirector *pcstream) :
   StartTimeIntegral();
   Double_t times[10]; t.GetIntegratedTimes(times); SetIntegratedTimes(times);
   SetIntegratedLength(t.GetIntegratedLength());
+
+  if (GetX()>oldX) {
+     Double_t dX=GetX()-oldX, dY=GetY()-oldY, dZ=GetZ()-oldZ;
+     Double_t d=TMath::Sqrt(dX*dX + dY*dY + dZ*dZ);
+     AddTimeStep(d);
+  }
 }
 
 //_____________________________________________________________________________