12#include "TDirectory.h"
23 : fFunc(nullptr), fObj(&fObjects, &fGates, fCutFiles)
28 : fLibName(std::move(inputLib)), fFuncName(std::move(funcName)), fFunc(nullptr), fObj(&fObjects, &fGates, fCutFiles)
34 if(
fFunc ==
nullptr) {
35 std::cout <<
"Could not find " <<
fFuncName <<
"() inside "
36 << R
"(")" << inputLib << R"(")" << std::endl;
44 std::lock_guard<std::mutex> lock(
fMutex);
47 TObject* obj =
nullptr;
48 while((obj = next()) !=
nullptr) {
49 if(obj->InheritsFrom(TH1::Class())) {
50 auto*
hist =
static_cast<TH1*
>(obj);
52 }
else if(obj->InheritsFrom(TDirectory::Class())) {
53 auto* dir =
static_cast<TDirectory*
>(obj);
54 TIter dirnext(dir->GetList());
55 TObject* dirobj =
nullptr;
56 while((dirobj = dirnext()) !=
nullptr) {
57 if(dirobj->InheritsFrom(TH1::Class())) {
58 auto*
hist =
static_cast<TH1*
>(dirobj);
64 std::cout <<
"ended " << std::endl;
77 return infile.is_open();
85 TObject* obj =
nullptr;
86 while((obj = next()) !=
nullptr) {
87 if(obj->InheritsFrom(TDirectory::Class())) {
90 auto* dir =
static_cast<TDirectory*
>(obj);
91 gDirectory->mkdir(dir->GetName())->cd();
92 TIter dir_next(dir->GetList());
93 TObject* dir_obj =
nullptr;
94 while((dir_obj = dir_next()) !=
nullptr) {
104 gDirectory->mkdir(
"variables")->cd();
137 std::lock_guard<std::mutex> lock(
fMutex);
157 std::lock_guard<std::mutex> lock(
fMutex);
177 if(cut_file !=
nullptr) {
186 TObject* obj =
nullptr;
188 while((obj = next()) !=
nullptr) {
189 TH1*
hist =
static_cast<TH1*
>(obj);
190 if(
hist !=
nullptr) {
191 hist->SetDirectory(dir);
void AddCutFile(TFile *cut_file)
Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0) override
std::vector< TFile * > fCutFiles
TDirectory * fDefaultDirectory
void swap_lib(TCompiledHistograms &other)
std::shared_ptr< DynamicLibrary > fLibrary
void Fill(std::shared_ptr< const TFragment > frag)
void(* fFunc)(TRuntimeObjects &)
void SetDefaultDirectory(TDirectory *dir)
void Load(const std::string &libName, const std::string &funcName)
void SetFragment(std::shared_ptr< const TFragment > frag)
void SetDetectors(std::shared_ptr< TUnpackedEvent > det)
void SetDirectory(TDirectory *dir)