12#include "TDirectory.h"
24 : fFunc(nullptr), fObj(&fObjects, &fGates, fCutFiles)
29 : fLibName(std::move(inputLib)), fFuncName(std::move(funcName)), fFunc(nullptr), fObj(&fObjects, &fGates, fCutFiles)
35 if(
fFunc ==
nullptr) {
36 std::cout <<
"Could not find " <<
fFuncName <<
"() inside "
37 << R
"(")" << inputLib << R"(")" << std::endl;
45 std::lock_guard<std::mutex> lock(
fMutex);
48 TObject* obj =
nullptr;
49 while((obj = next()) !=
nullptr) {
50 if(obj->InheritsFrom(TH1::Class())) {
51 auto*
hist =
static_cast<TH1*
>(obj);
53 }
else if(obj->InheritsFrom(TDirectory::Class())) {
54 auto* dir =
static_cast<TDirectory*
>(obj);
55 TIter dirnext(dir->GetList());
56 TObject* dirobj =
nullptr;
57 while((dirobj = dirnext()) !=
nullptr) {
58 if(dirobj->InheritsFrom(TH1::Class())) {
59 auto*
hist =
static_cast<TH1*
>(dirobj);
65 std::cout <<
"ended " << std::endl;
78 return infile.is_open();
86 TObject* obj =
nullptr;
87 while((obj = next()) !=
nullptr) {
88 if(obj->InheritsFrom(TDirectory::Class())) {
91 auto* dir =
static_cast<TDirectory*
>(obj);
92 gDirectory->mkdir(dir->GetName())->cd();
93 TIter dir_next(dir->GetList());
94 TObject* dir_obj =
nullptr;
95 while((dir_obj = dir_next()) !=
nullptr) {
105 gDirectory->mkdir(
"variables")->cd();
138 std::lock_guard<std::mutex> lock(
fMutex);
158 std::lock_guard<std::mutex> lock(
fMutex);
178 if(cut_file !=
nullptr) {
187 TObject* obj =
nullptr;
189 while((obj = next()) !=
nullptr) {
190 TH1*
hist =
static_cast<TH1*
>(obj);
191 if(
hist !=
nullptr) {
192 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)