]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/CaloCalib/AliAnalysisTaskEMCALPi0PbPb.h
Merged new code from Fengchou and Ermes.
[u/mrichter/AliRoot.git] / PWG4 / CaloCalib / AliAnalysisTaskEMCALPi0PbPb.h
1 #ifndef AliAnalysisTaskEMCALPi0PbPb_cxx
2 #define AliAnalysisTaskEMCALPi0PbPb_cxx
3
4 // $Id$
5
6 class TAxis;
7 class TH1F;
8 class TH2F;
9 class TClonesArray;
10 class TObjArray;
11 class AliAODCaloCells;
12 class AliAODCaloCluster;
13 class AliAODEvent;
14 class AliEMCALGeoUtils;
15 class AliESDCaloCells;
16 class AliESDCaloCluster;
17 class AliESDEvent;
18
19 #include "AliAnalysisTaskSE.h"
20
21 class AliAnalysisTaskEMCALPi0PbPb : public AliAnalysisTaskSE {
22  public:
23   AliAnalysisTaskEMCALPi0PbPb(const char *name=0);
24   virtual ~AliAnalysisTaskEMCALPi0PbPb(); 
25   
26   void         UserCreateOutputObjects();
27   void         UserExec(Option_t *option);
28   void         Terminate(Option_t *);
29
30   void         SetAsymMax(Double_t asymMax)                   { fAsymMax = asymMax;         }
31   void         SetCentrality(const char *name)                { fCentVar = name;            }
32   void         SetCentralityRange(Double_t from, Double_t to) { fCentFrom=from; fCentTo=to; }
33   void         SetClusName(const char *name)                  { fClusName = name;           }
34   void         SetUseQualFlag(Bool_t b)                       { fUseQualFlag = b;           }
35   void         SetVertexRange(Double_t z1, Double_t z2)       { fVtxZMin=z1; fVtxZMax=z2;   }
36
37  protected:
38   virtual void FillCellHists();
39   virtual void FillClusHists();
40   virtual void FillPionHists();
41   Double_t     GetEnergyRatio(AliVCluster *c);
42   Double_t     GetSigmaMax(AliVCluster *c);
43
44     // input members
45   Double_t               fAsymMax;              // energy asymmetry max (def=1)
46   TString                fCentVar;              // variable for centrality determination
47   Double_t               fCentFrom;             // min centrality (def=0)
48   Double_t               fCentTo;               // max centrality (def=100)
49   Double_t               fVtxZMin;              // min primary vertex z (def=-10cm)
50   Double_t               fVtxZMax;              // max primary vertex z (def=+10cm)
51   Bool_t                 fUseQualFlag;          // if true use quality flag for centrality
52   TString                fClusName;             // cluster branch name (def="")
53      // derived members (ie with ! after //)
54   AliEMCALGeoUtils      *fGeom;                 //! geometry utils
55   TList                 *fOutput;               //!container of output histograms
56   AliESDEvent           *fEsdEv;                //!pointer to input esd event
57   AliAODEvent           *fAodEv;                //!pointer to input aod event
58   TObjArray             *fRecPoints;            //!pointer to rec points (AliAnalysisTaskEMCALClusterizeFast)
59   TObjArray             *fEsdClusters;          //!pointer to esd clusters
60   AliESDCaloCells       *fEsdCells;             //!pointer to esd cells
61   TObjArray             *fAodClusters;          //!pointer to aod clusters
62   AliAODCaloCells       *fAodCells;             //!pointer to aod cells
63   TAxis                 *fPtRanges;             //!pointer to pt ranges
64     // histograms
65   TH1F                  *fHCuts;                //!histo for cuts
66   TH1F                  *fHVertexZ;             //!histo for vtxz
67   TH1F                  *fHVertexZ2;            //!histo for vtxz after vtx cuts
68   TH1F                  *fHCent;                //!histo for cent
69   TH1F                  *fHCentQual;            //!histo for cent after quality flag cut
70     // histograms for cells
71   TH2F                 **fHColuRow;             //!histo for cell column and row
72   TH2F                 **fHColuRowE;            //!histo for cell column and row weight energy
73   TH1F                 **fHCellMult;            //!histo for cell multiplicity in module
74   TH1F                  *fHCellE;               //!histo for cell energy
75   TH1F                  *fHCellH;               //!histo for highest cell energy
76     // histograms for clusters
77   TH2F                  *fHClustEtaPhi;         //!histo for cluster eta vs. phi
78   TH2F                  *fHClustEnergyPt;       //!histo for cluster energy vs. pT
79   TH2F                  *fHClustEnergySigma;    //!histo for cluster energy vs. variance over long axis 
80   TH2F                  *fHClustSigmaSigma;     //!histo for sigma vs. lambda_0 comparison
81   TH2F                  *fHClustNTowEnergyRatio;//!histo for cluster n tow vs. energy ratio
82     // histograms for pion candidates
83   TH2F                  *fHPionEtaPhi;          //!histo for pion eta vs. phi
84   TH2F                  *fHPionMggPt;           //!histo for pion mass vs. pT
85   TH2F                  *fHPionMggAsym;         //!histo for pion mass vs. asym
86   TH1F                  *fHPionInvMasses[20];   //!histos for invariant mass plots 
87
88  private:
89   AliAnalysisTaskEMCALPi0PbPb(const AliAnalysisTaskEMCALPi0PbPb&);            // not implemented
90   AliAnalysisTaskEMCALPi0PbPb &operator=(const AliAnalysisTaskEMCALPi0PbPb&); // not implemented
91
92   ClassDef(AliAnalysisTaskEMCALPi0PbPb, 1); // Analysis task for neutral pions in Pb+Pb
93 };
94 #endif