ROOT logo
#ifndef ALIGENREADERTREEK_H
#define ALIGENREADERTREEK_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */
//
// Realisation of AliGenReader to be used with AliGenExtFile
// It reads events from a kinematics TreeK.
// Author: andreas.morsch@cern.ch
//
#include "AliGenReader.h"

class TFile;
class AliRunLoader;
class AliStack;
class TString;
class TObjArray;

class AliGenReaderTreeK : public AliGenReader
{
 public:
    AliGenReaderTreeK();
    AliGenReaderTreeK(const AliGenReaderTreeK &reader);
    virtual ~AliGenReaderTreeK();
    // Initialise 
    virtual void Init();
    // Read
    virtual Int_t NextEvent();
    virtual TParticle*  NextParticle();
    virtual void RewindEvent();
    virtual void SetFirstEvent(Int_t evt)    {fNcurrent  = evt;};
    virtual void SetOnlyPrimaries(Bool_t flag) {fOnlyPrimaries = flag;}
    AliGenReaderTreeK & operator=(const AliGenReaderTreeK & rhs);
    void SetDirs(TObjArray* dirs){fDirs = dirs;} //sets array directories names
    void AddDir(const char* dirname);
    AliRunLoader * GetRunLoader() const {return fInRunLoader;}

 protected:
    Int_t             fNcurrent;          // points to the next entry
    Int_t             fNparticle;         // Next particle in list
    Int_t             fNp;                // number of particles
    AliRunLoader     *fInRunLoader;       //!Run Loader of the input event
    TFile            *fBaseFile;          //! pointer to base file
    AliStack         *fStack;             //! Particle stack
    Bool_t            fOnlyPrimaries;     // Flag indicating wether only primaries are read
    TObjArray        *fDirs;              //arry with directories to read data from
    Int_t             fCurrentDir;        //Number of current directory
    static const TString fgkEventFolderName;//!name of folder where event to read is mounted
    
    TString&   GetDirName(Int_t entry);
    TParticle* GetParticle(Int_t i);
 private:
    void Copy(TObject&) const;    
    ClassDef(AliGenReaderTreeK,1) // Read particles from TreeK
};



#endif






 AliGenReaderTreeK.h:1
 AliGenReaderTreeK.h:2
 AliGenReaderTreeK.h:3
 AliGenReaderTreeK.h:4
 AliGenReaderTreeK.h:5
 AliGenReaderTreeK.h:6
 AliGenReaderTreeK.h:7
 AliGenReaderTreeK.h:8
 AliGenReaderTreeK.h:9
 AliGenReaderTreeK.h:10
 AliGenReaderTreeK.h:11
 AliGenReaderTreeK.h:12
 AliGenReaderTreeK.h:13
 AliGenReaderTreeK.h:14
 AliGenReaderTreeK.h:15
 AliGenReaderTreeK.h:16
 AliGenReaderTreeK.h:17
 AliGenReaderTreeK.h:18
 AliGenReaderTreeK.h:19
 AliGenReaderTreeK.h:20
 AliGenReaderTreeK.h:21
 AliGenReaderTreeK.h:22
 AliGenReaderTreeK.h:23
 AliGenReaderTreeK.h:24
 AliGenReaderTreeK.h:25
 AliGenReaderTreeK.h:26
 AliGenReaderTreeK.h:27
 AliGenReaderTreeK.h:28
 AliGenReaderTreeK.h:29
 AliGenReaderTreeK.h:30
 AliGenReaderTreeK.h:31
 AliGenReaderTreeK.h:32
 AliGenReaderTreeK.h:33
 AliGenReaderTreeK.h:34
 AliGenReaderTreeK.h:35
 AliGenReaderTreeK.h:36
 AliGenReaderTreeK.h:37
 AliGenReaderTreeK.h:38
 AliGenReaderTreeK.h:39
 AliGenReaderTreeK.h:40
 AliGenReaderTreeK.h:41
 AliGenReaderTreeK.h:42
 AliGenReaderTreeK.h:43
 AliGenReaderTreeK.h:44
 AliGenReaderTreeK.h:45
 AliGenReaderTreeK.h:46
 AliGenReaderTreeK.h:47
 AliGenReaderTreeK.h:48
 AliGenReaderTreeK.h:49
 AliGenReaderTreeK.h:50
 AliGenReaderTreeK.h:51
 AliGenReaderTreeK.h:52
 AliGenReaderTreeK.h:53
 AliGenReaderTreeK.h:54
 AliGenReaderTreeK.h:55
 AliGenReaderTreeK.h:56
 AliGenReaderTreeK.h:57
 AliGenReaderTreeK.h:58
 AliGenReaderTreeK.h:59
 AliGenReaderTreeK.h:60
 AliGenReaderTreeK.h:61
 AliGenReaderTreeK.h:62
 AliGenReaderTreeK.h:63
 AliGenReaderTreeK.h:64
 AliGenReaderTreeK.h:65
 AliGenReaderTreeK.h:66