]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/PIDFluctuation/task/AliEbyEParticleRatioFluctuationTask.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / EBYE / PIDFluctuation / task / AliEbyEParticleRatioFluctuationTask.h
1 #ifndef AliEbyEParticleRatioFluctuationTask_cxx
2 #define AliEbyEParticleRatioFluctuationTask_cxx
3
4 //=========================================================================//
5 //                                                                         //
6 //             AliEbyE Analysis for Particle Ratio Fluctuation             //
7 //              Author:   Deepika Rathee  || Satyajit Jena                 //
8 //                        drathee@cern.ch || sjena@cern.ch                 //
9 //                                                                         //
10 //=========================================================================//
11
12 class TH1D;
13 class TH2F;
14 class TH3F;
15 class TString;
16 class AliAODEvent;
17 class AliAODTrack;
18 class AliAODMCParticle;
19 class TList;
20 class AliESDtrackCuts;
21 class AliHelperPID;
22
23 #include "AliAnalysisTaskSE.h"
24 #include "AliPID.h"
25 #include "THnSparse.h"
26
27 class AliEbyEParticleRatioFluctuationTask: public AliAnalysisTaskSE {
28  public:
29   AliEbyEParticleRatioFluctuationTask( const char *name = "HigherMomentAnalysis");
30   virtual ~AliEbyEParticleRatioFluctuationTask();
31
32   virtual void   UserCreateOutputObjects();
33   virtual void   UserExec(Option_t *option);
34   virtual void   Terminate(Option_t *);
35
36   static const Int_t kNCentralityBins = 20; //! N centrality bins
37   static const Int_t kNSparseData = 14;     //! N Sparse bins
38    
39   void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {fVxMax = vx;fVyMax = vy; fVzMax = vz;}
40   void SetKinematicsCuts(Double_t ptl, Double_t pth, Double_t eta) {fPtLowerLimit = ptl; fPtHigherLimit = pth; fEtaLowerLimit = -eta; fEtaHigherLimit = eta; }
41   void SetAODtrackCutBit(Int_t bit) {fAODtrackCutBit = bit; }
42   void SetDCA(Double_t xy, Double_t z) { fDCAxy = xy; fDCAz = z; }
43   void SetTPCNclus(Int_t nclus) { fTPCNClus = nclus;}
44   void SetCentralityEstimator(const char* cent) { fCentralityEstimator = cent;}
45   void SetAnalysisType(const char* analysisType) {fAnalysisType = analysisType;}
46   void SetAnalysisData(const char* analysisData) {fAnalysisData = analysisData;}
47   void RunQA() {isQA = kTRUE;}
48   void Debug() {fDebug = kTRUE;}
49   void SetHelperPID(AliHelperPID* pid){fHelperPID = pid;}
50
51  private:
52
53   Bool_t       AcceptEvent(AliAODEvent *event, Int_t cent) const; //! accept eventc
54   Bool_t       AcceptTrack(AliAODTrack *track, Int_t cent) const; //! accept track
55   Bool_t       AcceptMCTrack(AliAODMCParticle *track, Int_t cent) const; //! accept track
56   TList        *fThnList;
57   TString      fAnalysisType;          //! "AOD", "AODMC"
58   TString      fAnalysisData;          //! "PbPb", "pp", "pA"
59   TString      fCentralityEstimator;   //! "V0M","TRK","TKL","ZDC","FMD"  
60   Double_t     fVxMax;                 //!  vxmax
61   Double_t     fVyMax;                 //!  vymax
62   Double_t     fVzMax;                 //!  vzmax
63   Double_t     fDCAxy;                 //!  DCA xy
64   Double_t     fDCAz;                  //!  DCA z
65   Double_t     fPtLowerLimit;
66   Double_t     fPtHigherLimit;
67   Double_t     fEtaLowerLimit;
68   Double_t     fEtaHigherLimit;
69
70   Int_t        fTPCNClus;
71   Int_t        fAODtrackCutBit;
72   Bool_t       isQA;
73   Bool_t       fDebug;
74   AliHelperPID *fHelperPID;
75   TH1D         *fEventCounter;
76   TH2F         *fHistQA[14];
77   THnSparseI   *fHistoCorrelation; 
78   
79   //________________________________
80   AliEbyEParticleRatioFluctuationTask(const AliEbyEParticleRatioFluctuationTask&);
81   AliEbyEParticleRatioFluctuationTask& operator = (const AliEbyEParticleRatioFluctuationTask&);
82   ClassDef(AliEbyEParticleRatioFluctuationTask, 1);
83
84 };
85
86 #endif
87
88