]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Avoid two copies of the ESD friend track (Yuri)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 13 Sep 2007 20:56:13 +0000 (20:56 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 13 Sep 2007 20:56:13 +0000 (20:56 +0000)
STEER/AliESD.cxx
STEER/AliESDEvent.cxx
STEER/AliESDtrack.h

index 576e276954a8199ca1601d079f81c52219ff91e1..6b12b4876a9ca96ea51bb6fb0c680428159a921d 100644 (file)
@@ -305,8 +305,11 @@ void AliESD::GetESDfriend(AliESDfriend *ev) const {
   Int_t ntrk=GetNumberOfTracks();
 
   for (Int_t i=0; i<ntrk; i++) {
-    const AliESDtrack *t=GetTrack(i);
+    AliESDtrack *t=GetTrack(i);
     const AliESDfriendTrack *f=t->GetFriendTrack();
     ev->AddTrack(f);
+
+    t->ReleaseESDfriendTrack();// Not to have two copies of "friendTrack"
+
   }
 }
index 0460f61e38d31f179f94ed0e77d909ee02f55611..0c79d0615c1225655a09f2dace8f04c042253d27 100644 (file)
@@ -499,9 +499,12 @@ void AliESDEvent::GetESDfriend(AliESDfriend *ev) const {
   Int_t ntrk=GetNumberOfTracks();
 
   for (Int_t i=0; i<ntrk; i++) {
-    const AliESDtrack *t=GetTrack(i);
+    AliESDtrack *t=GetTrack(i);
     const AliESDfriendTrack *f=t->GetFriendTrack();
     ev->AddTrack(f);
+
+    t->ReleaseESDfriendTrack();// Not to have two copies of "friendTrack"
+
   }
 }
 
index 30dfa851c9c18f03bbe3eb8aa8ea376f906a25ac..f53ad55a42f3cefd70007f85feac9b845dced736 100644 (file)
@@ -44,6 +44,7 @@ public:
     delete fFriendTrack; fFriendTrack=new AliESDfriendTrack(*t);
     // CKB
   }
+  void ReleaseESDfriendTrack() { delete fFriendTrack;  fFriendTrack=0; }
   void AddCalibObject(TObject * object);     // add calib object to the list
   TObject *  GetCalibObject(Int_t index);    // return calib objct at given position
   void MakeMiniESDtrack();