]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/PHOSTasks/UserTasks/AliAnalysisTaskSEPHOSpPbPi0.h
2d32dafaa3b5c68e23c0c8c689d548929953967a
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / UserTasks / AliAnalysisTaskSEPHOSpPbPi0.h
1 #ifndef ALIANALYSISTASKSEPHOSPPBPI0_H
2 #define ALIANALYSISTASKSEPHOSPPBPI0_H
3
4 /* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //*************************************************************************
8 // Class AliAnalysisTaskSEPHOSpPbPi0
9 // AliAnalysisTaskSE for the gamma and pi0 from pPb collision analysis
10 // Author: H-S. Zhu, hongsheng.zhu@cern.ch
11 //                   hszhu@iopp.ccnu.edu.cn
12 //*************************************************************************
13
14 #include "AliAnalysisTaskSE.h"
15
16 class TH2I;
17 class TList;
18 class TString;
19 class TArray;
20 class TClonesArray;
21 class AliPHOSGeoUtils;
22 class AliPHOSpPbPi0Header;
23
24 class AliAnalysisTaskSEPHOSpPbPi0 : public AliAnalysisTaskSE {
25  public:
26
27   AliAnalysisTaskSEPHOSpPbPi0();
28   AliAnalysisTaskSEPHOSpPbPi0(const char *name);
29   virtual ~AliAnalysisTaskSEPHOSpPbPi0();
30   
31   virtual void UserCreateOutputObjects();
32   virtual void UserExec(Option_t *option);
33   virtual void Terminate(Option_t *option);
34
35   void SetUseMC(Bool_t isMC=kFALSE)                           { fIsMC          = isMC;                         }
36   void SetXBins(const TArrayF& tCent, const TArrayI& tBuffer) { fCentralityBin = tCent; fBufferSize = tBuffer; }
37   void SetEventCuts(Double_t cuts[3])                   const { AliPHOSpPbPi0Header::SetSelectionCuts(cuts);   }
38
39   static void SetRemovePileup(Bool_t rm=kFALSE)               { fgRemovePileup                   = rm;         }
40   static void SetUseFiducialCut(Bool_t fc=kFALSE)             { fgUseFiducialCut                 = fc;         }
41   static void SetUseTOFCut(Bool_t tof=kFALSE)                 { fgUseTOFCut                      = tof;        }
42   static void SetCaloClCuts(Double_t cuts[5])                 { for (Int_t i=5; i--; ) fgCuts[i] = cuts[i];    }          
43
44  private:
45
46   AliAnalysisTaskSEPHOSpPbPi0(const AliAnalysisTaskSEPHOSpPbPi0&);            // not implemented
47   AliAnalysisTaskSEPHOSpPbPi0& operator=(const AliAnalysisTaskSEPHOSpPbPi0&); // not implemented
48
49   void PHOSInitialize();
50   void FillCaloClusterInfo(/*AliAODEvent* const aod, AliESDEvent* const esd*/);
51
52   static Bool_t        fgRemovePileup;      // flag of remove pileup events
53   static Bool_t        fgUseFiducialCut;    // flag of use fiducial cut
54   static Bool_t        fgUseTOFCut;         // flag of use cluster TOF cut
55   static Double_t      fgCuts[5];           // 0, min of cluster Energy
56                                             // 1, min of NCells
57                                             // 2, min of M02
58                                             // 3, min of distance to bad channels
59                                             // 4, max of the cluster TOF 
60
61   Bool_t               fIsMC;               // flag of whether the input is MC
62   TArrayF              fCentralityBin;      // Centrality bin
63   TArrayI              fBufferSize;         // Buffer size for event mixing
64
65   Int_t                fRunNumber;          // Run Number
66   AliPHOSGeoUtils     *fPHOSGeo;            // PHOS geometry
67
68   TList               *fEventList[10][10];  // Event list for mixing
69   TList               *fOutputListQA;       // output list of QA histograms
70   TList               *fOutputListRD;       // output list of RD histograms
71   TList               *fOutputListMC;       // output list of MC histograms
72   AliPHOSpPbPi0Header *fHeader;             // info at event level
73   TClonesArray        *fCaloClArr;          // Container of Calo clusters Info
74    
75   ClassDef(AliAnalysisTaskSEPHOSpPbPi0, 2);
76 };
77
78 #endif