165 const std::string& dirPath)
169 TDirectory* originalDir = TDirectory::CurrentDirectory();
173 std::cout <<
"Original directory: " << originalDir->GetName() << std::endl;
174 std::cout <<
"Directory: " << dir->GetName() << std::endl;
181 TList* dirk = dir->GetListOfKeys();
182 for (
int i = 0; i < dirk->GetEntries(); ++i)
184 TObject* keyObject = dirk->At(i);
185 TObject* dirObject = dir->Get(keyObject->GetName());
187 std::string objectName = std::string(keyObject->GetName());
188 std::string className = std::string(dirObject->ClassName());
190 if (className ==
"TDirectory" || className ==
"TDirectoryFile")
192 TDirectory* subDir =
dynamic_cast<TDirectory*
>(dirObject);
195 MapDirectory(subDir, output, dirPath +
"/" + objectName);
197 else if (dirObject->InheritsFrom(
"TH1") || dirObject->InheritsFrom(
"BDSBH4DBase"))
199 TH1* h =
dynamic_cast<TH1*
>(dirObject);
203 bool BDSBH4Dtype =
false;
205 if (dirObject->InheritsFrom(
"BDSBH4DBase"))
216 std::string histPath = dirPath +
"/";
218 std::string histName = std::string(h->GetName());
219 std::string histTitle = std::string(h->GetTitle());
220 TDirectory* outDir = output->GetDirectory(histPath.c_str());
222 {output->mkdir(histPath.c_str());}
224 outDir = output->GetDirectory(histPath.c_str());
225 output->cd(histPath.c_str());
232 case RBDS::MergeType::meanmerge:
237 case RBDS::MergeType::sum:
242 case RBDS::MergeType::none:
249 std::cout <<
"Found histogram> " << histPath << histName << std::endl;