((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;
//
// 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);
}
}
{
// Finish the event
if(fEvent)fEvent->Reset();
+ if (fFriend) fFriend->Reset();
if (fMixingHandler) fMixingHandler->FinishEvent();
return kTRUE;
}