]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/CaloCalib/AliAnalysisTaskEMCALPi0PbPb.h
Count events by hand in case input is mocked up.
[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         SetDoAfterburner(Bool_t b)                     { fDoAfterburner = b;         }
36   void         SetFillNtuple(Bool_t b)                        { fDoNtuple = b;              }
37   void         SetNminCells(Int_t n)                          { fNminCells = n;             }
38   void         SetUseQualFlag(Bool_t b)                       { fUseQualFlag = b;           }
39   void         SetVertexRange(Double_t z1, Double_t z2)       { fVtxZMin=z1; fVtxZMax=z2;   }
40
41  protected:
42   virtual void FillCellHists();
43   virtual void FillClusHists();
44   virtual void FillPionHists();
45   virtual void ClusterAfterburner();
46
47   Double_t     GetMaxCellEnergy(AliVCluster *c);
48   void         GetSigma(AliVCluster *c, Double_t &sigmaMax, Double_t &sigmaMin);
49
50     // input members
51   Double_t               fAsymMax;                // energy asymmetry max (def=1)
52   TString                fCentVar;                // variable for centrality determination
53   Double_t               fCentFrom;               // min centrality (def=0)
54   Double_t               fCentTo;                 // max centrality (def=100)
55   Double_t               fVtxZMin;                // min primary vertex z (def=-10cm)
56   Double_t               fVtxZMax;                // max primary vertex z (def=+10cm)
57   Bool_t                 fUseQualFlag;            // if true use quality flag for centrality
58   TString                fClusName;               // cluster branch name (def="")
59   Bool_t                 fDoNtuple;               // if true write out ntuple
60   Bool_t                 fDoAfterburner;          // if true run after burner
61   Int_t                  fNminCells;              // minimum number of cells attached to cluster
62     // derived members (ie with ! after //)
63   ULong64_t              fNEvs;                   //!accepted events 
64   AliEMCALGeoUtils      *fGeom;                   //!geometry utils
65   TList                 *fOutput;                 //!container of output histograms
66   AliESDEvent           *fEsdEv;                  //!pointer to input esd event
67   AliAODEvent           *fAodEv;                  //!pointer to input aod event
68   TObjArray             *fRecPoints;              //!pointer to rec points (AliAnalysisTaskEMCALClusterizeFast)
69   TObjArray             *fEsdClusters;            //!pointer to esd clusters
70   AliESDCaloCells       *fEsdCells;               //!pointer to esd cells
71   TObjArray             *fAodClusters;            //!pointer to aod clusters
72   AliAODCaloCells       *fAodCells;               //!pointer to aod cells
73   TAxis                 *fPtRanges;               //!pointer to pt ranges
74   TNtuple               *fNtuple;                 //!pointer to ntuple
75     // histograms
76   TH1F                  *fHCuts;                  //!histo for cuts
77   TH1F                  *fHVertexZ;               //!histo for vtxz
78   TH1F                  *fHVertexZ2;              //!histo for vtxz after vtx cuts
79   TH1F                  *fHCent;                  //!histo for cent
80   TH1F                  *fHCentQual;              //!histo for cent after quality flag cut
81     // histograms for cells
82   TH2F                 **fHColuRow;               //!histo for cell column and row
83   TH2F                 **fHColuRowE;              //!histo for cell column and row weight energy
84   TH1F                 **fHCellMult;              //!histo for cell multiplicity in module
85   TH1F                  *fHCellE;                 //!histo for cell energy
86   TH1F                  *fHCellH;                 //!histo for highest cell energy
87   TH1F                  *fHCellM;                 //!histo for mean cell energy (normalized to hit cells)
88   TH1F                  *fHCellM2;                //!histo for mean cell energy (normalized to all cells)
89     // histograms for clusters
90   TH1F                  *fHClustEccentricity;     //!histo for cluster eccentricity
91   TH2F                  *fHClustEtaPhi;           //!histo for cluster eta vs. phi
92   TH2F                  *fHClustEnergyPt;         //!histo for cluster energy vs. pT
93   TH2F                  *fHClustEnergySigma;      //!histo for cluster energy vs. variance over long axis 
94   TH2F                  *fHClustSigmaSigma;       //!histo for sigma vs. lambda_0 comparison
95   TH2F                  *fHClustNCellEnergyRatio; //!histo for cluster n tow vs. energy ratio
96     // histograms for pion candidates
97   TH2F                  *fHPionEtaPhi;            //!histo for pion eta vs. phi
98   TH2F                  *fHPionMggPt;             //!histo for pion mass vs. pT
99   TH2F                  *fHPionMggAsym;           //!histo for pion mass vs. asym
100   TH2F                  *fHPionMggDgg;            //!histo for pion mass vs. opening angle
101   TH1F                  *fHPionInvMasses[20];     //!histos for invariant mass plots 
102
103  private:
104   AliAnalysisTaskEMCALPi0PbPb(const AliAnalysisTaskEMCALPi0PbPb&);            // not implemented
105   AliAnalysisTaskEMCALPi0PbPb &operator=(const AliAnalysisTaskEMCALPi0PbPb&); // not implemented
106
107   ClassDef(AliAnalysisTaskEMCALPi0PbPb, 1); // Analysis task for neutral pions in Pb+Pb
108 };
109 #endif