]> git.uio.no Git - u/mrichter/AliRoot.git/blob - JETAN/AliJetParticlesReaderESD.h
Additional functionality (M.Ivanov)
[u/mrichter/AliRoot.git] / JETAN / AliJetParticlesReaderESD.h
1 #ifndef ALIJETPARTICLESREADERESD_H
2 #define ALIJETPARTICLESREADERESD_H
3
4 //___________________________________________________________________________
5 /////////////////////////////////////////////////////////////////////////////
6 //                                                                         //
7 // File reader for ESD                                                     //
8 //                                                                         //
9 // This reader reads tracks from Event Summary Data                        //
10 // taken from Piotr.Skowronski@cern.ch                                     //
11 // more info: http://alisoft.cern.ch/people/skowron/analyzer/index.html    //
12 //                                                                         //
13 // loizides@ikf.uni-frankfurt.de                                           //
14 /////////////////////////////////////////////////////////////////////////////
15
16 #include <TString.h>
17 #include <AliESDtrack.h>
18 #include "AliJetParticlesReader.h"
19
20 class TFile;
21 class TTree;
22 class AliESD;
23
24 class AliJetParticlesReaderESD: public AliJetParticlesReader
25 {
26   public:
27   AliJetParticlesReaderESD(Bool_t constrained,const Char_t* esdfilename = "AliESDs.root") ;
28   AliJetParticlesReaderESD(Bool_t constrained,TObjArray* dirs,const Char_t* esdfilename = "AliESDs.root");
29
30   void SetCompareFlag(ULong_t f){fPassFlag=f;}
31   void SetCompareFlagTPC() {fPassFlag=AliESDtrack::kTPCrefit;}
32   void SetCompareFlagBarrel() {fPassFlag=AliESDtrack::kITSrefit
33                                         +AliESDtrack::kTPCrefit+AliESDtrack::kTRDrefit;}
34
35   virtual ~AliJetParticlesReaderESD();
36
37   //Int_t Next(); //in base class
38   void Rewind();
39
40   const AliESD* GetCurrentESD() const {return fESD;}
41   void PrintESDtrack(const AliESDtrack *kesdtrack) const;
42
43   protected:
44   virtual Int_t ReadESD(AliESD* esd); //read esd file/objects
45   Int_t    ReadNext();                //read the next event
46   TFile*   OpenFile(Int_t evno);      //opens file to be read for given event
47   Bool_t   IsAcceptedParticle(Float_t px, Float_t py, Float_t pz) const;
48     
49   Bool_t  fConstrained; // use constrained track parameters
50   TString fESDFileName; // name of the file with tracks
51   AliESD *fESD;         //! pointer to current esd object
52   TFile*  fFile;        //! pointer to current ESD file
53   TTree*  fTree;        //! pointer to current tree with ESD objects
54   TIter*  fKeyIterator; //! key iterator through file
55   ULong_t fPassFlag;    //flag to compare esd flag with 
56
57   ClassDef(AliJetParticlesReaderESD,2) //
58 };
59
60 inline Bool_t AliJetParticlesReaderESD::IsAcceptedParticle(Float_t pt, Float_t phi, Float_t eta) const
61 {
62   if((pt<fPtMin)||(pt>fPtMax)) return kFALSE;
63   if((eta<fEtaMin)||(eta>fEtaMax)) return kFALSE;
64   if((phi<fPhiMin)||(phi>fPhiMax)) return kFALSE;
65
66   return kTRUE;
67 }
68 #endif