ROOT logo
#ifndef AliEbyEHigherMomentsTaskPID_cxx
#define AliEbyEHigherMomentsTaskPID_cxx

//=========================================================================//
//                                                                         //
//           Analysis Task for Net-Charge Higher Moment Analysis           //
//              Author: Satyajit Jena || Nirbhay K. Behera                 //
//                      sjena@cern.ch || nbehera@cern.ch                   //
//                               V0.0 23/08/2012                           //
//                                                                         //
//=========================================================================//

class TH1D;
class TH2D;
class TH3D;
class THnSparse;
class TString;
class AliAODEvent;
class AliAODTrack;
class AliPIDResponse;
class AliHelperPID;
class TList;

#include "TParticle.h"
#include "AliAnalysisTaskSE.h"

class AliEbyEHigherMomentsTaskPID: public AliAnalysisTaskSE {
 public:
  AliEbyEHigherMomentsTaskPID( const char *name = "HigherMomentAnalysis");
  virtual ~AliEbyEHigherMomentsTaskPID();
  
  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *option);
  virtual void   doAODEvent();
  virtual void   doMCAODEvent();
  
  virtual void   Terminate(Option_t *);
  
  void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {fVxMax = vx;fVyMax = vy; fVzMax = vz;}
  void SetCentralityEstimator(const char* centralityEstimator) { fCentralityEstimator = centralityEstimator;}
  void SetAnalysisType(const char* analysisType) {fAnalysisType = analysisType;}
  void SetRapidityCut(Double_t rapidity){ fRapidityCut = rapidity;}
  void SetNSigmaCut(Double_t nsigma){ fNSigmaCut = nsigma;}
  void SetParticleSpecies(AliPID::EParticleType pid) {fParticleSpecies = pid;}
  void SetAODtrackCutBit(Int_t bit){ fAODtrackCutBit = bit;}
  void SetHelperPID(AliHelperPID* pid){fHelperPID = pid;}
  void SetKinematicsCutsAOD(Double_t ptl, Double_t pth, Double_t eta){
    fPtLowerLimit = ptl;
    fPtHigherLimit = pth;
    fEtaLowerLimit = -1.*eta;
    fEtaHigherLimit = eta;
    
  }
  void SetNumberOfPtBins(Int_t nPtBins){ fNptBins = nPtBins;}
  
  
  
 private:
  
  Bool_t ProperVertex(AliAODEvent *fAOD) const;
  Bool_t AcceptTrack(AliAODTrack* track) const;
  Int_t  GetPtBin(Double_t pt);


  TList *fListOfHistos;
  TClonesArray          *fArrayMC;
  AliPIDResponse	*fPIDResponse;
  AliPID::EParticleType fParticleSpecies;
 
  TString          fAnalysisType;          // "MC", "ESD", "AOD"
  TString          fCentralityEstimator;   // "V0M","TRK","TKL","ZDC","FMD"
  
  Int_t fCentrality;
  Double_t fVxMax;               //vxmax
  Double_t fVyMax;//vymax
  Double_t fVzMax;//vzmax
  Double_t fPtLowerLimit;
  Double_t fPtHigherLimit;
  Int_t fNptBins;
  Int_t fBin;
  Double_t fEtaLowerLimit;
  Double_t fEtaHigherLimit;
  Double_t fRapidityCut;
  Double_t fNSigmaCut;
  Int_t fAODtrackCutBit;//track cut bit from track selection (only used for AODs)
  AliHelperPID *fHelperPID;
  TH1D *fEventCounter;
  
  TH1D *fHistQA[4];
  TH2D *fHistVxVy;
  
  THnSparse *fTHnCentNplusNminusPid;
  THnSparse *fTHnCentNplusNminusPidTruth;
  THnSparse *fPtBinNplusNminusPid;
  THnSparse *fPtBinNplusNminusPidTruth;
  
  AliEbyEHigherMomentsTaskPID(const AliEbyEHigherMomentsTaskPID&);
  AliEbyEHigherMomentsTaskPID& operator = (const AliEbyEHigherMomentsTaskPID&);//Not implimented..
  ClassDef(AliEbyEHigherMomentsTaskPID, 1);

};

#endif

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