]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/Fluctuations/AliEbyEFluctuationAnalysisTask.h
09710d36416035bd56db80e43adff2c1203b1258
[u/mrichter/AliRoot.git] / PWGCF / EBYE / Fluctuations / AliEbyEFluctuationAnalysisTask.h
1 #ifndef AliEbyEFluctuationAnalysisTask_cxx
2 #define AliEbyEFluctuationAnalysisTask_cxx
3
4 // Event by event charge fluctuation analysis
5 // Authors: Satyajit Jena and Panos Cristakoglou
6
7 class TH1F;
8 class TH2F;
9 class TString;
10 class AliESDEvent;
11 class AliESDtrackCuts;
12
13 #include "AliAnalysisTaskSE.h"
14
15 const Int_t nCentralityBins = 20;
16
17 class AliEbyEFluctuationAnalysisTask : public AliAnalysisTaskSE {
18  public:
19   AliEbyEFluctuationAnalysisTask() : AliAnalysisTaskSE(), fESD(0), fOutputList(0), fHistEventStats(0), fHistCentrality(0), fHistNMultMC(0), fHistNPlusNMinusMC(0), fESDtrackCuts(0), fAnalysisType(0), fAnalysisMode(0), fCentralityEstimator("V0M"), fCentralityBins20(kFALSE), fVxMax(3.0),fVyMax(3.0), fVzMax(10.) {
20     for(Int_t iBin = 0; iBin < nCentralityBins; iBin++) {
21       fHistNMult[iBin] = NULL;
22       fHistNPlusNMinus[iBin] = NULL;
23     }
24   }
25   AliEbyEFluctuationAnalysisTask(const char *name);
26   virtual ~AliEbyEFluctuationAnalysisTask() {}
27   
28   virtual void   UserCreateOutputObjects();
29   virtual void   UserExec(Option_t *option);
30   virtual void   Terminate(Option_t *);
31   
32   void SetAnalysisCutObject(AliESDtrackCuts *const trackCuts) {
33     fESDtrackCuts = trackCuts;}
34   void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {
35     fVxMax = vx;
36     fVyMax = vy;
37     fVzMax = vz;
38   }
39  
40   //Centrality
41   void SetCentralityEstimator(const char* centralityEstimator) {
42     fCentralityEstimator = centralityEstimator;}
43   void SetCentralityBins20() {fCentralityBins20 = kTRUE;}
44
45   void SetAnalysisType(const char* analysisType) {
46     fAnalysisType = analysisType;}
47   void SetAnalysisMode(const char* analysisMode) {
48     fAnalysisMode = analysisMode;}
49
50  private:
51   AliESDEvent *fESD;    //! ESD object
52   TList       *fOutputList; //! Output list
53   TH1F        *fHistEventStats; //!event stats
54   TH1F        *fHistCentrality; //!centrality
55   TH1F        *fHistNMult[nCentralityBins]; //! nmult
56   TH2F        *fHistNPlusNMinus[nCentralityBins];//!nplus vs nminus correlation
57   TH1F        *fHistNMultMC; //!nmult MC
58   TH2F        *fHistNPlusNMinusMC;//!nplus vs nminus correlation
59
60   AliESDtrackCuts *fESDtrackCuts; //ESD track cuts
61
62   TString fAnalysisType;//"MC", "ESD", "AOD"
63   TString fAnalysisMode;//"TPC", "Global"
64
65   TString fCentralityEstimator;//"V0M","TRK","TKL","ZDC","FMD"
66   Bool_t fCentralityBins20;//centrality bins of 5% width
67
68   Double_t fVxMax;//vxmax
69   Double_t fVyMax;//vymax
70   Double_t fVzMax;//vzmax
71
72   AliEbyEFluctuationAnalysisTask(const AliEbyEFluctuationAnalysisTask&); // not implemented
73   AliEbyEFluctuationAnalysisTask& operator=(const AliEbyEFluctuationAnalysisTask&); // not implemented
74   
75   ClassDef(AliEbyEFluctuationAnalysisTask, 1); // example of analysis
76 };
77
78 #endif