+ // find first good tracklet
+ Int_t idx(0); while(idx<kNPlanes && !tracklet[idx].IsOK()) idx++;
+ if(idx>2){ AliDebug(1, Form("Found suspect track start @ layer idx[%d]\n"
+ " %c[0] x0[%f] n[%d] nu[%d] OK[%c]\n"
+ " %c[1] x0[%f] n[%d] nu[%d] OK[%c]\n"
+ " %c[2] x0[%f] n[%d] nu[%d] OK[%c]\n"
+ " %c[3] x0[%f] n[%d] nu[%d] OK[%c]\n"
+ " %c[4] x0[%f] n[%d] nu[%d] OK[%c]\n"
+ " %c[5] x0[%f] n[%d] nu[%d] OK[%c]"
+ ,idx
+ ,idx==0?'*':' ', tracklet[0].GetX0(), tracklet[0].GetN(), tracklet[0].GetNUsed(), tracklet[0].IsOK()?'y':'n'
+ ,idx==1?'*':' ', tracklet[1].GetX0(), tracklet[1].GetN(), tracklet[1].GetNUsed(), tracklet[1].IsOK()?'y':'n'
+ ,idx==2?'*':' ', tracklet[2].GetX0(), tracklet[2].GetN(), tracklet[2].GetNUsed(), tracklet[2].IsOK()?'y':'n'
+ ,idx==3?'*':' ', tracklet[3].GetX0(), tracklet[3].GetN(), tracklet[3].GetNUsed(), tracklet[3].IsOK()?'y':'n'
+ ,idx==4?'*':' ', tracklet[4].GetX0(), tracklet[4].GetN(), tracklet[4].GetNUsed(), tracklet[4].IsOK()?'y':'n'
+ ,idx==5?'*':' ', tracklet[5].GetX0(), tracklet[5].GetN(), tracklet[5].GetNUsed(), tracklet[5].IsOK()?'y':'n'));
+ return NULL;
+ }
+
+ Double_t dx(5.);
+ Double_t x(tracklet[idx].GetX0() - dx);
+ // Build track parameters
+ Double_t params[] = {
+ tracklet[idx].GetYref(0) - dx*tracklet[idx].GetYref(1) // y
+ ,tracklet[idx].GetZref(0) - dx*tracklet[idx].GetZref(1) // z
+ ,TMath::Sin(TMath::ATan(tracklet[idx].GetYref(1))) // snp
+ ,tracklet[idx].GetZref(1) / TMath::Sqrt(1. + tracklet[idx].GetYref(1) * tracklet[idx].GetYref(1)) // tgl
+ ,tracklet[idx].GetC(fkReconstructor->IsHLT()?1:0) // curvature -> 1/pt
+ };
+ Int_t sector(fGeom->GetSector(tracklet[idx].GetDetector()));
+
+ Double_t c[15];