ROOT logo
#ifndef ALIANALYSISTASKZDCPBPB_H
#define ALIANALYSISTASKZDCPBPB_H

/* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

//*****************************************************
//   Class AliAnalysisTaskZDCPbPb
//   author: Chiara Oppedisano
//*****************************************************

#include "AliAnalysisTaskSE.h"

class TROOT;
class TSystem;
class TList;
class TFile;
class TH1F;
class TH2F;

#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskZDCPbPb : public AliAnalysisTaskSE {

 public:
  
  enum kAnalysisInput{kESD=1, kAOD=2}; 
  
  AliAnalysisTaskZDCPbPb();
  AliAnalysisTaskZDCPbPb(const char *name);
  AliAnalysisTaskZDCPbPb& operator= (const AliAnalysisTaskZDCPbPb& ana);
  AliAnalysisTaskZDCPbPb(const AliAnalysisTaskZDCPbPb& c);
  virtual ~AliAnalysisTaskZDCPbPb();

  // Implementation of interface methods
  virtual void UserCreateOutputObjects();
  virtual void UserExec(Option_t *option);
  virtual void Terminate(Option_t *option);

  virtual void  SetDebugLevel(Int_t level) {fDebug = level;}
  void SetInput(int input) {fAnalysisInput = input;}
  void SetMCInput() {fIsMCInput = kTRUE;}
  void SetCentralityRange(Float_t centrlow=0., Float_t centrup=100.) {fCentrLowLim=centrlow;
  fCentrUpLim=centrup;}
  void SetCentralityEstimator(TString centrest = "V0M") {fCentrEstimator=centrest;}              
 
 private:
  
  Int_t    fAnalysisInput;      // analysis input
  Bool_t   fIsMCInput;          // true when input is MC
  Float_t  fCentrLowLim;	// centrality lower limit
  Float_t  fCentrUpLim;		// centrality upper limit
  TString  fCentrEstimator;     // string for the centrality estimator   
  //
  TList   *fOutput;	   	//! list send on output slot 0
  //
  TH1F *fhZNCPM[5];		//! ZNC PM high res.
  TH1F *fhZNAPM[5];		//! ZNA PM high res.
  TH1F *fhZPCPM[5];		//! ZPC PM high res.
  TH1F *fhZPAPM[5];		//! ZPA PM high res.
  TH1F *fhZEM[2];		//! ZEM PM high res.
  TH1F *fhZNCPMlg[5];		//! ZNC PM low res.
  TH1F *fhZNAPMlg[5];		//! ZNA PM low res.
  TH1F *fhZPCPMlg[5];		//! ZPC PM low res.
  TH1F *fhZPAPMlg[5];		//! ZPA PM low res.
  TH1F *fhTDCraw[6];		//! raw TDC histos
  TH1F *fhTDC[6];		//! corrected TDC histos
  //
  TH1F *fhZNCPMQiPMC[4];	//! PMQi/PMC for ZNC
  TH1F *fhZNAPMQiPMC[4];	//! PMQi/PMC for ZNA
  TH1F *fhZPCPMQiPMC[4];	//! PMQi/PMC for ZPC
  TH1F *fhZPAPMQiPMC[4];	//! PMQi/PMC for ZPA
  //
  TH2F *fhZNCvsZNA;		//! ZNC vs ZNA;
  TH2F *fhZPCvsZPA;		//! ZPC vs ZPA;
  TH2F *fhZDCCvsZDCCA;		//! ZDCC vs ZDCCA
  TH2F *fhZNCvsZPC;		//! ZNC vs ZPC;
  TH2F *fhZNAvsZPA;		//! ZNA vs ZPA;
  TH2F *fhZNvsZP;		//! ZNC+ZNA vs ZPC+ZPA;
  TH2F *fhZNvsZEM;		//! ZN vs ZEM;
  TH2F *fhZNvsZEMwV0M;		//! ZN vs ZEM weighted with V0M centr. perc.;
  TH2F *fhZDCvsZEM;		//! ZDC vs ZEM;
  TH2F *fhZDCvsZEMwV0M;		//! ZDC vs ZEM weighted with V0M centr. perc.;
  TH2F *fhZNvsVZERO;		//! ZN vs VZERO;
  TH2F *fhZDCvsVZERO;		//! ZDC vs VZERO;
  TH2F *fhZDCvsTracklets;	//! ZDC vs N_tracklets;
  TH2F *fhZDCvsNclu1;		//! ZDC vs N_cluster layer 1;
  TH2F *fhVZEROvsZEM;		//! VZERO vs ZEM;
  TH2F *fhDebunch;		//! Debunch;
  TH2F *fhZNCcentroid;		//! ZNC centroid
  TH2F *fhZNAcentroid;		//! ZNA centroid
  TH2F *fhPMCvsPMQ[4];		//! PMC vs sum PMQi
  //
  TH1F *fhAsymm;		//! ZN asymmetry
  TH2F *fhZNAvsAsymm;		//! ZNA vs asymmetry
  TH2F *fhZNCvsAsymm;		//! ZNC vs asymmetry
  //
  TH2F *fhZNCvscentrality;	//! ZNC vs. centrality
  TH2F *fhZNAvscentrality;	//! ZNA vs. centrality
  TH2F *fhZPCvscentrality;	//! ZPC vs. centrality
  TH2F *fhZPAvscentrality;	//! ZPA vs. centrality
  //
  TH2F *fhZNCpmcvscentr;	//! ZNC vs. centrality
  TH2F *fhZNApmcvscentr;   	//! ZNA vs. centrality
  TH2F *fhZPCpmcvscentr;   	//! ZPC vs. centrality
  TH2F *fhZPApmcvscentr;   	//! ZPA vs. centrality
  //
  TH1F *fhZNCpmcLR;		//! ZPA PMC low res. chain 
  TH1F *fhZNApmcLR;		//! ZNA PMC low res. chain 
  TH1F *fhZPCpmcLR;		//! ZPC  PMC low res. chain
  TH1F *fhZPApmcLR;		//! ZPA PMC low res. chain
 
  ClassDef(AliAnalysisTaskZDCPbPb,3); 

};

#endif

 AliAnalysisTaskZDCPbPb.h:1
 AliAnalysisTaskZDCPbPb.h:2
 AliAnalysisTaskZDCPbPb.h:3
 AliAnalysisTaskZDCPbPb.h:4
 AliAnalysisTaskZDCPbPb.h:5
 AliAnalysisTaskZDCPbPb.h:6
 AliAnalysisTaskZDCPbPb.h:7
 AliAnalysisTaskZDCPbPb.h:8
 AliAnalysisTaskZDCPbPb.h:9
 AliAnalysisTaskZDCPbPb.h:10
 AliAnalysisTaskZDCPbPb.h:11
 AliAnalysisTaskZDCPbPb.h:12
 AliAnalysisTaskZDCPbPb.h:13
 AliAnalysisTaskZDCPbPb.h:14
 AliAnalysisTaskZDCPbPb.h:15
 AliAnalysisTaskZDCPbPb.h:16
 AliAnalysisTaskZDCPbPb.h:17
 AliAnalysisTaskZDCPbPb.h:18
 AliAnalysisTaskZDCPbPb.h:19
 AliAnalysisTaskZDCPbPb.h:20
 AliAnalysisTaskZDCPbPb.h:21
 AliAnalysisTaskZDCPbPb.h:22
 AliAnalysisTaskZDCPbPb.h:23
 AliAnalysisTaskZDCPbPb.h:24
 AliAnalysisTaskZDCPbPb.h:25
 AliAnalysisTaskZDCPbPb.h:26
 AliAnalysisTaskZDCPbPb.h:27
 AliAnalysisTaskZDCPbPb.h:28
 AliAnalysisTaskZDCPbPb.h:29
 AliAnalysisTaskZDCPbPb.h:30
 AliAnalysisTaskZDCPbPb.h:31
 AliAnalysisTaskZDCPbPb.h:32
 AliAnalysisTaskZDCPbPb.h:33
 AliAnalysisTaskZDCPbPb.h:34
 AliAnalysisTaskZDCPbPb.h:35
 AliAnalysisTaskZDCPbPb.h:36
 AliAnalysisTaskZDCPbPb.h:37
 AliAnalysisTaskZDCPbPb.h:38
 AliAnalysisTaskZDCPbPb.h:39
 AliAnalysisTaskZDCPbPb.h:40
 AliAnalysisTaskZDCPbPb.h:41
 AliAnalysisTaskZDCPbPb.h:42
 AliAnalysisTaskZDCPbPb.h:43
 AliAnalysisTaskZDCPbPb.h:44
 AliAnalysisTaskZDCPbPb.h:45
 AliAnalysisTaskZDCPbPb.h:46
 AliAnalysisTaskZDCPbPb.h:47
 AliAnalysisTaskZDCPbPb.h:48
 AliAnalysisTaskZDCPbPb.h:49
 AliAnalysisTaskZDCPbPb.h:50
 AliAnalysisTaskZDCPbPb.h:51
 AliAnalysisTaskZDCPbPb.h:52
 AliAnalysisTaskZDCPbPb.h:53
 AliAnalysisTaskZDCPbPb.h:54
 AliAnalysisTaskZDCPbPb.h:55
 AliAnalysisTaskZDCPbPb.h:56
 AliAnalysisTaskZDCPbPb.h:57
 AliAnalysisTaskZDCPbPb.h:58
 AliAnalysisTaskZDCPbPb.h:59
 AliAnalysisTaskZDCPbPb.h:60
 AliAnalysisTaskZDCPbPb.h:61
 AliAnalysisTaskZDCPbPb.h:62
 AliAnalysisTaskZDCPbPb.h:63
 AliAnalysisTaskZDCPbPb.h:64
 AliAnalysisTaskZDCPbPb.h:65
 AliAnalysisTaskZDCPbPb.h:66
 AliAnalysisTaskZDCPbPb.h:67
 AliAnalysisTaskZDCPbPb.h:68
 AliAnalysisTaskZDCPbPb.h:69
 AliAnalysisTaskZDCPbPb.h:70
 AliAnalysisTaskZDCPbPb.h:71
 AliAnalysisTaskZDCPbPb.h:72
 AliAnalysisTaskZDCPbPb.h:73
 AliAnalysisTaskZDCPbPb.h:74
 AliAnalysisTaskZDCPbPb.h:75
 AliAnalysisTaskZDCPbPb.h:76
 AliAnalysisTaskZDCPbPb.h:77
 AliAnalysisTaskZDCPbPb.h:78
 AliAnalysisTaskZDCPbPb.h:79
 AliAnalysisTaskZDCPbPb.h:80
 AliAnalysisTaskZDCPbPb.h:81
 AliAnalysisTaskZDCPbPb.h:82
 AliAnalysisTaskZDCPbPb.h:83
 AliAnalysisTaskZDCPbPb.h:84
 AliAnalysisTaskZDCPbPb.h:85
 AliAnalysisTaskZDCPbPb.h:86
 AliAnalysisTaskZDCPbPb.h:87
 AliAnalysisTaskZDCPbPb.h:88
 AliAnalysisTaskZDCPbPb.h:89
 AliAnalysisTaskZDCPbPb.h:90
 AliAnalysisTaskZDCPbPb.h:91
 AliAnalysisTaskZDCPbPb.h:92
 AliAnalysisTaskZDCPbPb.h:93
 AliAnalysisTaskZDCPbPb.h:94
 AliAnalysisTaskZDCPbPb.h:95
 AliAnalysisTaskZDCPbPb.h:96
 AliAnalysisTaskZDCPbPb.h:97
 AliAnalysisTaskZDCPbPb.h:98
 AliAnalysisTaskZDCPbPb.h:99
 AliAnalysisTaskZDCPbPb.h:100
 AliAnalysisTaskZDCPbPb.h:101
 AliAnalysisTaskZDCPbPb.h:102
 AliAnalysisTaskZDCPbPb.h:103
 AliAnalysisTaskZDCPbPb.h:104
 AliAnalysisTaskZDCPbPb.h:105
 AliAnalysisTaskZDCPbPb.h:106
 AliAnalysisTaskZDCPbPb.h:107
 AliAnalysisTaskZDCPbPb.h:108
 AliAnalysisTaskZDCPbPb.h:109
 AliAnalysisTaskZDCPbPb.h:110
 AliAnalysisTaskZDCPbPb.h:111
 AliAnalysisTaskZDCPbPb.h:112
 AliAnalysisTaskZDCPbPb.h:113
 AliAnalysisTaskZDCPbPb.h:114
 AliAnalysisTaskZDCPbPb.h:115
 AliAnalysisTaskZDCPbPb.h:116
 AliAnalysisTaskZDCPbPb.h:117
 AliAnalysisTaskZDCPbPb.h:118