]>
Commit | Line | Data |
---|---|---|
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 |