Code commit for Ramona, fix of warnings, add of AddTask macros and exchange of comments
[u/mrichter/AliRoot.git] / RAW / AliTagDB.cxx
index a2f64f8..797c13b 100644 (file)
@@ -26,6 +26,7 @@
 
 #include <TSystem.h>
 #include <TTimeStamp.h>
+#include <TBranch.h>
 
 #include "AliESD.h"
 
@@ -55,6 +56,18 @@ AliTagDB::AliTagDB(AliRawEventTag *eventTag, const char* fileName) :
    }
 }
 
+static void BranchResetBit(TBranch *b) 
+{
+  // Reset MapObject on this branch and all the sub-branches
+
+  b->ResetBit( kBranchObject | kBranchAny ); // Or in newer ROOT: b->ResetBit( kMapObject )
+  TIter next( b->GetListOfBranches() );
+  TBranch *sub = 0;
+  while ( (sub = (TBranch*)next() ) ) {
+    BranchResetBit( sub );
+  }
+}
+
 //______________________________________________________________________________
 Bool_t AliTagDB::Create(const char* fileName)
 {
@@ -83,7 +96,8 @@ Bool_t AliTagDB::Create(const char* fileName)
    Int_t bufsize = 32000;
    Int_t split   = 1;
    const char *tagname = fEventTag->GetName();
-   fTree->Branch("TAG", tagname, &fEventTag, bufsize, split);
+   TBranch * b = fTree->Branch("TAG", tagname, &fEventTag, bufsize, split);
+   BranchResetBit(b);
 
    return kTRUE;
 }