Skip to content
Snippets Groups Projects
Commit e9947478 authored by Administrator's avatar Administrator Committed by Florian Uhlig
Browse files

core/report: Add gFile + gDirectory protection

parent 32e7a4d7
No related branches found
No related tags found
1 merge request!279Littrack fix tfile glob point
...@@ -9,14 +9,16 @@ ...@@ -9,14 +9,16 @@
#include "CbmHistManager.h" // for CbmHistManager #include "CbmHistManager.h" // for CbmHistManager
#include <RtypesCore.h> // for UInt_t #include <RtypesCore.h> // for UInt_t
#include <TFile.h> // for TFile #include <TDirectory.h> // for TDirectory, gDirectory
#include <TFile.h> // for TFile, gFile
#include <TH1.h> // for TH1 #include <TH1.h> // for TH1
#include <TH2.h> // for TH2 #include <TH2.h> // for TH2
#include <fstream> // for string, ofstream
#include <string> // for operator+
#include <vector> // for vector, __vector_base<>::value_type
#include <assert.h> // for assert #include <assert.h> // for assert
#include <fstream> // for string, ofstream
#include <string> // for operator+
#include <vector> // for vector, __vector_base<>::value_type
using std::ofstream; using std::ofstream;
using std::string; using std::string;
...@@ -38,12 +40,21 @@ void CbmSimulationReport::Create(const string& fileName, ...@@ -38,12 +40,21 @@ void CbmSimulationReport::Create(const string& fileName,
const string& outputDir) { const string& outputDir) {
assert(fHM == nullptr); assert(fHM == nullptr);
fHM = new CbmHistManager(); fHM = new CbmHistManager();
TFile* oldFile = gFile;
TDirectory* oldDir = gDirectory;
TFile* file = new TFile(fileName.c_str()); TFile* file = new TFile(fileName.c_str());
fHM->ReadFromFile(file); fHM->ReadFromFile(file);
SetOutputDir(outputDir); SetOutputDir(outputDir);
CreateReports(); CreateReports();
// delete fHM; // delete fHM;
// delete file; // delete file;
// shouldn't the file be closed ????
// file->Close();
gFile = oldFile;
gDirectory = oldDir;
} }
void CbmSimulationReport::DrawH1ByPattern(const string& histNamePattern) { void CbmSimulationReport::DrawH1ByPattern(const string& histNamePattern) {
......
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
#include "CbmHistManager.h" // for CbmHistManager #include "CbmHistManager.h" // for CbmHistManager
#include <TFile.h> // for TFile #include <TDirectory.h> // for TDirectory, gDirectory
#include <TFile.h> // for TFile, gFile
#include <cassert> // for assert #include <cassert> // for assert
#include <fstream> // for string, ofstream, stringstream #include <fstream> // for string, ofstream, stringstream
...@@ -40,6 +41,10 @@ void CbmStudyReport::Create(const vector<string>& fileNames, ...@@ -40,6 +41,10 @@ void CbmStudyReport::Create(const vector<string>& fileNames,
Int_t nofStudies = fileNames.size(); Int_t nofStudies = fileNames.size();
vector<TFile*> files(nofStudies); vector<TFile*> files(nofStudies);
fHM.resize(nofStudies); fHM.resize(nofStudies);
TFile* oldFile = gFile;
TDirectory* oldDir = gDirectory;
for (Int_t i = 0; i < nofStudies; i++) { for (Int_t i = 0; i < nofStudies; i++) {
fHM[i] = new CbmHistManager(); fHM[i] = new CbmHistManager();
files[i] = new TFile(fileNames[i].c_str()); files[i] = new TFile(fileNames[i].c_str());
...@@ -59,6 +64,9 @@ void CbmStudyReport::Create(const vector<string>& fileNames, ...@@ -59,6 +64,9 @@ void CbmStudyReport::Create(const vector<string>& fileNames,
// } // }
// fHM.clear(); // fHM.clear();
// files.clear(); // files.clear();
gFile = oldFile;
gDirectory = oldDir;
} }
ClassImp(CbmStudyReport) ClassImp(CbmStudyReport)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment