fTrackletIndex[iplane] = 0xffff;
if(!trklts[iplane].IsOK()) fTracklet[iplane] = 0x0;
else{
- fTracklet[iplane] = new AliTRDseedV1(trklts[iplane]);
+ fTracklet[iplane] = &trklts[iplane];
ncls += fTracklet[iplane]->GetN();
}
}
{
//AliInfo("");
//printf("I-AliTRDtrackV1::~AliTRDtrackV1() : Owner[%s]\n", TestBit(kOwner)?"YES":"NO");
- if(fBackupTrack) {
- delete fBackupTrack;
- }
+
+ if(fBackupTrack) delete fBackupTrack;
fBackupTrack = 0x0;
- if(TestBit(kOwner)){
- for(Int_t ip=0; ip<kNplane; ip++){
- if(fTracklet[ip]) delete fTracklet[ip];
- fTracklet[ip] = 0x0;
- }
+ for(Int_t ip=0; ip<kNplane; ip++){
+ if(TestBit(kOwner) && fTracklet[ip]) delete fTracklet[ip];
+ fTracklet[ip] = 0x0;
+ fTrackletIndex[ip] = 0xffff;
}
}
Int_t n = 0;
for(Int_t ip=0; ip<kNplane; ip++){
if(!fTracklet[ip]) continue;
- if(n+fTracklet[ip]->GetN() < id){
+ if(n+fTracklet[ip]->GetN() <= id){
n+=fTracklet[ip]->GetN();
continue;
}
- for(Int_t ic=34; ic>=0; ic--){
- if(!fTracklet[ip]->GetClusters(ic)) continue;
- n++;
- if(n<id) continue;
+ AliTRDcluster *c = 0x0;
+ for(Int_t ic=AliTRDseed::knTimebins-1; ic>=0; ic--){
+ if(!(c = fTracklet[ip]->GetClusters(ic))) continue;
+
+ if(n<id){n++; continue;}
return fTracklet[ip]->GetIndexes(ic);
}
}
// Set the tracklets
//
Int_t plane = trklt->GetPlane();
- if(fTrackletIndex[plane]==0xffff && fTracklet[plane]){
- delete fTracklet[plane];
- }
+
fTracklet[plane] = trklt;
fTrackletIndex[plane] = index;
}
//track.SetSeedLabel(lbl);
// Make backup and mark entrance in the TRD
- seed->UpdateTrackParams(&track, AliESDtrack::kTRDbackup | AliESDtrack::kTRDin);
+ seed->UpdateTrackParams(&track, AliESDtrack::kTRDin);
+ seed->UpdateTrackParams(&track, AliESDtrack::kTRDbackup);
Float_t p4 = track.GetC();
expectedClr = FollowBackProlongation(track);
//track.CookdEdxTimBin(seed->GetID());
track.CookLabel(1. - fgkLabelFraction);
if(track.GetBackupTrack()) UseClusters(track.GetBackupTrack());
-
// Sign only gold tracks
if (track.GetChi2() / track.GetNumberOfClusters() < 4) {
- if ((seed->GetKinkIndex(0) == 0) && (track.Pt() < 1.5)) UseClusters(&track);
+ if ((seed->GetKinkIndex(0) == 0) && (track.Pt() < 1.5)){
+ //UseClusters(&track);
+ }
}
Bool_t isGold = kFALSE;
break;
}
- ptrTracklet->UseClusters();
+ //ptrTracklet->UseClusters();
}
if(!ptrTracklet->IsOK()){
if(x < 1.) continue; //temporary
AliWarning("Fail to build a TRD Track.");
continue;
}
+
//AliInfo("End of MakeTrack()");
AliESDtrack *esdTrack = new ((*esdTrackList)[ntracks0++]) AliESDtrack();
esdTrack->UpdateTrackParams(track, AliESDtrack::kTRDout);