ROOT logo
#ifndef AliEbyEFluctuationAnalysisTask_cxx
#define AliEbyEFluctuationAnalysisTask_cxx

// Event by event charge fluctuation analysis
// Authors: Satyajit Jena and Panos Cristakoglou

class TH1F;
class TH2F;
class TString;
class AliESDEvent;
class AliESDtrackCuts;

#include "AliAnalysisTaskSE.h"

const Int_t nCentralityBins = 20;

class AliEbyEFluctuationAnalysisTask : public AliAnalysisTaskSE {
 public:
  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.) {
    for(Int_t iBin = 0; iBin < nCentralityBins; iBin++) {
      fHistNMult[iBin] = NULL;
      fHistNPlusNMinus[iBin] = NULL;
    }
  }
  AliEbyEFluctuationAnalysisTask(const char *name);
  virtual ~AliEbyEFluctuationAnalysisTask() {}
  
  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *option);
  virtual void   Terminate(Option_t *);
  
  void SetAnalysisCutObject(AliESDtrackCuts *const trackCuts) {
    fESDtrackCuts = trackCuts;}
  void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {
    fVxMax = vx;
    fVyMax = vy;
    fVzMax = vz;
  }
 
  //Centrality
  void SetCentralityEstimator(const char* centralityEstimator) {
    fCentralityEstimator = centralityEstimator;}
  void SetCentralityBins20() {fCentralityBins20 = kTRUE;}

  void SetAnalysisType(const char* analysisType) {
    fAnalysisType = analysisType;}
  void SetAnalysisMode(const char* analysisMode) {
    fAnalysisMode = analysisMode;}

 private:
  AliESDEvent *fESD;    //! ESD object
  TList       *fOutputList; //! Output list
  TH1F        *fHistEventStats; //!event stats
  TH1F        *fHistCentrality; //!centrality
  TH1F        *fHistNMult[nCentralityBins]; //! nmult
  TH2F        *fHistNPlusNMinus[nCentralityBins];//!nplus vs nminus correlation
  TH1F        *fHistNMultMC; //!nmult MC
  TH2F        *fHistNPlusNMinusMC;//!nplus vs nminus correlation

  AliESDtrackCuts *fESDtrackCuts; //ESD track cuts

  TString fAnalysisType;//"MC", "ESD", "AOD"
  TString fAnalysisMode;//"TPC", "Global"

  TString fCentralityEstimator;//"V0M","TRK","TKL","ZDC","FMD"
  Bool_t fCentralityBins20;//centrality bins of 5% width

  Double_t fVxMax;//vxmax
  Double_t fVyMax;//vymax
  Double_t fVzMax;//vzmax

  AliEbyEFluctuationAnalysisTask(const AliEbyEFluctuationAnalysisTask&); // not implemented
  AliEbyEFluctuationAnalysisTask& operator=(const AliEbyEFluctuationAnalysisTask&); // not implemented
  
  ClassDef(AliEbyEFluctuationAnalysisTask, 1); // example of analysis
};

#endif
 AliEbyEFluctuationAnalysisTask.h:1
 AliEbyEFluctuationAnalysisTask.h:2
 AliEbyEFluctuationAnalysisTask.h:3
 AliEbyEFluctuationAnalysisTask.h:4
 AliEbyEFluctuationAnalysisTask.h:5
 AliEbyEFluctuationAnalysisTask.h:6
 AliEbyEFluctuationAnalysisTask.h:7
 AliEbyEFluctuationAnalysisTask.h:8
 AliEbyEFluctuationAnalysisTask.h:9
 AliEbyEFluctuationAnalysisTask.h:10
 AliEbyEFluctuationAnalysisTask.h:11
 AliEbyEFluctuationAnalysisTask.h:12
 AliEbyEFluctuationAnalysisTask.h:13
 AliEbyEFluctuationAnalysisTask.h:14
 AliEbyEFluctuationAnalysisTask.h:15
 AliEbyEFluctuationAnalysisTask.h:16
 AliEbyEFluctuationAnalysisTask.h:17
 AliEbyEFluctuationAnalysisTask.h:18
 AliEbyEFluctuationAnalysisTask.h:19
 AliEbyEFluctuationAnalysisTask.h:20
 AliEbyEFluctuationAnalysisTask.h:21
 AliEbyEFluctuationAnalysisTask.h:22
 AliEbyEFluctuationAnalysisTask.h:23
 AliEbyEFluctuationAnalysisTask.h:24
 AliEbyEFluctuationAnalysisTask.h:25
 AliEbyEFluctuationAnalysisTask.h:26
 AliEbyEFluctuationAnalysisTask.h:27
 AliEbyEFluctuationAnalysisTask.h:28
 AliEbyEFluctuationAnalysisTask.h:29
 AliEbyEFluctuationAnalysisTask.h:30
 AliEbyEFluctuationAnalysisTask.h:31
 AliEbyEFluctuationAnalysisTask.h:32
 AliEbyEFluctuationAnalysisTask.h:33
 AliEbyEFluctuationAnalysisTask.h:34
 AliEbyEFluctuationAnalysisTask.h:35
 AliEbyEFluctuationAnalysisTask.h:36
 AliEbyEFluctuationAnalysisTask.h:37
 AliEbyEFluctuationAnalysisTask.h:38
 AliEbyEFluctuationAnalysisTask.h:39
 AliEbyEFluctuationAnalysisTask.h:40
 AliEbyEFluctuationAnalysisTask.h:41
 AliEbyEFluctuationAnalysisTask.h:42
 AliEbyEFluctuationAnalysisTask.h:43
 AliEbyEFluctuationAnalysisTask.h:44
 AliEbyEFluctuationAnalysisTask.h:45
 AliEbyEFluctuationAnalysisTask.h:46
 AliEbyEFluctuationAnalysisTask.h:47
 AliEbyEFluctuationAnalysisTask.h:48
 AliEbyEFluctuationAnalysisTask.h:49
 AliEbyEFluctuationAnalysisTask.h:50
 AliEbyEFluctuationAnalysisTask.h:51
 AliEbyEFluctuationAnalysisTask.h:52
 AliEbyEFluctuationAnalysisTask.h:53
 AliEbyEFluctuationAnalysisTask.h:54
 AliEbyEFluctuationAnalysisTask.h:55
 AliEbyEFluctuationAnalysisTask.h:56
 AliEbyEFluctuationAnalysisTask.h:57
 AliEbyEFluctuationAnalysisTask.h:58
 AliEbyEFluctuationAnalysisTask.h:59
 AliEbyEFluctuationAnalysisTask.h:60
 AliEbyEFluctuationAnalysisTask.h:61
 AliEbyEFluctuationAnalysisTask.h:62
 AliEbyEFluctuationAnalysisTask.h:63
 AliEbyEFluctuationAnalysisTask.h:64
 AliEbyEFluctuationAnalysisTask.h:65
 AliEbyEFluctuationAnalysisTask.h:66
 AliEbyEFluctuationAnalysisTask.h:67
 AliEbyEFluctuationAnalysisTask.h:68
 AliEbyEFluctuationAnalysisTask.h:69
 AliEbyEFluctuationAnalysisTask.h:70
 AliEbyEFluctuationAnalysisTask.h:71
 AliEbyEFluctuationAnalysisTask.h:72
 AliEbyEFluctuationAnalysisTask.h:73
 AliEbyEFluctuationAnalysisTask.h:74
 AliEbyEFluctuationAnalysisTask.h:75
 AliEbyEFluctuationAnalysisTask.h:76
 AliEbyEFluctuationAnalysisTask.h:77
 AliEbyEFluctuationAnalysisTask.h:78