GRUTinizer
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TGEBMultiFile.h
Go to the documentation of this file.
1 #ifndef TGEBMULTIFILE_H
2 #define TGEBMULTIFILE_H
3 
4 //#include "Globals.h"
5 
6 #include <TObject.h>
7 
8 //#include "TGEBBanks.h"
9 #include <vector>
10 //#include <map>
11 
12 
13 #include <TGEBEvent.h>
14 #include <TGEBFile.h>
15 
16 class TGEBMultiFile : public TObject {
17 
18  public:
19  TGEBMultiFile();
20  virtual ~TGEBMultiFile();
21 
22  bool Add(const char *fname);
23  bool Add(TGEBFile *file);
24 
25  void InitiMultFiles();
26 
27  void Close();
28 
29  int Read(TGEBEvent*);
30 
31  const char *GetLastFileName() const { return fFileList.at(fLastFileNumber).c_str(); }
32  int GetLastErrno() const { return fLastErrno; }
33  const char *GetLastError() const { return fLastError.c_str(); }
34 
35  void ShowStatus(Option_t *opt = "") const;
36  void Print(Option_t *opt = "") const;
37  void Clear(Option_t *opt = "");
38 
39  //size_t GetFileSize();
40  //static size_t FindFileSize(const char*);
41  //int GetRunNumber();
42 
43 
44  private:
45 
46  std::vector<std::string> fFileList;
47 
50  std::string fLastError;
51 
52  //size_t fFileSize;
53  //size_t fBytesRead;
54  //size_t fBytesWritten;
55 
57  Int_t fRunNumber;
58 
59  std::vector<TGEBEvent*> fEvents;
60  std::vector<TGEBFile*> fFiles;
61  std::vector<int> fEventCounter;
62  std::vector<Long_t> fLastTimeStamp;
63 
64  std::vector<size_t> fBytes;
65  std::vector<size_t> fBytesRead;
66 
67 
68 
69  inline TGEBEvent *GetEvent(const int &i) { return fEvents.at(i); }
70  inline TGEBFile *GetFile(const int &i) { return fFiles.at(i); }
71  inline Long_t GetTime(const int &i) { return fEvents.at(i)->GetTimeStamp(); }
72 
73  bool GetNextEvent(int);
74  int FindMinimum();
75 
76 
78 };
79 
80 #endif
81