ROOT logo
#ifndef AliEbyEHigherMomentsEffContTask_cxx
#define AliEbyEHigherMomentsEffContTask_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 THnSparse;
class AliPIDResponse;
class TString;
class AliAODEvent;
class AliPIDResponse;
class TList;

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

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

  virtual void    UserCreateOutputObjects();
  virtual void    UserExec(Option_t *option);
  virtual void    doAODEvent();
  virtual void    doMCAODEvent();
  virtual Bool_t  ProperVertex();
  virtual void    CheckContTrackAOD(Int_t label, Float_t sign, Int_t idxTrack);
  virtual void    FillEffSparse();
  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 SetDCA(Double_t xy, Double_t z) { fDCAxy = xy; fDCAz = z; }
  void SetPtRange(Double_t ptl, Double_t pth){fPtLowerLimit = ptl; fPtHigherLimit = pth;}
  void SetEta(Double_t eta){fEtaLowerLimit= -1*eta; fEtaHigherLimit= eta;}
  void SetRapidityCut(Double_t rapidity){ fRapidityCut = rapidity;}
  void SetNSigmaCut(Double_t nsigma){ fNSigmaCut = nsigma;}
  void SetParticleSpecies(AliPID::EParticleType pid) {fParticleSpecies = pid;}
  void SetTPCNclus(Int_t nclus) { fTPCNClus = nclus;}
  void SetChi2PerNDF( Double_t chi2ndf ) { fChi2perNDF = chi2ndf;}
  void SetAODtrackCutBit(Int_t bit){ fAODtrackCutBit = bit;}
  void SetUsePid( Bool_t usepid ){ fUsePid = usepid;}
  void SetContaMinationCheck( Bool_t checkCont ){ fCheckCont = checkCont;}
  void SetEfficencyJob( Bool_t efficiency ){ fEff = efficiency;}
  void SetKinematicsCutsAOD(Double_t ptl, Double_t pth, Double_t eta){
    fPtLowerLimit = ptl;
    fPtHigherLimit = pth;
    fEtaLowerLimit = -1*eta;
    fEtaHigherLimit = eta;
    
  }
 
 
 private:

  TList *fListOfHistosQA;
  TList *fListOfHistos;
  AliAODEvent           *fAOD;
  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 fDCAxy;
  Double_t fDCAz;
  Double_t fPtLowerLimit;
  Double_t fPtHigherLimit;
  Double_t fEtaLowerLimit;
  Double_t fEtaHigherLimit;
  Double_t fRapidityCut;
  Double_t fNSigmaCut;
  Int_t fTPCNClus;
  Double_t fChi2perNDF;
  Int_t fAODtrackCutBit;//track cut bit from track selection (only used for AODs)
  Int_t **fLabel;
  Bool_t fUsePid;
  Bool_t fCheckCont;
  Bool_t fEff;
  TH1D *fEventCounter;
  
  TH1D *fHistQA[13];
  TH2D *fHistDCA;
  TH2D *fTPCSig;
  TH2D *fTPCSigA;
  
  THnSparse *fTHnCentNplusNminusCh;
  THnSparse *fTHnCentNplusNminus;
  THnSparse *fTHnCentNplusNminusPid[5];
  THnSparse *fTHnEff;
  THnSparse *fTHnCont;
  
  AliEbyEHigherMomentsEffContTask(const AliEbyEHigherMomentsEffContTask&);
  AliEbyEHigherMomentsEffContTask& operator = (const AliEbyEHigherMomentsEffContTask&);//Not implimented..
  ClassDef(AliEbyEHigherMomentsEffContTask, 1);
  
};

#endif

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