Transition to NewIO
[u/mrichter/AliRoot.git] / EVGEN / AliGenReaderTreeK.h
1 #ifndef ALIGENREADERTreeK_H
2 #define ALIGENREADERTREEK_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 #include "AliGenReader.h"
9 #include "AliStack.h"
10
11 class TFile;
12 class AliHeader;
13 class AliRunLoader;
14 class TString;
15 class TObjArray;
16
17 class AliGenReaderTreeK : public AliGenReader
18 {
19  public:
20     AliGenReaderTreeK();
21     AliGenReaderTreeK(const AliGenReaderTreeK &reader);
22     virtual ~AliGenReaderTreeK();
23     // Initialise 
24     virtual void Init();
25     // Read
26     virtual Int_t NextEvent();
27     virtual TParticle*  NextParticle();
28     virtual void RewindEvent();
29     virtual void SetOnlyPrimaries(Bool_t flag){fOnlyPrimaries = flag;}
30     AliGenReaderTreeK & operator=(const AliGenReaderTreeK & rhs);
31     void SetDirs(TObjArray* dirs){fDirs = dirs;} //sets array directories names
32     void AddDir(const char* dirname);
33  protected:
34     Int_t             fNcurrent;          // points to the next entry
35     Int_t             fNparticle;         // Next particle in list
36     Int_t             fNp;                // number of particles
37     AliRunLoader     *fInRunLoader;       //!Run Loader of the input event
38     TFile            *fBaseFile;          //! pointer to base file
39     AliStack         *fStack;             //! Particle stack
40     Bool_t            fOnlyPrimaries;     // Flag indicating wether only primaries are read
41     TObjArray        *fDirs;              //arry with directories to read data from
42     Int_t             fCurrentDir;        //Number of current directory
43     static const TString fgkEventFolderName;//!name of folder where event to read is mounted
44     
45     TString&   GetDirName(Int_t entry);
46     TParticle* GetParticle(Int_t i);
47     
48     ClassDef(AliGenReaderTreeK,1) // Read particles from TreeK
49 };
50
51 inline 
52 TParticle* AliGenReaderTreeK::GetParticle(Int_t i)
53  {
54   if (fStack && i<fNp) return fStack->Particle(i);
55   return 0x0;
56  }
57
58 #endif
59
60
61
62
63
64