1#ifndef Podd_MultiFileRun_h_
2#define Podd_MultiFileRun_h_
95 const char* description =
"",
96 bool is_regex =
false );
97 explicit MultiFileRun( std::vector<std::string> pathList,
98 const char* filenamePattern =
"",
99 const char* description =
"",
100 bool is_regex =
false );
101 explicit MultiFileRun( std::vector<std::string> pathList,
102 std::vector<std::string> fileList,
103 const char* description =
"",
104 bool is_regex =
false );
121 bool SetFileList( std::vector<std::string> filelist );
122 bool SetPathList( std::vector<std::string> pathlist );
140 std::vector<std::string>
GetFiles()
const;
234 using path_t = std::pair<TString, TString>;
239 const std::vector<std::string>& file_list );
#define ClassDef(name, id)
#define ClassDefNV(name, id)
virtual Bool_t IsOpen() const
void AssembleFilePaths(std::vector< path_t > &candidates)
Int_t ForEachMatchItemInDir(const TString &dir, const TRegexp &match_re, const action_t &action)
std::pair< TString, TString > path_t
void PrintStreamInfo() const
virtual Int_t FindNextStream() const
Int_t GetLastSegment() const
virtual UInt_t GetEvNum() const
bool SetPathList(std::vector< std::string > pathlist)
UInt_t GetNStreams() const
void SetFirstSegment(Int_t n)
virtual void Clear(Option_t *opt="")
Bool_t IsNameRegexp() const
void SetMaxStreams(Int_t n)
std::vector< std::string > GetFiles() const
UInt_t fNevRead
Number of active streams.
UInt_t GetNevRead() const
void SetFlags(UInt_t set)
virtual Int_t BuildInputList()
Number of events read.
virtual Int_t ReadEvent()
bool CheckWarnAbsFilename()
enum Podd::MultiFileRun::EFlags __attribute__
Int_t CheckFilesConsistency()
void PrintFileInfo() const
Int_t ScanForFilename(const path_t &path, bool regex_mode, const action_t &action)
Int_t BuildInputListFromWildcardDir(const path_t &path, const action_t &action)
std::vector< std::string > fFileList
void SetMaxSegments(Int_t n)
virtual void Print(Option_t *opt="") const
virtual Int_t GetDataVersion()
std::vector< StreamInfo > fStreams
std::function< Int_t(const TString &, const TString &)> action_t
bool SetFileList(std::vector< std::string > filelist)
Int_t ScanForSubdirs(const TString &curdir, const std::vector< TString > &splitpath, Int_t level, bool regex_mode, const action_t &action)
Int_t AddFile(const TString &file, const TString &dir)
Int_t GetLastStream() const
Int_t GetStartStream() const
Int_t BuildInputListFromTopDir(const path_t &path, const action_t &action)
bool HasWildcards(const TString &str) const
virtual Int_t SetFilename(const char *name)
virtual const UInt_t * GetEvBuffer() const
std::vector< std::string > fPathList
Int_t GetStartSegment() const
virtual Bool_t FindSegmentNumber()
void SetFirstStream(Int_t n)
virtual Int_t Compare(const TObject *obj) const
Int_t DescendInto(const TString &curpath, const std::vector< TString > &splitpath, Int_t level, const action_t &action)
MultiFileRun & operator=(const THaRunBase &rhs)
void ExpandFileName(std::string &str) const
Int_t fNActive
Index of last stream that was read.
virtual TString FindInitInfoFile(const TString &fname)
bool operator<(const FileInfo &rhs) const
const std::string & GetFilename() const
Bool_t fActive
Number of most recent physics event.
Int_t OpenCurrent()
Stream has not yet reached EOF.
StreamInfo & operator=(const StreamInfo &rhs)
UInt_t fEvNum
Index of currently open file.
std::vector< FileInfo > fFiles
Coda data (file)
bool operator<(const StreamInfo &rhs) const
std::unique_ptr< Decoder::THaCodaData > fCodaData
const UInt_t * GetEvBuffer() const
bool operator==(const StreamInfo &rhs) const