ROOT logo
#ifndef ALIANALYSISTASKSEPHOSPPBPI0_H
#define ALIANALYSISTASKSEPHOSPPBPI0_H

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

//*************************************************************************
// Class AliAnalysisTaskSEPHOSpPbPi0
// AliAnalysisTaskSE for the gamma and pi0 from pPb collision analysis
// Author: H-S. Zhu, hongsheng.zhu@cern.ch
//                   hszhu@iopp.ccnu.edu.cn
//*************************************************************************

#include "AliAnalysisTaskSE.h"

class TH2I;
class TList;
class TString;
class TArray;
class TClonesArray;
class AliPHOSGeoUtils;
class AliPHOSpPbPi0Header;

class AliAnalysisTaskSEPHOSpPbPi0 : public AliAnalysisTaskSE {
 public:

  AliAnalysisTaskSEPHOSpPbPi0();
  AliAnalysisTaskSEPHOSpPbPi0(const char *name);
  virtual ~AliAnalysisTaskSEPHOSpPbPi0();
  
  virtual void UserCreateOutputObjects();
  virtual void UserExec(Option_t *option);
  virtual void Terminate(Option_t *option);

  void SetUseMC(Bool_t isMC=kFALSE)                           { fIsMC          = isMC;                         }
  void SetXBins(const TArrayF& tCent, const TArrayI& tBuffer) { fCentralityBin = tCent; fBufferSize = tBuffer; }
  void SetEventCuts(Double_t cuts[3])                   const { AliPHOSpPbPi0Header::SetSelectionCuts(cuts);   }

  static void SetRemovePileup(Bool_t rm=kFALSE)               { fgRemovePileup                   = rm;         }
  static void SetUseFiducialCut(Bool_t fc=kFALSE)             { fgUseFiducialCut                 = fc;         }
  static void SetUseTOFCut(Bool_t tof=kFALSE)                 { fgUseTOFCut                      = tof;        }
  static void SetCaloClCuts(Double_t cuts[5])                 { for (Int_t i=5; i--; ) fgCuts[i] = cuts[i];    }          

 private:

  AliAnalysisTaskSEPHOSpPbPi0(const AliAnalysisTaskSEPHOSpPbPi0&);            // not implemented
  AliAnalysisTaskSEPHOSpPbPi0& operator=(const AliAnalysisTaskSEPHOSpPbPi0&); // not implemented

  void PHOSInitialize();
  void FillCaloClusterInfo(/*AliAODEvent* const aod, AliESDEvent* const esd*/);

  static Bool_t        fgRemovePileup;      // flag of remove pileup events
  static Bool_t        fgUseFiducialCut;    // flag of use fiducial cut
  static Bool_t        fgUseTOFCut;         // flag of use cluster TOF cut
  static Double_t      fgCuts[5];           // 0, min of cluster Energy
                                            // 1, min of NCells
                                            // 2, min of M02
                                            // 3, min of distance to bad channels
                                            // 4, max of the cluster TOF 

  Bool_t               fIsMC;               // flag of whether the input is MC
  TArrayF              fCentralityBin;      // Centrality bin
  TArrayI              fBufferSize;         // Buffer size for event mixing

  Int_t                fRunNumber;          // Run Number
  AliPHOSGeoUtils     *fPHOSGeo;            // PHOS geometry

  TList               *fEventList[10][10];  // Event list for mixing
  TList               *fOutputListQA;       // output list of QA histograms
  TList               *fOutputListRD;       // output list of RD histograms
  TList               *fOutputListMC;       // output list of MC histograms
  AliPHOSpPbPi0Header *fHeader;             // info at event level
  TClonesArray        *fCaloClArr;          // Container of Calo clusters Info
   
  ClassDef(AliAnalysisTaskSEPHOSpPbPi0, 2);
};

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