]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Fixing memory leaks
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 21 Jul 2004 06:01:38 +0000 (06:01 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 21 Jul 2004 06:01:38 +0000 (06:01 +0000)
ITS/AliITStrackerSA.cxx
ITS/AliITStrackerV2.cxx

index 8d75a8afa9cc163854b20a964a0a55b508adb9fc..f292403e6cfdebf5971c0f58cd98d95ce10b2366 100644 (file)
@@ -305,6 +305,8 @@ void AliITStrackerSA::FindTracks(TTree *out,Int_t evnumber){
             AliITSclusterV2* kl = (AliITSclusterV2*)GetCluster(index);
            if(kl->TestBit(kSAflag)==kTRUE) kl->ResetBit(kSAflag);
           }
+         delete [] nn;
+         delete trs;
          continue;
         }
         outrack=tr2;  
@@ -327,6 +329,7 @@ void AliITStrackerSA::FindTracks(TTree *out,Int_t evnumber){
                  if(kl->TestBit(kSAflag)==kTRUE) kl->ResetBit(kSAflag);
         }
       }
+      delete [] nn;
       delete trs;
 
     }//end loop on clusters of layer1
@@ -382,6 +385,7 @@ void AliITStrackerSA::FindTracks(TTree *out,Int_t evnumber){
               AliITSclusterV2* kl = (AliITSclusterV2*)GetCluster(index);
              if(kl->TestBit(kSAflag)==kTRUE) kl->ResetBit(kSAflag);
             }
+           delete trs;
             continue;
           }
           outrack=tr2;
@@ -751,7 +755,13 @@ AliITStrackV2* AliITStrackerSA::FitTrack(AliITStrackSA* tr,Double_t *primaryVert
         Float_t seed1,seed2,seed3;
         AliITSRiemannFit fit;
         Int_t rf = fit.FitHelix(3,recp,errs,seed1,seed2,seed3); //this gives phi,tgl,curvature to start Kalman Filter
-        if(rf==0) continue;  
+        if(rf==0) {
+         for(Int_t i=1;i<3;i++){
+           delete recp[i];
+           delete errs[i];
+         }     
+         continue;
+       }  
         Double_t phi=seed1;
         Double_t tgl=seed2;
         
@@ -818,7 +828,11 @@ AliITStrackV2* AliITStrackerSA::FitTrack(AliITStrackSA* tr,Double_t *primaryVert
                 otrack2->ResetCovariance(); 
                 otrack2->ResetClusters();
                 //fit from layer 6 to layer 1
-                if(RefitAt(3.7,otrack2,ot)) fListOfTracks->AddLast(otrack2);
+                if(RefitAt(3.7,otrack2,ot)) {
+                 fListOfTracks->AddLast(otrack2);
+               } else {
+                 delete otrack2;
+               }
                               
               }       
           
@@ -848,12 +862,20 @@ AliITStrackV2* AliITStrackerSA::FitTrack(AliITStrackSA* tr,Double_t *primaryVert
       delete listlayer[i];
     }
     delete listlayer;
+    delete [] firstmod;
     return 0;
   }
 
   AliITStrackV2* otrack =(AliITStrackV2*)FindTrackLowChiSquare(fListOfTracks,dim);
 
-  if(otrack==0) return 0;
+  if(otrack==0) {
+    for(Int_t i=0;i<fGeom->GetNlayers();i++){
+      delete listlayer[i];
+    }
+    delete listlayer; 
+    delete [] firstmod;
+    return 0;
+  }
   Int_t * indexc = new Int_t[fGeom->GetNlayers()];
   for(Int_t i=0;i<fGeom->GetNlayers();i++) indexc[i]=0;
   for(Int_t nind=0;nind<otrack->GetNumberOfClusters();nind++){
index fdc91b2401ead53d5eb015ea679dce0c4b3b7dca..6d6a5335cf1856de8d1b889b1874ad61e5b354ee 100644 (file)
@@ -1242,6 +1242,7 @@ void AliITStrackerV2::SortTrackHypothesys(Int_t esdindex, Float_t likelihoodleve
   fTrackHypothesys.AddAt(newarray,esdindex);
 
   delete [] chi2;
+  delete [] probability;
   delete [] index;
 
 }
@@ -1399,12 +1400,12 @@ AliITStrackV2 * AliITStrackerV2::GetBestHypothesys(Int_t esdindex, AliITStrackV2
       delete array->RemoveAt(i);
       continue;
     }
-    if ( (forwardtrack->GetChi2()/float(forwardtrack->GetNumberOfClusters()-track->GetNSkipped()-track->GetNUsed()))>6) 
-      {
-       delete forwardtrack; 
-       delete array->RemoveAt(i);
-       continue;
-      }
+    if ( (forwardtrack->GetChi2()/float(forwardtrack->GetNumberOfClusters()-track->GetNSkipped()-track->GetNUsed()))>6) {
+      delete forwardtrack; 
+      delete backtrack;
+      delete array->RemoveAt(i);
+      continue;
+    }
     //
     accepted++;
     if (accepted>checkmax){
@@ -1425,6 +1426,7 @@ AliITStrackV2 * AliITStrackerV2::GetBestHypothesys(Int_t esdindex, AliITStrackV2
     //
     
     if (track->GetNumberOfClusters()>maxn){
+      delete besttrack;
       besttrack =  new AliITStrackV2(*forwardtrack);
       maxn      =  track->GetNumberOfClusters();
       minchi2   =  chi2;
@@ -1443,6 +1445,7 @@ AliITStrackV2 * AliITStrackerV2::GetBestHypothesys(Int_t esdindex, AliITStrackV2
   //
   //
   if (!besttrack || besttrack->GetNumberOfClusters()<4) {
+    delete besttrack;
     return 0;
   }