18#include <FairFileSourceBase.h>
19#include <FairMCEventHeader.h>
20#include <FairSource.h>
22#include <RtypesCore.h>
23#include <TDirectory.h>
25#include <TObjString.h>
60 std::chrono::time_point<std::chrono::steady_clock>
begin_t_ = std::chrono::steady_clock::now();
61 std::chrono::time_point<std::chrono::steady_clock>
previous_t_ = std::chrono::steady_clock::now();
64 void Print(uint64_t event_num,
double speed_per_ms);
72 auto AddFileName(std::string name,
bool is_tree_file =
false) -> std::optional<std::string>;
86 [[nodiscard]]
auto GetEntries() const -> int64_t;
118 void Intitialize(std::string_view filename,
bool is_tree_file =
false);
119 auto ValidateFile(
const std::string& filename,
bool is_tree_file =
false) -> bool;
121 auto ExtractRunId(TFile* rootFile) -> std::optional<int>;
129 explicit R3BFileSource2(std::string file, std::string_view title =
"InputRootFile");
130 R3BFileSource2(std::vector<std::string> fileNames, std::string_view title);
133 void AddFile(std::string file_name,
bool is_tree_file =
false);
134 void AddFile(std::vector<std::string> file_names,
bool is_tree_file =
false);
135 void AddFriend(std::string,
bool is_tree_file =
false);
136 void AddFriend(std::vector<std::string> file_names,
bool is_tree_file =
false);
161 Bool_t
Init()
override;
162 Int_t
ReadEvent(UInt_t eventID = 0)
override;
173 Bool_t
ActivateObject(TObject** obj,
const char* BrName)
override;
174 Bool_t
ActivateObjectAny(
void** obj,
const std::type_info& info,
const char* BrName)
override;
void SetRefreshRate_Hz(float rate)
void SetRunID(unsigned int runID)
std::chrono::milliseconds refresh_period_
R3BEventProgressPrinter()=default
uint64_t previous_event_num_
void SetMaxEventNum(unsigned int max_event_num)
std::chrono::time_point< std::chrono::steady_clock > begin_t_
void Print(uint64_t event_num, double speed_per_ms)
void ShowProgress(uint64_t event_num)
std::chrono::time_point< std::chrono::steady_clock > previous_t_
Int_t ReadEvent(UInt_t eventID=0) override
Bool_t ActivateObject(TObject **obj, const char *BrName) override
void ReadBranchEvent(const char *BrName) override
R3BEventProgressPrinter event_progress_
void SetFileHeaderName(std::string_view fileHeaderName)
void SetEventPrintRefreshRate(float rate)
std::vector< R3BInputRootFiles > inputFriendFiles_
void AddFriend(std::string, bool is_tree_file=false)
FairMCEventHeader * mc_event_header_
auto IsEmpty() const -> bool
Int_t CheckMaxEventNo(Int_t EvtEnd=0) override
Bool_t ReInitUnpackers() override
R3BInputRootFiles inputDataFiles_
Bool_t ActivateObjectAny(void **obj, const std::type_info &info, const char *BrName) override
void AddFile(std::string file_name, bool is_tree_file=false)
std::vector< std::string > dataFileNames_
Bool_t SpecifyRunId() override
Bool_t InitUnpackers() override
Source_Type GetSourceType() override
void FillEventHeader(FairEventHeader *evtHeader) override
std::vector< std::string > friendFileNames_
void ReadBranchEvent(const char *BrName, Int_t Entry) override
void SetInitRunID(int run_id)
R3BEventHeader * r3b_event_header_
void SetParUnpackers() override