ROOT logo
#ifndef AliEbyEHigherMomentsTask_cxx
#define AliEbyEHigherMomentsTask_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 TList;

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

class AliEbyEHigherMomentsTask: public AliAnalysisTaskSE {
 public:
  AliEbyEHigherMomentsTask( const char *name = "HigherMomentAnalysis");
  virtual ~AliEbyEHigherMomentsTask();
  
  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 SetAODtrackCutBit(Int_t bit){ fAODtrackCutBit = bit;}
  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;
  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;
  Int_t fAODtrackCutBit;//track cut bit from track selection (only used for AODs)
  TH1D *fEventCounter;
  
  TH1D *fHistQA[4];
  TH2D *fHistVxVy;
  
  
  THnSparse *fTHnCentNplusNminusCh;
  THnSparse *fTHnCentNplusNminusChTruth;
  THnSparse *fPtBinNplusNminusCh;
  THnSparse *fPtBinNplusNminusChTruth;
  
  
  
  AliEbyEHigherMomentsTask(const AliEbyEHigherMomentsTask&);
  AliEbyEHigherMomentsTask& operator = (const AliEbyEHigherMomentsTask&);//Not implimented..
  ClassDef(AliEbyEHigherMomentsTask, 1);

};

#endif

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