Int_t entries = fTrackHypothesys.GetEntriesFast();
for (Int_t ientry=0;ientry<entries;ientry++){
TObjArray * array =(TObjArray*)fTrackHypothesys.UncheckedAt(ientry);
- if (array){
- Int_t arrayentries = array->GetEntriesFast();
- for (Int_t j=0;j<arrayentries;j++){
- AliITStrackV2 * track = (AliITStrackV2*)array->UncheckedAt(j);
- if (track){
- delete array->RemoveAt(j);
- }
- }
- delete fTrackHypothesys.RemoveAt(ientry);
- }
+ if (array) array->Delete();
+ delete fTrackHypothesys.RemoveAt(ientry);
}
+
fTrackHypothesys.Delete();
Info("Clusters2Tracks","Number of prolonged tracks: %d\n",ntrk);
if ((esd->GetStatus()&AliESDtrack::kITSout) == 0) continue;
if (esd->GetStatus()&AliESDtrack::kITSrefit) continue;
if (esd->GetStatus()&AliESDtrack::kTPCout)
- if ((esd->GetStatus()&AliESDtrack::kTPCrefit)==0) continue;
+ if ((esd->GetStatus()&AliESDtrack::kTPCrefit)==0) continue;
AliITStrackV2 *t=0;
try {
ResetTrackToFollow(*t);
fTrackToFollow.ResetClusters();
+ if ((esd->GetStatus()&AliESDtrack::kTPCin)==0)
+ fTrackToFollow.ResetCovariance();
+
//Refitting...
if (RefitAt(3.7, &fTrackToFollow, t)) {
fTrackToFollow.SetLabel(t->GetLabel());
if (esdindex>=fTrackHypothesys.GetEntriesFast()) fTrackHypothesys.Expand(esdindex*2+10);
//
- TObjArray * array = (TObjArray*) fTrackHypothesys.UncheckedAt(esdindex);
+ TObjArray * array = (TObjArray*) fTrackHypothesys.At(esdindex);
if (!array) {
array = new TObjArray(10);
fTrackHypothesys.AddAt(array,esdindex);
// compress array of track hypothesys
// keep only maxsize best hypothesys
//-------------------------------------------------------------------
- if (! (fTrackHypothesys.UncheckedAt(esdindex)) ) return;
- TObjArray * array = (TObjArray*) fTrackHypothesys.UncheckedAt(esdindex);
+ if (esdindex>fTrackHypothesys.GetEntriesFast()) return;
+ if (! (fTrackHypothesys.At(esdindex)) ) return;
+ TObjArray * array = (TObjArray*) fTrackHypothesys.At(esdindex);
Int_t entries = array->GetEntries();
if (entries<maxsize) return;
- Float_t chi2[entries];
- Int_t index[entries];
+ Float_t * chi2 = new Float_t[entries];
+ Int_t * index = new Int_t[entries];
Int_t current=0;
//
for (Int_t i=0;i<array->GetEntriesFast();i++){
- AliITStrackV2 * track = (AliITStrackV2*)array->UncheckedAt(i);
- if (!track) continue;
- chi2[current] = track->GetNumberOfClusters()+0.001+track->GetChi2()/track->GetNumberOfClusters();
+ AliITStrackV2 * track = (AliITStrackV2*)array->At(i);
+ if (track)
+ chi2[current] = track->GetNumberOfClusters()+0.001+track->GetChi2()/track->GetNumberOfClusters();
+ else
+ chi2[current] = 100000000;
current++;
}
TMath::Sort(current,chi2,index,kFALSE);
newarray->AddLast(array->RemoveAt(index[i]));
}
array->Delete();
- delete array;
+ delete fTrackHypothesys.RemoveAt(esdindex);
fTrackHypothesys.AddAt(newarray,esdindex);
+ delete [] chi2;
+ delete [] index;
+
}