013470e25b418c2d7d78a564b0e88f556f5b6e95
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemtoUser / AliFemtoEventReaderESDKine.h
1 ////////////////////////////////////////////////////////////////////////////////
2 //                                                                            //
3 // AliFemtoEventReaderESDKine - the reader class for the Alice ESD            //
4 // Reads in ESD information and converts it into internal AliFemtoEvent       //
5 // Reads in AliESDfriend to create shared hit/quality information             //
6 // Reads in Kine information and stores it in the hidden info                 //
7 // Authors: Marek Chojnacki mchojnacki@knf.pw.edu.pl                          //
8 //          Adam Kisiel kisiel@mps.ohio-state.edu                             //
9 //                                                                            //
10 ////////////////////////////////////////////////////////////////////////////////
11
12 /*
13  *$Id$
14  *$Log$
15  *Revision 1.1  2007/05/16 10:22:11  akisiel
16  *Making the directory structure of AliFemto flat. All files go into one common directory
17  *
18  *Revision 1.4  2007/05/03 09:45:20  akisiel
19  *Fixing Effective C++ warnings
20  *
21  *Revision 1.3  2007/04/27 07:25:16  akisiel
22  *Make revisions needed for compilation from the main AliRoot tree
23  *
24  *Revision 1.1.1.1  2007/04/25 15:38:41  panos
25  *Importing the HBT code dir
26  *
27  */
28   
29
30 #ifndef ALIFEMTOEVENTREADERESD_H
31 #define ALIFEMTOEVENTREADERESD_H
32 #include "AliFemtoEventReader.h"
33 #include "AliFemtoEnumeration.h"
34
35 #include <string>
36 #include <vector>
37 #include "TTree.h"
38 #include "AliESD.h"
39 #include "AliESDfriend.h"
40 #include <list>
41 #include "AliRunLoader.h"
42 #include "AliFemtoModelHiddenInfo.h"
43
44 class AliFemtoEvent;
45
46 class AliFemtoEventReaderESDKine : public AliFemtoEventReader 
47 {
48  public:
49   AliFemtoEventReaderESDKine();
50   AliFemtoEventReaderESDKine(const AliFemtoEventReaderESDKine &aReader);
51   ~AliFemtoEventReaderESDKine();
52
53   AliFemtoEventReaderESDKine& operator=(const AliFemtoEventReaderESDKine& aReader);
54
55   AliFemtoEvent* ReturnHbtEvent();
56   AliFemtoString Report();
57   //void SetFileName(const char* fileName);
58   void SetInputFile(const char* inputFile);
59   void SetConstrained(const bool constrained);
60   bool GetConstrained() const;
61
62  protected:
63
64  private:
65   bool           GetNextFile();     // setting next file to read 
66
67   string         fInputFile;        // name of input file with ESD filenames
68   string         fFileName;         // name of current ESD file
69   bool           fConstrained;      // flag to set which momentum from ESD file will be use
70   int            fNumberofEvent;    // number of Events in ESD file
71   int            fCurEvent;         // number of current event
72   unsigned int   fCurFile;          // number of current file
73   vector<string> fListOfFiles;      // list of ESD files                
74   TTree*         fTree;             // ESD tree
75   AliESD*        fEvent;            // ESD event
76   TFile*         fEsdFile;          // ESD file 
77   AliESDfriend*  fEventFriend;      // ESD friend informaion
78   AliRunLoader*  fRunLoader;        // Run loader for kine reading 
79
80   list<Int_t>  **fSharedList;       //! Table (one list per padrow) of clusters which are shared
81   list<Int_t>  **fClusterPerPadrow; //! Table (one list per padrow) of clusters in each padrow
82                 
83 #ifdef __ROOT__
84   ClassDef(AliFemtoEventReaderESDKine, 1)
85 #endif
86
87     };
88   
89 #endif
90
91