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