16 #include <framework/datastore/StoreObjPtr.h>
17 #include <framework/pcore/RootMergeable.h>
18 #include <framework/pcore/ProcHandler.h>
19 #include <tracking/trackFindingVXD/utilities/Named.h>
34 class SimpleVariableRecorder {
48 const std::string& rootFileName,
49 const std::string& treeName =
"recorded_tree") :
51 m_tTree(treeName, DataStore::c_Persistent)
53 TDirectory* ptrSavedCurrentTDirectory = gDirectory;
55 m_tFile =
new TFile(rootFileName.c_str(),
"RECREATE");
59 m_tTree.construct(treeName.c_str(), treeName.c_str());
64 if (ptrSavedCurrentTDirectory) {
65 ptrSavedCurrentTDirectory->cd();
82 const std::string& treeName) :
85 for (
auto& variable : namedVariables) {
86 tree.Branch(variable.getName().c_str(), variable.getValue());
88 }, fileName, treeName)
96 m_tTree->get().SetDirectory(
nullptr);
122 TDirectory* tmpDirectory = gDirectory;
124 TFile* tFile =
m_tTree->get().GetCurrentFile();
128 m_tTree->get().Write(
"", TObject::kOverwrite);
129 m_tTree->get().SetDirectory(
nullptr);
146 StoreObjPtr<RootMergeable<TTree> >
m_tTree;