ROOT logo
#ifndef HLDFILESOURCEBASE_H
#define HLDFILESOURCEBASE_H

#include "hldsource.h"
#include "TIterator.h"
#include "TString.h"

class HldFileDesc : public TObject {
  TString fName; // File name
  Int_t fRunId;  // RunId
  Int_t fRefId;  // Reference run Id for initialization
  HldFileDesc(void) : fRunId(-1) {}
 public:
  HldFileDesc(const Text_t *name,const Int_t runId,const Int_t refId=-1) : fName(name),fRunId(runId) {
    fRefId=refId;
  }
  ~HldFileDesc(void) {}
  Text_t const *GetName(void) const { return fName.Data(); }
  Int_t getRunId(void) { return fRunId; }
  Int_t getRefId(void) { return fRefId; }
  void setRefId(Int_t r) { fRefId=r; }
  ClassDef(HldFileDesc,0) // File descriptor for Hld source
};

class HldFileSourceBase : public HldSource {
protected:
  TList fFileList;  // List with all files to be analyzed
  HldFileDesc *fCurrentFile; // Pointer to current file.
  TString fCurrentDir; //Current directory for addFile
  TIterator* iter;  // Iterator over list of files
  Int_t fEventNr, fEventLimit; //Event counter and maximun event nr per file
public:
  HldFileSourceBase(void);
  virtual ~HldFileSourceBase(void);
  HldFileSourceBase(HldFileSourceBase &so);
  Bool_t init(void);
  virtual Bool_t rewind()=0;
  void setMaxEventPerFile(Int_t n) {fEventLimit = n; } 
  EDsState getNextEvent(Bool_t doUnpack=kTRUE);
  virtual Bool_t getNextFile()=0;
  Int_t getCurrentRunId(void);
  Int_t getCurrentRefId(void);
  TList *getListOfFiles(void){return &fFileList;};
  virtual Int_t getRunId(const Text_t *fileName)=0;
  Text_t const *getCurrentFileName(void) {return fCurrentFile? fCurrentFile->GetName() : "No FILE!";}
  void addFile(const Text_t *fileName,const Text_t *refFile);
  virtual void addFile(const Text_t *fileName, Int_t refId=-1)=0;
  void setDirectory(const Text_t *direc) {fCurrentDir = direc;}
  ClassDef(HldFileSourceBase,0) //! Data source to read HLD files;
};
#endif /* !HLDFILESOURCEBASE_H */

 hldfilesourcebase.h:1
 hldfilesourcebase.h:2
 hldfilesourcebase.h:3
 hldfilesourcebase.h:4
 hldfilesourcebase.h:5
 hldfilesourcebase.h:6
 hldfilesourcebase.h:7
 hldfilesourcebase.h:8
 hldfilesourcebase.h:9
 hldfilesourcebase.h:10
 hldfilesourcebase.h:11
 hldfilesourcebase.h:12
 hldfilesourcebase.h:13
 hldfilesourcebase.h:14
 hldfilesourcebase.h:15
 hldfilesourcebase.h:16
 hldfilesourcebase.h:17
 hldfilesourcebase.h:18
 hldfilesourcebase.h:19
 hldfilesourcebase.h:20
 hldfilesourcebase.h:21
 hldfilesourcebase.h:22
 hldfilesourcebase.h:23
 hldfilesourcebase.h:24
 hldfilesourcebase.h:25
 hldfilesourcebase.h:26
 hldfilesourcebase.h:27
 hldfilesourcebase.h:28
 hldfilesourcebase.h:29
 hldfilesourcebase.h:30
 hldfilesourcebase.h:31
 hldfilesourcebase.h:32
 hldfilesourcebase.h:33
 hldfilesourcebase.h:34
 hldfilesourcebase.h:35
 hldfilesourcebase.h:36
 hldfilesourcebase.h:37
 hldfilesourcebase.h:38
 hldfilesourcebase.h:39
 hldfilesourcebase.h:40
 hldfilesourcebase.h:41
 hldfilesourcebase.h:42
 hldfilesourcebase.h:43
 hldfilesourcebase.h:44
 hldfilesourcebase.h:45
 hldfilesourcebase.h:46
 hldfilesourcebase.h:47
 hldfilesourcebase.h:48
 hldfilesourcebase.h:49
 hldfilesourcebase.h:50
 hldfilesourcebase.h:51
 hldfilesourcebase.h:52