8#include <JANA/JApplicationFwd.h>
10#include <JANA/Services/JGlobalRootLock.h>
11#include <JANA/Services/JServiceLocator.h>
24 auto log_service = m_app->GetService<
Log_service>();
25 m_log = log_service->logger(
"RootFile");
48 if (create_if_needed) {
49 std::call_once(init_flag, &RootFile_service::CreateHistFile,
this);
66 std::string filename = m_histfile->GetName();
69 m_log->info(
"Closed user histogram file: {}", filename);
77 void CreateHistFile() {
79 std::string filename =
"eicrecon.root";
80 m_app->SetDefaultParameter(
"histsfile", filename,
81 "Name of root file to be created for plugin histograms/trees");
84 m_histfile =
new TFile(filename.c_str(),
"RECREATE",
"user histograms/trees");
85 m_log->info(
"Created file: {} for user histograms", filename);
86 }
catch (std::exception& ex) {
87 m_log->error(
"Problem opening root file for histograms: {}", ex.what());
96 std::shared_ptr<spdlog::logger> m_log;
97 TFile* m_histfile =
nullptr;
98 std::once_flag init_flag;
Definition Log_service.h:15
Definition RootFile_service.h:18
void acquire_services(JServiceLocator *) override
Definition RootFile_service.h:23
void CloseHistFile()
Definition RootFile_service.h:64
RootFile_service(JApplication *app)
Definition RootFile_service.h:20
~RootFile_service() override
Definition RootFile_service.h:21
TDirectory * GetHistFile(bool create_if_needed=true)
Definition RootFile_service.h:46