//-----------------------------------------------------------------
// 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
//-----------------------------------------------------------------
#include "AliESDtrack.h"
#include "AliESDVertex.h"
#include "TTreeStream.h"
-
+#include "AliTPCRecoParam.h"
+#include "AliTPCReconstructor.h"
ClassImp(AliTPCtrack)
//_________________________________________________________________________
//
// 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=¶m;
- 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(¶m,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;
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
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);
+ }
}
//_____________________________________________________________________________