]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HBTAN/AliHBTReader.h
Transition to NewIO
[u/mrichter/AliRoot.git] / HBTAN / AliHBTReader.h
1 #ifndef ALIHBTREADER_H
2 #define ALIHBTREADER_H
3
4 #include <TNamed.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 TNamed
18 {
19   public:
20     AliHBTReader();
21     AliHBTReader(TObjArray*);
22     virtual ~AliHBTReader();
23     //in the future this class is will read global tracking
24     virtual Int_t Read(AliHBTRun* particles, AliHBTRun *tracks) = 0;
25     
26     virtual AliHBTEvent* GetParticleEvent(Int_t) = 0;
27     virtual AliHBTEvent* GetTrackEvent(Int_t) = 0;
28     virtual Int_t GetNumberOfPartEvents() = 0;
29     virtual Int_t GetNumberOfTrackEvents() = 0;
30     
31     void AddParticleCut(AliHBTParticleCut* cut);
32     
33     void SetDirs(TObjArray* dirs){fDirs = dirs;} //sets array directories names
34
35     virtual AliHBTEvent* GetNextParticleEvent(){return 0x0;}
36     virtual AliHBTEvent* GetNextTrackEvent(){return 0x0;}
37
38   protected:
39     
40     TObjArray *fCuts;//array with particle cuts
41     TObjArray *fDirs;//arry with directories to read data from
42
43     Bool_t Pass(AliHBTParticle*);
44     Bool_t Pass(Int_t pid);
45
46     TString& GetDirName(Int_t);
47     
48   private:
49   
50   public:
51     ClassDef(AliHBTReader,2)//version 2 - TNamed as parental class
52     
53 };
54
55 #endif