]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/Fluctuations/AliEbyEHigherMomentsTask.h
new analysis task: multiplicity fluctuations (Maitreyee Mukherjee <maitreyee.mukherje...
[u/mrichter/AliRoot.git] / PWGCF / EBYE / Fluctuations / AliEbyEHigherMomentsTask.h
1 #ifndef AliEbyEHigherMomentsTask_cxx
2 #define AliEbyEHigherMomentsTask_cxx
3
4 //=========================================================================//
5 //                                                                         //
6 //           Analysis Task for Net-Charge Higher Moment Analysis           //
7 //              Author: Satyajit Jena || Nirbhay K. Behera                 //
8 //                      sjena@cern.ch || nbehera@cern.ch                   //
9 //                               V0.0 23/08/2012                           //
10 //                                                                         //
11 //=========================================================================//
12
13 class TH1D;
14 class TH2D;
15 class TH3D;
16 class THnSparse;
17 class TString;
18 class AliAODEvent;
19 class AliPIDResponse;
20 class TList;
21
22 #include "TParticle.h"
23 #include "AliAnalysisTaskSE.h"
24
25 class AliEbyEHigherMomentsTask: public AliAnalysisTaskSE {
26  public:
27   AliEbyEHigherMomentsTask( const char *name = "HigherMomentAnalysis");
28   virtual ~AliEbyEHigherMomentsTask();
29   
30   virtual void   UserCreateOutputObjects();
31   virtual void   UserExec(Option_t *option);
32   virtual void   doAODEvent();
33   virtual void   doMCAODEvent();
34   virtual Bool_t ProperVertex();
35   virtual void   Terminate(Option_t *);
36   
37   void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {fVxMax = vx;fVyMax = vy; fVzMax = vz;}
38   void SetCentralityEstimator(const char* centralityEstimator) { fCentralityEstimator = centralityEstimator;}
39   void SetAnalysisType(const char* analysisType) {fAnalysisType = analysisType;}
40   void SetDCA(Double_t xy, Double_t z) { fDCAxy = xy; fDCAz = z; }
41   void SetPtRange(Double_t ptl, Double_t pth){fPtLowerLimit = ptl; fPtHigherLimit = pth;}
42   void SetEta(Double_t eta){fEtaLowerLimit= -1.*eta; fEtaHigherLimit=eta;}
43   void SetRapidityCut(Double_t rapidity){ fRapidityCut = rapidity;}
44   void SetNSigmaCut(Double_t nsigma){ fNSigmaCut = nsigma;}
45   void SetParticleSpecies(AliPID::EParticleType pid) {fParticleSpecies = pid;}
46   void SetTPCNclus(Int_t nclus) { fTPCNClus = nclus;}
47   void SetChi2PerNDF( Double_t chi2ndf ) { fChi2perNDF = chi2ndf;}
48   void SetAODtrackCutBit(Int_t bit){ fAODtrackCutBit = bit;}
49   void SetUsePid( Bool_t usepid ){ fUsePid = usepid;}
50   void SetKinematicsCutsAOD(Double_t ptl, Double_t pth, Double_t eta){
51     
52     fPtLowerLimit = ptl;
53     fPtHigherLimit = pth;
54     fEtaLowerLimit = -1.*eta;
55     fEtaHigherLimit = eta;
56     
57   }
58   
59   
60  private:
61   
62   TList *fListOfHistos;
63   AliAODEvent           *fAOD;
64   TClonesArray          *fArrayMC;
65   AliPIDResponse        *fPIDResponse;
66   AliPID::EParticleType fParticleSpecies;
67   
68   TString          fAnalysisType;          // "MC", "ESD", "AOD"
69   TString          fCentralityEstimator;   // "V0M","TRK","TKL","ZDC","FMD"
70   
71   Int_t fCentrality;
72   Double_t fVxMax;               //vxmax
73   Double_t fVyMax;//vymax
74   Double_t fVzMax;//vzmax
75   
76   Double_t fDCAxy;
77   Double_t fDCAz;
78   Double_t fPtLowerLimit;
79   Double_t fPtHigherLimit;
80   Double_t fEtaLowerLimit;
81   Double_t fEtaHigherLimit;
82   Double_t fRapidityCut;
83   Double_t fNSigmaCut;
84   Int_t fTPCNClus;
85   Double_t fChi2perNDF;
86   Int_t fAODtrackCutBit;//track cut bit from track selection (only used for AODs)
87   Bool_t fUsePid;
88   TH1D *fEventCounter;
89   
90   TH1D *fHistQA[13];
91   TH2D *fHistDCA;
92   TH2D *fTPCSig;
93   TH2D *fTPCSigA;
94   
95   
96   THnSparse *fTHnCentNplusNminusCh;
97   THnSparse *fTHnCentNplusNminusChTruth;
98   THnSparse *fTHnCentNplusNminus;
99   THnSparse *fTHnCentNplusNminusPid[5];
100   THnSparse *fTHnCentNplusNminusPidTruth[5];
101   
102   
103   
104   AliEbyEHigherMomentsTask(const AliEbyEHigherMomentsTask&);
105   AliEbyEHigherMomentsTask& operator = (const AliEbyEHigherMomentsTask&);//Not implimented..
106   ClassDef(AliEbyEHigherMomentsTask, 1);
107
108 };
109
110 #endif
111
112