]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Avoid double booking of esdfriends branch in AliReconstruction, protection in AliESDEvent
authorkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 24 Nov 2008 09:34:57 +0000 (09:34 +0000)
committerkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 24 Nov 2008 09:34:57 +0000 (09:34 +0000)
STEER/AliESDEvent.cxx
STEER/AliReconstruction.cxx

index 82a5d6d1d888eaf8d36e097225ce9837b5020bac..016b0fedc54f09f4f17ff91405ae94af85d589e9 100644 (file)
@@ -1130,6 +1130,7 @@ void AliESDEvent::WriteToTree(TTree* tree) const {
 
   while ((obj = next())) {
     branchname.Form("%s", obj->GetName());
+    if(branchname.CompareTo("AliESDfriend")==0)branchname = "ESDfriend.";
     if ((kSplitlevel > 1) &&  !obj->InheritsFrom(TClonesArray::Class())) {
       if(!branchname.EndsWith("."))branchname += ".";
     }
index e8bd14393d54fb1e20b2489870b5f0b051b09c03..c1ed0ac387df0181b7bb455a1b68cd6a3170e78c 100644 (file)
@@ -1353,13 +1353,23 @@ void AliReconstruction::SlaveBegin(TTree*)
   ftree = new TTree("esdTree", "Tree with ESD objects");
   fesd = new AliESDEvent();
   fesd->CreateStdContent();
+
+  fesd->WriteToTree(ftree);
   if (fWriteESDfriend) {
+    // careful:
+    // Since we add the branch manually we must 
+    // book and add it after WriteToTree
+    // otherwise it is created twice,
+    // once via writetotree and once here.
+    // The case for AliESDfriend is now 
+    // caught also in AlIESDEvent::WriteToTree but 
+    // be careful when changing the name (AliESDfriend is not 
+    // a TNamed so we had to hardwire it)
     fesdf = new AliESDfriend();
     TBranch *br=ftree->Branch("ESDfriend.","AliESDfriend", &fesdf);
     br->SetFile("AliESDfriends.root");
     fesd->AddObject(fesdf);
   }
-  fesd->WriteToTree(ftree);
   ftree->GetUserInfo()->Add(fesd);
 
   fhlttree = new TTree("HLTesdTree", "Tree with HLT ESD objects");