GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TCompiledHistograms.h
Go to the documentation of this file.
1#ifndef TCOMPILEDHISTOGRAMS_H
2#define TCOMPILEDHISTOGRAMS_H
3
4#ifndef __CINT__
5#include <mutex>
6#include <memory>
7#endif
8#include <string>
9
10#include "TObject.h"
11#include "TList.h"
12
13#include "DynamicLibrary.h"
14#include "TRuntimeObjects.h"
15
16#include "TFragment.h"
17#include "TUnpackedEvent.h"
18
19class TFile;
20
21class TCompiledHistograms : public TObject {
22public:
24 TCompiledHistograms(std::string inputLib, std::string funcName);
25
26 void Load(const std::string& libName, const std::string& funcName);
27#ifndef __CINT__
28 void Fill(std::shared_ptr<const TFragment> frag);
29 void Fill(std::shared_ptr<TUnpackedEvent> detectors);
30#endif
31 void Reload();
32
33 std::string GetLibraryName() const { return fLibName; }
34
35 void SetDefaultDirectory(TDirectory* dir);
36 TDirectory* GetDefaultDirectory() { return fDefaultDirectory; }
37
38 void ClearHistograms();
39
40 TList* GetObjects() { return &fObjects; }
41 TList* GetGates() { return &fGates; }
42
43 void AddCutFile(TFile* cut_file);
44
45 Int_t Write(const char* name = nullptr, Int_t option = 0, Int_t bufsize = 0) override;
46
47private:
48 void swap_lib(TCompiledHistograms& other);
49 time_t get_timestamp();
50 bool file_exists();
51
52 std::string fLibName;
53 std::string fFuncName;
54#ifndef __CINT__
55 std::shared_ptr<DynamicLibrary> fLibrary{nullptr};
56 std::mutex fMutex;
57#endif
59 time_t fLastModified{0};
60 time_t fLastChecked{0};
61
63
64 TList fObjects;
65 TList fGates;
66 std::vector<TFile*> fCutFiles;
67
68 TDirectory* fDefaultDirectory{nullptr};
69
71
72 // \cond CLASSIMP
73 ClassDefOverride(TCompiledHistograms, 0) // NOLINT(readability-else-after-return)
74 // \endcond
75};
76
77#endif /* _TCOMPILEDHISTOGRAMS_H_ */
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
void swap_lib(TCompiledHistograms &other)
std::shared_ptr< DynamicLibrary > fLibrary
TDirectory * GetDefaultDirectory()
void Fill(std::shared_ptr< const TFragment > frag)
void(* fFunc)(TRuntimeObjects &)
void SetDefaultDirectory(TDirectory *dir)
std::string GetLibraryName() const
void Load(const std::string &libName, const std::string &funcName)
Object passed to the online histograms.