#include <TClass.h>
#include <TFile.h>
+#include <TDirectory.h>
#include <TObjArray.h>
#include <TTree.h>
#include <TTreeStream.h>
//
//
//
- TFile * backup = gFile;
+ TDirectory * backup = gDirectory;
fFile->cd();
object->Write();
if (backup) backup->cd();
}
}
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;
}
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;
}
void TTreeSRedirector::Close(){
//
//
- TFile * backup = gFile;
+ TDirectory * backup = gDirectory;
fFile->cd();
if (fDataLayouts){
Int_t entries = fDataLayouts->GetEntriesFast();
//
// 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);