1 #ifndef ALIJETPARTICLESREADER_H
2 #define ALIJETPARTICLESREADER_H
6 //_________________________________________________________________________
7 ///////////////////////////////////////////////////////////////////////////
9 // class AliJetReader //
10 // File reader for ESD //
12 // This reader reads tracks from Event Summary Data //
13 // taken from Piotr.Skowronski@cern.ch //
14 // more info: http://alisoft.cern.ch/people/skowron/analyzer/index.html //
16 // loizides@ikf.uni-frankfurt.de //
17 ///////////////////////////////////////////////////////////////////////////
20 #include <TObjArray.h>
24 class AliJetEventParticles;
26 class AliJetParticlesReader: public TNamed
29 AliJetParticlesReader();
30 AliJetParticlesReader(TObjArray* dirs);
31 virtual ~AliJetParticlesReader();
33 void SetDirs(TObjArray* dirs){fDirs = dirs;} //sets array directories names
34 void ReadEventsFromTo(Int_t first,Int_t last){fFirst = first; fLast = last;}
36 virtual Int_t Next(); //call this if you want the next event
37 virtual void Rewind() = 0;
39 void SetPtCut(Float_t ptmin=0, Float_t ptmax=100)
40 {fPtMin=ptmin;fPtMax=ptmax;}
41 void SetPhiCut(Float_t phi=2*TMath::Pi()){SetPhiCut(0,phi);}
42 void SetPhiCut(Float_t phimin, Float_t phimax)
43 {fPhiMin=phimin;fPhiMax=phimax;}
44 void SetEtaCut(Float_t e=1){SetEtaCut(-e,e);}
45 void SetEtaCut(Float_t emin, Float_t emax)
46 {fEtaMin=emin;fEtaMax=emax;}
47 void SetTree(TTree *t){fTree=t;fNewTree=kTRUE;}
49 const AliJetEventParticles* GetEventParticles() const {return fEventParticles;}
50 AliJetEventParticles* GetEventParticles(Bool_t o)
51 {fOwner=o; return fEventParticles;} //return particles and set ownership
53 Int_t GetNumberOfDirs() const {return (fDirs)?fDirs->GetEntries():0;}
54 Int_t GetCurEventNumber() const {return fCurrentEvent;}
55 Int_t GetCurDirNumber() const {return fCurrentDir;}
56 Int_t GetTotEventsRead() const {return fNEventsRead;}
57 Int_t GetFirstEvent() const {return fFirst;}
58 Int_t GetLastEvent() const {return fLast;}
62 virtual Int_t ReadNext() = 0; //this methods reads next event and
63 //put result in fParticles
65 TString& GetDirName(Int_t entry);
67 AliJetEventParticles* fEventParticles; //array with read particles
68 Bool_t fOwner; //ownership of particles
69 TObjArray* fDirs; //array with directories to read data from
70 Int_t fCurrentEvent; //number of current event in current file
71 Int_t fCurrentDir; //number of current directory in array
72 Int_t fNEventsRead; //total number of processed events
73 Int_t fFirst; //first event to return (all before are skipped)
74 Int_t fLast; //last event to return (relative to total number)
76 Float_t fPtMin; //min pt cut
77 Float_t fPtMax; //max pt cut
78 Float_t fEtaMin; //min eta cut
79 Float_t fEtaMax; //max eta cut
80 Float_t fPhiMin; //min phi cut
81 Float_t fPhiMax; //max phi cut
83 Bool_t fNewTree; // signals new tree
84 TTree *fTree; //! if non-zero store AliJetEventParticles
86 ClassDef(AliJetParticlesReader,2) // Basic AliJetParticles Reader class