166 const std::string& dirPath)
170 TDirectory* originalDir = TDirectory::CurrentDirectory();
174 std::cout <<
"Original directory: " << originalDir->GetName() << std::endl;
175 std::cout <<
"Directory: " << dir->GetName() << std::endl;
182 TList* dirk = dir->GetListOfKeys();
183 for (
int i = 0; i < dirk->GetEntries(); ++i)
185 TObject* keyObject = dirk->At(i);
186 TObject* dirObject = dir->Get(keyObject->GetName());
188 std::string objectName = std::string(keyObject->GetName());
189 std::string className = std::string(dirObject->ClassName());
191 if (className ==
"TDirectory" || className ==
"TDirectoryFile")
193 TDirectory* subDir =
dynamic_cast<TDirectory*
>(dirObject);
196 MapDirectory(subDir, output, dirPath +
"/" + objectName);
198 else if (dirObject->InheritsFrom(
"TH1") || dirObject->InheritsFrom(
"BDSBH4DBase"))
200 TH1* h =
dynamic_cast<TH1*
>(dirObject);
204 bool BDSBH4Dtype =
false;
206 if (dirObject->InheritsFrom(
"BDSBH4DBase"))
217 std::string histPath = dirPath +
"/";
219 std::string histName = std::string(h->GetName());
220 std::string histTitle = std::string(h->GetTitle());
221 TDirectory* outDir = output->GetDirectory(histPath.c_str());
223 {output->mkdir(histPath.c_str());}
225 outDir = output->GetDirectory(histPath.c_str());
226 output->cd(histPath.c_str());
233 case RBDS::MergeType::meanmerge:
238 case RBDS::MergeType::sum:
243 case RBDS::MergeType::none:
250 std::cout <<
"Found histogram> " << histPath << histName << std::endl;