22#include "TDirectory.h"
26#include "BDSOutputROOTEventHeader.hh"
34DataDummyClass::DataDummyClass()
37DataDummyClass::~DataDummyClass()
40TFile* DataDummyClass::CreateEmptyRebdsimFile(
const std::string& fileName,
41 unsigned long long int nOriginalEventsIn)
46std::map<std::string, TDirectory*> DataDummyClass::CreateDirectories(TFile* outputFile,
53 unsigned long long int nOriginalEventsIn)
55 TFile* outputFile =
new TFile(fileName.c_str(),
"RECREATE");
63 TTree* headerTree =
new TTree(
"Header",
"REBDSIM Header");
64 headerTree->Branch(
"Header.",
"BDSOutputROOTEventHeader", headerOut);
66 headerTree->Write(
"", TObject::kOverwrite);
68 std::vector<std::string> expectedTrees = {
"Beam.",
73 for (
const auto& treeName : expectedTrees)
83 std::string cleanedName = treeName.erase(treeName.size() - 1);
84 std::string perEntryDirName =
"PerEntryHistograms";
85 std::string simpleDirName =
"SimpleHistograms";
86 std::string mergedDirName =
"MergedHistograms";
91 TDirectory* rebdsimDir = outputFile->GetDirectory(cleanedName.c_str());
93 {rebdsimDir = outputFile->mkdir(cleanedName.c_str());}
96 TDirectory* perEntryDir = rebdsimDir->GetDirectory(perEntryDirName.c_str());
98 {rebdsimDir->mkdir(perEntryDirName.c_str());}
100 TDirectory* simpleDir = rebdsimDir->GetDirectory(simpleDirName.c_str());
102 {rebdsimDir->mkdir(simpleDirName.c_str());}
104 TDirectory* mergedDir = rebdsimDir->GetDirectory(mergedDirName.c_str());
106 {rebdsimDir->mkdir(mergedDirName.c_str());}
108 std::map<std::string, TDirectory*> result = {{cleanedName, rebdsimDir},
109 {perEntryDirName, perEntryDir},
110 {simpleDirName, simpleDir},
111 {mergedDirName, mergedDir}};
A dummy class as ROOT won't seem to import namespaced functions in CLING for python.
TFile * CreateEmptyRebdsimFile(const std::string &fileName, unsigned long long int nOriginalEventsIn=1)
Create a new TFile and add a header to it. The header object is filled and written.
std::map< std::string, TDirectory * > CreateDirectories(TFile *outputFile, std::string treeName)