for (Int_t i=imin; i<=imax; i++){
AliTPCclusterMI *c=track->GetClusterPointer(i);
if (!c) continue;
- if (RejectCluster(c,track)) 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;
}
+ if (RejectCluster(c,track)) continue;
if ( !((static_cast<AliExternalTrackParam*>(track)->Update(&r[1],cov)))) isOK=kFALSE;
}
if (!isOK) { delete track; return;}
for (Int_t i=imax; i>=imin; i--){
AliTPCclusterMI *c=track->GetClusterPointer(i);
if (!c) continue;
- if (RejectCluster(c,track)) 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;
}
+ if (RejectCluster(c,track)) continue;
if ( !((static_cast<AliExternalTrackParam*>(track)->Update(&r[1],cov)))) isOK=kFALSE;
}
if (!isOK) { delete track; return;}
for (Int_t i=imin; i<=imax; i++){
AliTPCclusterMI *c=track->GetClusterPointer(i);
if (!c) continue;
- if (RejectCluster(c,track)) 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;
}
+ if (RejectCluster(c,track)) continue;
if ( !((static_cast<AliExternalTrackParam*>(track)->Update(&r[1],cov)))) isOK=kFALSE;
}
if (!isOK) { delete track; return;}
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;
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;
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,