1 ////////////////////////////////////////////////////////////////////////////////
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 //
7 ////////////////////////////////////////////////////////////////////////////////
9 #ifndef ALIFEMTOEVENTREADERAOD_H
10 #define ALIFEMTOEVENTREADERAOD_H
11 #include "AliFemtoEventReader.h"
12 #include "AliFemtoEnumeration.h"
19 #include "AliAODEvent.h"
21 //#include "AliPWG2AODTrack.h"
22 #include "AliAODMCParticle.h"
23 #include "AliFemtoV0.h"
24 #include "AliAODpidUtil.h"
25 #include "AliAODHeader.h"
26 #include "AliAnalysisUtils.h"
31 class AliFemtoEventReaderAOD : public AliFemtoEventReader
34 enum EventMult {kCentrality=0, kGlobalCount=1, kReference=2, kTPCOnlyRef=3, kVZERO=4, kCentralityTRK=5, kCentralityZNA=6, kCentralityCL1=7, kCentralityCND=9, kCentralityV0A=10, kCentralityV0C=11, kCentralityZNC=12, kCentralityCL0=13, kCentralityFMD=14, kCentralityTKL=15, kCentralityNPA=16};
35 typedef enum EventMult EstEventMult;
37 AliFemtoEventReaderAOD();
38 AliFemtoEventReaderAOD(const AliFemtoEventReaderAOD &aReader);
39 virtual ~AliFemtoEventReaderAOD();
41 AliFemtoEventReaderAOD& operator=(const AliFemtoEventReaderAOD& aReader);
43 virtual AliFemtoEvent* ReturnHbtEvent();
44 AliFemtoString Report();
45 void SetInputFile(const char* inputfile);
46 void SetFilterBit(UInt_t ibit);
47 void SetFilterMask(int ibit);
48 void SetReadMC(unsigned char a);
49 void SetReadV0(unsigned char a);
50 void SetCentralityPreSelection(double min, double max);
51 void SetNoCentrality(bool anocent);
52 void SetAODpidUtil(AliAODpidUtil *aAODpidUtil);
53 void SetAODheader(AliAODHeader *aAODheader);
54 void SetMagneticFieldSign(int s);
55 void SetEPVZERO(Bool_t);
56 void GetGlobalPositionAtGlobalRadiiThroughTPC(AliAODTrack *track, Float_t bfield, Float_t globalPositionsAtRadii[9][3]);
57 void SetUseMultiplicity(EstEventMult aType);
58 void SetpA2013(Bool_t pa2013);
59 void SetDCAglobalTrack(Bool_t dcagt);
61 bool RejectEventCentFlat(float MagField, float CentPercent);
62 void SetCentralityFlattening(Bool_t flat);
65 virtual void CopyAODtoFemtoEvent(AliFemtoEvent *tEvent);
66 virtual void CopyAODtoFemtoTrack( AliAODTrack *tAodTrack,
67 AliFemtoTrack *tFemtoTrack
68 // AliPWG2AODTrack *tPWG2AODTrack
70 virtual void CopyAODtoFemtoV0(AliAODv0 *tAODv0, AliFemtoV0 *tFemtoV0);
71 virtual void CopyPIDtoFemtoTrack( AliAODTrack *tAodTrack,
72 AliFemtoTrack *tFemtoTrack);
74 int fNumberofEvent; // number of Events in AOD file
75 int fCurEvent; // number of current event
76 AliAODEvent* fEvent; // AOD event
77 TBits fAllTrue; // Bit set with all true bits
78 TBits fAllFalse; // Bit set with all false bits
79 UInt_t fFilterBit; // Bitmap bit for AOD filters
81 // TClonesArray* fPWG2AODTracks; // Link to PWG2 specific AOD information (if it exists)
83 unsigned char fReadMC; // Attempt to read the MC information from the AOD
84 unsigned char fReadV0; // Read V0 information from the AOD and put it into V0Collection
85 unsigned char fUsePreCent; // Use centrality pre-selection to speed up analysis
86 EstEventMult fEstEventMult; // Type of the event multiplicity estimator
87 double fCentRange[2]; // Centrality pre-selection range
88 AliAODpidUtil* fAODpidUtil;
89 AliAODHeader* fAODheader;
94 AliAODMCParticle* GetParticleWithLabel(TClonesArray *mcP, Int_t aLabel);
96 string fInputFile; // name of input file with AOD filenames
97 TChain* fTree; // AOD tree
98 TFile* fAodFile; // AOD file
99 int fMagFieldSign; // Magnetic field sign
100 Bool_t fisEPVZ; // to get event plane angle from VZERO
101 Bool_t fpA2013; // analysis on pA 2013 data
102 Bool_t fDCAglobalTrack; // to get DCA from global tracks instead of TPC-only
108 ClassDef(AliFemtoEventReaderAOD, 11)