Updates for mixing.
[u/mrichter/AliRoot.git] / EVGEN / AliGenReaderTreeK.h
CommitLineData
8020fb14 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$ */
345de409 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//
8020fb14 12#include "AliGenReader.h"
88cb7938 13#include "AliStack.h"
14
8020fb14 15class TFile;
88cb7938 16class AliRunLoader;
345de409 17class AliStack;
88cb7938 18class TString;
19class TObjArray;
8020fb14 20
21class AliGenReaderTreeK : public AliGenReader
22{
23 public:
24 AliGenReaderTreeK();
add7d558 25 AliGenReaderTreeK(const AliGenReaderTreeK &reader);
ae872676 26 virtual ~AliGenReaderTreeK();
8020fb14 27 // Initialise
28 virtual void Init();
29 // Read
30 virtual Int_t NextEvent();
31 virtual TParticle* NextParticle();
d1d1da57 32 virtual void RewindEvent();
88cb7938 33 virtual void SetOnlyPrimaries(Bool_t flag){fOnlyPrimaries = flag;}
de905919 34 AliGenReaderTreeK & operator=(const AliGenReaderTreeK & rhs);
88cb7938 35 void SetDirs(TObjArray* dirs){fDirs = dirs;} //sets array directories names
36 void AddDir(const char* dirname);
9ad9d6f5 37 AliRunLoader * GetRunLoader() const {return fInRunLoader;}
345de409 38
8020fb14 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
88cb7938 43 AliRunLoader *fInRunLoader; //!Run Loader of the input event
8020fb14 44 TFile *fBaseFile; //! pointer to base file
45 AliStack *fStack; //! Particle stack
88cb7938 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);
345de409 53 private:
dc1d768c 54 void Copy(TObject&) const;
8020fb14 55 ClassDef(AliGenReaderTreeK,1) // Read particles from TreeK
56};
88cb7938 57
58inline
59TParticle* AliGenReaderTreeK::GetParticle(Int_t i)
60 {
61 if (fStack && i<fNp) return fStack->Particle(i);
62 return 0x0;
63 }
64
8020fb14 65#endif
66
67
68
69
70
71