]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITStrackerSA.cxx
Small optimizations
[u/mrichter/AliRoot.git] / ITS / AliITStrackerSA.cxx
index 0b5194a0feb835e8a4aea515c15556d732cbb508..4305191a7570eb82b970adf7f7265ea9ae0864c3 100644 (file)
@@ -217,6 +217,7 @@ AliITStrackerSA::~AliITStrackerSA(){
   if(fPhiWin)delete []fPhiWin;
   if(fLambdaWin)delete []fLambdaWin;
   fListOfTracks->Delete();
+  delete fListOfTracks;
   if(fCluLayer){
     for(Int_t i=0;i<AliITSgeomTGeo::GetNLayers();i++){
       if(fCluLayer[i]){
@@ -333,9 +334,14 @@ Int_t AliITStrackerSA::FindTracks(AliESDEvent* event){
    
    Int_t nclusters[6]={0,0,0,0,0,0};
    Int_t dmar[6]={0,0,0,0,0,0};
+   if (fCluLayer == 0) {
    fCluLayer = new TClonesArray*[AliITSgeomTGeo::GetNLayers()];
    fCluCoord = new TClonesArray*[AliITSgeomTGeo::GetNLayers()];
-
+     for(Int_t i=0;i<AliITSgeomTGeo::GetNLayers();i++) {
+        fCluLayer[i]=0;
+        fCluCoord[i]=0;
+     }
+   }
    for(Int_t i=0;i<AliITSgeomTGeo::GetNLayers();i++){
      AliITSlayer &layer=fgLayers[i];
      for(Int_t cli=0;cli<layer.GetNumberOfClusters();cli++){
@@ -345,7 +351,9 @@ Int_t AliITStrackerSA::FindTracks(AliESDEvent* event){
        nclusters[i]++;
      }
      dmar[i]=0;
+     delete fCluLayer[i];
      fCluLayer[i] = new TClonesArray("AliITSRecPoint",nclusters[i]);
+     delete fCluCoord[i];
      fCluCoord[i] = new TClonesArray("AliITSclusterTable",nclusters[i]);
    }
 
@@ -1351,13 +1359,13 @@ Double_t AliITStrackerSA::ChoosePoint(Double_t p1, Double_t p2, Double_t pp){
 
 //_________________________________________________________________
 Int_t AliITStrackerSA::FindTrackLowChiSquare(TObjArray* tracklist, Int_t dim) const {
-  // returns track with lowes chi square  
+  // returns track with lowers chi square  
   if(dim==1){
     //AliITStrackV2* trk = (AliITStrackV2*)tracklist->At(0);
     //return trk;
     return 0;
   }
-  //if(dim==0) return 0;
+  if(dim==0) return 0;
   Double_t * chi2 = new Double_t[dim];
   Int_t * index = new Int_t[dim];
   for(Int_t i=0;i<dim;i++){
@@ -1381,10 +1389,10 @@ Int_t AliITStrackerSA::FindTrackLowChiSquare(TObjArray* tracklist, Int_t dim) co
     }
     w++;
   }
-
+  Int_t tmp = index[dim-1];
   delete [] chi2;
   delete [] index;
-  return index[dim-1];
+  return tmp;
 }
 
 //__________________________________________________________
@@ -1397,7 +1405,7 @@ Int_t AliITStrackerSA::FindLabel(Int_t l1, Int_t l2, Int_t l3, Int_t l4, Int_t l
   Int_t ff=0; 
   Int_t ll=0;
   Int_t k=0;Int_t w=0;Int_t num=6;
-  if(lb[5]==-1) num=5;
+  for(Int_t i=5;i>=0;i--) if(lb[i]==-1) num=i;
   
   while(k<num){
   
@@ -1409,11 +1417,11 @@ Int_t AliITStrackerSA::FindLabel(Int_t l1, Int_t l2, Int_t l3, Int_t l4, Int_t l
         aa[i]=0;
       }
     }
-  k++;
+    k++;
   }
 
   while(w<num){
-  
     for(Int_t j=0;j<6;j++){
       if(aa[w]<aa[j]){
       ff=aa[w];
@@ -1424,10 +1432,11 @@ Int_t AliITStrackerSA::FindLabel(Int_t l1, Int_t l2, Int_t l3, Int_t l4, Int_t l
       lb[j]=ll;
      }
     }
-  w++;
+    w++;
   }
-  if(num==6)  return lb[5];
-  else return lb[4];
+  
+  if(num<1) return -1; 
+  return lb[num-1];
 }
 
 //_____________________________________________________________________________
@@ -1551,4 +1560,3 @@ void AliITStrackerSA::GetCoorErrors(AliITSRecPoint* cl,Float_t &sx,Float_t &sy,
 */
 }
 
-