ReaderInternal: Internal data format implementation
[u/mrichter/AliRoot.git] / HBTAN / AliHBTReader.h
1 #ifndef ALIHBTREADER_H
2 #define ALIHBTREADER_H
3
4 #include <TObject.h>
5
6 //Reader Base class (reads particles and tracks and
7 //puts it to the AliHBTRun objects
8 //Piotr.Skowronski@cern.ch
9
10 class AliHBTRun;
11 class AliHBTEvent;
12 class AliHBTParticleCut;
13 class TObjArray;
14 class AliHBTParticle;
15 class TString;
16
17 class AliHBTReader: public TObject
18
19 {
20   public:
21     AliHBTReader();
22     AliHBTReader(TObjArray*);
23     virtual ~AliHBTReader();
24     //in the future this class is will read global tracking
25     virtual Int_t Read(AliHBTRun* particles, AliHBTRun *tracks) = 0;
26     
27     virtual AliHBTEvent* GetParticleEvent(Int_t) = 0;
28     virtual AliHBTEvent* GetTrackEvent(Int_t) = 0;
29     virtual Int_t GetNumberOfPartEvents() = 0;
30     virtual Int_t GetNumberOfTrackEvents() = 0;
31     
32     void AddParticleCut(AliHBTParticleCut* cut);
33     
34     void SetDirs(TObjArray* dirs){fDirs = dirs;} //sets array directories names
35
36   protected:
37     
38     TObjArray *fCuts;//array with particle cuts
39     TObjArray *fDirs;//arry with directories to read data from
40
41     Bool_t Pass(AliHBTParticle*);
42     Bool_t Pass(Int_t pid);
43
44     TString& GetDirName(Int_t);
45     
46   private:
47   
48   public:
49     ClassDef(AliHBTReader,1)
50 };
51
52 #endif