+ if (!fMergeEvents) {
+ fTree = tree;
+ TIter next(fFriends);
+ TNamed* obj;
+
+ if (!fTree) return kFALSE;
+ fTree->GetEntry(0);
+ TString aodTreeFName,aodFriendTreeFName;
+
+ while((obj = (TNamed*)next())) {
+ if (fTree->GetTree()) {
+ aodTreeFName = (fTree->GetTree()->GetCurrentFile())->GetName();
+ aodFriendTreeFName = aodTreeFName;
+ aodFriendTreeFName.ReplaceAll("AliAOD.root",obj->GetName());
+ aodFriendTreeFName.ReplaceAll("AliAODs.root",obj->GetName());
+ (fTree->GetTree())->AddFriend("aodTree", aodFriendTreeFName.Data());
+ } else {
+ aodTreeFName = (fTree->GetCurrentFile())->GetName();
+ aodFriendTreeFName = aodTreeFName;
+ aodFriendTreeFName.ReplaceAll("AliAOD.root",obj->GetName());
+ aodFriendTreeFName.ReplaceAll("AliAODs.root",obj->GetName());
+ fTree->AddFriend("aodTree", aodFriendTreeFName.Data());
+ }
+ }
+ } else {
+ // Friends have to be merged
+ TNamed* filename = (TNamed*) (fFriends->At(0));
+ fFileToMerge = new TFile(filename->GetName());
+ if (fFileToMerge) {
+ fFileToMerge->GetObject("aodTree", fTreeToMerge);
+ if (!fAODEventToMerge) fAODEventToMerge = new AliAODEvent();
+ fAODEventToMerge->ReadFromTree(fTreeToMerge);
+ }