]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/ESD/AliESDInputHandler.cxx
Updates in event mixing code for low-pt code
[u/mrichter/AliRoot.git] / STEER / ESD / AliESDInputHandler.cxx
index 8bcac36fbbd6f0f0424c55ce107e5b921780d383..76ed08e5f216547a37ac4af50c6caffa6c3b93a5 100644 (file)
@@ -142,6 +142,9 @@ Bool_t AliESDInputHandler::BeginEvent(Long64_t entry)
   ((AliESDEvent*)fEvent)->SetESDfriend(fFriend);
   called = kTRUE;
 
+  // set transient pointer to event inside tracks
+  fEvent->ConnectTracks();
+
   if (fMixingHandler) fMixingHandler->BeginEvent(entry);
   if (fUseTags && fRunTag) {
     fEventTag = 0;
@@ -169,23 +172,23 @@ void AliESDInputHandler::ConnectFriends()
   //
   // Handle the friends first
   //
-  if (!fTree->FindBranch("ESDfriend.")) {
+  TTree* cTree = fTree->GetTree();
+  if (!cTree) cTree = fTree;      
+  if (!cTree->FindBranch("ESDfriend.")) {
     // Try to add ESDfriend. branch as friend
-      TString esdFriendTreeFName;
-      esdFriendTreeFName = (fTree->GetCurrentFile())->GetName();    
-      TString basename = gSystem->BaseName(esdFriendTreeFName);
-      Int_t index = basename.Index("#")+1;
-      basename.Remove(index);
-      basename += fFriendFileName;
-      TString dirname = gSystem->DirName(esdFriendTreeFName);
-      dirname += "/";
-      esdFriendTreeFName = dirname + basename;
-
-    TTree* cTree = fTree->GetTree();
-    if (!cTree) cTree = fTree;      
+    TString esdFriendTreeFName;
+    esdFriendTreeFName = (fTree->GetCurrentFile())->GetName();    
+    TString basename = gSystem->BaseName(esdFriendTreeFName);
+    Int_t index = basename.Index("#")+1;
+    basename.Remove(index);
+    basename += fFriendFileName;
+    TString dirname = gSystem->DirName(esdFriendTreeFName);
+    dirname += "/";
+    esdFriendTreeFName = dirname + basename;
+
     cTree->AddFriend("esdFriendTree", esdFriendTreeFName.Data());
     cTree->SetBranchStatus("ESDfriend.", 1);
-    fFriend = (AliESDfriend*)(fEvent->FindListObject("AliESDfriend"));
+    fFriend = fEvent->FindFriend();
     if (fFriend) cTree->SetBranchAddress("ESDfriend.", &fFriend);
   }
 }
@@ -195,6 +198,7 @@ Bool_t  AliESDInputHandler::FinishEvent()
 {
     // Finish the event 
   if(fEvent)fEvent->Reset();
+  if (fFriend) fFriend->Reset();
   if (fMixingHandler) fMixingHandler->FinishEvent();
   return kTRUE;
 }