]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Return also the total size of the track-point arrays so that to avoid memory leaks...
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 12 Sep 2008 21:51:41 +0000 (21:51 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 12 Sep 2008 21:51:41 +0000 (21:51 +0000)
STEER/AliAlignmentTracks.cxx
STEER/AliAlignmentTracks.h

index c54c065386d0c5a1a85569f9ce4284bb4b1317dd..e734e375bc5db3e31e3de9e684e9a62a2abb1e90 100644 (file)
@@ -762,15 +762,16 @@ Bool_t AliAlignmentTracks::AlignVolumes(const TArrayI *volids, const TArrayI *vo
     AliError("Volume IDs array is empty!");
     return kFALSE;
   }
-
   // Load only the tracks with at least one
   // space point in the set of volume (volids)
   BuildIndex();
   AliTrackPointArray **points;
+  Int_t pointsdim;
   // Start the iterations
   Bool_t result = kFALSE;
   while (iterations > 0) {
-    Int_t nArrays = LoadPoints(volids, points);
+    Int_t nArrays = LoadPoints(volids, points,pointsdim);
     if (nArrays == 0) return kFALSE;
 
     AliTrackResiduals *minimizer = CreateMinimizer();
@@ -797,7 +798,7 @@ Bool_t AliAlignmentTracks::AlignVolumes(const TArrayI *volids, const TArrayI *vo
       if(iterations==1)alignObj->Print("");
     }
 
-    UnloadPoints(nArrays, points);
+    UnloadPoints(pointsdim, points);
     
     iterations--;
   }
@@ -805,7 +806,7 @@ Bool_t AliAlignmentTracks::AlignVolumes(const TArrayI *volids, const TArrayI *vo
 }
   
 //______________________________________________________________________________
-Int_t AliAlignmentTracks::LoadPoints(const TArrayI *volids, AliTrackPointArray** &points)
+Int_t AliAlignmentTracks::LoadPoints(const TArrayI *volids, AliTrackPointArray** &points,Int_t &pointsdim)
 {
   // Load track point arrays with at least
   // one space point in a given set of detector
@@ -850,6 +851,7 @@ Int_t AliAlignmentTracks::LoadPoints(const TArrayI *volids, AliTrackPointArray**
   fPointsTree->SetBranchAddress("SP", &array);
 
   // Allocate the pointer to the space-point arrays
+  pointsdim=nArrays;
   points = new AliTrackPointArray*[nArrays];
   for (Int_t i = 0; i < nArrays; i++) points[i] = 0x0;
 
index 655b43b64d905f86b58acdc4d08ecd3669e08683..396da5671376876b25c95a6f79b421d9b86c442a 100644 (file)
@@ -90,7 +90,7 @@ class AliAlignmentTracks : public TObject {
   void ResetAlignObjs();
   void DeleteAlignObjs();
 
-  Int_t LoadPoints(const TArrayI *volids, AliTrackPointArray** &points);
+  Int_t LoadPoints(const TArrayI *volids, AliTrackPointArray** &points,Int_t &pointsdim);
   void  UnloadPoints(Int_t n, AliTrackPointArray **points);
 
   AliTrackFitter *CreateFitter();