]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/TTreeStream.cxx
AliTPCTransform.h - removing warning visible in
[u/mrichter/AliRoot.git] / STEER / TTreeStream.cxx
index 487e535c126e2520fe7a29183200b2b0ab853324..6a9c992529e519dd22fa1c8f7705e1dcb2732df9 100644 (file)
@@ -32,6 +32,7 @@
 
 #include <TClass.h>
 #include <TFile.h>
+#include <TDirectory.h>
 #include <TObjArray.h>
 #include <TTree.h>
 #include <TTreeStream.h>
@@ -163,7 +164,7 @@ void TTreeSRedirector::StoreObject(TObject* object){
   //
   //
   //
-  TFile * backup = gFile;
+  TDirectory * backup = gDirectory;
   fFile->cd();
   object->Write();
   if (backup) backup->cd();
@@ -188,12 +189,14 @@ TTreeStream  & TTreeSRedirector::operator<<(Int_t id)
     }
   }
   if (!clayout){
+    TDirectory * backup = gDirectory;
     fFile->cd();
     char chname[100];
     sprintf(chname,"Tree%d",id);
     clayout = new TTreeStream(chname);
     clayout->fId=id;
     fDataLayouts->AddAt(clayout,entries);
+    if (backup) backup->cd();
   }
   return *clayout;
 }
@@ -209,11 +212,13 @@ TTreeStream  & TTreeSRedirector::operator<<(const char* name)
   Int_t entries = fDataLayouts->GetEntriesFast();
 
   if (!clayout){
+    TDirectory * backup = gDirectory;
     fFile->cd();
     clayout = new TTreeStream(name);
     clayout->fId=-1;
     clayout->SetName(name);
     fDataLayouts->AddAt(clayout,entries);    
+    if (backup) backup->cd();
   }
   return *clayout;
 }
@@ -224,7 +229,7 @@ TTreeStream  & TTreeSRedirector::operator<<(const char* name)
 void TTreeSRedirector::Close(){
   //
   //
-  TFile * backup = gFile;
+  TDirectory * backup = gDirectory;
   fFile->cd();
   if (fDataLayouts){
     Int_t entries = fDataLayouts->GetEntriesFast();
@@ -395,8 +400,8 @@ void TTreeStream::BuildTree(){
   //
   // Build the Tree
   //
-  if (fTree->GetEntries()>0) return;
-  fTree = new TTree(GetName(),GetName());
+  if (fTree && fTree->GetEntries()>0) return;
+  if (!fTree)  fTree = new TTree(GetName(),GetName());
   Int_t entries = fElements->GetEntriesFast();  
   fBranches = new TObjArray(entries);
   
@@ -463,7 +468,7 @@ TTreeStream & TTreeStream::Endl()
 }
 
 
-TTreeStream  &TTreeStream::operator<<(Char_t *name)
+TTreeStream  &TTreeStream::operator<<(const Char_t *name)
 {
   //
   // Endl