]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoEventReaderAOD.h
Correction to PID Monitor, FilterMask added to AODEventReader
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFemtoEventReaderAOD.h
1 ////////////////////////////////////////////////////////////////////////////////
2 //                                                                            //
3 // AliFemtoEventReaderAOD - the reader class for the Alice AOD                //
4 // Reads in AOD information and converts it into internal AliFemtoEvent       //
5 // Authors: Adam Kisiel kisiel@mps.ohio-state.edu                             //
6 //                                                                            //
7 ////////////////////////////////////////////////////////////////////////////////
8
9 #ifndef ALIFEMTOEVENTREADERAOD_H
10 #define ALIFEMTOEVENTREADERAOD_H
11 #include "AliFemtoEventReader.h"
12 #include "AliFemtoEnumeration.h"
13
14 #include <string>
15 #include <vector>
16 #include "TTree.h"
17 #include "TChain.h"
18 #include "TBits.h"
19 #include "AliAODEvent.h"
20 #include <list>
21 //#include "AliPWG2AODTrack.h"
22 #include "AliAODMCParticle.h"
23 #include "AliFemtoV0.h"
24 #include "AliAODpidUtil.h"
25 #include "AliAODHeader.h"
26
27 class AliFemtoEvent;
28 class AliFemtoTrack;
29
30 class AliFemtoEventReaderAOD : public AliFemtoEventReader 
31 {
32  public:
33   enum EventMult {kCentrality=0, kGlobalCount=1, kReference=2, kTPCOnlyRef=3, kVZERO=4};
34   typedef enum EventMult EstEventMult;
35
36   AliFemtoEventReaderAOD();
37   AliFemtoEventReaderAOD(const AliFemtoEventReaderAOD &aReader);
38   virtual ~AliFemtoEventReaderAOD();
39
40   AliFemtoEventReaderAOD& operator=(const AliFemtoEventReaderAOD& aReader);
41
42   virtual AliFemtoEvent* ReturnHbtEvent();
43   AliFemtoString Report();
44   void SetInputFile(const char* inputfile);
45   void SetFilterBit(UInt_t ibit);
46   void SetFilterMask(int ibit);
47   void SetReadMC(unsigned char a);
48   void SetReadV0(unsigned char a);
49   void SetCentralityPreSelection(double min, double max);
50   void SetNoCentrality(bool anocent);
51   void SetAODpidUtil(AliAODpidUtil *aAODpidUtil);
52   void SetAODheader(AliAODHeader *aAODheader);
53   void SetMagneticFieldSign(int s);
54   void SetEPVZERO(Bool_t);
55   void GetGlobalPositionAtGlobalRadiiThroughTPC(AliAODTrack *track, Float_t bfield, Float_t globalPositionsAtRadii[9][3]);
56   void SetUseMultiplicity(EstEventMult aType);
57
58  protected:
59   virtual void CopyAODtoFemtoEvent(AliFemtoEvent *tEvent);
60   virtual void CopyAODtoFemtoTrack( AliAODTrack *tAodTrack,  
61                                     AliFemtoTrack *tFemtoTrack
62                                     //                              AliPWG2AODTrack *tPWG2AODTrack
63                                     ); 
64   virtual void CopyAODtoFemtoV0(AliAODv0 *tAODv0, AliFemtoV0 *tFemtoV0);                            
65   virtual void CopyPIDtoFemtoTrack( AliAODTrack *tAodTrack, 
66                                    AliFemtoTrack *tFemtoTrack);
67
68   int            fNumberofEvent;    // number of Events in AOD file
69   int            fCurEvent;         // number of current event
70   AliAODEvent*   fEvent;            // AOD event
71   TBits          fAllTrue;          // Bit set with all true bits
72   TBits          fAllFalse;         // Bit set with all false bits
73   UInt_t         fFilterBit;        // Bitmap bit for AOD filters
74   UInt_t         fFilterMask;       
75   //  TClonesArray*  fPWG2AODTracks;    // Link to PWG2 specific AOD information (if it exists)
76   
77   unsigned char  fReadMC;           // Attempt to read the MC information from the AOD
78   unsigned char  fReadV0;           // Read V0 information from the AOD and put it into V0Collection
79   unsigned char  fUsePreCent;       // Use centrality pre-selection to speed up analysis
80   EstEventMult   fEstEventMult;  // Type of the event multiplicity estimator
81   double         fCentRange[2];     // Centrality pre-selection range
82   AliAODpidUtil* fAODpidUtil;
83   AliAODHeader* fAODheader; 
84
85  private:
86
87   AliAODMCParticle* GetParticleWithLabel(TClonesArray *mcP, Int_t aLabel); 
88
89   string         fInputFile;        // name of input file with AOD filenames
90   string         fFileName;         // name of current AOD file
91   TChain*        fTree;             // AOD tree
92   TFile*         fAodFile;          // AOD file 
93   int            fMagFieldSign;     // Magnetic field sign
94   Bool_t fisEPVZ; // to get event plane angle from VZERO
95
96
97 #ifdef __ROOT__
98   ClassDef(AliFemtoEventReaderAOD, 11)
99 #endif
100
101 };
102   
103 #endif
104
105