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