]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/Fluctuations/AliEbyEHigherMomentsTask.h
HM - included pT bin-wise Np and Nm
[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 AliAODTrack;
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   
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 SetAODtrackCutBit(Int_t bit){ fAODtrackCutBit = bit;}
41   void SetKinematicsCutsAOD(Double_t ptl, Double_t pth, Double_t eta){
42     fPtLowerLimit = ptl;
43     fPtHigherLimit = pth;
44     fEtaLowerLimit = -1.*eta;
45     fEtaHigherLimit = eta;
46     
47   }
48   void SetNumberOfPtBins(Int_t nPtBins){ fNptBins = nPtBins;}
49   
50   
51   
52  private:
53   
54   Bool_t ProperVertex(AliAODEvent *fAOD) const;
55   Bool_t AcceptTrack(AliAODTrack* track) const;
56   Int_t  GetPtBin(Double_t pt);
57
58
59   TList *fListOfHistos;
60   TClonesArray          *fArrayMC;
61   TString          fAnalysisType;          // "MC", "ESD", "AOD"
62   TString          fCentralityEstimator;   // "V0M","TRK","TKL","ZDC","FMD"
63   
64   Int_t fCentrality;
65   Double_t fVxMax;               //vxmax
66   Double_t fVyMax;//vymax
67   Double_t fVzMax;//vzmax
68   Double_t fPtLowerLimit;
69   Double_t fPtHigherLimit;
70   Int_t fNptBins;
71   Int_t fBin;
72   Double_t fEtaLowerLimit;
73   Double_t fEtaHigherLimit;
74   Int_t fAODtrackCutBit;//track cut bit from track selection (only used for AODs)
75   TH1D *fEventCounter;
76   
77   TH1D *fHistQA[4];
78   TH2D *fHistVxVy;
79   
80   
81   THnSparse *fTHnCentNplusNminusCh;
82   THnSparse *fTHnCentNplusNminusChTruth;
83   THnSparse *fPtBinNplusNminusCh;
84   THnSparse *fPtBinNplusNminusChTruth;
85   
86   
87   
88   AliEbyEHigherMomentsTask(const AliEbyEHigherMomentsTask&);
89   AliEbyEHigherMomentsTask& operator = (const AliEbyEHigherMomentsTask&);//Not implimented..
90   ClassDef(AliEbyEHigherMomentsTask, 1);
91
92 };
93
94 #endif
95
96