]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVGEN/AliGenReaderTreeK.h
Exec changed to UserExec.
[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     AliRunLoader * GetRunLoader() const {return fInRunLoader;}
38
39  protected:
40     Int_t             fNcurrent;          // points to the next entry
41     Int_t             fNparticle;         // Next particle in list
42     Int_t             fNp;                // number of particles
43     AliRunLoader     *fInRunLoader;       //!Run Loader of the input event
44     TFile            *fBaseFile;          //! pointer to base file
45     AliStack         *fStack;             //! Particle stack
46     Bool_t            fOnlyPrimaries;     // Flag indicating wether only primaries are read
47     TObjArray        *fDirs;              //arry with directories to read data from
48     Int_t             fCurrentDir;        //Number of current directory
49     static const TString fgkEventFolderName;//!name of folder where event to read is mounted
50     
51     TString&   GetDirName(Int_t entry);
52     TParticle* GetParticle(Int_t i);
53  private:
54     void Copy(TObject&) const;    
55     ClassDef(AliGenReaderTreeK,1) // Read particles from TreeK
56 };
57
58 inline 
59 TParticle* AliGenReaderTreeK::GetParticle(Int_t i)
60  {
61   if (fStack && i<fNp) return fStack->Particle(i);
62   return 0x0;
63  }
64
65 #endif
66
67
68
69
70
71