]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoEventReaderAOD.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFemtoEventReaderAOD.h
CommitLineData
76ce4b5b 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"
973a91f8 23#include "AliFemtoV0.h"
76ce4b5b 24#include "AliAODpidUtil.h"
1777446b 25#include "AliAODHeader.h"
734c121a 26#include "AliAnalysisUtils.h"
76ce4b5b 27
28class AliFemtoEvent;
29class AliFemtoTrack;
30
3cb62634 31class AliFemtoEventReaderAOD : public AliFemtoEventReader
76ce4b5b 32{
33 public:
18757d69 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};
1777446b 35 typedef enum EventMult EstEventMult;
36
76ce4b5b 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();
ce7b3d98 45 void SetInputFile(const char* inputfile);
76ce4b5b 46 void SetFilterBit(UInt_t ibit);
64536eaf 47 void SetFilterMask(int ibit);
76ce4b5b 48 void SetReadMC(unsigned char a);
973a91f8 49 void SetReadV0(unsigned char a);
76ce4b5b 50 void SetCentralityPreSelection(double min, double max);
973a91f8 51 void SetNoCentrality(bool anocent);
76ce4b5b 52 void SetAODpidUtil(AliAODpidUtil *aAODpidUtil);
1777446b 53 void SetAODheader(AliAODHeader *aAODheader);
ba3c23a4 54 void SetMagneticFieldSign(int s);
5e2038a9 55 void SetEPVZERO(Bool_t);
ce7b3d98 56 void GetGlobalPositionAtGlobalRadiiThroughTPC(AliAODTrack *track, Float_t bfield, Float_t globalPositionsAtRadii[9][3]);
1777446b 57 void SetUseMultiplicity(EstEventMult aType);
7dec7414 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);
7d3e2025 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;}
3cb62634 64 void SetDCAglobalTrack(Bool_t dcagt);
76ce4b5b 65
316b08d6
MS
66 bool RejectEventCentFlat(float MagField, float CentPercent);
67 void SetCentralityFlattening(Bool_t flat);
68
76ce4b5b 69 protected:
ae746ffd 70 virtual AliFemtoEvent* CopyAODtoFemtoEvent();
71 virtual AliFemtoTrack* CopyAODtoFemtoTrack( AliAODTrack *tAodTrack
76ce4b5b 72 // AliPWG2AODTrack *tPWG2AODTrack
3cb62634 73 );
cbc1c949 74 virtual AliFemtoV0* CopyAODtoFemtoV0(AliAODv0 *tAODv0);
3cb62634 75 virtual void CopyPIDtoFemtoTrack( AliAODTrack *tAodTrack,
76ce4b5b 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
3cb62634 84 UInt_t fFilterMask;
76ce4b5b 85 // TClonesArray* fPWG2AODTracks; // Link to PWG2 specific AOD information (if it exists)
3cb62634 86
76ce4b5b 87 unsigned char fReadMC; // Attempt to read the MC information from the AOD
973a91f8 88 unsigned char fReadV0; // Read V0 information from the AOD and put it into V0Collection
76ce4b5b 89 unsigned char fUsePreCent; // Use centrality pre-selection to speed up analysis
1777446b 90 EstEventMult fEstEventMult; // Type of the event multiplicity estimator
76ce4b5b 91 double fCentRange[2]; // Centrality pre-selection range
92 AliAODpidUtil* fAODpidUtil;
3cb62634 93 AliAODHeader* fAODheader;
94
76ce4b5b 95
96 private:
97
3cb62634 98 AliAODMCParticle* GetParticleWithLabel(TClonesArray *mcP, Int_t aLabel);
76ce4b5b 99
100 string fInputFile; // name of input file with AOD filenames
76ce4b5b 101 TChain* fTree; // AOD tree
3cb62634 102 TFile* fAodFile; // AOD file
ba3c23a4 103 int fMagFieldSign; // Magnetic field sign
5e2038a9 104 Bool_t fisEPVZ; // to get event plane angle from VZERO
734c121a 105 Bool_t fpA2013; // analysis on pA 2013 data
7dec7414 106 Bool_t fisPileUp; //pile up rejection on?
107 Bool_t fMVPlp; //multi-vertex pileup rejection?
7d3e2025 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
3cb62634 111 Bool_t fDCAglobalTrack; // to get DCA from global tracks instead of TPC-only
76ce4b5b 112
316b08d6
MS
113 bool fFlatCent;
114
1777446b 115
76ce4b5b 116#ifdef __ROOT__
117 ClassDef(AliFemtoEventReaderAOD, 11)
118#endif
119
120};
3cb62634 121
76ce4b5b 122#endif