]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoEventReaderAOD.h
Merge branch 'feature-movesplit'
[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 #include "AliAnalysisUtils.h"
27
28 class AliFemtoEvent;
29 class AliFemtoTrack;
30
31 class AliFemtoEventReaderAOD : public AliFemtoEventReader
32 {
33  public:
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;
36
37   AliFemtoEventReaderAOD();
38   AliFemtoEventReaderAOD(const AliFemtoEventReaderAOD &aReader);
39   virtual ~AliFemtoEventReaderAOD();
40
41   AliFemtoEventReaderAOD& operator=(const AliFemtoEventReaderAOD& aReader);
42
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); //set vertex configuration for pA (2013): IsVertexSelected2013pA
59   void SetUseMVPlpSelection(Bool_t mvplp);
60   void SetIsPileUpEvent(Bool_t ispileup);
61   void SetMinVtxContr(Int_t contr=1) {fMinVtxContr=contr;}
62   void SetMinPlpContribMV(Int_t minPlpContribMV) { fMinPlpContribMV = minPlpContribMV;}
63   void SetMinPlpContribSPD(Int_t minPlpContribSPD) { fMinPlpContribSPD = minPlpContribSPD;}
64   void SetDCAglobalTrack(Bool_t dcagt);
65
66   bool RejectEventCentFlat(float MagField, float CentPercent);
67   void SetCentralityFlattening(Bool_t flat);
68
69  protected:
70   virtual AliFemtoEvent* CopyAODtoFemtoEvent();
71   virtual AliFemtoTrack* CopyAODtoFemtoTrack( AliAODTrack *tAodTrack
72                                     //                              AliPWG2AODTrack *tPWG2AODTrack
73                                     );
74   virtual AliFemtoV0* CopyAODtoFemtoV0(AliAODv0 *tAODv0);
75   virtual void CopyPIDtoFemtoTrack( AliAODTrack *tAodTrack,
76                                    AliFemtoTrack *tFemtoTrack);
77
78   int            fNumberofEvent;    // number of Events in AOD file
79   int            fCurEvent;         // number of current event
80   AliAODEvent*   fEvent;            // AOD event
81   TBits          fAllTrue;          // Bit set with all true bits
82   TBits          fAllFalse;         // Bit set with all false bits
83   UInt_t         fFilterBit;        // Bitmap bit for AOD filters
84   UInt_t         fFilterMask;
85   //  TClonesArray*  fPWG2AODTracks;    // Link to PWG2 specific AOD information (if it exists)
86
87   unsigned char  fReadMC;           // Attempt to read the MC information from the AOD
88   unsigned char  fReadV0;           // Read V0 information from the AOD and put it into V0Collection
89   unsigned char  fUsePreCent;       // Use centrality pre-selection to speed up analysis
90   EstEventMult   fEstEventMult;  // Type of the event multiplicity estimator
91   double         fCentRange[2];     // Centrality pre-selection range
92   AliAODpidUtil* fAODpidUtil;
93   AliAODHeader* fAODheader;
94
95
96  private:
97
98   AliAODMCParticle* GetParticleWithLabel(TClonesArray *mcP, Int_t aLabel);
99
100   string         fInputFile;        // name of input file with AOD filenames
101   TChain*        fTree;             // AOD tree
102   TFile*         fAodFile;          // AOD file
103   int            fMagFieldSign;     // Magnetic field sign
104   Bool_t fisEPVZ; // to get event plane angle from VZERO
105   Bool_t fpA2013; // analysis on pA 2013 data
106   Bool_t fisPileUp; //pile up rejection on?
107   Bool_t fMVPlp;  //multi-vertex pileup rejection?
108   Int_t fMinVtxContr; //no of contributors for pA 2013 data
109   Int_t fMinPlpContribMV; //no of contributors for multivertex pile-up rejection
110   Int_t fMinPlpContribSPD; //no of contributors for SPD pile-up rejection
111   Bool_t fDCAglobalTrack; // to get DCA from global tracks instead of TPC-only
112
113   bool fFlatCent;
114
115
116 #ifdef __ROOT__
117   ClassDef(AliFemtoEventReaderAOD, 11)
118 #endif
119
120 };
121
122 #endif