]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVGEN/AliGenReaderTreeK.h
Removing direct reference to ROOTSYS (K.Shileev)
[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 // Realisation of AliGenReader to be used with AliGenExtFile
9 // It reads events from a kinematics TreeK.
10 // Author: andreas.morsch@cern.ch
11 //
12 #include "AliGenReader.h"
13 #include "AliStack.h"
14
15 class TFile;
16 class AliRunLoader;
17 class AliStack;
18 class TString;
19 class TObjArray;
20
21 class AliGenReaderTreeK : public AliGenReader
22 {
23  public:
24     AliGenReaderTreeK();
25     AliGenReaderTreeK(const AliGenReaderTreeK &reader);
26     virtual ~AliGenReaderTreeK();
27     // Initialise 
28     virtual void Init();
29     // Read
30     virtual Int_t NextEvent();
31     virtual TParticle*  NextParticle();
32     virtual void RewindEvent();
33     virtual void SetOnlyPrimaries(Bool_t flag){fOnlyPrimaries = flag;}
34     AliGenReaderTreeK & operator=(const AliGenReaderTreeK & rhs);
35     void SetDirs(TObjArray* dirs){fDirs = dirs;} //sets array directories names
36     void AddDir(const char* dirname);
37
38  protected:
39     Int_t             fNcurrent;          // points to the next entry
40     Int_t             fNparticle;         // Next particle in list
41     Int_t             fNp;                // number of particles
42     AliRunLoader     *fInRunLoader;       //!Run Loader of the input event
43     TFile            *fBaseFile;          //! pointer to base file
44     AliStack         *fStack;             //! Particle stack
45     Bool_t            fOnlyPrimaries;     // Flag indicating wether only primaries are read
46     TObjArray        *fDirs;              //arry with directories to read data from
47     Int_t             fCurrentDir;        //Number of current directory
48     static const TString fgkEventFolderName;//!name of folder where event to read is mounted
49     
50     TString&   GetDirName(Int_t entry);
51     TParticle* GetParticle(Int_t i);
52  private:
53     void Copy(TObject&) const;    
54     ClassDef(AliGenReaderTreeK,1) // Read particles from TreeK
55 };
56
57 inline 
58 TParticle* AliGenReaderTreeK::GetParticle(Int_t i)
59  {
60   if (fStack && i<fNp) return fStack->Particle(i);
61   return 0x0;
62  }
63
64 #endif
65
66
67
68
69
70