ROOT logo
#ifndef AliEbyEParticleRatioFluctuationTask_cxx
#define AliEbyEParticleRatioFluctuationTask_cxx

//=========================================================================//
//                                                                         //
//             AliEbyE Analysis for Particle Ratio Fluctuation             //
//              Author:   Deepika Rathee  || Satyajit Jena                 //
//                        drathee@cern.ch || sjena@cern.ch                 //
//                                                                         //
//=========================================================================//

class TH1D;
class TH2F;
class TH3F;
class TString;
class AliAODEvent;
class AliAODTrack;
class AliAODMCParticle;
class TList;
class AliESDtrackCuts;
class AliHelperPID;

#include "AliAnalysisTaskSE.h"
#include "AliPID.h"
#include "THnSparse.h"

class AliEbyEParticleRatioFluctuationTask: public AliAnalysisTaskSE {
 public:
  AliEbyEParticleRatioFluctuationTask( const char *name = "HigherMomentAnalysis");
  virtual ~AliEbyEParticleRatioFluctuationTask();

  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *option);
  virtual void   Terminate(Option_t *);

  static const Int_t kNCentralityBins = 20; //! N centrality bins
  static const Int_t kNSparseData = 14;     //! N Sparse bins
   
  void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {fVxMax = vx;fVyMax = vy; fVzMax = vz;}
  void SetKinematicsCuts(Double_t ptl, Double_t pth, Double_t eta) {fPtLowerLimit = ptl; fPtHigherLimit = pth; fEtaLowerLimit = -eta; fEtaHigherLimit = eta; }
  void SetAODtrackCutBit(Int_t bit) {fAODtrackCutBit = bit; }
  void SetDCA(Double_t xy, Double_t z) { fDCAxy = xy; fDCAz = z; }
  void SetTPCNclus(Int_t nclus) { fTPCNClus = nclus;}
  void SetCentralityEstimator(const char* cent) { fCentralityEstimator = cent;}
  void SetAnalysisType(const char* analysisType) {fAnalysisType = analysisType;}
  void SetAnalysisData(const char* analysisData) {fAnalysisData = analysisData;}
  void RunQA() {isQA = kTRUE;}
  void Debug() {fDebug = kTRUE;}
  void SetHelperPID(AliHelperPID* pid){fHelperPID = pid;}

 private:

  Bool_t       AcceptEvent(AliAODEvent *event, Int_t cent) const; //! accept eventc
  Bool_t       AcceptTrack(AliAODTrack *track, Int_t cent) const; //! accept track
  Bool_t       AcceptMCTrack(AliAODMCParticle *track, Int_t cent) const; //! accept track
  TList        *fThnList;
  TString      fAnalysisType;          //! "AOD", "AODMC"
  TString      fAnalysisData;          //! "PbPb", "pp", "pA"
  TString      fCentralityEstimator;   //! "V0M","TRK","TKL","ZDC","FMD"  
  Double_t     fVxMax;                 //!  vxmax
  Double_t     fVyMax;                 //!  vymax
  Double_t     fVzMax;                 //!  vzmax
  Double_t     fDCAxy;                 //!  DCA xy
  Double_t     fDCAz;                  //!  DCA z
  Double_t     fPtLowerLimit;
  Double_t     fPtHigherLimit;
  Double_t     fEtaLowerLimit;
  Double_t     fEtaHigherLimit;

  Int_t        fTPCNClus;
  Int_t        fAODtrackCutBit;
  Bool_t       isQA;
  Bool_t       fDebug;
  AliHelperPID *fHelperPID;
  TH1D         *fEventCounter;
  TH2F         *fHistQA[14];
  THnSparseI   *fHistoCorrelation; 
  
  //________________________________
  AliEbyEParticleRatioFluctuationTask(const AliEbyEParticleRatioFluctuationTask&);
  AliEbyEParticleRatioFluctuationTask& operator = (const AliEbyEParticleRatioFluctuationTask&);
  ClassDef(AliEbyEParticleRatioFluctuationTask, 1);

};

#endif

 
 AliEbyEParticleRatioFluctuationTask.h:1
 AliEbyEParticleRatioFluctuationTask.h:2
 AliEbyEParticleRatioFluctuationTask.h:3
 AliEbyEParticleRatioFluctuationTask.h:4
 AliEbyEParticleRatioFluctuationTask.h:5
 AliEbyEParticleRatioFluctuationTask.h:6
 AliEbyEParticleRatioFluctuationTask.h:7
 AliEbyEParticleRatioFluctuationTask.h:8
 AliEbyEParticleRatioFluctuationTask.h:9
 AliEbyEParticleRatioFluctuationTask.h:10
 AliEbyEParticleRatioFluctuationTask.h:11
 AliEbyEParticleRatioFluctuationTask.h:12
 AliEbyEParticleRatioFluctuationTask.h:13
 AliEbyEParticleRatioFluctuationTask.h:14
 AliEbyEParticleRatioFluctuationTask.h:15
 AliEbyEParticleRatioFluctuationTask.h:16
 AliEbyEParticleRatioFluctuationTask.h:17
 AliEbyEParticleRatioFluctuationTask.h:18
 AliEbyEParticleRatioFluctuationTask.h:19
 AliEbyEParticleRatioFluctuationTask.h:20
 AliEbyEParticleRatioFluctuationTask.h:21
 AliEbyEParticleRatioFluctuationTask.h:22
 AliEbyEParticleRatioFluctuationTask.h:23
 AliEbyEParticleRatioFluctuationTask.h:24
 AliEbyEParticleRatioFluctuationTask.h:25
 AliEbyEParticleRatioFluctuationTask.h:26
 AliEbyEParticleRatioFluctuationTask.h:27
 AliEbyEParticleRatioFluctuationTask.h:28
 AliEbyEParticleRatioFluctuationTask.h:29
 AliEbyEParticleRatioFluctuationTask.h:30
 AliEbyEParticleRatioFluctuationTask.h:31
 AliEbyEParticleRatioFluctuationTask.h:32
 AliEbyEParticleRatioFluctuationTask.h:33
 AliEbyEParticleRatioFluctuationTask.h:34
 AliEbyEParticleRatioFluctuationTask.h:35
 AliEbyEParticleRatioFluctuationTask.h:36
 AliEbyEParticleRatioFluctuationTask.h:37
 AliEbyEParticleRatioFluctuationTask.h:38
 AliEbyEParticleRatioFluctuationTask.h:39
 AliEbyEParticleRatioFluctuationTask.h:40
 AliEbyEParticleRatioFluctuationTask.h:41
 AliEbyEParticleRatioFluctuationTask.h:42
 AliEbyEParticleRatioFluctuationTask.h:43
 AliEbyEParticleRatioFluctuationTask.h:44
 AliEbyEParticleRatioFluctuationTask.h:45
 AliEbyEParticleRatioFluctuationTask.h:46
 AliEbyEParticleRatioFluctuationTask.h:47
 AliEbyEParticleRatioFluctuationTask.h:48
 AliEbyEParticleRatioFluctuationTask.h:49
 AliEbyEParticleRatioFluctuationTask.h:50
 AliEbyEParticleRatioFluctuationTask.h:51
 AliEbyEParticleRatioFluctuationTask.h:52
 AliEbyEParticleRatioFluctuationTask.h:53
 AliEbyEParticleRatioFluctuationTask.h:54
 AliEbyEParticleRatioFluctuationTask.h:55
 AliEbyEParticleRatioFluctuationTask.h:56
 AliEbyEParticleRatioFluctuationTask.h:57
 AliEbyEParticleRatioFluctuationTask.h:58
 AliEbyEParticleRatioFluctuationTask.h:59
 AliEbyEParticleRatioFluctuationTask.h:60
 AliEbyEParticleRatioFluctuationTask.h:61
 AliEbyEParticleRatioFluctuationTask.h:62
 AliEbyEParticleRatioFluctuationTask.h:63
 AliEbyEParticleRatioFluctuationTask.h:64
 AliEbyEParticleRatioFluctuationTask.h:65
 AliEbyEParticleRatioFluctuationTask.h:66
 AliEbyEParticleRatioFluctuationTask.h:67
 AliEbyEParticleRatioFluctuationTask.h:68
 AliEbyEParticleRatioFluctuationTask.h:69
 AliEbyEParticleRatioFluctuationTask.h:70
 AliEbyEParticleRatioFluctuationTask.h:71
 AliEbyEParticleRatioFluctuationTask.h:72
 AliEbyEParticleRatioFluctuationTask.h:73
 AliEbyEParticleRatioFluctuationTask.h:74
 AliEbyEParticleRatioFluctuationTask.h:75
 AliEbyEParticleRatioFluctuationTask.h:76
 AliEbyEParticleRatioFluctuationTask.h:77
 AliEbyEParticleRatioFluctuationTask.h:78
 AliEbyEParticleRatioFluctuationTask.h:79
 AliEbyEParticleRatioFluctuationTask.h:80
 AliEbyEParticleRatioFluctuationTask.h:81
 AliEbyEParticleRatioFluctuationTask.h:82
 AliEbyEParticleRatioFluctuationTask.h:83
 AliEbyEParticleRatioFluctuationTask.h:84
 AliEbyEParticleRatioFluctuationTask.h:85
 AliEbyEParticleRatioFluctuationTask.h:86
 AliEbyEParticleRatioFluctuationTask.h:87
 AliEbyEParticleRatioFluctuationTask.h:88