]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/EBYE/Fluctuations/AliEbyEFluctuationAnalysisTask.h
Updated working version of the ebye charge fluctuation code
[u/mrichter/AliRoot.git] / PWG2 / 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   AliEbyEFluctuationAnalysisTask(const char *name);\r
21   virtual ~AliEbyEFluctuationAnalysisTask() {}\r
22   \r
23   virtual void   UserCreateOutputObjects();\r
24   virtual void   UserExec(Option_t *option);\r
25   virtual void   Terminate(Option_t *);\r
26   \r
27   void SetAnalysisCutObject(AliESDtrackCuts *const trackCuts) {\r
28     fESDtrackCuts = trackCuts;}\r
29   void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {\r
30     fVxMax = vx;\r
31     fVyMax = vy;\r
32     fVzMax = vz;\r
33   }\r
34  \r
35   //Centrality\r
36   void SetCentralityEstimator(const char* centralityEstimator) {\r
37     fCentralityEstimator = centralityEstimator;}\r
38   void SetCentralityBins20() {fCentralityBins20 = kTRUE;}\r
39 \r
40   void SetAnalysisType(const char* analysisType) {\r
41     fAnalysisType = analysisType;}\r
42   void SetAnalysisMode(const char* analysisMode) {\r
43     fAnalysisMode = analysisMode;}\r
44 \r
45  private:\r
46   AliESDEvent *fESD;    //! ESD object\r
47   TList       *fOutputList; //! Output list\r
48   TH1F        *fHistEventStats; //!event stats\r
49   TH1F        *fHistCentrality; //!centrality\r
50   TH1F        *fHistNMult[nCentralityBins]; //! nmult\r
51   TH2F        *fHistNPlusNMinus[nCentralityBins];//!nplus vs nminus correlation\r
52   TH1F        *fHistNMultMC; //!nmult MC\r
53   TH2F        *fHistNPlusNMinusMC;//!nplus vs nminus correlation\r
54 \r
55   AliESDtrackCuts *fESDtrackCuts; //ESD track cuts\r
56 \r
57   TString fAnalysisType;//"MC", "ESD", "AOD"\r
58   TString fAnalysisMode;//"TPC", "Global"\r
59 \r
60   TString fCentralityEstimator;//"V0M","TRK","TKL","ZDC","FMD"\r
61   Bool_t fCentralityBins20;//centrality bins of 5% width\r
62 \r
63   Double_t fVxMax;//vxmax\r
64   Double_t fVyMax;//vymax\r
65   Double_t fVzMax;//vzmax\r
66 \r
67   AliEbyEFluctuationAnalysisTask(const AliEbyEFluctuationAnalysisTask&); // not implemented\r
68   AliEbyEFluctuationAnalysisTask& operator=(const AliEbyEFluctuationAnalysisTask&); // not implemented\r
69   \r
70   ClassDef(AliEbyEFluctuationAnalysisTask, 1); // example of analysis\r
71 };\r
72 \r
73 #endif\r